@opexa/portal-sdk 0.53.5 → 0.53.6
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 +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.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/services/extension.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/utils/add-hours.ts","../src/sdk/utils.ts","../src/sdk/cellexpert-manager.ts","../src/sdk/logger.ts","../src/utils/sleep.ts","../src/utils/pollable.ts","../src/sdk/session-manager.ts","../src/sdk/session-manager-cookie.ts","../src/utils/compact.ts","../src/utils/invariant.ts","../src/utils/parse-decimal.ts","../src/sdk/transformer.ts","../src/sdk/sdk.ts"],"names":["now","res","o","res0"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * ref: https://github.com/HighOutputVentures/opexa/blob/main/libs/shared/src/libs/object-type.ts\n */\n\nexport const ObjectType = {\n\tAccount: 8,\n\tDeposit: 9,\n\tWithdrawal: 14,\n\tVerification: 15,\n\tFile: 16,\n\tGame: 203,\n\tGameSession: 204,\n\tMayaSession: 230,\n};\n","export function gql(strings: TemplateStringsArray, ...values: unknown[]) {\n\tlet result = '';\n\n\tfor (const [index, string] of strings.entries()) {\n\t\tconst value = values.at(index) ?? '';\n\n\t\tresult = `${result}${string}${value}`;\n\t}\n\n\treturn result.trim();\n}\n","import { gql } from '../utils/gql.js';\n\n/**/\n/*+----------------------------------------+*/\n/*+ FILE +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const FILE_FRAGMENT = gql`\n fragment FileFragment on File {\n id\n url\n status\n }\n`;\n\nexport const FILE_QUERY = gql`\n ${FILE_FRAGMENT}\n\n query File($id: ObjectId!) {\n node(id: $id) {\n ... on File {\n ...FileFragment\n }\n }\n }\n`;\n\nexport const UPLOAD_PRIVATE_IMAGE_FILE_MUTATION = gql`\n mutation UploadPrivateImageFile($input: UploadFileInput!) {\n uploadPrivateImageFile(input: $input) {\n ... on FileFormatNotSupportedError {\n __typename\n }\n ... on FileNameTooLongError {\n __typename\n }\n ... on FileSizeTooBigError {\n __typename\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ WALLET +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const WALLET_QUERY = gql`\n query Wallet {\n wallet {\n id\n balance\n turnoverRequirement\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ POINTS +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const POINTS_WALLET_QUERY = gql`\n query PointsWallet {\n pointsWallet {\n id\n points\n account\n dateTimeCreated\n }\n }\n`;\n\nexport const REDEEM_POINTS_TO_CASH_MUTATION = gql`\n mutation RedeemPointsToCash($input: RedeemPointsToCashInput!) {\n redeemPointsToCash(input: $input) {\n ... on InsufficientPointsError {\n __typename\n }\n ... on PointsNotDivisibleBy100Error {\n __typename\n }\n }\n }\n`;\n\nexport const POINTS_WALLET_TRANSACTIONS_QUERY = gql`\n query PointsWalletTransactions(\n $first: Int\n $after: Cursor\n $filter: MemberPointsWalletTransactionFilterInput\n ) {\n member {\n pointsWalletTransactions(first: $first, after: $after, filter: $filter) {\n edges {\n cursor\n node {\n ... on PointsWalletTransaction {\n id\n type\n amount\n balance\n dateTimeCreated\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n`;\n\nexport const ACHIEVEMENT_POINTS_HISTORY_RECORD_QUERY = gql`\n query AchievementPointsHistoryRecords(\n $first: Int\n $after: Cursor\n $filter: AchievementPointsHistoryRecordFilterInput\n ) {\n achievementPointsHistoryRecords(\n first: $first\n after: $after\n filter: $filter\n ) {\n edges {\n cursor\n node {\n ... on AchievementPointsHistoryRecord {\n id\n type\n points\n dateTimeCreated\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ GAME +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const GAME_SESSION_QUERY = {\n\tcurrent: gql`\n query GameSession($id: ObjectId!) {\n node(id: $id) {\n ... on GameSession {\n id\n game\n status\n launchUrl\n launchOptions\n }\n }\n }\n `,\n\tlegacy: gql`\n query GameSession($id: ObjectId!) {\n node(id: $id) {\n ... on GameSession {\n id\n game {\n id\n }\n status\n launchUrl\n dateTimeCreated\n dateTimeLastUpdated\n }\n }\n }\n `,\n};\n\nexport const CREATE_GAME_SESSION_MUTATION = gql`\n mutation CreateGameSession($input: CreateGameSessionInput!) {\n createGameSession(input: $input) {\n ... on GameDoesNotExistError {\n __typename\n }\n ... on GameProviderNotEnabledError {\n __typename\n }\n ... on GameTypeNotEnabledError {\n __typename\n }\n }\n }\n`;\n\nexport const END_GAME_SESSION_MUTATION = {\n\tcurrent: gql`\n mutation EndGameSession($input: EndGameSessionInput!) {\n endGameSession(input: $input)\n }\n `,\n\tlegacy: gql`\n mutation EndGameSession($input: EndGameSessionInput!) {\n endGameSession(input: $input) {\n ... on GameSessionDoesNotExistError {\n __typename\n }\n ... on GameSessionAlreadyClosedError {\n __typename\n }\n ... on GameProviderError {\n __typename\n }\n }\n }\n `,\n};\n\nexport const RECOMMENDED_GAMES_QUERY = gql`\n query RecommendedGames {\n recommendedGames {\n id\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ ANNOUNCEMENT +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const ANNOUNCEMENTS_QUERY = gql`\n query Announcements(\n $first: Int\n $after: Cursor\n $filter: AnnouncementFilterInput\n ) {\n announcements(first: $first, after: $after, filter: $filter) {\n edges {\n cursor\n node {\n ... on Announcement {\n id\n type\n title\n status\n message\n activationStartDateTime\n activationEndDateTime\n dateTimeCreated\n dateTimeLastUpdated\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ REQUIRE FIRST DEPOSIT +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const REQUIRE_FIRST_DEPOSIT_QUERY = gql`\n query RequireFirstDeposit {\n requireFirstDeposit\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ WITHDRAWAL +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const WITHDRAWAL_RECORDS_QUERY = gql`\n query WithdrawalRecords(\n $first: Int\n $after: Cursor\n $filter: WithdrawalRecordFilterInput\n ) {\n member {\n withdrawalRecords(first: $first, after: $after, filter: $filter) {\n edges {\n cursor\n node {\n ... on BankWithdrawalRecord {\n id\n type\n bank\n fee\n netAmount\n reference\n amount\n status\n error\n withdrawalNumber\n serialCode\n dateTimeCreated\n dateTimeLastUpdated\n }\n ... on GCashWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n status\n error\n withdrawalNumber\n serialCode\n recipientMobileNumber\n dateTimeCreated\n dateTimeLastUpdated\n }\n ... on ManualWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n status\n error\n withdrawalNumber\n serialCode\n dateTimeCreated\n dateTimeLastUpdated\n }\n ... on MayaAppWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n status\n error\n withdrawalNumber\n serialCode\n dateTimeCreated\n dateTimeLastUpdated\n }\n ... on InstapayWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n accountName\n status\n error\n withdrawalNumber\n serialCode\n dateTimeCreated\n dateTimeLastUpdated\n bankName\n }\n ... on ManualUPIWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n status\n error\n withdrawalNumber\n serialCode\n dateTimeCreated\n dateTimeLastUpdated\n }\n ... on ManualBankWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n status\n error\n withdrawalNumber\n serialCode\n dateTimeCreated\n dateTimeLastUpdated\n }\n ... on GCashStandardCashInWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n status\n error\n withdrawalNumber\n serialCode\n recipientMobileNumber\n dateTimeCreated\n dateTimeLastUpdated\n }\n ... on CabinetWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n status\n error\n serialCode\n dateTimeCreated\n dateTimeLastUpdated\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n`;\n\nexport const CREATE_GCASH_WITHDRAWAL_MUTATION = gql`\n mutation CreateGCashWithdrawal($input: CreateGCashWithdrawalInput!) {\n createGCashWithdrawal(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidTransactionPasswordError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on MobileNumberNotVerifiedError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on ReCAPTCHAVerificationFailedError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on TransactionPasswordNotSetError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_GCASH_STANDARD_CASHIN_WITHDRAWAL_MUTATION = gql`\n mutation CreateGCashStandardCashInWithdrawal(\n $input: CreateGCashStandardCashInWithdrawalInput!\n ) {\n createGCashStandardCashInWithdrawal(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidTransactionPasswordError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on MobileNumberNotVerifiedError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on ReCAPTCHAVerificationFailedError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on TransactionPasswordNotSetError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MAYA_WITHDRAWAL_MUTATION = gql`\n mutation CreateMayaWithdrawal($input: CreateMayaWithdrawalInput!) {\n createMayaWithdrawal(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidTransactionPasswordError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on MobileNumberNotVerifiedError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MAYA_APP_WITHDRAWAL_MUTATION = gql`\n mutation CreateMayaAppWithdrawal($input: CreateMayaAppWithdrawalInput!) {\n createMayaAppWithdrawal(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidTransactionPasswordError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on TransactionPasswordNotSetError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_BANK_WITHDRAWAL_MUTATION = gql`\n mutation CreateBankWithdrawal($input: CreateBankWithdrawalInput!) {\n createBankWithdrawal(input: $input) {\n ... on MobileNumberNotVerifiedError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION = gql`\n mutation CreateAIOInstapayWithdrawal(\n $input: CreateAIOInstapayWithdrawalInput!\n ) {\n createAIOInstapayWithdrawal(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on InvalidTransactionPasswordError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on TransactionPasswordNotSetError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n ... on FirstDepositRequiredError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION_NEXT = gql`\n mutation CreateAIOInstapayWithdrawalInput_next(\n $input: CreateAIOInstapayWithdrawalInput_next!\n ) {\n createAIOInstapayWithdrawal_next(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on InvalidTransactionPasswordError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on TransactionPasswordNotSetError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MANUAL_UPI_WITHDRAWAL_MUTATION = gql`\n mutation CreateManualUPIWithdrawal($input: CreateManualUPIWithdrawalInput!) {\n createManualUPIWithdrawal(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MANUAL_BANK_WITHDRAWAL_MUTATION = gql`\n mutation CreateManualBankWithdrawal(\n $input: CreateManualBankWithdrawalInput!\n ) {\n createManualBankWithdrawal(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_CABINET_WITHDRAWAL_MUTATION = gql`\n mutation CreateCabinetWithdrawal($input: CreateCabinetWithdrawalInput!) {\n createCabinetWithdrawal(input: $input) {\n ... on InsufficientFundsError {\n __typename\n message\n }\n ... on PlatformDoesNotExistError {\n __typename\n message\n }\n }\n }\n`;\n\nexport const INSTAPAY_BANK_LIST_QUERY = gql`\n query InstapayBankList {\n instapayBankList {\n id\n code\n name\n }\n }\n`;\n\nexport const REMAINING_DAILY_WITHDRAWALS_COUNT_QUERY = gql`\n query RemainingDailyWithdrawalsCount {\n remainingDailyWithdrawalsCount\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ DEPOSIT +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const DEPOSIT_RECORDS_QUERY = gql`\n query DepositRecords(\n $after: Cursor\n $first: Int\n $filter: DepositRecordFilterInput\n ) {\n member {\n depositRecords(after: $after, first: $first, filter: $filter) {\n edges {\n cursor\n node {\n ... on DepositRecord {\n id\n type\n amount\n netAmount\n fee\n status\n deposit\n reference\n depositNumber\n dateTimeCreated\n dateTimeLastUpdated\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n`;\n\nexport const CREATE_GCASH_DEPOSIT_MUTATION = gql`\n mutation CreateGCashDeposit($input: CreateGCashDepositInput!) {\n createGCashDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on ReCAPTCHAVerificationFailedError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_GCASH_WEBPAY_DEPOSIT_MUTATION = gql`\n mutation CreateGCashWebpayDeposit($input: CreateGCashWebpayDepositInput!) {\n createGCashWebpayDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MAYA_WEBPAY_DEPOSIT_MUTATION = gql`\n mutation CreateMayaWebpayDeposit($input: CreateMayaWebpayDepositInput!) {\n createMayaWebpayDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MAYA_DEPOSIT_MUTATION = gql`\n mutation CreateMayaDeposit($input: CreateMayaDepositInput!) {\n createMayaDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_TEST_DEPOSIT_MUTATION = gql`\n mutation CreateTestDeposit($input: CreateTestDepositInput!) {\n createTestDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MAYA_APP_DEPOSIT_MUTATION = gql`\n mutation CreateMayaAppDeposit($input: CreateMayaAppDepositInput!) {\n createMayaAppDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_QRPH_DEPOSIT_MUTATION = gql`\n mutation CreateAIOQRPHDeposit($input: CreateAIOQRPHDepositInput!) {\n createAIOQRPHDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on ReCAPTCHAVerificationFailedError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_GCASH_DEPOSIT_MUTATION = gql`\n mutation CreateAiOGCashDeposit($input: CreateAiOGCashDepositInput!) {\n createAiOGCashDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_PAY_MAYA_DEPOSIT_MUTATION = gql`\n mutation CreateAiOPayMayaDeposit($input: CreateAiOPayMayaDepositInput!) {\n createAiOPayMayaDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_GRAB_PAY_DEPOSIT_MUTATION = gql`\n mutation CreateAiOGrabPayDeposit($input: CreateAiOGrabPayDepositInput!) {\n createAiOGrabPayDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_PALAWAN_PAY_DEPOSIT_MUTATION = gql`\n mutation CreateAiOPalawanPayDeposit(\n $input: CreateAiOPalawanPayDepositInput!\n ) {\n createAiOPalawanPayDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION = gql`\n mutation CreateAIOOnlineBankDeposit(\n $input: CreateAIOOnlineBankDepositInput!\n ) {\n createAIOOnlineBankDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\nexport const CREATE_MANUAL_BANK_DEPOSIT_MUTATION = gql`\n mutation CreateManualBankDeposit($input: CreateManualBankDepositInput!) {\n createManualBankDeposit(input: $input) {\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on FileDoesNotExistError {\n __typename\n }\n ... on FileNotReadyError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MANUAL_UPI_DEPOSIT_MUTATION = gql`\n mutation CreateManualUPIDeposit($input: CreateManualUPIDepositInput!) {\n createManualUPIDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on UPIReferenceNotAvailableError {\n __typename\n }\n }\n }\n`;\n\nexport const DEPOSIT_QUERY = gql`\n query Deposit($id: ObjectId!) {\n node(id: $id) {\n ... on GCashDeposit {\n id\n type\n status\n checkoutUrl\n error\n }\n ... on AiOGCashDeposit {\n id\n type\n status\n checkoutUrl\n error\n }\n ... on AiOPayMayaDeposit {\n id\n type\n status\n checkoutUrl\n error\n }\n ... on AiOGrabPayDeposit {\n id\n type\n status\n checkoutUrl\n error\n }\n ... on AiOPalawanPayDeposit {\n id\n type\n status\n checkoutUrl\n error\n }\n ... on MayaDeposit {\n id\n type\n status\n checkoutUrl\n }\n ... on MayaAppDeposit {\n id\n type\n status\n error\n }\n ... on BankDeposit {\n id\n type\n status\n error\n }\n ... on ManualDeposit {\n id\n type\n status\n error\n }\n ... on QRPHDeposit {\n id\n type\n status\n qrCode\n error\n }\n ... on OnlineBankDeposit {\n id\n type\n status\n vca\n error\n }\n ... on GCashWebpayDeposit {\n id\n type\n status\n checkoutUrl\n error\n }\n ... on MayaWebpayDeposit {\n id\n type\n status\n checkoutUrl\n error\n } \n }\n }\n`;\n\nexport const DEPOSITS_COUNT_QUERY = gql`\n query DepositsCount {\n member {\n depositsCount\n }\n }\n`;\n\nexport const TOUCH_GCASH_DEPOSIT_MUTATION = gql`\n mutation TouchGCashDeposit($input: TouchGCashDepositInput!) {\n touchGCashDeposit(input: $input)\n }\n`;\n\nexport const TOUCH_QRPH_DEPOSIT_MUTATION = gql`\n mutation TouchQRPHDeposit($input: TouchQRPHDepositInput!) {\n touchQRPHDeposit(input: $input)\n }\n`;\n\nexport const REDEEM_VOUCHER_MUTATION = gql`\n mutation RedeemVoucher($input: RedeemVoucherInput!) {\n redeemVoucher(input: $input) {\n __typename\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ BET +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const BET_RECORDS_QUERY = gql`\n query BetRecords($first: Int, $after: Cursor, $filter: BetRecordFilterInput) {\n member {\n betRecords(first: $first, after: $after, filter: $filter) {\n totalCount\n edges {\n cursor\n node {\n ... on BetRecord {\n id\n serialCode\n game {\n id\n }\n bet\n odds\n payout\n winloss\n jackpotPayout\n jackpotContribution\n status\n dateTimeCreated\n dateTimeSettled\n dateTimeLastUpdated\n metadata\n vendorRoundId\n betContent\n contestName\n externalCategory\n }\n }\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n`;\n\nexport const LATEST_BET_RECORDS_QUERY = gql`\n query LatestBetRecords {\n latestBetRecords {\n id\n member {\n name\n }\n game {\n id\n }\n bet\n payout\n validBet\n dateTimeSettled\n dateTimeCreated\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ TRANSACTIONS +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const TRANSACTION_RECORDS_QUERY = gql`\n query TransactionRecords(\n $first: Int\n $after: Cursor\n $filter: TransactionRecordFilter\n ) {\n member {\n transactionRecords(first: $first, after: $after, filter: $filter) {\n edges {\n cursor\n node {\n ... on TransactionRecord {\n id\n type\n amount\n content\n currentBalance\n currentBonusBalance\n referenceNumber\n dateTimeCreated\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ PROMO +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const PROMO_FRAGMENT = gql`\n ${FILE_FRAGMENT}\n\n fragment PromoFragment on Promo {\n id\n type\n name\n banner {\n ...FileFragment\n }\n status\n description\n maximumBonusAmount\n minimumBonusAmount\n maximumDepositAmount\n minimumDepositAmount\n activationStartDateTime\n turnoverRequirementContributionPercentagePerGameProvider\n activationEndDateTime\n dateTimeCreated\n dateTimeLastUpdated\n }\n`;\n\nexport const PROMOS_QUERY = gql`\n ${PROMO_FRAGMENT}\n\n query Promos {\n promos {\n ...PromoFragment\n }\n }\n`;\n\nexport const AVAILABLE_PROMOS_QUERY = gql`\n ${PROMO_FRAGMENT}\n\n query AvailablePromos($filter: PromoFilterInput) {\n availablePromos(filter: $filter) {\n ...PromoFragment\n }\n }\n`;\n\nexport const SPOT_BONUS_FRAGMENT = gql`\n fragment SpotBonusFragment on SpotBonusPromo {\n id\n name\n type\n status\n daysToClear\n zeroOutThreshold\n turnoverRequirementMultiplier\n turnoverRequirementType\n minimumTicketOddFactorPerSportsGameProvider\n turnoverRequirementContributionPercentagePerGameProvider\n bonusAmount\n enabledGameProviders\n activationStartDateTime\n activationEndDateTime\n banner {\n id\n url\n }\n description\n dateTimeCreated\n dateTimeLastUpdated\n dateTimeClosed\n totalBonus\n totalDeposit\n totalBonusBalance\n totalBet\n totalBonusCashedOut\n bonusesCount\n closedBonusesCount\n closedBonusesCountPercentage\n activeBonusesCount\n clearedBonusesCount\n zeroedOutBonusesCount\n cancelledBonusesCount\n expiredBonusesCount\n code\n maximumBonusesCountLimit\n }\n`;\n\nexport const PROMO_BY_CODE_QUERY = gql`\n ${SPOT_BONUS_FRAGMENT}\n\n query PromoByCode($code: String!) {\n promoByCode(code: $code) {\n ...SpotBonusFragment\n }\n }\n`;\n\nexport const CASHBACK_FRAGMENT = gql`\n ${FILE_FRAGMENT}\n\n fragment CashbackFragment on Cashback {\n id\n name\n banner {\n ...FileFragment\n }\n minimumCashback\n maximumMonthlyCashback\n status\n description\n activationStartDateTime\n activationEndDateTime\n turnoverContributionPercentagePerGameProvider\n dateTimeCreated\n dateTimeLastUpdated\n }\n`;\n\nexport const CASHBACKS_QUERY = gql`\n ${CASHBACK_FRAGMENT}\n\n query Cashbacks {\n cashbacks {\n ...CashbackFragment\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ BONUS +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const BONUS_QUERY = gql`\n ${PROMO_FRAGMENT}\n\n query Bonus {\n bonus {\n id\n promo {\n ...PromoFragment\n }\n deposit {\n type\n amount\n netAmount\n fee\n status\n reference\n dateTimeCreated\n dateTimeLastUpdated\n }\n amount\n balance\n turnoverRequirement\n turnoverRequirementContributionPercentagePerGameProvider\n currentTurnoverRequirementContribution\n currentTurnoverRequirementContributionPercentage\n expiration\n dateTimeCreated\n dateTimeLastUpdated\n }\n }\n`;\n\nexport const BONUSES_QUERY = gql`\n ${PROMO_FRAGMENT}\n\n query Bonuses {\n bonuses {\n id\n promo {\n ...PromoFragment\n }\n deposit {\n type\n amount\n netAmount\n fee\n status\n reference\n dateTimeCreated\n dateTimeLastUpdated\n }\n amount\n balance\n turnoverRequirement\n currentTurnoverRequirementContribution\n currentTurnoverRequirementContributionPercentage\n turnoverRequirementContributionPercentagePerGameProvider\n enabledGameProviders\n expiration\n dateTimeCreated\n dateTimeLastUpdated\n }\n }\n`;\n\nexport const CASHBACK_BONUSES_QUERY = gql`\n ${CASHBACK_FRAGMENT}\n\n query CashbackBonuses {\n cashbackBonuses {\n id\n balance\n total\n cashback {\n ...CashbackFragment\n }\n dateTimeCreated\n dateTimeLastUpdated\n }\n }\n`;\n\nexport const CLAIM_CASHBACK_BONUS_MUTATION = gql`\n mutation ClaimCashbackBonus($input: ClaimCashbackBonusInput!) {\n claimCashbackBonus(input: $input) {\n ... on CashbackBonusDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ MEMBER +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const MEMBER_QUERY = gql`\n query Member {\n member {\n dateTimeLastActive\n }\n }\n`;\n\n/**\n * _aka_ `Query.self`\n */\nexport const MEMBER_ACCOUNT_QUERY = gql`\n query MemberAccount {\n memberAccount: self {\n ... on MemberAccount {\n id\n name\n status\n realName\n emailAddress\n mobileNumber\n birthDay\n verified\n verificationStatus\n nickName\n validId\n mobileNumberVerified\n mobileNumberVerificationRequired\n currentMonthlyAchievementPoints\n achievementPointsLevelUpProgressPercentage\n currentUniqueGamesCount\n currentNewGamesCount\n currentBetsCount\n currentActiveDaysCount\n dateTimeLastLeveledUp\n currentMonthlyTurnover\n turnoverLevelUpProgressPercentage\n transactionPassword\n secretAnswerSubmitted\n dateTimeCreated\n dateTimeLastUpdated\n domain\n }\n }\n }\n`;\n\nexport const MEMBER_VERIFICATION_QUERY = gql`\n ${FILE_FRAGMENT}\n\n query MemberVerification {\n memberAccount: self {\n ... on MemberAccount {\n verification {\n id\n status\n address\n permanentAddress\n sourceOfIncome\n natureOfWork\n nationality\n placeOfBirth\n idFrontImage {\n ...FileFragment\n }\n selfieImage {\n ...FileFragment\n }\n }\n }\n }\n }\n`;\n\nexport const REGISTER_MEMBER_ACCOUNT_MUTATION = gql`\n mutation RegisterMemberAccount(\n $input: RegisterMemberAccountInput!\n $referralCode: String\n $verificationCode: String\n $reCAPTCHAResponse: String\n ) {\n registerMemberAccount(\n input: $input\n referralCode: $referralCode\n verificationCode: $verificationCode\n reCAPTCHAResponse: $reCAPTCHAResponse\n ) {\n ... on AccountNameNotAvailableError {\n __typename\n }\n ... on InvalidPlatformError {\n __typename\n }\n ... on InvalidPlatformError {\n __typename\n }\n ... on InvalidReCAPTCHAResponseError {\n __typename\n }\n ... on InvalidSMSVerificationCodeError {\n __typename\n }\n ... on MinimumAgeRequirementError {\n __typename\n }\n ... on MobileNumberNotAvailableError {\n __typename\n }\n ... on ReCAPTCHAVerificationFailedError {\n __typename\n }\n }\n }\n`;\n\nexport const REGISTER_MEMBER_ACCOUNT_BY_NAME_MUTATION = gql`\n mutation RegisterMemberAccountByName(\n $input: RegisterMemberAccountByNameInput!\n $reCAPTCHAResponse: String!\n ) {\n registerMemberAccountByName(\n input: $input\n reCAPTCHAResponse: $reCAPTCHAResponse\n ) {\n ... on AccountNameNotAvailableError {\n __typename\n }\n ... on InvalidPlatformError {\n __typename\n }\n ... on InvalidReCAPTCHAResponseError {\n __typename\n }\n }\n }\n`;\nexport const REGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION = gql`\n mutation RegisterMemberAccountViaMobile(\n $input: RegisterMemberAccountViaMobileInput!\n $referralCode: String\n $verificationCode: String\n $reCAPTCHAResponse: String\n ) {\n registerMemberAccountViaMobile(\n input: $input\n referralCode: $referralCode\n verificationCode: $verificationCode\n reCAPTCHAResponse: $reCAPTCHAResponse\n ) {\n ... on InvalidPlatformError {\n __typename\n }\n ... on InvalidReCAPTCHAResponseError {\n __typename\n }\n ... on InvalidSMSVerificationCodeError {\n __typename\n }\n ... on MobileNumberNotAvailableError {\n __typename\n }\n ... on ReCAPTCHAVerificationFailedError {\n __typename\n }\n }\n }\n`;\n\nexport const REGISTER_MEMBER_ACCOUNT_MUTATION__NEXT = gql`\n mutation RegisterMemberAccount(\n $input: RegisterMemberAccountInput_next!\n $reCAPTCHAResponse: String\n ) {\n registerMemberAccount: registerMemberAccount_next(\n input: $input\n reCAPTCHAResponse: $reCAPTCHAResponse\n ) {\n ... on AccountNameNotAvailableError {\n __typename\n }\n ... on InvalidPlatformError {\n __typename\n }\n ... on InvalidReCAPTCHAResponseError {\n __typename\n }\n ... on InvalidSMSVerificationCodeError {\n __typename\n }\n ... on MinimumAgeRequirementError {\n __typename\n }\n ... on MobileNumberNotAvailableError {\n __typename\n }\n ... on ReCAPTCHAVerificationFailedError {\n __typename\n }\n }\n }\n`;\n\nexport const REGISTER_MAYA_MEMBER_ACCOUNT_MUTATION = gql`\n mutation RegisterMayaMemberAccount($input: RegisterMayaMemberAccountInput!) {\n registerMayaMemberAccount(input: $input) {\n ... on AccountNameNotAvailableError {\n __typename\n }\n }\n }\n`;\n\nexport const UPDATE_MEMBER_ACCOUNT_MUTATION = gql`\n mutation UpdateMemberAccount($input: UpdateMemberAccountInput!) {\n updateMemberAccount(input: $input) {\n ... on AccountNameNotAvailableError {\n __typename\n }\n ... on EmailAddressNotAvailableError {\n __typename\n }\n ... on InvalidTransactionPasswordError {\n __typename\n }\n ... on MobileNumberNotAvailableError {\n __typename\n }\n ... on NickNameNotAvailableError {\n __typename\n }\n ... on RealNameAlreadySetError {\n __typename\n }\n ... on ValidIdAlreadySetError {\n __typename\n }\n }\n }\n`;\n\nexport const RESET_PASSWORD_MUTATION = gql`\n mutation ResetPassword(\n $input: ResetPasswordInput!\n $verificationCode: String\n ) {\n resetPassword(input: $input, verificationCode: $verificationCode) {\n ... on AccountNotFoundError {\n __typename\n }\n ... on InvalidVerificationCodeError {\n __typename\n }\n }\n }\n`;\n\nexport const DELETE_MEMBER_ACCOUNT_MUTATION = gql`\n mutation DeleteMemberAccount($input: DeleteMemberAccountInput!) {\n deleteMemberAccount(input: $input)\n }\n`;\n\nexport const VERIFY_MOBILE_NUMBER_MUTATION = gql`\n mutation VerifyMobileNumber($input: VerifyMobileNumberInput!) {\n verifyMobileNumber(input: $input) {\n ... on InvalidSMSVerificationCodeError {\n __typename\n }\n ... on MobileNumberAlreadyVerifiedError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MEMBER_VERIFICATION_MUTATION = gql`\n mutation CreateMemberVerification($input: CreateMemberVerificationInput!) {\n createMemberVerification(input: $input) {\n ... on FileDoesNotExistError {\n __typename\n }\n ... on FileNotReadyError {\n __typename\n }\n ... on MemberVerificationAlreadyExistsError {\n __typename\n }\n }\n }\n`;\nexport const CREATE_MEMBER_VERIFICATION_NEXT_MUTATION = gql`\n mutation CreateMemberVerificationInput_next(\n $input: CreateMemberVerificationInput_next!\n ) {\n createMemberVerification_next(input: $input) {\n ... on FileDoesNotExistError {\n __typename\n }\n ... on FileNotReadyError {\n __typename\n }\n ... on MemberVerificationAlreadyExistsError {\n __typename\n }\n }\n }\n`;\n\nexport const UPDATE_MEMBER_VERIFICATION_MUTATION = gql`\n mutation UpdateMemberVerification($input: UpdateMemberVerificationInput!) {\n updateMemberVerification(input: $input) {\n ... on FileDoesNotExistError {\n __typename\n }\n ... on FileNotReadyError {\n __typename\n }\n ... on MemberVerificationAlreadyApprovedError {\n __typename\n }\n ... on MemberVerificationDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const UPDATE_MEMBER_VERIFICATION_NEXT_MUTATION = gql`\n mutation UpdateMemberVerification_next(\n $input: UpdateMemberVerificationInput!\n ) {\n updateMemberVerification_next(input: $input) {\n ... on FileDoesNotExistError {\n __typename\n }\n ... on FileNotReadyError {\n __typename\n }\n ... on MemberVerificationAlreadyApprovedError {\n __typename\n }\n ... on MemberVerificationDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const SUBMIT_MEMBER_VERIFICATION_MUTATION = gql`\n mutation SubmitMemberVerification($input: ApproveMemberVerificationInput!) {\n submitMemberVerification(input: $input) {\n ... on VerificationDataIncompleteError {\n __typename\n }\n ... on MemberVerificationDoesNotExistError {\n __typename\n }\n ... on MemberVerificationAlreadyApprovedError {\n __typename\n }\n }\n }\n`;\n\nexport const PROFILE_COMPLETION_QUERY = gql`\n query ProfileCompletion {\n profileCompletion {\n completionPercentage\n personalInformation\n accountVerification\n mobileNumberVerification\n transactionPassword\n accountPassword\n }\n }\n`;\n\n/** @deprecated */\nexport const SEND_VERIFICATION_CODE_MUTATION = gql`\n mutation SendVerificationCode($input: SendVerificationCodeInput!) {\n sendVerificationCode(input: $input) {\n ... on InvalidPlatformError {\n __typename\n }\n ... on NotReadyToSendVerficationCodeError {\n __typename\n }\n }\n }\n`;\n\nexport const REGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION = gql`\n mutation RegisterMemberAccountByMobileNumber(\n $input: RegisterMemberAccountByMobileNumberInput!\n $mobileNumberVerificationCode: String!\n ) {\n registerMemberAccountByMobileNumber(\n input: $input\n mobileNumberVerificationCode: $mobileNumberVerificationCode\n ) {\n ... on MobileNumberNotAvailableError {\n __typename\n }\n ... on InvalidSMSVerificationCodeError {\n __typename\n }\n ... on InvalidPlatformError {\n __typename\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ PLATFORM +*/\n/*+----------------------------------------+*/\n/**/\n\n/** @deprecated */\nexport const PLATFORM_QUERY = gql`\n fragment DepositGatewaySettingsCoreData on DepositGatewaySettings {\n minimumAmount\n maximumAmount\n fixedFee\n percentageFee\n bankAccountName\n bankAccountNumber\n bankIFSCCode\n upiId\n webEnabled\n mobileWebEnabled\n androidEnabled\n iosEnabled\n }\n\n fragment WithdrawalGatewaySettingsCoreData on WithdrawalGatewaySettings {\n minimumAmount\n maximumAmount\n fixedFee\n percentageFee\n webEnabled\n mobileWebEnabled\n androidEnabled\n iosEnabled\n }\n\n query Platform {\n timezone\n currency\n minimumFirstDepositAmount\n restrictWithdrawalsToVerifiedMembers\n bankDepositGatewaySettings: depositGatewaySettings(gateway: BANK) {\n ...DepositGatewaySettingsCoreData\n }\n gcashDepositGatewaySettings: depositGatewaySettings(gateway: GCASH) {\n ...DepositGatewaySettingsCoreData\n }\n gcashWebpayDepositGatewaySettings: depositGatewaySettings(gateway: GCASH_WEBPAY) {\n ...DepositGatewaySettingsCoreData\n }\n aioGcashDepositGatewaySettings: depositGatewaySettings(gateway: AIO_GCASH) {\n ...DepositGatewaySettingsCoreData\n }\n aioPayMayaDepositGatewaySettings: depositGatewaySettings(\n gateway: AIO_PAY_MAYA\n ) {\n ...DepositGatewaySettingsCoreData\n }\n aioGrabPayDepositGatewaySettings: depositGatewaySettings(\n gateway: AIO_GRAB_PAY\n ) {\n ...DepositGatewaySettingsCoreData\n }\n aioPalawanPayDepositGatewaySettings: depositGatewaySettings(\n gateway: AIO_PALAWAN_PAY\n ) {\n ...DepositGatewaySettingsCoreData\n }\n mayaDepositGatewaySettings: depositGatewaySettings(gateway: MAYA) {\n ...DepositGatewaySettingsCoreData\n }\n mayaAppDepositGatewaySettings: depositGatewaySettings(gateway: MAYA_APP) {\n ...DepositGatewaySettingsCoreData\n }\n onlineBankDepositGatewaySettings: depositGatewaySettings(\n gateway: ONLINE_BANK\n ) {\n ...DepositGatewaySettingsCoreData\n }\n qrphDepositGatewaySettings: depositGatewaySettings(gateway: QR_PH) {\n ...DepositGatewaySettingsCoreData\n }\n manualBankDepositGatewaySettings: depositGatewaySettings(\n gateway: MANUAL_BANK\n ) {\n ...DepositGatewaySettingsCoreData\n }\n manualUPIDepositGatewaySettings: depositGatewaySettings(\n gateway: MANUAL_UPI\n ) {\n ...DepositGatewaySettingsCoreData\n }\n bankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: BANK) {\n ...WithdrawalGatewaySettingsCoreData\n }\n gcashWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: GCASH) {\n ...WithdrawalGatewaySettingsCoreData\n }\n gcashStandardCashInWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: GCASH_STANDARD_CASH_IN\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n mayaWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA) {\n ...WithdrawalGatewaySettingsCoreData\n }\n mayaAppWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: MAYA_APP\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n instapayWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: INSTAPAY\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n manualBankWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: MANUAL_BANK\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n manualUPIWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: MANUAL_UPI\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n pointsClubSettings {\n multiplier\n }\n }\n`;\n\nexport const PLATFORM_QUERY__NEXT = gql`\n query Platform {\n timezone\n currency\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ MEMBER LEVEL SETTINGS +*/\n/*+----------------------------------------+*/\n\nexport const MEMBER_LEVEL_SETTINGS_QUERY = gql`\n query MemberLevelSettings {\n memberLevelSettings__1: memberLevelSettings(level: 1) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__2: memberLevelSettings(level: 2) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__3: memberLevelSettings(level: 3) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__4: memberLevelSettings(level: 4) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__5: memberLevelSettings(level: 5) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__6: memberLevelSettings(level: 6) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__7: memberLevelSettings(level: 7) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__8: memberLevelSettings(level: 8) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__9: memberLevelSettings(level: 9) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__10: memberLevelSettings(level: 10) {\n ...MemberLevelSettingsCoreData\n }\n }\n\n fragment MemberLevelSettingsCoreData on MemberLevelSettings {\n enabled\n achievementPointsRequirement\n turnoverRequirement\n bonusTurnoverRequirement\n name\n bonusAmount\n }\n`;\n\nexport const ACHIEVEMENT_SETTINGS_QUERY = gql`\n query AchievementSettings {\n diverseDebut: achievementSettings(type: DIVERSE_DEBUT) {\n ...AchievementSettingsCoreData\n }\n varietyVirtuoso: achievementSettings(type: VARIETY_VIRTUOSO) {\n ...AchievementSettingsCoreData\n }\n masterOfDiversity: achievementSettings(type: MASTER_OF_DIVERSITY) {\n ...AchievementSettingsCoreData\n }\n curiousNewcomer: achievementSettings(type: CURIOUS_NEWCOMER) {\n ...AchievementSettingsCoreData\n }\n trailblazer: achievementSettings(type: TRAILBLAZER) {\n ...AchievementSettingsCoreData\n }\n innovationIcon: achievementSettings(type: INNOVATION_ICON) {\n ...AchievementSettingsCoreData\n }\n rapidRoller: achievementSettings(type: RAPID_ROLLER) {\n ...AchievementSettingsCoreData\n }\n whirlwindWagerer: achievementSettings(type: WHIRLWIND_WAGERER) {\n ...AchievementSettingsCoreData\n }\n bettingBonanza: achievementSettings(type: BETTING_BONANZA) {\n ...AchievementSettingsCoreData\n }\n steadyStrategist: achievementSettings(type: STEADY_STRATEGIST) {\n ...AchievementSettingsCoreData\n }\n consistentContender: achievementSettings(type: CONSISTENT_CONTENDER) {\n ...AchievementSettingsCoreData\n }\n legendaryLoyalist: achievementSettings(type: LEGENDARY_LOYALIST) {\n ...AchievementSettingsCoreData\n }\n }\n\n fragment AchievementSettingsCoreData on AchievementSettings {\n enabled\n points\n uniqueGamesCount\n newGamesCount\n betsCount\n activeDaysCount\n }\n`;\nexport const MEMBER_ACHIEVEMENTS_QUERY = gql`\n query GetMemberAchievements {\n member {\n achievements {\n type\n count\n }\n level\n }\n }\n`;\n\nexport const PAYMENT_SETTINGS_QUERY = gql`\n fragment DepositGatewaySettingsCoreData on DepositGatewaySettings {\n minimumAmount\n maximumAmount\n webEnabled\n mobileWebEnabled\n androidEnabled\n iosEnabled\n bankAccountName\n bankAccountNumber\n bankIFSCCode\n upiId\n upiQRCode {\n id\n url\n }\n }\n\n fragment WithdrawalGatewaySettingsCoreData on WithdrawalGatewaySettings {\n minimumAmount\n maximumAmount\n webEnabled\n mobileWebEnabled\n androidEnabled\n iosEnabled\n }\n\n query PaymentSettings {\n minimumFirstDepositAmount\n restrictWithdrawalsToVerifiedMembers\n bankDepositGatewaySettings: depositGatewaySettings(gateway: BANK) {\n ...DepositGatewaySettingsCoreData\n }\n gcashDepositGatewaySettings: depositGatewaySettings(gateway: GCASH) {\n ...DepositGatewaySettingsCoreData\n }\n gcashWebpayDepositGatewaySettings: depositGatewaySettings(gateway: GCASH_WEBPAY) {\n ...DepositGatewaySettingsCoreData\n }\n aioGcashDepositGatewaySettings: depositGatewaySettings(gateway: AIO_GCASH) {\n ...DepositGatewaySettingsCoreData\n }\n aioPayMayaDepositGatewaySettings: depositGatewaySettings(\n gateway: AIO_PAY_MAYA\n ) {\n ...DepositGatewaySettingsCoreData\n }\n aioGrabPayDepositGatewaySettings: depositGatewaySettings(\n gateway: AIO_GRAB_PAY\n ) {\n ...DepositGatewaySettingsCoreData\n }\n aioPalawanPayDepositGatewaySettings: depositGatewaySettings(\n gateway: AIO_PALAWAN_PAY\n ) {\n ...DepositGatewaySettingsCoreData\n }\n mayaDepositGatewaySettings: depositGatewaySettings(gateway: MAYA) {\n ...DepositGatewaySettingsCoreData\n }\n mayaAppDepositGatewaySettings: depositGatewaySettings(gateway: MAYA_APP) {\n ...DepositGatewaySettingsCoreData\n }\n mayaWebpayDepositGatewaySettings: depositGatewaySettings(gateway: MAYA_WEBPAY) {\n ...DepositGatewaySettingsCoreData\n }\n onlineBankDepositGatewaySettings: depositGatewaySettings(\n gateway: ONLINE_BANK\n ) {\n ...DepositGatewaySettingsCoreData\n }\n qrphDepositGatewaySettings: depositGatewaySettings(gateway: QR_PH) {\n ...DepositGatewaySettingsCoreData\n }\n manualBankDepositGatewaySettings: depositGatewaySettings(\n gateway: MANUAL_BANK\n ) {\n ...DepositGatewaySettingsCoreData\n }\n manualUPIDepositGatewaySettings: depositGatewaySettings(\n gateway: MANUAL_UPI\n ) {\n ...DepositGatewaySettingsCoreData\n }\n bankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: BANK) {\n ...WithdrawalGatewaySettingsCoreData\n }\n gcashWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: GCASH) {\n ...WithdrawalGatewaySettingsCoreData\n }\n gcashStandardCashInWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: GCASH_STANDARD_CASH_IN) {\n ...WithdrawalGatewaySettingsCoreData\n }\n mayaWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA) {\n ...WithdrawalGatewaySettingsCoreData\n }\n mayaAppWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: MAYA_APP\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n instapayWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: INSTAPAY\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n manualBankWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: MANUAL_BANK\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n manualUPIWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: MANUAL_UPI\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ SESSION +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const MAYA_SESSION_QUERY = gql`\n query MayaSession($id: ObjectId!) {\n mayaSession(id: $id) {\n id\n member\n dateTimeCreated\n }\n }\n`;\n\nexport const VALIDATE_MAYA_SESSION_MUTATION = gql`\n mutation ValidateMayaSession {\n validateMayaSession: validMayaSession\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ ACTIVITY +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const ACTIVITY_RECORDS_QUERY = gql`\n query ActivityRecords(\n $after: Cursor\n $first: Int\n $filter: ActivityRecordsFilterInput\n ) {\n member {\n activityRecords(after: $after, first: $first, filter: $filter) {\n edges {\n cursor\n node {\n ... on MemberActivity {\n id\n type\n domain\n amount\n details\n dateTimeCreated\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ REFERRAL +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const REFERRAL_CODE_QUERY = gql`\n query ReferralCode {\n referralCode\n }\n`;\n\nexport const UPDATE_REFERRAL_CODE_MUTATION = gql`\n mutation UpdateReferralCode($input: UpdateReferralCodeInput!) {\n updateReferralCode(input: $input) {\n ... on ReferralCodeNotAvailableError {\n __typename\n }\n }\n }\n`;\n\nexport const REFERRAL_FRAGMENT = gql`\n fragment ReferralFragment on Referral {\n id\n upline {\n id\n name\n realName\n }\n downline {\n id\n name\n realName\n }\n level\n turnover\n commission\n dateTimeCreated\n }\n`;\n\nexport const REFERRALS_QUERY = gql`\n query Referrals($first: Int, $after: Cursor, $filter: ReferralFilterInput) {\n member {\n referrals(first: $first, after: $after, filter: $filter) {\n edges {\n cursor\n node {\n ... on Referral {\n ...ReferralFragment\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n\n ${REFERRAL_FRAGMENT}\n`;\n\nexport const UPLINES_BY_NAME_QUERY = gql`\n query UplinesByName($search: String!, $first: Int) {\n uplinesByName(search: $search, first: $first) {\n ...ReferralFragment\n }\n }\n\n ${REFERRAL_FRAGMENT}\n`;\n\nexport const DOWNLINES_BY_NAME_QUERY = gql`\n query DownlinesByName($search: String!, $first: Int) {\n downlinesByName(search: $search, first: $first) {\n ...ReferralFragment\n }\n }\n\n ${REFERRAL_FRAGMENT}\n`;\n\nexport const REFERRAL_COMMISSION_QUERY = gql`\n query ReferralCommission {\n member {\n referralCommission {\n id\n commission\n dateTimeCreated\n dateTimeLastUpdated\n level1Commission\n level1ReferralsCount\n level2Commission\n level2ReferralsCount\n level3Commission\n level3ReferralsCount\n referralCode\n referralsCount\n }\n }\n }\n`;\n\nexport const POINTS_CLUB_SETTINGS_QUERY = gql`\n query PointsClubSettings {\n pointsClubSettings {\n multiplier\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ MESSAGES +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const MESSAGES_QUERY = gql`\n query Messages($first: Int, $after: Cursor, $filter: MessageFilterInput) {\n messages(first: $first, after: $after, filter: $filter) {\n edges {\n cursor\n node {\n ... on Message {\n id\n icon\n image\n title\n content\n popup\n force\n actions {\n name\n url\n }\n markedAsRead\n dateTimeCreated\n type\n metadata {\n ... on TournamentPayoutMessageMetadata {\n tournament {\n id\n name\n }\n payout {\n id\n amount\n }\n }\n }\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n`;\n\nexport const UNREAD_MESSAGES_COUNT_QUERY = gql`\n query UnreadMessagesCount($filter: MessageFilterInput) {\n messages(filter: $filter) {\n totalCount\n }\n }\n`;\n\nexport const MARK_MESSAGE_AS_READ_MUTATION = gql`\n mutation MarkMessageAsRead($id: ObjectId!) {\n markMessageAsRead(id: $id)\n }\n`;\n\n/**\n * @deprecated\n */\nexport const MARK_ALL_MESSAGE_AS_READ_MUTATION = gql`\n mutation MarkAllMessageAsRead {\n markAllMessageAsRead\n }\n`;\n\nexport const MARK_ALL_MESSAGES_AS_READ_MUTATION = gql`\n mutation MarkAllMessagesAsRead {\n markAllMessagesAsRead\n }\n`;\n\nexport const CLAIM_REWARD_MUTATION = gql`\n mutation ClaimReward($id: ObjectId!) {\n claimReward(id: $id) {\n ... on RewardAlreadyClaimedError {\n __typename\n }\n ... on RewardAlreadyExpiredError {\n __typename\n }\n }\n }\n`;\n\nexport const CLAIM_SPOT_BONUS = gql`\n mutation ClaimSpotBonus($code: String!) {\n claimSpotBonus(code: $code) {\n ... on InvalidPromoCodeError {\n __typename\n }\n ... on MaximumBonusesCountLimitExceededError {\n __typename\n }\n ... on SpotBonusAlreadyClaimedError {\n __typename\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ ONBOARDING +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const ONBOARDING_STATUS_QUERY = gql`\n query OnboardingStatus {\n onboardingStatus\n }\n`;\n\nexport const COMPLETE_ONBOARDING_MUTATION = gql`\n mutation CompleteOnboarding($input: CompleteOnboardingInput!) {\n completeOnboarding(input: $input)\n }\n`;\n\nexport const SKIP_ONBOARDING_MUTATION = gql`\n mutation SkipOnboarding {\n skipOnboarding\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ QUEST +*/\n/*+----------------------------------------+*/\n/**/\nexport const QUEST_PROGRAM_FRAGMENT = gql`\n fragment QuestProgramFragment on QuestProgram {\n status\n type\n name\n description\n }\n`;\n\nexport const DAILY_CHECKIN_FRAGMENT = gql`\n ${QUEST_PROGRAM_FRAGMENT}\n fragment DailyCheckinQuestFragment on DailyCheckInQuest {\n id\n name\n description\n type\n program {\n ...QuestProgramFragment\n }\n\n status\n progressPercentage\n turnover\n endDateTime\n dateTimeCreated\n lastCheckInDate\n startDateTime\n checkInStreak\n\n thirdDayBonusAmount\n seventhDayBonusAmount\n sixthDayBonusAmount\n dateTimeCompleted\n }\n`;\nexport const WAGERING_FRAGMENT = gql`\n fragment WageringQuestFragment on WageringQuest {\n bonus\n id\n name\n type\n description\n program {\n ...QuestProgramFragment\n ...on WageringQuestProgram {\n stages {\n targetTurnover\n bonusTurnoverRequirementMultiplier\n bonusAmount\n }\n }\n }\n status\n progressPercentage\n turnover\n targetTurnover\n endDateTime\n dateTimeCreated\n dateTimeCompleted\n stage\n turnoverRequirementContributionPercentagePerGameProvider\n }\n`;\n\nexport const ONBOARDING_QUEST_FRAGMENT = gql`\n fragment OnboardingQuestFragment on OnboardingQuest {\n id\n name\n description\n program {\n ...QuestProgramFragment\n }\n\n status\n type\n progressPercentage\n bonus\n endDateTime\n dateTimeCreated\n firstDepositCompleted\n accountVerificationCompleted\n dateTimeCompleted\n }\n`;\n\nexport const JOURNEY_QUEST_FRAGMENT = gql`\n fragment JourneyQuestFragment on JourneyQuest {\n id\n name\n description\n program {\n ...QuestProgramFragment\n }\n status\n type\n progressPercentage\n bonus\n endDateTime\n dateTimeCreated\n milestones {\n id\n type\n name\n bonusAmount\n cleared\n description\n link\n }\n dateTimeCompleted\n }\n`;\n\nexport const AVAILABLE_QUESTS_QUERY = gql`\n ${WAGERING_FRAGMENT}\n ${DAILY_CHECKIN_FRAGMENT}\n ${ONBOARDING_QUEST_FRAGMENT}\n ${JOURNEY_QUEST_FRAGMENT}\n query AvailableQuests {\n availableQuests {\n ... on Quest {\n ... on WageringQuest {\n ...WageringQuestFragment\n }\n ... on DailyCheckInQuest {\n ...DailyCheckinQuestFragment\n }\n ... on OnboardingQuest {\n ...OnboardingQuestFragment\n }\n ... on JourneyQuest {\n ...JourneyQuestFragment\n }\n }\n }\n }\n`;\n\nexport const CHECK_IN_DAILY_QUEST_MUTATION = gql`\n mutation checkInDailyCheckInQuest($input: CheckInDailyCheckInQuestInput!) {\n checkInDailyCheckInQuest(input: $input)\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ TOP WIN +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const TOP_WINS_QUERY = gql`\n query TopWins($first: Int) {\n topWins(first: $first) {\n id\n game {\n id\n }\n member {\n id\n name\n }\n multiplier\n payout\n }\n }\n`;\nexport const TOP_WINS_NEXT_QUERY = gql`\n query TopWinsNext {\n _topWins {\n id\n game {\n id\n }\n member {\n id\n name\n }\n multiplier\n payout\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ Jackpots +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const JACKPOTS_QUERY = gql`\n query Jackpots(\n $first: Int\n $after: Cursor\n $sort: JackpotSortInput\n $filter: JackpotFilterInput\n ) {\n jackpots(first: $first, after: $after, sort: $sort, filter: $filter) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n ... on Jackpot {\n id\n name\n description\n pool\n status\n minimumJackpotPoolDrawingLimit\n maximumJackpotPoolLimit\n drawing\n minimumMultiplier\n minimumBet\n jackpotPayoutPercentage\n jackpotTurnoverContributionPercentagePerGameProvider\n totalPayout\n }\n }\n }\n }\n }\n`;\n\nexport const JACKPOT_PAYOUTS_QUERY = gql`\n query JackpotPayouts(\n $first: Int\n $after: Cursor\n $sort: JackpotPayoutSortInput\n $filter: JackpotPayoutFilterInput\n ) {\n jackpotPayouts(first: $first, after: $after, sort: $sort, filter: $filter) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n ... on JackpotPayout {\n id\n member {\n id\n name\n }\n serialCode\n jackpot {\n id\n name\n }\n multiplier\n bet\n amount\n dateTimeCreated\n game {\n provider\n }\n }\n }\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ FMC Device +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const REGISTER_FCM_DEVICE = gql`\n mutation RegisterFCMDevice($input: RegisterFCMDeviceInput!) {\n registerFCMDevice(input: $input)\n }\n`;\n\nexport const UNREGISTER_FCM_DEVICE = gql`\n mutation UnregisterFCMDevice($input: UnregisterFCMDeviceInput!) {\n unregisterFCMDevice(input: $input)\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ FAVORITE GAME +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const MARK_GAME_AS_FAVORITE = gql`\n mutation MarkGameAsFavorite($input: MarkGameAsFavoriteInput!) {\n markGameAsFavorite(input: $input)\n }\n`;\nexport const UNMARK_GAME_AS_FAVORITE = gql`\n mutation UnmarkGameAsFavorite($input: UnmarkGameAsFavoriteInput!) {\n unmarkGameAsFavorite(input: $input)\n }\n`;\n\nexport const FAVORITE_GAMES_QUERY = gql`\n query FavoriteGames {\n favoriteGames {\n id\n }\n }\n`;\n\nexport const WALLET_GAMES_QUERY = gql`\n query Games($first: Int $after: Cursor, $filter: GameFilterInput) {\n games(first: $first, after: $after, filter: $filter) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges{\n node{\n ... on Game{\n id\n name\n type\n provider\n }\n }\n }\n }\n }\n`;\nexport const GOOGLE_CLIEND_ID_QUERY = gql`\n query GoogleClientId {\n googleClientId\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ TOURNAMENTS +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const TOURNAMENTS_QUERY = gql`\n query Tournaments(\n $first: Int\n $after: Cursor\n $filter: TournamentFilterInput\n $currentFirst: Int\n $currentAfter: Cursor\n $previousFirst: Int\n $previousAfter: Cursor\n ) {\n tournaments(first: $first, after: $after, filter: $filter) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n ... on MultiplierTournament {\n id\n type\n name\n winnersCount\n status\n description\n activationStartDateTime\n activationEndDateTime\n topPayouts {\n id\n multiplier\n amount\n member {\n id\n name\n }\n }\n currentLeaderboard(first: $currentFirst, after: $currentAfter) {\n totalCount\n edges {\n node {\n ... on TournamentLeaderboard {\n id\n username\n multiplier\n dateTimeCreated\n prize\n game {\n id\n provider\n name\n external\n type\n }\n }\n }\n }\n }\n previousLeaderboard(first: $previousFirst, after: $previousAfter) {\n totalCount\n edges {\n node {\n ... on TournamentLeaderboard {\n id\n username\n multiplier\n dateTimeCreated\n prize\n game {\n id\n provider\n name\n external\n type\n }\n \n }\n }\n }\n }\n enabledGameProviders\n frequency\n mode\n mobileBanner {\n id\n url\n mimeType\n }\n webBanner {\n id\n url\n mimeType\n }\n rewardSettings\n }\n }\n }\n }\n }\n`;\n\nexport const MEMBER_CABINET_SITE_MACHINE_QUERY = gql`\n query MemberCabinetSiteMachine {\n memberCabinetSiteMachine {\n id\n name\n fingerprint\n status\n dateTimeCreated\n }\n }\n`;\n\nexport const CABINET_WITHDRAWAL_QUERY = gql`\n query CabinetWithdrawal($id: ObjectId!) {\n node(id: $id) {\n id\n ... on CabinetWithdrawal {\n account\n type\n reference\n amount\n status\n dateTimeCreated\n }\n }\n }\n`;\n","import type { OperationError } from '../types/index.js';\nimport type {\n\tAuthenticateError,\n\tClaimCashbackBonusError,\n\tClaimRewardError,\n\tClaimSpotBonusError,\n\tCreateDepositError,\n\tCreateGameSessionError,\n\tCreateMemberVerificationError,\n\tCreateSessionError,\n\tCreateTestDepositError,\n\tCreateWithdrawalError,\n\tEndGameSessionError,\n\tRedeemPointsToCashError,\n\tRefreshSessionError,\n\tRegisterMayaMemberAccountError,\n\tRegisterMemberAccountError,\n\tResetPasswordError,\n\tSendVerificationCodeError,\n\tSendVerificationCodeError__Next,\n\tSubmitMemberVerificationError,\n\tTransactionPasswordNotSetError,\n\tUPIReferenceNotAvailableError,\n\tUpdateMemberAccountError,\n\tUpdateMemberVerificationError,\n\tUpdateReferralCodeError,\n\tUploadPrivateImageFileError,\n\tVerifyMobileNumberError,\n\tMemberCabinetSiteMachineError\n} from './types.js';\n\ntype E =\n\t| ClaimCashbackBonusError\n\t| CreateDepositError\n\t| UploadPrivateImageFileError\n\t| CreateGameSessionError\n\t| EndGameSessionError\n\t| RegisterMemberAccountError\n\t| RegisterMayaMemberAccountError\n\t| UpdateMemberAccountError\n\t| ResetPasswordError\n\t| SendVerificationCodeError\n\t| VerifyMobileNumberError\n\t| CreateMemberVerificationError\n\t| UpdateMemberVerificationError\n\t| RedeemPointsToCashError\n\t| CreateWithdrawalError\n\t| CreateSessionError\n\t| RefreshSessionError\n\t| AuthenticateError\n\t| UpdateReferralCodeError\n\t| SendVerificationCodeError__Next\n\t| ClaimRewardError\n\t| ClaimSpotBonusError\n\t| TransactionPasswordNotSetError\n\t| UPIReferenceNotAvailableError\n\t| SubmitMemberVerificationError\n\t| CreateTestDepositError\n\t| MemberCabinetSiteMachineError;\n\nexport function createOperationError<T extends E>(code: T): OperationError<T> {\n\tconst messages: Record<E, string> = {\n\t\tPointsNotDivisibleBy100Error:\n\t\t\t'Please input points that are multiples of 100.',\n\t\tMaximumBonusesCountLimitExceededError: 'Maximum bonuses reached',\n\t\tInvalidPromoCodeError: 'Invalid Promo Code',\n\t\tSpotBonusAlreadyClaimedError:\n\t\t\t'This promo code has already been redeemed and cannot be used again',\n\t\tRewardAlreadyExpiredError:\n\t\t\t'Reward is either expired or no longer available',\n\t\tAccountNameNotAvailableError: 'Username is no longer available',\n\t\tAccountNotFoundError: 'Account does not exist',\n\t\tAccountNotVerifiedError: 'Account is not verified',\n\t\tCashbackBonusDoesNotExistError: 'Cashback bonus does not exists',\n\t\tDepositPromoMaximumAmountExceededError:\n\t\t\t'Deposit amount exceeds maximum amount for selected promo',\n\t\tDepositPromoMinimumAmountNotMetError:\n\t\t\t'Deposit amount does not meet minimum amount for selected promo',\n\t\tEmailAddressNotAvailableError: 'Email is no longer available',\n\t\tFileDoesNotExistError: 'File does not exist',\n\t\tFileFormatNotSupportedError: 'File format is not supported',\n\t\tFileNameTooLongError: 'File name is too long',\n\t\tFileNotReadyError: 'File is not yet ready',\n\t\tFileSizeTooBigError: 'File size is too big',\n\t\tGameDoesNotExistError: 'Game does not exist',\n\t\tInsufficientPointsError: 'Insufficient points',\n\t\tInvalidPlatformError: 'Invalid platform',\n\t\tInvalidReCAPTCHAResponseError: 'Invalid reCAPTCHA',\n\t\tInvalidSMSVerificationCodeError: 'Invalid SMS verification code',\n\t\tInvalidTransactionPasswordError: 'Invalid transaction password',\n\t\tInvalidVerificationCodeError: 'Invalid verification code',\n\t\tInvalidWithdrawalAmountError: 'Invalid withdrawal amount',\n\t\tMaximumDepositAmountExceededError: 'Maximum deposit amount exceeded',\n\t\tMemberVerificationAlreadyApprovedError:\n\t\t\t'Member verification is already approved',\n\t\tMemberVerificationAlreadyExistsError: 'Member verification already exists',\n\t\tMemberVerificationDoesNotExistError: 'Member verification does not exist',\n\t\tMinimumAgeRequirementError: 'Minimum age requirement not met',\n\t\tMinimumDepositAmountNotMetError: 'Minimum deposit amount not met',\n\t\tMinimumFirstDepositAmountNotMetError:\n\t\t\t'Minimum first deposit amount not met',\n\t\tMobileNumberAlreadyVerifiedError: 'Mobile number is already verified',\n\t\tMobileNumberNotAvailableError: 'Mobile number is no longer available',\n\t\tMobileNumberNotVerifiedError: 'Mobile number is not verified',\n\t\tNickNameNotAvailableError: 'Nickname is no longer available',\n\t\tNotEnoughBalanceError: 'Insufficient balance',\n\t\tNotReadyToSendVerficationCodeError: 'Not ready to send verification code',\n\t\tPromoNotEnabledError: 'Promo is not enabled',\n\t\tRealNameAlreadySetError: 'Real name is already set',\n\t\tValidIdAlreadySetError: 'Valid ID is already set',\n\t\tWalletDoesNotExistError: 'Wallet does not exist',\n\t\tWithdrawalDailyLimitExceededError: 'Daily withdrawal limit exceeded',\n\t\tGameProviderError: 'Game provider error',\n\t\tGameSessionAlreadyClosedError: 'Game session is already closed',\n\t\tGameSessionDoesNotExistError: 'Game session does not exist',\n\t\tReferralCodeNotAvailableError: 'Referral code is no longer available',\n\t\tAccountBlacklistedError: 'Account is blacklisted',\n\t\tInvalidTokenError: 'Invalid token',\n\t\tInvalidTokenOrSecretAnswerError: 'Invalid token or secret answer',\n\t\tSessionExpiredError: 'Session expired',\n\t\tRateLimitExceededError: 'Maximum number of requests reached',\n\t\tRewardAlreadyClaimedError: 'Reward is already claimed',\n\t\tReCAPTCHAVerificationFailedError: 'Invalid reCAPTCHA',\n\t\tAccountSuspendedError: 'Account is suspended',\n\t\tTransactionPasswordNotSetError: 'Transaction password is not set',\n\t\tUPIReferenceNotAvailableError: 'UPI reference is no longer available',\n\t\tGCashDirectApiRequestError: 'GCash direct API request error',\n\t\tVerificationDataIncompleteError: 'Verification data is incomplete',\n\t\tTurnoverRequirementNotYetFulfilledError:\n\t\t\t'Turnover requirement not yet fulfilled',\n\t\tFirstDepositRequiredError: 'First deposit is required',\n\t\tVerificationLockedError: 'Verification is locked',\n\t\tMachineNotFound: 'Machine not found'\n\t};\n\n\treturn {\n\t\tname: code,\n\t\tmessage: messages[code],\n\t};\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tACHIEVEMENT_SETTINGS_QUERY,\n\tANNOUNCEMENTS_QUERY,\n\tCREATE_MEMBER_VERIFICATION_MUTATION,\n\tCREATE_MEMBER_VERIFICATION_NEXT_MUTATION,\n\tDELETE_MEMBER_ACCOUNT_MUTATION,\n\tGOOGLE_CLIEND_ID_QUERY,\n\tMEMBER_ACCOUNT_QUERY,\n\tMEMBER_LEVEL_SETTINGS_QUERY,\n\tMEMBER_VERIFICATION_QUERY,\n\tPAYMENT_SETTINGS_QUERY,\n\tPLATFORM_QUERY,\n\tPOINTS_CLUB_SETTINGS_QUERY,\n\tPROFILE_COMPLETION_QUERY,\n\tREFERRAL_CODE_QUERY,\n\tREGISTER_MAYA_MEMBER_ACCOUNT_MUTATION,\n\tREGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION,\n\tREGISTER_MEMBER_ACCOUNT_BY_NAME_MUTATION,\n\tREGISTER_MEMBER_ACCOUNT_MUTATION,\n\tREGISTER_MEMBER_ACCOUNT_MUTATION__NEXT,\n\tREGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION,\n\tREQUIRE_FIRST_DEPOSIT_QUERY,\n\tRESET_PASSWORD_MUTATION,\n\tSEND_VERIFICATION_CODE_MUTATION,\n\tSUBMIT_MEMBER_VERIFICATION_MUTATION,\n\tUPDATE_MEMBER_ACCOUNT_MUTATION,\n\tUPDATE_MEMBER_VERIFICATION_MUTATION,\n\tUPDATE_MEMBER_VERIFICATION_NEXT_MUTATION,\n\tUPDATE_REFERRAL_CODE_MUTATION,\n\tVERIFY_MOBILE_NUMBER_MUTATION,\n} from './queries.js';\nimport type {\n\tAchievementSettingsQuery,\n\tAchievementSettingsResponse,\n\tAnnouncement,\n\tAnnouncementsQuery,\n\tAnnouncementsQueryVariables,\n\tCreateMemberVerificationError,\n\tCreateMemberVerificationMutation,\n\tCreateMemberVerificationMutationVariables,\n\tCreateMemberVerificationNextMutation,\n\tCreateMemberVerificationNextMutationVariables,\n\tDeleteMemberAccountMutation,\n\tDeleteMemberAccountMutationVariables,\n\tGoogleClientIdQuery,\n\tMemberAccount,\n\tMemberAccountQuery,\n\tMemberLevelSettings,\n\tMemberLevelSettingsQuery,\n\tMemberVerification,\n\tMemberVerificationQuery,\n\tPaginatedQueryResult,\n\tPaymentSettings,\n\tPaymentSettingsQuery,\n\tPlatform,\n\tPlatformQuery,\n\tPointsClubSettings,\n\tPointsClubSettingsQuery,\n\tProfileCompletion,\n\tProfileCompletionQuery,\n\tReferralCodeQuery,\n\tRegisterMayaMemberAccountError,\n\tRegisterMayaMemberAccountMutation,\n\tRegisterMayaMemberAccountMutationVariables,\n\tRegisterMemberAccountByMobileNumberError,\n\tRegisterMemberAccountByMobileNumberMutation,\n\tRegisterMemberAccountByMobileNumberMutationVariables,\n\tRegisterMemberAccountByNameMutation,\n\tRegisterMemberAccountByNameMutationVariables,\n\tRegisterMemberAccountError,\n\tRegisterMemberAccountMutation,\n\tRegisterMemberAccountMutationVariables,\n\tRegisterMemberAccountMutationVariables__Next,\n\tRegisterMemberAccountViaMobileMutation,\n\tRegisterMemberAccountViaMobileMutationVariables,\n\tRequireFirstDepositQuery,\n\tResetPasswordError,\n\tResetPasswordMutation,\n\tResetPasswordMutationVariables,\n\tSendVerificationCodeError,\n\tSendVerificationCodeMutation,\n\tSendVerificationCodeMutationVariables,\n\tSubmitMemberVerificationError,\n\tSubmitMemberVerificationMutation,\n\tSubmitMemberVerificationMutationVariables,\n\tUnlinkGoogleMutation,\n\tUnlinkGoogleMutationVariables,\n\tUpdateMemberAccountError,\n\tUpdateMemberAccountMutation,\n\tUpdateMemberAccountMutationVariables,\n\tUpdateMemberVerificationError,\n\tUpdateMemberVerificationMutation,\n\tUpdateMemberVerificationMutationVariables,\n\tUpdateMemberVerificationNextMutation,\n\tUpdateMemberVerificationNextMutationVariables,\n\tUpdateReferralCodeError,\n\tUpdateReferralCodeMutation,\n\tUpdateReferralCodeMutationVariables,\n\tVerifyMobileNumberError,\n\tVerifyMobileNumberMutation,\n\tVerifyMobileNumberMutationVariables,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\nexport class AccountService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\t/** aka `Query.self` */\n\tasync memberAccount(): Promise<OperationResult<never, MemberAccount>> {\n\t\tconst res =\n\t\t\tawait this.client.request<MemberAccountQuery>(MEMBER_ACCOUNT_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.memberAccount,\n\t\t};\n\t}\n\n\tasync registerMemberAccount(\n\t\tvariables: RegisterMemberAccountMutationVariables,\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountMutation,\n\t\t\tRegisterMemberAccountMutationVariables\n\t\t>(REGISTER_MEMBER_ACCOUNT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMemberAccount) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.registerMemberAccount.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync registerMemberAccountViaMobile(\n\t\tvariables: RegisterMemberAccountViaMobileMutationVariables,\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\n\t\tconst { reCAPTCHAResponse, testPass, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountViaMobileMutation,\n\t\t\tRegisterMemberAccountViaMobileMutationVariables\n\t\t>(REGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t\t...(testPass && {\n\t\t\t\t\t'test-pass': testPass,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMemberAccountViaMobile) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.registerMemberAccountViaMobile.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync registerMemberAccount__next(\n\t\tvariables: RegisterMemberAccountMutationVariables__Next,\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountMutation,\n\t\t\tRegisterMemberAccountMutationVariables__Next\n\t\t>(REGISTER_MEMBER_ACCOUNT_MUTATION__NEXT, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMemberAccount) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.registerMemberAccount.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync registerMemberAccountByName(\n\t\tvariables: RegisterMemberAccountByNameMutationVariables,\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountByNameMutation,\n\t\t\tRegisterMemberAccountByNameMutationVariables\n\t\t>(REGISTER_MEMBER_ACCOUNT_BY_NAME_MUTATION, variables, {\n\t\t\theaders: {\n\t\t\t\t...(variables.reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': variables.reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMemberAccountByName) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.registerMemberAccountByName.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync updateMemberAccount(\n\t\tvariables: UpdateMemberAccountMutationVariables,\n\t): Promise<OperationResult<UpdateMemberAccountError>> {\n\t\tconst res = await this.client.request<\n\t\t\tUpdateMemberAccountMutation,\n\t\t\tUpdateMemberAccountMutationVariables\n\t\t>(UPDATE_MEMBER_ACCOUNT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.updateMemberAccount) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.updateMemberAccount.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync deleteMemberAccount(\n\t\tvariables: DeleteMemberAccountMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tDeleteMemberAccountMutation,\n\t\t\tDeleteMemberAccountMutationVariables\n\t\t>(DELETE_MEMBER_ACCOUNT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (!res.data.deleteMemberAccount) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync unlinkGoogle(\n\t\tvariables: UnlinkGoogleMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tUnlinkGoogleMutation,\n\t\t\tUnlinkGoogleMutationVariables\n\t\t>(DELETE_MEMBER_ACCOUNT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (!res.data.unlinkGoogle) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync resetPassword(\n\t\tvariables: ResetPasswordMutationVariables,\n\t): Promise<OperationResult<ResetPasswordError>> {\n\t\tconst res = await this.client.request<\n\t\t\tResetPasswordMutation,\n\t\t\tResetPasswordMutationVariables\n\t\t>(RESET_PASSWORD_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.resetPassword) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.resetPassword.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync profileCompletion(): Promise<\n\t\tOperationResult<never, ProfileCompletion>\n\t> {\n\t\tconst res = await this.client.request<ProfileCompletionQuery>(\n\t\t\tPROFILE_COMPLETION_QUERY,\n\t\t);\n\n\t\treturn res.ok ? { ok: true, data: res.data.profileCompletion } : res;\n\t}\n\n\t/** @deprecated */\n\tasync platform(): Promise<OperationResult<never, Platform>> {\n\t\treturn await this.client.request<PlatformQuery>(PLATFORM_QUERY);\n\t}\n\n\tasync memberLevelSettings(): Promise<\n\t\tOperationResult<never, MemberLevelSettings>\n\t> {\n\t\treturn await this.client.request<MemberLevelSettingsQuery>(\n\t\t\tMEMBER_LEVEL_SETTINGS_QUERY,\n\t\t);\n\t}\n\n\tasync achievementSettings(): Promise<\n\t\tOperationResult<never, AchievementSettingsResponse>\n\t> {\n\t\treturn await this.client.request<AchievementSettingsQuery>(\n\t\t\tACHIEVEMENT_SETTINGS_QUERY,\n\t\t);\n\t}\n\n\t/** @deprecated */\n\tasync sendVerificationCode(\n\t\tvariables: SendVerificationCodeMutationVariables,\n\t): Promise<OperationResult<SendVerificationCodeError>> {\n\t\tconst res = await this.client.request<\n\t\t\tSendVerificationCodeMutation,\n\t\t\tSendVerificationCodeMutationVariables\n\t\t>(SEND_VERIFICATION_CODE_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.sendVerificationCode) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.sendVerificationCode.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync paymentSettings(): Promise<OperationResult<never, PaymentSettings>> {\n\t\treturn await this.client.request<PaymentSettingsQuery>(\n\t\t\tPAYMENT_SETTINGS_QUERY,\n\t\t);\n\t}\n\n\tasync verifyMobileNumber(\n\t\tvariables: VerifyMobileNumberMutationVariables,\n\t): Promise<OperationResult<VerifyMobileNumberError>> {\n\t\tconst res = await this.client.request<\n\t\t\tVerifyMobileNumberMutation,\n\t\t\tVerifyMobileNumberMutationVariables\n\t\t>(VERIFY_MOBILE_NUMBER_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.verifyMobileNumber) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.verifyMobileNumber.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMemberVerification(\n\t\tvariables: CreateMemberVerificationMutationVariables,\n\t): Promise<OperationResult<CreateMemberVerificationError>> {\n\t\tconst res = await this.client.request<\n\t\t\tCreateMemberVerificationMutation,\n\t\t\tCreateMemberVerificationMutationVariables\n\t\t>(CREATE_MEMBER_VERIFICATION_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMemberVerification) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createMemberVerification.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMemberVerification_Next(\n\t\tvariables: CreateMemberVerificationNextMutationVariables,\n\t): Promise<OperationResult<CreateMemberVerificationError>> {\n\t\tconst res = await this.client.request<\n\t\t\tCreateMemberVerificationNextMutation,\n\t\t\tCreateMemberVerificationNextMutationVariables\n\t\t>(CREATE_MEMBER_VERIFICATION_NEXT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMemberVerification_next) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createMemberVerification_next.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync updateMemberVerification(\n\t\tvariables: UpdateMemberVerificationMutationVariables,\n\t): Promise<OperationResult<UpdateMemberVerificationError>> {\n\t\tconst res = await this.client.request<\n\t\t\tUpdateMemberVerificationMutation,\n\t\t\tUpdateMemberVerificationMutationVariables\n\t\t>(UPDATE_MEMBER_VERIFICATION_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.updateMemberVerification) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.updateMemberVerification.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync updateMemberVerification_Next(\n\t\tvariables: UpdateMemberVerificationNextMutationVariables,\n\t): Promise<OperationResult<UpdateMemberVerificationError>> {\n\t\tconst res = await this.client.request<\n\t\t\tUpdateMemberVerificationNextMutation,\n\t\t\tUpdateMemberVerificationNextMutationVariables\n\t\t>(UPDATE_MEMBER_VERIFICATION_NEXT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.updateMemberVerification_next) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.updateMemberVerification_next.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync submitMemberVerification(\n\t\tvariables: SubmitMemberVerificationMutationVariables,\n\t): Promise<OperationResult<SubmitMemberVerificationError>> {\n\t\tconst res = await this.client.request<\n\t\t\tSubmitMemberVerificationMutation,\n\t\t\tSubmitMemberVerificationMutationVariables\n\t\t>(SUBMIT_MEMBER_VERIFICATION_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.submitMemberVerification) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.submitMemberVerification.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync memberVerification(): Promise<\n\t\tOperationResult<never, MemberVerification | null | undefined>\n\t> {\n\t\tconst res = await this.client.request<MemberVerificationQuery>(\n\t\t\tMEMBER_VERIFICATION_QUERY,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.memberAccount.verification,\n\t\t};\n\t}\n\n\tasync announcements(\n\t\tvariables?: AnnouncementsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Announcement>>> {\n\t\tconst res = await this.client.request<\n\t\t\tAnnouncementsQuery,\n\t\t\tAnnouncementsQueryVariables\n\t\t>(ANNOUNCEMENTS_QUERY, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.announcements,\n\t\t};\n\t}\n\n\tasync registerMayaMemberAccount(\n\t\tvariables: RegisterMayaMemberAccountMutationVariables,\n\t): Promise<OperationResult<RegisterMayaMemberAccountError>> {\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMayaMemberAccountMutation,\n\t\t\tRegisterMayaMemberAccountMutationVariables\n\t\t>(REGISTER_MAYA_MEMBER_ACCOUNT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMayaMemberAccount) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.registerMayaMemberAccount.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync referralCode(): Promise<\n\t\tOperationResult<never, string | null | undefined>\n\t> {\n\t\tconst res =\n\t\t\tawait this.client.request<ReferralCodeQuery>(REFERRAL_CODE_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.referralCode,\n\t\t};\n\t}\n\n\tasync updateReferralCode(\n\t\tvariables: UpdateReferralCodeMutationVariables,\n\t): Promise<OperationResult<UpdateReferralCodeError>> {\n\t\tconst res = await this.client.request<\n\t\t\tUpdateReferralCodeMutation,\n\t\t\tUpdateReferralCodeMutationVariables\n\t\t>(UPDATE_REFERRAL_CODE_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.updateReferralCode) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.updateReferralCode.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync pointsClubSettings(): Promise<\n\t\tOperationResult<never, PointsClubSettings | null | undefined>\n\t> {\n\t\tconst res = await this.client.request<PointsClubSettingsQuery>(\n\t\t\tPOINTS_CLUB_SETTINGS_QUERY,\n\t\t);\n\t\treturn res.ok ? { ok: true, data: res.data.pointsClubSettings } : res;\n\t}\n\n\tasync registerMemberAccountByMobileNumber(\n\t\tvariables: RegisterMemberAccountByMobileNumberMutationVariables,\n\t): Promise<OperationResult<RegisterMemberAccountByMobileNumberError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountByMobileNumberMutation,\n\t\t\tRegisterMemberAccountByMobileNumberMutationVariables\n\t\t>(REGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(variables.reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t\t...(variables.testPass && {\n\t\t\t\t\t'test-pass': 'true',\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMemberAccountByMobileNumber) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.registerMemberAccountByMobileNumber.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync googleClientId(): Promise<\n\t\tOperationResult<never, string | null | undefined>\n\t> {\n\t\tconst res = await this.client.request<GoogleClientIdQuery>(\n\t\t\tGOOGLE_CLIEND_ID_QUERY,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.googleClientId,\n\t\t};\n\t}\n\n\tasync requireFirstDeposit(): Promise<OperationResult<never, boolean>> {\n\t\tconst res = await this.client.request<RequireFirstDepositQuery>(\n\t\t\tREQUIRE_FIRST_DEPOSIT_QUERY,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.requireFirstDeposit,\n\t\t};\n\t}\n}\n","import type { HttpError, OperationError } from '../types/index.js';\n\nexport function statusCodeToOperationError(\n\tvalue: number,\n\tmessage?: string,\n): OperationError<HttpError> {\n\tconst e = ERROR_MAP[value] ? ERROR_MAP[value] : ERROR_MAP[500];\n\n\treturn {\n\t\tname: e.name,\n\t\tmessage: message ?? e.message,\n\t};\n}\n\nconst ERROR_MAP: Record<number, OperationError<HttpError>> = {\n\t400: { name: 'HttpBadRequest', message: 'Bad Request' },\n\t401: { name: 'HttpUnauthorized', message: 'Unauthorized' },\n\t403: { name: 'HttpForbidden', message: 'Forbidden' },\n\t404: { name: 'HttpNotFound', message: 'Not Found' },\n\t408: { name: 'HttpRequestTimeout', message: 'Request Timeout' },\n\t429: { name: 'HttpTooManyRequests', message: 'Too Many Requests' },\n\t500: { name: 'HttpInternalServerError', message: 'Internal Server Error' },\n};\n","import type { OperationResult } from '../types/index.js';\nimport { statusCodeToOperationError } from '../utils/status-code-to-operation-error.js';\nimport type {\n\tAuthenticateError,\n\tAuthenticateInput,\n\tAuthenticateMutation,\n\tCreateSessionError,\n\tCreateSessionInput,\n\tCreateSessionMutation,\n\tCreateSignleUseTokenError,\n\tCreateSingleUseTokenMutation,\n\tRefreshSessionError,\n\tRefreshSessionMutation,\n\tSendVerificationCodeError__Next,\n\tSendVerificationCodeInput__Next,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\ninterface FetchOptions {\n\theaders?: HeadersInit;\n}\n\nexport interface AuthServiceConfig {\n\turl: string;\n\tfetchOptions?: FetchOptions;\n}\n\nexport class AuthService {\n\tprivate url: string;\n\tprivate options: FetchOptions;\n\n\tconstructor(config: AuthServiceConfig) {\n\t\tthis.url = config.url;\n\t\tthis.options = config.fetchOptions ?? {};\n\t}\n\n\tprivate get headers() {\n\t\tconst headers = new Headers(this.options.headers);\n\t\theaders.append('Accept', 'application/json, text/plain');\n\t\theaders.append('Content-Type', 'application/json');\n\t\treturn headers;\n\t}\n\n\tasync createSession(\n\t\tinput: CreateSessionInput,\n\t): Promise<OperationResult<CreateSessionError, CreateSessionMutation>> {\n\t\tconst headers = new Headers(this.headers);\n\n\t\tif (input.channel) {\n\t\t\theaders.append('Channel', input.channel);\n\t\t}\n\n\t\tif (input.type === 'NAME_AND_PASSWORD') {\n\t\t\tconst data = `${input.name}:${input.password}`;\n\t\t\tconst token = Buffer.from(data).toString('base64');\n\n\t\t\theaders.set('Authorization', `Basic ${token}`);\n\t\t}\n\n\t\tif (input.type === 'MOBILE_NUMBER') {\n\t\t\tconst data = `${input.mobileNumber}:${input.verificationCode}`;\n\t\t\tconst token = Buffer.from(data).toString('base64');\n\n\t\t\theaders.set('Authorization', `MobileNumberOTP ${token}`);\n\t\t}\n\n\t\tif (input.type === 'MAYA') {\n\t\t\theaders.set('Authorization', `MayaSession ${input.sessionId}`);\n\t\t}\n\n\t\tif (input.type === 'SOCIALS') {\n\t\t\theaders.set('Authorization', `Token ${input.token}`);\n\t\t}\n\n\t\tif (input.type === 'CABINET') {\n\t\t\theaders.set('Authorization', `Opexa-Cabinet-Token ${input.token}`);\n\t\t}\n\n\t\tif (input.type === 'SINGLE_USE_TOKEN') {\n\t\t\theaders.set('Authorization', `Single-Use-Token ${input.token}`);\n\t\t}\n\n\t\tif (input.reCAPTCHAResponse) {\n\t\t\theaders.set('google-recaptcha-response', input.reCAPTCHAResponse);\n\t\t}\n\n\t\tif (input.testPass) {\n\t\t\theaders.set('test-pass', input.testPass);\n\t\t}\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/sessions`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders,\n\t\t\t});\n\n\t\t\tconst data = await res.json();\n\n\t\t\tif (res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (data.code === 'ACCOUNT_BLACKLISTED') {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('AccountBlacklistedError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (data.code === 'MEMBER_ACCOUNT_SUSPENDED') {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('AccountSuspendedError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (data.code === 'INVALID_RECAPTCHA_RESPONSE') {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('InvalidReCAPTCHAResponseError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n\n\tasync authenticate(\n\t\tinput: AuthenticateInput,\n\t): Promise<OperationResult<AuthenticateError, AuthenticateMutation>> {\n\t\tconst headers = new Headers(this.headers);\n\n\t\tif (input.channel) {\n\t\t\theaders.append('Channel', input.channel);\n\t\t}\n\n\t\tif (input.type === 'SECURITY_QUESTION') {\n\t\t\theaders.set('Authorization', `Bearer ${input.token}`);\n\n\t\t\ttry {\n\t\t\t\tconst res = await fetch(\n\t\t\t\t\t`${this.url}/session/${input.token}/authenticate`,\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\theaders,\n\t\t\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\t\t\tsecretAnswer: input.secretAnswer,\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tconst data = await res.json();\n\n\t\t\t\tif (res.ok) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: true,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (res.status === 401 || res.status === 403) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: createOperationError('InvalidTokenOrSecretAnswerError'),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t\t};\n\t\t\t} catch {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error(\"Invalid input 'type'\");\n\t}\n\n\tasync refreshSession(\n\t\trefreshToken: string,\n\t): Promise<OperationResult<RefreshSessionError, RefreshSessionMutation>> {\n\t\tconst headers = new Headers(this.headers);\n\n\t\theaders.append('Authorization', `Bearer ${refreshToken}`);\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/session:refresh`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders,\n\t\t\t});\n\n\t\t\tconst data = await res.json();\n\n\t\t\tif (res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (data.code === 'ACCOUNT_BLACKLISTED') {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('AccountBlacklistedError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (data.code === 'MEMBER_ACCOUNT_SUSPENDED') {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('AccountSuspendedError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (res.status === 403 || res.status === 401) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('InvalidTokenError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n\n\tasync destroySession(accessToken: string): Promise<OperationResult> {\n\t\tconst headers = new Headers(this.headers);\n\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/session`, {\n\t\t\t\tmethod: 'DELETE',\n\t\t\t\theaders,\n\t\t\t});\n\n\t\t\treturn res.ok\n\t\t\t\t? { ok: true }\n\t\t\t\t: { ok: false, error: statusCodeToOperationError(res.status) };\n\t\t} catch {\n\t\t\treturn { ok: false, error: statusCodeToOperationError(500) };\n\t\t}\n\t}\n\n\tasync verifySession(accessToken: string) {\n\t\tconst headers = new Headers(this.headers);\n\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/session`, {\n\t\t\t\tmethod: 'GET',\n\t\t\t\theaders,\n\t\t\t});\n\n\t\t\treturn res.ok;\n\t\t} catch {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tasync sendVerificationCode(\n\t\tinput: SendVerificationCodeInput__Next,\n\t): Promise<OperationResult<SendVerificationCodeError__Next>> {\n\t\tif (input.channel === 'EMAIL')\n\t\t\tthrow new Error('Email channel is not yet supported');\n\n\t\tfunction getErrorCode(\n\t\t\tmessage: string,\n\t\t): SendVerificationCodeError__Next | null {\n\t\t\tswitch (message) {\n\t\t\t\tcase 'MEMBER_NOT_FOUND':\n\t\t\t\t\treturn 'AccountNotFoundError';\n\t\t\t\tcase 'RATE_LIMIT_REACH':\n\t\t\t\t\treturn 'RateLimitExceededError';\n\t\t\t\tcase 'NOT_READY_TO_SEND_VERIFICATION_ERROR':\n\t\t\t\t\treturn 'NotReadyToSendVerficationCodeError';\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/otps`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: this.headers,\n\t\t\t\tbody: JSON.stringify(input),\n\t\t\t});\n\n\t\t\tif (res.status === 403) {\n\t\t\t\tconst data = await res.json();\n\t\t\t\tconst code = getErrorCode(data.message);\n\n\t\t\t\tif (code) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: createOperationError(code),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(res.status, data.message),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (!res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn { ok: true };\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n\n\tasync createSingleUseToken(\n\t\taccessToken: string,\n\t): Promise<\n\t\tOperationResult<CreateSignleUseTokenError, CreateSingleUseTokenMutation>\n\t> {\n\t\tconst headers = new Headers(this.headers);\n\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/token?ttl=30d`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders,\n\t\t\t});\n\n\t\t\tconst data = await res.json();\n\n\t\t\tif (res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (res.status === 403 || res.status === 401) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('InvalidTokenError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n}\n","function isFunction<Return, Args = never>(\n\tvalue: unknown | ((...args: Args[]) => Return),\n): value is (...args: Args[]) => Return {\n\treturn typeof value === 'function';\n}\n\nexport function callIfFn<Return, Args = never>(\n\tvalue: Return | ((...args: Args[]) => Return),\n\t...args: Args[]\n) {\n\tif (isFunction<Return, Args>(value)) {\n\t\treturn value(...args);\n\t} else {\n\t\treturn value;\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport { callIfFn } from '../utils/call-if-fn.js';\nimport { statusCodeToOperationError } from '../utils/status-code-to-operation-error.js';\nimport type {\n\tGame,\n\tGameQuery,\n\tGamesQuery,\n\tGamesQueryVariables,\n\tGamesQueryVariables__Next,\n\tPaginatedQueryResult,\n\tSite,\n\tSiteQuery,\n} from './types.js';\n\nexport interface CmsPortalServiceConfig {\n\turl: string;\n\tsite: string;\n\tplatform: string;\n\tfetch?: typeof globalThis.fetch | null;\n}\n\ntype Getter<T> = () => T;\n\nexport class CmsPortalService {\n\tprivate config: Getter<CmsPortalServiceConfig> | CmsPortalServiceConfig;\n\n\tconstructor(config: CmsPortalServiceConfig | Getter<CmsPortalServiceConfig>) {\n\t\tthis.config = config;\n\t}\n\n\tasync self(): Promise<OperationResult<never, Site>> {\n\t\tconst config = callIfFn(this.config);\n\n\t\tconst res = await this.getJson<SiteQuery>(`/v1/sites/${config.site}`);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.data,\n\t\t};\n\t}\n\n\tasync games(\n\t\tvariables?: GamesQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Game>>> {\n\t\tconst search = new URLSearchParams();\n\n\t\tif (variables?.first) search.set('first', variables.first.toString());\n\t\tif (variables?.after) search.set('after', variables.after);\n\t\tif (variables?.search) search.set('search', variables.search);\n\n\t\tif (variables?.filter?.type?.equal)\n\t\t\tsearch.set('filter[type][eq]', variables.filter.type.equal);\n\t\tif (variables?.filter?.type?.notEqual)\n\t\t\tsearch.set('filter[type][neq]', variables.filter.type.notEqual);\n\t\tif (variables?.filter?.type?.in)\n\t\t\tsearch.set('filter[type][in]', variables.filter.type.in.join(','));\n\t\tif (variables?.filter?.type?.notIn)\n\t\t\tsearch.set('filter[type][nin]', variables.filter.type.notIn.join(','));\n\n\t\tif (variables?.filter?.provider?.equal)\n\t\t\tsearch.set('filter[provider][eq]', variables.filter.provider.equal);\n\t\tif (variables?.filter?.provider?.notEqual)\n\t\t\tsearch.set('filter[provider][neq]', variables.filter.provider.notEqual);\n\t\tif (variables?.filter?.provider?.in)\n\t\t\tsearch.set(\n\t\t\t\t'filter[provider][in]',\n\t\t\t\tvariables.filter.provider.in.join(','),\n\t\t\t);\n\t\tif (variables?.filter?.provider?.notIn)\n\t\t\tsearch.set(\n\t\t\t\t'filter[provider][nin]',\n\t\t\t\tvariables.filter.provider.notIn.join(','),\n\t\t\t);\n\n\t\tif (variables?.filter?.tags?.equal)\n\t\t\tsearch.set('filter[tags][eq]', variables.filter.tags.equal.toLowerCase());\n\t\tif (variables?.filter?.tags?.notEqual)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][neq]',\n\t\t\t\tvariables.filter.tags.notEqual.toLowerCase(),\n\t\t\t);\n\t\tif (variables?.filter?.tags?.in)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][in]',\n\t\t\t\tvariables.filter.tags.in.map((v) => v.toLowerCase()).join(','),\n\t\t\t);\n\t\tif (variables?.filter?.tags?.notIn)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][nin]',\n\t\t\t\tvariables.filter.tags.notIn.map((v) => v.toLowerCase()).join(','),\n\t\t\t);\n\n\t\tif (variables?.filter?.reference?.equal)\n\t\t\tsearch.set('filter[reference][eq]', variables.filter.reference.equal);\n\t\tif (variables?.filter?.reference?.notEqual)\n\t\t\tsearch.set('filter[reference][neq]', variables.filter.reference.notEqual);\n\t\tif (variables?.filter?.reference?.in)\n\t\t\tsearch.set(\n\t\t\t\t'filter[reference][in]',\n\t\t\t\tvariables.filter.reference.in.join(','),\n\t\t\t);\n\t\tif (variables?.filter?.reference?.notIn)\n\t\t\tsearch.set(\n\t\t\t\t'filter[reference][nin]',\n\t\t\t\tvariables.filter.reference.notIn.join(','),\n\t\t\t);\n\n\t\tif (variables?.sort) search.set('sort[order]', variables.sort);\n\n\t\tconst res = await this.getJson<GamesQuery>('/v1/games', search);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tedges: res.data.data.map((node) => ({\n\t\t\t\t\tnode,\n\t\t\t\t\tcursor: node.cursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount ?? 0,\n\t\t\t\tpageInfo: {\n\t\t\t\t\thasNextPage: Boolean(res.data.next),\n\t\t\t\t\tendCursor: res.data.next,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync games__next(\n\t\tvariables?: GamesQueryVariables__Next,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Game>>> {\n\t\tconst search = new URLSearchParams();\n\n\t\tif (variables?.first) search.set('first', variables.first.toString());\n\t\tif (variables?.after) search.set('after', variables.after);\n\t\tif (variables?.search) search.set('search', variables.search);\n\n\t\tif (variables?.filter?.type?.equal)\n\t\t\tsearch.set('filter[type][eq]', variables.filter.type.equal);\n\t\tif (variables?.filter?.type?.notEqual)\n\t\t\tsearch.set('filter[type][neq]', variables.filter.type.notEqual);\n\t\tif (variables?.filter?.type?.in)\n\t\t\tsearch.set('filter[type][in]', variables.filter.type.in.join(','));\n\t\tif (variables?.filter?.type?.notIn)\n\t\t\tsearch.set('filter[type][nin]', variables.filter.type.notIn.join(','));\n\n\t\tif (variables?.filter?.provider?.equal)\n\t\t\tsearch.set('filter[provider][eq]', variables.filter.provider.equal);\n\t\tif (variables?.filter?.provider?.notEqual)\n\t\t\tsearch.set('filter[provider][neq]', variables.filter.provider.notEqual);\n\t\tif (variables?.filter?.provider?.in)\n\t\t\tsearch.set(\n\t\t\t\t'filter[provider][in]',\n\t\t\t\tvariables.filter.provider.in.join(','),\n\t\t\t);\n\t\tif (variables?.filter?.provider?.notIn)\n\t\t\tsearch.set(\n\t\t\t\t'filter[provider][nin]',\n\t\t\t\tvariables.filter.provider.notIn.join(','),\n\t\t\t);\n\n\t\tif (variables?.filter?.tags?.equal)\n\t\t\tsearch.set('filter[tags][eq]', variables.filter.tags.equal.toLowerCase());\n\t\tif (variables?.filter?.tags?.notEqual)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][neq]',\n\t\t\t\tvariables.filter.tags.notEqual.toLowerCase(),\n\t\t\t);\n\t\tif (variables?.filter?.tags?.in)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][in]',\n\t\t\t\tvariables.filter.tags.in.map((v) => v.toLowerCase()).join(','),\n\t\t\t);\n\t\tif (variables?.filter?.tags?.notIn)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][nin]',\n\t\t\t\tvariables.filter.tags.notIn.map((v) => v.toLowerCase()).join(','),\n\t\t\t);\n\n\t\tif (variables?.filter?.reference?.equal)\n\t\t\tsearch.set('filter[reference][eq]', variables.filter.reference.equal);\n\t\tif (variables?.filter?.reference?.notEqual)\n\t\t\tsearch.set('filter[reference][neq]', variables.filter.reference.notEqual);\n\t\tif (variables?.filter?.reference?.in)\n\t\t\tsearch.set(\n\t\t\t\t'filter[reference][in]',\n\t\t\t\tvariables.filter.reference.in.join(','),\n\t\t\t);\n\t\tif (variables?.filter?.reference?.notIn)\n\t\t\tsearch.set(\n\t\t\t\t'filter[reference][nin]',\n\t\t\t\tvariables.filter.reference.notIn.join(','),\n\t\t\t);\n\n\t\tif (variables?.sort) {\n\t\t\tsearch.set('sort[order]', variables.sort.order);\n\t\t\tsearch.set('sort[context]', variables.sort.context.toLowerCase());\n\t\t}\n\n\t\tconst res = await this.getJson<GamesQuery>('/v2/games', search);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tedges: res.data.data.map((node) => ({\n\t\t\t\t\tnode,\n\t\t\t\t\tcursor: node.cursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount ?? 0,\n\t\t\t\tpageInfo: {\n\t\t\t\t\thasNextPage: Boolean(res.data.next),\n\t\t\t\t\tendCursor: res.data.next,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync game(\n\t\tid: string,\n\t): Promise<OperationResult<never, Game | null | undefined>> {\n\t\tconst res = await this.getJson<GameQuery>(`/v1/games/${id}`);\n\n\t\tif (res.error?.name === 'HttpNotFound') {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.data,\n\t\t};\n\t}\n\n\tprivate async getJson<T>(\n\t\tpath: string,\n\t\tparams?: URLSearchParams,\n\t): Promise<OperationResult<never, T>> {\n\t\tconst config = callIfFn(this.config);\n\t\tconst fetch_ = config.fetch ?? fetch;\n\n\t\tconst req = new Request(\n\t\t\t`${config.url}${path}?${params?.toString() ?? ''}`,\n\t\t\t{\n\t\t\t\tmethod: 'GET',\n\t\t\t\theaders: {\n\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t'Site-ID': config.site,\n\t\t\t\t\t'Platform-ID': config.platform,\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\n\t\ttry {\n\t\t\tconst res = await fetch_(req);\n\n\t\t\tif (!res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: await res.json(),\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport { FILE_QUERY, UPLOAD_PRIVATE_IMAGE_FILE_MUTATION } from './queries.js';\nimport type {\n\tFile,\n\tFileQuery,\n\tFileQueryVariables,\n\tUploadPrivateImageFileError,\n\tUploadPrivateImageFileMutation,\n\tUploadPrivateImageFileMutationVariables,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\nexport class FileService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync file(\n\t\tvariables: FileQueryVariables,\n\t): Promise<OperationResult<never, File | null | undefined>> {\n\t\tconst res = await this.client.request<FileQuery, FileQueryVariables>(\n\t\t\tFILE_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.node,\n\t\t};\n\t}\n\n\tasync uploadPrivateImageFile(\n\t\tvariables: UploadPrivateImageFileMutationVariables,\n\t): Promise<OperationResult<UploadPrivateImageFileError>> {\n\t\tconst res = await this.client.upload<\n\t\t\tUploadPrivateImageFileMutation,\n\t\t\tUploadPrivateImageFileMutationVariables\n\t\t>(UPLOAD_PRIVATE_IMAGE_FILE_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.uploadPrivateImageFile) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.uploadPrivateImageFile.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tCREATE_GAME_SESSION_MUTATION,\n\tEND_GAME_SESSION_MUTATION,\n\tGAME_SESSION_QUERY,\n} from './queries.js';\nimport type {\n\tCreateGameSessionError,\n\tCreateGameSessionMutation,\n\tCreateGameSessionMutationVariables,\n\tEndGameSessionMutation,\n\tEndGameSessionMutationVariables,\n\tGameSession,\n\tGameSessionQuery,\n\tGameSessionQueryVariables,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\nexport class GameService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync gameSession(\n\t\tvariables: GameSessionQueryVariables,\n\t): Promise<OperationResult<never, GameSession | null | undefined>> {\n\t\tconst res = await this.client.request<\n\t\t\tGameSessionQuery<true>,\n\t\t\tGameSessionQueryVariables\n\t\t>(GAME_SESSION_QUERY.legacy, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tconst data = !res.data.node\n\t\t\t? null\n\t\t\t: { ...res.data.node, game: res.data.node.game.id };\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata,\n\t\t};\n\t}\n\n\tasync createGameSession(\n\t\tvariables: CreateGameSessionMutationVariables,\n\t): Promise<OperationResult<CreateGameSessionError>> {\n\t\tconst res = await this.client.request<\n\t\t\tCreateGameSessionMutation,\n\t\t\tCreateGameSessionMutationVariables\n\t\t>(CREATE_GAME_SESSION_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (res.data.createGameSession) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createGameSession.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync endGameSession(\n\t\tvariables: EndGameSessionMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tEndGameSessionMutation<true>,\n\t\t\tEndGameSessionMutationVariables\n\t\t>(END_GAME_SESSION_MUTATION.legacy, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.endGameSession) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tCOMPLETE_ONBOARDING_MUTATION,\n\tLATEST_BET_RECORDS_QUERY,\n\tONBOARDING_STATUS_QUERY,\n\tPLATFORM_QUERY__NEXT,\n\tRECOMMENDED_GAMES_QUERY,\n\tSKIP_ONBOARDING_MUTATION,\n\tTOP_WINS_NEXT_QUERY,\n\tTOP_WINS_QUERY,\n} from './queries.js';\nimport type {\n\tCompleteOnboardingMutation,\n\tCompleteOnboardingMutationVariables,\n\tLatestBetRecord,\n\tLatestBetRecordsQuery,\n\tOnboardingStatus,\n\tOnboardingStatusQuery,\n\tPlatformQuery__Next,\n\tRecommendedGame,\n\tRecommendedGamesQuery,\n\tSkipOnboardingMutation,\n\tTopWin,\n\tTopWinsNextQuery,\n\tTopWinsQuery,\n} from './types.js';\n\nexport class PortalService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync latestBetRecords(): Promise<OperationResult<never, LatestBetRecord[]>> {\n\t\tconst res = await this.client.request<LatestBetRecordsQuery>(\n\t\t\tLATEST_BET_RECORDS_QUERY,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.latestBetRecords,\n\t\t};\n\t}\n\n\tasync platform(): Promise<OperationResult<never, PlatformQuery__Next>> {\n\t\tconst res =\n\t\t\tawait this.client.request<PlatformQuery__Next>(PLATFORM_QUERY__NEXT);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data,\n\t\t};\n\t}\n\n\tasync recommendedGames(): Promise<OperationResult<never, RecommendedGame[]>> {\n\t\tconst res = await this.client.request<RecommendedGamesQuery>(\n\t\t\tRECOMMENDED_GAMES_QUERY,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.recommendedGames,\n\t\t};\n\t}\n\tasync onboardingStatus(): Promise<OperationResult<never, OnboardingStatus>> {\n\t\tconst res = await this.client.request<OnboardingStatusQuery>(\n\t\t\tONBOARDING_STATUS_QUERY,\n\t\t);\n\t\treturn res.ok ? { ok: res.ok, data: res.data.onboardingStatus ?? [] } : res;\n\t}\n\n\tasync completeOnboarding(\n\t\tvariables: CompleteOnboardingMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tCompleteOnboardingMutation,\n\t\t\tCompleteOnboardingMutationVariables\n\t\t>(COMPLETE_ONBOARDING_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (!res.data.completeOnboarding) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync skipOnboarding(): Promise<OperationResult> {\n\t\tconst res = await this.client.request<SkipOnboardingMutation>(\n\t\t\tSKIP_ONBOARDING_MUTATION,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (!res.data.skipOnboarding) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync topWins(): Promise<OperationResult<never, TopWin[]>> {\n\t\tconst res = await this.client.request<TopWinsQuery>(TOP_WINS_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.topWins,\n\t\t};\n\t}\n\tasync topWinsNext(): Promise<OperationResult<never, TopWin[]>> {\n\t\tconst res =\n\t\t\tawait this.client.request<TopWinsNextQuery>(TOP_WINS_NEXT_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data._topWins,\n\t\t};\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tACHIEVEMENT_POINTS_HISTORY_RECORD_QUERY,\n\tACTIVITY_RECORDS_QUERY,\n\tBET_RECORDS_QUERY,\n\tDEPOSIT_RECORDS_QUERY,\n\tDEPOSITS_COUNT_QUERY,\n\tDOWNLINES_BY_NAME_QUERY,\n\tJACKPOT_PAYOUTS_QUERY,\n\tJACKPOTS_QUERY,\n\tMEMBER_ACHIEVEMENTS_QUERY,\n\tPOINTS_WALLET_TRANSACTIONS_QUERY,\n\tPROMO_BY_CODE_QUERY,\n\tREFERRAL_COMMISSION_QUERY,\n\tREFERRALS_QUERY,\n\tTOURNAMENTS_QUERY,\n\tTRANSACTION_RECORDS_QUERY,\n\tUPLINES_BY_NAME_QUERY,\n\tWITHDRAWAL_RECORDS_QUERY,\n} from './queries.js';\nimport type {\n\tAchievementPointsHistoryRecord,\n\tAchievementPointsHistoryRecordQuery,\n\tAchievementPointsHistoryRecordQueryVariables,\n\tActivityRecord,\n\tActivityRecordsQuery,\n\tActivityRecordsQueryVariables,\n\tBetRecord,\n\tBetRecordsQuery,\n\tBetRecordsQueryVariables,\n\tDepositRecord,\n\tDepositRecordsQuery,\n\tDepositRecordsQueryVariables,\n\tDepositsCountQuery,\n\tDownlinesByNameQuery,\n\tDownlinesByNameQueryVariables,\n\tJackpot,\n\tJackpotPayout,\n\tJackpotPayoutsQuery,\n\tJackpotPayoutsQueryVariables,\n\tJackpotsQuery,\n\tJackpotsQueryVariables,\n\tMemberAchievement,\n\tMemberAchievementsQuery,\n\tPaginatedQueryResult,\n\tPointsWalletTransaction,\n\tPointsWalletTransactionsQuery,\n\tPointsWalletTransactionsQueryVariables,\n\tPromoByCodeQuery,\n\tPromoByCodeQueryVariables,\n\tReferral,\n\tReferralCommission,\n\tReferralCommissionQuery,\n\tReferralsQuery,\n\tReferralsQueryVariables,\n\tSpotBonusPromo,\n\tTournament,\n\tTournamentsQuery,\n\tTournamentsQueryVariables,\n\tTransactionRecord,\n\tTransactionRecordsQuery,\n\tTransactionRecordsQueryVariables,\n\tUplinesByNameQuery,\n\tUplinesByNameQueryVariables,\n\tWithdrawalRecord,\n\tWithdrawalRecordsQuery,\n\tWithdrawalRecordsQueryVariables,\n} from './types.js';\n\nexport class ReportService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync betRecords(\n\t\tvariables?: BetRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<BetRecord>>> {\n\t\tconst res = await this.client.request<\n\t\t\tBetRecordsQuery,\n\t\t\tBetRecordsQueryVariables\n\t\t>(BET_RECORDS_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.betRecords } : res;\n\t}\n\n\tasync transactionRecords(\n\t\tvariables?: TransactionRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<TransactionRecord>>> {\n\t\tconst res = await this.client.request<\n\t\t\tTransactionRecordsQuery,\n\t\t\tTransactionRecordsQueryVariables\n\t\t>(TRANSACTION_RECORDS_QUERY, variables);\n\n\t\treturn res.ok\n\t\t\t? { ok: res.ok, data: res.data.member.transactionRecords }\n\t\t\t: res;\n\t}\n\n\tasync withdrawalRecords(\n\t\tvariables?: WithdrawalRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<WithdrawalRecord>>> {\n\t\tconst res = await this.client.request<\n\t\t\tWithdrawalRecordsQuery,\n\t\t\tWithdrawalRecordsQueryVariables\n\t\t>(WITHDRAWAL_RECORDS_QUERY, variables);\n\n\t\treturn res.ok\n\t\t\t? { ok: res.ok, data: res.data.member.withdrawalRecords }\n\t\t\t: res;\n\t}\n\n\tasync depositRecords(\n\t\tvariables?: DepositRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<DepositRecord>>> {\n\t\tconst res = await this.client.request<\n\t\t\tDepositRecordsQuery,\n\t\t\tDepositRecordsQueryVariables\n\t\t>(DEPOSIT_RECORDS_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.depositRecords } : res;\n\t}\n\n\tasync depositsCount(): Promise<OperationResult<never, number>> {\n\t\tconst res =\n\t\t\tawait this.client.request<DepositsCountQuery>(DEPOSITS_COUNT_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.depositsCount } : res;\n\t}\n\n\tasync pointsWalletTransactions(\n\t\tvariables?: PointsWalletTransactionsQueryVariables,\n\t): Promise<\n\t\tOperationResult<never, PaginatedQueryResult<PointsWalletTransaction>>\n\t> {\n\t\tconst res = await this.client.request<\n\t\t\tPointsWalletTransactionsQuery,\n\t\t\tPointsWalletTransactionsQueryVariables\n\t\t>(POINTS_WALLET_TRANSACTIONS_QUERY, variables);\n\n\t\treturn res.ok\n\t\t\t? { ok: res.ok, data: res.data.member.pointsWalletTransactions }\n\t\t\t: res;\n\t}\n\n\tasync achievementPointsHistoryRecord(\n\t\tvariables?: AchievementPointsHistoryRecordQueryVariables,\n\t): Promise<\n\t\tOperationResult<never, PaginatedQueryResult<AchievementPointsHistoryRecord>>\n\t> {\n\t\tconst res = await this.client.request<\n\t\t\tAchievementPointsHistoryRecordQuery,\n\t\t\tAchievementPointsHistoryRecordQueryVariables\n\t\t>(ACHIEVEMENT_POINTS_HISTORY_RECORD_QUERY, variables);\n\n\t\treturn res.ok\n\t\t\t? { ok: res.ok, data: res.data.achievementPointsHistoryRecords }\n\t\t\t: res;\n\t}\n\n\tasync activityRecords(\n\t\tvariables?: ActivityRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<ActivityRecord>>> {\n\t\tconst res = await this.client.request<\n\t\t\tActivityRecordsQuery,\n\t\t\tActivityRecordsQueryVariables\n\t\t>(ACTIVITY_RECORDS_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.activityRecords } : res;\n\t}\n\n\tasync referrals(\n\t\tvariables?: ReferralsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Referral>>> {\n\t\tconst res = await this.client.request<\n\t\t\tReferralsQuery,\n\t\t\tReferralsQueryVariables\n\t\t>(REFERRALS_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.referrals } : res;\n\t}\n\n\tasync referralCommission(): Promise<\n\t\tOperationResult<never, ReferralCommission | null | undefined>\n\t> {\n\t\tconst res = await this.client.request<ReferralCommissionQuery>(\n\t\t\tREFERRAL_COMMISSION_QUERY,\n\t\t);\n\n\t\treturn res.ok\n\t\t\t? { ok: res.ok, data: res.data.member.referralCommission }\n\t\t\t: res;\n\t}\n\n\tasync uplinesByName(\n\t\tvariables: UplinesByNameQueryVariables,\n\t): Promise<OperationResult<never, Referral[]>> {\n\t\tconst res = await this.client.request<\n\t\t\tUplinesByNameQuery,\n\t\t\tUplinesByNameQueryVariables\n\t\t>(UPLINES_BY_NAME_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.uplinesByName } : res;\n\t}\n\tasync downlinesByName(\n\t\tvariables: DownlinesByNameQueryVariables,\n\t): Promise<OperationResult<never, Referral[]>> {\n\t\tconst res = await this.client.request<\n\t\t\tDownlinesByNameQuery,\n\t\t\tDownlinesByNameQueryVariables\n\t\t>(DOWNLINES_BY_NAME_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.downlinesByName } : res;\n\t}\n\n\tasync promoByCode(\n\t\tvariables: PromoByCodeQueryVariables,\n\t): Promise<OperationResult<never, SpotBonusPromo>> {\n\t\tconst res = await this.client.request<\n\t\t\tPromoByCodeQuery,\n\t\t\tPromoByCodeQueryVariables\n\t\t>(PROMO_BY_CODE_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.promoByCode } : res;\n\t}\n\n\tasync jackpots(\n\t\tvariables?: JackpotsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Jackpot>>> {\n\t\tconst res = await this.client.request<\n\t\t\tJackpotsQuery,\n\t\t\tJackpotsQueryVariables\n\t\t>(JACKPOTS_QUERY, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.jackpots,\n\t\t};\n\t}\n\n\tasync jackpotPayouts(\n\t\tvariables?: JackpotPayoutsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<JackpotPayout>>> {\n\t\tconst res = await this.client.request<\n\t\t\tJackpotPayoutsQuery,\n\t\t\tJackpotPayoutsQueryVariables\n\t\t>(JACKPOT_PAYOUTS_QUERY, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.jackpotPayouts,\n\t\t};\n\t}\n\n\tasync tournaments(\n\t\tvariables?: TournamentsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Tournament>>> {\n\t\tconst res = await this.client.request<\n\t\t\tTournamentsQuery,\n\t\t\tTournamentsQueryVariables\n\t\t>(TOURNAMENTS_QUERY, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.tournaments,\n\t\t};\n\t}\n\n\tasync memberAchievements(): Promise<\n\t\tOperationResult<never, MemberAchievement>\n\t> {\n\t\tconst res = await this.client.request<MemberAchievementsQuery>(\n\t\t\tMEMBER_ACHIEVEMENTS_QUERY,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data } : res;\n\t}\n}\n","import type { OperationResult } from \"../types/index.js\";\nimport type { GraphQLClient } from \"../utils/graphql-client.js\";\nimport {\n AVAILABLE_QUESTS_QUERY,\n CHECK_IN_DAILY_QUEST_MUTATION,\n CLAIM_REWARD_MUTATION,\n MARK_ALL_MESSAGE_AS_READ_MUTATION,\n MARK_ALL_MESSAGES_AS_READ_MUTATION,\n MARK_MESSAGE_AS_READ_MUTATION,\n MESSAGES_QUERY,\n REGISTER_FCM_DEVICE,\n UNREAD_MESSAGES_COUNT_QUERY,\n UNREGISTER_FCM_DEVICE,\n} from \"./queries.js\";\nimport type {\n AvailableQuestsQuery,\n CheckInDailyQuestMutation,\n CheckInDailyQuestQueryVariables,\n ClaimRewardError,\n ClaimRewardMutation,\n ClaimRewardMutationVariables,\n MarkAllMessageAsReadMutation,\n MarkAllMessagesAsReadMutation,\n MarkMessageAsReadMutation,\n MarkMessageAsReadMutationVariables,\n Message,\n MessagesQuery,\n MessagesQueryVariables,\n PaginatedQueryResult,\n Quest,\n RegisterFCMDeviceMutation,\n RegisterFCMDeviceMutationVariables,\n UnreadMessagesCountQuery,\n UnreadMessagesCountQueryVariables,\n UnregisterFCMDeviceMutation,\n UnregisterFCMDeviceMutationVariables,\n} from \"./types.js\";\nimport { createOperationError } from \"./utils.js\";\n\nexport class TriggerService {\n private client: GraphQLClient;\n\n constructor(client: GraphQLClient) {\n this.client = client;\n }\n\n async messages(\n variables?: MessagesQueryVariables\n ): Promise<OperationResult<never, PaginatedQueryResult<Message>>> {\n const res = await this.client.request<\n MessagesQuery,\n MessagesQueryVariables\n >(MESSAGES_QUERY, variables);\n\n return res.ok ? { ok: res.ok, data: res.data.messages } : res;\n }\n\n async unreadMessagesCount(\n variables?: UnreadMessagesCountQueryVariables\n ): Promise<OperationResult<never, number>> {\n const res = await this.client.request<\n UnreadMessagesCountQuery,\n MessagesQueryVariables\n >(UNREAD_MESSAGES_COUNT_QUERY, {\n ...variables,\n filter: {\n ...variables?.filter,\n markedAsRead: {\n equal: false,\n },\n },\n });\n\n return res.ok ? { ok: res.ok, data: res.data.messages.totalCount } : res;\n }\n\n async markMessageAsRead(\n variables: MarkMessageAsReadMutationVariables\n ): Promise<OperationResult> {\n const res = await this.client.request<\n MarkMessageAsReadMutation,\n MarkMessageAsReadMutationVariables\n >(MARK_MESSAGE_AS_READ_MUTATION, variables);\n\n if (!res.ok) return res;\n if (!res.data.markMessageAsRead) {\n return {\n ok: false,\n error: {\n name: \"UnknownError\",\n message: \"Something went wrong.\",\n },\n };\n }\n\n return {\n ok: true,\n };\n }\n\n /**\n * @deprecated\n */\n async markAllMessageAsRead(): Promise<OperationResult> {\n const res = await this.client.request<MarkAllMessageAsReadMutation>(\n MARK_ALL_MESSAGE_AS_READ_MUTATION\n );\n\n if (!res.ok) return res;\n if (!res.data.markAllMessageAsRead) {\n return {\n ok: false,\n error: {\n name: \"UnknownError\",\n message: \"Something went wrong.\",\n },\n };\n }\n\n return {\n ok: true,\n };\n }\n\n async markAllMessagesAsRead(): Promise<OperationResult> {\n const res = await this.client.request<MarkAllMessagesAsReadMutation>(\n MARK_ALL_MESSAGES_AS_READ_MUTATION\n );\n\n if (!res.ok) return res;\n if (!res.data.markAllMessagesAsRead) {\n return {\n ok: false,\n error: {\n name: \"UnknownError\",\n message: \"Something went wrong.\",\n },\n };\n }\n\n return {\n ok: true,\n };\n }\n\n async claimReward(\n variables: ClaimRewardMutationVariables\n ): Promise<OperationResult<ClaimRewardError>> {\n const res = await this.client.request<\n ClaimRewardMutation,\n ClaimRewardMutationVariables\n >(CLAIM_REWARD_MUTATION, variables);\n\n if (!res.ok) return res;\n\n if (res.data.claimReward) {\n return {\n ok: false,\n error: createOperationError(res.data.claimReward.__typename),\n };\n }\n\n return {\n ok: true,\n };\n }\n\n async availableQuests(): Promise<OperationResult<never, Quest[]>> {\n const res = await this.client.request<AvailableQuestsQuery>(\n AVAILABLE_QUESTS_QUERY\n );\n\n if (!res.ok) return res;\n\n return {\n ok: true,\n data: res.data.availableQuests,\n };\n }\n\n async checkInDailyQuest(\n variables: CheckInDailyQuestQueryVariables\n ): Promise<OperationResult<never, boolean>> {\n const res = await this.client.request<CheckInDailyQuestMutation>(\n CHECK_IN_DAILY_QUEST_MUTATION,\n variables\n );\n\n if (!res.ok) return res;\n\n return {\n ok: true,\n data: res.data.checkInDailyQuest,\n };\n }\n\n async registerFCMDevice(\n variables: RegisterFCMDeviceMutationVariables\n ): Promise<OperationResult> {\n const res = await this.client.request<\n RegisterFCMDeviceMutation,\n RegisterFCMDeviceMutationVariables\n >(REGISTER_FCM_DEVICE, variables);\n\n if (!res.ok) return res;\n if (!res.data.registerFCMDevice) {\n return {\n ok: false,\n error: {\n name: \"UnknownError\",\n message: \"Something went wrong.\",\n },\n };\n }\n\n return {\n ok: true,\n };\n }\n\n async unregisterFCMDevice(\n variables: UnregisterFCMDeviceMutationVariables\n ): Promise<OperationResult> {\n const res = await this.client.request<\n UnregisterFCMDeviceMutation,\n UnregisterFCMDeviceMutationVariables\n >(UNREGISTER_FCM_DEVICE, variables);\n\n if (!res.ok) return res;\n if (!res.data.unregisterFCMDevice) {\n return {\n ok: false,\n error: {\n name: \"UnknownError\",\n message: \"Something went wrong.\",\n },\n };\n }\n\n return {\n ok: true,\n };\n }\n}\n","import type { WalletGame } from '../sdk/types.js';\nimport type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tAVAILABLE_PROMOS_QUERY,\n\tBONUS_QUERY,\n\tBONUSES_QUERY,\n\tCABINET_WITHDRAWAL_QUERY,\n\tCASHBACK_BONUSES_QUERY,\n\tCASHBACKS_QUERY,\n\tCLAIM_CASHBACK_BONUS_MUTATION,\n\tCLAIM_SPOT_BONUS,\n\tCREATE_AIO_GCASH_DEPOSIT_MUTATION,\n\tCREATE_AIO_GRAB_PAY_DEPOSIT_MUTATION,\n\tCREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION,\n\tCREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION_NEXT,\n\tCREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION,\n\tCREATE_AIO_PALAWAN_PAY_DEPOSIT_MUTATION,\n\tCREATE_AIO_PAY_MAYA_DEPOSIT_MUTATION,\n\tCREATE_AIO_QRPH_DEPOSIT_MUTATION,\n\tCREATE_BANK_WITHDRAWAL_MUTATION,\n\tCREATE_GAME_SESSION_MUTATION,\n\tCREATE_GCASH_DEPOSIT_MUTATION,\n\tCREATE_GCASH_STANDARD_CASHIN_WITHDRAWAL_MUTATION,\n\tCREATE_GCASH_WEBPAY_DEPOSIT_MUTATION,\n\tCREATE_GCASH_WITHDRAWAL_MUTATION,\n\tCREATE_MANUAL_BANK_DEPOSIT_MUTATION,\n\tCREATE_MANUAL_BANK_WITHDRAWAL_MUTATION,\n\tCREATE_MANUAL_UPI_DEPOSIT_MUTATION,\n\tCREATE_MANUAL_UPI_WITHDRAWAL_MUTATION,\n\tCREATE_MAYA_APP_DEPOSIT_MUTATION,\n\tCREATE_MAYA_APP_WITHDRAWAL_MUTATION,\n\tCREATE_MAYA_DEPOSIT_MUTATION,\n\tCREATE_MAYA_WEBPAY_DEPOSIT_MUTATION,\n\tCREATE_MAYA_WITHDRAWAL_MUTATION,\n\tCREATE_TEST_DEPOSIT_MUTATION,\n\tDEPOSIT_QUERY,\n\tEND_GAME_SESSION_MUTATION,\n\tFAVORITE_GAMES_QUERY,\n\tGAME_SESSION_QUERY,\n\tINSTAPAY_BANK_LIST_QUERY,\n\tMARK_GAME_AS_FAVORITE,\n\tMAYA_SESSION_QUERY,\n\tPOINTS_WALLET_QUERY,\n\tPROMOS_QUERY,\n\tREDEEM_POINTS_TO_CASH_MUTATION,\n\tREDEEM_VOUCHER_MUTATION,\n\tREMAINING_DAILY_WITHDRAWALS_COUNT_QUERY,\n\tTOUCH_GCASH_DEPOSIT_MUTATION,\n\tTOUCH_QRPH_DEPOSIT_MUTATION,\n\tUNMARK_GAME_AS_FAVORITE,\n\tVALIDATE_MAYA_SESSION_MUTATION,\n\tWALLET_GAMES_QUERY,\n\tWALLET_QUERY,\n} from './queries.js';\nimport type {\n\tAvailablePromosQuery,\n\tAvailablePromosQueryVariables,\n\tBonus,\n\tBonusesQuery,\n\tBonusQuery,\n\tCabinetWithdrawal,\n\tCabinetWithdrawalQuery,\n\tCabinetWithdrawalQueryVariables,\n\tCashback,\n\tCashbackBonus,\n\tCashbackBonusesQuery,\n\tCashbacksQuery,\n\tClaimCashbackBonusError,\n\tClaimCashbackBonusMutation,\n\tClaimCashbackBonusMutationVariables,\n\tClaimSpotBonusError,\n\tClaimSpotBonusMutation,\n\tClaimSpotBonusMutationVariables,\n\tCreateAiOGCashDepositMutation,\n\tCreateAiOGCcashDepositMutationVariables,\n\tCreateAiOGrabPayDepositMutation,\n\tCreateAiOGrabPayDepositMutationVariables,\n\tCreateAIOInstapayWithdrawalMutation,\n\tCreateAIOInstapayWithdrawalMutationVariables,\n\tCreateAIOInstapayWithdrawalNextMutation,\n\tCreateAIOInstapayWithdrawalNextMutationVariables,\n\tCreateAIOOnlineBankDepositMutation,\n\tCreateAIOOnlineBankDepositMutationVariables,\n\tCreateAiOPalawanPayDepositMutation,\n\tCreateAiOPalawanPayDepositMutationVariables,\n\tCreateAiOPayMayaDepositMutation,\n\tCreateAiOPayMayaDepositMutationVariables,\n\tCreateAIOQRPHDepositMutation,\n\tCreateAIOQRPHDepositMutationVariables,\n\tCreateBankWithdrawalMutation,\n\tCreateBankWithdrawalMutationVariables,\n\tCreateDepositError,\n\tCreateGameSessionError,\n\tCreateGameSessionMutation,\n\tCreateGameSessionMutationVariables,\n\tCreateGCashDepositMutation,\n\tCreateGCashDepositMutationVariables,\n\tCreateGCashStandardCashInWithdrawalMutation,\n\tCreateGCashStandardCashInWithdrawalMutationVariables,\n\tCreateGCashWebpayDepositMutation,\n\tCreateGCashWebpayDepositMutationVariables,\n\tCreateGCashWithdrawalMutation,\n\tCreateGCashWithdrawalMutationVariables,\n\tCreateManualBankDeposiMutationVariables,\n\tCreateManualBankDepositMutation,\n\tCreateManualBankWithdrawalMutation,\n\tCreateManualBankWithdrawalMutationVariables,\n\tCreateManualUPIDepositMutation,\n\tCreateManualUpiDepositMutation,\n\tCreateManualUPIDepositMutationVariables,\n\tCreateManualUpiDepositMutationVariables,\n\tCreateManualUpiWithdrawalMutation,\n\tCreateManualUpiWithdrawalMutationVariables,\n\tCreateMayaAppDepositMutation,\n\tCreateMayaAppDepositMutationVariables,\n\tCreateMayaAppWithdrawalMutation,\n\tCreateMayaAppWithdrawalMutationVariables,\n\tCreateMayaDepositMutation,\n\tCreateMayaDepositMutationVariables,\n\tCreateMayaWebpayDepositMutation,\n\tCreateMayaWebpayDepositMutationVariables,\n\tCreateMayaWithdrawalMutation,\n\tCreateMayaWithdrawalMutationVariables,\n\tCreateTestDepositError,\n\tCreateTestDepositMutation,\n\tCreateTestDepositMutationVariables,\n\tCreateWithdrawalError,\n\tDeposit,\n\tDepositQuery,\n\tDepositQueryVariables,\n\tEndGameSessionMutation,\n\tEndGameSessionMutationVariables,\n\tFavoriteGame,\n\tFavoriteGamesQuery,\n\tGameSession,\n\tGameSessionQuery,\n\tGameSessionQueryVariables,\n\tInstapayBank,\n\tInstapayBankListQuery,\n\tMarkGameAsFavoriteMutation,\n\tMarkGameAsFavoriteMutationVariables,\n\tMayaSession,\n\tMayaSessionQuery,\n\tMayaSessionQueryVariables,\n\tPaginatedQueryResult,\n\tPointsWallet,\n\tPointsWalletQuery,\n\tPromo,\n\tPromosQuery,\n\tRedeemPointsToCashError,\n\tRedeemPointsToCashMutation,\n\tRedeemPointsToCashMutationVariables,\n\tRedeemVoucherError,\n\tRedeemVoucherMutationVariables,\n\tRedeemVoucherMutation,\n\tRemainingDailyWithdrawalsCountQuery,\n\tTouchGCashDepositMutation,\n\tTouchGCashDepositMutationVariables,\n\tTouchQrphDepositMutation,\n\tTouchQrphDepositMutationVariables,\n\tUnmarkGameAsFavoriteMutation,\n\tUnmarkGameAsFavoriteMutationVariables,\n\tValidateMayaSessionMutation,\n\tWallet,\n\tWalletGamesQuery,\n\tWalletGamesQueryVariables,\n\tWalletQuery,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\nexport class WalletService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync promos(): Promise<OperationResult<never, Promo[]>> {\n\t\tconst res = await this.client.request<PromosQuery>(PROMOS_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.promos } : res;\n\t}\n\n\tasync cashbacks(): Promise<OperationResult<never, Cashback[]>> {\n\t\tconst res = await this.client.request<CashbacksQuery>(CASHBACKS_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.cashbacks } : res;\n\t}\n\n\tasync availablePromos(\n\t\tvariables?: AvailablePromosQueryVariables,\n\t): Promise<OperationResult<never, Promo[]>> {\n\t\tconst res = await this.client.request<\n\t\t\tAvailablePromosQuery,\n\t\t\tAvailablePromosQueryVariables\n\t\t>(AVAILABLE_PROMOS_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.availablePromos } : res;\n\t}\n\n\tasync cashbackBonuses(): Promise<OperationResult<never, CashbackBonus[]>> {\n\t\tconst res = await this.client.request<CashbackBonusesQuery>(\n\t\t\tCASHBACK_BONUSES_QUERY,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.cashbackBonuses } : res;\n\t}\n\n\tasync claimCashbackBonus(\n\t\tvariables: ClaimCashbackBonusMutationVariables,\n\t): Promise<OperationResult<ClaimCashbackBonusError>> {\n\t\tconst res = await this.client.request<\n\t\t\tClaimCashbackBonusMutation,\n\t\t\tClaimCashbackBonusMutationVariables\n\t\t>(CLAIM_CASHBACK_BONUS_MUTATION, variables);\n\n\t\tif (!res.ok) {\n\t\t\treturn {\n\t\t\t\tok: res.ok,\n\t\t\t\terror: res.error,\n\t\t\t};\n\t\t}\n\n\t\tif (res.data.claimCashbackBonus) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.claimCashbackBonus.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync bonus(): Promise<OperationResult<never, Bonus | null | undefined>> {\n\t\tconst res = await this.client.request<BonusQuery>(BONUS_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.bonus } : res;\n\t}\n\n\tasync wallet(): Promise<OperationResult<never, Wallet | null | undefined>> {\n\t\tconst res = await this.client.request<WalletQuery>(WALLET_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.wallet } : res;\n\t}\n\n\tasync deposit(\n\t\tvariables: DepositQueryVariables,\n\t): Promise<OperationResult<never, Deposit | null | undefined>> {\n\t\tconst res = await this.client.request<DepositQuery, DepositQueryVariables>(\n\t\t\tDEPOSIT_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.node } : res;\n\t}\n\n\tasync createGCashDeposit(\n\t\tvariables: CreateGCashDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateGCashDepositMutation,\n\t\t\tCreateGCashDepositMutationVariables\n\t\t>(CREATE_GCASH_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createGCashDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createGCashDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createGCashWebpayDeposit(\n\t\tvariables: CreateGCashWebpayDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateGCashWebpayDepositMutation,\n\t\t\tCreateGCashWebpayDepositMutationVariables\n\t\t>(CREATE_GCASH_WEBPAY_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createGCashWebpayDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createGCashWebpayDeposit.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMayaWebpayDeposit(\n\t\tvariables: CreateMayaWebpayDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateMayaWebpayDepositMutation,\n\t\t\tCreateMayaWebpayDepositMutationVariables\n\t\t>(CREATE_MAYA_WEBPAY_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMayaWebpayDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createMayaWebpayDeposit.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMayaDeposit(\n\t\tvariables: CreateMayaDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateMayaDepositMutation,\n\t\t\tCreateMayaDepositMutationVariables\n\t\t>(CREATE_MAYA_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMayaDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createMayaDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\tasync createTestDeposit(\n\t\tvariables: CreateTestDepositMutationVariables,\n\t): Promise<OperationResult<CreateTestDepositError>> {\n\t\tconst res = await this.client.request<\n\t\t\tCreateTestDepositMutation,\n\t\t\tCreateTestDepositMutationVariables\n\t\t>(CREATE_TEST_DEPOSIT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createTestDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createTestDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAIOQRPHDeposit(\n\t\tvariables: CreateAIOQRPHDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAIOQRPHDepositMutation,\n\t\t\tCreateAIOQRPHDepositMutationVariables\n\t\t>(CREATE_AIO_QRPH_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAIOQRPHDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createAIOQRPHDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAiOGCashDeposit(\n\t\tvariables: CreateAiOGCcashDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAiOGCashDepositMutation,\n\t\t\tCreateAiOGCcashDepositMutationVariables\n\t\t>(CREATE_AIO_GCASH_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAiOGCashDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createAiOGCashDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAiOPayMayaDeposit(\n\t\tvariables: CreateAiOPayMayaDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAiOPayMayaDepositMutation,\n\t\t\tCreateAiOPayMayaDepositMutationVariables\n\t\t>(CREATE_AIO_PAY_MAYA_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAiOPayMayaDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createAiOPayMayaDeposit.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAiOGrabPayDeposit(\n\t\tvariables: CreateAiOGrabPayDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAiOGrabPayDepositMutation,\n\t\t\tCreateAiOGrabPayDepositMutationVariables\n\t\t>(CREATE_AIO_GRAB_PAY_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAiOGrabPayDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createAiOGrabPayDeposit.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAiOPalawanPayDeposit(\n\t\tvariables: CreateAiOPalawanPayDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAiOPalawanPayDepositMutation,\n\t\t\tCreateAiOPalawanPayDepositMutationVariables\n\t\t>(CREATE_AIO_PALAWAN_PAY_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAiOPalawanPayDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createAiOPalawanPayDeposit.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAIOOnlineBankDeposit(\n\t\tvariables: CreateAIOOnlineBankDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAIOOnlineBankDepositMutation,\n\t\t\tCreateAIOOnlineBankDepositMutationVariables\n\t\t>(CREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAIOOnlineBankDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createAIOOnlineBankDeposit.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createManualBankDeposit(\n\t\tvariables: CreateManualBankDeposiMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualBankDepositMutation,\n\t\t\tCreateManualBankDeposiMutationVariables\n\t\t>(CREATE_MANUAL_BANK_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createManualBankDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createManualBankDeposit.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createManualUPIDeposit(\n\t\tvariables: CreateManualUPIDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualUPIDepositMutation,\n\t\t\tCreateManualUPIDepositMutationVariables\n\t\t>(CREATE_MANUAL_UPI_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createManualUPIDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createManualUPIDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMayaAppDeposit(\n\t\tvariables: CreateMayaAppDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateMayaAppDepositMutation,\n\t\t\tCreateMayaAppDepositMutationVariables\n\t\t>(CREATE_MAYA_APP_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMayaAppDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createMayaAppDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createManualUpiDeposit(\n\t\tvariables: CreateManualUpiDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualUpiDepositMutation,\n\t\t\tCreateManualUpiDepositMutationVariables\n\t\t>(CREATE_MANUAL_UPI_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createManualUPIDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createManualUPIDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createGCashWithdrawal(\n\t\tvariables: CreateGCashWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateGCashWithdrawalMutation,\n\t\t\tCreateGCashWithdrawalMutationVariables\n\t\t>(CREATE_GCASH_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createGCashWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createGCashWithdrawal.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createGCashStandardCashInWithdrawal(\n\t\tvariables: CreateGCashStandardCashInWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateGCashStandardCashInWithdrawalMutation,\n\t\t\tCreateGCashStandardCashInWithdrawalMutationVariables\n\t\t>(CREATE_GCASH_STANDARD_CASHIN_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createGCashStandardCashInWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createGCashStandardCashInWithdrawal.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMayaWithdrawal(\n\t\tvariables: CreateMayaWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateMayaWithdrawalMutation,\n\t\t\tCreateMayaWithdrawalMutationVariables\n\t\t>(CREATE_MAYA_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMayaWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createMayaWithdrawal.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMayaAppWithdrawal(\n\t\tvariables: CreateMayaAppWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateMayaAppWithdrawalMutation,\n\t\t\tCreateMayaAppWithdrawalMutationVariables\n\t\t>(CREATE_MAYA_APP_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMayaAppWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createMayaAppWithdrawal.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createBankWithdrawal(\n\t\tvariables: CreateBankWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateBankWithdrawalMutation,\n\t\t\tCreateBankWithdrawalMutationVariables\n\t\t>(CREATE_BANK_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createBankWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createBankWithdrawal.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAIOInstapayWithdrawal(\n\t\tvariables: CreateAIOInstapayWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAIOInstapayWithdrawalMutation,\n\t\t\tCreateAIOInstapayWithdrawalMutationVariables\n\t\t>(CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAIOInstapayWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createAIOInstapayWithdrawal.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAIOInstapayWithdrawal_next(\n\t\tvariables: CreateAIOInstapayWithdrawalNextMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAIOInstapayWithdrawalNextMutation,\n\t\t\tCreateAIOInstapayWithdrawalNextMutationVariables\n\t\t>(CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION_NEXT, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAIOInstapayWithdrawal_next) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createAIOInstapayWithdrawal_next.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createManualUpiWithdrawal(\n\t\tvariables: CreateManualUpiWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualUpiWithdrawalMutation,\n\t\t\tCreateManualUpiWithdrawalMutationVariables\n\t\t>(CREATE_MANUAL_UPI_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createManualUpiWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createManualUpiWithdrawal.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createManualBankWithdrawal(\n\t\tvariables: CreateManualBankWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualBankWithdrawalMutation,\n\t\t\tCreateManualBankWithdrawalMutationVariables\n\t\t>(CREATE_MANUAL_BANK_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createManualBankWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createManualBankWithdrawal.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync instapayBankList(): Promise<OperationResult<never, InstapayBank[]>> {\n\t\tconst res = await this.client.request<InstapayBankListQuery>(\n\t\t\tINSTAPAY_BANK_LIST_QUERY,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.instapayBankList } : res;\n\t}\n\n\tasync remainingDailyWithdrawalsCount(): Promise<\n\t\tOperationResult<never, number>\n\t> {\n\t\tconst res = await this.client.request<RemainingDailyWithdrawalsCountQuery>(\n\t\t\tREMAINING_DAILY_WITHDRAWALS_COUNT_QUERY,\n\t\t);\n\n\t\treturn res.ok\n\t\t\t? { ok: res.ok, data: res.data.remainingDailyWithdrawalsCount }\n\t\t\t: res;\n\t}\n\n\tasync pointsWallet(): Promise<\n\t\tOperationResult<never, PointsWallet | null | undefined>\n\t> {\n\t\tconst res =\n\t\t\tawait this.client.request<PointsWalletQuery>(POINTS_WALLET_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.pointsWallet } : res;\n\t}\n\n\tasync redeemPointsToCash(\n\t\tvariables: RedeemPointsToCashMutationVariables,\n\t): Promise<OperationResult<RedeemPointsToCashError>> {\n\t\tconst res = await this.client.request<\n\t\t\tRedeemPointsToCashMutation,\n\t\t\tRedeemPointsToCashMutationVariables\n\t\t>(REDEEM_POINTS_TO_CASH_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.redeemPointsToCash) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.redeemPointsToCash.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync mayaSession(\n\t\tvariables: MayaSessionQueryVariables,\n\t): Promise<OperationResult<never, MayaSession | null | undefined>> {\n\t\tconst res = await this.client.request<\n\t\t\tMayaSessionQuery,\n\t\t\tMayaSessionQueryVariables\n\t\t>(MAYA_SESSION_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.mayaSession } : res;\n\t}\n\n\tasync gameSession(\n\t\tvariables: GameSessionQueryVariables,\n\t): Promise<OperationResult<never, GameSession | null | undefined>> {\n\t\tconst res = await this.client.request<\n\t\t\tGameSessionQuery,\n\t\t\tGameSessionQueryVariables\n\t\t>(GAME_SESSION_QUERY.current, variables);\n\n\t\treturn res.ok ? { ok: true, data: res.data.node } : res;\n\t}\n\n\tasync createGameSession(\n\t\tvariables: CreateGameSessionMutationVariables,\n\t): Promise<OperationResult<CreateGameSessionError>> {\n\t\tconst res = await this.client.request<\n\t\t\tCreateGameSessionMutation,\n\t\t\tCreateGameSessionMutationVariables\n\t\t>(CREATE_GAME_SESSION_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createGameSession) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createGameSession.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync endGameSession(\n\t\tvariables: EndGameSessionMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tEndGameSessionMutation,\n\t\t\tEndGameSessionMutationVariables\n\t\t>(END_GAME_SESSION_MUTATION.current, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.endGameSession) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync validateMayaSession(): Promise<OperationResult> {\n\t\tconst res = await this.client.request<ValidateMayaSessionMutation>(\n\t\t\tVALIDATE_MAYA_SESSION_MUTATION,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (!res.data.validateMayaSession) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync bonuses(): Promise<OperationResult<never, Bonus[]>> {\n\t\tconst res = await this.client.request<BonusesQuery>(BONUSES_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.bonuses ?? [] } : res;\n\t}\n\n\tasync claimSpotBonus(\n\t\tvariables: ClaimSpotBonusMutationVariables,\n\t): Promise<OperationResult<ClaimSpotBonusError>> {\n\t\tconst res = await this.client.request<\n\t\t\tClaimSpotBonusMutation,\n\t\t\tClaimSpotBonusMutationVariables\n\t\t>(CLAIM_SPOT_BONUS, variables);\n\n\t\tif (!res.ok) {\n\t\t\treturn {\n\t\t\t\tok: res.ok,\n\t\t\t\terror: res.error,\n\t\t\t};\n\t\t}\n\n\t\tif (res.data.claimSpotBonus) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.claimSpotBonus.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync touchGCashDeposit(\n\t\tvariables: TouchGCashDepositMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tTouchGCashDepositMutation,\n\t\t\tTouchGCashDepositMutationVariables\n\t\t>(TOUCH_GCASH_DEPOSIT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.touchGCashDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync touchQrphDeposit(\n\t\tvariables: TouchQrphDepositMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tTouchQrphDepositMutation,\n\t\t\tTouchQrphDepositMutationVariables\n\t\t>(TOUCH_QRPH_DEPOSIT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.touchQRPHDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync markGameAsFavorite(\n\t\tvariables: MarkGameAsFavoriteMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tMarkGameAsFavoriteMutation,\n\t\t\tMarkGameAsFavoriteMutationVariables\n\t\t>(MARK_GAME_AS_FAVORITE, variables);\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.markGameAsFavorite) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\tasync unmarkGameAsFavorite(\n\t\tvariables: UnmarkGameAsFavoriteMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tUnmarkGameAsFavoriteMutation,\n\t\t\tUnmarkGameAsFavoriteMutationVariables\n\t\t>(UNMARK_GAME_AS_FAVORITE, variables);\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.unmarkGameAsFavorite) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync favoriteGames(): Promise<OperationResult<never, FavoriteGame[]>> {\n\t\tconst res =\n\t\t\tawait this.client.request<FavoriteGamesQuery>(FAVORITE_GAMES_QUERY);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.favoriteGames) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.favoriteGames,\n\t\t};\n\t}\n\tasync walletGames(\n\t\tvariables?: WalletGamesQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<WalletGame>>> {\n\t\tconst res = await this.client.request<\n\t\t\tWalletGamesQuery,\n\t\t\tWalletGamesQueryVariables\n\t\t>(WALLET_GAMES_QUERY, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.games) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.games,\n\t\t};\n\t}\n\n\tasync cabinetWithdrawal(\n\t\t\tvariables: CabinetWithdrawalQueryVariables,\n\t\t): Promise<OperationResult<never, CabinetWithdrawal | null | undefined>> {\n\t\tconst res = await this.client.request<CabinetWithdrawalQuery, CabinetWithdrawalQueryVariables>(\n\t\t\tCABINET_WITHDRAWAL_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.node } : res;\n\t}\n\n\tasync redeemVoucher(\n\t\tvariables: RedeemVoucherMutationVariables,\n\t): Promise<OperationResult<RedeemVoucherError>> {\n\t\tconst res = await this.client.request<\n\t\t\tRedeemVoucherMutation,\n\t\t\tRedeemVoucherMutationVariables\n\t\t>(REDEEM_VOUCHER_MUTATION, variables);\n\n\t\tif (!res.ok) {\n\t\t\treturn {\n\t\t\tok: res.ok,\n\t\t\terror: res.error,\n\t\t\t};\n\t\t}\n\n\t\tif (res.data.redeemVoucher) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.redeemVoucher.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n}\n\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tCREATE_CABINET_WITHDRAWAL_MUTATION,\n\tMEMBER_CABINET_SITE_MACHINE_QUERY\n} from './queries.js';\nimport type {\n\tCreateCabinetWithdrawalMutationVariables,\n\tCreateCabinetWithdrawalMutation,\n\tCreateWithdrawalError,\n\tMemberCabinetSiteMachineQuery,\n\tCabinetSiteMachine\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\nexport class ExtensionService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync createCabinetWithdrawal(\n\t\tvariables: CreateCabinetWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateCabinetWithdrawalMutation,\n\t\t\tCreateCabinetWithdrawalMutationVariables\n\t\t>(CREATE_CABINET_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createCabinetWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createCabinetWithdrawal.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync memberCabinetSiteMachine(): Promise<OperationResult<never, CabinetSiteMachine | null | undefined>> {\n\t\tconst res = await this.client.request<MemberCabinetSiteMachineQuery>(MEMBER_CABINET_SITE_MACHINE_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.memberCabinetSiteMachine } : res;\n\t}\n\n}\n","export function cloneDate(date: Date) {\n\treturn new Date(date.getTime());\n}\n","import { cloneDate } from './clone-date.js';\n\nexport function addMinutes(date: Date, minutes: number): Date {\n\tconst result = cloneDate(date);\n\tresult.setMinutes(result.getMinutes() + minutes);\n\treturn result;\n}\n","/**\n * is `date1` after `date2`?\n */\nexport function isAfter(date1: Date, date2: Date) {\n\treturn date1.getTime() > date2.getTime();\n}\n","import { addMinutes } from './add-minutes.js';\nimport { isAfter } from './is-after.js';\n\ninterface CacheValue<T> {\n\tvalue: T;\n\tvalidUntil: Date;\n}\n\ninterface CacheConfig {\n\t/**\n\t * @description The number in minutes the cache is valid\n\t * @default 5\n\t */\n\tcacheTime: number;\n}\n\nexport class Cache<T = unknown> {\n\tprivate config: CacheConfig;\n\tprivate cache: Record<string, CacheValue<T>>;\n\n\tconstructor(config?: CacheConfig) {\n\t\tthis.cache = {};\n\t\tthis.config = {\n\t\t\tcacheTime: 5,\n\t\t\t...config,\n\t\t};\n\t}\n\n\tset(key: string, value: T) {\n\t\tconst validUntil = addMinutes(new Date(), this.config.cacheTime);\n\n\t\tthis.cache[key] = {\n\t\t\tvalue,\n\t\t\tvalidUntil,\n\t\t};\n\t}\n\n\tget<V = never>(key: string): [V] extends [never] ? T | null : V | null {\n\t\tconst o = this.cache[key];\n\t\tif (!o) return null;\n\t\tif (isAfter(new Date(), o.validUntil)) return null;\n\t\treturn o.value as any;\n\t}\n}\n","export function clamp(value: number, min: number, max: number) {\n\tif (value < min) return min;\n\tif (value > max) return max;\n\treturn value;\n}\n","export function isPlainObject(value: unknown): value is Record<string, any> {\n\treturn (\n\t\tObject.prototype.toString.call(value) === '[object Object]' &&\n\t\tObject(value) === value\n\t);\n}\n","import { isPlainObject } from './is-plain-object.js';\n\nexport function flatten(value: Record<string, any> | any[]) {\n\tconst result: {\n\t\tkey: string[];\n\t\tvalue: any;\n\t}[] = [];\n\n\tfunction fn(o: Record<string, any>, parentKeys: string[] = []) {\n\t\tfor (const k in o) {\n\t\t\tconst v = o[k];\n\n\t\t\tif (isPlainObject(v)) {\n\t\t\t\tfn(v, [...parentKeys, k]);\n\t\t\t} else if (Array.isArray(v)) {\n\t\t\t\tfn(arrayToObject(v), [...parentKeys, k]);\n\t\t\t} else {\n\t\t\t\tresult.push({\n\t\t\t\t\tkey: [...parentKeys, k],\n\t\t\t\t\tvalue: v,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tfn(value);\n\n\treturn result;\n}\n\nfunction arrayToObject(array: unknown[]) {\n\treturn array.reduce<Record<string, any>>((o, v, i) => {\n\t\to[i] = v;\n\t\treturn o;\n\t}, {});\n}\n","import type { GenericObject, OperationResult } from '../types/index.js';\nimport { callIfFn } from './call-if-fn.js';\nimport { flatten } from './flatten.js';\nimport { statusCodeToOperationError } from './status-code-to-operation-error.js';\n\ntype ModifiableKey =\n\t| 'mode'\n\t| 'cache'\n\t| 'signal'\n\t| 'headers'\n\t| 'integrity'\n\t| 'keepalive'\n\t| 'credentials';\n\ntype Modifiable = {\n\t[K in ModifiableKey]: Request[K];\n};\n\nexport interface ModifiedRequest\n\textends Readonly<Omit<Request, ModifiableKey>>,\n\t\tModifiable {}\n\nexport type GraphQLClientMiddleware = (\n\trequest: ModifiedRequest,\n) => ModifiedRequest | Promise<ModifiedRequest>;\n\nexport interface GraphQLClientFetchOptions\n\textends Omit<RequestInit, 'body' | 'method'> {}\n\nexport interface GraphQLClientConfig {\n\tfetch?: typeof globalThis.fetch | null;\n\tfetchOptions?: GraphQLClientFetchOptions;\n\tmiddlewares?: GraphQLClientMiddleware[];\n}\n\n/* ref: https://www.apollographql.com/docs/apollo-server/data/errors/#graphql_parse_failed */\ntype GraphQLErrorExtensionCode =\n\t| 'FORBIDDEN'\n\t| 'UNAUTHORIZED'\n\t| 'BAD_REQUEST'\n\t| 'BAD_USER_INPUT'\n\t| 'INTERNAL_SERVER_ERROR'\n\t| 'ACCESS_TOKEN_EXPIRED';\n\ninterface GraphQLErrorExtensions {\n\tcode: GraphQLErrorExtensionCode;\n\tstacktrace: string[];\n}\n\ninterface GraphQLErrorLocation {\n\tline: number;\n\tcolumn: number;\n}\n\ninterface GraphQLError {\n\tpath: string[];\n\tmessage?: string;\n\textensions?: GraphQLErrorExtensions;\n\tlocations: GraphQLErrorLocation[];\n}\n\ntype Getter<T> = () => T;\n\nexport class GraphQLClient {\n\tprivate url: string;\n\tprivate config: Getter<GraphQLClientConfig> | GraphQLClientConfig;\n\n\tconstructor(\n\t\turl: string,\n\t\tconfig: Getter<GraphQLClientConfig> | GraphQLClientConfig = {},\n\t) {\n\t\tthis.url = url;\n\t\tthis.config = config;\n\t}\n\n\tasync request<Data, Variables extends GenericObject = GenericObject>(\n\t\tquery: string,\n\t\tvariables?: Variables,\n\t\tuserOptions?: GraphQLClientFetchOptions,\n\t) {\n\t\tconst config = callIfFn(this.config);\n\t\tconst options = mergeFetchOptions(\n\t\t\t{\n\t\t\t\t...config?.fetchOptions,\n\t\t\t\theaders: new Headers(config?.fetchOptions?.headers),\n\t\t\t},\n\t\t\tuserOptions,\n\t\t);\n\n\t\tconst body = JSON.stringify({\n\t\t\tquery,\n\t\t\tvariables,\n\t\t});\n\n\t\tconst headers = new Headers(options.headers);\n\n\t\theaders.set('Content-Type', 'application/json');\n\t\theaders.set('Accept', 'application/json');\n\n\t\tconst url = new URL(this.url);\n\t\tconst operationInfo = getOperationInfo(query);\n\n\t\tif (operationInfo) {\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\n\t\t}\n\n\t\tconst req = await this.runMiddlewares(\n\t\t\tnew Request(url, {\n\t\t\t\t...options,\n\t\t\t\tbody,\n\t\t\t\theaders,\n\t\t\t\tmethod: 'POST',\n\t\t\t}),\n\t\t\tconfig?.middlewares ?? [],\n\t\t);\n\n\t\treturn await this.exec<Data>(req);\n\t}\n\n\t/** Single file upload */\n\tasync upload<Data, Variables extends GenericObject = GenericObject>(\n\t\tquery: string,\n\t\tvariables: Variables,\n\t\toptions?: GraphQLClientFetchOptions,\n\t) {\n\t\tconst cfg = callIfFn(this.config);\n\t\tconst opts = mergeFetchOptions(\n\t\t\t{\n\t\t\t\t...cfg?.fetchOptions,\n\t\t\t\theaders: new Headers(cfg?.fetchOptions?.headers),\n\t\t\t},\n\t\t\toptions,\n\t\t);\n\n\t\tconst body = this.createUploadBody(query, variables);\n\t\tconst headers = new Headers(opts.headers);\n\n\t\theaders.delete('Content-Type');\n\n\t\tconst url = new URL(this.url);\n\t\tconst operationInfo = getOperationInfo(query);\n\n\t\tif (operationInfo) {\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\n\t\t}\n\n\t\tconst req = await this.runMiddlewares(\n\t\t\tnew Request(url, {\n\t\t\t\t...opts,\n\t\t\t\tbody,\n\t\t\t\theaders,\n\t\t\t\tmethod: 'POST',\n\t\t\t}),\n\t\t\tcfg?.middlewares ?? [],\n\t\t);\n\n\t\treturn await this.exec<Data>(req);\n\t}\n\n\tprivate async exec<T>(request: Request): Promise<OperationResult<never, T>> {\n\t\tconst config = callIfFn(this.config);\n\n\t\tconst fetch_ = config.fetch ?? fetch;\n\n\t\ttry {\n\t\t\tconst res = await fetch_(request);\n\n\t\t\tif (!res.ok) {\n\t\t\t\treturn { ok: false, error: statusCodeToOperationError(res.status) };\n\t\t\t}\n\n\t\t\tconst json = await res.json();\n\t\t\tconst data = json.data;\n\t\t\tconst error = json.errors?.at(0) as GraphQLError | undefined;\n\n\t\t\tif (error) {\n\t\t\t\tif (\n\t\t\t\t\terror.extensions?.code === 'FORBIDDEN' ||\n\t\t\t\t\terror.extensions?.code === 'ACCESS_TOKEN_EXPIRED'\n\t\t\t\t) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: statusCodeToOperationError(403, error.message),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (error.extensions?.code === 'UNAUTHORIZED') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: statusCodeToOperationError(401, error.message),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\terror.extensions?.code === 'BAD_USER_INPUT' ||\n\t\t\t\t\terror.extensions?.code === 'BAD_REQUEST'\n\t\t\t\t) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: statusCodeToOperationError(400, error.message),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t/* Fallback for unknown error codes */\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(500, error.message),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata,\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n\n\tprivate async runMiddlewares(\n\t\treq: ModifiedRequest,\n\t\tmiddlewares: GraphQLClientMiddleware[],\n\t): Promise<ModifiedRequest> {\n\t\tlet result = req.clone();\n\n\t\tfor (const middleware of middlewares) {\n\t\t\tresult = await middleware(result);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate createUploadBody<Variables extends GenericObject = GenericObject>(\n\t\tquery: string,\n\t\tvariables: Variables,\n\t) {\n\t\tconst files = flatten(variables).filter(\n\t\t\t(o) => o.value instanceof File || o.value instanceof Blob,\n\t\t);\n\n\t\tconst body = new FormData();\n\n\t\tbody.append(\n\t\t\t'operations',\n\t\t\tJSON.stringify({\n\t\t\t\tquery,\n\t\t\t\tvariables,\n\t\t\t}),\n\t\t);\n\n\t\tconst map: GenericObject = {};\n\n\t\tfiles.forEach((o, i) => {\n\t\t\tmap[i.toString()] = [`variables.${o.key.join('.')}`];\n\t\t});\n\n\t\tbody.append('map', JSON.stringify(map));\n\n\t\tfiles.forEach((o, i) => {\n\t\t\tbody.append(i.toString(), o.value);\n\t\t});\n\n\t\treturn body;\n\t}\n}\n\nfunction getOperationInfo(query: string) {\n\tconst l = query.match(/(query|mutation)\\s+(\\w+)/);\n\n\tif (!l) return null;\n\n\tconst k = l.at(1);\n\tconst v = l.at(2);\n\n\treturn k && v ? { type: k, name: v } : null;\n}\n\nfunction mergeFetchOptions(\n\ti: GraphQLClientFetchOptions | undefined,\n\tj: GraphQLClientFetchOptions | undefined,\n): GraphQLClientFetchOptions {\n\tif (!i) return j ?? {};\n\tif (!j) return i ?? {};\n\n\treturn {\n\t\t...i,\n\t\t...j,\n\n\t\theaders: mergeHeaders(i.headers, j.headers),\n\t};\n}\n\nfunction mergeHeaders(i: HeadersInit | undefined, j: HeadersInit | undefined) {\n\tif (!i) return j;\n\tif (!j) return i;\n\n\tconst h = new Headers();\n\n\tnew Headers(i).forEach((v, k) => h.append(k, v));\n\tnew Headers(j).forEach((v, k) => h.append(k, v));\n\n\treturn h;\n}\n","export async function sha256(input: string) {\n\tconst msgUint8 = new TextEncoder().encode(input);\n\tconst hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\n\tconst hashArray = Array.from(new Uint8Array(hashBuffer));\n\tconst hashHex = hashArray\n\t\t.map((b) => b.toString(16).padStart(2, '0'))\n\t\t.join('');\n\treturn hashHex;\n}\n","import { cloneDate } from './clone-date.js';\n\nexport function addDays(date: Date, days: number) {\n\tconst result = cloneDate(date);\n\tresult.setDate(result.getDate() + days);\n\treturn result;\n}\n","import { cloneDate } from './clone-date.js';\n\nexport function subMinutes(date: Date, minutes: number) {\n\tconst result = cloneDate(date);\n\tresult.setMinutes(result.getMinutes() - minutes);\n\treturn result;\n}\n","import { addDays } from '../utils/add-days.js';\nimport { isAfter } from '../utils/is-after.js';\nimport { subMinutes } from '../utils/sub-minutes.js';\nimport type { Logger } from './logger.js';\n\nconst AD_CLICK_ID_STORAGE_KEY = 'sdk/ad-click-id';\n\ninterface AdManagerConfig {\n\tlogger: Logger;\n}\n\nexport class AdManager {\n\tprivate logger: Logger;\n\n\tconstructor(config: AdManagerConfig) {\n\t\tthis.logger = config.logger;\n\t}\n\n\tset clickId(value: string | null) {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn;\n\t\t}\n\n\t\tif (value === null) {\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\n\t\t\treturn;\n\t\t}\n\n\t\tconst n = new Date();\n\t\tconst o = JSON.stringify({\n\t\t\tvalue,\n\t\t\texpiresAt: subMinutes(addDays(n, 90), 2).getTime(),\n\t\t});\n\n\t\tlocalStorage.setItem(AD_CLICK_ID_STORAGE_KEY, o);\n\t}\n\n\tget clickId(): string | null {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn null;\n\t\t}\n\n\t\tconst v = localStorage.getItem(AD_CLICK_ID_STORAGE_KEY);\n\n\t\tif (!v) return null;\n\n\t\ttry {\n\t\t\tconst o = JSON.parse(v);\n\n\t\t\tif (!o.value) return null;\n\t\t\tif (!o.expiresAt) return null;\n\n\t\t\tconst d = new Date(o.expiresAt);\n\t\t\tconst n = new Date();\n\n\t\t\tif (isAfter(n, d)) {\n\t\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn o.value;\n\t\t} catch {\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\n}\n","import { cloneDate } from './clone-date.js';\n\nexport function addHours(date: Date, hours: number): Date {\n\tconst result = cloneDate(date);\n\tresult.setHours(result.getHours() + hours);\n\treturn result;\n}\n","import type { Currency, Locale } from './types.js';\n\nexport function getLocaleByCurrency(currency: Currency): Locale {\n\tif (currency === 'INR') return 'en-IN';\n\tif (currency === 'MYR') return 'en-MY';\n\tif (currency === 'IDR') return 'en-ID';\n\tif (currency === 'USD') return 'en-US';\n\treturn 'en-PH';\n}\n\n/*\n * +63 (Philippines)\n * +91 (India)\n * +60 (Malaysia)\n * +62 (Indonesia)\n * +1 (UnitedStates)\n */\nexport function getAreaCodeByLocale(locale: Locale) {\n\tif (locale === 'en-IN') return '+91';\n\tif (locale === 'en-MY') return '+60';\n\tif (locale === 'en-ID') return '+62';\n\tif (locale === 'en-US') return '+1';\n\treturn '+63';\n}\n\n/**\n * @description Ensures mobile number has complete area code\n * @example\n * ```ts\n * addAreaCode('9190010001', 'en-PH'); // +639190010001\n * addAreaCode('09190010001', 'en-PH'); // +639190010001\n * addAreaCode('639190010001', 'en-PH'); // +639190010001\n * addAreaCode('+639190010001', 'en-PH'); // +639190010001\n * ```\n */\nexport function addAreaCode(mobileNumber: string, locale: Locale) {\n\tconst areaCode = getAreaCodeByLocale(locale);\n\n\t/* starts with area code */\n\tif (mobileNumber.startsWith(areaCode)) return mobileNumber;\n\t/* starts with area code without \"+\" */\n\tif (mobileNumber.startsWith(areaCode.substring(1))) return `+${mobileNumber}`;\n\t/* starts with zero */\n\tif (mobileNumber.startsWith('0'))\n\t\treturn `${areaCode}${mobileNumber.substring(1)}`;\n\n\treturn `${areaCode}${mobileNumber}`;\n}\n\nexport function parseFbCxd(input: string) {\n\tconst fbMatch = input.match(/(\\d+_\\d+).*fb\\./);\n\tif (!fbMatch) return null;\n\n\tconst cxd = fbMatch[1];\n\tconst fbAdditionalCxd = input.split(cxd)[1].slice(1); // remove the first char after cxd if separator exists\n\n\treturn { cxd, fbAdditionalCxd };\n}\n","import { addHours } from '../utils/add-hours.js';\nimport { isAfter } from '../utils/is-after.js';\nimport { subMinutes } from '../utils/sub-minutes.js';\nimport type { Logger } from './logger.js';\nimport { parseFbCxd } from './utils.js';\n\nconst CXD_STORAGE_KEY = 'sdk/cxd';\n\ninterface CellexpertConfig {\n\tlogger: Logger;\n}\n\nexport class CellexpertManager {\n\tprivate logger: Logger;\n\n\tconstructor(config: CellexpertConfig) {\n\t\tthis.logger = config.logger;\n\t}\n\n\tset cxd(value: string | null) {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn;\n\t\t}\n\n\t\tif (value === null) {\n\t\t\tlocalStorage.removeItem(CXD_STORAGE_KEY);\n\t\t\treturn;\n\t\t}\n\n\t\tconst oldValue = localStorage.getItem(CXD_STORAGE_KEY) ?? '';\n\n\t\tif (value === oldValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst n = new Date();\n\t\tconst o = JSON.stringify({\n\t\t\tvalue,\n\t\t\texpiresAt: subMinutes(addHours(n, 6), 2).getTime(),\n\t\t});\n\n\t\tlocalStorage.setItem(CXD_STORAGE_KEY, parseFbCxd(o)?.cxd ?? o);\n\t}\n\n\tget cxd(): string | null {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn null;\n\t\t}\n\n\t\tconst v = localStorage.getItem(CXD_STORAGE_KEY);\n\n\t\tif (!v) return null;\n\n\t\ttry {\n\t\t\tconst o = JSON.parse(v);\n\n\t\t\tif (!o.value) return null;\n\t\t\tif (!o.expiresAt) return null;\n\n\t\t\tconst d = new Date(o.expiresAt);\n\t\t\tconst n = new Date();\n\n\t\t\tif (isAfter(n, d)) {\n\t\t\t\tlocalStorage.removeItem(CXD_STORAGE_KEY);\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn o.value;\n\t\t} catch {\n\t\t\tlocalStorage.removeItem(CXD_STORAGE_KEY);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\n}\n","interface LoggerConfig {\n\t/**\n\t * @default true\n\t */\n\tenabled?: boolean;\n}\n\nexport class Logger {\n\tprivate enabled: boolean;\n\n\tconstructor(config?: LoggerConfig) {\n\t\tthis.enabled = config?.enabled ?? true;\n\t}\n\n\tinfo(message: string) {\n\t\tif (this.enabled) console.log(`\\x1b[34m[info] ${message}`);\n\t}\n\n\twarn(message: string) {\n\t\tif (this.enabled) console.log(`\\x1b[33m[warn] ${message}`);\n\t}\n\n\terror(message: string) {\n\t\tif (this.enabled) console.log(`\\x1b[31m[error] ${message}`);\n\t}\n\n\tsuccess(message: string) {\n\t\tif (this.enabled) console.log(`\\x1b[32m[success] ${message}`);\n\t}\n}\n","export function sleep(ms: number) {\n\treturn new Promise<void>((resolve) => {\n\t\tsetTimeout(resolve, ms);\n\t});\n}\n","import { sleep } from './sleep.js';\n\ninterface Config<T> {\n\tuntil(response: T): boolean;\n\t/**\n\t * @default 1000\n\t */\n\tinterval?: number;\n\t/**\n\t * @default 3\n\t */\n\tmaxAttempt?: number;\n}\n\n/**\n * @example\n * ```ts\n * const poll = pollable(\n * fn,\n * {\n * until: (r) => r.ok,\n * interval: 1000,\n * maxAttempt: 5,\n * }\n * );\n *\n * poll()\n * ```\n */\nexport function pollable<Return, Args = never>(\n\tfunc: (...args: Args[]) => Promise<Return>,\n\tconfig: Config<Return>,\n) {\n\tconst {\n\t\tuntil,\n\t\tinterval = 1000,\n\t\tmaxAttempt = 3,\n\t\t/**/\n\t} = config;\n\n\tasync function repeater(args: Args[], max?: number) {\n\t\tconst m = max ?? maxAttempt;\n\t\tconst r = await func(...args);\n\t\tconst k = until(r);\n\n\t\tif (k) return r;\n\n\t\tif (m > 1) {\n\t\t\tawait sleep(interval * ((maxAttempt - m) / 2));\n\t\t\treturn repeater(args, m - 1);\n\t\t}\n\n\t\treturn r;\n\t}\n\n\treturn async (...args: Args[]): Promise<Return> => {\n\t\treturn await repeater(args);\n\t};\n}\n","import type { AuthService, WalletService } from '../services/index.js';\nimport type { OperationResult } from '../types/index.js';\nimport { addDays } from '../utils/add-days.js';\nimport { addMinutes } from '../utils/add-minutes.js';\nimport { isAfter } from '../utils/is-after.js';\nimport { pollable } from '../utils/pollable.js';\nimport { sleep } from '../utils/sleep.js';\nimport { subMinutes } from '../utils/sub-minutes.js';\nimport type { Logger } from './logger.js';\nimport type {\n\tAuthenticateError,\n\tAuthenticateInput,\n\tAuthenticator,\n\tRefreshSessionError,\n\tSession,\n\tSignInError,\n\tSignInInput,\n} from './types.js';\n\ninterface Data {\n\tsession: Session;\n\taccessToken: string;\n\taccessTokenExpiresAt: number;\n\trefreshToken: string;\n\trefreshTokenExpiresAt: number;\n}\n\ninterface SessionManagerConfig {\n\tlogger: Logger;\n\tauthService: AuthService;\n\twalletService: WalletService;\n\tsessionPrefix?: string;\n}\n\nexport class SessionManager {\n\tprivate logger: Logger;\n\tprivate storageKey = 'session';\n\tprivate platformStorageKey = 'session/platform';\n\tprivate authService: AuthService;\n\tprivate walletService: WalletService;\n\tprivate _refreshing = false;\n\n\tconstructor(config: SessionManagerConfig) {\n\t\tthis.authService = config.authService;\n\t\tthis.walletService = config.walletService;\n\t\tthis.logger = config.logger;\n\t\tif (config.sessionPrefix) {\n\t\t\tthis.storageKey = `${config.sessionPrefix}/${this.storageKey}`;\n\t\t\tthis.platformStorageKey = `${config.sessionPrefix}/${this.platformStorageKey}`;\n\t\t}\n\t}\n\n\tget refreshing() {\n\t\treturn this._refreshing;\n\t}\n\n\tset refreshing(value: boolean) {\n\t\tthis._refreshing = value;\n\t}\n\n\tasync create(\n\t\tinput: SignInInput,\n\t): Promise<\n\t\tOperationResult<SignInError, { authenticator: Authenticator } | null>\n\t> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Server sign in is not supported.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\t/*\n\t\t * Maya Sign In\n\t\t */\n\t\tif (input.type === 'MAYA') {\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\n\n\t\t\tconst f0 = () => this.walletService.mayaSession({ id: input.sessionId });\n\t\t\tconst r0 = await pollable(f0, {\n\t\t\t\tuntil: (r) => r.ok && r.data?.member != null,\n\t\t\t\tinterval: 1000,\n\t\t\t\tmaxAttempt: 5,\n\t\t\t})();\n\n\t\t\tif (!r0.ok) return r0;\n\t\t\tif (!r0.data?.member) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tname: 'HttpForbidden',\n\t\t\t\t\t\tmessage: 'Forbidden',\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst f1 = () => this.authService.createSession(input);\n\t\t\tconst r1 = await pollable(f1, {\n\t\t\t\tuntil: (r) => r.ok,\n\t\t\t\tinterval: 1000,\n\t\t\t\tmaxAttempt: 5,\n\t\t\t})();\n\n\t\t\tif (!r1.ok) return r1;\n\n\t\t\tconst now = new Date();\n\n\t\t\tlocalStorage.setItem(\n\t\t\t\tthis.storageKey,\n\t\t\t\tJSON.stringify({\n\t\t\t\t\t...r1.data,\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t}),\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\t/*\n\t\t * Mobile Number Sign In\n\t\t */\n\t\tif (input.type === 'MOBILE_NUMBER') {\n\t\t\tconst res = await this.authService.createSession(input);\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst now = new Date();\n\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\t/**\n\t\t * Token sign up (for 3rd party sign in)\n\t\t */\n\t\tif (input.type === 'SOCIALS' || input.type === 'TOKEN') {\n\t\t\tconst res = await this.authService.createSession({\n\t\t\t\ttype: 'SOCIALS',\n\t\t\t\ttoken: input.token,\n\t\t\t\tchannel: input.channel,\n\t\t\t});\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst now = new Date();\n\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\t/**\n\t\t * Cabinet sign in\n\t\t */\n\t\tif (input.type === 'CABINET') {\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\n\n\t\t\tconst res = await this.authService.createSession(input);\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst now = new Date();\n\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\t/*\n\t\t * Name and Password Sign In\n\t\t */\n\t\tconst res = await this.authService.createSession(input);\n\n\t\tif (!res.ok) return res;\n\n\t\t/*\n\t\t * 2FA enabled\n\t\t */\n\t\tif (res.data.authenticator) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: {\n\t\t\t\t\tauthenticator: res.data.authenticator,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst now = new Date();\n\n\t\tlocalStorage.setItem(\n\t\t\tthis.storageKey,\n\t\t\tJSON.stringify({\n\t\t\t\t...res.data,\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t}),\n\t\t);\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: null,\n\t\t};\n\t}\n\n\tasync createFromAuthenticator(\n\t\tinput: AuthenticateInput,\n\t): Promise<OperationResult<AuthenticateError>> {\n\t\tconst res = await this.authService.authenticate(input);\n\n\t\tif (res.ok) {\n\t\t\tconst now = new Date();\n\n\t\t\tif (this.isServer) {\n\t\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\t} else {\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn { ok: true };\n\t\t} else {\n\t\t\treturn res;\n\t\t}\n\t}\n\n\tasync get(): Promise<OperationResult<RefreshSessionError, Data | null>> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\tif (this.refreshing) {\n\t\t\tawait sleep(1000);\n\t\t\treturn await this.get();\n\t\t}\n\n\t\tconst val = localStorage.getItem(this.storageKey);\n\n\t\tif (!val) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tlet obj: {\n\t\t\t\tsession: Session;\n\t\t\t\taccessToken: string;\n\t\t\t\taccessTokenExpiresAt: number;\n\t\t\t\trefreshToken: string;\n\t\t\t\trefreshTokenExpiresAt: number;\n\t\t\t} = JSON.parse(val);\n\n\t\t\tlet now = new Date();\n\n\t\t\tconst accessTokenExpiresAt = new Date(obj.accessTokenExpiresAt);\n\t\t\tconst refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);\n\n\t\t\t/* is refresh token expired? */\n\t\t\tif (isAfter(now, refreshTokenExpiresAt)) {\n\t\t\t\tthis.logger.warn('Session expired. Logging out..');\n\n\t\t\t\tlocalStorage.removeItem(this.storageKey);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tname: 'SessionExpiredError',\n\t\t\t\t\t\tmessage: 'Session expired.',\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t/* is access token expired? */\n\t\t\tif (isAfter(now, accessTokenExpiresAt)) {\n\t\t\t\tthis.logger.info('Refreshing session...');\n\n\t\t\t\tthis.refreshing = true;\n\n\t\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\n\n\t\t\t\tthis.refreshing = false;\n\n\t\t\t\tif (!res.ok) {\n\t\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\n\n\t\t\t\t\t/*\n\t\t\t\t\t * return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\n\t\t\t\t\t */\n\t\t\t\t\tif (\n\t\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\n\t\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\n\t\t\t\t\t\tres.error.name === 'VerificationLockedError'\n\t\t\t\t\t) {\n\t\t\t\t\t\tlocalStorage.removeItem(this.storageKey);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tok: false,\n\t\t\t\t\t\t\terror: res.error,\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.logger.warn('Old session returned.');\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tok: true,\n\t\t\t\t\t\t\tdata: obj,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.logger.success('Session refreshed!');\n\n\t\t\t\tnow = new Date();\n\t\t\t\tobj = {\n\t\t\t\t\t...obj,\n\t\t\t\t\t...res.data,\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t};\n\n\t\t\t\tlocalStorage.setItem(this.storageKey, JSON.stringify(obj));\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: obj,\n\t\t\t};\n\t\t} catch {\n\t\t\t/* Did they modify session in localStorage? */\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n\n\tasync refresh(): Promise<OperationResult<RefreshSessionError, Data | null>> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\tconst val = localStorage.getItem(this.storageKey);\n\n\t\tif (!val) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tlet obj: {\n\t\t\t\tsession: Session;\n\t\t\t\taccessToken: string;\n\t\t\t\taccessTokenExpiresAt: number;\n\t\t\t\trefreshToken: string;\n\t\t\t\trefreshTokenExpiresAt: number;\n\t\t\t} = JSON.parse(val);\n\n\t\t\tlet now = new Date();\n\n\t\t\tthis.logger.info('Refreshing session...');\n\n\t\t\tthis.refreshing = true;\n\n\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\n\n\t\t\tthis.refreshing = false;\n\n\t\t\tif (!res.ok) {\n\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\n\n\t\t\t\t/*\n\t\t\t\t\t* return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\n\t\t\t\t\t*/\n\t\t\t\tif (\n\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\n\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\n\t\t\t\t\tres.error.name === 'VerificationLockedError'\n\t\t\t\t) {\n\t\t\t\t\tlocalStorage.removeItem(this.storageKey);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: res.error,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger.warn('Old session returned.');\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: true,\n\t\t\t\t\t\tdata: obj,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.logger.success('Session refreshed!');\n\n\t\t\tnow = new Date();\n\t\t\tobj = {\n\t\t\t\t...obj,\n\t\t\t\t...res.data,\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t};\n\n\t\t\tlocalStorage.setItem(this.storageKey, JSON.stringify(obj));\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: obj,\n\t\t\t};\n\t\t} catch {\n\t\t\t/* Did they modify session in localStorage? */\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n\n\tasync destroy() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst res = await this.get();\n\n\t\tif (res.data?.accessToken) {\n\t\t\tawait this.authService.destroySession(res.data.accessToken);\n\t\t}\n\n\t\tlocalStorage.removeItem(this.storageKey);\n\t}\n\n\tasync verify(): Promise<boolean> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn true;\n\t\t}\n\n\t\tconst s = await this.get();\n\n\t\tif (s.error?.name === 'InvalidTokenError') return false;\n\t\tif (s.error?.name === 'SessionExpiredError') return false;\n\t\tif (s.error?.name === 'AccountBlacklistedError') return false;\n\n\t\t/* Not logged in or session is not expired */\n\t\tif (!s.data) return true;\n\n\t\tconst v = await this.authService.verifySession(s.data.accessToken);\n\n\t\t/* log out if session is no longer valid */\n\t\tif (!v) {\n\t\t\tlocalStorage.removeItem(this.storageKey);\n\t\t}\n\n\t\treturn v;\n\t}\n\n\tget onMaya() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\n\t}\n\n\tget onCabinet() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\n}\n","import cookies from 'js-cookie';\nimport type { AuthService, WalletService } from '../services/index.js';\nimport type { OperationResult } from '../types/index.js';\nimport { addDays } from '../utils/add-days.js';\nimport { addMinutes } from '../utils/add-minutes.js';\nimport { isAfter } from '../utils/is-after.js';\nimport { pollable } from '../utils/pollable.js';\nimport { sleep } from '../utils/sleep.js';\nimport { subMinutes } from '../utils/sub-minutes.js';\nimport type { Logger } from './logger.js';\nimport type {\n\tAuthenticateError,\n\tAuthenticateInput,\n\tAuthenticator,\n\tRefreshSessionError,\n\tSession,\n\tSignInError,\n\tSignInInput,\n} from './types.js';\n\ninterface Data {\n\tsession: Session;\n\taccessToken: string;\n\taccessTokenExpiresAt: number;\n\trefreshToken: string;\n\trefreshTokenExpiresAt: number;\n}\n\ninterface SessionManagerConfig {\n\tlogger: Logger;\n\tauthService: AuthService;\n\twalletService: WalletService;\n}\n\nexport class SessionManagerCookie {\n\tprivate logger: Logger;\n\tprivate storageKey = 'session';\n\tprivate platformStorageKey = 'session/platform';\n\tprivate authService: AuthService;\n\tprivate walletService: WalletService;\n\tprivate _refreshing = false;\n\n\tconstructor(config: SessionManagerConfig) {\n\t\tthis.authService = config.authService;\n\t\tthis.walletService = config.walletService;\n\t\tthis.logger = config.logger;\n\t}\n\n\tget refreshing() {\n\t\treturn this._refreshing;\n\t}\n\n\tset refreshing(value: boolean) {\n\t\tthis._refreshing = value;\n\t}\n\n\tasync create(\n\t\tinput: SignInInput,\n\t): Promise<\n\t\tOperationResult<SignInError, { authenticator: Authenticator } | null>\n\t> {\n\t\t/*\n\t\t * Maya Sign In\n\t\t */\n\t\tif (input.type === 'MAYA') {\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\n\n\t\t\tconst f0 = () => this.walletService.mayaSession({ id: input.sessionId });\n\t\t\tconst r0 = await pollable(f0, {\n\t\t\t\tuntil: (r) => r.ok && r.data?.member != null,\n\t\t\t\tinterval: 1000,\n\t\t\t\tmaxAttempt: 5,\n\t\t\t})();\n\n\t\t\tif (!r0.ok) return r0;\n\t\t\tif (!r0.data?.member) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tname: 'HttpForbidden',\n\t\t\t\t\t\tmessage: 'Forbidden',\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst f1 = () => this.authService.createSession(input);\n\t\t\tconst r1 = await pollable(f1, {\n\t\t\t\tuntil: (r) => r.ok,\n\t\t\t\tinterval: 1000,\n\t\t\t\tmaxAttempt: 5,\n\t\t\t})();\n\n\t\t\tif (!r1.ok) return r1;\n\n\t\t\tconst now = new Date();\n\n\t\t\tcookies.set(\n\t\t\t\tthis.storageKey,\n\t\t\t\tJSON.stringify({\n\t\t\t\t\t...r1.data,\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t}),\n\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\t/*\n\t\t * Mobile Number Sign In\n\t\t */\n\t\tif (input.type === 'MOBILE_NUMBER') {\n\t\t\tconst res = await this.authService.createSession(input);\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst now = new Date();\n\n\t\t\t\tcookies.set(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t\t{\n\t\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\t/**\n\t\t * Token sign up (for 3rd party sign in)\n\t\t */\n\t\tif (input.type === 'SOCIALS' || input.type === 'TOKEN') {\n\t\t\tconst res = await this.authService.createSession({\n\t\t\t\ttype: 'SOCIALS',\n\t\t\t\ttoken: input.token,\n\t\t\t});\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst now = new Date();\n\n\t\t\t\tcookies.set(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\t/**\n\t\t * Cabinet sign in\n\t\t */\n\t\tif (input.type === 'CABINET') {\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\n\n\t\t\tconst res = await this.authService.createSession(input);\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst now = new Date();\n\n\t\t\t\tcookies.set(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\t/*\n\t\t * Name and Password Sign In\n\t\t */\n\t\tconst res = await this.authService.createSession(input);\n\n\t\tif (!res.ok) return res;\n\n\t\t/*\n\t\t * 2FA enabled\n\t\t */\n\t\tif (res.data.authenticator) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: {\n\t\t\t\t\tauthenticator: res.data.authenticator,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst now = new Date();\n\n\t\tcookies.set(\n\t\t\tthis.storageKey,\n\t\t\tJSON.stringify({\n\t\t\t\t...res.data,\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t}),\n\t\t\t{},\n\t\t);\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: null,\n\t\t};\n\t}\n\n\tasync createFromAuthenticator(\n\t\tinput: AuthenticateInput,\n\t): Promise<OperationResult<AuthenticateError>> {\n\t\tconst res = await this.authService.authenticate(input);\n\n\t\tif (res.ok) {\n\t\t\tconst now = new Date();\n\n\t\t\tif (this.isServer) {\n\t\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\n\t\t\t} else {\n\t\t\t\tcookies.set(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t\t{\n\t\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn { ok: true };\n\t\t} else {\n\t\t\treturn res;\n\t\t}\n\t}\n\n\tasync get(): Promise<OperationResult<RefreshSessionError, Data | null>> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\tif (this.refreshing) {\n\t\t\tawait sleep(1000);\n\t\t\treturn await this.get();\n\t\t}\n\n\t\tconst val = cookies.get(this.storageKey);\n\n\t\tif (!val) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tlet obj: {\n\t\t\t\tsession: Session;\n\t\t\t\taccessToken: string;\n\t\t\t\taccessTokenExpiresAt: number;\n\t\t\t\trefreshToken: string;\n\t\t\t\trefreshTokenExpiresAt: number;\n\t\t\t} = JSON.parse(val);\n\n\t\t\tlet now = new Date();\n\n\t\t\tconst accessTokenExpiresAt = new Date(obj.accessTokenExpiresAt);\n\t\t\tconst refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);\n\n\t\t\t/* is refresh token expired? */\n\t\t\tif (isAfter(now, refreshTokenExpiresAt)) {\n\t\t\t\tthis.logger.warn('Session expired. Logging out..');\n\n\t\t\t\tcookies.remove(this.storageKey);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tname: 'SessionExpiredError',\n\t\t\t\t\t\tmessage: 'Session expired.',\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t/* is access token expired? */\n\t\t\tif (isAfter(now, accessTokenExpiresAt)) {\n\t\t\t\tthis.logger.info('Refreshing session...');\n\n\t\t\t\tthis.refreshing = true;\n\n\t\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\n\n\t\t\t\tthis.refreshing = false;\n\n\t\t\t\tif (!res.ok) {\n\t\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\n\n\t\t\t\t\t/*\n\t\t\t\t\t * return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\n\t\t\t\t\t */\n\t\t\t\t\tif (\n\t\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\n\t\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\n\t\t\t\t\t\tres.error.name === 'VerificationLockedError'\n\t\t\t\t\t) {\n\t\t\t\t\t\tcookies.remove(this.storageKey);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tok: false,\n\t\t\t\t\t\t\terror: res.error,\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.logger.warn('Old session returned.');\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tok: true,\n\t\t\t\t\t\t\tdata: obj,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.logger.success('Session refreshed!');\n\n\t\t\t\tnow = new Date();\n\t\t\t\tobj = {\n\t\t\t\t\t...obj,\n\t\t\t\t\t...res.data,\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t};\n\n\t\t\t\tcookies.set(this.storageKey, JSON.stringify(obj), {\n\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: obj,\n\t\t\t};\n\t\t} catch {\n\t\t\t/* Did they modify session in cookies? */\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n\n\tasync refresh(): Promise<OperationResult<RefreshSessionError, Data | null>> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\tconst val = cookies.get(this.storageKey);\n\n\t\tif (!val) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tlet obj: {\n\t\t\t\tsession: Session;\n\t\t\t\taccessToken: string;\n\t\t\t\taccessTokenExpiresAt: number;\n\t\t\t\trefreshToken: string;\n\t\t\t\trefreshTokenExpiresAt: number;\n\t\t\t} = JSON.parse(val);\n\n\t\t\tlet now = new Date();\n\n\t\t\tthis.logger.info('Refreshing session...');\n\n\t\t\tthis.refreshing = true;\n\n\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\n\n\t\t\tthis.refreshing = false;\n\n\t\t\tif (!res.ok) {\n\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\n\n\t\t\t\t/*\n\t\t\t\t\t* return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\n\t\t\t\t\t*/\n\t\t\t\tif (\n\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\n\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\n\t\t\t\t\tres.error.name === 'VerificationLockedError'\n\t\t\t\t) {\n\t\t\t\t\tcookies.remove(this.storageKey);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: res.error,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger.warn('Old session returned.');\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: true,\n\t\t\t\t\t\tdata: obj,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.logger.success('Session refreshed!');\n\n\t\t\tnow = new Date();\n\t\t\tobj = {\n\t\t\t\t...obj,\n\t\t\t\t...res.data,\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t};\n\n\t\t\tcookies.set(this.storageKey, JSON.stringify(obj), {\n\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: obj,\n\t\t\t};\n\t\t} catch {\n\t\t\t/* Did they modify session in cookies? */\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n\n\tasync destroy() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst res = await this.get();\n\n\t\tif (res.data?.accessToken) {\n\t\t\tawait this.authService.destroySession(res.data.accessToken);\n\t\t}\n\n\t\tcookies.remove(this.storageKey);\n\t}\n\n\tasync verify(): Promise<boolean> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\n\t\t\treturn true;\n\t\t}\n\n\t\tconst s = await this.get();\n\n\t\tif (s.error?.name === 'InvalidTokenError') return false;\n\t\tif (s.error?.name === 'SessionExpiredError') return false;\n\t\tif (s.error?.name === 'AccountBlacklistedError') return false;\n\n\t\t/* Not logged in or session is not expired */\n\t\tif (!s.data) return true;\n\n\t\tconst v = await this.authService.verifySession(s.data.accessToken);\n\n\t\t/* log out if session is no longer valid */\n\t\tif (!v) {\n\t\t\tcookies.remove(this.storageKey);\n\t\t}\n\n\t\treturn v;\n\t}\n\n\tget onMaya() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\n\t}\n\n\tget onCabinet() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\n}\n","import { isPlainObject } from './is-plain-object.js';\n\nexport function compact<T>(obj: Record<string, any>) {\n\tconst output: Record<string, any> = {};\n\n\tfor (const k in obj) {\n\t\tconst v = obj[k];\n\n\t\tif (v === null) continue;\n\t\tif (v === undefined) continue;\n\n\t\tif (isPlainObject(v)) {\n\t\t\toutput[k] = compact(v);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (Array.isArray(v)) {\n\t\t\toutput[k] = v.map((i) => {\n\t\t\t\tif (isPlainObject(i)) {\n\t\t\t\t\treturn compact(i);\n\t\t\t\t} else {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tcontinue;\n\t\t}\n\n\t\toutput[k] = v;\n\t}\n\n\treturn output as T;\n}\n","export function invariant(\n\tcondition: unknown,\n\tmessage?: string,\n): asserts condition {\n\tif (!condition) {\n\t\tconst error = new Error();\n\t\terror.name = 'Invariant Violation';\n\t\terror.message = message ?? 'Invariant failed';\n\t\tError.captureStackTrace?.(error, invariant);\n\t\tthrow error;\n\t}\n}\n","type MaybeNumber = number | string | undefined | null;\n\nexport function parseDecimal(value: MaybeNumber): number | undefined;\nexport function parseDecimal(value: MaybeNumber, fallback: number): number;\nexport function parseDecimal(value: MaybeNumber, fallback?: number) {\n\tif (typeof value === 'number') {\n\t\tif (!Number.isNaN(value)) return value;\n\t}\n\n\tif (typeof value === 'string') {\n\t\tconst parsed = Number.parseFloat(value);\n\n\t\tif (!Number.isNaN(parsed)) {\n\t\t\treturn parsed;\n\t\t}\n\t}\n\n\treturn fallback;\n}\n","import type * as Internal from '../services/index.js';\nimport type { Assign } from '../types/index.js';\nimport { compact } from '../utils/compact.js';\nimport { invariant } from '../utils/invariant.js';\nimport { parseDecimal } from '../utils/parse-decimal.js';\nimport type * as External from './types.js';\nimport { getLocaleByCurrency } from './utils.js';\n\nconst IMAGE_CACHE_ID = '3'.padStart(8, '0');\n\nexport class Transformer {\n\tget transform() {\n\t\treturn {\n\t\t\tsite: this.site.bind(this),\n\t\t\tplatform: this.platform.bind(this),\n\t\t\taccount: this.account.bind(this),\n\t\t\twallet: this.wallet.bind(this),\n\t\t\tverificationDetails: this.verificationDetails.bind(this),\n\t\t\tprofileCompletion: this.profileCompletion.bind(this),\n\t\t\tannouncement: this.announcement.bind(this),\n\t\t\twithdrawalRecord: this.withdrawalRecord.bind(this),\n\t\t\tdeposit: this.deposit.bind(this),\n\t\t\tcabinetWithdrawal: this.cabinetWithdrawal.bind(this),\n\t\t\tdepositRecord: this.depositRecord.bind(this),\n\t\t\tbetRecord: this.betRecord.bind(this),\n\t\t\tlatestBetRecord: this.latestBetRecord.bind(this),\n\t\t\ttransactionRecord: this.transactionRecord.bind(this),\n\t\t\tgame: this.game.bind(this),\n\t\t\tgameSession: this.gameSession.bind(this),\n\t\t\tpromo: this.promo.bind(this),\n\t\t\tcashback: this.cashback.bind(this),\n\t\t\tbonus: this.bonus.bind(this),\n\t\t\tcashbackBonus: this.cashbackBonus.bind(this),\n\t\t\tmemberCabinetSiteMachine: this.memberCabinetSiteMachine.bind(this),\n\t\t\tfile: this.file.bind(this),\n\t\t\tpointsWallet: this.pointsWallet.bind(this),\n\t\t\tpointsWalletTransaction: this.pointsWalletTransaction.bind(this),\n\t\t\tactivityRecord: this.activityRecord.bind(this),\n\t\t\treferral: this.referral.bind(this),\n\t\t\treferralCommission: this.referralCommission.bind(this),\n\t\t\tplatform__next: this.platform__next.bind(this),\n\t\t\tpointsClubSettings: this.pointsClubSettings.bind(this),\n\t\t\tpaymentSettings: this.paymentSettings.bind(this),\n\t\t\tmessage: this.message.bind(this),\n\t\t\tinstapayBank: this.instapayBank.bind(this),\n\t\t\tpromoByCode: this.promoByCode.bind(this),\n\t\t\tquest: this.quest.bind(this),\n\t\t\ttopWin: this.topWin.bind(this),\n\t\t\tjackpots: this.jackpots.bind(this),\n\t\t\tjackpotPayouts: this.jackpotPayouts.bind(this),\n\t\t\ttournaments: this.tournaments.bind(this),\n\t\t\tmemberLevelSettings: this.memberLevelSettings.bind(this),\n\t\t\tachievementSettings: this.achievementSettings.bind(this),\n\t\t\tachievementPointsHistoryRecord:\n\t\t\t\tthis.achievementPointsHistoryRecord.bind(this),\n\t\t\tmemberAchievements: this.memberAchievements.bind(this),\n\t\t};\n\t}\n\n\tprivate site(data: Internal.Site): External.Site {\n\t\tconst o: External.Site = {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tlogo: data.logo ?? undefined,\n\t\t\tfields: data.config.fields,\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\t/** @deprecated */\n\tprivate platform(data: Internal.Platform): External.Platform {\n\t\treturn {\n\t\t\ttimezone: data.timezone,\n\t\t\tcurrency: data.currency,\n\t\t\tpaymentSettings: {\n\t\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\n\t\t\t\trestrictWithdrawalsToVerifiedMembers:\n\t\t\t\t\tdata.restrictWithdrawalsToVerifiedMembers,\n\t\t\t\tdepositGateway: {\n\t\t\t\t\tbank: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tgcash: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tgcashWebpay: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\taioGcash: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\taioPayMaya: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\taioGrabPay: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\taioPalawanPay: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.mobileWebEnabled ??\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmaya: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmayaApp: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmayaWebpay: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tonlineBank: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tqrph: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmanualBank: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tbankAccountName:\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountName,\n\t\t\t\t\t\tbankAccountNumber:\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountNumber,\n\t\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\n\t\t\t\t\t},\n\t\t\t\t\tmanualUPI: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\n\t\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\n\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t: (this.file(\n\t\t\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings.upiQRCode,\n\t\t\t\t\t\t\t\t) as Extract<External.File, { status: 'READY' }>),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\twithdrawalGateway: {\n\t\t\t\t\tbank: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tgcash: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tgcashStandardCashIn: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings\n\t\t\t\t\t\t\t\t?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.iosEnabled ??\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.webEnabled ??\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings\n\t\t\t\t\t\t\t\t?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmaya: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmayaApp: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tinstapay: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmanualBank: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ??\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmanualUPI: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ??\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tpointsClubSettings: {\n\t\t\t\tmultiplier: parseDecimal(data.pointsClubSettings?.multiplier, 0),\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate platform__next(\n\t\tdata: Internal.Platform__Next,\n\t): External.Platform__Next {\n\t\treturn {\n\t\t\tcurrency: data.currency,\n\t\t\ttimezone: data.timezone,\n\t\t\tlocale: getLocaleByCurrency(data.currency),\n\t\t};\n\t}\n\n\tprivate memberLevelSettings(\n\t\tdata: Internal.MemberLevelSettings,\n\t): External.MemberLevelSettings {\n\t\treturn {\n\t\t\tmemberLevelSettings__1: {\n\t\t\t\tenabled: data.memberLevelSettings__1.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__1?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__1?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__1?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__1?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__1?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__2: {\n\t\t\t\tenabled: data.memberLevelSettings__2.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__2?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__2?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__2?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__2?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__2?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__3: {\n\t\t\t\tenabled: data.memberLevelSettings__3.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__3?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__3?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__3?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__3?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__3?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__4: {\n\t\t\t\tenabled: data.memberLevelSettings__4.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__4?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__4?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__4?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__4?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__4?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__5: {\n\t\t\t\tenabled: data.memberLevelSettings__5.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__5?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__5?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__5?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__5?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__5?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__6: {\n\t\t\t\tenabled: data.memberLevelSettings__6.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__6?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__6?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__6?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__6?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__6?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__7: {\n\t\t\t\tenabled: data.memberLevelSettings__7.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__7?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__7?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__7?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__7?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__7?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__8: {\n\t\t\t\tenabled: data.memberLevelSettings__8.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__8?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__8?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__8?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__8?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__8?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__9: {\n\t\t\t\tenabled: data.memberLevelSettings__9.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__9?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__9?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__9?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__9?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__9?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__10: {\n\t\t\t\tenabled: data.memberLevelSettings__10.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__10?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__10?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__10?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__10?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__10?.bonusAmount ?? 0,\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate achievementSettings(\n\t\tdata: Internal.AchievementSettingsResponse,\n\t): External.AchievementSettingsResponse {\n\t\treturn {\n\t\t\tdiverseDebut: {\n\t\t\t\tenabled: data.diverseDebut.enabled ?? false,\n\t\t\t\tpoints: data.diverseDebut.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.diverseDebut.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.diverseDebut.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.diverseDebut.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.diverseDebut.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tvarietyVirtuoso: {\n\t\t\t\tenabled: data.varietyVirtuoso.enabled ?? false,\n\t\t\t\tpoints: data.varietyVirtuoso.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.varietyVirtuoso.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.varietyVirtuoso.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.varietyVirtuoso.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.varietyVirtuoso.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tmasterOfDiversity: {\n\t\t\t\tenabled: data.masterOfDiversity.enabled ?? false,\n\t\t\t\tpoints: data.masterOfDiversity.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.masterOfDiversity.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.masterOfDiversity.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.masterOfDiversity.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.masterOfDiversity.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tcuriousNewcomer: {\n\t\t\t\tenabled: data.curiousNewcomer.enabled ?? false,\n\t\t\t\tpoints: data.curiousNewcomer.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.curiousNewcomer.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.curiousNewcomer.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.curiousNewcomer.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.curiousNewcomer.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\ttrailblazer: {\n\t\t\t\tenabled: data.trailblazer.enabled ?? false,\n\t\t\t\tpoints: data.trailblazer.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.trailblazer.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.trailblazer.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.trailblazer.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.trailblazer.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tinnovationIcon: {\n\t\t\t\tenabled: data.innovationIcon.enabled ?? false,\n\t\t\t\tpoints: data.innovationIcon.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.innovationIcon.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.innovationIcon.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.innovationIcon.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.innovationIcon.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\trapidRoller: {\n\t\t\t\tenabled: data.rapidRoller.enabled ?? false,\n\t\t\t\tpoints: data.rapidRoller.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.rapidRoller.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.rapidRoller.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.rapidRoller.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.rapidRoller.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\twhirlwindWagerer: {\n\t\t\t\tenabled: data.whirlwindWagerer.enabled ?? false,\n\t\t\t\tpoints: data.whirlwindWagerer.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.whirlwindWagerer.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.whirlwindWagerer.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.whirlwindWagerer.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.whirlwindWagerer.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tbettingBonanza: {\n\t\t\t\tenabled: data.bettingBonanza.enabled ?? false,\n\t\t\t\tpoints: data.bettingBonanza.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.bettingBonanza.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.bettingBonanza.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.bettingBonanza.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.bettingBonanza.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tsteadyStrategist: {\n\t\t\t\tenabled: data.steadyStrategist.enabled ?? false,\n\t\t\t\tpoints: data.steadyStrategist.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.steadyStrategist.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.steadyStrategist.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.steadyStrategist.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.steadyStrategist.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tconsistentContender: {\n\t\t\t\tenabled: data.consistentContender.enabled ?? false,\n\t\t\t\tpoints: data.consistentContender.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.consistentContender.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.consistentContender.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.consistentContender.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.consistentContender.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tlegendaryLoyalist: {\n\t\t\t\tenabled: data.legendaryLoyalist.enabled ?? false,\n\t\t\t\tpoints: data.legendaryLoyalist.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.legendaryLoyalist.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.legendaryLoyalist.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.legendaryLoyalist.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.legendaryLoyalist.activeDaysCount ?? 0,\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate pointsClubSettings(\n\t\tdata: Internal.PointsClubSettings,\n\t): External.PointsClubSettings {\n\t\treturn {\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\n\t\t};\n\t}\n\n\tprivate paymentSettings(\n\t\tdata: Internal.PaymentSettings,\n\t): External.PaymentSettings {\n\t\treturn {\n\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\n\t\t\trestrictWithdrawalsToVerifiedMembers:\n\t\t\t\tdata.restrictWithdrawalsToVerifiedMembers,\n\t\t\tdepositGateway: {\n\t\t\t\tbank: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tgcash: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tgcashWebpay: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\taioGcash: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.aioGcashDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.aioGcashDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\taioPayMaya: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\taioGrabPay: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\taioPalawanPay: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmaya: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmayaApp: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmayaWebpay: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tonlineBank: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tqrph: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmanualBank: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tbankAccountName:\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountName,\n\t\t\t\t\tbankAccountNumber:\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountNumber,\n\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\n\t\t\t\t},\n\t\t\t\tmanualUPI: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.manualUPIDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\n\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: (this.file(\n\t\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings.upiQRCode,\n\t\t\t\t\t\t\t) as Extract<External.File, { status: 'READY' }>),\n\t\t\t\t},\n\t\t\t},\n\t\t\twithdrawalGateway: {\n\t\t\t\tbank: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tgcash: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tgcashStandardCashIn: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.androidEnabled ??\n\t\t\t\t\t\tfalse,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.iosEnabled ??\n\t\t\t\t\t\tfalse,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.webEnabled ??\n\t\t\t\t\t\tfalse,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings\n\t\t\t\t\t\t\t?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmaya: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmayaApp: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tinstapay: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmanualBank: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmanualUPI: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate account(data: Internal.MemberAccount): External.Account {\n\t\tconst o: External.Account = {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tstatus: data.status,\n\t\t\tverified: data.verified,\n\t\t\tnickName: data.nickName ?? undefined,\n\t\t\trealName: data.realName ?? undefined,\n\t\t\tdateOfBirth: data.birthDay ? new Date(data.birthDay) : undefined,\n\t\t\temailAddress: data.emailAddress ?? undefined,\n\t\t\tmobileNumber: data.mobileNumber ?? undefined,\n\t\t\tmobileNumberVerified: data.mobileNumberVerified ?? false,\n\t\t\tmobileNumberVerificationRequired:\n\t\t\t\tdata.mobileNumberVerificationRequired ?? false,\n\t\t\tvalidId: data.validId || undefined,\n\t\t\tverificationStatus: data.verificationStatus,\n\t\t\ttransactionPassword: data.transactionPassword,\n\t\t\tsecretAnswerSubmitted: data.secretAnswerSubmitted ?? false,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t\tcurrentActiveDaysCount: data.currentActiveDaysCount,\n\t\t\tcurrentBetsCount: data.currentBetsCount,\n\t\t\tcurrentNewGamesCount: data.currentNewGamesCount,\n\t\t\tcurrentUniqueGamesCount: data.currentUniqueGamesCount,\n\t\t\tdateTimeLastLeveledUp: new Date(data.dateTimeLastLeveledUp),\n\t\t\tcurrentMonthlyAchievementPoints: data.currentMonthlyAchievementPoints,\n\t\t\tachievementPointsLevelUpProgressPercentage:\n\t\t\t\tdata.achievementPointsLevelUpProgressPercentage,\n\t\t\tcurrentMonthlyTurnover: data.currentMonthlyTurnover,\n\t\t\tturnoverLevelUpProgressPercentage: data.turnoverLevelUpProgressPercentage,\n\t\t\tgoogleId: data.googleId,\n\t\t\tdomain: data.domain ?? null,\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate wallet(data: Internal.Wallet): External.Wallet {\n\t\tconst o: External.Wallet = {\n\t\t\tid: data.id,\n\t\t\tbalance: parseDecimal(data.balance, 0),\n\t\t\tturnoverRequirement: parseDecimal(data.turnoverRequirement),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate verificationDetails(\n\t\tdata: Internal.MemberVerification,\n\t): External.VerificationDetails {\n\t\tconst o: External.VerificationDetails = {\n\t\t\tid: data.id,\n\t\t\tstatus: data.status,\n\t\t\taddress: data.address,\n\t\t\tpermanentAddress: data.permanentAddress,\n\t\t\tnationality: data.nationality,\n\t\t\tnatureOfWork: data.natureOfWork,\n\t\t\tplaceOfBirth: data.placeOfBirth,\n\t\t\tsourceOfIncome: data.sourceOfIncome,\n\t\t\tselfieImage: data?.selfieImage\n\t\t\t\t? (this.file(data?.selfieImage) as External.File)\n\t\t\t\t: null,\n\t\t\tidFrontImage: data?.idFrontImage\n\t\t\t\t? (this.file(data?.idFrontImage) as External.File)\n\t\t\t\t: null,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate profileCompletion(\n\t\tdata: Internal.ProfileCompletion,\n\t): External.ProfileCompletion {\n\t\tconst o: External.ProfileCompletion = {\n\t\t\taccountPassword: data.accountPassword ?? false,\n\t\t\taccountVerification: data.accountVerification ?? false,\n\t\t\tmobileNumberVerification: data.mobileNumberVerification ?? false,\n\t\t\tpersonalInformation: data.personalInformation ?? false,\n\t\t\ttransactionPassword: data.transactionPassword ?? false,\n\t\t\tcompletionPercentage: parseDecimal(data.completionPercentage, 0),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate announcement(data: Internal.Announcement): External.Announcement {\n\t\tconst o: External.Announcement = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\ttitle: data.title,\n\t\t\tstatus: data.status,\n\t\t\tmessage: data.message,\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate withdrawalRecord(\n\t\tdata: Internal.WithdrawalRecord,\n\t): External.WithdrawalRecord {\n\t\tconst o = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tbank: data.bank!,\n\t\t\tbankName: data.bankName ?? undefined,\n\t\t\tstatus: data.status,\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\n\t\t\tfee: parseDecimal(data.fee, 0),\n\t\t\treference: data.reference ?? undefined,\n\t\t\taccountName: data.accountName ?? undefined,\n\t\t\terror: data.error ?? undefined,\n\t\t\twithdrawalNumber: data.withdrawalNumber,\n\t\t\tserialCode: data.serialCode,\n\t\t\trecipientMobileNumber: data.recipientMobileNumber ?? undefined,\n\t\t\tdateTimeConfirmed: data.dateTimeConfirmed\n\t\t\t\t? new Date(data.dateTimeConfirmed)\n\t\t\t\t: undefined,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t} as External.WithdrawalRecord;\n\n\t\treturn compact(o);\n\t}\n\n\tprivate deposit(data: Internal.Deposit): External.Deposit {\n\t\tconst o: External.Deposit = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tstatus: data.status,\n\t\t\tvca: data.vca ?? undefined,\n\t\t\tqrCode: data.qrCode ?? undefined,\n\t\t\tcheckoutUrl: data.checkoutUrl ?? undefined,\n\t\t\terror: data.error ?? undefined,\n\t\t} as External.Deposit;\n\n\t\treturn compact(o);\n\t}\n\n\tprivate depositRecord(data: Internal.DepositRecord): External.DepositRecord {\n\t\tconst o: External.DepositRecord = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tstatus: data.status,\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\tfee: parseDecimal(data.fee, 0),\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\n\t\t\treference: data.reference ?? undefined,\n\t\t\tdeposit: data.deposit,\n\t\t\tdepositNumber: data.depositNumber,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t\terror: data.error ?? undefined,\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate betRecord(\n\t\tdata: Assign<Internal.BetRecord, { game?: Internal.Game }>,\n\t): External.BetRecord {\n\t\tconst o: External.BetRecord = {\n\t\t\tid: data.id,\n\t\t\tbet: parseDecimal(data.bet, 0),\n\t\t\tpayout: parseDecimal(data.payout, 0),\n\t\t\todds: data.odds,\n\t\t\tstatus: data.status,\n\t\t\tjackpotContribution: parseDecimal(data.jackpotContribution, 0),\n\t\t\tjackpotPayout: parseDecimal(data.jackpotPayout, 0),\n\t\t\twinloss: parseDecimal(data.winloss),\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\n\t\t\tvendorRoundId: data.vendorRoundId ?? undefined,\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\n\t\t\tserialCode: data.serialCode,\n\t\t\tdateTimeSettled: data.dateTimeSettled\n\t\t\t\t? new Date(data.dateTimeSettled)\n\t\t\t\t: undefined,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t\tbetContent: data.betContent ?? undefined,\n\t\t\tcontestName: data.contestName ?? undefined,\n\t\t\texternalCategory: data.externalCategory ?? undefined,\n\t\t\tmetadata: {\n\t\t\t\todds: data.metadata?.odds ?? undefined,\n\t\t\t},\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate latestBetRecord(\n\t\tdata: Assign<Internal.LatestBetRecord, { game?: Internal.Game }>,\n\t): External.LatestBetRecord {\n\t\tconst o: External.LatestBetRecord = {\n\t\t\tid: data.id,\n\t\t\tmember: data.member,\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\n\t\t\tbet: parseDecimal(data.bet, 0),\n\t\t\tpayout: parseDecimal(data.payout, 0),\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\n\t\t\tdateTimeSettled: new Date(data.dateTimeSettled),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate transactionRecord(\n\t\tdata: Internal.TransactionRecord,\n\t): External.TransactionRecord {\n\t\tconst o: External.TransactionRecord = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\tcontent: data.content ?? undefined,\n\t\t\tcurrentBalance: parseDecimal(data.currentBalance, 0),\n\t\t\tcurrentBonusBalance: parseDecimal(data.currentBonusBalance, 0),\n\t\t\treferenceNumber: data.referenceNumber,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate game(data: Internal.Game): External.Game {\n\t\tconst images = [data.customImage, data.image].filter(Boolean).map((url) => {\n\t\t\tinvariant(url);\n\n\t\t\treturn url.includes('?')\n\t\t\t\t? `${url}&cache_id=${IMAGE_CACHE_ID}`\n\t\t\t\t: `${url}?cache_id=${IMAGE_CACHE_ID}`;\n\t\t});\n\n\t\tconst o: External.Game = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\ttags: data.tags ?? [],\n\t\t\tname: data.name,\n\t\t\timages,\n\t\t\tprovider: data.provider,\n\t\t\treference: data.reference,\n\t\t\tfavorite: data.favorite,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate gameSession(data: Internal.GameSession): External.GameSession {\n\t\tconst o = {\n\t\t\tid: data.id,\n\t\t\tstatus: data.status,\n\t\t\tlaunchUrl: data.launchUrl ?? undefined,\n\t\t\tlaunchOptions: data?.launchOptions ?? undefined,\n\t\t} as External.GameSession;\n\n\t\treturn compact(o);\n\t}\n\n\tprivate promo(data: Internal.Promo): External.Promo {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tname: data.name,\n\t\t\tstatus: data.status,\n\t\t\tdescription: data.description,\n\t\t\tbanner: !data.banner\n\t\t\t\t? null\n\t\t\t\t: (this.file(data.banner) as Extract<\n\t\t\t\t\t\tExternal.File,\n\t\t\t\t\t\t{ status: 'READY' }\n\t\t\t\t\t>),\n\t\t\tmaximumBonusAmount: parseDecimal(data.maximumBonusAmount),\n\t\t\tminimumBonusAmount: parseDecimal(data.minimumBonusAmount),\n\t\t\tmaximumDepositAmount: parseDecimal(data.maximumDepositAmount),\n\t\t\tminimumDepositAmount: parseDecimal(data.minimumDepositAmount),\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\t}\n\n\tprivate cashback(data: Internal.Cashback): External.Cashback {\n\t\tconst o: External.Cashback = {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tdescription: data.description,\n\t\t\tstatus: data.status,\n\t\t\tminimumCashback: parseDecimal(data.minimumCashback, 0),\n\t\t\tmaximumMonthlyCashback: parseDecimal(data.maximumMonthlyCashback),\n\t\t\tbanner: !data.banner\n\t\t\t\t? null\n\t\t\t\t: (this.file(data.banner) as Extract<\n\t\t\t\t\t\tExternal.File,\n\t\t\t\t\t\t{ status: 'READY' }\n\t\t\t\t\t>),\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t\tturnoverContributionPercentagePerGameProvider: Object.entries(\n\t\t\t\tdata.turnoverContributionPercentagePerGameProvider,\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\n\t\t\t\treturn o;\n\t\t\t}, {}),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate bonus(data: Internal.Bonus): External.Bonus {\n\t\tconst o: External.Bonus = {\n\t\t\tid: data.id,\n\t\t\tpromo: this.promo(data.promo),\n\t\t\tdeposit: !data.deposit\n\t\t\t\t? undefined\n\t\t\t\t: {\n\t\t\t\t\t\ttype: data.deposit.type,\n\t\t\t\t\t\tstatus: data.deposit.status,\n\t\t\t\t\t\tfee: parseDecimal(data.deposit.fee, 0),\n\t\t\t\t\t\tamount: parseDecimal(data.deposit.amount, 0),\n\t\t\t\t\t\tnetAmount: parseDecimal(data.deposit.netAmount, 0),\n\t\t\t\t\t\treference: data.deposit.reference ?? undefined,\n\t\t\t\t\t\tdateTimeCreated: new Date(data.deposit.dateTimeCreated),\n\t\t\t\t\t\tdateTimeLastUpdated: new Date(data.deposit.dateTimeLastUpdated),\n\t\t\t\t\t},\n\t\t\tbalance: parseDecimal(data.balance, 0),\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\texpiration: new Date(data.expiration),\n\t\t\tturnoverRequirement: parseDecimal(data.turnoverRequirement, 0),\n\t\t\tcurrentTurnoverRequirementContribution: parseDecimal(\n\t\t\t\tdata.currentTurnoverRequirementContribution,\n\t\t\t\t0,\n\t\t\t),\n\t\t\tcurrentTurnoverRequirementContributionPercentage: parseDecimal(\n\t\t\t\tdata.currentTurnoverRequirementContributionPercentage,\n\t\t\t\t0,\n\t\t\t),\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\n\t\t\tenabledGameProviders: data.enabledGameProviders,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate cashbackBonus(data: Internal.CashbackBonus): External.CashbackBonus {\n\t\tconst o: External.CashbackBonus = {\n\t\t\tid: data.id,\n\t\t\ttotal: parseDecimal(data.total, 0),\n\t\t\tbalance: parseDecimal(data.balance, 0),\n\t\t\tcashback: this.cashback(data.cashback),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate memberCabinetSiteMachine(data: Internal.CabinetSiteMachine): External.CabinetSiteMachine {\n\t\tconst o: External.CabinetSiteMachine = {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tfingerprint: data.fingerprint,\n\t\t\tstatus: data.status,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate file(data: Internal.File): External.File {\n\t\tconst o = {\n\t\t\tid: data.id,\n\t\t\turl: data.url ?? undefined,\n\t\t\tstatus: data.status,\n\t\t} as External.File;\n\n\t\treturn compact(o);\n\t}\n\n\tprivate pointsWallet(data: Internal.PointsWallet): External.PointsWallet {\n\t\tconst o: External.PointsWallet = {\n\t\t\tid: data.id,\n\t\t\tpoints: parseDecimal(data.points, 0),\n\t\t\taccount: data.account,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate pointsWalletTransaction(\n\t\tdata: Internal.PointsWalletTransaction,\n\t): External.PointsWalletTransaction {\n\t\tconst o: External.PointsWalletTransaction = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\tbalance: parseDecimal(data.balance, 0),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate achievementPointsHistoryRecord(\n\t\tdata: Internal.AchievementPointsHistoryRecord,\n\t): External.AchievementPointsHistoryRecord {\n\t\tconst o: External.AchievementPointsHistoryRecord = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tpoints: parseDecimal(data.points, 0),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate activityRecord(\n\t\tdata: Internal.ActivityRecord,\n\t): External.ActivityRecord {\n\t\tconst o: External.ActivityRecord = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tamount: data.amount ? parseDecimal(data.amount, 0) : undefined,\n\t\t\tdomain: data.domain ?? undefined,\n\t\t\tdetails: data.details,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate referral(data: Internal.Referral): External.Referral {\n\t\tconst o: External.Referral = {\n\t\t\tid: data.id,\n\t\t\tlevel: data.level,\n\t\t\tupline: data.upline,\n\t\t\tdownline: data.downline,\n\t\t\tturnover: parseDecimal(data.turnover, 0),\n\t\t\tcommission: parseDecimal(data.commission, 0),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate referralCommission(\n\t\tdata: Internal.ReferralCommission,\n\t): External.ReferralCommission {\n\t\tconst o: External.ReferralCommission = {\n\t\t\tid: data.id,\n\t\t\tcommission: parseDecimal(data.commission, 0),\n\t\t\tlevel1Commission: parseDecimal(data.level1Commission, 0),\n\t\t\tlevel2Commission: parseDecimal(data.level2Commission, 0),\n\t\t\tlevel3Commission: parseDecimal(data.level3Commission, 0),\n\t\t\treferralsCount: data.referralsCount,\n\t\t\tlevel1ReferralsCount: data.level1ReferralsCount,\n\t\t\tlevel2ReferralsCount: data.level2ReferralsCount,\n\t\t\tlevel3ReferralsCount: data.level3ReferralsCount,\n\t\t\treferralCode: data.referralCode,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate message(data: Internal.Message): External.Message {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\ticon: data.icon,\n\t\t\tlogo: data.logo,\n\t\t\timage: data.image,\n\t\t\ttitle: data.title,\n\t\t\tpopup: data.popup,\n\t\t\tforce: data.force,\n\t\t\tcontent: data.content,\n\t\t\tactions: data.actions,\n\t\t\tmarkedAsRead: data.markedAsRead,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\ttype: data.type,\n\t\t\tmetadata: !data.metadata\n\t\t\t\t? null\n\t\t\t\t: {\n\t\t\t\t\t\ttournament: data.metadata.tournament,\n\t\t\t\t\t\tpayout: {\n\t\t\t\t\t\t\tid: data.metadata.payout.id,\n\t\t\t\t\t\t\tamount: parseDecimal(data.metadata.payout.amount, 0),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t};\n\t}\n\n\tprivate instapayBank(data: Internal.InstapayBank): External.InstapayBank {\n\t\treturn data;\n\t}\n\n\tprivate promoByCode(data: Internal.SpotBonusPromo): External.SpotBonusPromo {\n\t\treturn {\n\t\t\tactiveBonusesCount: data.activeBonusesCount,\n\t\t\tbonusesCount: data.bonusesCount,\n\t\t\tcancelledBonusesCount: data.cancelledBonusesCount,\n\t\t\tclearedBonusesCount: data.clearedBonusesCount,\n\t\t\tclosedBonusesCount: data.closedBonusesCount,\n\t\t\tclosedBonusesCountPercentage: parseDecimal(\n\t\t\t\tdata.closedBonusesCountPercentage,\n\t\t\t\t0,\n\t\t\t),\n\t\t\tcode: data.code,\n\t\t\tdaysToClear: data.daysToClear,\n\t\t\tenabledGameProviders: data.enabledGameProviders,\n\t\t\tid: data.id,\n\t\t\texpiredBonusesCount: data.expiredBonusesCount,\n\t\t\tmaximumBonusesCountLimit: data.maximumBonusesCountLimit,\n\t\t\tname: data.name,\n\t\t\tstatus: data.status,\n\t\t\ttotalBet: parseDecimal(data.totalBet, 0),\n\t\t\ttotalBonus: parseDecimal(data.totalBonus, 0),\n\t\t\ttotalBonusBalance: parseDecimal(data.totalBonusBalance, 0),\n\t\t\ttotalBonusCashedOut: parseDecimal(data.totalBonusCashedOut, 0),\n\t\t\ttotalDeposit: parseDecimal(data.totalDeposit, 0),\n\t\t\tturnoverRequirementMultiplier: parseDecimal(\n\t\t\t\tdata.turnoverRequirementMultiplier,\n\t\t\t\t0,\n\t\t\t),\n\t\t\ttype: data.type,\n\t\t\tzeroedOutBonusesCount: data.zeroedOutBonusesCount,\n\t\t\tzeroOutThreshold: parseDecimal(data.zeroOutThreshold, 0),\n\t\t\tbonusAmount: parseDecimal(data.bonusAmount, 0),\n\t\t\tdescription: data.description,\n\t\t\tturnoverRequirementType: data.turnoverRequirementType,\n\t\t\tactivationEndDateTime: data.activationEndDateTime\n\t\t\t\t? new Date(data.activationEndDateTime)\n\t\t\t\t: undefined,\n\t\t\tactivationStartDateTime: data.activationStartDateTime\n\t\t\t\t? new Date(data.activationStartDateTime)\n\t\t\t\t: undefined,\n\t\t\tdateTimeClosed: data.dateTimeClosed\n\t\t\t\t? new Date(data.dateTimeClosed)\n\t\t\t\t: undefined,\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider: Object.entries(\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\n\t\t\t\treturn o;\n\t\t\t}, {}),\n\t\t\tminimumTicketOddFactorPerSportsGameProvider: Object.entries(\n\t\t\t\tdata.minimumTicketOddFactorPerSportsGameProvider,\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\n\t\t\t\treturn o;\n\t\t\t}, {}),\n\t\t\tbanner: data.banner,\n\t\t};\n\t}\n\n\tquest(data: Internal.Quest): External.Quest {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tdescription: data.description,\n\t\t\tstatus: data.status,\n\t\t\tbonus: parseDecimal(data.bonus, 0),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tendDateTime: new Date(data.endDateTime),\n\t\t\tprogram: {\n\t\t\t\ttype: data.program.type,\n\t\t\t\tname: data.program.name,\n\t\t\t\tdescription: data.program.description,\n\t\t\t\tstatus: data.program.status,\n\t\t\t\tstages:\n\t\t\t\t\tdata.program.stages?.map((stage) => ({\n\t\t\t\t\t\ttargetTurnover: parseDecimal(stage.targetTurnover, 0),\n\t\t\t\t\t\tbonusTurnoverRequirementMultiplier: parseDecimal(\n\t\t\t\t\t\t\tstage.bonusTurnoverRequirementMultiplier,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tbonusAmount: parseDecimal(stage.bonusAmount, 0),\n\t\t\t\t\t})) ?? [],\n\t\t\t},\n\t\t\tprogressPercentage: parseDecimal(data.progressPercentage, 0),\n\t\t\tturnover: parseDecimal(data.turnover, 0),\n\t\t\ttargetTurnover: data?.targetTurnover\n\t\t\t\t? parseDecimal(data.targetTurnover, 0)\n\t\t\t\t: undefined,\n\t\t\tcheckInStreak: data?.checkInStreak ?? undefined,\n\t\t\tlastCheckInDate: data?.lastCheckInDate\n\t\t\t\t? new Date(data.lastCheckInDate)\n\t\t\t\t: undefined,\n\t\t\tstartDateTime: data?.startDateTime\n\t\t\t\t? new Date(data.startDateTime)\n\t\t\t\t: undefined,\n\t\t\ttype: data.type,\n\t\t\tdateTimeCompleted: data.dateTimeCompleted\n\t\t\t\t? new Date(data.dateTimeCompleted)\n\t\t\t\t: undefined,\n\t\t\t...(data.type === 'WAGERING' && {\n\t\t\t\tstage: data.stage,\n\t\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\n\t\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\n\t\t\t}),\n\t\t\t...(data.type === 'DAILY_CHECKIN' && {\n\t\t\t\tseventhDayBonusAmount: parseDecimal(data.seventhDayBonusAmount, 0),\n\t\t\t\tsixthDayBonusAmount: parseDecimal(data.sixthDayBonusAmount, 0),\n\t\t\t\tthirdDayBonusAmount: parseDecimal(data.thirdDayBonusAmount, 0),\n\t\t\t}),\n\n\t\t\t...(data.type === 'ONBOARDING' && {\n\t\t\t\tfirstDepositCompleted: data.firstDepositCompleted,\n\t\t\t\taccountVerificationCompleted: data.accountVerificationCompleted,\n\t\t\t}),\n\n\t\t\t...(data.type === 'JOURNEY' && {\n\t\t\t\tmilestones: data.milestones?.map((milestone) => ({\n\t\t\t\t\tid: milestone.id,\n\t\t\t\t\ttype: milestone.type,\n\t\t\t\t\tname: milestone.name,\n\t\t\t\t\tbonusAmount: parseDecimal(milestone.bonusAmount, 0),\n\t\t\t\t\tcleared: milestone.cleared ?? false,\n\t\t\t\t\tdescription: milestone?.description ?? undefined,\n\t\t\t\t\tlink: milestone?.link ?? undefined,\n\t\t\t\t})),\n\t\t\t}),\n\t\t};\n\t}\n\n\tprivate topWin(\n\t\tdata: Assign<Internal.TopWin, { game?: Internal.Game }>,\n\t): External.TopWin {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\n\t\t\tmember: {\n\t\t\t\tid: data.member.id,\n\t\t\t\tname: data.member.name,\n\t\t\t},\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\n\t\t\tpayout: parseDecimal(data.payout, 0),\n\t\t};\n\t}\n\n\tprivate jackpots(data: Internal.Jackpot): External.Jackpot {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tdescription: data.description,\n\t\t\tpool: parseDecimal(data.pool, 0),\n\t\t\tstatus: data.status,\n\t\t\tminimumJackpotPoolDrawingLimit: parseDecimal(\n\t\t\t\tdata.minimumJackpotPoolDrawingLimit,\n\t\t\t\t0,\n\t\t\t),\n\t\t\tmaximumJackpotPoolLimit: parseDecimal(data.maximumJackpotPoolLimit, 0),\n\t\t\tdrawing: data.drawing,\n\t\t\tminimumMultiplier: parseDecimal(data.minimumMultiplier, 0),\n\t\t\tminimumBet: parseDecimal(data.minimumBet, 0),\n\t\t\tjackpotPayoutPercentage: parseDecimal(data.jackpotPayoutPercentage, 0),\n\t\t\tjackpotTurnoverContributionPercentagePerGameProvider: Object.entries(\n\t\t\t\tdata.jackpotTurnoverContributionPercentagePerGameProvider ?? {},\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\n\t\t\t\treturn o;\n\t\t\t}, {}),\n\t\t\ttotalPayout: parseDecimal(data.totalPayout, 0),\n\t\t};\n\t}\n\n\tprivate jackpotPayouts(data: Internal.JackpotPayout): External.JackpotPayout {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tmember: {\n\t\t\t\tid: data.member.id,\n\t\t\t\tname: data.member.name,\n\t\t\t},\n\t\t\tjackpot: {\n\t\t\t\tid: data.jackpot.id,\n\t\t\t\tname: data.jackpot.name,\n\t\t\t},\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\n\t\t\tbet: parseDecimal(data.bet, 0),\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tgame: {\n\t\t\t\tprovider: data?.game?.provider,\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate tournamentsLeaderboard(\n\t\tdata: Internal.TournamentLeaderboard,\n\t): External.TournamentLeaderboard {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tusername: data.username,\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\n\t\t\tdateTimeCreated: data.dateTimeCreated,\n\t\t\tgame: data.game,\n\t\t\tprize: data.prize,\n\t\t};\n\t}\n\n\tprivate tournaments(data: Internal.Tournament): External.Tournament {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tname: data.name,\n\t\t\tdescription: data.description,\n\t\t\twinnersCount: parseDecimal(data.winnersCount, 0),\n\t\t\tstatus: data.status,\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\n\t\t\ttopPayouts: data.topPayouts.map((payout) => ({\n\t\t\t\t...payout,\n\t\t\t\tamount: parseDecimal(payout.amount, 0),\n\t\t\t})),\n\t\t\tenabledGameProviders: data.enabledGameProviders,\n\t\t\tfrequency: data.frequency,\n\t\t\tmode: data.mode,\n\t\t\tmobileBanner: {\n\t\t\t\tid: data.mobileBanner?.id,\n\t\t\t\turl: data.mobileBanner?.url,\n\t\t\t\tmimeType: data.mobileBanner?.mimeType,\n\t\t\t},\n\t\t\twebBanner: {\n\t\t\t\tid: data.webBanner?.id,\n\t\t\t\turl: data.webBanner?.url,\n\t\t\t\tmimeType: data.webBanner?.mimeType,\n\t\t\t},\n\n\t\t\trewardSettings: data.rewardSettings,\n\n\t\t\tcurrentLeaderboard: {\n\t\t\t\tcurrentLeaderboard: data.currentLeaderboard?.edges.map(\n\t\t\t\t\t({ cursor, node }) => ({\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t\t...this.tournamentsLeaderboard(node),\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t\ttotalCount: data.currentLeaderboard.totalCount,\n\t\t\t\thasNextPage: data.currentLeaderboard.pageInfo?.hasNextPage as never,\n\t\t\t\tendCursor: data.currentLeaderboard.pageInfo?.endCursor ?? undefined,\n\t\t\t},\n\t\t\tpreviousLeaderboard: {\n\t\t\t\tpreviousLeaderboard: data.previousLeaderboard.edges.map(\n\t\t\t\t\t({ cursor, node }) => ({\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t\t...this.tournamentsLeaderboard(node),\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t\ttotalCount: data.previousLeaderboard.totalCount,\n\t\t\t\thasNextPage: data.previousLeaderboard.pageInfo?.hasNextPage as never,\n\t\t\t\tendCursor: data.previousLeaderboard.pageInfo?.endCursor ?? undefined,\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate memberAchievements(\n\t\tdata: Internal.MemberAchievement,\n\t): External.MemberAchievement {\n\t\treturn {\n\t\t\tmember: {\n\t\t\t\tachievements: data.member.achievements,\n\t\t\t\tlevel: data.member.level,\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate cabinetWithdrawal(data: Internal.CabinetWithdrawal): External.CabinetWithdrawalRecord {\n\t\tconst o: External.Deposit = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tstatus: data.status,\n\t\t\tamount: data.amount,\n\t\t\treference: data.reference,\n\t\t\taccountName: data.accountName,\n\t\t\tdateTimeCreated: data.dateTimeCreated,\n\t\t\terror: data.error ?? undefined,\n\t\t} as External.Deposit;\n\n\t\treturn compact(o);\n\t}\n}","import { Capacitor } from '@capacitor/core';\nimport {\n\tAccountService,\n\tAuthService,\n\tCmsPortalService,\n\tExtensionService,\n\tFileService,\n\tGameService,\n\tPortalService,\n\tReportService,\n\tTriggerService,\n\tWalletService,\n} from '../services/index.js';\nimport { Cache } from '../utils/cache.js';\nimport { clamp } from '../utils/clamp.js';\nimport {\n\tGraphQLClient,\n\ttype GraphQLClientConfig,\n\ttype GraphQLClientMiddleware,\n} from '../utils/graphql-client.js';\nimport { sha256 } from '../utils/sha256.js';\nimport { AdManager } from './ad-manager.js';\nimport { CellexpertManager } from './cellexpert-manager.js';\nimport { Logger } from './logger.js';\nimport { ObjectId } from './object-id.js';\nimport { ObjectType } from './object-type.js';\nimport { SessionManager } from './session-manager.js';\nimport { SessionManagerCookie } from './session-manager-cookie.js';\nimport { Transformer } from './transformer.js';\nimport type {\n\tAccountReturn,\n\tAchievementPointsHistoryRecordInput,\n\tAchievementPointsHistoryRecordReturn,\n\tAchievementSettingsReturn,\n\tActivityRecordsInput,\n\tActivityRecordsReturn,\n\tAnnouncementsInput,\n\tAnnouncementsReturn,\n\tAuthenticateInput,\n\tAuthenticateReturn,\n\tAvailablePromosReturn,\n\tAvailableQuestsReturn,\n\tBetRecordsInput,\n\tBetRecordsReturn,\n\tBonusesReturn,\n\tBonusReturn,\n\tCabinetSignInInput,\n\tCabinetSignInReturn,\n\tCabinetSiteMachineReturn,\n\tCabinetWithdrawalReturn,\n\tCashbackBonusReturn,\n\tCashbacksReturn,\n\tCheckInDailyQuestReturn,\n\tClaimCashbackBonusReturn,\n\tClaimRewardReturn,\n\tClaimSpotBonusReturn,\n\tCompleteOnboardingInput,\n\tCompleteOnboardingReturn,\n\tCreateAccountInput,\n\tCreateAccountInput__Next,\n\tCreateAccountReturn,\n\tCreateDepositInput,\n\tCreateDepositReturn,\n\tCreateGameSessionInput,\n\tCreateGameSessionReturn,\n\tCreateSingleUseTokenReturn,\n\tCreateWithdrawalInput,\n\tCreateWithdrawalReturn,\n\tDeleteAccountReturn,\n\tDepositRecordsInput,\n\tDepositRecordsReturn,\n\tDepositReturn,\n\tDepositsCountReturn,\n\tDownlinesByNameInput,\n\tDownlinesByNameReturn,\n\tEndGameSessionReturn,\n\tEnvironment,\n\tFavoriteGamesReturn,\n\tFileReturn,\n\tGameProvider,\n\tGameReturn,\n\tGameSessionReturn,\n\tGamesInput,\n\tGamesInput__Next,\n\tGamesReturn,\n\tGoogleClientIdReturn,\n\tInstapayBankListReturn,\n\tJackpotPayoutsInput,\n\tJackpotPayoutsReturn,\n\tJackpotsInput,\n\tJackpotsReturn,\n\tLatestBetRecordsReturn,\n\tLocale,\n\tMarkAllMessagesAsReadReturn,\n\tMarkGameAsFavoriteInput,\n\tMarkGameAsFavoriteReturn,\n\tMarkMessageAsReadReturn,\n\tMayaSignInInput,\n\tMayaSignInReturn,\n\tMemberAchievementReturn,\n\tMemberLevelSettingsReturn,\n\tMessagesInput,\n\tMessagesReturn,\n\tMobileNumberSignInInput,\n\tMobileNumberSignInReturn,\n\tNameAndPasswordSignInInput,\n\tNameAndPasswordSignInReturn,\n\tOnboardingStatusReturn,\n\tPaymentSettingsReturn,\n\tPlatformReturn,\n\tPlatformReturn__Next,\n\tPointsClubSettingsReturn,\n\tPointsWalletReturn,\n\tPointsWalletTransactionsInput,\n\tPointsWalletTransactionsReturn,\n\tProfileCompletionReturn,\n\tPromoByCodeReturn,\n\tPromoFilterInput,\n\tPromosReturn,\n\tRecommendedGamesInput,\n\tRecommendedGamesReturn,\n\tRedeemPointsInput,\n\tRedeemPointsReturn,\n\tRedeemVoucherInput,\n\tRedeemVoucherReturn,\n\tReferralCodeReturn,\n\tReferralCommissionReturn,\n\tReferralsInput,\n\tReferralsReturn,\n\tRegisterFCMDeviceInput,\n\tRegisterFCMDeviceReturn,\n\tRegisterMayaAccountInput,\n\tRegisterMayaAccountReturn,\n\tRemainingDailyWithdrawalsCountReturn,\n\tRequireFirstDepositReturn,\n\tResetPasswordInput,\n\tResetPasswordReturn,\n\tSendVerificationCodeInput__Next,\n\tSendVerificationCodeReturn,\n\tSendVerificationCodeReturn__Next,\n\tSessionReturn,\n\tSignInInput,\n\tSignInReturn,\n\tSingleUseTokenSignInInput,\n\tSingleUseTokenSignInReturn,\n\tSiteReturn,\n\tSkipOnboardingReturn,\n\tSocialsSignInInput,\n\tSocialsSignInReturn,\n\tSubmitMemberVerificationReturn,\n\tSubmitVerificationDetailsInput,\n\tSubmitVerificationDetailsInputNext,\n\tSubmitVerificationDetailsReturn,\n\tTokenSignInInput,\n\tTokenSignInReturn,\n\tTopWinsReturn,\n\tTouchDepositInput,\n\tTouchDepositReturn,\n\tTournamentsInput,\n\tTournamentsReturn,\n\tTransactionRecordsInput,\n\tTransactionRecordsReturn,\n\tUnmarkGameAsFavoriteInput,\n\tUnmarkGameAsFavoriteReturn,\n\tUnreadMessagesCountInput,\n\tUnreadMessagesCountReturn,\n\tUnregisterFCMDeviceInput,\n\tUnregisterFCMDeviceReturn,\n\tUpdateAccountInput,\n\tUpdateAccountReturn,\n\tUpdateReferralCodeInput,\n\tUpdateReferralCodeReturn,\n\tUpdateVerificationDetailsInput,\n\tUpdateVerificationDetailsReturn,\n\tUplinesByNameInput,\n\tUplinesByNameReturn,\n\tUploadImageFileInput,\n\tUploadImageFileReturn,\n\tValidateMayaSessionReturn,\n\tVerificationDetailsReturn,\n\tVerifyMobileNumberReturn,\n\tWalletGameInput,\n\tWalletGamesReturn,\n\tWalletReturn,\n\tWatchSessionInput,\n\tWithdrawalRecordsInput,\n\tWithdrawalRecordsReturn,\n} from './types.js';\nimport { addAreaCode } from './utils.js';\n\nexport interface SdkConfig {\n\t/**\n\t * @default 'development'\n\t */\n\tenvironment?: Environment;\n\tsite: string;\n\tsitePlatform: string;\n\tplatform: string;\n\tlogs?: boolean;\n\tsessionStorage?: 'cookie' | 'localStorage';\n\tmiddleware?: GraphQLClientMiddleware;\n\tfetch?: typeof globalThis.fetch;\n}\n\nconst defaultConfig = {\n\tenvironment: 'development' as Environment,\n\tlogs: false,\n};\n\nexport class Sdk {\n\t/**\n\t * Initializes the SDK by fetching and assigning the member domain.\n\t */\n\tasync init(): Promise<void> {\n\t\tconst res = await this.accountService.memberAccount();\n\n\t\tif (res.ok) {\n\t\t\tconst accountData = this.transformer.transform.account(res.data);\n\t\t\tthis.memberDomain = accountData?.domain ?? null;\n\t\t}\n\t}\n\tprivate cmsPortalService: CmsPortalService;\n\tprivate authService: AuthService;\n\tprivate gameService: GameService;\n\tprivate fileService: FileService;\n\tprivate walletService: WalletService;\n\tprivate extensionService: ExtensionService;\n\tprivate accountService: AccountService;\n\tprivate reportService: ReportService;\n\tprivate portalService: PortalService;\n\tprivate triggerService: TriggerService;\n\tprivate sessionManager: SessionManager | SessionManagerCookie;\n\tprivate adManager: AdManager;\n\tprivate cellexpertManager: CellexpertManager;\n\tprivate transformer: Transformer;\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\tprivate config: SdkConfig;\n\n\t/**\n\t * Stores the member domain for use in future mutations/queries\n\t */\n\tpublic memberDomain: string | null = null;\n\n\tconstructor(config: SdkConfig) {\n\t\tconst {\n\t\t\t/**/\n\t\t\tsite,\n\t\t\tsitePlatform,\n\t\t\tplatform,\n\t\t\tenvironment,\n\t\t\tlogs,\n\t\t} = Object.assign(defaultConfig, config);\n\n\t\tconst production = environment === 'production';\n\n\t\tconst logger = new Logger({\n\t\t\tenabled: logs,\n\t\t});\n\n\t\tconst adManager = new AdManager({ logger });\n\t\tconst cellexpertManager = new CellexpertManager({ logger });\n\n\t\tconst transformer = new Transformer();\n\n\t\tconst authUrl = ENDPOINTS[environment].auth;\n\t\tconst walletUrl = ENDPOINTS[environment].wallet;\n\t\tconst extensionUrl = ENDPOINTS[environment].extension;\n\t\tconst reportUrl = ENDPOINTS[environment].report;\n\t\tconst accountUrl = ENDPOINTS[environment].account;\n\t\tconst portalUrl = ENDPOINTS[environment].portal;\n\t\tconst fileUrl = ENDPOINTS[environment].file;\n\t\tconst gameUrl = ENDPOINTS[environment].game;\n\t\tconst triggerUrl = ENDPOINTS[environment].trigger;\n\t\tconst cmsPortalUrl = ENDPOINTS[environment].cmsPortal;\n\n\t\tconst cmsPortalService = new CmsPortalService(() => ({\n\t\t\turl: cmsPortalUrl,\n\t\t\tsite,\n\t\t\tplatform: sitePlatform,\n\t\t\tfetch: this.fetch,\n\t\t}));\n\n\t\tthis._fetch = config.fetch ?? null;\n\t\tthis._middleware = config.middleware ?? ((req) => req);\n\n\t\tconst graphqlClientConfig = () =>\n\t\t\t({\n\t\t\t\tmiddlewares: [\n\t\t\t\t\t/**/\n\t\t\t\t\tthis.authMiddleware,\n\t\t\t\t\tthis.domainMiddleware,\n\t\t\t\t\tthis.miscMiddleware,\n\t\t\t\t\tthis.middleware,\n\t\t\t\t],\n\t\t\t\tfetch: this.fetch,\n\t\t\t\tfetchOptions: {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tRole: 'MEMBER',\n\t\t\t\t\t\t'Platform-Code': platform,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}) satisfies GraphQLClientConfig;\n\n\t\tconst gameService = new GameService(\n\t\t\tnew GraphQLClient(gameUrl, graphqlClientConfig),\n\t\t);\n\t\tconst extensionService = new ExtensionService(\n\t\t\tnew GraphQLClient(extensionUrl, graphqlClientConfig),\n\t\t);\n\t\tconst fileService = new FileService(\n\t\t\tnew GraphQLClient(fileUrl, graphqlClientConfig),\n\t\t);\n\t\tconst walletService = new WalletService(\n\t\t\tnew GraphQLClient(walletUrl, graphqlClientConfig),\n\t\t);\n\t\tconst accountService = new AccountService(\n\t\t\tnew GraphQLClient(accountUrl, graphqlClientConfig),\n\t\t);\n\t\tconst reportService = new ReportService(\n\t\t\tnew GraphQLClient(reportUrl, graphqlClientConfig),\n\t\t);\n\t\tconst portalService = new PortalService(\n\t\t\tnew GraphQLClient(portalUrl, graphqlClientConfig),\n\t\t);\n\t\tconst triggerService = new TriggerService(\n\t\t\tnew GraphQLClient(triggerUrl, graphqlClientConfig),\n\t\t);\n\n\t\tconst authService = new AuthService({\n\t\t\turl: authUrl,\n\t\t\tfetchOptions: {\n\t\t\t\theaders: {\n\t\t\t\t\tRole: 'MEMBER',\n\t\t\t\t\t'Platform-Code': platform,\n\n\t\t\t\t\t...(!production && {\n\t\t\t\t\t\t'Test-Pass': '',\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tconst sessionManager =\n\t\t\tconfig.sessionStorage === 'cookie'\n\t\t\t\t? new SessionManagerCookie({\n\t\t\t\t\t\tlogger,\n\t\t\t\t\t\tauthService,\n\t\t\t\t\t\twalletService,\n\t\t\t\t\t})\n\t\t\t\t: new SessionManager({\n\t\t\t\t\t\tlogger,\n\t\t\t\t\t\tauthService,\n\t\t\t\t\t\twalletService,\n\t\t\t\t\t});\n\n\t\tthis.logger = logger;\n\t\tthis.adManager = adManager;\n\t\tthis.cellexpertManager = cellexpertManager;\n\t\tthis.transformer = transformer;\n\t\tthis.authService = authService;\n\t\tthis.gameService = gameService;\n\t\tthis.extensionService = extensionService;\n\t\tthis.fileService = fileService;\n\t\tthis.walletService = walletService;\n\t\tthis.accountService = accountService;\n\t\tthis.reportService = reportService;\n\t\tthis.portalService = portalService;\n\t\tthis.triggerService = triggerService;\n\t\tthis.sessionManager = sessionManager;\n\t\tthis.cmsPortalService = cmsPortalService;\n\t\tthis.cache = new Cache();\n\t\tthis.config = {\n\t\t\tenvironment,\n\t\t\tsite,\n\t\t\tplatform,\n\t\t\tsitePlatform,\n\t\t\tlogs,\n\t\t};\n\t}\n\n\tprivate _fetch: typeof globalThis.fetch | null = null;\n\tprivate _middleware: GraphQLClientMiddleware;\n\n\tset fetch(value: typeof globalThis.fetch | null) {\n\t\tthis._fetch = value;\n\t}\n\n\tget fetch() {\n\t\treturn this._fetch;\n\t}\n\n\tset middleware(value: GraphQLClientMiddleware) {\n\t\tthis._middleware = value;\n\t}\n\n\tget middleware() {\n\t\treturn this._middleware;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tADS\n\t *=============================================\n\t */\n\n\tset adClickId(value: string | null) {\n\t\tthis.adManager.clickId = value;\n\t}\n\n\tget adClickId() {\n\t\treturn this.adManager.clickId;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tCXD\n\t *=============================================\n\t */\n\n\tset cxd(value: string | null) {\n\t\tthis.cellexpertManager.cxd = value;\n\t}\n\n\tget cxd() {\n\t\treturn this.cellexpertManager.cxd;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tLOCALE\n\t *=============================================\n\t */\n\n\tprivate get locale() {\n\t\treturn new Promise<Locale>((resolve) => {\n\t\t\tconst cacheKey = 'locale';\n\t\t\tconst cacheValue = this.cache.get<Locale>(cacheKey);\n\n\t\t\tif (cacheValue) return resolve(cacheValue);\n\n\t\t\tthis.platform__next().then((res) => {\n\t\t\t\tif (res.ok) {\n\t\t\t\t\tthis.cache.set(cacheKey, res.data.locale);\n\t\t\t\t\tresolve(res.data.locale);\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger.warn(\"Failed to fetch currency. Using 'PH' as fallback\");\n\t\t\t\t\tresolve('en-PH');\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/*\n\t *=============================================\n\t * \tAUTH MIDDLEWARE\n\t *=============================================\n\t */\n\n\tprivate get authMiddleware(): GraphQLClientMiddleware {\n\t\treturn async (request) => {\n\t\t\tthis.logger.info('Checking for session');\n\n\t\t\tconst res = await this.sessionManager.get();\n\n\t\t\tif (res.data) {\n\t\t\t\trequest.headers.set('Authorization', `Bearer ${res.data.accessToken}`);\n\t\t\t\tthis.logger.info('Session found');\n\t\t\t\tthis.logger.success(\"Added 'Authorization' header\");\n\t\t\t} else {\n\t\t\t\tthis.logger.info('No session found');\n\t\t\t}\n\n\t\t\treturn request;\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tDOMAIN MIDDLEWARE\n\t *=============================================\n\t */\n\n\tprivate get domainMiddleware(): GraphQLClientMiddleware {\n\t\treturn async (request) => {\n\t\t\t// 💀 We don't support this anymore\n\t\t\tif (this.sessionManager.onMaya) {\n\t\t\t\trequest.headers.delete('Domain');\n\t\t\t\treturn request;\n\t\t\t}\n\n\t\t\t// Use memberDomain if it contains 'cabinet'\n\t\t\tif (this.memberDomain && this.memberDomain.includes('cabinet')) {\n\t\t\t\trequest.headers.set('Domain', this.memberDomain);\n\t\t\t\treturn request;\n\t\t\t}\n\n\t\t\tconst domain =\n\t\t\t\ttypeof window === 'undefined'\n\t\t\t\t\t? null\n\t\t\t\t\t: !Capacitor.isNativePlatform()\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: Capacitor.getPlatform() === 'ios'\n\t\t\t\t\t\t\t? `ios/${this.config.platform}`.toLowerCase()\n\t\t\t\t\t\t\t: Capacitor.getPlatform() === 'android'\n\t\t\t\t\t\t\t\t? `android/${this.config.platform}`.toLowerCase()\n\t\t\t\t\t\t\t\t: null;\n\n\t\t\tif (domain) {\n\t\t\t\trequest.headers.set('Domain', domain);\n\t\t\t\treturn request;\n\t\t\t}\n\n\t\t\trequest.headers.delete('Domain');\n\t\t\treturn request;\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tMISCELLANEOUS MIDDLEWARE\n\t *=============================================\n\t */\n\n\tprivate get miscMiddleware(): GraphQLClientMiddleware {\n\t\treturn async (request) => {\n\t\t\tconst adClickId = this.adManager.clickId;\n\t\t\tif (adClickId) request.headers.set('Ad-Click-Id', adClickId);\n\t\t\treturn request;\n\t\t};\n\t}\n\n\tasync signIn(\n\t\tinput: NameAndPasswordSignInInput,\n\t): Promise<NameAndPasswordSignInReturn>;\n\tasync signIn(\n\t\tinput: MobileNumberSignInInput,\n\t): Promise<MobileNumberSignInReturn>;\n\tasync signIn(input: MayaSignInInput): Promise<MayaSignInReturn>;\n\tasync signIn(input: TokenSignInInput): Promise<TokenSignInReturn>;\n\tasync signIn(input: SocialsSignInInput): Promise<SocialsSignInReturn>;\n\tasync signIn(input: CabinetSignInInput): Promise<CabinetSignInReturn>;\n\tasync signIn(\n\t\tinput: SingleUseTokenSignInInput,\n\t): Promise<SingleUseTokenSignInReturn>;\n\tasync signIn(input: SignInInput): Promise<SignInReturn> {\n\t\tif (input.type === 'TOKEN') {\n\t\t\tconsole.warn(\n\t\t\t\t\"'TOKEN (signIn)' is deprecated. Please use 'SOCIALS' instead.\",\n\t\t\t);\n\t\t}\n\n\t\tswitch (input.type) {\n\t\t\tcase 'NAME_AND_PASSWORD': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\t...input,\n\t\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\t});\n\n\t\t\t\tif (!res.ok) return res;\n\t\t\t\tif (res.data) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: true,\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t'2FAEnabled': true,\n\t\t\t\t\t\t\tauthenticator: res.data.authenticator,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t'2FAEnabled': false,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tcase 'SOCIALS':\n\t\t\tcase 'TOKEN': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\ttype: 'SOCIALS',\n\t\t\t\t\ttoken: input.token,\n\t\t\t\t\tchannel: input.channel,\n\t\t\t\t});\n\n\t\t\t\treturn res.ok ? { ok: true } : res;\n\t\t\t}\n\n\t\t\tcase 'CABINET': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\ttype: 'CABINET',\n\t\t\t\t\ttoken: input.token,\n\t\t\t\t\tchannel: input.channel,\n\t\t\t\t});\n\n\t\t\t\treturn res.ok ? { ok: true } : res;\n\t\t\t}\n\n\t\t\tcase 'MOBILE_NUMBER': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\ttype: 'MOBILE_NUMBER',\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\t\tverificationCode: input.verificationCode,\n\t\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t\t\ttestPass: input.testPass,\n\t\t\t\t\tchannel: input.channel,\n\t\t\t\t});\n\n\t\t\t\treturn res.ok ? { ok: true } : res;\n\t\t\t}\n\n\t\t\tcase 'SINGLE_USE_TOKEN': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\ttype: 'SINGLE_USE_TOKEN',\n\t\t\t\t\ttoken: input.token,\n\t\t\t\t\tchannel: input.channel,\n\t\t\t\t});\n\n\t\t\t\treturn res.ok ? { ok: true } : res;\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tconst res = await this.sessionManager.create(input);\n\n\t\t\t\treturn res.ok ? { ok: true } : res;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync authenticate(input: AuthenticateInput): Promise<AuthenticateReturn> {\n\t\tswitch (input.type) {\n\t\t\tcase 'SECURITY_QUESTION': {\n\t\t\t\treturn await this.sessionManager.createFromAuthenticator({\n\t\t\t\t\ttype: 'SECURITY_QUESTION',\n\t\t\t\t\ttoken: input.token,\n\t\t\t\t\tchannel: input.channel,\n\t\t\t\t\tsecretAnswer: await sha256(input.secretAnswer),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tname: 'HttpBadRequest',\n\t\t\t\t\t\tmessage: \"Invalid input 'type'\",\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\tasync signOut() {\n\t\tawait this.sessionManager.destroy();\n\t}\n\n\twatchSession(input: WatchSessionInput) {\n\t\tconst interval = clamp(input.interval ?? 30000, 30000, 60000);\n\n\t\tlet timeout: NodeJS.Timeout | null = null;\n\n\t\tconst assignTimeout = () => {\n\t\t\treturn setTimeout(async () => {\n\t\t\t\tconst v = await this.sessionManager.verify();\n\n\t\t\t\tif (!v) {\n\t\t\t\t\tawait input.onInvalid();\n\t\t\t\t}\n\n\t\t\t\ttimeout = assignTimeout();\n\t\t\t}, interval);\n\t\t};\n\n\t\ttimeout = assignTimeout();\n\n\t\treturn function unsubscribe() {\n\t\t\tif (timeout) {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t}\n\t\t};\n\t}\n\n\tasync session(): Promise<SessionReturn> {\n\t\tconst res = await this.sessionManager.get();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? {\n\t\t\t\t\t\tid: res.data.session.id,\n\t\t\t\t\t\tmaya: this.sessionManager.onMaya,\n\t\t\t\t\t\tcabinet: this.sessionManager.onCabinet,\n\t\t\t\t\t\taccessToken: res.data.accessToken,\n\t\t\t\t\t\trefreshToken: res.data.refreshToken,\n\t\t\t\t\t\tdateTimeCreated: new Date(res.data.session.dateTimeCreated),\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\tasync refreshSession(): Promise<SessionReturn> {\n\t\tconst res = await this.sessionManager.refresh();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? {\n\t\t\t\t\t\tid: res.data.session.id,\n\t\t\t\t\t\tmaya: this.sessionManager.onMaya,\n\t\t\t\t\t\tcabinet: this.sessionManager.onCabinet,\n\t\t\t\t\t\taccessToken: res.data.accessToken,\n\t\t\t\t\t\trefreshToken: res.data.refreshToken,\n\t\t\t\t\t\tdateTimeCreated: new Date(res.data.session.dateTimeCreated),\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\tasync validateMayaSession(): Promise<ValidateMayaSessionReturn> {\n\t\treturn await this.walletService.validateMayaSession();\n\t}\n\n\tasync createSingleUseToken(): Promise<CreateSingleUseTokenReturn> {\n\t\tconst res0 = await this.sessionManager.get();\n\n\t\tif (!res0.ok || !res0.data) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.authService.createSingleUseToken(\n\t\t\tres0.data.accessToken,\n\t\t);\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn { ok: true, data: res1.data.token };\n\t}\n\n\t/*\n\t *=============================================\n\t * \tSITE\n\t *=============================================\n\t */\n\n\tasync site(): Promise<SiteReturn> {\n\t\tconst res = await this.cmsPortalService.self();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.site(res.data),\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tEXTENSION\n\t *=============================================\n\t */\n\n\tasync memberCabinetSiteMachine(): Promise<CabinetSiteMachineReturn> {\n\t\tconst res = await this.extensionService.memberCabinetSiteMachine();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? this.transformer.transform.memberCabinetSiteMachine(res.data)\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\tasync cabinetWithdrawalRecord(id: string): Promise<CabinetWithdrawalReturn> {\n\t\tconst res = await this.walletService.cabinetWithdrawal({ id });\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? this.transformer.transform.cabinetWithdrawal(res.data)\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tPLATFORM\n\t *=============================================\n\t */\n\n\t/** @deprecated */\n\tasync platform(): Promise<PlatformReturn> {\n\t\tconsole.warn(\n\t\t\t\"'platform' is deprecated. Please use 'platform__next' instead.\",\n\t\t);\n\n\t\tconst res = await this.accountService.platform();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.platform(res.data),\n\t\t};\n\t}\n\n\tasync platform__next(): Promise<PlatformReturn__Next> {\n\t\tconst res = await this.portalService.platform();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.platform__next(res.data),\n\t\t};\n\t}\n\n\tasync paymentSettings(): Promise<PaymentSettingsReturn> {\n\t\tconst res = await this.accountService.paymentSettings();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.paymentSettings(res.data),\n\t\t};\n\t}\n\n\tasync memberLevelSettings(): Promise<MemberLevelSettingsReturn> {\n\t\tconst res = await this.accountService.memberLevelSettings();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.memberLevelSettings(res.data),\n\t\t};\n\t}\n\n\tasync achievementSettings(): Promise<AchievementSettingsReturn> {\n\t\tconst res = await this.accountService.achievementSettings();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.achievementSettings(res.data),\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tACCOUNT\n\t *=============================================\n\t */\n\n\tasync account(): Promise<AccountReturn> {\n\t\tconst r = await this.accountService.memberAccount();\n\n\t\tif (!r.ok) return r;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.account(r.data),\n\t\t};\n\t}\n\n\t/**\n\t * @deprecated use `createAccount__next`\n\t */\n\tasync createAccount(input: CreateAccountInput): Promise<CreateAccountReturn> {\n\t\tconsole.warn(\n\t\t\t\"'createAccount' is deprecated. Please use 'createAccount__next' instead.\",\n\t\t);\n\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\n\n\t\tconst res = await this.accountService.registerMemberAccount({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tbtag: input.btag,\n\t\t\t\tname: input.name,\n\t\t\t\tdomain: input.domain,\n\t\t\t\tbirthDay:\n\t\t\t\t\ttypeof input.dateOfBirth === 'string'\n\t\t\t\t\t\t? input.dateOfBirth\n\t\t\t\t\t\t: this.formatYmd(input.dateOfBirth),\n\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t},\n\t\t\treferralCode: input.referralCode,\n\t\t\tverificationCode: input.verificationCode,\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\tasync createAccount__next(\n\t\tinput: CreateAccountInput__Next,\n\t): Promise<CreateAccountReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\n\n\t\tif (input.type === 'MOBILE_NUMBER') {\n\t\t\tconst res = await this.accountService.registerMemberAccountViaMobile({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tbtag: input.btag,\n\t\t\t\t\tdomain: input.domain,\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\t\trealName: input.realName,\n\t\t\t\t\tbirthDay: input.dateOfBirth,\n\t\t\t\t\tbranchCode: input.branchCode,\n\t\t\t\t\t...(this.cxd && {\n\t\t\t\t\t\tcellxpertCxd: this.cxd,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\treferralCode: input.referralCode,\n\t\t\t\tverificationCode: input.verificationCode,\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t\ttestPass: input.testPass,\n\t\t\t});\n\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t\t}\n\n\t\tif (input.type === 'MOBILE_NUMBER_INR') {\n\t\t\tconst res = await this.accountService.registerMemberAccountByMobileNumber(\n\t\t\t\t{\n\t\t\t\t\tinput: {\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\t\t\trealName: input.realName,\n\t\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\t\t},\n\t\t\t\t\tmobileNumberVerificationCode: input.mobileVerificationCode,\n\t\t\t\t\ttestPass: input.testPass,\n\t\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t\t}\n\n\t\tif (input.type === 'NAME_AND_PASSWORD') {\n\t\t\tconst res = await this.accountService.registerMemberAccount__next({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tname: input.name,\n\t\t\t\t\tbtag: input.btag,\n\t\t\t\t\tdomain: input.domain,\n\t\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\t\tmobileNumber: input.mobileNumber\n\t\t\t\t\t\t? addAreaCode(input.mobileNumber, await this.locale)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t\t}\n\n\t\tconst res = await this.accountService.registerMemberAccountByName({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tname: input.name,\n\t\t\t\tpassword: await sha256(input.password),\n\t\t\t},\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\tasync registerMayaAccount(\n\t\tinput: RegisterMayaAccountInput,\n\t): Promise<RegisterMayaAccountReturn> {\n\t\treturn await this.accountService.registerMayaMemberAccount({\n\t\t\tinput: {\n\t\t\t\tname: input.name,\n\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\tdomain: input.domain,\n\t\t\t},\n\t\t});\n\t}\n\n\tasync updateAccount(\n\t\tid: string,\n\t\tinput: UpdateAccountInput,\n\t): Promise<UpdateAccountReturn> {\n\t\tconst {\n\t\t\t/**/\n\t\t\tpassword,\n\t\t\tdateOfBirth,\n\t\t\tmobileNumber,\n\t\t\tsecretAnswer,\n\t\t\ttransactionPassword,\n\t\t\t...others\n\t\t} = input;\n\n\t\treturn await this.accountService.updateMemberAccount({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tdata: {\n\t\t\t\t\t...others,\n\t\t\t\t\tpassword: password ? await sha256(password) : undefined,\n\t\t\t\t\ttransactionPassword: transactionPassword\n\t\t\t\t\t\t? await sha256(transactionPassword)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tmobileNumber: mobileNumber\n\t\t\t\t\t\t? addAreaCode(mobileNumber, await this.locale)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tsecretAnswer: secretAnswer ? await sha256(secretAnswer) : undefined,\n\t\t\t\t\tbirthDay: dateOfBirth\n\t\t\t\t\t\t? typeof dateOfBirth === 'string'\n\t\t\t\t\t\t\t? dateOfBirth\n\t\t\t\t\t\t\t: this.formatYmd(dateOfBirth)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tasync deleteAccount(id: string): Promise<DeleteAccountReturn> {\n\t\treturn await this.accountService.deleteMemberAccount({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t},\n\t\t});\n\t}\n\tasync unlinkGoogle(id: string): Promise<DeleteAccountReturn> {\n\t\treturn await this.accountService.unlinkGoogle({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t},\n\t\t});\n\t}\n\tasync verificationDetails(): Promise<VerificationDetailsReturn> {\n\t\tconst res = await this.accountService.memberVerification();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? this.transformer.transform.verificationDetails(res.data)\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\tasync submitVerificationDetails(\n\t\tinput: SubmitVerificationDetailsInput,\n\t): Promise<SubmitVerificationDetailsReturn> {\n\t\tconst id =\n\t\t\tinput.id ?? ObjectId.generate(ObjectType.Verification).toString();\n\n\t\tconst res = await this.accountService.createMemberVerification({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\t...input,\n\t\t\t},\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\tasync submitVerificationDetails_Next(\n\t\tinput: SubmitVerificationDetailsInputNext,\n\t): Promise<SubmitVerificationDetailsReturn> {\n\t\tconst id =\n\t\t\tinput.id ?? ObjectId.generate(ObjectType.Verification).toString();\n\n\t\tconst res = await this.accountService.createMemberVerification_Next({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\t...input,\n\t\t\t},\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\tasync updateVerificationDetails(\n\t\tid: string,\n\t\tinput: UpdateVerificationDetailsInput,\n\t): Promise<UpdateVerificationDetailsReturn> {\n\t\treturn await this.accountService.updateMemberVerification({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tdata: {\n\t\t\t\t\t...input,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tasync updateVerificationDetails_Next(\n\t\tid: string,\n\t\tinput: UpdateVerificationDetailsInput,\n\t): Promise<UpdateVerificationDetailsReturn> {\n\t\treturn await this.accountService.updateMemberVerification_Next({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tdata: {\n\t\t\t\t\t...input,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tasync submitMemberVerification(\n\t\tid: string,\n\t): Promise<SubmitMemberVerificationReturn> {\n\t\tconst res = await this.accountService.submitMemberVerification({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t},\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\tasync resetPassword(input: ResetPasswordInput): Promise<ResetPasswordReturn> {\n\t\treturn await this.accountService.resetPassword({\n\t\t\tinput: {\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\tnewPassword: await sha256(input.newPassword),\n\t\t\t},\n\t\t\tverificationCode: input.verificationCode,\n\t\t});\n\t}\n\n\tasync verifyMobileNumber(\n\t\tverificationCode: string,\n\t): Promise<VerifyMobileNumberReturn> {\n\t\treturn await this.accountService.verifyMobileNumber({\n\t\t\tinput: {\n\t\t\t\tverificationCode,\n\t\t\t},\n\t\t});\n\t}\n\n\tasync profileCompletion(): Promise<ProfileCompletionReturn> {\n\t\tconst res = await this.accountService.profileCompletion();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.profileCompletion(res.data),\n\t\t};\n\t}\n\n\t/**\n\t * @deprecated use `sendVerificationCode__next`\n\t */\n\tasync sendVerificationCode(\n\t\tmobileNumber: string,\n\t): Promise<SendVerificationCodeReturn> {\n\t\tconsole.warn(\n\t\t\t\"'sendVerificationCode' is deprecated. Please use 'sendVerificationCode__next' instead.\",\n\t\t);\n\n\t\treturn await this.accountService.sendVerificationCode({\n\t\t\tinput: {\n\t\t\t\tchannel: 'SMS',\n\t\t\t\trecipient: addAreaCode(mobileNumber, await this.locale),\n\t\t\t},\n\t\t});\n\t}\n\n\tasync sendVerificationCode__next(\n\t\tinput: SendVerificationCodeInput__Next,\n\t): Promise<SendVerificationCodeReturn__Next> {\n\t\tif (input.type === 'SMS') {\n\t\t\treturn this.authService.sendVerificationCode({\n\t\t\t\tchannel: 'SMS',\n\t\t\t\trecipient: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\t...(input.strict && {\n\t\t\t\t\tverificationType: 'MEMBER',\n\t\t\t\t}),\n\t\t\t});\n\t\t}\n\n\t\tthrow new Error(\"'Email' verification code is not yet supported\");\n\t}\n\n\tasync wallet(): Promise<WalletReturn> {\n\t\tconst res = await this.walletService.wallet();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.wallet(res.data) : null,\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tANNOUNCEMENT\n\t *=============================================\n\t */\n\n\tasync announcements(\n\t\tinput?: AnnouncementsInput,\n\t): Promise<AnnouncementsReturn> {\n\t\tconst res = await this.accountService.announcements({\n\t\t\t...input,\n\t\t\tfilter: {\n\t\t\t\t...input?.filter,\n\t\t\t\tvisibility: {\n\t\t\t\t\tin: ['MEMBER', 'GLOBAL'],\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tannouncements: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.announcement(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as AnnouncementsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tWITHDRAWAL\n\t *=============================================\n\t */\n\n\tasync createWithdrawal(\n\t\tinput: CreateWithdrawalInput,\n\t): Promise<CreateWithdrawalReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Withdrawal).toString();\n\n\t\tif (input.type === 'BANK') {\n\t\t\tconst res = await this.walletService.createBankWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'CABINET') {\n\t\t\tconst res = await this.extensionService.createCabinetWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'GCASH') {\n\t\t\tconst res = await this.walletService.createGCashWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t\trecipientMobileNumber: addAreaCode(\n\t\t\t\t\t\tinput.recipientMobileNumber,\n\t\t\t\t\t\tawait this.locale,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'GCASH_STANDARD_CASHIN') {\n\t\t\tconst res = await this.walletService.createGCashStandardCashInWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t\trecipientMobileNumber: addAreaCode(\n\t\t\t\t\t\tinput.recipientMobileNumber,\n\t\t\t\t\t\tawait this.locale,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MAYA') {\n\t\t\tconst res = await this.walletService.createMayaWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t\trecipientMobileNumber: addAreaCode(\n\t\t\t\t\t\tinput.recipientMobileNumber,\n\t\t\t\t\t\tawait this.locale,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MAYA_APP') {\n\t\t\tconst res = await this.walletService.createMayaAppWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'AIO_INSTAPAY') {\n\t\t\tconst res = await this.walletService.createAIOInstapayWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tbankCode: input.bankCode,\n\t\t\t\t\taccountNumber: input.accountNumber,\n\t\t\t\t\taccountName: input.accountName,\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\t\tif (input.type === 'AIO_INSTAPAY_NEXT') {\n\t\t\tconst res = await this.walletService.createAIOInstapayWithdrawal_next({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tbankCode: input.bankCode,\n\t\t\t\t\taccountNumber: input.accountNumber,\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t\taccountName: input.accountName,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MANUAL_UPI') {\n\t\t\tconst res = await this.walletService.createManualUpiWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tupiId: input.upiId,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MANUAL_BANK') {\n\t\t\tconst res = await this.walletService.createManualBankWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tbankAccountName: input.bankAccountName,\n\t\t\t\t\tbankAccountNumber: input.bankAccountNumber,\n\t\t\t\t\tbankIFSCCode: input.bankIFSCCode,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\treturn { ok: true, data: { id } };\n\t}\n\n\tasync withdrawalRecords(\n\t\tinput?: WithdrawalRecordsInput,\n\t): Promise<WithdrawalRecordsReturn> {\n\t\tconst res = await this.reportService.withdrawalRecords(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\twithdrawalRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.withdrawalRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as WithdrawalRecordsReturn;\n\t}\n\n\tasync remainingDailyWithdrawalsCount(): Promise<RemainingDailyWithdrawalsCountReturn> {\n\t\treturn await this.walletService.remainingDailyWithdrawalsCount();\n\t}\n\n\tasync instapayBankList(): Promise<InstapayBankListReturn> {\n\t\tconst res = await this.walletService.instapayBankList();\n\t\tif (!res.ok) return res;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.instapayBank),\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tDEPOSIT\n\t *=============================================\n\t */\n\n\tasync createDeposit(input: CreateDepositInput): Promise<CreateDepositReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Deposit).toString();\n\n\t\tconst environment = this.config.environment ?? 'development';\n\t\tif (input.type === 'TEST') {\n\t\t\tconst res = await this.walletService.createTestDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\t\tif (input.type === 'MAYA') {\n\t\t\tconst res = await this.walletService.createMayaDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MAYA_APP') {\n\t\t\tconst res = await this.walletService.createMayaAppDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'GCASH') {\n\t\t\tconst res = await this.walletService.createGCashDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'AIO_GCASH') {\n\t\t\tconst res = await this.walletService.createAiOGCashDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\t\tif (input.type === 'AIO_PAY_MAYA') {\n\t\t\tconst res = await this.walletService.createAiOPayMayaDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'AIO_GRAB_PAY') {\n\t\t\tconst res = await this.walletService.createAiOGrabPayDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'AIO_PALAWAN_PAY') {\n\t\t\tconst res = await this.walletService.createAiOPalawanPayDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'AIO_ONLINE_BANK') {\n\t\t\tconst res = await this.walletService.createAIOOnlineBankDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'AIO_QRPH') {\n\t\t\tconst res = await this.walletService.createAIOQRPHDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\t\tif (input.type === 'MANUAL_UPI') {\n\t\t\tconst res = await this.walletService.createManualUPIDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\treference: input.reference,\n\t\t\t\t\treferenceImage: input.referenceImage,\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MANUAL_BANK') {\n\t\t\tconst res = await this.walletService.createManualBankDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\treferenceImage: input.referenceId,\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'GCASH_WEBPAY') {\n\t\t\tconst res = await this.walletService.createGCashWebpayDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t\tcancelRedirectionUrl: input.cancelRedirectionUrl,\n\t\t\t\t\tsuccessRedirectionUrl: input.successRedirectionUrl,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MAYA_WEBPAY') {\n\t\t\tconst res = await this.walletService.createMayaWebpayDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t\tredirectUrl: input.redirectUrl,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\treturn { ok: true, data: { id } };\n\t}\n\n\tasync deposit(id: string): Promise<DepositReturn> {\n\t\tconst res = await this.walletService.deposit({ id });\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.deposit(res.data) : null,\n\t\t};\n\t}\n\n\tasync depositRecords(\n\t\tinput?: DepositRecordsInput,\n\t): Promise<DepositRecordsReturn> {\n\t\tconst res = await this.reportService.depositRecords(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tdepositRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.depositRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as DepositRecordsReturn;\n\t}\n\n\tasync depositsCount(): Promise<DepositsCountReturn> {\n\t\treturn await this.reportService.depositsCount();\n\t}\n\n\tasync touchDeposit(input: TouchDepositInput): Promise<TouchDepositReturn> {\n\t\tswitch (input.type) {\n\t\t\tcase 'GCASH':\n\t\t\t\treturn await this.walletService.touchGCashDeposit({\n\t\t\t\t\tinput: { id: input.id },\n\t\t\t\t});\n\t\t\tcase 'QR_PH':\n\t\t\t\treturn await this.walletService.touchQrphDeposit({\n\t\t\t\t\tinput: { id: input.id },\n\t\t\t\t});\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unsupported input type: '${input.type}'`);\n\t\t}\n\t}\n\n\tasync redeemVoucher(input: RedeemVoucherInput): Promise<RedeemVoucherReturn> {\n\t\treturn await this.walletService.redeemVoucher({\n\t\t\tinput: {\n\t\t\t\ttype: input.type,\n\t\t\t\tcode: input.code,\n\t\t\t},\n\t\t});\n\t}\n\n\t/*\n\t *=============================================\n\t * \tBET RECORD\n\t *=============================================\n\t */\n\n\tasync betRecords(input?: BetRecordsInput): Promise<BetRecordsReturn> {\n\t\tconst res0 = await this.reportService.betRecords({\n\t\t\t...input,\n\t\t\t...(input?.filter && {\n\t\t\t\tfilter: {\n\t\t\t\t\t...(input.filter.status && {\n\t\t\t\t\t\tstatus: input.filter.status,\n\t\t\t\t\t}),\n\t\t\t\t\t...(input.filter.serialCode && {\n\t\t\t\t\t\tserialCode: input.filter.serialCode,\n\t\t\t\t\t}),\n\t\t\t\t\t...(input.filter.vendorRoundId && {\n\t\t\t\t\t\tvendorRoundId: input.filter.vendorRoundId,\n\t\t\t\t\t}),\n\t\t\t\t\t...(input.filter.gameType && {\n\t\t\t\t\t\tgame__type: input.filter.gameType,\n\t\t\t\t\t}),\n\t\t\t\t\t...(input.filter.gameProvider && {\n\t\t\t\t\t\tgame__provider: input.filter.gameProvider,\n\t\t\t\t\t}),\n\t\t\t\t\t...(input.filter.dateTimeCreated && {\n\t\t\t\t\t\tdateTimeCreated: input.filter.dateTimeCreated,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t}),\n\t\t});\n\n\t\tif (!res0.ok) return res0;\n\n\t\tconst ids = [...new Set(res0.data.edges.map((e) => e.node.game.id))];\n\n\t\tif (ids.length <= 0) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: {\n\t\t\t\t\tbetRecords: [],\n\t\t\t\t\ttotalCount: 0,\n\t\t\t\t\tendCursor: undefined,\n\t\t\t\t\thasNextPage: false,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.cmsPortalService.games({\n\t\t\tfilter: {\n\t\t\t\treference: {\n\t\t\t\t\tin: ids,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tbetRecords: res0.data.edges.map(({ cursor, node }) => {\n\t\t\t\t\tconst game = res1.data.edges.find(\n\t\t\t\t\t\t(e) => node.game.id === e.node.reference,\n\t\t\t\t\t)?.node;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...this.transformer.transform.betRecord({\n\t\t\t\t\t\t\t...node,\n\t\t\t\t\t\t\tgame,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t\ttotalCount: res0.data.totalCount,\n\t\t\t\tendCursor: res0.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res0.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as BetRecordsReturn;\n\t}\n\n\tasync latestBetRecords(): Promise<LatestBetRecordsReturn> {\n\t\tconst res0 = await this.portalService.latestBetRecords();\n\n\t\tif (!res0.ok) return res0;\n\n\t\tconst ids = [...new Set(res0.data.map((o) => o.game.id))];\n\n\t\tif (ids.length <= 0) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: [],\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.cmsPortalService.games({\n\t\t\tfilter: {\n\t\t\t\treference: {\n\t\t\t\t\tin: ids,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res0.data.map((o) => {\n\t\t\t\tconst game = res1.data.edges.find(\n\t\t\t\t\t(e) => e.node.reference === o.game.id,\n\t\t\t\t)?.node;\n\n\t\t\t\treturn this.transformer.transform.latestBetRecord({\n\t\t\t\t\t...o,\n\t\t\t\t\tgame,\n\t\t\t\t});\n\t\t\t}),\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tTRANSACTION\n\t *=============================================\n\t */\n\n\tasync transactionRecords(\n\t\tinput?: TransactionRecordsInput,\n\t): Promise<TransactionRecordsReturn> {\n\t\tconst res = await this.reportService.transactionRecords(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\ttransactionRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.transactionRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as TransactionRecordsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tPROMO\n\t *=============================================\n\t */\n\n\tasync promos(): Promise<PromosReturn> {\n\t\tconst res = await this.walletService.promos();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\n\t\t};\n\t}\n\n\tasync availablePromos(\n\t\tinput?: PromoFilterInput,\n\t): Promise<AvailablePromosReturn> {\n\t\tconst res = await this.walletService.availablePromos(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\n\t\t};\n\t}\n\n\tasync cashbacks(): Promise<CashbacksReturn> {\n\t\tconst res = await this.walletService.cashbacks();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.cashback),\n\t\t};\n\t}\n\n\t/** @deprecated */\n\tasync bonus(): Promise<BonusReturn> {\n\t\tconsole.warn(\"'bonus' is deprecated. Please use 'bonuses' instead.\");\n\n\t\tconst res = await this.walletService.bonus();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.bonus(res.data) : null,\n\t\t};\n\t}\n\n\tasync bonuses(): Promise<BonusesReturn> {\n\t\tconst res = await this.walletService.bonuses();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.bonus),\n\t\t};\n\t}\n\n\tasync cashbackBonuses(): Promise<CashbackBonusReturn> {\n\t\tconst res = await this.walletService.cashbackBonuses();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.cashbackBonus),\n\t\t};\n\t}\n\n\tasync claimCashbackBonus(id: string): Promise<ClaimCashbackBonusReturn> {\n\t\treturn await this.walletService.claimCashbackBonus({ input: { id } });\n\t}\n\n\tasync claimSpotBonus(code: string): Promise<ClaimSpotBonusReturn> {\n\t\treturn await this.walletService.claimSpotBonus({ code: code });\n\t}\n\n\tasync promoByCode(code: string): Promise<PromoByCodeReturn> {\n\t\tconst res = await this.reportService.promoByCode({ code: code });\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.promoByCode(res.data),\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tGAME\n\t *=============================================\n\t */\n\n\tasync game(id: string): Promise<GameReturn> {\n\t\tconst res = await this.cmsPortalService.game(id);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.game(res.data) : null,\n\t\t};\n\t}\n\n\t/** @deprecated */\n\tasync games(input?: GamesInput): Promise<GamesReturn> {\n\t\tconsole.warn(\"'games' is deprecated. Please use 'games__next' instead.\");\n\n\t\tconst res = await this.cmsPortalService.games(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.game(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as GamesReturn;\n\t}\n\n\tasync walletGames(input?: WalletGameInput): Promise<WalletGamesReturn> {\n\t\tconsole.warn(\n\t\t\t\"'walletGames games' is deprecated. This is for testing purpose only.\",\n\t\t);\n\n\t\tconst res = await this.walletService.walletGames(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...node,\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as WalletGamesReturn;\n\t}\n\n\tasync games__next(input?: GamesInput__Next): Promise<GamesReturn> {\n\t\tconst res = await this.cmsPortalService.games__next(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.game(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as GamesReturn;\n\t}\n\n\tasync recommendedGames(\n\t\tinput?: RecommendedGamesInput,\n\t): Promise<RecommendedGamesReturn> {\n\t\tconst res0 = await this.portalService.recommendedGames();\n\n\t\tif (!res0.ok) return res0;\n\n\t\tconst ids = [...new Set(res0.data.map((o) => o.id))];\n\n\t\tif (ids.length <= 0) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: {\n\t\t\t\t\tgames: [],\n\t\t\t\t\ttotalCount: 0,\n\t\t\t\t\thasNextPage: false,\n\t\t\t\t\tendCursor: undefined,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.cmsPortalService.games({\n\t\t\tfirst: input?.first,\n\t\t\tafter: input?.after,\n\t\t\tfilter: {\n\t\t\t\treference: {\n\t\t\t\t\tin: ids,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tgames: res1.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.game(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res1.data.totalCount,\n\t\t\t\thasNextPage: res1.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res1.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as RecommendedGamesReturn;\n\t}\n\n\tasync gameSession(\n\t\tid: string,\n\t\tgameProvider?: GameProvider,\n\t): Promise<GameSessionReturn> {\n\t\tif (gameProvider) {\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(gameProvider)\n\t\t\t\t? await this.walletService.gameSession({ id })\n\t\t\t\t: await this.gameService.gameSession({ id });\n\n\t\t\tif (!res.ok) return res;\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: res.data\n\t\t\t\t\t? this.transformer.transform.gameSession(res.data)\n\t\t\t\t\t: null,\n\t\t\t};\n\t\t}\n\n\t\tconst res0 = await this.walletService.gameSession({ id });\n\n\t\tif (!res0.ok) return res0;\n\n\t\tif (res0.data) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: this.transformer.transform.gameSession(res0.data),\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.gameService.gameSession({ id });\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res1.data\n\t\t\t\t? this.transformer.transform.gameSession(res1.data)\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\tasync createGameSession(\n\t\tinput: CreateGameSessionInput,\n\t): Promise<CreateGameSessionReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.GameSession).toString();\n\n\t\tif (input.provider) {\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(input.provider)\n\t\t\t\t? await this.walletService.createGameSession({\n\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tgame: input.reference,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t: await this.gameService.createGameSession({\n\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tgame: input.reference,\n\t\t\t\t\t\t\thomepageUrl:\n\t\t\t\t\t\t\t\ttypeof window === 'undefined' ? undefined : input.homepageUrl,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t\t}\n\n\t\tconst isSports = input.game.startsWith('SPORTS:');\n\n\t\tif (isSports) {\n\t\t\tconst game = await ObjectId.generateFromKey(\n\t\t\t\tObjectType.Game,\n\t\t\t\tinput.game,\n\t\t\t).then((generatedId) => {\n\t\t\t\treturn generatedId.toString();\n\t\t\t});\n\n\t\t\tconst res0 = await this.gameService.createGameSession({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tgame,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn res0.ok ? { ok: true, data: { id } } : res0;\n\t\t}\n\n\t\tconst res0 = await this.game(input.game);\n\n\t\tif (!res0.data) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: res0.error?.name ?? 'GameDoesNotExistError',\n\t\t\t\t\tmessage: res0.error?.message ?? 'Game does not exist',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst { provider, reference } = res0.data;\n\n\t\tconst res1 = NEW_GAME_PROVIDERS.includes(provider)\n\t\t\t? await this.walletService.createGameSession({\n\t\t\t\t\tinput: { id, game: reference },\n\t\t\t\t})\n\t\t\t: await this.gameService.createGameSession({\n\t\t\t\t\tinput: {\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tgame: reference,\n\t\t\t\t\t\thomepageUrl:\n\t\t\t\t\t\t\ttypeof window === 'undefined' ? undefined : input.homepageUrl,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\treturn res1.ok ? { ok: true, data: { id } } : res1;\n\t}\n\n\tasync endGameSession(\n\t\tid: string,\n\t\tgameProvider?: GameProvider,\n\t): Promise<EndGameSessionReturn> {\n\t\tif (gameProvider) {\n\t\t\treturn NEW_GAME_PROVIDERS.includes(gameProvider)\n\t\t\t\t? await this.walletService.endGameSession({ input: { id } })\n\t\t\t\t: await this.gameService.endGameSession({ input: { id } });\n\t\t}\n\n\t\tconst res0 = await this.walletService.endGameSession({ input: { id } });\n\t\tif (res0.ok) return res0;\n\t\tconst res1 = await this.gameService.endGameSession({ input: { id } });\n\t\treturn res1;\n\t}\n\n\tasync markGameAsFavorite(\n\t\tinput: MarkGameAsFavoriteInput,\n\t): Promise<MarkGameAsFavoriteReturn> {\n\t\treturn await this.walletService.markGameAsFavorite({ input });\n\t}\n\n\tasync unmarkGameAsFavorite(\n\t\tinput: UnmarkGameAsFavoriteInput,\n\t): Promise<UnmarkGameAsFavoriteReturn> {\n\t\treturn await this.walletService.unmarkGameAsFavorite({ input });\n\t}\n\n\tasync favoriteGames(): Promise<FavoriteGamesReturn> {\n\t\tconst res0 = await this.walletService.favoriteGames();\n\n\t\tconst ids = res0.data?.length\n\t\t\t? [...new Set(res0.data.map((e) => e.id))]\n\t\t\t: [];\n\n\t\tif (ids.length <= 0) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: [],\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.cmsPortalService.games({\n\t\t\tfilter: {\n\t\t\t\treference: {\n\t\t\t\t\tin: ids,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata:\n\t\t\t\tres0.data\n\t\t\t\t\t?.map(({ id }) => {\n\t\t\t\t\t\tconst game = res1.data.edges.find(\n\t\t\t\t\t\t\t(e) => id === e.node.reference,\n\t\t\t\t\t\t)?.node;\n\t\t\t\t\t\treturn game ? this.transformer.transform.game(game) : null;\n\t\t\t\t\t})\n\t\t\t\t\t.filter(Boolean) ?? [],\n\t\t} as FavoriteGamesReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tFILE\n\t *=============================================\n\t */\n\n\tasync file(id: string): Promise<FileReturn> {\n\t\tconst res = await this.fileService.file({ id });\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.file(res.data) : null,\n\t\t};\n\t}\n\n\tasync uploadImageFile(\n\t\tinput: UploadImageFileInput,\n\t): Promise<UploadImageFileReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.File).toString();\n\n\t\tconst res = await this.fileService.uploadPrivateImageFile({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tfile: input.file,\n\t\t\t},\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tPOINTS\n\t *=============================================\n\t */\n\n\tasync pointsWallet(): Promise<PointsWalletReturn> {\n\t\tconst res = await this.walletService.pointsWallet();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.pointsWallet(res.data) : null,\n\t\t};\n\t}\n\n\tasync redeemPoints(input: RedeemPointsInput): Promise<RedeemPointsReturn> {\n\t\treturn await this.walletService.redeemPointsToCash({\n\t\t\tinput: {\n\t\t\t\tamount: input.amount.toString(),\n\t\t\t},\n\t\t});\n\t}\n\n\tasync pointsWalletTransactions(\n\t\tinput?: PointsWalletTransactionsInput,\n\t): Promise<PointsWalletTransactionsReturn> {\n\t\tconst res = await this.reportService.pointsWalletTransactions(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tpointsWalletTransactions: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.pointsWalletTransaction(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as PointsWalletTransactionsReturn;\n\t}\n\n\tasync achievementPointsHistoryRecord(\n\t\tinput?: AchievementPointsHistoryRecordInput,\n\t): Promise<AchievementPointsHistoryRecordReturn> {\n\t\tconst res = await this.reportService.achievementPointsHistoryRecord(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tachievementPointsHistoryRecords: res.data.edges.map(\n\t\t\t\t\t({ cursor, node }) => ({\n\t\t\t\t\t\t...this.transformer.transform.achievementPointsHistoryRecord(node),\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as AchievementPointsHistoryRecordReturn;\n\t}\n\n\tasync memberAchievements(): Promise<MemberAchievementReturn> {\n\t\tconst res = await this.reportService.memberAchievements();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? this.transformer.transform.memberAchievements(res.data)\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tACTIVITY RECORD\n\t *=============================================\n\t */\n\n\tasync activityRecords(\n\t\tinput?: ActivityRecordsInput,\n\t): Promise<ActivityRecordsReturn> {\n\t\tconst res = await this.reportService.activityRecords(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tactivityRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.activityRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as ActivityRecordsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tREFERRAL\n\t *=============================================\n\t */\n\n\tasync referralCode(): Promise<ReferralCodeReturn> {\n\t\tconst res = await this.accountService.referralCode();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ?? null,\n\t\t};\n\t}\n\n\tasync updateReferralCode(\n\t\tinput: UpdateReferralCodeInput,\n\t): Promise<UpdateReferralCodeReturn> {\n\t\treturn await this.accountService.updateReferralCode({ input });\n\t}\n\n\tasync referrals(input?: ReferralsInput): Promise<ReferralsReturn> {\n\t\tconst res = await this.reportService.referrals(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\treferrals: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.referral(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as ReferralsReturn;\n\t}\n\n\tasync referralCommission(): Promise<ReferralCommissionReturn> {\n\t\tconst res = await this.reportService.referralCommission();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? this.transformer.transform.referralCommission(res.data)\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\tasync uplinesByName(input: UplinesByNameInput): Promise<UplinesByNameReturn> {\n\t\tconst res = await this.reportService.uplinesByName(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\n\t\t};\n\t}\n\n\tasync downlinesByName(\n\t\tinput: DownlinesByNameInput,\n\t): Promise<DownlinesByNameReturn> {\n\t\tconst res = await this.reportService.downlinesByName(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\n\t\t};\n\t}\n\n\tasync pointsClubSettings(): Promise<PointsClubSettingsReturn> {\n\t\tconst res = await this.accountService.pointsClubSettings();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? this.transformer.transform.pointsClubSettings(res.data)\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tMESSAGES\n\t *=============================================\n\t */\n\n\tasync messages(input?: MessagesInput): Promise<MessagesReturn> {\n\t\tconst res = await this.triggerService.messages(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tmessages: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.message(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as MessagesReturn;\n\t}\n\n\tasync unreadMessagesCount(\n\t\tinput?: UnreadMessagesCountInput,\n\t): Promise<UnreadMessagesCountReturn> {\n\t\treturn await this.triggerService.unreadMessagesCount(input);\n\t}\n\n\tasync markMessageAsRead(id: string): Promise<MarkMessageAsReadReturn> {\n\t\treturn await this.triggerService.markMessageAsRead({ id });\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\tasync markAllMessageAsRead(): Promise<MarkAllMessagesAsReadReturn> {\n\t\treturn await this.triggerService.markAllMessageAsRead();\n\t}\n\n\tasync markAllMessagesAsRead(): Promise<MarkAllMessagesAsReadReturn> {\n\t\treturn await this.triggerService.markAllMessagesAsRead();\n\t}\n\n\tasync claimReward(id: string): Promise<ClaimRewardReturn> {\n\t\treturn await this.triggerService.claimReward({ id });\n\t}\n\n\t/*\n\t *=============================================\n\t * \tONBOARDING\n\t *=============================================\n\t */\n\n\tasync onboardingStatus(): Promise<OnboardingStatusReturn> {\n\t\tconst res = await this.portalService.onboardingStatus();\n\t\tif (!res.ok) return res;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data,\n\t\t};\n\t}\n\n\tasync completeOnboarding(\n\t\tinput: CompleteOnboardingInput,\n\t): Promise<CompleteOnboardingReturn> {\n\t\treturn await this.portalService.completeOnboarding({\n\t\t\tinput: {\n\t\t\t\tfavoriteGameTypes: input.favoriteGameTypes,\n\t\t\t\tplayerExperience: input.playerExperience,\n\t\t\t},\n\t\t});\n\t}\n\n\tasync skipOnboarding(): Promise<SkipOnboardingReturn> {\n\t\treturn await this.portalService.skipOnboarding();\n\t}\n\n\t/*\n\t *=============================================\n\t * \tQUEST\n\t *=============================================\n\t */\n\n\tasync availableQuests(): Promise<AvailableQuestsReturn> {\n\t\tconst res = await this.triggerService.availableQuests();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.quest),\n\t\t};\n\t}\n\n\tasync checkInDailyQuest(id: string): Promise<CheckInDailyQuestReturn> {\n\t\treturn await this.triggerService.checkInDailyQuest({ input: { id } });\n\t}\n\n\t/*\n\t *=============================================\n\t * \tTOP WINS\n\t *=============================================\n\t */\n\n\tasync topWins(): Promise<TopWinsReturn> {\n\t\tconst res0 = await this.portalService.topWins();\n\n\t\tconst ids = res0.data?.length\n\t\t\t? [...new Set(res0.data.map((e) => e.game.id))]\n\t\t\t: [];\n\n\t\tif (ids.length <= 0) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: [],\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.cmsPortalService.games({\n\t\t\tfilter: {\n\t\t\t\treference: {\n\t\t\t\t\tin: ids,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res0?.data?.map((o) => {\n\t\t\t\tconst game = res1.data.edges.find(\n\t\t\t\t\t(e) => e.node.reference === o.game.id,\n\t\t\t\t)?.node;\n\n\t\t\t\treturn this.transformer.transform.topWin({\n\t\t\t\t\t...o,\n\t\t\t\t\tgame,\n\t\t\t\t});\n\t\t\t}),\n\t\t} as TopWinsReturn;\n\t}\n\n\tasync topWinsNext(): Promise<TopWinsReturn> {\n\t\tconst res0 = await this.portalService.topWinsNext();\n\n\t\tconst ids = res0.data?.length\n\t\t\t? [...new Set(res0.data.map((e) => e.game.id))]\n\t\t\t: [];\n\n\t\tif (ids.length <= 0) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: [],\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.cmsPortalService.games({\n\t\t\tfilter: {\n\t\t\t\treference: {\n\t\t\t\t\tin: ids,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res0?.data?.map((o) => {\n\t\t\t\tconst game = res1.data.edges.find(\n\t\t\t\t\t(e) => e.node.reference === o.game.id,\n\t\t\t\t)?.node;\n\n\t\t\t\treturn this.transformer.transform.topWin({\n\t\t\t\t\t...o,\n\t\t\t\t\tgame,\n\t\t\t\t});\n\t\t\t}),\n\t\t} as TopWinsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tJACKPOT\n\t *=============================================\n\t */\n\n\tasync jackpots(input?: JackpotsInput): Promise<JackpotsReturn> {\n\t\tconst res = await this.reportService.jackpots(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tjackpots: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.jackpots(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as JackpotsReturn;\n\t}\n\n\tasync jackpotPayouts(\n\t\tinput?: JackpotPayoutsInput,\n\t): Promise<JackpotPayoutsReturn> {\n\t\tconst res = await this.reportService.jackpotPayouts(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tjackpotPayouts: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.jackpotPayouts(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as JackpotPayoutsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tTOURNAMENTS\n\t *=============================================\n\t */\n\n\tasync tournaments(input?: TournamentsInput): Promise<TournamentsReturn> {\n\t\tconst res = await this.reportService.tournaments(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\ttournaments: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.tournaments(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as TournamentsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tFCM/FIREBASE\n\t *=============================================\n\t */\n\n\tasync registerFCMDevice(\n\t\tinput: RegisterFCMDeviceInput,\n\t): Promise<RegisterFCMDeviceReturn> {\n\t\treturn await this.triggerService.registerFCMDevice({ input });\n\t}\n\n\tasync unregisterFCMDevice(\n\t\tinput: UnregisterFCMDeviceInput,\n\t): Promise<UnregisterFCMDeviceReturn> {\n\t\treturn await this.triggerService.unregisterFCMDevice({ input });\n\t}\n\n\t/*\n\t *=============================================\n\t * \tTHIRD PARTY\n\t *=============================================\n\t */\n\n\tasync googleClientId(): Promise<GoogleClientIdReturn> {\n\t\tconst res = await this.accountService.googleClientId();\n\t\tif (!res.ok) return res;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ?? null,\n\t\t};\n\t}\n\n\tasync requireFirstDeposit(): Promise<RequireFirstDepositReturn> {\n\t\tconst res = await this.accountService.requireFirstDeposit();\n\t\tif (!res.ok) return res;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ?? false,\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tUTILS\n\t *=============================================\n\t */\n\n\tprivate formatYmd(date: Date): string {\n\t\tconst ensure2Digits = (n: number) => n.toString().padStart(2, '0');\n\n\t\tconst y = date.getFullYear();\n\t\tconst m = ensure2Digits(date.getMonth() + 1);\n\t\tconst d = ensure2Digits(date.getDate());\n\n\t\treturn `${y}-${m}-${d}`;\n\t}\n}\n\nconst NEW_GAME_PROVIDERS: GameProvider[] = [\n\t/**/\n\t'RTG',\n\t'DARWIN',\n\t'DRBINGO',\n\t'MEGABALL',\n\t'MEGA2SPIN',\n\t'EVOLUTION',\n\t'DIGITAIN',\n\t'EVOLUTION_NETENT',\n\t'ETENGJUE',\n\t'EVOLUTION_REDTIGER',\n\t'HOLLYWOODTV',\n\t'NO_LIMIT_CITY',\n\t'BIG_TIME_GAMING',\n\t'SAGAMING',\n\t'JK8',\n\t'TEST',\n\t'RUBYPLAY',\n\t'ORTIZ',\n];\n\nconst ENDPOINTS = {\n\tdevelopment: {\n\t\tauth: 'https://auth.development.opexa.io',\n\t\tgame: 'https://game.development.opexa.io/graphql',\n\t\textension: 'https://extension.development.opexa.io/graphql',\n\t\tfile: 'https://file.development.opexa.io/graphql',\n\t\treport: 'https://report.development.opexa.io/graphql',\n\t\twallet: 'https://wallet.development.opexa.io/graphql',\n\t\taccount: 'https://account.development.opexa.io/graphql',\n\t\tportal: 'https://portal.development.opexa.io/graphql',\n\t\ttrigger: 'https://trigger.development.opexa.io/graphql',\n\t\tstatic: 'https://static.development.opexa.io',\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\n\t\topexapay: 'https://external.opexapay.development.opexa.io',\n\t},\n\tproduction: {\n\t\tauth: 'https://auth.opexa.io',\n\t\tgame: 'https://game.opexa.io/graphql',\n\t\textension: 'https://extension.opexa.io/graphql',\n\t\tfile: 'https://file.opexa.io/graphql',\n\t\treport: 'https://report.opexa.io/graphql',\n\t\twallet: 'https://wallet.opexa.io/graphql',\n\t\taccount: 'https://account.opexa.io/graphql',\n\t\tportal: 'https://portal.opexa.io/graphql',\n\t\ttrigger: 'https://trigger.opexa.io/graphql',\n\t\tstatic: 'https://static.atalos.io',\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\n\t\topexapay: 'https://external.opexapay.opexa.io',\n\t},\n\tstaging: {\n\t\tauth: 'https://auth.staging.atalos.io',\n\t\tgame: 'https://game.staging.atalos.io/graphql',\n\t\textension: 'https://extension.staging.atalos.io/graphql',\n\t\tfile: 'https://file.staging.atalos.io/graphql',\n\t\treport: 'https://report.staging.atalos.io/graphql',\n\t\twallet: 'https://wallet.staging.atalos.io/graphql',\n\t\taccount: 'https://account.staging.atalos.io/graphql',\n\t\tportal: 'https://portal.staging.atalos.io/graphql',\n\t\ttrigger: 'https://trigger.staging.atalos.io/graphql',\n\t\tstatic: 'https://static.atalos.io',\n\t\tcmsPortal: 'https://portal-api.staging.opexacms.io',\n\t\topexapay: 'https://external.opexapay.staging.atalos.io ',\n\t},\n};\n\nexport default Sdk;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/sdk/object-type.ts","../src/utils/gql.ts","../src/services/queries.ts","../src/services/utils.ts","../src/services/account.service.ts","../src/utils/status-code-to-operation-error.ts","../src/services/auth.service.ts","../src/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/services/extension.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/utils/add-hours.ts","../src/sdk/utils.ts","../src/sdk/cellexpert-manager.ts","../src/sdk/logger.ts","../src/utils/sleep.ts","../src/utils/pollable.ts","../src/sdk/session-manager.ts","../src/sdk/session-manager-cookie.ts","../src/utils/compact.ts","../src/utils/invariant.ts","../src/utils/parse-decimal.ts","../src/sdk/transformer.ts","../src/sdk/sdk.ts"],"names":["now","res","o","res0"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * ref: https://github.com/HighOutputVentures/opexa/blob/main/libs/shared/src/libs/object-type.ts\n */\n\nexport const ObjectType = {\n\tAccount: 8,\n\tDeposit: 9,\n\tWithdrawal: 14,\n\tVerification: 15,\n\tFile: 16,\n\tGame: 203,\n\tGameSession: 204,\n\tMayaSession: 230,\n};\n","export function gql(strings: TemplateStringsArray, ...values: unknown[]) {\n\tlet result = '';\n\n\tfor (const [index, string] of strings.entries()) {\n\t\tconst value = values.at(index) ?? '';\n\n\t\tresult = `${result}${string}${value}`;\n\t}\n\n\treturn result.trim();\n}\n","import { gql } from '../utils/gql.js';\n\n/**/\n/*+----------------------------------------+*/\n/*+ FILE +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const FILE_FRAGMENT = gql`\n fragment FileFragment on File {\n id\n url\n status\n }\n`;\n\nexport const FILE_QUERY = gql`\n ${FILE_FRAGMENT}\n\n query File($id: ObjectId!) {\n node(id: $id) {\n ... on File {\n ...FileFragment\n }\n }\n }\n`;\n\nexport const UPLOAD_PRIVATE_IMAGE_FILE_MUTATION = gql`\n mutation UploadPrivateImageFile($input: UploadFileInput!) {\n uploadPrivateImageFile(input: $input) {\n ... on FileFormatNotSupportedError {\n __typename\n }\n ... on FileNameTooLongError {\n __typename\n }\n ... on FileSizeTooBigError {\n __typename\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ WALLET +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const WALLET_QUERY = gql`\n query Wallet {\n wallet {\n id\n balance\n turnoverRequirement\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ POINTS +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const POINTS_WALLET_QUERY = gql`\n query PointsWallet {\n pointsWallet {\n id\n points\n account\n dateTimeCreated\n }\n }\n`;\n\nexport const REDEEM_POINTS_TO_CASH_MUTATION = gql`\n mutation RedeemPointsToCash($input: RedeemPointsToCashInput!) {\n redeemPointsToCash(input: $input) {\n ... on InsufficientPointsError {\n __typename\n }\n ... on PointsNotDivisibleBy100Error {\n __typename\n }\n }\n }\n`;\n\nexport const POINTS_WALLET_TRANSACTIONS_QUERY = gql`\n query PointsWalletTransactions(\n $first: Int\n $after: Cursor\n $filter: MemberPointsWalletTransactionFilterInput\n ) {\n member {\n pointsWalletTransactions(first: $first, after: $after, filter: $filter) {\n edges {\n cursor\n node {\n ... on PointsWalletTransaction {\n id\n type\n amount\n balance\n dateTimeCreated\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n`;\n\nexport const ACHIEVEMENT_POINTS_HISTORY_RECORD_QUERY = gql`\n query AchievementPointsHistoryRecords(\n $first: Int\n $after: Cursor\n $filter: AchievementPointsHistoryRecordFilterInput\n ) {\n achievementPointsHistoryRecords(\n first: $first\n after: $after\n filter: $filter\n ) {\n edges {\n cursor\n node {\n ... on AchievementPointsHistoryRecord {\n id\n type\n points\n dateTimeCreated\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ GAME +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const GAME_SESSION_QUERY = {\n\tcurrent: gql`\n query GameSession($id: ObjectId!) {\n node(id: $id) {\n ... on GameSession {\n id\n game\n status\n launchUrl\n launchOptions\n }\n }\n }\n `,\n\tlegacy: gql`\n query GameSession($id: ObjectId!) {\n node(id: $id) {\n ... on GameSession {\n id\n game {\n id\n }\n status\n launchUrl\n dateTimeCreated\n dateTimeLastUpdated\n }\n }\n }\n `,\n};\n\nexport const CREATE_GAME_SESSION_MUTATION = gql`\n mutation CreateGameSession($input: CreateGameSessionInput!) {\n createGameSession(input: $input) {\n ... on GameDoesNotExistError {\n __typename\n }\n ... on GameProviderNotEnabledError {\n __typename\n }\n ... on GameTypeNotEnabledError {\n __typename\n }\n }\n }\n`;\n\nexport const END_GAME_SESSION_MUTATION = {\n\tcurrent: gql`\n mutation EndGameSession($input: EndGameSessionInput!) {\n endGameSession(input: $input)\n }\n `,\n\tlegacy: gql`\n mutation EndGameSession($input: EndGameSessionInput!) {\n endGameSession(input: $input) {\n ... on GameSessionDoesNotExistError {\n __typename\n }\n ... on GameSessionAlreadyClosedError {\n __typename\n }\n ... on GameProviderError {\n __typename\n }\n }\n }\n `,\n};\n\nexport const RECOMMENDED_GAMES_QUERY = gql`\n query RecommendedGames {\n recommendedGames {\n id\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ ANNOUNCEMENT +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const ANNOUNCEMENTS_QUERY = gql`\n query Announcements(\n $first: Int\n $after: Cursor\n $filter: AnnouncementFilterInput\n ) {\n announcements(first: $first, after: $after, filter: $filter) {\n edges {\n cursor\n node {\n ... on Announcement {\n id\n type\n title\n status\n message\n activationStartDateTime\n activationEndDateTime\n dateTimeCreated\n dateTimeLastUpdated\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ REQUIRE FIRST DEPOSIT +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const REQUIRE_FIRST_DEPOSIT_QUERY = gql`\n query RequireFirstDeposit {\n requireFirstDeposit\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ WITHDRAWAL +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const WITHDRAWAL_RECORDS_QUERY = gql`\n query WithdrawalRecords(\n $first: Int\n $after: Cursor\n $filter: WithdrawalRecordFilterInput\n ) {\n member {\n withdrawalRecords(first: $first, after: $after, filter: $filter) {\n edges {\n cursor\n node {\n ... on BankWithdrawalRecord {\n id\n type\n bank\n fee\n netAmount\n reference\n amount\n status\n error\n withdrawalNumber\n serialCode\n dateTimeCreated\n dateTimeLastUpdated\n }\n ... on GCashWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n status\n error\n withdrawalNumber\n serialCode\n recipientMobileNumber\n dateTimeCreated\n dateTimeLastUpdated\n }\n ... on ManualWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n status\n error\n withdrawalNumber\n serialCode\n dateTimeCreated\n dateTimeLastUpdated\n }\n ... on MayaAppWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n status\n error\n withdrawalNumber\n serialCode\n dateTimeCreated\n dateTimeLastUpdated\n }\n ... on InstapayWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n accountName\n status\n error\n withdrawalNumber\n serialCode\n dateTimeCreated\n dateTimeLastUpdated\n bankName\n }\n ... on ManualUPIWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n status\n error\n withdrawalNumber\n serialCode\n dateTimeCreated\n dateTimeLastUpdated\n }\n ... on ManualBankWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n status\n error\n withdrawalNumber\n serialCode\n dateTimeCreated\n dateTimeLastUpdated\n }\n ... on GCashStandardCashInWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n status\n error\n withdrawalNumber\n serialCode\n recipientMobileNumber\n dateTimeCreated\n dateTimeLastUpdated\n }\n ... on CabinetWithdrawalRecord {\n id\n type\n fee\n netAmount\n reference\n amount\n status\n error\n serialCode\n dateTimeCreated\n dateTimeLastUpdated\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n`;\n\nexport const CREATE_GCASH_WITHDRAWAL_MUTATION = gql`\n mutation CreateGCashWithdrawal($input: CreateGCashWithdrawalInput!) {\n createGCashWithdrawal(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidTransactionPasswordError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on MobileNumberNotVerifiedError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on ReCAPTCHAVerificationFailedError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on TransactionPasswordNotSetError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_GCASH_STANDARD_CASHIN_WITHDRAWAL_MUTATION = gql`\n mutation CreateGCashStandardCashInWithdrawal(\n $input: CreateGCashStandardCashInWithdrawalInput!\n ) {\n createGCashStandardCashInWithdrawal(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidTransactionPasswordError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on MobileNumberNotVerifiedError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on ReCAPTCHAVerificationFailedError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on TransactionPasswordNotSetError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MAYA_WITHDRAWAL_MUTATION = gql`\n mutation CreateMayaWithdrawal($input: CreateMayaWithdrawalInput!) {\n createMayaWithdrawal(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidTransactionPasswordError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on MobileNumberNotVerifiedError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MAYA_APP_WITHDRAWAL_MUTATION = gql`\n mutation CreateMayaAppWithdrawal($input: CreateMayaAppWithdrawalInput!) {\n createMayaAppWithdrawal(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidTransactionPasswordError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on TransactionPasswordNotSetError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_BANK_WITHDRAWAL_MUTATION = gql`\n mutation CreateBankWithdrawal($input: CreateBankWithdrawalInput!) {\n createBankWithdrawal(input: $input) {\n ... on MobileNumberNotVerifiedError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION = gql`\n mutation CreateAIOInstapayWithdrawal(\n $input: CreateAIOInstapayWithdrawalInput!\n ) {\n createAIOInstapayWithdrawal(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on InvalidTransactionPasswordError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on TransactionPasswordNotSetError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n ... on FirstDepositRequiredError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION_NEXT = gql`\n mutation CreateAIOInstapayWithdrawalInput_next(\n $input: CreateAIOInstapayWithdrawalInput_next!\n ) {\n createAIOInstapayWithdrawal_next(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on InvalidTransactionPasswordError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on TransactionPasswordNotSetError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MANUAL_UPI_WITHDRAWAL_MUTATION = gql`\n mutation CreateManualUPIWithdrawal($input: CreateManualUPIWithdrawalInput!) {\n createManualUPIWithdrawal(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MANUAL_BANK_WITHDRAWAL_MUTATION = gql`\n mutation CreateManualBankWithdrawal(\n $input: CreateManualBankWithdrawalInput!\n ) {\n createManualBankWithdrawal(input: $input) {\n ... on AccountNotVerifiedError {\n __typename\n }\n ... on InvalidWithdrawalAmountError {\n __typename\n }\n ... on WithdrawalDailyLimitExceededError {\n __typename\n }\n ... on NotEnoughBalanceError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on TurnoverRequirementNotYetFulfilledError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_CABINET_WITHDRAWAL_MUTATION = gql`\n mutation CreateCabinetWithdrawal($input: CreateCabinetWithdrawalInput!) {\n createCabinetWithdrawal(input: $input) {\n ... on InsufficientFundsError {\n __typename\n message\n }\n ... on PlatformDoesNotExistError {\n __typename\n message\n }\n }\n }\n`;\n\nexport const INSTAPAY_BANK_LIST_QUERY = gql`\n query InstapayBankList {\n instapayBankList {\n id\n code\n name\n }\n }\n`;\n\nexport const REMAINING_DAILY_WITHDRAWALS_COUNT_QUERY = gql`\n query RemainingDailyWithdrawalsCount {\n remainingDailyWithdrawalsCount\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ DEPOSIT +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const DEPOSIT_RECORDS_QUERY = gql`\n query DepositRecords(\n $after: Cursor\n $first: Int\n $filter: DepositRecordFilterInput\n ) {\n member {\n depositRecords(after: $after, first: $first, filter: $filter) {\n edges {\n cursor\n node {\n ... on DepositRecord {\n id\n type\n amount\n netAmount\n fee\n status\n deposit\n reference\n depositNumber\n dateTimeCreated\n dateTimeLastUpdated\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n`;\n\nexport const CREATE_GCASH_DEPOSIT_MUTATION = gql`\n mutation CreateGCashDeposit($input: CreateGCashDepositInput!) {\n createGCashDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on ReCAPTCHAVerificationFailedError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_GCASH_WEBPAY_DEPOSIT_MUTATION = gql`\n mutation CreateGCashWebpayDeposit($input: CreateGCashWebpayDepositInput!) {\n createGCashWebpayDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MAYA_WEBPAY_DEPOSIT_MUTATION = gql`\n mutation CreateMayaWebpayDeposit($input: CreateMayaWebpayDepositInput!) {\n createMayaWebpayDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MAYA_DEPOSIT_MUTATION = gql`\n mutation CreateMayaDeposit($input: CreateMayaDepositInput!) {\n createMayaDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_TEST_DEPOSIT_MUTATION = gql`\n mutation CreateTestDeposit($input: CreateTestDepositInput!) {\n createTestDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MAYA_APP_DEPOSIT_MUTATION = gql`\n mutation CreateMayaAppDeposit($input: CreateMayaAppDepositInput!) {\n createMayaAppDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_QRPH_DEPOSIT_MUTATION = gql`\n mutation CreateAIOQRPHDeposit($input: CreateAIOQRPHDepositInput!) {\n createAIOQRPHDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on ReCAPTCHAVerificationFailedError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_GCASH_DEPOSIT_MUTATION = gql`\n mutation CreateAiOGCashDeposit($input: CreateAiOGCashDepositInput!) {\n createAiOGCashDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_PAY_MAYA_DEPOSIT_MUTATION = gql`\n mutation CreateAiOPayMayaDeposit($input: CreateAiOPayMayaDepositInput!) {\n createAiOPayMayaDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_GRAB_PAY_DEPOSIT_MUTATION = gql`\n mutation CreateAiOGrabPayDeposit($input: CreateAiOGrabPayDepositInput!) {\n createAiOGrabPayDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_PALAWAN_PAY_DEPOSIT_MUTATION = gql`\n mutation CreateAiOPalawanPayDeposit(\n $input: CreateAiOPalawanPayDepositInput!\n ) {\n createAiOPalawanPayDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION = gql`\n mutation CreateAIOOnlineBankDeposit(\n $input: CreateAIOOnlineBankDepositInput!\n ) {\n createAIOOnlineBankDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n }\n }\n`;\nexport const CREATE_MANUAL_BANK_DEPOSIT_MUTATION = gql`\n mutation CreateManualBankDeposit($input: CreateManualBankDepositInput!) {\n createManualBankDeposit(input: $input) {\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on FileDoesNotExistError {\n __typename\n }\n ... on FileNotReadyError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MANUAL_UPI_DEPOSIT_MUTATION = gql`\n mutation CreateManualUPIDeposit($input: CreateManualUPIDepositInput!) {\n createManualUPIDeposit(input: $input) {\n ... on DepositPromoMaximumAmountExceededError {\n __typename\n }\n ... on DepositPromoMinimumAmountNotMetError {\n __typename\n }\n ... on MaximumDepositAmountExceededError {\n __typename\n }\n ... on MinimumDepositAmountNotMetError {\n __typename\n }\n ... on MinimumFirstDepositAmountNotMetError {\n __typename\n }\n ... on PromoNotEnabledError {\n __typename\n }\n ... on WalletDoesNotExistError {\n __typename\n }\n ... on UPIReferenceNotAvailableError {\n __typename\n }\n }\n }\n`;\n\nexport const DEPOSIT_QUERY = gql`\n query Deposit($id: ObjectId!) {\n node(id: $id) {\n ... on GCashDeposit {\n id\n type\n status\n checkoutUrl\n error\n }\n ... on AiOGCashDeposit {\n id\n type\n status\n checkoutUrl\n error\n }\n ... on AiOPayMayaDeposit {\n id\n type\n status\n checkoutUrl\n error\n }\n ... on AiOGrabPayDeposit {\n id\n type\n status\n checkoutUrl\n error\n }\n ... on AiOPalawanPayDeposit {\n id\n type\n status\n checkoutUrl\n error\n }\n ... on MayaDeposit {\n id\n type\n status\n checkoutUrl\n }\n ... on MayaAppDeposit {\n id\n type\n status\n error\n }\n ... on BankDeposit {\n id\n type\n status\n error\n }\n ... on ManualDeposit {\n id\n type\n status\n error\n }\n ... on QRPHDeposit {\n id\n type\n status\n qrCode\n error\n }\n ... on OnlineBankDeposit {\n id\n type\n status\n vca\n error\n }\n ... on GCashWebpayDeposit {\n id\n type\n status\n checkoutUrl\n error\n }\n ... on MayaWebpayDeposit {\n id\n type\n status\n checkoutUrl\n error\n } \n }\n }\n`;\n\nexport const DEPOSITS_COUNT_QUERY = gql`\n query DepositsCount {\n member {\n depositsCount\n }\n }\n`;\n\nexport const TOUCH_GCASH_DEPOSIT_MUTATION = gql`\n mutation TouchGCashDeposit($input: TouchGCashDepositInput!) {\n touchGCashDeposit(input: $input)\n }\n`;\n\nexport const TOUCH_QRPH_DEPOSIT_MUTATION = gql`\n mutation TouchQRPHDeposit($input: TouchQRPHDepositInput!) {\n touchQRPHDeposit(input: $input)\n }\n`;\n\nexport const REDEEM_VOUCHER_MUTATION = gql`\n mutation RedeemVoucher($input: RedeemVoucherInput!) {\n redeemVoucher(input: $input) {\n __typename\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ BET +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const BET_RECORDS_QUERY = gql`\n query BetRecords($first: Int, $after: Cursor, $filter: BetRecordFilterInput) {\n member {\n betRecords(first: $first, after: $after, filter: $filter) {\n totalCount\n edges {\n cursor\n node {\n ... on BetRecord {\n id\n serialCode\n game {\n id\n }\n bet\n odds\n payout\n winloss\n jackpotPayout\n jackpotContribution\n status\n dateTimeCreated\n dateTimeSettled\n dateTimeLastUpdated\n metadata\n vendorRoundId\n betContent\n contestName\n externalCategory\n }\n }\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n`;\n\nexport const LATEST_BET_RECORDS_QUERY = gql`\n query LatestBetRecords {\n latestBetRecords {\n id\n member {\n name\n }\n game {\n id\n }\n bet\n payout\n validBet\n dateTimeSettled\n dateTimeCreated\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ TRANSACTIONS +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const TRANSACTION_RECORDS_QUERY = gql`\n query TransactionRecords(\n $first: Int\n $after: Cursor\n $filter: TransactionRecordFilter\n ) {\n member {\n transactionRecords(first: $first, after: $after, filter: $filter) {\n edges {\n cursor\n node {\n ... on TransactionRecord {\n id\n type\n amount\n content\n currentBalance\n currentBonusBalance\n referenceNumber\n dateTimeCreated\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ PROMO +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const PROMO_FRAGMENT = gql`\n ${FILE_FRAGMENT}\n\n fragment PromoFragment on Promo {\n id\n type\n name\n banner {\n ...FileFragment\n }\n status\n description\n maximumBonusAmount\n minimumBonusAmount\n maximumDepositAmount\n minimumDepositAmount\n activationStartDateTime\n turnoverRequirementContributionPercentagePerGameProvider\n activationEndDateTime\n dateTimeCreated\n dateTimeLastUpdated\n }\n`;\n\nexport const PROMOS_QUERY = gql`\n ${PROMO_FRAGMENT}\n\n query Promos {\n promos {\n ...PromoFragment\n }\n }\n`;\n\nexport const AVAILABLE_PROMOS_QUERY = gql`\n ${PROMO_FRAGMENT}\n\n query AvailablePromos($filter: PromoFilterInput) {\n availablePromos(filter: $filter) {\n ...PromoFragment\n }\n }\n`;\n\nexport const SPOT_BONUS_FRAGMENT = gql`\n fragment SpotBonusFragment on SpotBonusPromo {\n id\n name\n type\n status\n daysToClear\n zeroOutThreshold\n turnoverRequirementMultiplier\n turnoverRequirementType\n minimumTicketOddFactorPerSportsGameProvider\n turnoverRequirementContributionPercentagePerGameProvider\n bonusAmount\n enabledGameProviders\n activationStartDateTime\n activationEndDateTime\n banner {\n id\n url\n }\n description\n dateTimeCreated\n dateTimeLastUpdated\n dateTimeClosed\n totalBonus\n totalDeposit\n totalBonusBalance\n totalBet\n totalBonusCashedOut\n bonusesCount\n closedBonusesCount\n closedBonusesCountPercentage\n activeBonusesCount\n clearedBonusesCount\n zeroedOutBonusesCount\n cancelledBonusesCount\n expiredBonusesCount\n code\n maximumBonusesCountLimit\n }\n`;\n\nexport const PROMO_BY_CODE_QUERY = gql`\n ${SPOT_BONUS_FRAGMENT}\n\n query PromoByCode($code: String!) {\n promoByCode(code: $code) {\n ...SpotBonusFragment\n }\n }\n`;\n\nexport const CASHBACK_FRAGMENT = gql`\n ${FILE_FRAGMENT}\n\n fragment CashbackFragment on Cashback {\n id\n name\n banner {\n ...FileFragment\n }\n minimumCashback\n maximumMonthlyCashback\n status\n description\n activationStartDateTime\n activationEndDateTime\n turnoverContributionPercentagePerGameProvider\n dateTimeCreated\n dateTimeLastUpdated\n }\n`;\n\nexport const CASHBACKS_QUERY = gql`\n ${CASHBACK_FRAGMENT}\n\n query Cashbacks {\n cashbacks {\n ...CashbackFragment\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ BONUS +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const BONUS_QUERY = gql`\n ${PROMO_FRAGMENT}\n\n query Bonus {\n bonus {\n id\n promo {\n ...PromoFragment\n }\n deposit {\n type\n amount\n netAmount\n fee\n status\n reference\n dateTimeCreated\n dateTimeLastUpdated\n }\n amount\n balance\n turnoverRequirement\n turnoverRequirementContributionPercentagePerGameProvider\n currentTurnoverRequirementContribution\n currentTurnoverRequirementContributionPercentage\n expiration\n dateTimeCreated\n dateTimeLastUpdated\n }\n }\n`;\n\nexport const BONUSES_QUERY = gql`\n ${PROMO_FRAGMENT}\n\n query Bonuses {\n bonuses {\n id\n promo {\n ...PromoFragment\n }\n deposit {\n type\n amount\n netAmount\n fee\n status\n reference\n dateTimeCreated\n dateTimeLastUpdated\n }\n amount\n balance\n turnoverRequirement\n currentTurnoverRequirementContribution\n currentTurnoverRequirementContributionPercentage\n turnoverRequirementContributionPercentagePerGameProvider\n enabledGameProviders\n expiration\n dateTimeCreated\n dateTimeLastUpdated\n }\n }\n`;\n\nexport const CASHBACK_BONUSES_QUERY = gql`\n ${CASHBACK_FRAGMENT}\n\n query CashbackBonuses {\n cashbackBonuses {\n id\n balance\n total\n cashback {\n ...CashbackFragment\n }\n dateTimeCreated\n dateTimeLastUpdated\n }\n }\n`;\n\nexport const CLAIM_CASHBACK_BONUS_MUTATION = gql`\n mutation ClaimCashbackBonus($input: ClaimCashbackBonusInput!) {\n claimCashbackBonus(input: $input) {\n ... on CashbackBonusDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ MEMBER +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const MEMBER_QUERY = gql`\n query Member {\n member {\n dateTimeLastActive\n }\n }\n`;\n\n/**\n * _aka_ `Query.self`\n */\nexport const MEMBER_ACCOUNT_QUERY = gql`\n query MemberAccount {\n memberAccount: self {\n ... on MemberAccount {\n id\n name\n status\n realName\n emailAddress\n mobileNumber\n birthDay\n verified\n verificationStatus\n nickName\n validId\n mobileNumberVerified\n mobileNumberVerificationRequired\n currentMonthlyAchievementPoints\n achievementPointsLevelUpProgressPercentage\n currentUniqueGamesCount\n currentNewGamesCount\n currentBetsCount\n currentActiveDaysCount\n dateTimeLastLeveledUp\n currentMonthlyTurnover\n turnoverLevelUpProgressPercentage\n transactionPassword\n secretAnswerSubmitted\n dateTimeCreated\n dateTimeLastUpdated\n domain\n }\n }\n }\n`;\n\nexport const MEMBER_VERIFICATION_QUERY = gql`\n ${FILE_FRAGMENT}\n\n query MemberVerification {\n memberAccount: self {\n ... on MemberAccount {\n verification {\n id\n status\n address\n permanentAddress\n sourceOfIncome\n natureOfWork\n nationality\n placeOfBirth\n idFrontImage {\n ...FileFragment\n }\n selfieImage {\n ...FileFragment\n }\n }\n }\n }\n }\n`;\n\nexport const REGISTER_MEMBER_ACCOUNT_MUTATION = gql`\n mutation RegisterMemberAccount(\n $input: RegisterMemberAccountInput!\n $referralCode: String\n $verificationCode: String\n $reCAPTCHAResponse: String\n ) {\n registerMemberAccount(\n input: $input\n referralCode: $referralCode\n verificationCode: $verificationCode\n reCAPTCHAResponse: $reCAPTCHAResponse\n ) {\n ... on AccountNameNotAvailableError {\n __typename\n }\n ... on InvalidPlatformError {\n __typename\n }\n ... on InvalidPlatformError {\n __typename\n }\n ... on InvalidReCAPTCHAResponseError {\n __typename\n }\n ... on InvalidSMSVerificationCodeError {\n __typename\n }\n ... on MinimumAgeRequirementError {\n __typename\n }\n ... on MobileNumberNotAvailableError {\n __typename\n }\n ... on ReCAPTCHAVerificationFailedError {\n __typename\n }\n }\n }\n`;\n\nexport const REGISTER_MEMBER_ACCOUNT_BY_NAME_MUTATION = gql`\n mutation RegisterMemberAccountByName(\n $input: RegisterMemberAccountByNameInput!\n $reCAPTCHAResponse: String!\n ) {\n registerMemberAccountByName(\n input: $input\n reCAPTCHAResponse: $reCAPTCHAResponse\n ) {\n ... on AccountNameNotAvailableError {\n __typename\n }\n ... on InvalidPlatformError {\n __typename\n }\n ... on InvalidReCAPTCHAResponseError {\n __typename\n }\n }\n }\n`;\nexport const REGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION = gql`\n mutation RegisterMemberAccountViaMobile(\n $input: RegisterMemberAccountViaMobileInput!\n $referralCode: String\n $verificationCode: String\n $reCAPTCHAResponse: String\n ) {\n registerMemberAccountViaMobile(\n input: $input\n referralCode: $referralCode\n verificationCode: $verificationCode\n reCAPTCHAResponse: $reCAPTCHAResponse\n ) {\n ... on InvalidPlatformError {\n __typename\n }\n ... on InvalidReCAPTCHAResponseError {\n __typename\n }\n ... on InvalidSMSVerificationCodeError {\n __typename\n }\n ... on MobileNumberNotAvailableError {\n __typename\n }\n ... on ReCAPTCHAVerificationFailedError {\n __typename\n }\n }\n }\n`;\n\nexport const REGISTER_MEMBER_ACCOUNT_MUTATION__NEXT = gql`\n mutation RegisterMemberAccount(\n $input: RegisterMemberAccountInput_next!\n $reCAPTCHAResponse: String\n ) {\n registerMemberAccount: registerMemberAccount_next(\n input: $input\n reCAPTCHAResponse: $reCAPTCHAResponse\n ) {\n ... on AccountNameNotAvailableError {\n __typename\n }\n ... on InvalidPlatformError {\n __typename\n }\n ... on InvalidReCAPTCHAResponseError {\n __typename\n }\n ... on InvalidSMSVerificationCodeError {\n __typename\n }\n ... on MinimumAgeRequirementError {\n __typename\n }\n ... on MobileNumberNotAvailableError {\n __typename\n }\n ... on ReCAPTCHAVerificationFailedError {\n __typename\n }\n }\n }\n`;\n\nexport const REGISTER_MAYA_MEMBER_ACCOUNT_MUTATION = gql`\n mutation RegisterMayaMemberAccount($input: RegisterMayaMemberAccountInput!) {\n registerMayaMemberAccount(input: $input) {\n ... on AccountNameNotAvailableError {\n __typename\n }\n }\n }\n`;\n\nexport const UPDATE_MEMBER_ACCOUNT_MUTATION = gql`\n mutation UpdateMemberAccount($input: UpdateMemberAccountInput!) {\n updateMemberAccount(input: $input) {\n ... on AccountNameNotAvailableError {\n __typename\n }\n ... on EmailAddressNotAvailableError {\n __typename\n }\n ... on InvalidTransactionPasswordError {\n __typename\n }\n ... on MobileNumberNotAvailableError {\n __typename\n }\n ... on NickNameNotAvailableError {\n __typename\n }\n ... on RealNameAlreadySetError {\n __typename\n }\n ... on ValidIdAlreadySetError {\n __typename\n }\n }\n }\n`;\n\nexport const RESET_PASSWORD_MUTATION = gql`\n mutation ResetPassword(\n $input: ResetPasswordInput!\n $verificationCode: String\n ) {\n resetPassword(input: $input, verificationCode: $verificationCode) {\n ... on AccountNotFoundError {\n __typename\n }\n ... on InvalidVerificationCodeError {\n __typename\n }\n }\n }\n`;\n\nexport const DELETE_MEMBER_ACCOUNT_MUTATION = gql`\n mutation DeleteMemberAccount($input: DeleteMemberAccountInput!) {\n deleteMemberAccount(input: $input)\n }\n`;\n\nexport const VERIFY_MOBILE_NUMBER_MUTATION = gql`\n mutation VerifyMobileNumber($input: VerifyMobileNumberInput!) {\n verifyMobileNumber(input: $input) {\n ... on InvalidSMSVerificationCodeError {\n __typename\n }\n ... on MobileNumberAlreadyVerifiedError {\n __typename\n }\n }\n }\n`;\n\nexport const CREATE_MEMBER_VERIFICATION_MUTATION = gql`\n mutation CreateMemberVerification($input: CreateMemberVerificationInput!) {\n createMemberVerification(input: $input) {\n ... on FileDoesNotExistError {\n __typename\n }\n ... on FileNotReadyError {\n __typename\n }\n ... on MemberVerificationAlreadyExistsError {\n __typename\n }\n }\n }\n`;\nexport const CREATE_MEMBER_VERIFICATION_NEXT_MUTATION = gql`\n mutation CreateMemberVerificationInput_next(\n $input: CreateMemberVerificationInput_next!\n ) {\n createMemberVerification_next(input: $input) {\n ... on FileDoesNotExistError {\n __typename\n }\n ... on FileNotReadyError {\n __typename\n }\n ... on MemberVerificationAlreadyExistsError {\n __typename\n }\n }\n }\n`;\n\nexport const UPDATE_MEMBER_VERIFICATION_MUTATION = gql`\n mutation UpdateMemberVerification($input: UpdateMemberVerificationInput!) {\n updateMemberVerification(input: $input) {\n ... on FileDoesNotExistError {\n __typename\n }\n ... on FileNotReadyError {\n __typename\n }\n ... on MemberVerificationAlreadyApprovedError {\n __typename\n }\n ... on MemberVerificationDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const UPDATE_MEMBER_VERIFICATION_NEXT_MUTATION = gql`\n mutation UpdateMemberVerification_next(\n $input: UpdateMemberVerificationInput!\n ) {\n updateMemberVerification_next(input: $input) {\n ... on FileDoesNotExistError {\n __typename\n }\n ... on FileNotReadyError {\n __typename\n }\n ... on MemberVerificationAlreadyApprovedError {\n __typename\n }\n ... on MemberVerificationDoesNotExistError {\n __typename\n }\n }\n }\n`;\n\nexport const SUBMIT_MEMBER_VERIFICATION_MUTATION = gql`\n mutation SubmitMemberVerification($input: ApproveMemberVerificationInput!) {\n submitMemberVerification(input: $input) {\n ... on VerificationDataIncompleteError {\n __typename\n }\n ... on MemberVerificationDoesNotExistError {\n __typename\n }\n ... on MemberVerificationAlreadyApprovedError {\n __typename\n }\n }\n }\n`;\n\nexport const PROFILE_COMPLETION_QUERY = gql`\n query ProfileCompletion {\n profileCompletion {\n completionPercentage\n personalInformation\n accountVerification\n mobileNumberVerification\n transactionPassword\n accountPassword\n }\n }\n`;\n\n/** @deprecated */\nexport const SEND_VERIFICATION_CODE_MUTATION = gql`\n mutation SendVerificationCode($input: SendVerificationCodeInput!) {\n sendVerificationCode(input: $input) {\n ... on InvalidPlatformError {\n __typename\n }\n ... on NotReadyToSendVerficationCodeError {\n __typename\n }\n }\n }\n`;\n\nexport const REGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION = gql`\n mutation RegisterMemberAccountByMobileNumber(\n $input: RegisterMemberAccountByMobileNumberInput!\n $mobileNumberVerificationCode: String!\n ) {\n registerMemberAccountByMobileNumber(\n input: $input\n mobileNumberVerificationCode: $mobileNumberVerificationCode\n ) {\n ... on MobileNumberNotAvailableError {\n __typename\n }\n ... on InvalidSMSVerificationCodeError {\n __typename\n }\n ... on InvalidPlatformError {\n __typename\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ PLATFORM +*/\n/*+----------------------------------------+*/\n/**/\n\n/** @deprecated */\nexport const PLATFORM_QUERY = gql`\n fragment DepositGatewaySettingsCoreData on DepositGatewaySettings {\n minimumAmount\n maximumAmount\n fixedFee\n percentageFee\n bankAccountName\n bankAccountNumber\n bankIFSCCode\n upiId\n webEnabled\n mobileWebEnabled\n androidEnabled\n iosEnabled\n }\n\n fragment WithdrawalGatewaySettingsCoreData on WithdrawalGatewaySettings {\n minimumAmount\n maximumAmount\n fixedFee\n percentageFee\n webEnabled\n mobileWebEnabled\n androidEnabled\n iosEnabled\n }\n\n query Platform {\n timezone\n currency\n minimumFirstDepositAmount\n restrictWithdrawalsToVerifiedMembers\n bankDepositGatewaySettings: depositGatewaySettings(gateway: BANK) {\n ...DepositGatewaySettingsCoreData\n }\n gcashDepositGatewaySettings: depositGatewaySettings(gateway: GCASH) {\n ...DepositGatewaySettingsCoreData\n }\n gcashWebpayDepositGatewaySettings: depositGatewaySettings(gateway: GCASH_WEBPAY) {\n ...DepositGatewaySettingsCoreData\n }\n aioGcashDepositGatewaySettings: depositGatewaySettings(gateway: AIO_GCASH) {\n ...DepositGatewaySettingsCoreData\n }\n aioPayMayaDepositGatewaySettings: depositGatewaySettings(\n gateway: AIO_PAY_MAYA\n ) {\n ...DepositGatewaySettingsCoreData\n }\n aioGrabPayDepositGatewaySettings: depositGatewaySettings(\n gateway: AIO_GRAB_PAY\n ) {\n ...DepositGatewaySettingsCoreData\n }\n aioPalawanPayDepositGatewaySettings: depositGatewaySettings(\n gateway: AIO_PALAWAN_PAY\n ) {\n ...DepositGatewaySettingsCoreData\n }\n mayaDepositGatewaySettings: depositGatewaySettings(gateway: MAYA) {\n ...DepositGatewaySettingsCoreData\n }\n mayaAppDepositGatewaySettings: depositGatewaySettings(gateway: MAYA_APP) {\n ...DepositGatewaySettingsCoreData\n }\n onlineBankDepositGatewaySettings: depositGatewaySettings(\n gateway: ONLINE_BANK\n ) {\n ...DepositGatewaySettingsCoreData\n }\n qrphDepositGatewaySettings: depositGatewaySettings(gateway: QR_PH) {\n ...DepositGatewaySettingsCoreData\n }\n manualBankDepositGatewaySettings: depositGatewaySettings(\n gateway: MANUAL_BANK\n ) {\n ...DepositGatewaySettingsCoreData\n }\n manualUPIDepositGatewaySettings: depositGatewaySettings(\n gateway: MANUAL_UPI\n ) {\n ...DepositGatewaySettingsCoreData\n }\n bankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: BANK) {\n ...WithdrawalGatewaySettingsCoreData\n }\n gcashWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: GCASH) {\n ...WithdrawalGatewaySettingsCoreData\n }\n gcashStandardCashInWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: GCASH_STANDARD_CASH_IN\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n mayaWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA) {\n ...WithdrawalGatewaySettingsCoreData\n }\n mayaAppWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: MAYA_APP\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n instapayWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: INSTAPAY\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n manualBankWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: MANUAL_BANK\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n manualUPIWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: MANUAL_UPI\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n pointsClubSettings {\n multiplier\n }\n }\n`;\n\nexport const PLATFORM_QUERY__NEXT = gql`\n query Platform {\n timezone\n currency\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ MEMBER LEVEL SETTINGS +*/\n/*+----------------------------------------+*/\n\nexport const MEMBER_LEVEL_SETTINGS_QUERY = gql`\n query MemberLevelSettings {\n memberLevelSettings__1: memberLevelSettings(level: 1) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__2: memberLevelSettings(level: 2) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__3: memberLevelSettings(level: 3) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__4: memberLevelSettings(level: 4) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__5: memberLevelSettings(level: 5) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__6: memberLevelSettings(level: 6) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__7: memberLevelSettings(level: 7) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__8: memberLevelSettings(level: 8) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__9: memberLevelSettings(level: 9) {\n ...MemberLevelSettingsCoreData\n }\n memberLevelSettings__10: memberLevelSettings(level: 10) {\n ...MemberLevelSettingsCoreData\n }\n }\n\n fragment MemberLevelSettingsCoreData on MemberLevelSettings {\n enabled\n achievementPointsRequirement\n turnoverRequirement\n bonusTurnoverRequirement\n name\n bonusAmount\n }\n`;\n\nexport const ACHIEVEMENT_SETTINGS_QUERY = gql`\n query AchievementSettings {\n diverseDebut: achievementSettings(type: DIVERSE_DEBUT) {\n ...AchievementSettingsCoreData\n }\n varietyVirtuoso: achievementSettings(type: VARIETY_VIRTUOSO) {\n ...AchievementSettingsCoreData\n }\n masterOfDiversity: achievementSettings(type: MASTER_OF_DIVERSITY) {\n ...AchievementSettingsCoreData\n }\n curiousNewcomer: achievementSettings(type: CURIOUS_NEWCOMER) {\n ...AchievementSettingsCoreData\n }\n trailblazer: achievementSettings(type: TRAILBLAZER) {\n ...AchievementSettingsCoreData\n }\n innovationIcon: achievementSettings(type: INNOVATION_ICON) {\n ...AchievementSettingsCoreData\n }\n rapidRoller: achievementSettings(type: RAPID_ROLLER) {\n ...AchievementSettingsCoreData\n }\n whirlwindWagerer: achievementSettings(type: WHIRLWIND_WAGERER) {\n ...AchievementSettingsCoreData\n }\n bettingBonanza: achievementSettings(type: BETTING_BONANZA) {\n ...AchievementSettingsCoreData\n }\n steadyStrategist: achievementSettings(type: STEADY_STRATEGIST) {\n ...AchievementSettingsCoreData\n }\n consistentContender: achievementSettings(type: CONSISTENT_CONTENDER) {\n ...AchievementSettingsCoreData\n }\n legendaryLoyalist: achievementSettings(type: LEGENDARY_LOYALIST) {\n ...AchievementSettingsCoreData\n }\n }\n\n fragment AchievementSettingsCoreData on AchievementSettings {\n enabled\n points\n uniqueGamesCount\n newGamesCount\n betsCount\n activeDaysCount\n }\n`;\nexport const MEMBER_ACHIEVEMENTS_QUERY = gql`\n query GetMemberAchievements {\n member {\n achievements {\n type\n count\n }\n level\n }\n }\n`;\n\nexport const PAYMENT_SETTINGS_QUERY = gql`\n fragment DepositGatewaySettingsCoreData on DepositGatewaySettings {\n minimumAmount\n maximumAmount\n webEnabled\n mobileWebEnabled\n androidEnabled\n iosEnabled\n bankAccountName\n bankAccountNumber\n bankIFSCCode\n upiId\n upiQRCode {\n id\n url\n }\n }\n\n fragment WithdrawalGatewaySettingsCoreData on WithdrawalGatewaySettings {\n minimumAmount\n maximumAmount\n webEnabled\n mobileWebEnabled\n androidEnabled\n iosEnabled\n }\n\n query PaymentSettings {\n minimumFirstDepositAmount\n restrictWithdrawalsToVerifiedMembers\n bankDepositGatewaySettings: depositGatewaySettings(gateway: BANK) {\n ...DepositGatewaySettingsCoreData\n }\n gcashDepositGatewaySettings: depositGatewaySettings(gateway: GCASH) {\n ...DepositGatewaySettingsCoreData\n }\n gcashWebpayDepositGatewaySettings: depositGatewaySettings(gateway: GCASH_WEBPAY) {\n ...DepositGatewaySettingsCoreData\n }\n aioGcashDepositGatewaySettings: depositGatewaySettings(gateway: AIO_GCASH) {\n ...DepositGatewaySettingsCoreData\n }\n aioPayMayaDepositGatewaySettings: depositGatewaySettings(\n gateway: AIO_PAY_MAYA\n ) {\n ...DepositGatewaySettingsCoreData\n }\n aioGrabPayDepositGatewaySettings: depositGatewaySettings(\n gateway: AIO_GRAB_PAY\n ) {\n ...DepositGatewaySettingsCoreData\n }\n aioPalawanPayDepositGatewaySettings: depositGatewaySettings(\n gateway: AIO_PALAWAN_PAY\n ) {\n ...DepositGatewaySettingsCoreData\n }\n mayaDepositGatewaySettings: depositGatewaySettings(gateway: MAYA) {\n ...DepositGatewaySettingsCoreData\n }\n mayaAppDepositGatewaySettings: depositGatewaySettings(gateway: MAYA_APP) {\n ...DepositGatewaySettingsCoreData\n }\n mayaWebpayDepositGatewaySettings: depositGatewaySettings(gateway: MAYA_WEBPAY) {\n ...DepositGatewaySettingsCoreData\n }\n onlineBankDepositGatewaySettings: depositGatewaySettings(\n gateway: ONLINE_BANK\n ) {\n ...DepositGatewaySettingsCoreData\n }\n qrphDepositGatewaySettings: depositGatewaySettings(gateway: QR_PH) {\n ...DepositGatewaySettingsCoreData\n }\n manualBankDepositGatewaySettings: depositGatewaySettings(\n gateway: MANUAL_BANK\n ) {\n ...DepositGatewaySettingsCoreData\n }\n manualUPIDepositGatewaySettings: depositGatewaySettings(\n gateway: MANUAL_UPI\n ) {\n ...DepositGatewaySettingsCoreData\n }\n bankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: BANK) {\n ...WithdrawalGatewaySettingsCoreData\n }\n gcashWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: GCASH) {\n ...WithdrawalGatewaySettingsCoreData\n }\n gcashStandardCashInWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: GCASH_STANDARD_CASH_IN) {\n ...WithdrawalGatewaySettingsCoreData\n }\n mayaWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA) {\n ...WithdrawalGatewaySettingsCoreData\n }\n mayaAppWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: MAYA_APP\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n instapayWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: INSTAPAY\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n manualBankWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: MANUAL_BANK\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n manualUPIWithdrawalGatewaySettings: withdrawalGatewaySettings(\n gateway: MANUAL_UPI\n ) {\n ...WithdrawalGatewaySettingsCoreData\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ SESSION +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const MAYA_SESSION_QUERY = gql`\n query MayaSession($id: ObjectId!) {\n mayaSession(id: $id) {\n id\n member\n dateTimeCreated\n }\n }\n`;\n\nexport const VALIDATE_MAYA_SESSION_MUTATION = gql`\n mutation ValidateMayaSession {\n validateMayaSession: validMayaSession\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ ACTIVITY +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const ACTIVITY_RECORDS_QUERY = gql`\n query ActivityRecords(\n $after: Cursor\n $first: Int\n $filter: ActivityRecordsFilterInput\n ) {\n member {\n activityRecords(after: $after, first: $first, filter: $filter) {\n edges {\n cursor\n node {\n ... on MemberActivity {\n id\n type\n domain\n amount\n details\n dateTimeCreated\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ REFERRAL +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const REFERRAL_CODE_QUERY = gql`\n query ReferralCode {\n referralCode\n }\n`;\n\nexport const UPDATE_REFERRAL_CODE_MUTATION = gql`\n mutation UpdateReferralCode($input: UpdateReferralCodeInput!) {\n updateReferralCode(input: $input) {\n ... on ReferralCodeNotAvailableError {\n __typename\n }\n }\n }\n`;\n\nexport const REFERRAL_FRAGMENT = gql`\n fragment ReferralFragment on Referral {\n id\n upline {\n id\n name\n realName\n }\n downline {\n id\n name\n realName\n }\n level\n turnover\n commission\n dateTimeCreated\n }\n`;\n\nexport const REFERRALS_QUERY = gql`\n query Referrals($first: Int, $after: Cursor, $filter: ReferralFilterInput) {\n member {\n referrals(first: $first, after: $after, filter: $filter) {\n edges {\n cursor\n node {\n ... on Referral {\n ...ReferralFragment\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n\n ${REFERRAL_FRAGMENT}\n`;\n\nexport const UPLINES_BY_NAME_QUERY = gql`\n query UplinesByName($search: String!, $first: Int) {\n uplinesByName(search: $search, first: $first) {\n ...ReferralFragment\n }\n }\n\n ${REFERRAL_FRAGMENT}\n`;\n\nexport const DOWNLINES_BY_NAME_QUERY = gql`\n query DownlinesByName($search: String!, $first: Int) {\n downlinesByName(search: $search, first: $first) {\n ...ReferralFragment\n }\n }\n\n ${REFERRAL_FRAGMENT}\n`;\n\nexport const REFERRAL_COMMISSION_QUERY = gql`\n query ReferralCommission {\n member {\n referralCommission {\n id\n commission\n dateTimeCreated\n dateTimeLastUpdated\n level1Commission\n level1ReferralsCount\n level2Commission\n level2ReferralsCount\n level3Commission\n level3ReferralsCount\n referralCode\n referralsCount\n }\n }\n }\n`;\n\nexport const POINTS_CLUB_SETTINGS_QUERY = gql`\n query PointsClubSettings {\n pointsClubSettings {\n multiplier\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ MESSAGES +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const MESSAGES_QUERY = gql`\n query Messages($first: Int, $after: Cursor, $filter: MessageFilterInput) {\n messages(first: $first, after: $after, filter: $filter) {\n edges {\n cursor\n node {\n ... on Message {\n id\n icon\n image\n title\n content\n popup\n force\n actions {\n name\n url\n }\n markedAsRead\n dateTimeCreated\n type\n metadata {\n ... on TournamentPayoutMessageMetadata {\n tournament {\n id\n name\n }\n payout {\n id\n amount\n }\n }\n }\n }\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n`;\n\nexport const UNREAD_MESSAGES_COUNT_QUERY = gql`\n query UnreadMessagesCount($filter: MessageFilterInput) {\n messages(filter: $filter) {\n totalCount\n }\n }\n`;\n\nexport const MARK_MESSAGE_AS_READ_MUTATION = gql`\n mutation MarkMessageAsRead($id: ObjectId!) {\n markMessageAsRead(id: $id)\n }\n`;\n\n/**\n * @deprecated\n */\nexport const MARK_ALL_MESSAGE_AS_READ_MUTATION = gql`\n mutation MarkAllMessageAsRead {\n markAllMessageAsRead\n }\n`;\n\nexport const MARK_ALL_MESSAGES_AS_READ_MUTATION = gql`\n mutation MarkAllMessagesAsRead {\n markAllMessagesAsRead\n }\n`;\n\nexport const CLAIM_REWARD_MUTATION = gql`\n mutation ClaimReward($id: ObjectId!) {\n claimReward(id: $id) {\n ... on RewardAlreadyClaimedError {\n __typename\n }\n ... on RewardAlreadyExpiredError {\n __typename\n }\n }\n }\n`;\n\nexport const CLAIM_SPOT_BONUS = gql`\n mutation ClaimSpotBonus($code: String!) {\n claimSpotBonus(code: $code) {\n ... on InvalidPromoCodeError {\n __typename\n }\n ... on MaximumBonusesCountLimitExceededError {\n __typename\n }\n ... on SpotBonusAlreadyClaimedError {\n __typename\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ ONBOARDING +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const ONBOARDING_STATUS_QUERY = gql`\n query OnboardingStatus {\n onboardingStatus\n }\n`;\n\nexport const COMPLETE_ONBOARDING_MUTATION = gql`\n mutation CompleteOnboarding($input: CompleteOnboardingInput!) {\n completeOnboarding(input: $input)\n }\n`;\n\nexport const SKIP_ONBOARDING_MUTATION = gql`\n mutation SkipOnboarding {\n skipOnboarding\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ QUEST +*/\n/*+----------------------------------------+*/\n/**/\nexport const QUEST_PROGRAM_FRAGMENT = gql`\n fragment QuestProgramFragment on QuestProgram {\n status\n type\n name\n description\n }\n`;\n\nexport const DAILY_CHECKIN_FRAGMENT = gql`\n ${QUEST_PROGRAM_FRAGMENT}\n fragment DailyCheckinQuestFragment on DailyCheckInQuest {\n id\n name\n description\n type\n program {\n ...QuestProgramFragment\n }\n\n status\n progressPercentage\n turnover\n endDateTime\n dateTimeCreated\n lastCheckInDate\n startDateTime\n checkInStreak\n\n thirdDayBonusAmount\n seventhDayBonusAmount\n sixthDayBonusAmount\n dateTimeCompleted\n }\n`;\nexport const WAGERING_FRAGMENT = gql`\n fragment WageringQuestFragment on WageringQuest {\n bonus\n id\n name\n type\n description\n program {\n ...QuestProgramFragment\n ...on WageringQuestProgram {\n stages {\n targetTurnover\n bonusTurnoverRequirementMultiplier\n bonusAmount\n }\n }\n }\n status\n progressPercentage\n turnover\n targetTurnover\n endDateTime\n dateTimeCreated\n dateTimeCompleted\n stage\n turnoverRequirementContributionPercentagePerGameProvider\n }\n`;\n\nexport const ONBOARDING_QUEST_FRAGMENT = gql`\n fragment OnboardingQuestFragment on OnboardingQuest {\n id\n name\n description\n program {\n ...QuestProgramFragment\n }\n\n status\n type\n progressPercentage\n bonus\n endDateTime\n dateTimeCreated\n firstDepositCompleted\n accountVerificationCompleted\n dateTimeCompleted\n }\n`;\n\nexport const JOURNEY_QUEST_FRAGMENT = gql`\n fragment JourneyQuestFragment on JourneyQuest {\n id\n name\n description\n program {\n ...QuestProgramFragment\n }\n status\n type\n progressPercentage\n bonus\n endDateTime\n dateTimeCreated\n milestones {\n id\n type\n name\n bonusAmount\n cleared\n description\n link\n }\n dateTimeCompleted\n }\n`;\n\nexport const AVAILABLE_QUESTS_QUERY = gql`\n ${WAGERING_FRAGMENT}\n ${DAILY_CHECKIN_FRAGMENT}\n ${ONBOARDING_QUEST_FRAGMENT}\n ${JOURNEY_QUEST_FRAGMENT}\n query AvailableQuests {\n availableQuests {\n ... on Quest {\n ... on WageringQuest {\n ...WageringQuestFragment\n }\n ... on DailyCheckInQuest {\n ...DailyCheckinQuestFragment\n }\n ... on OnboardingQuest {\n ...OnboardingQuestFragment\n }\n ... on JourneyQuest {\n ...JourneyQuestFragment\n }\n }\n }\n }\n`;\n\nexport const CHECK_IN_DAILY_QUEST_MUTATION = gql`\n mutation checkInDailyCheckInQuest($input: CheckInDailyCheckInQuestInput!) {\n checkInDailyCheckInQuest(input: $input)\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ TOP WIN +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const TOP_WINS_QUERY = gql`\n query TopWins($first: Int) {\n topWins(first: $first) {\n id\n game {\n id\n }\n member {\n id\n name\n }\n multiplier\n payout\n }\n }\n`;\nexport const TOP_WINS_NEXT_QUERY = gql`\n query TopWinsNext {\n _topWins {\n id\n game {\n id\n }\n member {\n id\n name\n }\n multiplier\n payout\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ Jackpots +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const JACKPOTS_QUERY = gql`\n query Jackpots(\n $first: Int\n $after: Cursor\n $sort: JackpotSortInput\n $filter: JackpotFilterInput\n ) {\n jackpots(first: $first, after: $after, sort: $sort, filter: $filter) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n ... on Jackpot {\n id\n name\n description\n pool\n status\n minimumJackpotPoolDrawingLimit\n maximumJackpotPoolLimit\n drawing\n minimumMultiplier\n minimumBet\n jackpotPayoutPercentage\n jackpotTurnoverContributionPercentagePerGameProvider\n totalPayout\n }\n }\n }\n }\n }\n`;\n\nexport const JACKPOT_PAYOUTS_QUERY = gql`\n query JackpotPayouts(\n $first: Int\n $after: Cursor\n $sort: JackpotPayoutSortInput\n $filter: JackpotPayoutFilterInput\n ) {\n jackpotPayouts(first: $first, after: $after, sort: $sort, filter: $filter) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n ... on JackpotPayout {\n id\n member {\n id\n name\n }\n serialCode\n jackpot {\n id\n name\n }\n multiplier\n bet\n amount\n dateTimeCreated\n game {\n provider\n }\n }\n }\n }\n }\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ FMC Device +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const REGISTER_FCM_DEVICE = gql`\n mutation RegisterFCMDevice($input: RegisterFCMDeviceInput!) {\n registerFCMDevice(input: $input)\n }\n`;\n\nexport const UNREGISTER_FCM_DEVICE = gql`\n mutation UnregisterFCMDevice($input: UnregisterFCMDeviceInput!) {\n unregisterFCMDevice(input: $input)\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ FAVORITE GAME +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const MARK_GAME_AS_FAVORITE = gql`\n mutation MarkGameAsFavorite($input: MarkGameAsFavoriteInput!) {\n markGameAsFavorite(input: $input)\n }\n`;\nexport const UNMARK_GAME_AS_FAVORITE = gql`\n mutation UnmarkGameAsFavorite($input: UnmarkGameAsFavoriteInput!) {\n unmarkGameAsFavorite(input: $input)\n }\n`;\n\nexport const FAVORITE_GAMES_QUERY = gql`\n query FavoriteGames {\n favoriteGames {\n id\n }\n }\n`;\n\nexport const WALLET_GAMES_QUERY = gql`\n query Games($first: Int $after: Cursor, $filter: GameFilterInput) {\n games(first: $first, after: $after, filter: $filter) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges{\n node{\n ... on Game{\n id\n name\n type\n provider\n }\n }\n }\n }\n }\n`;\nexport const GOOGLE_CLIEND_ID_QUERY = gql`\n query GoogleClientId {\n googleClientId\n }\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ TOURNAMENTS +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const TOURNAMENTS_QUERY = gql`\n query Tournaments(\n $first: Int\n $after: Cursor\n $filter: TournamentFilterInput\n $currentFirst: Int\n $currentAfter: Cursor\n $previousFirst: Int\n $previousAfter: Cursor\n ) {\n tournaments(first: $first, after: $after, filter: $filter) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n ... on MultiplierTournament {\n id\n type\n name\n winnersCount\n status\n description\n activationStartDateTime\n activationEndDateTime\n topPayouts {\n id\n multiplier\n amount\n member {\n id\n name\n }\n }\n currentLeaderboard(first: $currentFirst, after: $currentAfter) {\n totalCount\n edges {\n node {\n ... on TournamentLeaderboard {\n id\n username\n multiplier\n dateTimeCreated\n prize\n game {\n id\n provider\n name\n external\n type\n }\n }\n }\n }\n }\n previousLeaderboard(first: $previousFirst, after: $previousAfter) {\n totalCount\n edges {\n node {\n ... on TournamentLeaderboard {\n id\n username\n multiplier\n dateTimeCreated\n prize\n game {\n id\n provider\n name\n external\n type\n }\n \n }\n }\n }\n }\n enabledGameProviders\n frequency\n mode\n mobileBanner {\n id\n url\n mimeType\n }\n webBanner {\n id\n url\n mimeType\n }\n rewardSettings\n }\n }\n }\n }\n }\n`;\n\nexport const MEMBER_CABINET_SITE_MACHINE_QUERY = gql`\n query MemberCabinetSiteMachine {\n memberCabinetSiteMachine {\n id\n name\n fingerprint\n status\n dateTimeCreated\n }\n }\n`;\n\nexport const CABINET_WITHDRAWAL_QUERY = gql`\n query CabinetWithdrawal($id: ObjectId!) {\n node(id: $id) {\n id\n ... on CabinetWithdrawal {\n account\n type\n reference\n amount\n status\n dateTimeCreated\n }\n }\n }\n`;\n","import type { OperationError } from '../types/index.js';\nimport type {\n\tAuthenticateError,\n\tClaimCashbackBonusError,\n\tClaimRewardError,\n\tClaimSpotBonusError,\n\tCreateDepositError,\n\tCreateGameSessionError,\n\tCreateMemberVerificationError,\n\tCreateSessionError,\n\tCreateTestDepositError,\n\tCreateWithdrawalError,\n\tEndGameSessionError,\n\tRedeemPointsToCashError,\n\tRefreshSessionError,\n\tRegisterMayaMemberAccountError,\n\tRegisterMemberAccountError,\n\tResetPasswordError,\n\tSendVerificationCodeError,\n\tSendVerificationCodeError__Next,\n\tSubmitMemberVerificationError,\n\tTransactionPasswordNotSetError,\n\tUPIReferenceNotAvailableError,\n\tUpdateMemberAccountError,\n\tUpdateMemberVerificationError,\n\tUpdateReferralCodeError,\n\tUploadPrivateImageFileError,\n\tVerifyMobileNumberError,\n\tMemberCabinetSiteMachineError\n} from './types.js';\n\ntype E =\n\t| ClaimCashbackBonusError\n\t| CreateDepositError\n\t| UploadPrivateImageFileError\n\t| CreateGameSessionError\n\t| EndGameSessionError\n\t| RegisterMemberAccountError\n\t| RegisterMayaMemberAccountError\n\t| UpdateMemberAccountError\n\t| ResetPasswordError\n\t| SendVerificationCodeError\n\t| VerifyMobileNumberError\n\t| CreateMemberVerificationError\n\t| UpdateMemberVerificationError\n\t| RedeemPointsToCashError\n\t| CreateWithdrawalError\n\t| CreateSessionError\n\t| RefreshSessionError\n\t| AuthenticateError\n\t| UpdateReferralCodeError\n\t| SendVerificationCodeError__Next\n\t| ClaimRewardError\n\t| ClaimSpotBonusError\n\t| TransactionPasswordNotSetError\n\t| UPIReferenceNotAvailableError\n\t| SubmitMemberVerificationError\n\t| CreateTestDepositError\n\t| MemberCabinetSiteMachineError;\n\nexport function createOperationError<T extends E>(code: T): OperationError<T> {\n\tconst messages: Record<E, string> = {\n\t\tPointsNotDivisibleBy100Error:\n\t\t\t'Please input points that are multiples of 100.',\n\t\tMaximumBonusesCountLimitExceededError: 'Maximum bonuses reached',\n\t\tInvalidPromoCodeError: 'Invalid Promo Code',\n\t\tSpotBonusAlreadyClaimedError:\n\t\t\t'This promo code has already been redeemed and cannot be used again',\n\t\tRewardAlreadyExpiredError:\n\t\t\t'Reward is either expired or no longer available',\n\t\tAccountNameNotAvailableError: 'Username is no longer available',\n\t\tAccountNotFoundError: 'Account does not exist',\n\t\tAccountNotVerifiedError: 'Account is not verified',\n\t\tCashbackBonusDoesNotExistError: 'Cashback bonus does not exists',\n\t\tDepositPromoMaximumAmountExceededError:\n\t\t\t'Deposit amount exceeds maximum amount for selected promo',\n\t\tDepositPromoMinimumAmountNotMetError:\n\t\t\t'Deposit amount does not meet minimum amount for selected promo',\n\t\tEmailAddressNotAvailableError: 'Email is no longer available',\n\t\tFileDoesNotExistError: 'File does not exist',\n\t\tFileFormatNotSupportedError: 'File format is not supported',\n\t\tFileNameTooLongError: 'File name is too long',\n\t\tFileNotReadyError: 'File is not yet ready',\n\t\tFileSizeTooBigError: 'File size is too big',\n\t\tGameDoesNotExistError: 'Game does not exist',\n\t\tInsufficientPointsError: 'Insufficient points',\n\t\tInvalidPlatformError: 'Invalid platform',\n\t\tInvalidReCAPTCHAResponseError: 'Invalid reCAPTCHA',\n\t\tInvalidSMSVerificationCodeError: 'Invalid SMS verification code',\n\t\tInvalidTransactionPasswordError: 'Invalid transaction password',\n\t\tInvalidVerificationCodeError: 'Invalid verification code',\n\t\tInvalidWithdrawalAmountError: 'Invalid withdrawal amount',\n\t\tMaximumDepositAmountExceededError: 'Maximum deposit amount exceeded',\n\t\tMemberVerificationAlreadyApprovedError:\n\t\t\t'Member verification is already approved',\n\t\tMemberVerificationAlreadyExistsError: 'Member verification already exists',\n\t\tMemberVerificationDoesNotExistError: 'Member verification does not exist',\n\t\tMinimumAgeRequirementError: 'Minimum age requirement not met',\n\t\tMinimumDepositAmountNotMetError: 'Minimum deposit amount not met',\n\t\tMinimumFirstDepositAmountNotMetError:\n\t\t\t'Minimum first deposit amount not met',\n\t\tMobileNumberAlreadyVerifiedError: 'Mobile number is already verified',\n\t\tMobileNumberNotAvailableError: 'Mobile number is no longer available',\n\t\tMobileNumberNotVerifiedError: 'Mobile number is not verified',\n\t\tNickNameNotAvailableError: 'Nickname is no longer available',\n\t\tNotEnoughBalanceError: 'Insufficient balance',\n\t\tNotReadyToSendVerficationCodeError: 'Not ready to send verification code',\n\t\tPromoNotEnabledError: 'Promo is not enabled',\n\t\tRealNameAlreadySetError: 'Real name is already set',\n\t\tValidIdAlreadySetError: 'Valid ID is already set',\n\t\tWalletDoesNotExistError: 'Wallet does not exist',\n\t\tWithdrawalDailyLimitExceededError: 'Daily withdrawal limit exceeded',\n\t\tGameProviderError: 'Game provider error',\n\t\tGameSessionAlreadyClosedError: 'Game session is already closed',\n\t\tGameSessionDoesNotExistError: 'Game session does not exist',\n\t\tReferralCodeNotAvailableError: 'Referral code is no longer available',\n\t\tAccountBlacklistedError: 'Account is blacklisted',\n\t\tInvalidTokenError: 'Invalid token',\n\t\tInvalidTokenOrSecretAnswerError: 'Invalid token or secret answer',\n\t\tSessionExpiredError: 'Session expired',\n\t\tRateLimitExceededError: 'Maximum number of requests reached',\n\t\tRewardAlreadyClaimedError: 'Reward is already claimed',\n\t\tReCAPTCHAVerificationFailedError: 'Invalid reCAPTCHA',\n\t\tAccountSuspendedError: 'Account is suspended',\n\t\tTransactionPasswordNotSetError: 'Transaction password is not set',\n\t\tUPIReferenceNotAvailableError: 'UPI reference is no longer available',\n\t\tGCashDirectApiRequestError: 'GCash direct API request error',\n\t\tVerificationDataIncompleteError: 'Verification data is incomplete',\n\t\tTurnoverRequirementNotYetFulfilledError:\n\t\t\t'Turnover requirement not yet fulfilled',\n\t\tFirstDepositRequiredError: 'First deposit is required',\n\t\tVerificationLockedError: 'Verification is locked',\n\t\tMachineNotFound: 'Machine not found'\n\t};\n\n\treturn {\n\t\tname: code,\n\t\tmessage: messages[code],\n\t};\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tACHIEVEMENT_SETTINGS_QUERY,\n\tANNOUNCEMENTS_QUERY,\n\tCREATE_MEMBER_VERIFICATION_MUTATION,\n\tCREATE_MEMBER_VERIFICATION_NEXT_MUTATION,\n\tDELETE_MEMBER_ACCOUNT_MUTATION,\n\tGOOGLE_CLIEND_ID_QUERY,\n\tMEMBER_ACCOUNT_QUERY,\n\tMEMBER_LEVEL_SETTINGS_QUERY,\n\tMEMBER_VERIFICATION_QUERY,\n\tPAYMENT_SETTINGS_QUERY,\n\tPLATFORM_QUERY,\n\tPOINTS_CLUB_SETTINGS_QUERY,\n\tPROFILE_COMPLETION_QUERY,\n\tREFERRAL_CODE_QUERY,\n\tREGISTER_MAYA_MEMBER_ACCOUNT_MUTATION,\n\tREGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION,\n\tREGISTER_MEMBER_ACCOUNT_BY_NAME_MUTATION,\n\tREGISTER_MEMBER_ACCOUNT_MUTATION,\n\tREGISTER_MEMBER_ACCOUNT_MUTATION__NEXT,\n\tREGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION,\n\tREQUIRE_FIRST_DEPOSIT_QUERY,\n\tRESET_PASSWORD_MUTATION,\n\tSEND_VERIFICATION_CODE_MUTATION,\n\tSUBMIT_MEMBER_VERIFICATION_MUTATION,\n\tUPDATE_MEMBER_ACCOUNT_MUTATION,\n\tUPDATE_MEMBER_VERIFICATION_MUTATION,\n\tUPDATE_MEMBER_VERIFICATION_NEXT_MUTATION,\n\tUPDATE_REFERRAL_CODE_MUTATION,\n\tVERIFY_MOBILE_NUMBER_MUTATION,\n} from './queries.js';\nimport type {\n\tAchievementSettingsQuery,\n\tAchievementSettingsResponse,\n\tAnnouncement,\n\tAnnouncementsQuery,\n\tAnnouncementsQueryVariables,\n\tCreateMemberVerificationError,\n\tCreateMemberVerificationMutation,\n\tCreateMemberVerificationMutationVariables,\n\tCreateMemberVerificationNextMutation,\n\tCreateMemberVerificationNextMutationVariables,\n\tDeleteMemberAccountMutation,\n\tDeleteMemberAccountMutationVariables,\n\tGoogleClientIdQuery,\n\tMemberAccount,\n\tMemberAccountQuery,\n\tMemberLevelSettings,\n\tMemberLevelSettingsQuery,\n\tMemberVerification,\n\tMemberVerificationQuery,\n\tPaginatedQueryResult,\n\tPaymentSettings,\n\tPaymentSettingsQuery,\n\tPlatform,\n\tPlatformQuery,\n\tPointsClubSettings,\n\tPointsClubSettingsQuery,\n\tProfileCompletion,\n\tProfileCompletionQuery,\n\tReferralCodeQuery,\n\tRegisterMayaMemberAccountError,\n\tRegisterMayaMemberAccountMutation,\n\tRegisterMayaMemberAccountMutationVariables,\n\tRegisterMemberAccountByMobileNumberError,\n\tRegisterMemberAccountByMobileNumberMutation,\n\tRegisterMemberAccountByMobileNumberMutationVariables,\n\tRegisterMemberAccountByNameMutation,\n\tRegisterMemberAccountByNameMutationVariables,\n\tRegisterMemberAccountError,\n\tRegisterMemberAccountMutation,\n\tRegisterMemberAccountMutationVariables,\n\tRegisterMemberAccountMutationVariables__Next,\n\tRegisterMemberAccountViaMobileMutation,\n\tRegisterMemberAccountViaMobileMutationVariables,\n\tRequireFirstDepositQuery,\n\tResetPasswordError,\n\tResetPasswordMutation,\n\tResetPasswordMutationVariables,\n\tSendVerificationCodeError,\n\tSendVerificationCodeMutation,\n\tSendVerificationCodeMutationVariables,\n\tSubmitMemberVerificationError,\n\tSubmitMemberVerificationMutation,\n\tSubmitMemberVerificationMutationVariables,\n\tUnlinkGoogleMutation,\n\tUnlinkGoogleMutationVariables,\n\tUpdateMemberAccountError,\n\tUpdateMemberAccountMutation,\n\tUpdateMemberAccountMutationVariables,\n\tUpdateMemberVerificationError,\n\tUpdateMemberVerificationMutation,\n\tUpdateMemberVerificationMutationVariables,\n\tUpdateMemberVerificationNextMutation,\n\tUpdateMemberVerificationNextMutationVariables,\n\tUpdateReferralCodeError,\n\tUpdateReferralCodeMutation,\n\tUpdateReferralCodeMutationVariables,\n\tVerifyMobileNumberError,\n\tVerifyMobileNumberMutation,\n\tVerifyMobileNumberMutationVariables,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\nexport class AccountService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\t/** aka `Query.self` */\n\tasync memberAccount(): Promise<OperationResult<never, MemberAccount>> {\n\t\tconst res =\n\t\t\tawait this.client.request<MemberAccountQuery>(MEMBER_ACCOUNT_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.memberAccount,\n\t\t};\n\t}\n\n\tasync registerMemberAccount(\n\t\tvariables: RegisterMemberAccountMutationVariables,\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountMutation,\n\t\t\tRegisterMemberAccountMutationVariables\n\t\t>(REGISTER_MEMBER_ACCOUNT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMemberAccount) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.registerMemberAccount.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync registerMemberAccountViaMobile(\n\t\tvariables: RegisterMemberAccountViaMobileMutationVariables,\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\n\t\tconst { reCAPTCHAResponse, testPass, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountViaMobileMutation,\n\t\t\tRegisterMemberAccountViaMobileMutationVariables\n\t\t>(REGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t\t...(testPass && {\n\t\t\t\t\t'test-pass': testPass,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMemberAccountViaMobile) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.registerMemberAccountViaMobile.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync registerMemberAccount__next(\n\t\tvariables: RegisterMemberAccountMutationVariables__Next,\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountMutation,\n\t\t\tRegisterMemberAccountMutationVariables__Next\n\t\t>(REGISTER_MEMBER_ACCOUNT_MUTATION__NEXT, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMemberAccount) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.registerMemberAccount.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync registerMemberAccountByName(\n\t\tvariables: RegisterMemberAccountByNameMutationVariables,\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountByNameMutation,\n\t\t\tRegisterMemberAccountByNameMutationVariables\n\t\t>(REGISTER_MEMBER_ACCOUNT_BY_NAME_MUTATION, variables, {\n\t\t\theaders: {\n\t\t\t\t...(variables.reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': variables.reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMemberAccountByName) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.registerMemberAccountByName.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync updateMemberAccount(\n\t\tvariables: UpdateMemberAccountMutationVariables,\n\t): Promise<OperationResult<UpdateMemberAccountError>> {\n\t\tconst res = await this.client.request<\n\t\t\tUpdateMemberAccountMutation,\n\t\t\tUpdateMemberAccountMutationVariables\n\t\t>(UPDATE_MEMBER_ACCOUNT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.updateMemberAccount) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.updateMemberAccount.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync deleteMemberAccount(\n\t\tvariables: DeleteMemberAccountMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tDeleteMemberAccountMutation,\n\t\t\tDeleteMemberAccountMutationVariables\n\t\t>(DELETE_MEMBER_ACCOUNT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (!res.data.deleteMemberAccount) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync unlinkGoogle(\n\t\tvariables: UnlinkGoogleMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tUnlinkGoogleMutation,\n\t\t\tUnlinkGoogleMutationVariables\n\t\t>(DELETE_MEMBER_ACCOUNT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (!res.data.unlinkGoogle) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync resetPassword(\n\t\tvariables: ResetPasswordMutationVariables,\n\t): Promise<OperationResult<ResetPasswordError>> {\n\t\tconst res = await this.client.request<\n\t\t\tResetPasswordMutation,\n\t\t\tResetPasswordMutationVariables\n\t\t>(RESET_PASSWORD_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.resetPassword) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.resetPassword.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync profileCompletion(): Promise<\n\t\tOperationResult<never, ProfileCompletion>\n\t> {\n\t\tconst res = await this.client.request<ProfileCompletionQuery>(\n\t\t\tPROFILE_COMPLETION_QUERY,\n\t\t);\n\n\t\treturn res.ok ? { ok: true, data: res.data.profileCompletion } : res;\n\t}\n\n\t/** @deprecated */\n\tasync platform(): Promise<OperationResult<never, Platform>> {\n\t\treturn await this.client.request<PlatformQuery>(PLATFORM_QUERY);\n\t}\n\n\tasync memberLevelSettings(): Promise<\n\t\tOperationResult<never, MemberLevelSettings>\n\t> {\n\t\treturn await this.client.request<MemberLevelSettingsQuery>(\n\t\t\tMEMBER_LEVEL_SETTINGS_QUERY,\n\t\t);\n\t}\n\n\tasync achievementSettings(): Promise<\n\t\tOperationResult<never, AchievementSettingsResponse>\n\t> {\n\t\treturn await this.client.request<AchievementSettingsQuery>(\n\t\t\tACHIEVEMENT_SETTINGS_QUERY,\n\t\t);\n\t}\n\n\t/** @deprecated */\n\tasync sendVerificationCode(\n\t\tvariables: SendVerificationCodeMutationVariables,\n\t): Promise<OperationResult<SendVerificationCodeError>> {\n\t\tconst res = await this.client.request<\n\t\t\tSendVerificationCodeMutation,\n\t\t\tSendVerificationCodeMutationVariables\n\t\t>(SEND_VERIFICATION_CODE_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.sendVerificationCode) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.sendVerificationCode.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync paymentSettings(): Promise<OperationResult<never, PaymentSettings>> {\n\t\treturn await this.client.request<PaymentSettingsQuery>(\n\t\t\tPAYMENT_SETTINGS_QUERY,\n\t\t);\n\t}\n\n\tasync verifyMobileNumber(\n\t\tvariables: VerifyMobileNumberMutationVariables,\n\t): Promise<OperationResult<VerifyMobileNumberError>> {\n\t\tconst res = await this.client.request<\n\t\t\tVerifyMobileNumberMutation,\n\t\t\tVerifyMobileNumberMutationVariables\n\t\t>(VERIFY_MOBILE_NUMBER_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.verifyMobileNumber) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.verifyMobileNumber.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMemberVerification(\n\t\tvariables: CreateMemberVerificationMutationVariables,\n\t): Promise<OperationResult<CreateMemberVerificationError>> {\n\t\tconst res = await this.client.request<\n\t\t\tCreateMemberVerificationMutation,\n\t\t\tCreateMemberVerificationMutationVariables\n\t\t>(CREATE_MEMBER_VERIFICATION_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMemberVerification) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createMemberVerification.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMemberVerification_Next(\n\t\tvariables: CreateMemberVerificationNextMutationVariables,\n\t): Promise<OperationResult<CreateMemberVerificationError>> {\n\t\tconst res = await this.client.request<\n\t\t\tCreateMemberVerificationNextMutation,\n\t\t\tCreateMemberVerificationNextMutationVariables\n\t\t>(CREATE_MEMBER_VERIFICATION_NEXT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMemberVerification_next) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createMemberVerification_next.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync updateMemberVerification(\n\t\tvariables: UpdateMemberVerificationMutationVariables,\n\t): Promise<OperationResult<UpdateMemberVerificationError>> {\n\t\tconst res = await this.client.request<\n\t\t\tUpdateMemberVerificationMutation,\n\t\t\tUpdateMemberVerificationMutationVariables\n\t\t>(UPDATE_MEMBER_VERIFICATION_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.updateMemberVerification) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.updateMemberVerification.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync updateMemberVerification_Next(\n\t\tvariables: UpdateMemberVerificationNextMutationVariables,\n\t): Promise<OperationResult<UpdateMemberVerificationError>> {\n\t\tconst res = await this.client.request<\n\t\t\tUpdateMemberVerificationNextMutation,\n\t\t\tUpdateMemberVerificationNextMutationVariables\n\t\t>(UPDATE_MEMBER_VERIFICATION_NEXT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.updateMemberVerification_next) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.updateMemberVerification_next.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync submitMemberVerification(\n\t\tvariables: SubmitMemberVerificationMutationVariables,\n\t): Promise<OperationResult<SubmitMemberVerificationError>> {\n\t\tconst res = await this.client.request<\n\t\t\tSubmitMemberVerificationMutation,\n\t\t\tSubmitMemberVerificationMutationVariables\n\t\t>(SUBMIT_MEMBER_VERIFICATION_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.submitMemberVerification) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.submitMemberVerification.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync memberVerification(): Promise<\n\t\tOperationResult<never, MemberVerification | null | undefined>\n\t> {\n\t\tconst res = await this.client.request<MemberVerificationQuery>(\n\t\t\tMEMBER_VERIFICATION_QUERY,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.memberAccount.verification,\n\t\t};\n\t}\n\n\tasync announcements(\n\t\tvariables?: AnnouncementsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Announcement>>> {\n\t\tconst res = await this.client.request<\n\t\t\tAnnouncementsQuery,\n\t\t\tAnnouncementsQueryVariables\n\t\t>(ANNOUNCEMENTS_QUERY, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.announcements,\n\t\t};\n\t}\n\n\tasync registerMayaMemberAccount(\n\t\tvariables: RegisterMayaMemberAccountMutationVariables,\n\t): Promise<OperationResult<RegisterMayaMemberAccountError>> {\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMayaMemberAccountMutation,\n\t\t\tRegisterMayaMemberAccountMutationVariables\n\t\t>(REGISTER_MAYA_MEMBER_ACCOUNT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMayaMemberAccount) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.registerMayaMemberAccount.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync referralCode(): Promise<\n\t\tOperationResult<never, string | null | undefined>\n\t> {\n\t\tconst res =\n\t\t\tawait this.client.request<ReferralCodeQuery>(REFERRAL_CODE_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.referralCode,\n\t\t};\n\t}\n\n\tasync updateReferralCode(\n\t\tvariables: UpdateReferralCodeMutationVariables,\n\t): Promise<OperationResult<UpdateReferralCodeError>> {\n\t\tconst res = await this.client.request<\n\t\t\tUpdateReferralCodeMutation,\n\t\t\tUpdateReferralCodeMutationVariables\n\t\t>(UPDATE_REFERRAL_CODE_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.updateReferralCode) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.updateReferralCode.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync pointsClubSettings(): Promise<\n\t\tOperationResult<never, PointsClubSettings | null | undefined>\n\t> {\n\t\tconst res = await this.client.request<PointsClubSettingsQuery>(\n\t\t\tPOINTS_CLUB_SETTINGS_QUERY,\n\t\t);\n\t\treturn res.ok ? { ok: true, data: res.data.pointsClubSettings } : res;\n\t}\n\n\tasync registerMemberAccountByMobileNumber(\n\t\tvariables: RegisterMemberAccountByMobileNumberMutationVariables,\n\t): Promise<OperationResult<RegisterMemberAccountByMobileNumberError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountByMobileNumberMutation,\n\t\t\tRegisterMemberAccountByMobileNumberMutationVariables\n\t\t>(REGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(variables.reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t\t...(variables.testPass && {\n\t\t\t\t\t'test-pass': 'true',\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMemberAccountByMobileNumber) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.registerMemberAccountByMobileNumber.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync googleClientId(): Promise<\n\t\tOperationResult<never, string | null | undefined>\n\t> {\n\t\tconst res = await this.client.request<GoogleClientIdQuery>(\n\t\t\tGOOGLE_CLIEND_ID_QUERY,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.googleClientId,\n\t\t};\n\t}\n\n\tasync requireFirstDeposit(): Promise<OperationResult<never, boolean>> {\n\t\tconst res = await this.client.request<RequireFirstDepositQuery>(\n\t\t\tREQUIRE_FIRST_DEPOSIT_QUERY,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.requireFirstDeposit,\n\t\t};\n\t}\n}\n","import type { HttpError, OperationError } from '../types/index.js';\n\nexport function statusCodeToOperationError(\n\tvalue: number,\n\tmessage?: string,\n): OperationError<HttpError> {\n\tconst e = ERROR_MAP[value] ? ERROR_MAP[value] : ERROR_MAP[500];\n\n\treturn {\n\t\tname: e.name,\n\t\tmessage: message ?? e.message,\n\t};\n}\n\nconst ERROR_MAP: Record<number, OperationError<HttpError>> = {\n\t400: { name: 'HttpBadRequest', message: 'Bad Request' },\n\t401: { name: 'HttpUnauthorized', message: 'Unauthorized' },\n\t403: { name: 'HttpForbidden', message: 'Forbidden' },\n\t404: { name: 'HttpNotFound', message: 'Not Found' },\n\t408: { name: 'HttpRequestTimeout', message: 'Request Timeout' },\n\t429: { name: 'HttpTooManyRequests', message: 'Too Many Requests' },\n\t500: { name: 'HttpInternalServerError', message: 'Internal Server Error' },\n};\n","import type { OperationResult } from '../types/index.js';\nimport { statusCodeToOperationError } from '../utils/status-code-to-operation-error.js';\nimport type {\n\tAuthenticateError,\n\tAuthenticateInput,\n\tAuthenticateMutation,\n\tCreateSessionError,\n\tCreateSessionInput,\n\tCreateSessionMutation,\n\tCreateSignleUseTokenError,\n\tCreateSingleUseTokenMutation,\n\tRefreshSessionError,\n\tRefreshSessionMutation,\n\tSendVerificationCodeError__Next,\n\tSendVerificationCodeInput__Next,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\ninterface FetchOptions {\n\theaders?: HeadersInit;\n}\n\nexport interface AuthServiceConfig {\n\turl: string;\n\tfetchOptions?: FetchOptions;\n}\n\nexport class AuthService {\n\tprivate url: string;\n\tprivate options: FetchOptions;\n\n\tconstructor(config: AuthServiceConfig) {\n\t\tthis.url = config.url;\n\t\tthis.options = config.fetchOptions ?? {};\n\t}\n\n\tprivate get headers() {\n\t\tconst headers = new Headers(this.options.headers);\n\t\theaders.append('Accept', 'application/json, text/plain');\n\t\theaders.append('Content-Type', 'application/json');\n\t\treturn headers;\n\t}\n\n\tasync createSession(\n\t\tinput: CreateSessionInput,\n\t): Promise<OperationResult<CreateSessionError, CreateSessionMutation>> {\n\t\tconst headers = new Headers(this.headers);\n\n\t\tif (input.channel) {\n\t\t\theaders.append('Channel', input.channel);\n\t\t}\n\n\t\tif (input.type === 'NAME_AND_PASSWORD') {\n\t\t\tconst data = `${input.name}:${input.password}`;\n\t\t\tconst token = Buffer.from(data).toString('base64');\n\n\t\t\theaders.set('Authorization', `Basic ${token}`);\n\t\t}\n\n\t\tif (input.type === 'MOBILE_NUMBER') {\n\t\t\tconst data = `${input.mobileNumber}:${input.verificationCode}`;\n\t\t\tconst token = Buffer.from(data).toString('base64');\n\n\t\t\theaders.set('Authorization', `MobileNumberOTP ${token}`);\n\t\t}\n\n\t\tif (input.type === 'MAYA') {\n\t\t\theaders.set('Authorization', `MayaSession ${input.sessionId}`);\n\t\t}\n\n\t\tif (input.type === 'SOCIALS') {\n\t\t\theaders.set('Authorization', `Token ${input.token}`);\n\t\t}\n\n\t\tif (input.type === 'CABINET') {\n\t\t\theaders.set('Authorization', `Opexa-Cabinet-Token ${input.token}`);\n\t\t}\n\n\t\tif (input.type === 'SINGLE_USE_TOKEN') {\n\t\t\theaders.set('Authorization', `Single-Use-Token ${input.token}`);\n\t\t}\n\n\t\tif (input.reCAPTCHAResponse) {\n\t\t\theaders.set('google-recaptcha-response', input.reCAPTCHAResponse);\n\t\t}\n\n\t\tif (input.testPass) {\n\t\t\theaders.set('test-pass', input.testPass);\n\t\t}\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/sessions`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders,\n\t\t\t});\n\n\t\t\tconst data = await res.json();\n\n\t\t\tif (res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (data.code === 'ACCOUNT_BLACKLISTED') {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('AccountBlacklistedError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (data.code === 'MEMBER_ACCOUNT_SUSPENDED') {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('AccountSuspendedError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (data.code === 'INVALID_RECAPTCHA_RESPONSE') {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('InvalidReCAPTCHAResponseError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n\n\tasync authenticate(\n\t\tinput: AuthenticateInput,\n\t): Promise<OperationResult<AuthenticateError, AuthenticateMutation>> {\n\t\tconst headers = new Headers(this.headers);\n\n\t\tif (input.channel) {\n\t\t\theaders.append('Channel', input.channel);\n\t\t}\n\n\t\tif (input.type === 'SECURITY_QUESTION') {\n\t\t\theaders.set('Authorization', `Bearer ${input.token}`);\n\n\t\t\ttry {\n\t\t\t\tconst res = await fetch(\n\t\t\t\t\t`${this.url}/session/${input.token}/authenticate`,\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\theaders,\n\t\t\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\t\t\tsecretAnswer: input.secretAnswer,\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tconst data = await res.json();\n\n\t\t\t\tif (res.ok) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: true,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (res.status === 401 || res.status === 403) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: createOperationError('InvalidTokenOrSecretAnswerError'),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t\t};\n\t\t\t} catch {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error(\"Invalid input 'type'\");\n\t}\n\n\tasync refreshSession(\n\t\trefreshToken: string,\n\t): Promise<OperationResult<RefreshSessionError, RefreshSessionMutation>> {\n\t\tconst headers = new Headers(this.headers);\n\n\t\theaders.append('Authorization', `Bearer ${refreshToken}`);\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/session:refresh`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders,\n\t\t\t});\n\n\t\t\tconst data = await res.json();\n\n\t\t\tif (res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (data.code === 'ACCOUNT_BLACKLISTED') {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('AccountBlacklistedError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (data.code === 'MEMBER_ACCOUNT_SUSPENDED') {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('AccountSuspendedError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (res.status === 403 || res.status === 401) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('InvalidTokenError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n\n\tasync destroySession(accessToken: string): Promise<OperationResult> {\n\t\tconst headers = new Headers(this.headers);\n\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/session`, {\n\t\t\t\tmethod: 'DELETE',\n\t\t\t\theaders,\n\t\t\t});\n\n\t\t\treturn res.ok\n\t\t\t\t? { ok: true }\n\t\t\t\t: { ok: false, error: statusCodeToOperationError(res.status) };\n\t\t} catch {\n\t\t\treturn { ok: false, error: statusCodeToOperationError(500) };\n\t\t}\n\t}\n\n\tasync verifySession(accessToken: string) {\n\t\tconst headers = new Headers(this.headers);\n\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/session`, {\n\t\t\t\tmethod: 'GET',\n\t\t\t\theaders,\n\t\t\t});\n\n\t\t\treturn res.ok;\n\t\t} catch {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tasync sendVerificationCode(\n\t\tinput: SendVerificationCodeInput__Next,\n\t): Promise<OperationResult<SendVerificationCodeError__Next>> {\n\t\tif (input.channel === 'EMAIL')\n\t\t\tthrow new Error('Email channel is not yet supported');\n\n\t\tfunction getErrorCode(\n\t\t\tmessage: string,\n\t\t): SendVerificationCodeError__Next | null {\n\t\t\tswitch (message) {\n\t\t\t\tcase 'MEMBER_NOT_FOUND':\n\t\t\t\t\treturn 'AccountNotFoundError';\n\t\t\t\tcase 'RATE_LIMIT_REACH':\n\t\t\t\t\treturn 'RateLimitExceededError';\n\t\t\t\tcase 'NOT_READY_TO_SEND_VERIFICATION_ERROR':\n\t\t\t\t\treturn 'NotReadyToSendVerficationCodeError';\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/otps`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: this.headers,\n\t\t\t\tbody: JSON.stringify(input),\n\t\t\t});\n\n\t\t\tif (res.status === 403) {\n\t\t\t\tconst data = await res.json();\n\t\t\t\tconst code = getErrorCode(data.message);\n\n\t\t\t\tif (code) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: createOperationError(code),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(res.status, data.message),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (!res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn { ok: true };\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n\n\tasync createSingleUseToken(\n\t\taccessToken: string,\n\t): Promise<\n\t\tOperationResult<CreateSignleUseTokenError, CreateSingleUseTokenMutation>\n\t> {\n\t\tconst headers = new Headers(this.headers);\n\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/token?ttl=30d`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders,\n\t\t\t});\n\n\t\t\tconst data = await res.json();\n\n\t\t\tif (res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (res.status === 403 || res.status === 401) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('InvalidTokenError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n}\n","function isFunction<Return, Args = never>(\n\tvalue: unknown | ((...args: Args[]) => Return),\n): value is (...args: Args[]) => Return {\n\treturn typeof value === 'function';\n}\n\nexport function callIfFn<Return, Args = never>(\n\tvalue: Return | ((...args: Args[]) => Return),\n\t...args: Args[]\n) {\n\tif (isFunction<Return, Args>(value)) {\n\t\treturn value(...args);\n\t} else {\n\t\treturn value;\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport { callIfFn } from '../utils/call-if-fn.js';\nimport { statusCodeToOperationError } from '../utils/status-code-to-operation-error.js';\nimport type {\n\tGame,\n\tGameQuery,\n\tGamesQuery,\n\tGamesQueryVariables,\n\tGamesQueryVariables__Next,\n\tPaginatedQueryResult,\n\tSite,\n\tSiteQuery,\n} from './types.js';\n\nexport interface CmsPortalServiceConfig {\n\turl: string;\n\tsite: string;\n\tplatform: string;\n\tfetch?: typeof globalThis.fetch | null;\n}\n\ntype Getter<T> = () => T;\n\nexport class CmsPortalService {\n\tprivate config: Getter<CmsPortalServiceConfig> | CmsPortalServiceConfig;\n\n\tconstructor(config: CmsPortalServiceConfig | Getter<CmsPortalServiceConfig>) {\n\t\tthis.config = config;\n\t}\n\n\tasync self(): Promise<OperationResult<never, Site>> {\n\t\tconst config = callIfFn(this.config);\n\n\t\tconst res = await this.getJson<SiteQuery>(`/v1/sites/${config.site}`);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.data,\n\t\t};\n\t}\n\n\tasync games(\n\t\tvariables?: GamesQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Game>>> {\n\t\tconst search = new URLSearchParams();\n\n\t\tif (variables?.first) search.set('first', variables.first.toString());\n\t\tif (variables?.after) search.set('after', variables.after);\n\t\tif (variables?.search) search.set('search', variables.search);\n\n\t\tif (variables?.filter?.type?.equal)\n\t\t\tsearch.set('filter[type][eq]', variables.filter.type.equal);\n\t\tif (variables?.filter?.type?.notEqual)\n\t\t\tsearch.set('filter[type][neq]', variables.filter.type.notEqual);\n\t\tif (variables?.filter?.type?.in)\n\t\t\tsearch.set('filter[type][in]', variables.filter.type.in.join(','));\n\t\tif (variables?.filter?.type?.notIn)\n\t\t\tsearch.set('filter[type][nin]', variables.filter.type.notIn.join(','));\n\n\t\tif (variables?.filter?.provider?.equal)\n\t\t\tsearch.set('filter[provider][eq]', variables.filter.provider.equal);\n\t\tif (variables?.filter?.provider?.notEqual)\n\t\t\tsearch.set('filter[provider][neq]', variables.filter.provider.notEqual);\n\t\tif (variables?.filter?.provider?.in)\n\t\t\tsearch.set(\n\t\t\t\t'filter[provider][in]',\n\t\t\t\tvariables.filter.provider.in.join(','),\n\t\t\t);\n\t\tif (variables?.filter?.provider?.notIn)\n\t\t\tsearch.set(\n\t\t\t\t'filter[provider][nin]',\n\t\t\t\tvariables.filter.provider.notIn.join(','),\n\t\t\t);\n\n\t\tif (variables?.filter?.tags?.equal)\n\t\t\tsearch.set('filter[tags][eq]', variables.filter.tags.equal.toLowerCase());\n\t\tif (variables?.filter?.tags?.notEqual)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][neq]',\n\t\t\t\tvariables.filter.tags.notEqual.toLowerCase(),\n\t\t\t);\n\t\tif (variables?.filter?.tags?.in)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][in]',\n\t\t\t\tvariables.filter.tags.in.map((v) => v.toLowerCase()).join(','),\n\t\t\t);\n\t\tif (variables?.filter?.tags?.notIn)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][nin]',\n\t\t\t\tvariables.filter.tags.notIn.map((v) => v.toLowerCase()).join(','),\n\t\t\t);\n\n\t\tif (variables?.filter?.reference?.equal)\n\t\t\tsearch.set('filter[reference][eq]', variables.filter.reference.equal);\n\t\tif (variables?.filter?.reference?.notEqual)\n\t\t\tsearch.set('filter[reference][neq]', variables.filter.reference.notEqual);\n\t\tif (variables?.filter?.reference?.in)\n\t\t\tsearch.set(\n\t\t\t\t'filter[reference][in]',\n\t\t\t\tvariables.filter.reference.in.join(','),\n\t\t\t);\n\t\tif (variables?.filter?.reference?.notIn)\n\t\t\tsearch.set(\n\t\t\t\t'filter[reference][nin]',\n\t\t\t\tvariables.filter.reference.notIn.join(','),\n\t\t\t);\n\n\t\tif (variables?.sort) search.set('sort[order]', variables.sort);\n\n\t\tconst res = await this.getJson<GamesQuery>('/v1/games', search);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tedges: res.data.data.map((node) => ({\n\t\t\t\t\tnode,\n\t\t\t\t\tcursor: node.cursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount ?? 0,\n\t\t\t\tpageInfo: {\n\t\t\t\t\thasNextPage: Boolean(res.data.next),\n\t\t\t\t\tendCursor: res.data.next,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync games__next(\n\t\tvariables?: GamesQueryVariables__Next,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Game>>> {\n\t\tconst search = new URLSearchParams();\n\n\t\tif (variables?.first) search.set('first', variables.first.toString());\n\t\tif (variables?.after) search.set('after', variables.after);\n\t\tif (variables?.search) search.set('search', variables.search);\n\n\t\tif (variables?.filter?.type?.equal)\n\t\t\tsearch.set('filter[type][eq]', variables.filter.type.equal);\n\t\tif (variables?.filter?.type?.notEqual)\n\t\t\tsearch.set('filter[type][neq]', variables.filter.type.notEqual);\n\t\tif (variables?.filter?.type?.in)\n\t\t\tsearch.set('filter[type][in]', variables.filter.type.in.join(','));\n\t\tif (variables?.filter?.type?.notIn)\n\t\t\tsearch.set('filter[type][nin]', variables.filter.type.notIn.join(','));\n\n\t\tif (variables?.filter?.provider?.equal)\n\t\t\tsearch.set('filter[provider][eq]', variables.filter.provider.equal);\n\t\tif (variables?.filter?.provider?.notEqual)\n\t\t\tsearch.set('filter[provider][neq]', variables.filter.provider.notEqual);\n\t\tif (variables?.filter?.provider?.in)\n\t\t\tsearch.set(\n\t\t\t\t'filter[provider][in]',\n\t\t\t\tvariables.filter.provider.in.join(','),\n\t\t\t);\n\t\tif (variables?.filter?.provider?.notIn)\n\t\t\tsearch.set(\n\t\t\t\t'filter[provider][nin]',\n\t\t\t\tvariables.filter.provider.notIn.join(','),\n\t\t\t);\n\n\t\tif (variables?.filter?.tags?.equal)\n\t\t\tsearch.set('filter[tags][eq]', variables.filter.tags.equal.toLowerCase());\n\t\tif (variables?.filter?.tags?.notEqual)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][neq]',\n\t\t\t\tvariables.filter.tags.notEqual.toLowerCase(),\n\t\t\t);\n\t\tif (variables?.filter?.tags?.in)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][in]',\n\t\t\t\tvariables.filter.tags.in.map((v) => v.toLowerCase()).join(','),\n\t\t\t);\n\t\tif (variables?.filter?.tags?.notIn)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][nin]',\n\t\t\t\tvariables.filter.tags.notIn.map((v) => v.toLowerCase()).join(','),\n\t\t\t);\n\n\t\tif (variables?.filter?.reference?.equal)\n\t\t\tsearch.set('filter[reference][eq]', variables.filter.reference.equal);\n\t\tif (variables?.filter?.reference?.notEqual)\n\t\t\tsearch.set('filter[reference][neq]', variables.filter.reference.notEqual);\n\t\tif (variables?.filter?.reference?.in)\n\t\t\tsearch.set(\n\t\t\t\t'filter[reference][in]',\n\t\t\t\tvariables.filter.reference.in.join(','),\n\t\t\t);\n\t\tif (variables?.filter?.reference?.notIn)\n\t\t\tsearch.set(\n\t\t\t\t'filter[reference][nin]',\n\t\t\t\tvariables.filter.reference.notIn.join(','),\n\t\t\t);\n\n\t\tif (variables?.sort) {\n\t\t\tsearch.set('sort[order]', variables.sort.order);\n\t\t\tsearch.set('sort[context]', variables.sort.context.toLowerCase());\n\t\t}\n\n\t\tconst res = await this.getJson<GamesQuery>('/v2/games', search);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tedges: res.data.data.map((node) => ({\n\t\t\t\t\tnode,\n\t\t\t\t\tcursor: node.cursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount ?? 0,\n\t\t\t\tpageInfo: {\n\t\t\t\t\thasNextPage: Boolean(res.data.next),\n\t\t\t\t\tendCursor: res.data.next,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync game(\n\t\tid: string,\n\t): Promise<OperationResult<never, Game | null | undefined>> {\n\t\tconst res = await this.getJson<GameQuery>(`/v1/games/${id}`);\n\n\t\tif (res.error?.name === 'HttpNotFound') {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.data,\n\t\t};\n\t}\n\n\tprivate async getJson<T>(\n\t\tpath: string,\n\t\tparams?: URLSearchParams,\n\t): Promise<OperationResult<never, T>> {\n\t\tconst config = callIfFn(this.config);\n\t\tconst fetch_ = config.fetch ?? fetch;\n\n\t\tconst req = new Request(\n\t\t\t`${config.url}${path}?${params?.toString() ?? ''}`,\n\t\t\t{\n\t\t\t\tmethod: 'GET',\n\t\t\t\theaders: {\n\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t'Site-ID': config.site,\n\t\t\t\t\t'Platform-ID': config.platform,\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\n\t\ttry {\n\t\t\tconst res = await fetch_(req);\n\n\t\t\tif (!res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: await res.json(),\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport { FILE_QUERY, UPLOAD_PRIVATE_IMAGE_FILE_MUTATION } from './queries.js';\nimport type {\n\tFile,\n\tFileQuery,\n\tFileQueryVariables,\n\tUploadPrivateImageFileError,\n\tUploadPrivateImageFileMutation,\n\tUploadPrivateImageFileMutationVariables,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\nexport class FileService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync file(\n\t\tvariables: FileQueryVariables,\n\t): Promise<OperationResult<never, File | null | undefined>> {\n\t\tconst res = await this.client.request<FileQuery, FileQueryVariables>(\n\t\t\tFILE_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.node,\n\t\t};\n\t}\n\n\tasync uploadPrivateImageFile(\n\t\tvariables: UploadPrivateImageFileMutationVariables,\n\t): Promise<OperationResult<UploadPrivateImageFileError>> {\n\t\tconst res = await this.client.upload<\n\t\t\tUploadPrivateImageFileMutation,\n\t\t\tUploadPrivateImageFileMutationVariables\n\t\t>(UPLOAD_PRIVATE_IMAGE_FILE_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.uploadPrivateImageFile) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.uploadPrivateImageFile.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tCREATE_GAME_SESSION_MUTATION,\n\tEND_GAME_SESSION_MUTATION,\n\tGAME_SESSION_QUERY,\n} from './queries.js';\nimport type {\n\tCreateGameSessionError,\n\tCreateGameSessionMutation,\n\tCreateGameSessionMutationVariables,\n\tEndGameSessionMutation,\n\tEndGameSessionMutationVariables,\n\tGameSession,\n\tGameSessionQuery,\n\tGameSessionQueryVariables,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\nexport class GameService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync gameSession(\n\t\tvariables: GameSessionQueryVariables,\n\t): Promise<OperationResult<never, GameSession | null | undefined>> {\n\t\tconst res = await this.client.request<\n\t\t\tGameSessionQuery<true>,\n\t\t\tGameSessionQueryVariables\n\t\t>(GAME_SESSION_QUERY.legacy, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tconst data = !res.data.node\n\t\t\t? null\n\t\t\t: { ...res.data.node, game: res.data.node.game.id };\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata,\n\t\t};\n\t}\n\n\tasync createGameSession(\n\t\tvariables: CreateGameSessionMutationVariables,\n\t): Promise<OperationResult<CreateGameSessionError>> {\n\t\tconst res = await this.client.request<\n\t\t\tCreateGameSessionMutation,\n\t\t\tCreateGameSessionMutationVariables\n\t\t>(CREATE_GAME_SESSION_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (res.data.createGameSession) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createGameSession.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync endGameSession(\n\t\tvariables: EndGameSessionMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tEndGameSessionMutation<true>,\n\t\t\tEndGameSessionMutationVariables\n\t\t>(END_GAME_SESSION_MUTATION.legacy, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.endGameSession) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tCOMPLETE_ONBOARDING_MUTATION,\n\tLATEST_BET_RECORDS_QUERY,\n\tONBOARDING_STATUS_QUERY,\n\tPLATFORM_QUERY__NEXT,\n\tRECOMMENDED_GAMES_QUERY,\n\tSKIP_ONBOARDING_MUTATION,\n\tTOP_WINS_NEXT_QUERY,\n\tTOP_WINS_QUERY,\n} from './queries.js';\nimport type {\n\tCompleteOnboardingMutation,\n\tCompleteOnboardingMutationVariables,\n\tLatestBetRecord,\n\tLatestBetRecordsQuery,\n\tOnboardingStatus,\n\tOnboardingStatusQuery,\n\tPlatformQuery__Next,\n\tRecommendedGame,\n\tRecommendedGamesQuery,\n\tSkipOnboardingMutation,\n\tTopWin,\n\tTopWinsNextQuery,\n\tTopWinsQuery,\n} from './types.js';\n\nexport class PortalService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync latestBetRecords(): Promise<OperationResult<never, LatestBetRecord[]>> {\n\t\tconst res = await this.client.request<LatestBetRecordsQuery>(\n\t\t\tLATEST_BET_RECORDS_QUERY,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.latestBetRecords,\n\t\t};\n\t}\n\n\tasync platform(): Promise<OperationResult<never, PlatformQuery__Next>> {\n\t\tconst res =\n\t\t\tawait this.client.request<PlatformQuery__Next>(PLATFORM_QUERY__NEXT);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data,\n\t\t};\n\t}\n\n\tasync recommendedGames(): Promise<OperationResult<never, RecommendedGame[]>> {\n\t\tconst res = await this.client.request<RecommendedGamesQuery>(\n\t\t\tRECOMMENDED_GAMES_QUERY,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.recommendedGames,\n\t\t};\n\t}\n\tasync onboardingStatus(): Promise<OperationResult<never, OnboardingStatus>> {\n\t\tconst res = await this.client.request<OnboardingStatusQuery>(\n\t\t\tONBOARDING_STATUS_QUERY,\n\t\t);\n\t\treturn res.ok ? { ok: res.ok, data: res.data.onboardingStatus ?? [] } : res;\n\t}\n\n\tasync completeOnboarding(\n\t\tvariables: CompleteOnboardingMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tCompleteOnboardingMutation,\n\t\t\tCompleteOnboardingMutationVariables\n\t\t>(COMPLETE_ONBOARDING_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (!res.data.completeOnboarding) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync skipOnboarding(): Promise<OperationResult> {\n\t\tconst res = await this.client.request<SkipOnboardingMutation>(\n\t\t\tSKIP_ONBOARDING_MUTATION,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (!res.data.skipOnboarding) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync topWins(): Promise<OperationResult<never, TopWin[]>> {\n\t\tconst res = await this.client.request<TopWinsQuery>(TOP_WINS_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.topWins,\n\t\t};\n\t}\n\tasync topWinsNext(): Promise<OperationResult<never, TopWin[]>> {\n\t\tconst res =\n\t\t\tawait this.client.request<TopWinsNextQuery>(TOP_WINS_NEXT_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data._topWins,\n\t\t};\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tACHIEVEMENT_POINTS_HISTORY_RECORD_QUERY,\n\tACTIVITY_RECORDS_QUERY,\n\tBET_RECORDS_QUERY,\n\tDEPOSIT_RECORDS_QUERY,\n\tDEPOSITS_COUNT_QUERY,\n\tDOWNLINES_BY_NAME_QUERY,\n\tJACKPOT_PAYOUTS_QUERY,\n\tJACKPOTS_QUERY,\n\tMEMBER_ACHIEVEMENTS_QUERY,\n\tPOINTS_WALLET_TRANSACTIONS_QUERY,\n\tPROMO_BY_CODE_QUERY,\n\tREFERRAL_COMMISSION_QUERY,\n\tREFERRALS_QUERY,\n\tTOURNAMENTS_QUERY,\n\tTRANSACTION_RECORDS_QUERY,\n\tUPLINES_BY_NAME_QUERY,\n\tWITHDRAWAL_RECORDS_QUERY,\n} from './queries.js';\nimport type {\n\tAchievementPointsHistoryRecord,\n\tAchievementPointsHistoryRecordQuery,\n\tAchievementPointsHistoryRecordQueryVariables,\n\tActivityRecord,\n\tActivityRecordsQuery,\n\tActivityRecordsQueryVariables,\n\tBetRecord,\n\tBetRecordsQuery,\n\tBetRecordsQueryVariables,\n\tDepositRecord,\n\tDepositRecordsQuery,\n\tDepositRecordsQueryVariables,\n\tDepositsCountQuery,\n\tDownlinesByNameQuery,\n\tDownlinesByNameQueryVariables,\n\tJackpot,\n\tJackpotPayout,\n\tJackpotPayoutsQuery,\n\tJackpotPayoutsQueryVariables,\n\tJackpotsQuery,\n\tJackpotsQueryVariables,\n\tMemberAchievement,\n\tMemberAchievementsQuery,\n\tPaginatedQueryResult,\n\tPointsWalletTransaction,\n\tPointsWalletTransactionsQuery,\n\tPointsWalletTransactionsQueryVariables,\n\tPromoByCodeQuery,\n\tPromoByCodeQueryVariables,\n\tReferral,\n\tReferralCommission,\n\tReferralCommissionQuery,\n\tReferralsQuery,\n\tReferralsQueryVariables,\n\tSpotBonusPromo,\n\tTournament,\n\tTournamentsQuery,\n\tTournamentsQueryVariables,\n\tTransactionRecord,\n\tTransactionRecordsQuery,\n\tTransactionRecordsQueryVariables,\n\tUplinesByNameQuery,\n\tUplinesByNameQueryVariables,\n\tWithdrawalRecord,\n\tWithdrawalRecordsQuery,\n\tWithdrawalRecordsQueryVariables,\n} from './types.js';\n\nexport class ReportService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync betRecords(\n\t\tvariables?: BetRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<BetRecord>>> {\n\t\tconst res = await this.client.request<\n\t\t\tBetRecordsQuery,\n\t\t\tBetRecordsQueryVariables\n\t\t>(BET_RECORDS_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.betRecords } : res;\n\t}\n\n\tasync transactionRecords(\n\t\tvariables?: TransactionRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<TransactionRecord>>> {\n\t\tconst res = await this.client.request<\n\t\t\tTransactionRecordsQuery,\n\t\t\tTransactionRecordsQueryVariables\n\t\t>(TRANSACTION_RECORDS_QUERY, variables);\n\n\t\treturn res.ok\n\t\t\t? { ok: res.ok, data: res.data.member.transactionRecords }\n\t\t\t: res;\n\t}\n\n\tasync withdrawalRecords(\n\t\tvariables?: WithdrawalRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<WithdrawalRecord>>> {\n\t\tconst res = await this.client.request<\n\t\t\tWithdrawalRecordsQuery,\n\t\t\tWithdrawalRecordsQueryVariables\n\t\t>(WITHDRAWAL_RECORDS_QUERY, variables);\n\n\t\treturn res.ok\n\t\t\t? { ok: res.ok, data: res.data.member.withdrawalRecords }\n\t\t\t: res;\n\t}\n\n\tasync depositRecords(\n\t\tvariables?: DepositRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<DepositRecord>>> {\n\t\tconst res = await this.client.request<\n\t\t\tDepositRecordsQuery,\n\t\t\tDepositRecordsQueryVariables\n\t\t>(DEPOSIT_RECORDS_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.depositRecords } : res;\n\t}\n\n\tasync depositsCount(): Promise<OperationResult<never, number>> {\n\t\tconst res =\n\t\t\tawait this.client.request<DepositsCountQuery>(DEPOSITS_COUNT_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.depositsCount } : res;\n\t}\n\n\tasync pointsWalletTransactions(\n\t\tvariables?: PointsWalletTransactionsQueryVariables,\n\t): Promise<\n\t\tOperationResult<never, PaginatedQueryResult<PointsWalletTransaction>>\n\t> {\n\t\tconst res = await this.client.request<\n\t\t\tPointsWalletTransactionsQuery,\n\t\t\tPointsWalletTransactionsQueryVariables\n\t\t>(POINTS_WALLET_TRANSACTIONS_QUERY, variables);\n\n\t\treturn res.ok\n\t\t\t? { ok: res.ok, data: res.data.member.pointsWalletTransactions }\n\t\t\t: res;\n\t}\n\n\tasync achievementPointsHistoryRecord(\n\t\tvariables?: AchievementPointsHistoryRecordQueryVariables,\n\t): Promise<\n\t\tOperationResult<never, PaginatedQueryResult<AchievementPointsHistoryRecord>>\n\t> {\n\t\tconst res = await this.client.request<\n\t\t\tAchievementPointsHistoryRecordQuery,\n\t\t\tAchievementPointsHistoryRecordQueryVariables\n\t\t>(ACHIEVEMENT_POINTS_HISTORY_RECORD_QUERY, variables);\n\n\t\treturn res.ok\n\t\t\t? { ok: res.ok, data: res.data.achievementPointsHistoryRecords }\n\t\t\t: res;\n\t}\n\n\tasync activityRecords(\n\t\tvariables?: ActivityRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<ActivityRecord>>> {\n\t\tconst res = await this.client.request<\n\t\t\tActivityRecordsQuery,\n\t\t\tActivityRecordsQueryVariables\n\t\t>(ACTIVITY_RECORDS_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.activityRecords } : res;\n\t}\n\n\tasync referrals(\n\t\tvariables?: ReferralsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Referral>>> {\n\t\tconst res = await this.client.request<\n\t\t\tReferralsQuery,\n\t\t\tReferralsQueryVariables\n\t\t>(REFERRALS_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.referrals } : res;\n\t}\n\n\tasync referralCommission(): Promise<\n\t\tOperationResult<never, ReferralCommission | null | undefined>\n\t> {\n\t\tconst res = await this.client.request<ReferralCommissionQuery>(\n\t\t\tREFERRAL_COMMISSION_QUERY,\n\t\t);\n\n\t\treturn res.ok\n\t\t\t? { ok: res.ok, data: res.data.member.referralCommission }\n\t\t\t: res;\n\t}\n\n\tasync uplinesByName(\n\t\tvariables: UplinesByNameQueryVariables,\n\t): Promise<OperationResult<never, Referral[]>> {\n\t\tconst res = await this.client.request<\n\t\t\tUplinesByNameQuery,\n\t\t\tUplinesByNameQueryVariables\n\t\t>(UPLINES_BY_NAME_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.uplinesByName } : res;\n\t}\n\tasync downlinesByName(\n\t\tvariables: DownlinesByNameQueryVariables,\n\t): Promise<OperationResult<never, Referral[]>> {\n\t\tconst res = await this.client.request<\n\t\t\tDownlinesByNameQuery,\n\t\t\tDownlinesByNameQueryVariables\n\t\t>(DOWNLINES_BY_NAME_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.downlinesByName } : res;\n\t}\n\n\tasync promoByCode(\n\t\tvariables: PromoByCodeQueryVariables,\n\t): Promise<OperationResult<never, SpotBonusPromo>> {\n\t\tconst res = await this.client.request<\n\t\t\tPromoByCodeQuery,\n\t\t\tPromoByCodeQueryVariables\n\t\t>(PROMO_BY_CODE_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.promoByCode } : res;\n\t}\n\n\tasync jackpots(\n\t\tvariables?: JackpotsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Jackpot>>> {\n\t\tconst res = await this.client.request<\n\t\t\tJackpotsQuery,\n\t\t\tJackpotsQueryVariables\n\t\t>(JACKPOTS_QUERY, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.jackpots,\n\t\t};\n\t}\n\n\tasync jackpotPayouts(\n\t\tvariables?: JackpotPayoutsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<JackpotPayout>>> {\n\t\tconst res = await this.client.request<\n\t\t\tJackpotPayoutsQuery,\n\t\t\tJackpotPayoutsQueryVariables\n\t\t>(JACKPOT_PAYOUTS_QUERY, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.jackpotPayouts,\n\t\t};\n\t}\n\n\tasync tournaments(\n\t\tvariables?: TournamentsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Tournament>>> {\n\t\tconst res = await this.client.request<\n\t\t\tTournamentsQuery,\n\t\t\tTournamentsQueryVariables\n\t\t>(TOURNAMENTS_QUERY, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.tournaments,\n\t\t};\n\t}\n\n\tasync memberAchievements(): Promise<\n\t\tOperationResult<never, MemberAchievement>\n\t> {\n\t\tconst res = await this.client.request<MemberAchievementsQuery>(\n\t\t\tMEMBER_ACHIEVEMENTS_QUERY,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data } : res;\n\t}\n}\n","import type { OperationResult } from \"../types/index.js\";\nimport type { GraphQLClient } from \"../utils/graphql-client.js\";\nimport {\n AVAILABLE_QUESTS_QUERY,\n CHECK_IN_DAILY_QUEST_MUTATION,\n CLAIM_REWARD_MUTATION,\n MARK_ALL_MESSAGE_AS_READ_MUTATION,\n MARK_ALL_MESSAGES_AS_READ_MUTATION,\n MARK_MESSAGE_AS_READ_MUTATION,\n MESSAGES_QUERY,\n REGISTER_FCM_DEVICE,\n UNREAD_MESSAGES_COUNT_QUERY,\n UNREGISTER_FCM_DEVICE,\n} from \"./queries.js\";\nimport type {\n AvailableQuestsQuery,\n CheckInDailyQuestMutation,\n CheckInDailyQuestQueryVariables,\n ClaimRewardError,\n ClaimRewardMutation,\n ClaimRewardMutationVariables,\n MarkAllMessageAsReadMutation,\n MarkAllMessagesAsReadMutation,\n MarkMessageAsReadMutation,\n MarkMessageAsReadMutationVariables,\n Message,\n MessagesQuery,\n MessagesQueryVariables,\n PaginatedQueryResult,\n Quest,\n RegisterFCMDeviceMutation,\n RegisterFCMDeviceMutationVariables,\n UnreadMessagesCountQuery,\n UnreadMessagesCountQueryVariables,\n UnregisterFCMDeviceMutation,\n UnregisterFCMDeviceMutationVariables,\n} from \"./types.js\";\nimport { createOperationError } from \"./utils.js\";\n\nexport class TriggerService {\n private client: GraphQLClient;\n\n constructor(client: GraphQLClient) {\n this.client = client;\n }\n\n async messages(\n variables?: MessagesQueryVariables\n ): Promise<OperationResult<never, PaginatedQueryResult<Message>>> {\n const res = await this.client.request<\n MessagesQuery,\n MessagesQueryVariables\n >(MESSAGES_QUERY, variables);\n\n return res.ok ? { ok: res.ok, data: res.data.messages } : res;\n }\n\n async unreadMessagesCount(\n variables?: UnreadMessagesCountQueryVariables\n ): Promise<OperationResult<never, number>> {\n const res = await this.client.request<\n UnreadMessagesCountQuery,\n MessagesQueryVariables\n >(UNREAD_MESSAGES_COUNT_QUERY, {\n ...variables,\n filter: {\n ...variables?.filter,\n markedAsRead: {\n equal: false,\n },\n },\n });\n\n return res.ok ? { ok: res.ok, data: res.data.messages.totalCount } : res;\n }\n\n async markMessageAsRead(\n variables: MarkMessageAsReadMutationVariables\n ): Promise<OperationResult> {\n const res = await this.client.request<\n MarkMessageAsReadMutation,\n MarkMessageAsReadMutationVariables\n >(MARK_MESSAGE_AS_READ_MUTATION, variables);\n\n if (!res.ok) return res;\n if (!res.data.markMessageAsRead) {\n return {\n ok: false,\n error: {\n name: \"UnknownError\",\n message: \"Something went wrong.\",\n },\n };\n }\n\n return {\n ok: true,\n };\n }\n\n /**\n * @deprecated\n */\n async markAllMessageAsRead(): Promise<OperationResult> {\n const res = await this.client.request<MarkAllMessageAsReadMutation>(\n MARK_ALL_MESSAGE_AS_READ_MUTATION\n );\n\n if (!res.ok) return res;\n if (!res.data.markAllMessageAsRead) {\n return {\n ok: false,\n error: {\n name: \"UnknownError\",\n message: \"Something went wrong.\",\n },\n };\n }\n\n return {\n ok: true,\n };\n }\n\n async markAllMessagesAsRead(): Promise<OperationResult> {\n const res = await this.client.request<MarkAllMessagesAsReadMutation>(\n MARK_ALL_MESSAGES_AS_READ_MUTATION\n );\n\n if (!res.ok) return res;\n if (!res.data.markAllMessagesAsRead) {\n return {\n ok: false,\n error: {\n name: \"UnknownError\",\n message: \"Something went wrong.\",\n },\n };\n }\n\n return {\n ok: true,\n };\n }\n\n async claimReward(\n variables: ClaimRewardMutationVariables\n ): Promise<OperationResult<ClaimRewardError>> {\n const res = await this.client.request<\n ClaimRewardMutation,\n ClaimRewardMutationVariables\n >(CLAIM_REWARD_MUTATION, variables);\n\n if (!res.ok) return res;\n\n if (res.data.claimReward) {\n return {\n ok: false,\n error: createOperationError(res.data.claimReward.__typename),\n };\n }\n\n return {\n ok: true,\n };\n }\n\n async availableQuests(): Promise<OperationResult<never, Quest[]>> {\n const res = await this.client.request<AvailableQuestsQuery>(\n AVAILABLE_QUESTS_QUERY\n );\n\n if (!res.ok) return res;\n\n return {\n ok: true,\n data: res.data.availableQuests,\n };\n }\n\n async checkInDailyQuest(\n variables: CheckInDailyQuestQueryVariables\n ): Promise<OperationResult<never, boolean>> {\n const res = await this.client.request<CheckInDailyQuestMutation>(\n CHECK_IN_DAILY_QUEST_MUTATION,\n variables\n );\n\n if (!res.ok) return res;\n\n return {\n ok: true,\n data: res.data.checkInDailyQuest,\n };\n }\n\n async registerFCMDevice(\n variables: RegisterFCMDeviceMutationVariables\n ): Promise<OperationResult> {\n const res = await this.client.request<\n RegisterFCMDeviceMutation,\n RegisterFCMDeviceMutationVariables\n >(REGISTER_FCM_DEVICE, variables);\n\n if (!res.ok) return res;\n if (!res.data.registerFCMDevice) {\n return {\n ok: false,\n error: {\n name: \"UnknownError\",\n message: \"Something went wrong.\",\n },\n };\n }\n\n return {\n ok: true,\n };\n }\n\n async unregisterFCMDevice(\n variables: UnregisterFCMDeviceMutationVariables\n ): Promise<OperationResult> {\n const res = await this.client.request<\n UnregisterFCMDeviceMutation,\n UnregisterFCMDeviceMutationVariables\n >(UNREGISTER_FCM_DEVICE, variables);\n\n if (!res.ok) return res;\n if (!res.data.unregisterFCMDevice) {\n return {\n ok: false,\n error: {\n name: \"UnknownError\",\n message: \"Something went wrong.\",\n },\n };\n }\n\n return {\n ok: true,\n };\n }\n}\n","import type { WalletGame } from '../sdk/types.js';\nimport type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tAVAILABLE_PROMOS_QUERY,\n\tBONUS_QUERY,\n\tBONUSES_QUERY,\n\tCABINET_WITHDRAWAL_QUERY,\n\tCASHBACK_BONUSES_QUERY,\n\tCASHBACKS_QUERY,\n\tCLAIM_CASHBACK_BONUS_MUTATION,\n\tCLAIM_SPOT_BONUS,\n\tCREATE_AIO_GCASH_DEPOSIT_MUTATION,\n\tCREATE_AIO_GRAB_PAY_DEPOSIT_MUTATION,\n\tCREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION,\n\tCREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION_NEXT,\n\tCREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION,\n\tCREATE_AIO_PALAWAN_PAY_DEPOSIT_MUTATION,\n\tCREATE_AIO_PAY_MAYA_DEPOSIT_MUTATION,\n\tCREATE_AIO_QRPH_DEPOSIT_MUTATION,\n\tCREATE_BANK_WITHDRAWAL_MUTATION,\n\tCREATE_GAME_SESSION_MUTATION,\n\tCREATE_GCASH_DEPOSIT_MUTATION,\n\tCREATE_GCASH_STANDARD_CASHIN_WITHDRAWAL_MUTATION,\n\tCREATE_GCASH_WEBPAY_DEPOSIT_MUTATION,\n\tCREATE_GCASH_WITHDRAWAL_MUTATION,\n\tCREATE_MANUAL_BANK_DEPOSIT_MUTATION,\n\tCREATE_MANUAL_BANK_WITHDRAWAL_MUTATION,\n\tCREATE_MANUAL_UPI_DEPOSIT_MUTATION,\n\tCREATE_MANUAL_UPI_WITHDRAWAL_MUTATION,\n\tCREATE_MAYA_APP_DEPOSIT_MUTATION,\n\tCREATE_MAYA_APP_WITHDRAWAL_MUTATION,\n\tCREATE_MAYA_DEPOSIT_MUTATION,\n\tCREATE_MAYA_WEBPAY_DEPOSIT_MUTATION,\n\tCREATE_MAYA_WITHDRAWAL_MUTATION,\n\tCREATE_TEST_DEPOSIT_MUTATION,\n\tDEPOSIT_QUERY,\n\tEND_GAME_SESSION_MUTATION,\n\tFAVORITE_GAMES_QUERY,\n\tGAME_SESSION_QUERY,\n\tINSTAPAY_BANK_LIST_QUERY,\n\tMARK_GAME_AS_FAVORITE,\n\tMAYA_SESSION_QUERY,\n\tPOINTS_WALLET_QUERY,\n\tPROMOS_QUERY,\n\tREDEEM_POINTS_TO_CASH_MUTATION,\n\tREDEEM_VOUCHER_MUTATION,\n\tREMAINING_DAILY_WITHDRAWALS_COUNT_QUERY,\n\tTOUCH_GCASH_DEPOSIT_MUTATION,\n\tTOUCH_QRPH_DEPOSIT_MUTATION,\n\tUNMARK_GAME_AS_FAVORITE,\n\tVALIDATE_MAYA_SESSION_MUTATION,\n\tWALLET_GAMES_QUERY,\n\tWALLET_QUERY,\n} from './queries.js';\nimport type {\n\tAvailablePromosQuery,\n\tAvailablePromosQueryVariables,\n\tBonus,\n\tBonusesQuery,\n\tBonusQuery,\n\tCabinetWithdrawal,\n\tCabinetWithdrawalQuery,\n\tCabinetWithdrawalQueryVariables,\n\tCashback,\n\tCashbackBonus,\n\tCashbackBonusesQuery,\n\tCashbacksQuery,\n\tClaimCashbackBonusError,\n\tClaimCashbackBonusMutation,\n\tClaimCashbackBonusMutationVariables,\n\tClaimSpotBonusError,\n\tClaimSpotBonusMutation,\n\tClaimSpotBonusMutationVariables,\n\tCreateAiOGCashDepositMutation,\n\tCreateAiOGCcashDepositMutationVariables,\n\tCreateAiOGrabPayDepositMutation,\n\tCreateAiOGrabPayDepositMutationVariables,\n\tCreateAIOInstapayWithdrawalMutation,\n\tCreateAIOInstapayWithdrawalMutationVariables,\n\tCreateAIOInstapayWithdrawalNextMutation,\n\tCreateAIOInstapayWithdrawalNextMutationVariables,\n\tCreateAIOOnlineBankDepositMutation,\n\tCreateAIOOnlineBankDepositMutationVariables,\n\tCreateAiOPalawanPayDepositMutation,\n\tCreateAiOPalawanPayDepositMutationVariables,\n\tCreateAiOPayMayaDepositMutation,\n\tCreateAiOPayMayaDepositMutationVariables,\n\tCreateAIOQRPHDepositMutation,\n\tCreateAIOQRPHDepositMutationVariables,\n\tCreateBankWithdrawalMutation,\n\tCreateBankWithdrawalMutationVariables,\n\tCreateDepositError,\n\tCreateGameSessionError,\n\tCreateGameSessionMutation,\n\tCreateGameSessionMutationVariables,\n\tCreateGCashDepositMutation,\n\tCreateGCashDepositMutationVariables,\n\tCreateGCashStandardCashInWithdrawalMutation,\n\tCreateGCashStandardCashInWithdrawalMutationVariables,\n\tCreateGCashWebpayDepositMutation,\n\tCreateGCashWebpayDepositMutationVariables,\n\tCreateGCashWithdrawalMutation,\n\tCreateGCashWithdrawalMutationVariables,\n\tCreateManualBankDeposiMutationVariables,\n\tCreateManualBankDepositMutation,\n\tCreateManualBankWithdrawalMutation,\n\tCreateManualBankWithdrawalMutationVariables,\n\tCreateManualUPIDepositMutation,\n\tCreateManualUpiDepositMutation,\n\tCreateManualUPIDepositMutationVariables,\n\tCreateManualUpiDepositMutationVariables,\n\tCreateManualUpiWithdrawalMutation,\n\tCreateManualUpiWithdrawalMutationVariables,\n\tCreateMayaAppDepositMutation,\n\tCreateMayaAppDepositMutationVariables,\n\tCreateMayaAppWithdrawalMutation,\n\tCreateMayaAppWithdrawalMutationVariables,\n\tCreateMayaDepositMutation,\n\tCreateMayaDepositMutationVariables,\n\tCreateMayaWebpayDepositMutation,\n\tCreateMayaWebpayDepositMutationVariables,\n\tCreateMayaWithdrawalMutation,\n\tCreateMayaWithdrawalMutationVariables,\n\tCreateTestDepositError,\n\tCreateTestDepositMutation,\n\tCreateTestDepositMutationVariables,\n\tCreateWithdrawalError,\n\tDeposit,\n\tDepositQuery,\n\tDepositQueryVariables,\n\tEndGameSessionMutation,\n\tEndGameSessionMutationVariables,\n\tFavoriteGame,\n\tFavoriteGamesQuery,\n\tGameSession,\n\tGameSessionQuery,\n\tGameSessionQueryVariables,\n\tInstapayBank,\n\tInstapayBankListQuery,\n\tMarkGameAsFavoriteMutation,\n\tMarkGameAsFavoriteMutationVariables,\n\tMayaSession,\n\tMayaSessionQuery,\n\tMayaSessionQueryVariables,\n\tPaginatedQueryResult,\n\tPointsWallet,\n\tPointsWalletQuery,\n\tPromo,\n\tPromosQuery,\n\tRedeemPointsToCashError,\n\tRedeemPointsToCashMutation,\n\tRedeemPointsToCashMutationVariables,\n\tRedeemVoucherError,\n\tRedeemVoucherMutationVariables,\n\tRedeemVoucherMutation,\n\tRemainingDailyWithdrawalsCountQuery,\n\tTouchGCashDepositMutation,\n\tTouchGCashDepositMutationVariables,\n\tTouchQrphDepositMutation,\n\tTouchQrphDepositMutationVariables,\n\tUnmarkGameAsFavoriteMutation,\n\tUnmarkGameAsFavoriteMutationVariables,\n\tValidateMayaSessionMutation,\n\tWallet,\n\tWalletGamesQuery,\n\tWalletGamesQueryVariables,\n\tWalletQuery,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\nexport class WalletService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync promos(): Promise<OperationResult<never, Promo[]>> {\n\t\tconst res = await this.client.request<PromosQuery>(PROMOS_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.promos } : res;\n\t}\n\n\tasync cashbacks(): Promise<OperationResult<never, Cashback[]>> {\n\t\tconst res = await this.client.request<CashbacksQuery>(CASHBACKS_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.cashbacks } : res;\n\t}\n\n\tasync availablePromos(\n\t\tvariables?: AvailablePromosQueryVariables,\n\t): Promise<OperationResult<never, Promo[]>> {\n\t\tconst res = await this.client.request<\n\t\t\tAvailablePromosQuery,\n\t\t\tAvailablePromosQueryVariables\n\t\t>(AVAILABLE_PROMOS_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.availablePromos } : res;\n\t}\n\n\tasync cashbackBonuses(): Promise<OperationResult<never, CashbackBonus[]>> {\n\t\tconst res = await this.client.request<CashbackBonusesQuery>(\n\t\t\tCASHBACK_BONUSES_QUERY,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.cashbackBonuses } : res;\n\t}\n\n\tasync claimCashbackBonus(\n\t\tvariables: ClaimCashbackBonusMutationVariables,\n\t): Promise<OperationResult<ClaimCashbackBonusError>> {\n\t\tconst res = await this.client.request<\n\t\t\tClaimCashbackBonusMutation,\n\t\t\tClaimCashbackBonusMutationVariables\n\t\t>(CLAIM_CASHBACK_BONUS_MUTATION, variables);\n\n\t\tif (!res.ok) {\n\t\t\treturn {\n\t\t\t\tok: res.ok,\n\t\t\t\terror: res.error,\n\t\t\t};\n\t\t}\n\n\t\tif (res.data.claimCashbackBonus) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.claimCashbackBonus.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync bonus(): Promise<OperationResult<never, Bonus | null | undefined>> {\n\t\tconst res = await this.client.request<BonusQuery>(BONUS_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.bonus } : res;\n\t}\n\n\tasync wallet(): Promise<OperationResult<never, Wallet | null | undefined>> {\n\t\tconst res = await this.client.request<WalletQuery>(WALLET_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.wallet } : res;\n\t}\n\n\tasync deposit(\n\t\tvariables: DepositQueryVariables,\n\t): Promise<OperationResult<never, Deposit | null | undefined>> {\n\t\tconst res = await this.client.request<DepositQuery, DepositQueryVariables>(\n\t\t\tDEPOSIT_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.node } : res;\n\t}\n\n\tasync createGCashDeposit(\n\t\tvariables: CreateGCashDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateGCashDepositMutation,\n\t\t\tCreateGCashDepositMutationVariables\n\t\t>(CREATE_GCASH_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createGCashDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createGCashDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createGCashWebpayDeposit(\n\t\tvariables: CreateGCashWebpayDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateGCashWebpayDepositMutation,\n\t\t\tCreateGCashWebpayDepositMutationVariables\n\t\t>(CREATE_GCASH_WEBPAY_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createGCashWebpayDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createGCashWebpayDeposit.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMayaWebpayDeposit(\n\t\tvariables: CreateMayaWebpayDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateMayaWebpayDepositMutation,\n\t\t\tCreateMayaWebpayDepositMutationVariables\n\t\t>(CREATE_MAYA_WEBPAY_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMayaWebpayDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createMayaWebpayDeposit.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMayaDeposit(\n\t\tvariables: CreateMayaDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateMayaDepositMutation,\n\t\t\tCreateMayaDepositMutationVariables\n\t\t>(CREATE_MAYA_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMayaDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createMayaDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\tasync createTestDeposit(\n\t\tvariables: CreateTestDepositMutationVariables,\n\t): Promise<OperationResult<CreateTestDepositError>> {\n\t\tconst res = await this.client.request<\n\t\t\tCreateTestDepositMutation,\n\t\t\tCreateTestDepositMutationVariables\n\t\t>(CREATE_TEST_DEPOSIT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createTestDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createTestDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAIOQRPHDeposit(\n\t\tvariables: CreateAIOQRPHDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAIOQRPHDepositMutation,\n\t\t\tCreateAIOQRPHDepositMutationVariables\n\t\t>(CREATE_AIO_QRPH_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAIOQRPHDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createAIOQRPHDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAiOGCashDeposit(\n\t\tvariables: CreateAiOGCcashDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAiOGCashDepositMutation,\n\t\t\tCreateAiOGCcashDepositMutationVariables\n\t\t>(CREATE_AIO_GCASH_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAiOGCashDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createAiOGCashDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAiOPayMayaDeposit(\n\t\tvariables: CreateAiOPayMayaDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAiOPayMayaDepositMutation,\n\t\t\tCreateAiOPayMayaDepositMutationVariables\n\t\t>(CREATE_AIO_PAY_MAYA_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAiOPayMayaDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createAiOPayMayaDeposit.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAiOGrabPayDeposit(\n\t\tvariables: CreateAiOGrabPayDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAiOGrabPayDepositMutation,\n\t\t\tCreateAiOGrabPayDepositMutationVariables\n\t\t>(CREATE_AIO_GRAB_PAY_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAiOGrabPayDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createAiOGrabPayDeposit.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAiOPalawanPayDeposit(\n\t\tvariables: CreateAiOPalawanPayDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAiOPalawanPayDepositMutation,\n\t\t\tCreateAiOPalawanPayDepositMutationVariables\n\t\t>(CREATE_AIO_PALAWAN_PAY_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAiOPalawanPayDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createAiOPalawanPayDeposit.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAIOOnlineBankDeposit(\n\t\tvariables: CreateAIOOnlineBankDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAIOOnlineBankDepositMutation,\n\t\t\tCreateAIOOnlineBankDepositMutationVariables\n\t\t>(CREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAIOOnlineBankDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createAIOOnlineBankDeposit.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createManualBankDeposit(\n\t\tvariables: CreateManualBankDeposiMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualBankDepositMutation,\n\t\t\tCreateManualBankDeposiMutationVariables\n\t\t>(CREATE_MANUAL_BANK_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createManualBankDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createManualBankDeposit.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createManualUPIDeposit(\n\t\tvariables: CreateManualUPIDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualUPIDepositMutation,\n\t\t\tCreateManualUPIDepositMutationVariables\n\t\t>(CREATE_MANUAL_UPI_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createManualUPIDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createManualUPIDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMayaAppDeposit(\n\t\tvariables: CreateMayaAppDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateMayaAppDepositMutation,\n\t\t\tCreateMayaAppDepositMutationVariables\n\t\t>(CREATE_MAYA_APP_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMayaAppDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createMayaAppDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createManualUpiDeposit(\n\t\tvariables: CreateManualUpiDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualUpiDepositMutation,\n\t\t\tCreateManualUpiDepositMutationVariables\n\t\t>(CREATE_MANUAL_UPI_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createManualUPIDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createManualUPIDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createGCashWithdrawal(\n\t\tvariables: CreateGCashWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateGCashWithdrawalMutation,\n\t\t\tCreateGCashWithdrawalMutationVariables\n\t\t>(CREATE_GCASH_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createGCashWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createGCashWithdrawal.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createGCashStandardCashInWithdrawal(\n\t\tvariables: CreateGCashStandardCashInWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateGCashStandardCashInWithdrawalMutation,\n\t\t\tCreateGCashStandardCashInWithdrawalMutationVariables\n\t\t>(CREATE_GCASH_STANDARD_CASHIN_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createGCashStandardCashInWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createGCashStandardCashInWithdrawal.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMayaWithdrawal(\n\t\tvariables: CreateMayaWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateMayaWithdrawalMutation,\n\t\t\tCreateMayaWithdrawalMutationVariables\n\t\t>(CREATE_MAYA_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMayaWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createMayaWithdrawal.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMayaAppWithdrawal(\n\t\tvariables: CreateMayaAppWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateMayaAppWithdrawalMutation,\n\t\t\tCreateMayaAppWithdrawalMutationVariables\n\t\t>(CREATE_MAYA_APP_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMayaAppWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createMayaAppWithdrawal.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createBankWithdrawal(\n\t\tvariables: CreateBankWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateBankWithdrawalMutation,\n\t\t\tCreateBankWithdrawalMutationVariables\n\t\t>(CREATE_BANK_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createBankWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createBankWithdrawal.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAIOInstapayWithdrawal(\n\t\tvariables: CreateAIOInstapayWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAIOInstapayWithdrawalMutation,\n\t\t\tCreateAIOInstapayWithdrawalMutationVariables\n\t\t>(CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAIOInstapayWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createAIOInstapayWithdrawal.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAIOInstapayWithdrawal_next(\n\t\tvariables: CreateAIOInstapayWithdrawalNextMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAIOInstapayWithdrawalNextMutation,\n\t\t\tCreateAIOInstapayWithdrawalNextMutationVariables\n\t\t>(CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION_NEXT, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAIOInstapayWithdrawal_next) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createAIOInstapayWithdrawal_next.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createManualUpiWithdrawal(\n\t\tvariables: CreateManualUpiWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualUpiWithdrawalMutation,\n\t\t\tCreateManualUpiWithdrawalMutationVariables\n\t\t>(CREATE_MANUAL_UPI_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createManualUpiWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createManualUpiWithdrawal.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createManualBankWithdrawal(\n\t\tvariables: CreateManualBankWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualBankWithdrawalMutation,\n\t\t\tCreateManualBankWithdrawalMutationVariables\n\t\t>(CREATE_MANUAL_BANK_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createManualBankWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createManualBankWithdrawal.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync instapayBankList(): Promise<OperationResult<never, InstapayBank[]>> {\n\t\tconst res = await this.client.request<InstapayBankListQuery>(\n\t\t\tINSTAPAY_BANK_LIST_QUERY,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.instapayBankList } : res;\n\t}\n\n\tasync remainingDailyWithdrawalsCount(): Promise<\n\t\tOperationResult<never, number>\n\t> {\n\t\tconst res = await this.client.request<RemainingDailyWithdrawalsCountQuery>(\n\t\t\tREMAINING_DAILY_WITHDRAWALS_COUNT_QUERY,\n\t\t);\n\n\t\treturn res.ok\n\t\t\t? { ok: res.ok, data: res.data.remainingDailyWithdrawalsCount }\n\t\t\t: res;\n\t}\n\n\tasync pointsWallet(): Promise<\n\t\tOperationResult<never, PointsWallet | null | undefined>\n\t> {\n\t\tconst res =\n\t\t\tawait this.client.request<PointsWalletQuery>(POINTS_WALLET_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.pointsWallet } : res;\n\t}\n\n\tasync redeemPointsToCash(\n\t\tvariables: RedeemPointsToCashMutationVariables,\n\t): Promise<OperationResult<RedeemPointsToCashError>> {\n\t\tconst res = await this.client.request<\n\t\t\tRedeemPointsToCashMutation,\n\t\t\tRedeemPointsToCashMutationVariables\n\t\t>(REDEEM_POINTS_TO_CASH_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.redeemPointsToCash) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.redeemPointsToCash.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync mayaSession(\n\t\tvariables: MayaSessionQueryVariables,\n\t): Promise<OperationResult<never, MayaSession | null | undefined>> {\n\t\tconst res = await this.client.request<\n\t\t\tMayaSessionQuery,\n\t\t\tMayaSessionQueryVariables\n\t\t>(MAYA_SESSION_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.mayaSession } : res;\n\t}\n\n\tasync gameSession(\n\t\tvariables: GameSessionQueryVariables,\n\t): Promise<OperationResult<never, GameSession | null | undefined>> {\n\t\tconst res = await this.client.request<\n\t\t\tGameSessionQuery,\n\t\t\tGameSessionQueryVariables\n\t\t>(GAME_SESSION_QUERY.current, variables);\n\n\t\treturn res.ok ? { ok: true, data: res.data.node } : res;\n\t}\n\n\tasync createGameSession(\n\t\tvariables: CreateGameSessionMutationVariables,\n\t): Promise<OperationResult<CreateGameSessionError>> {\n\t\tconst res = await this.client.request<\n\t\t\tCreateGameSessionMutation,\n\t\t\tCreateGameSessionMutationVariables\n\t\t>(CREATE_GAME_SESSION_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createGameSession) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createGameSession.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync endGameSession(\n\t\tvariables: EndGameSessionMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tEndGameSessionMutation,\n\t\t\tEndGameSessionMutationVariables\n\t\t>(END_GAME_SESSION_MUTATION.current, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.endGameSession) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync validateMayaSession(): Promise<OperationResult> {\n\t\tconst res = await this.client.request<ValidateMayaSessionMutation>(\n\t\t\tVALIDATE_MAYA_SESSION_MUTATION,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (!res.data.validateMayaSession) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync bonuses(): Promise<OperationResult<never, Bonus[]>> {\n\t\tconst res = await this.client.request<BonusesQuery>(BONUSES_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.bonuses ?? [] } : res;\n\t}\n\n\tasync claimSpotBonus(\n\t\tvariables: ClaimSpotBonusMutationVariables,\n\t): Promise<OperationResult<ClaimSpotBonusError>> {\n\t\tconst res = await this.client.request<\n\t\t\tClaimSpotBonusMutation,\n\t\t\tClaimSpotBonusMutationVariables\n\t\t>(CLAIM_SPOT_BONUS, variables);\n\n\t\tif (!res.ok) {\n\t\t\treturn {\n\t\t\t\tok: res.ok,\n\t\t\t\terror: res.error,\n\t\t\t};\n\t\t}\n\n\t\tif (res.data.claimSpotBonus) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.claimSpotBonus.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync touchGCashDeposit(\n\t\tvariables: TouchGCashDepositMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tTouchGCashDepositMutation,\n\t\t\tTouchGCashDepositMutationVariables\n\t\t>(TOUCH_GCASH_DEPOSIT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.touchGCashDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync touchQrphDeposit(\n\t\tvariables: TouchQrphDepositMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tTouchQrphDepositMutation,\n\t\t\tTouchQrphDepositMutationVariables\n\t\t>(TOUCH_QRPH_DEPOSIT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.touchQRPHDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync markGameAsFavorite(\n\t\tvariables: MarkGameAsFavoriteMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tMarkGameAsFavoriteMutation,\n\t\t\tMarkGameAsFavoriteMutationVariables\n\t\t>(MARK_GAME_AS_FAVORITE, variables);\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.markGameAsFavorite) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\tasync unmarkGameAsFavorite(\n\t\tvariables: UnmarkGameAsFavoriteMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tUnmarkGameAsFavoriteMutation,\n\t\t\tUnmarkGameAsFavoriteMutationVariables\n\t\t>(UNMARK_GAME_AS_FAVORITE, variables);\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.unmarkGameAsFavorite) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync favoriteGames(): Promise<OperationResult<never, FavoriteGame[]>> {\n\t\tconst res =\n\t\t\tawait this.client.request<FavoriteGamesQuery>(FAVORITE_GAMES_QUERY);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.favoriteGames) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.favoriteGames,\n\t\t};\n\t}\n\tasync walletGames(\n\t\tvariables?: WalletGamesQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<WalletGame>>> {\n\t\tconst res = await this.client.request<\n\t\t\tWalletGamesQuery,\n\t\t\tWalletGamesQueryVariables\n\t\t>(WALLET_GAMES_QUERY, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.games) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.games,\n\t\t};\n\t}\n\n\tasync cabinetWithdrawal(\n\t\t\tvariables: CabinetWithdrawalQueryVariables,\n\t\t): Promise<OperationResult<never, CabinetWithdrawal | null | undefined>> {\n\t\tconst res = await this.client.request<CabinetWithdrawalQuery, CabinetWithdrawalQueryVariables>(\n\t\t\tCABINET_WITHDRAWAL_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.node } : res;\n\t}\n\n\tasync redeemVoucher(\n\t\tvariables: RedeemVoucherMutationVariables,\n\t): Promise<OperationResult<RedeemVoucherError>> {\n\t\tconst res = await this.client.request<\n\t\t\tRedeemVoucherMutation,\n\t\t\tRedeemVoucherMutationVariables\n\t\t>(REDEEM_VOUCHER_MUTATION, variables);\n\n\t\tif (!res.ok) {\n\t\t\treturn {\n\t\t\tok: res.ok,\n\t\t\terror: res.error,\n\t\t\t};\n\t\t}\n\n\t\tif (res.data.redeemVoucher) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.redeemVoucher.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n}\n\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tCREATE_CABINET_WITHDRAWAL_MUTATION,\n\tMEMBER_CABINET_SITE_MACHINE_QUERY\n} from './queries.js';\nimport type {\n\tCreateCabinetWithdrawalMutationVariables,\n\tCreateCabinetWithdrawalMutation,\n\tCreateWithdrawalError,\n\tMemberCabinetSiteMachineQuery,\n\tCabinetSiteMachine\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\nexport class ExtensionService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync createCabinetWithdrawal(\n\t\tvariables: CreateCabinetWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateCabinetWithdrawalMutation,\n\t\t\tCreateCabinetWithdrawalMutationVariables\n\t\t>(CREATE_CABINET_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createCabinetWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(\n\t\t\t\t\tres.data.createCabinetWithdrawal.__typename,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync memberCabinetSiteMachine(): Promise<OperationResult<never, CabinetSiteMachine | null | undefined>> {\n\t\tconst res = await this.client.request<MemberCabinetSiteMachineQuery>(MEMBER_CABINET_SITE_MACHINE_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.memberCabinetSiteMachine } : res;\n\t}\n\n}\n","export function cloneDate(date: Date) {\n\treturn new Date(date.getTime());\n}\n","import { cloneDate } from './clone-date.js';\n\nexport function addMinutes(date: Date, minutes: number): Date {\n\tconst result = cloneDate(date);\n\tresult.setMinutes(result.getMinutes() + minutes);\n\treturn result;\n}\n","/**\n * is `date1` after `date2`?\n */\nexport function isAfter(date1: Date, date2: Date) {\n\treturn date1.getTime() > date2.getTime();\n}\n","import { addMinutes } from './add-minutes.js';\nimport { isAfter } from './is-after.js';\n\ninterface CacheValue<T> {\n\tvalue: T;\n\tvalidUntil: Date;\n}\n\ninterface CacheConfig {\n\t/**\n\t * @description The number in minutes the cache is valid\n\t * @default 5\n\t */\n\tcacheTime: number;\n}\n\nexport class Cache<T = unknown> {\n\tprivate config: CacheConfig;\n\tprivate cache: Record<string, CacheValue<T>>;\n\n\tconstructor(config?: CacheConfig) {\n\t\tthis.cache = {};\n\t\tthis.config = {\n\t\t\tcacheTime: 5,\n\t\t\t...config,\n\t\t};\n\t}\n\n\tset(key: string, value: T) {\n\t\tconst validUntil = addMinutes(new Date(), this.config.cacheTime);\n\n\t\tthis.cache[key] = {\n\t\t\tvalue,\n\t\t\tvalidUntil,\n\t\t};\n\t}\n\n\tget<V = never>(key: string): [V] extends [never] ? T | null : V | null {\n\t\tconst o = this.cache[key];\n\t\tif (!o) return null;\n\t\tif (isAfter(new Date(), o.validUntil)) return null;\n\t\treturn o.value as any;\n\t}\n}\n","export function clamp(value: number, min: number, max: number) {\n\tif (value < min) return min;\n\tif (value > max) return max;\n\treturn value;\n}\n","export function isPlainObject(value: unknown): value is Record<string, any> {\n\treturn (\n\t\tObject.prototype.toString.call(value) === '[object Object]' &&\n\t\tObject(value) === value\n\t);\n}\n","import { isPlainObject } from './is-plain-object.js';\n\nexport function flatten(value: Record<string, any> | any[]) {\n\tconst result: {\n\t\tkey: string[];\n\t\tvalue: any;\n\t}[] = [];\n\n\tfunction fn(o: Record<string, any>, parentKeys: string[] = []) {\n\t\tfor (const k in o) {\n\t\t\tconst v = o[k];\n\n\t\t\tif (isPlainObject(v)) {\n\t\t\t\tfn(v, [...parentKeys, k]);\n\t\t\t} else if (Array.isArray(v)) {\n\t\t\t\tfn(arrayToObject(v), [...parentKeys, k]);\n\t\t\t} else {\n\t\t\t\tresult.push({\n\t\t\t\t\tkey: [...parentKeys, k],\n\t\t\t\t\tvalue: v,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tfn(value);\n\n\treturn result;\n}\n\nfunction arrayToObject(array: unknown[]) {\n\treturn array.reduce<Record<string, any>>((o, v, i) => {\n\t\to[i] = v;\n\t\treturn o;\n\t}, {});\n}\n","import type { GenericObject, OperationResult } from '../types/index.js';\nimport { callIfFn } from './call-if-fn.js';\nimport { flatten } from './flatten.js';\nimport { statusCodeToOperationError } from './status-code-to-operation-error.js';\n\ntype ModifiableKey =\n\t| 'mode'\n\t| 'cache'\n\t| 'signal'\n\t| 'headers'\n\t| 'integrity'\n\t| 'keepalive'\n\t| 'credentials';\n\ntype Modifiable = {\n\t[K in ModifiableKey]: Request[K];\n};\n\nexport interface ModifiedRequest\n\textends Readonly<Omit<Request, ModifiableKey>>,\n\t\tModifiable {}\n\nexport type GraphQLClientMiddleware = (\n\trequest: ModifiedRequest,\n) => ModifiedRequest | Promise<ModifiedRequest>;\n\nexport interface GraphQLClientFetchOptions\n\textends Omit<RequestInit, 'body' | 'method'> {}\n\nexport interface GraphQLClientConfig {\n\tfetch?: typeof globalThis.fetch | null;\n\tfetchOptions?: GraphQLClientFetchOptions;\n\tmiddlewares?: GraphQLClientMiddleware[];\n}\n\n/* ref: https://www.apollographql.com/docs/apollo-server/data/errors/#graphql_parse_failed */\ntype GraphQLErrorExtensionCode =\n\t| 'FORBIDDEN'\n\t| 'UNAUTHORIZED'\n\t| 'BAD_REQUEST'\n\t| 'BAD_USER_INPUT'\n\t| 'INTERNAL_SERVER_ERROR'\n\t| 'ACCESS_TOKEN_EXPIRED';\n\ninterface GraphQLErrorExtensions {\n\tcode: GraphQLErrorExtensionCode;\n\tstacktrace: string[];\n}\n\ninterface GraphQLErrorLocation {\n\tline: number;\n\tcolumn: number;\n}\n\ninterface GraphQLError {\n\tpath: string[];\n\tmessage?: string;\n\textensions?: GraphQLErrorExtensions;\n\tlocations: GraphQLErrorLocation[];\n}\n\ntype Getter<T> = () => T;\n\nexport class GraphQLClient {\n\tprivate url: string;\n\tprivate config: Getter<GraphQLClientConfig> | GraphQLClientConfig;\n\n\tconstructor(\n\t\turl: string,\n\t\tconfig: Getter<GraphQLClientConfig> | GraphQLClientConfig = {},\n\t) {\n\t\tthis.url = url;\n\t\tthis.config = config;\n\t}\n\n\tasync request<Data, Variables extends GenericObject = GenericObject>(\n\t\tquery: string,\n\t\tvariables?: Variables,\n\t\tuserOptions?: GraphQLClientFetchOptions,\n\t) {\n\t\tconst config = callIfFn(this.config);\n\t\tconst options = mergeFetchOptions(\n\t\t\t{\n\t\t\t\t...config?.fetchOptions,\n\t\t\t\theaders: new Headers(config?.fetchOptions?.headers),\n\t\t\t},\n\t\t\tuserOptions,\n\t\t);\n\n\t\tconst body = JSON.stringify({\n\t\t\tquery,\n\t\t\tvariables,\n\t\t});\n\n\t\tconst headers = new Headers(options.headers);\n\n\t\theaders.set('Content-Type', 'application/json');\n\t\theaders.set('Accept', 'application/json');\n\n\t\tconst url = new URL(this.url);\n\t\tconst operationInfo = getOperationInfo(query);\n\n\t\tif (operationInfo) {\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\n\t\t}\n\n\t\tconst req = await this.runMiddlewares(\n\t\t\tnew Request(url, {\n\t\t\t\t...options,\n\t\t\t\tbody,\n\t\t\t\theaders,\n\t\t\t\tmethod: 'POST',\n\t\t\t}),\n\t\t\tconfig?.middlewares ?? [],\n\t\t);\n\n\t\treturn await this.exec<Data>(req);\n\t}\n\n\t/** Single file upload */\n\tasync upload<Data, Variables extends GenericObject = GenericObject>(\n\t\tquery: string,\n\t\tvariables: Variables,\n\t\toptions?: GraphQLClientFetchOptions,\n\t) {\n\t\tconst cfg = callIfFn(this.config);\n\t\tconst opts = mergeFetchOptions(\n\t\t\t{\n\t\t\t\t...cfg?.fetchOptions,\n\t\t\t\theaders: new Headers(cfg?.fetchOptions?.headers),\n\t\t\t},\n\t\t\toptions,\n\t\t);\n\n\t\tconst body = this.createUploadBody(query, variables);\n\t\tconst headers = new Headers(opts.headers);\n\n\t\theaders.delete('Content-Type');\n\n\t\tconst url = new URL(this.url);\n\t\tconst operationInfo = getOperationInfo(query);\n\n\t\tif (operationInfo) {\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\n\t\t}\n\n\t\tconst req = await this.runMiddlewares(\n\t\t\tnew Request(url, {\n\t\t\t\t...opts,\n\t\t\t\tbody,\n\t\t\t\theaders,\n\t\t\t\tmethod: 'POST',\n\t\t\t}),\n\t\t\tcfg?.middlewares ?? [],\n\t\t);\n\n\t\treturn await this.exec<Data>(req);\n\t}\n\n\tprivate async exec<T>(request: Request): Promise<OperationResult<never, T>> {\n\t\tconst config = callIfFn(this.config);\n\n\t\tconst fetch_ = config.fetch ?? fetch;\n\n\t\ttry {\n\t\t\tconst res = await fetch_(request);\n\n\t\t\tif (!res.ok) {\n\t\t\t\treturn { ok: false, error: statusCodeToOperationError(res.status) };\n\t\t\t}\n\n\t\t\tconst json = await res.json();\n\t\t\tconst data = json.data;\n\t\t\tconst error = json.errors?.at(0) as GraphQLError | undefined;\n\n\t\t\tif (error) {\n\t\t\t\tif (\n\t\t\t\t\terror.extensions?.code === 'FORBIDDEN' ||\n\t\t\t\t\terror.extensions?.code === 'ACCESS_TOKEN_EXPIRED'\n\t\t\t\t) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: statusCodeToOperationError(403, error.message),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (error.extensions?.code === 'UNAUTHORIZED') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: statusCodeToOperationError(401, error.message),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\terror.extensions?.code === 'BAD_USER_INPUT' ||\n\t\t\t\t\terror.extensions?.code === 'BAD_REQUEST'\n\t\t\t\t) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: statusCodeToOperationError(400, error.message),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t/* Fallback for unknown error codes */\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(500, error.message),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata,\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n\n\tprivate async runMiddlewares(\n\t\treq: ModifiedRequest,\n\t\tmiddlewares: GraphQLClientMiddleware[],\n\t): Promise<ModifiedRequest> {\n\t\tlet result = req.clone();\n\n\t\tfor (const middleware of middlewares) {\n\t\t\tresult = await middleware(result);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate createUploadBody<Variables extends GenericObject = GenericObject>(\n\t\tquery: string,\n\t\tvariables: Variables,\n\t) {\n\t\tconst files = flatten(variables).filter(\n\t\t\t(o) => o.value instanceof File || o.value instanceof Blob,\n\t\t);\n\n\t\tconst body = new FormData();\n\n\t\tbody.append(\n\t\t\t'operations',\n\t\t\tJSON.stringify({\n\t\t\t\tquery,\n\t\t\t\tvariables,\n\t\t\t}),\n\t\t);\n\n\t\tconst map: GenericObject = {};\n\n\t\tfiles.forEach((o, i) => {\n\t\t\tmap[i.toString()] = [`variables.${o.key.join('.')}`];\n\t\t});\n\n\t\tbody.append('map', JSON.stringify(map));\n\n\t\tfiles.forEach((o, i) => {\n\t\t\tbody.append(i.toString(), o.value);\n\t\t});\n\n\t\treturn body;\n\t}\n}\n\nfunction getOperationInfo(query: string) {\n\tconst l = query.match(/(query|mutation)\\s+(\\w+)/);\n\n\tif (!l) return null;\n\n\tconst k = l.at(1);\n\tconst v = l.at(2);\n\n\treturn k && v ? { type: k, name: v } : null;\n}\n\nfunction mergeFetchOptions(\n\ti: GraphQLClientFetchOptions | undefined,\n\tj: GraphQLClientFetchOptions | undefined,\n): GraphQLClientFetchOptions {\n\tif (!i) return j ?? {};\n\tif (!j) return i ?? {};\n\n\treturn {\n\t\t...i,\n\t\t...j,\n\n\t\theaders: mergeHeaders(i.headers, j.headers),\n\t};\n}\n\nfunction mergeHeaders(i: HeadersInit | undefined, j: HeadersInit | undefined) {\n\tif (!i) return j;\n\tif (!j) return i;\n\n\tconst h = new Headers();\n\n\tnew Headers(i).forEach((v, k) => h.append(k, v));\n\tnew Headers(j).forEach((v, k) => h.append(k, v));\n\n\treturn h;\n}\n","export async function sha256(input: string) {\n\tconst msgUint8 = new TextEncoder().encode(input);\n\tconst hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\n\tconst hashArray = Array.from(new Uint8Array(hashBuffer));\n\tconst hashHex = hashArray\n\t\t.map((b) => b.toString(16).padStart(2, '0'))\n\t\t.join('');\n\treturn hashHex;\n}\n","import { cloneDate } from './clone-date.js';\n\nexport function addDays(date: Date, days: number) {\n\tconst result = cloneDate(date);\n\tresult.setDate(result.getDate() + days);\n\treturn result;\n}\n","import { cloneDate } from './clone-date.js';\n\nexport function subMinutes(date: Date, minutes: number) {\n\tconst result = cloneDate(date);\n\tresult.setMinutes(result.getMinutes() - minutes);\n\treturn result;\n}\n","import { addDays } from '../utils/add-days.js';\nimport { isAfter } from '../utils/is-after.js';\nimport { subMinutes } from '../utils/sub-minutes.js';\nimport type { Logger } from './logger.js';\n\nconst AD_CLICK_ID_STORAGE_KEY = 'sdk/ad-click-id';\n\ninterface AdManagerConfig {\n\tlogger: Logger;\n}\n\nexport class AdManager {\n\tprivate logger: Logger;\n\n\tconstructor(config: AdManagerConfig) {\n\t\tthis.logger = config.logger;\n\t}\n\n\tset clickId(value: string | null) {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn;\n\t\t}\n\n\t\tif (value === null) {\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\n\t\t\treturn;\n\t\t}\n\n\t\tconst n = new Date();\n\t\tconst o = JSON.stringify({\n\t\t\tvalue,\n\t\t\texpiresAt: subMinutes(addDays(n, 90), 2).getTime(),\n\t\t});\n\n\t\tlocalStorage.setItem(AD_CLICK_ID_STORAGE_KEY, o);\n\t}\n\n\tget clickId(): string | null {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn null;\n\t\t}\n\n\t\tconst v = localStorage.getItem(AD_CLICK_ID_STORAGE_KEY);\n\n\t\tif (!v) return null;\n\n\t\ttry {\n\t\t\tconst o = JSON.parse(v);\n\n\t\t\tif (!o.value) return null;\n\t\t\tif (!o.expiresAt) return null;\n\n\t\t\tconst d = new Date(o.expiresAt);\n\t\t\tconst n = new Date();\n\n\t\t\tif (isAfter(n, d)) {\n\t\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn o.value;\n\t\t} catch {\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\n}\n","import { cloneDate } from './clone-date.js';\n\nexport function addHours(date: Date, hours: number): Date {\n\tconst result = cloneDate(date);\n\tresult.setHours(result.getHours() + hours);\n\treturn result;\n}\n","import type { Currency, Locale } from './types.js';\n\nexport function getLocaleByCurrency(currency: Currency): Locale {\n\tif (currency === 'INR') return 'en-IN';\n\tif (currency === 'MYR') return 'en-MY';\n\tif (currency === 'IDR') return 'en-ID';\n\tif (currency === 'USD') return 'en-US';\n\treturn 'en-PH';\n}\n\n/*\n * +63 (Philippines)\n * +91 (India)\n * +60 (Malaysia)\n * +62 (Indonesia)\n * +1 (UnitedStates)\n */\nexport function getAreaCodeByLocale(locale: Locale) {\n\tif (locale === 'en-IN') return '+91';\n\tif (locale === 'en-MY') return '+60';\n\tif (locale === 'en-ID') return '+62';\n\tif (locale === 'en-US') return '+1';\n\treturn '+63';\n}\n\n/**\n * @description Ensures mobile number has complete area code\n * @example\n * ```ts\n * addAreaCode('9190010001', 'en-PH'); // +639190010001\n * addAreaCode('09190010001', 'en-PH'); // +639190010001\n * addAreaCode('639190010001', 'en-PH'); // +639190010001\n * addAreaCode('+639190010001', 'en-PH'); // +639190010001\n * ```\n */\nexport function addAreaCode(mobileNumber: string, locale: Locale) {\n\tconst areaCode = getAreaCodeByLocale(locale);\n\n\t/* starts with area code */\n\tif (mobileNumber.startsWith(areaCode)) return mobileNumber;\n\t/* starts with area code without \"+\" */\n\tif (mobileNumber.startsWith(areaCode.substring(1))) return `+${mobileNumber}`;\n\t/* starts with zero */\n\tif (mobileNumber.startsWith('0'))\n\t\treturn `${areaCode}${mobileNumber.substring(1)}`;\n\n\treturn `${areaCode}${mobileNumber}`;\n}\n\nexport function parseFbCxd(input: string) {\n\tconst fbMatch = input.match(/(\\d+_\\d+).*fb\\./);\n\tif (!fbMatch) return null;\n\n\tconst cxd = fbMatch[1];\n\tconst fbAdditionalCxd = input.split(cxd)[1].slice(1); // remove the first char after cxd if separator exists\n\n\treturn { cxd, fbAdditionalCxd };\n}\n","import { addHours } from '../utils/add-hours.js';\nimport { isAfter } from '../utils/is-after.js';\nimport { subMinutes } from '../utils/sub-minutes.js';\nimport type { Logger } from './logger.js';\nimport { parseFbCxd } from './utils.js';\n\nconst CXD_STORAGE_KEY = 'sdk/cxd';\n\ninterface CellexpertConfig {\n\tlogger: Logger;\n}\n\nexport class CellexpertManager {\n\tprivate logger: Logger;\n\n\tconstructor(config: CellexpertConfig) {\n\t\tthis.logger = config.logger;\n\t}\n\n\tset cxd(value: string | null) {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn;\n\t\t}\n\n\t\tif (value === null) {\n\t\t\tlocalStorage.removeItem(CXD_STORAGE_KEY);\n\t\t\treturn;\n\t\t}\n\n\t\tconst oldValue = localStorage.getItem(CXD_STORAGE_KEY) ?? '';\n\n\t\tif (value === oldValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst n = new Date();\n\t\tconst o = JSON.stringify({\n\t\t\tvalue: parseFbCxd(value)?.cxd ?? value,\n\t\t\texpiresAt: subMinutes(addHours(n, 6), 2).getTime(),\n\t\t});\n\n\t\tlocalStorage.setItem(CXD_STORAGE_KEY, o);\n\t}\n\n\tget cxd(): string | null {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn null;\n\t\t}\n\n\t\tconst v = localStorage.getItem(CXD_STORAGE_KEY);\n\n\t\tif (!v) return null;\n\n\t\ttry {\n\t\t\tconst o = JSON.parse(v);\n\n\t\t\tif (!o.value) return null;\n\t\t\tif (!o.expiresAt) return null;\n\n\t\t\tconst d = new Date(o.expiresAt);\n\t\t\tconst n = new Date();\n\n\t\t\tif (isAfter(n, d)) {\n\t\t\t\tlocalStorage.removeItem(CXD_STORAGE_KEY);\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn o.value;\n\t\t} catch {\n\t\t\tlocalStorage.removeItem(CXD_STORAGE_KEY);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\n}\n","interface LoggerConfig {\n\t/**\n\t * @default true\n\t */\n\tenabled?: boolean;\n}\n\nexport class Logger {\n\tprivate enabled: boolean;\n\n\tconstructor(config?: LoggerConfig) {\n\t\tthis.enabled = config?.enabled ?? true;\n\t}\n\n\tinfo(message: string) {\n\t\tif (this.enabled) console.log(`\\x1b[34m[info] ${message}`);\n\t}\n\n\twarn(message: string) {\n\t\tif (this.enabled) console.log(`\\x1b[33m[warn] ${message}`);\n\t}\n\n\terror(message: string) {\n\t\tif (this.enabled) console.log(`\\x1b[31m[error] ${message}`);\n\t}\n\n\tsuccess(message: string) {\n\t\tif (this.enabled) console.log(`\\x1b[32m[success] ${message}`);\n\t}\n}\n","export function sleep(ms: number) {\n\treturn new Promise<void>((resolve) => {\n\t\tsetTimeout(resolve, ms);\n\t});\n}\n","import { sleep } from './sleep.js';\n\ninterface Config<T> {\n\tuntil(response: T): boolean;\n\t/**\n\t * @default 1000\n\t */\n\tinterval?: number;\n\t/**\n\t * @default 3\n\t */\n\tmaxAttempt?: number;\n}\n\n/**\n * @example\n * ```ts\n * const poll = pollable(\n * fn,\n * {\n * until: (r) => r.ok,\n * interval: 1000,\n * maxAttempt: 5,\n * }\n * );\n *\n * poll()\n * ```\n */\nexport function pollable<Return, Args = never>(\n\tfunc: (...args: Args[]) => Promise<Return>,\n\tconfig: Config<Return>,\n) {\n\tconst {\n\t\tuntil,\n\t\tinterval = 1000,\n\t\tmaxAttempt = 3,\n\t\t/**/\n\t} = config;\n\n\tasync function repeater(args: Args[], max?: number) {\n\t\tconst m = max ?? maxAttempt;\n\t\tconst r = await func(...args);\n\t\tconst k = until(r);\n\n\t\tif (k) return r;\n\n\t\tif (m > 1) {\n\t\t\tawait sleep(interval * ((maxAttempt - m) / 2));\n\t\t\treturn repeater(args, m - 1);\n\t\t}\n\n\t\treturn r;\n\t}\n\n\treturn async (...args: Args[]): Promise<Return> => {\n\t\treturn await repeater(args);\n\t};\n}\n","import type { AuthService, WalletService } from '../services/index.js';\nimport type { OperationResult } from '../types/index.js';\nimport { addDays } from '../utils/add-days.js';\nimport { addMinutes } from '../utils/add-minutes.js';\nimport { isAfter } from '../utils/is-after.js';\nimport { pollable } from '../utils/pollable.js';\nimport { sleep } from '../utils/sleep.js';\nimport { subMinutes } from '../utils/sub-minutes.js';\nimport type { Logger } from './logger.js';\nimport type {\n\tAuthenticateError,\n\tAuthenticateInput,\n\tAuthenticator,\n\tRefreshSessionError,\n\tSession,\n\tSignInError,\n\tSignInInput,\n} from './types.js';\n\ninterface Data {\n\tsession: Session;\n\taccessToken: string;\n\taccessTokenExpiresAt: number;\n\trefreshToken: string;\n\trefreshTokenExpiresAt: number;\n}\n\ninterface SessionManagerConfig {\n\tlogger: Logger;\n\tauthService: AuthService;\n\twalletService: WalletService;\n\tsessionPrefix?: string;\n}\n\nexport class SessionManager {\n\tprivate logger: Logger;\n\tprivate storageKey = 'session';\n\tprivate platformStorageKey = 'session/platform';\n\tprivate authService: AuthService;\n\tprivate walletService: WalletService;\n\tprivate _refreshing = false;\n\n\tconstructor(config: SessionManagerConfig) {\n\t\tthis.authService = config.authService;\n\t\tthis.walletService = config.walletService;\n\t\tthis.logger = config.logger;\n\t\tif (config.sessionPrefix) {\n\t\t\tthis.storageKey = `${config.sessionPrefix}/${this.storageKey}`;\n\t\t\tthis.platformStorageKey = `${config.sessionPrefix}/${this.platformStorageKey}`;\n\t\t}\n\t}\n\n\tget refreshing() {\n\t\treturn this._refreshing;\n\t}\n\n\tset refreshing(value: boolean) {\n\t\tthis._refreshing = value;\n\t}\n\n\tasync create(\n\t\tinput: SignInInput,\n\t): Promise<\n\t\tOperationResult<SignInError, { authenticator: Authenticator } | null>\n\t> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Server sign in is not supported.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\t/*\n\t\t * Maya Sign In\n\t\t */\n\t\tif (input.type === 'MAYA') {\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\n\n\t\t\tconst f0 = () => this.walletService.mayaSession({ id: input.sessionId });\n\t\t\tconst r0 = await pollable(f0, {\n\t\t\t\tuntil: (r) => r.ok && r.data?.member != null,\n\t\t\t\tinterval: 1000,\n\t\t\t\tmaxAttempt: 5,\n\t\t\t})();\n\n\t\t\tif (!r0.ok) return r0;\n\t\t\tif (!r0.data?.member) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tname: 'HttpForbidden',\n\t\t\t\t\t\tmessage: 'Forbidden',\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst f1 = () => this.authService.createSession(input);\n\t\t\tconst r1 = await pollable(f1, {\n\t\t\t\tuntil: (r) => r.ok,\n\t\t\t\tinterval: 1000,\n\t\t\t\tmaxAttempt: 5,\n\t\t\t})();\n\n\t\t\tif (!r1.ok) return r1;\n\n\t\t\tconst now = new Date();\n\n\t\t\tlocalStorage.setItem(\n\t\t\t\tthis.storageKey,\n\t\t\t\tJSON.stringify({\n\t\t\t\t\t...r1.data,\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t}),\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\t/*\n\t\t * Mobile Number Sign In\n\t\t */\n\t\tif (input.type === 'MOBILE_NUMBER') {\n\t\t\tconst res = await this.authService.createSession(input);\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst now = new Date();\n\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\t/**\n\t\t * Token sign up (for 3rd party sign in)\n\t\t */\n\t\tif (input.type === 'SOCIALS' || input.type === 'TOKEN') {\n\t\t\tconst res = await this.authService.createSession({\n\t\t\t\ttype: 'SOCIALS',\n\t\t\t\ttoken: input.token,\n\t\t\t\tchannel: input.channel,\n\t\t\t});\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst now = new Date();\n\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\t/**\n\t\t * Cabinet sign in\n\t\t */\n\t\tif (input.type === 'CABINET') {\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\n\n\t\t\tconst res = await this.authService.createSession(input);\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst now = new Date();\n\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\t/*\n\t\t * Name and Password Sign In\n\t\t */\n\t\tconst res = await this.authService.createSession(input);\n\n\t\tif (!res.ok) return res;\n\n\t\t/*\n\t\t * 2FA enabled\n\t\t */\n\t\tif (res.data.authenticator) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: {\n\t\t\t\t\tauthenticator: res.data.authenticator,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst now = new Date();\n\n\t\tlocalStorage.setItem(\n\t\t\tthis.storageKey,\n\t\t\tJSON.stringify({\n\t\t\t\t...res.data,\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t}),\n\t\t);\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: null,\n\t\t};\n\t}\n\n\tasync createFromAuthenticator(\n\t\tinput: AuthenticateInput,\n\t): Promise<OperationResult<AuthenticateError>> {\n\t\tconst res = await this.authService.authenticate(input);\n\n\t\tif (res.ok) {\n\t\t\tconst now = new Date();\n\n\t\t\tif (this.isServer) {\n\t\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\t} else {\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn { ok: true };\n\t\t} else {\n\t\t\treturn res;\n\t\t}\n\t}\n\n\tasync get(): Promise<OperationResult<RefreshSessionError, Data | null>> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\tif (this.refreshing) {\n\t\t\tawait sleep(1000);\n\t\t\treturn await this.get();\n\t\t}\n\n\t\tconst val = localStorage.getItem(this.storageKey);\n\n\t\tif (!val) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tlet obj: {\n\t\t\t\tsession: Session;\n\t\t\t\taccessToken: string;\n\t\t\t\taccessTokenExpiresAt: number;\n\t\t\t\trefreshToken: string;\n\t\t\t\trefreshTokenExpiresAt: number;\n\t\t\t} = JSON.parse(val);\n\n\t\t\tlet now = new Date();\n\n\t\t\tconst accessTokenExpiresAt = new Date(obj.accessTokenExpiresAt);\n\t\t\tconst refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);\n\n\t\t\t/* is refresh token expired? */\n\t\t\tif (isAfter(now, refreshTokenExpiresAt)) {\n\t\t\t\tthis.logger.warn('Session expired. Logging out..');\n\n\t\t\t\tlocalStorage.removeItem(this.storageKey);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tname: 'SessionExpiredError',\n\t\t\t\t\t\tmessage: 'Session expired.',\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t/* is access token expired? */\n\t\t\tif (isAfter(now, accessTokenExpiresAt)) {\n\t\t\t\tthis.logger.info('Refreshing session...');\n\n\t\t\t\tthis.refreshing = true;\n\n\t\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\n\n\t\t\t\tthis.refreshing = false;\n\n\t\t\t\tif (!res.ok) {\n\t\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\n\n\t\t\t\t\t/*\n\t\t\t\t\t * return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\n\t\t\t\t\t */\n\t\t\t\t\tif (\n\t\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\n\t\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\n\t\t\t\t\t\tres.error.name === 'VerificationLockedError'\n\t\t\t\t\t) {\n\t\t\t\t\t\tlocalStorage.removeItem(this.storageKey);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tok: false,\n\t\t\t\t\t\t\terror: res.error,\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.logger.warn('Old session returned.');\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tok: true,\n\t\t\t\t\t\t\tdata: obj,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.logger.success('Session refreshed!');\n\n\t\t\t\tnow = new Date();\n\t\t\t\tobj = {\n\t\t\t\t\t...obj,\n\t\t\t\t\t...res.data,\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t};\n\n\t\t\t\tlocalStorage.setItem(this.storageKey, JSON.stringify(obj));\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: obj,\n\t\t\t};\n\t\t} catch {\n\t\t\t/* Did they modify session in localStorage? */\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n\n\tasync refresh(): Promise<OperationResult<RefreshSessionError, Data | null>> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\tconst val = localStorage.getItem(this.storageKey);\n\n\t\tif (!val) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tlet obj: {\n\t\t\t\tsession: Session;\n\t\t\t\taccessToken: string;\n\t\t\t\taccessTokenExpiresAt: number;\n\t\t\t\trefreshToken: string;\n\t\t\t\trefreshTokenExpiresAt: number;\n\t\t\t} = JSON.parse(val);\n\n\t\t\tlet now = new Date();\n\n\t\t\tthis.logger.info('Refreshing session...');\n\n\t\t\tthis.refreshing = true;\n\n\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\n\n\t\t\tthis.refreshing = false;\n\n\t\t\tif (!res.ok) {\n\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\n\n\t\t\t\t/*\n\t\t\t\t\t* return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\n\t\t\t\t\t*/\n\t\t\t\tif (\n\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\n\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\n\t\t\t\t\tres.error.name === 'VerificationLockedError'\n\t\t\t\t) {\n\t\t\t\t\tlocalStorage.removeItem(this.storageKey);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: res.error,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger.warn('Old session returned.');\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: true,\n\t\t\t\t\t\tdata: obj,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.logger.success('Session refreshed!');\n\n\t\t\tnow = new Date();\n\t\t\tobj = {\n\t\t\t\t...obj,\n\t\t\t\t...res.data,\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t};\n\n\t\t\tlocalStorage.setItem(this.storageKey, JSON.stringify(obj));\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: obj,\n\t\t\t};\n\t\t} catch {\n\t\t\t/* Did they modify session in localStorage? */\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n\n\tasync destroy() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst res = await this.get();\n\n\t\tif (res.data?.accessToken) {\n\t\t\tawait this.authService.destroySession(res.data.accessToken);\n\t\t}\n\n\t\tlocalStorage.removeItem(this.storageKey);\n\t}\n\n\tasync verify(): Promise<boolean> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn true;\n\t\t}\n\n\t\tconst s = await this.get();\n\n\t\tif (s.error?.name === 'InvalidTokenError') return false;\n\t\tif (s.error?.name === 'SessionExpiredError') return false;\n\t\tif (s.error?.name === 'AccountBlacklistedError') return false;\n\n\t\t/* Not logged in or session is not expired */\n\t\tif (!s.data) return true;\n\n\t\tconst v = await this.authService.verifySession(s.data.accessToken);\n\n\t\t/* log out if session is no longer valid */\n\t\tif (!v) {\n\t\t\tlocalStorage.removeItem(this.storageKey);\n\t\t}\n\n\t\treturn v;\n\t}\n\n\tget onMaya() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\n\t}\n\n\tget onCabinet() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\n}\n","import cookies from 'js-cookie';\nimport type { AuthService, WalletService } from '../services/index.js';\nimport type { OperationResult } from '../types/index.js';\nimport { addDays } from '../utils/add-days.js';\nimport { addMinutes } from '../utils/add-minutes.js';\nimport { isAfter } from '../utils/is-after.js';\nimport { pollable } from '../utils/pollable.js';\nimport { sleep } from '../utils/sleep.js';\nimport { subMinutes } from '../utils/sub-minutes.js';\nimport type { Logger } from './logger.js';\nimport type {\n\tAuthenticateError,\n\tAuthenticateInput,\n\tAuthenticator,\n\tRefreshSessionError,\n\tSession,\n\tSignInError,\n\tSignInInput,\n} from './types.js';\n\ninterface Data {\n\tsession: Session;\n\taccessToken: string;\n\taccessTokenExpiresAt: number;\n\trefreshToken: string;\n\trefreshTokenExpiresAt: number;\n}\n\ninterface SessionManagerConfig {\n\tlogger: Logger;\n\tauthService: AuthService;\n\twalletService: WalletService;\n}\n\nexport class SessionManagerCookie {\n\tprivate logger: Logger;\n\tprivate storageKey = 'session';\n\tprivate platformStorageKey = 'session/platform';\n\tprivate authService: AuthService;\n\tprivate walletService: WalletService;\n\tprivate _refreshing = false;\n\n\tconstructor(config: SessionManagerConfig) {\n\t\tthis.authService = config.authService;\n\t\tthis.walletService = config.walletService;\n\t\tthis.logger = config.logger;\n\t}\n\n\tget refreshing() {\n\t\treturn this._refreshing;\n\t}\n\n\tset refreshing(value: boolean) {\n\t\tthis._refreshing = value;\n\t}\n\n\tasync create(\n\t\tinput: SignInInput,\n\t): Promise<\n\t\tOperationResult<SignInError, { authenticator: Authenticator } | null>\n\t> {\n\t\t/*\n\t\t * Maya Sign In\n\t\t */\n\t\tif (input.type === 'MAYA') {\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\n\n\t\t\tconst f0 = () => this.walletService.mayaSession({ id: input.sessionId });\n\t\t\tconst r0 = await pollable(f0, {\n\t\t\t\tuntil: (r) => r.ok && r.data?.member != null,\n\t\t\t\tinterval: 1000,\n\t\t\t\tmaxAttempt: 5,\n\t\t\t})();\n\n\t\t\tif (!r0.ok) return r0;\n\t\t\tif (!r0.data?.member) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tname: 'HttpForbidden',\n\t\t\t\t\t\tmessage: 'Forbidden',\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst f1 = () => this.authService.createSession(input);\n\t\t\tconst r1 = await pollable(f1, {\n\t\t\t\tuntil: (r) => r.ok,\n\t\t\t\tinterval: 1000,\n\t\t\t\tmaxAttempt: 5,\n\t\t\t})();\n\n\t\t\tif (!r1.ok) return r1;\n\n\t\t\tconst now = new Date();\n\n\t\t\tcookies.set(\n\t\t\t\tthis.storageKey,\n\t\t\t\tJSON.stringify({\n\t\t\t\t\t...r1.data,\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t}),\n\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\t/*\n\t\t * Mobile Number Sign In\n\t\t */\n\t\tif (input.type === 'MOBILE_NUMBER') {\n\t\t\tconst res = await this.authService.createSession(input);\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst now = new Date();\n\n\t\t\t\tcookies.set(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t\t{\n\t\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\t/**\n\t\t * Token sign up (for 3rd party sign in)\n\t\t */\n\t\tif (input.type === 'SOCIALS' || input.type === 'TOKEN') {\n\t\t\tconst res = await this.authService.createSession({\n\t\t\t\ttype: 'SOCIALS',\n\t\t\t\ttoken: input.token,\n\t\t\t});\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst now = new Date();\n\n\t\t\t\tcookies.set(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\t/**\n\t\t * Cabinet sign in\n\t\t */\n\t\tif (input.type === 'CABINET') {\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\n\n\t\t\tconst res = await this.authService.createSession(input);\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst now = new Date();\n\n\t\t\t\tcookies.set(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\t/*\n\t\t * Name and Password Sign In\n\t\t */\n\t\tconst res = await this.authService.createSession(input);\n\n\t\tif (!res.ok) return res;\n\n\t\t/*\n\t\t * 2FA enabled\n\t\t */\n\t\tif (res.data.authenticator) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: {\n\t\t\t\t\tauthenticator: res.data.authenticator,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst now = new Date();\n\n\t\tcookies.set(\n\t\t\tthis.storageKey,\n\t\t\tJSON.stringify({\n\t\t\t\t...res.data,\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t}),\n\t\t\t{},\n\t\t);\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: null,\n\t\t};\n\t}\n\n\tasync createFromAuthenticator(\n\t\tinput: AuthenticateInput,\n\t): Promise<OperationResult<AuthenticateError>> {\n\t\tconst res = await this.authService.authenticate(input);\n\n\t\tif (res.ok) {\n\t\t\tconst now = new Date();\n\n\t\t\tif (this.isServer) {\n\t\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\n\t\t\t} else {\n\t\t\t\tcookies.set(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t\t{\n\t\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn { ok: true };\n\t\t} else {\n\t\t\treturn res;\n\t\t}\n\t}\n\n\tasync get(): Promise<OperationResult<RefreshSessionError, Data | null>> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\tif (this.refreshing) {\n\t\t\tawait sleep(1000);\n\t\t\treturn await this.get();\n\t\t}\n\n\t\tconst val = cookies.get(this.storageKey);\n\n\t\tif (!val) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tlet obj: {\n\t\t\t\tsession: Session;\n\t\t\t\taccessToken: string;\n\t\t\t\taccessTokenExpiresAt: number;\n\t\t\t\trefreshToken: string;\n\t\t\t\trefreshTokenExpiresAt: number;\n\t\t\t} = JSON.parse(val);\n\n\t\t\tlet now = new Date();\n\n\t\t\tconst accessTokenExpiresAt = new Date(obj.accessTokenExpiresAt);\n\t\t\tconst refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);\n\n\t\t\t/* is refresh token expired? */\n\t\t\tif (isAfter(now, refreshTokenExpiresAt)) {\n\t\t\t\tthis.logger.warn('Session expired. Logging out..');\n\n\t\t\t\tcookies.remove(this.storageKey);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tname: 'SessionExpiredError',\n\t\t\t\t\t\tmessage: 'Session expired.',\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t/* is access token expired? */\n\t\t\tif (isAfter(now, accessTokenExpiresAt)) {\n\t\t\t\tthis.logger.info('Refreshing session...');\n\n\t\t\t\tthis.refreshing = true;\n\n\t\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\n\n\t\t\t\tthis.refreshing = false;\n\n\t\t\t\tif (!res.ok) {\n\t\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\n\n\t\t\t\t\t/*\n\t\t\t\t\t * return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\n\t\t\t\t\t */\n\t\t\t\t\tif (\n\t\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\n\t\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\n\t\t\t\t\t\tres.error.name === 'VerificationLockedError'\n\t\t\t\t\t) {\n\t\t\t\t\t\tcookies.remove(this.storageKey);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tok: false,\n\t\t\t\t\t\t\terror: res.error,\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.logger.warn('Old session returned.');\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tok: true,\n\t\t\t\t\t\t\tdata: obj,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.logger.success('Session refreshed!');\n\n\t\t\t\tnow = new Date();\n\t\t\t\tobj = {\n\t\t\t\t\t...obj,\n\t\t\t\t\t...res.data,\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t};\n\n\t\t\t\tcookies.set(this.storageKey, JSON.stringify(obj), {\n\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: obj,\n\t\t\t};\n\t\t} catch {\n\t\t\t/* Did they modify session in cookies? */\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n\n\tasync refresh(): Promise<OperationResult<RefreshSessionError, Data | null>> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\tconst val = cookies.get(this.storageKey);\n\n\t\tif (!val) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tlet obj: {\n\t\t\t\tsession: Session;\n\t\t\t\taccessToken: string;\n\t\t\t\taccessTokenExpiresAt: number;\n\t\t\t\trefreshToken: string;\n\t\t\t\trefreshTokenExpiresAt: number;\n\t\t\t} = JSON.parse(val);\n\n\t\t\tlet now = new Date();\n\n\t\t\tthis.logger.info('Refreshing session...');\n\n\t\t\tthis.refreshing = true;\n\n\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\n\n\t\t\tthis.refreshing = false;\n\n\t\t\tif (!res.ok) {\n\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\n\n\t\t\t\t/*\n\t\t\t\t\t* return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\n\t\t\t\t\t*/\n\t\t\t\tif (\n\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\n\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\n\t\t\t\t\tres.error.name === 'VerificationLockedError'\n\t\t\t\t) {\n\t\t\t\t\tcookies.remove(this.storageKey);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: res.error,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger.warn('Old session returned.');\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: true,\n\t\t\t\t\t\tdata: obj,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.logger.success('Session refreshed!');\n\n\t\t\tnow = new Date();\n\t\t\tobj = {\n\t\t\t\t...obj,\n\t\t\t\t...res.data,\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t};\n\n\t\t\tcookies.set(this.storageKey, JSON.stringify(obj), {\n\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: obj,\n\t\t\t};\n\t\t} catch {\n\t\t\t/* Did they modify session in cookies? */\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n\n\tasync destroy() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst res = await this.get();\n\n\t\tif (res.data?.accessToken) {\n\t\t\tawait this.authService.destroySession(res.data.accessToken);\n\t\t}\n\n\t\tcookies.remove(this.storageKey);\n\t}\n\n\tasync verify(): Promise<boolean> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\n\t\t\treturn true;\n\t\t}\n\n\t\tconst s = await this.get();\n\n\t\tif (s.error?.name === 'InvalidTokenError') return false;\n\t\tif (s.error?.name === 'SessionExpiredError') return false;\n\t\tif (s.error?.name === 'AccountBlacklistedError') return false;\n\n\t\t/* Not logged in or session is not expired */\n\t\tif (!s.data) return true;\n\n\t\tconst v = await this.authService.verifySession(s.data.accessToken);\n\n\t\t/* log out if session is no longer valid */\n\t\tif (!v) {\n\t\t\tcookies.remove(this.storageKey);\n\t\t}\n\n\t\treturn v;\n\t}\n\n\tget onMaya() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\n\t}\n\n\tget onCabinet() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\n}\n","import { isPlainObject } from './is-plain-object.js';\n\nexport function compact<T>(obj: Record<string, any>) {\n\tconst output: Record<string, any> = {};\n\n\tfor (const k in obj) {\n\t\tconst v = obj[k];\n\n\t\tif (v === null) continue;\n\t\tif (v === undefined) continue;\n\n\t\tif (isPlainObject(v)) {\n\t\t\toutput[k] = compact(v);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (Array.isArray(v)) {\n\t\t\toutput[k] = v.map((i) => {\n\t\t\t\tif (isPlainObject(i)) {\n\t\t\t\t\treturn compact(i);\n\t\t\t\t} else {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tcontinue;\n\t\t}\n\n\t\toutput[k] = v;\n\t}\n\n\treturn output as T;\n}\n","export function invariant(\n\tcondition: unknown,\n\tmessage?: string,\n): asserts condition {\n\tif (!condition) {\n\t\tconst error = new Error();\n\t\terror.name = 'Invariant Violation';\n\t\terror.message = message ?? 'Invariant failed';\n\t\tError.captureStackTrace?.(error, invariant);\n\t\tthrow error;\n\t}\n}\n","type MaybeNumber = number | string | undefined | null;\n\nexport function parseDecimal(value: MaybeNumber): number | undefined;\nexport function parseDecimal(value: MaybeNumber, fallback: number): number;\nexport function parseDecimal(value: MaybeNumber, fallback?: number) {\n\tif (typeof value === 'number') {\n\t\tif (!Number.isNaN(value)) return value;\n\t}\n\n\tif (typeof value === 'string') {\n\t\tconst parsed = Number.parseFloat(value);\n\n\t\tif (!Number.isNaN(parsed)) {\n\t\t\treturn parsed;\n\t\t}\n\t}\n\n\treturn fallback;\n}\n","import type * as Internal from '../services/index.js';\nimport type { Assign } from '../types/index.js';\nimport { compact } from '../utils/compact.js';\nimport { invariant } from '../utils/invariant.js';\nimport { parseDecimal } from '../utils/parse-decimal.js';\nimport type * as External from './types.js';\nimport { getLocaleByCurrency } from './utils.js';\n\nconst IMAGE_CACHE_ID = '3'.padStart(8, '0');\n\nexport class Transformer {\n\tget transform() {\n\t\treturn {\n\t\t\tsite: this.site.bind(this),\n\t\t\tplatform: this.platform.bind(this),\n\t\t\taccount: this.account.bind(this),\n\t\t\twallet: this.wallet.bind(this),\n\t\t\tverificationDetails: this.verificationDetails.bind(this),\n\t\t\tprofileCompletion: this.profileCompletion.bind(this),\n\t\t\tannouncement: this.announcement.bind(this),\n\t\t\twithdrawalRecord: this.withdrawalRecord.bind(this),\n\t\t\tdeposit: this.deposit.bind(this),\n\t\t\tcabinetWithdrawal: this.cabinetWithdrawal.bind(this),\n\t\t\tdepositRecord: this.depositRecord.bind(this),\n\t\t\tbetRecord: this.betRecord.bind(this),\n\t\t\tlatestBetRecord: this.latestBetRecord.bind(this),\n\t\t\ttransactionRecord: this.transactionRecord.bind(this),\n\t\t\tgame: this.game.bind(this),\n\t\t\tgameSession: this.gameSession.bind(this),\n\t\t\tpromo: this.promo.bind(this),\n\t\t\tcashback: this.cashback.bind(this),\n\t\t\tbonus: this.bonus.bind(this),\n\t\t\tcashbackBonus: this.cashbackBonus.bind(this),\n\t\t\tmemberCabinetSiteMachine: this.memberCabinetSiteMachine.bind(this),\n\t\t\tfile: this.file.bind(this),\n\t\t\tpointsWallet: this.pointsWallet.bind(this),\n\t\t\tpointsWalletTransaction: this.pointsWalletTransaction.bind(this),\n\t\t\tactivityRecord: this.activityRecord.bind(this),\n\t\t\treferral: this.referral.bind(this),\n\t\t\treferralCommission: this.referralCommission.bind(this),\n\t\t\tplatform__next: this.platform__next.bind(this),\n\t\t\tpointsClubSettings: this.pointsClubSettings.bind(this),\n\t\t\tpaymentSettings: this.paymentSettings.bind(this),\n\t\t\tmessage: this.message.bind(this),\n\t\t\tinstapayBank: this.instapayBank.bind(this),\n\t\t\tpromoByCode: this.promoByCode.bind(this),\n\t\t\tquest: this.quest.bind(this),\n\t\t\ttopWin: this.topWin.bind(this),\n\t\t\tjackpots: this.jackpots.bind(this),\n\t\t\tjackpotPayouts: this.jackpotPayouts.bind(this),\n\t\t\ttournaments: this.tournaments.bind(this),\n\t\t\tmemberLevelSettings: this.memberLevelSettings.bind(this),\n\t\t\tachievementSettings: this.achievementSettings.bind(this),\n\t\t\tachievementPointsHistoryRecord:\n\t\t\t\tthis.achievementPointsHistoryRecord.bind(this),\n\t\t\tmemberAchievements: this.memberAchievements.bind(this),\n\t\t};\n\t}\n\n\tprivate site(data: Internal.Site): External.Site {\n\t\tconst o: External.Site = {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tlogo: data.logo ?? undefined,\n\t\t\tfields: data.config.fields,\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\t/** @deprecated */\n\tprivate platform(data: Internal.Platform): External.Platform {\n\t\treturn {\n\t\t\ttimezone: data.timezone,\n\t\t\tcurrency: data.currency,\n\t\t\tpaymentSettings: {\n\t\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\n\t\t\t\trestrictWithdrawalsToVerifiedMembers:\n\t\t\t\t\tdata.restrictWithdrawalsToVerifiedMembers,\n\t\t\t\tdepositGateway: {\n\t\t\t\t\tbank: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tgcash: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tgcashWebpay: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\taioGcash: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\taioPayMaya: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\taioGrabPay: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\taioPalawanPay: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.mobileWebEnabled ??\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmaya: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmayaApp: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmayaWebpay: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tonlineBank: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tqrph: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmanualBank: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tbankAccountName:\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountName,\n\t\t\t\t\t\tbankAccountNumber:\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountNumber,\n\t\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\n\t\t\t\t\t},\n\t\t\t\t\tmanualUPI: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\n\t\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\n\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t: (this.file(\n\t\t\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings.upiQRCode,\n\t\t\t\t\t\t\t\t) as Extract<External.File, { status: 'READY' }>),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\twithdrawalGateway: {\n\t\t\t\t\tbank: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tgcash: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tgcashStandardCashIn: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings\n\t\t\t\t\t\t\t\t?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.iosEnabled ??\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.webEnabled ??\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings\n\t\t\t\t\t\t\t\t?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmaya: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmayaApp: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tinstapay: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmanualBank: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ??\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmanualUPI: {\n\t\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled:\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ??\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tpointsClubSettings: {\n\t\t\t\tmultiplier: parseDecimal(data.pointsClubSettings?.multiplier, 0),\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate platform__next(\n\t\tdata: Internal.Platform__Next,\n\t): External.Platform__Next {\n\t\treturn {\n\t\t\tcurrency: data.currency,\n\t\t\ttimezone: data.timezone,\n\t\t\tlocale: getLocaleByCurrency(data.currency),\n\t\t};\n\t}\n\n\tprivate memberLevelSettings(\n\t\tdata: Internal.MemberLevelSettings,\n\t): External.MemberLevelSettings {\n\t\treturn {\n\t\t\tmemberLevelSettings__1: {\n\t\t\t\tenabled: data.memberLevelSettings__1.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__1?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__1?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__1?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__1?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__1?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__2: {\n\t\t\t\tenabled: data.memberLevelSettings__2.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__2?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__2?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__2?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__2?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__2?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__3: {\n\t\t\t\tenabled: data.memberLevelSettings__3.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__3?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__3?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__3?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__3?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__3?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__4: {\n\t\t\t\tenabled: data.memberLevelSettings__4.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__4?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__4?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__4?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__4?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__4?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__5: {\n\t\t\t\tenabled: data.memberLevelSettings__5.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__5?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__5?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__5?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__5?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__5?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__6: {\n\t\t\t\tenabled: data.memberLevelSettings__6.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__6?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__6?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__6?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__6?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__6?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__7: {\n\t\t\t\tenabled: data.memberLevelSettings__7.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__7?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__7?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__7?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__7?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__7?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__8: {\n\t\t\t\tenabled: data.memberLevelSettings__8.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__8?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__8?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__8?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__8?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__8?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__9: {\n\t\t\t\tenabled: data.memberLevelSettings__9.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__9?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__9?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__9?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__9?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__9?.bonusAmount ?? 0,\n\t\t\t},\n\t\t\tmemberLevelSettings__10: {\n\t\t\t\tenabled: data.memberLevelSettings__10.enabled ?? false,\n\t\t\t\tachievementPointsRequirement:\n\t\t\t\t\tdata.memberLevelSettings__10?.achievementPointsRequirement ?? 0,\n\t\t\t\tturnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__10?.turnoverRequirement ?? 0,\n\t\t\t\tbonusTurnoverRequirement:\n\t\t\t\t\tdata.memberLevelSettings__10?.bonusTurnoverRequirement ?? 0,\n\t\t\t\tname: data.memberLevelSettings__10?.name ?? '',\n\t\t\t\tbonusAmount: data.memberLevelSettings__10?.bonusAmount ?? 0,\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate achievementSettings(\n\t\tdata: Internal.AchievementSettingsResponse,\n\t): External.AchievementSettingsResponse {\n\t\treturn {\n\t\t\tdiverseDebut: {\n\t\t\t\tenabled: data.diverseDebut.enabled ?? false,\n\t\t\t\tpoints: data.diverseDebut.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.diverseDebut.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.diverseDebut.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.diverseDebut.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.diverseDebut.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tvarietyVirtuoso: {\n\t\t\t\tenabled: data.varietyVirtuoso.enabled ?? false,\n\t\t\t\tpoints: data.varietyVirtuoso.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.varietyVirtuoso.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.varietyVirtuoso.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.varietyVirtuoso.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.varietyVirtuoso.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tmasterOfDiversity: {\n\t\t\t\tenabled: data.masterOfDiversity.enabled ?? false,\n\t\t\t\tpoints: data.masterOfDiversity.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.masterOfDiversity.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.masterOfDiversity.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.masterOfDiversity.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.masterOfDiversity.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tcuriousNewcomer: {\n\t\t\t\tenabled: data.curiousNewcomer.enabled ?? false,\n\t\t\t\tpoints: data.curiousNewcomer.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.curiousNewcomer.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.curiousNewcomer.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.curiousNewcomer.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.curiousNewcomer.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\ttrailblazer: {\n\t\t\t\tenabled: data.trailblazer.enabled ?? false,\n\t\t\t\tpoints: data.trailblazer.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.trailblazer.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.trailblazer.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.trailblazer.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.trailblazer.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tinnovationIcon: {\n\t\t\t\tenabled: data.innovationIcon.enabled ?? false,\n\t\t\t\tpoints: data.innovationIcon.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.innovationIcon.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.innovationIcon.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.innovationIcon.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.innovationIcon.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\trapidRoller: {\n\t\t\t\tenabled: data.rapidRoller.enabled ?? false,\n\t\t\t\tpoints: data.rapidRoller.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.rapidRoller.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.rapidRoller.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.rapidRoller.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.rapidRoller.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\twhirlwindWagerer: {\n\t\t\t\tenabled: data.whirlwindWagerer.enabled ?? false,\n\t\t\t\tpoints: data.whirlwindWagerer.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.whirlwindWagerer.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.whirlwindWagerer.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.whirlwindWagerer.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.whirlwindWagerer.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tbettingBonanza: {\n\t\t\t\tenabled: data.bettingBonanza.enabled ?? false,\n\t\t\t\tpoints: data.bettingBonanza.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.bettingBonanza.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.bettingBonanza.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.bettingBonanza.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.bettingBonanza.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tsteadyStrategist: {\n\t\t\t\tenabled: data.steadyStrategist.enabled ?? false,\n\t\t\t\tpoints: data.steadyStrategist.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.steadyStrategist.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.steadyStrategist.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.steadyStrategist.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.steadyStrategist.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tconsistentContender: {\n\t\t\t\tenabled: data.consistentContender.enabled ?? false,\n\t\t\t\tpoints: data.consistentContender.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.consistentContender.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.consistentContender.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.consistentContender.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.consistentContender.activeDaysCount ?? 0,\n\t\t\t},\n\t\t\tlegendaryLoyalist: {\n\t\t\t\tenabled: data.legendaryLoyalist.enabled ?? false,\n\t\t\t\tpoints: data.legendaryLoyalist.points ?? 0,\n\t\t\t\tuniqueGamesCount: data.legendaryLoyalist.uniqueGamesCount ?? 0,\n\t\t\t\tnewGamesCount: data.legendaryLoyalist.newGamesCount ?? 0,\n\t\t\t\tbetsCount: data.legendaryLoyalist.betsCount ?? 0,\n\t\t\t\tactiveDaysCount: data.legendaryLoyalist.activeDaysCount ?? 0,\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate pointsClubSettings(\n\t\tdata: Internal.PointsClubSettings,\n\t): External.PointsClubSettings {\n\t\treturn {\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\n\t\t};\n\t}\n\n\tprivate paymentSettings(\n\t\tdata: Internal.PaymentSettings,\n\t): External.PaymentSettings {\n\t\treturn {\n\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\n\t\t\trestrictWithdrawalsToVerifiedMembers:\n\t\t\t\tdata.restrictWithdrawalsToVerifiedMembers,\n\t\t\tdepositGateway: {\n\t\t\t\tbank: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tgcash: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tgcashWebpay: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\taioGcash: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.aioGcashDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.aioGcashDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\taioPayMaya: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\taioGrabPay: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\taioPalawanPay: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmaya: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmayaApp: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmayaWebpay: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tonlineBank: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tqrph: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmanualBank: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tbankAccountName:\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountName,\n\t\t\t\t\tbankAccountNumber:\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountNumber,\n\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\n\t\t\t\t},\n\t\t\t\tmanualUPI: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.manualUPIDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\n\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: (this.file(\n\t\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings.upiQRCode,\n\t\t\t\t\t\t\t) as Extract<External.File, { status: 'READY' }>),\n\t\t\t\t},\n\t\t\t},\n\t\t\twithdrawalGateway: {\n\t\t\t\tbank: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tgcash: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tgcashStandardCashIn: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.androidEnabled ??\n\t\t\t\t\t\tfalse,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.iosEnabled ??\n\t\t\t\t\t\tfalse,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.webEnabled ??\n\t\t\t\t\t\tfalse,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings\n\t\t\t\t\t\t\t?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmaya: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmayaApp: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tinstapay: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmanualBank: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmanualUPI: {\n\t\t\t\t\tandroidEnabled:\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled:\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled:\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled:\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.minimumAmount,\n\t\t\t\t\t),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate account(data: Internal.MemberAccount): External.Account {\n\t\tconst o: External.Account = {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tstatus: data.status,\n\t\t\tverified: data.verified,\n\t\t\tnickName: data.nickName ?? undefined,\n\t\t\trealName: data.realName ?? undefined,\n\t\t\tdateOfBirth: data.birthDay ? new Date(data.birthDay) : undefined,\n\t\t\temailAddress: data.emailAddress ?? undefined,\n\t\t\tmobileNumber: data.mobileNumber ?? undefined,\n\t\t\tmobileNumberVerified: data.mobileNumberVerified ?? false,\n\t\t\tmobileNumberVerificationRequired:\n\t\t\t\tdata.mobileNumberVerificationRequired ?? false,\n\t\t\tvalidId: data.validId || undefined,\n\t\t\tverificationStatus: data.verificationStatus,\n\t\t\ttransactionPassword: data.transactionPassword,\n\t\t\tsecretAnswerSubmitted: data.secretAnswerSubmitted ?? false,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t\tcurrentActiveDaysCount: data.currentActiveDaysCount,\n\t\t\tcurrentBetsCount: data.currentBetsCount,\n\t\t\tcurrentNewGamesCount: data.currentNewGamesCount,\n\t\t\tcurrentUniqueGamesCount: data.currentUniqueGamesCount,\n\t\t\tdateTimeLastLeveledUp: new Date(data.dateTimeLastLeveledUp),\n\t\t\tcurrentMonthlyAchievementPoints: data.currentMonthlyAchievementPoints,\n\t\t\tachievementPointsLevelUpProgressPercentage:\n\t\t\t\tdata.achievementPointsLevelUpProgressPercentage,\n\t\t\tcurrentMonthlyTurnover: data.currentMonthlyTurnover,\n\t\t\tturnoverLevelUpProgressPercentage: data.turnoverLevelUpProgressPercentage,\n\t\t\tgoogleId: data.googleId,\n\t\t\tdomain: data.domain ?? null,\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate wallet(data: Internal.Wallet): External.Wallet {\n\t\tconst o: External.Wallet = {\n\t\t\tid: data.id,\n\t\t\tbalance: parseDecimal(data.balance, 0),\n\t\t\tturnoverRequirement: parseDecimal(data.turnoverRequirement),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate verificationDetails(\n\t\tdata: Internal.MemberVerification,\n\t): External.VerificationDetails {\n\t\tconst o: External.VerificationDetails = {\n\t\t\tid: data.id,\n\t\t\tstatus: data.status,\n\t\t\taddress: data.address,\n\t\t\tpermanentAddress: data.permanentAddress,\n\t\t\tnationality: data.nationality,\n\t\t\tnatureOfWork: data.natureOfWork,\n\t\t\tplaceOfBirth: data.placeOfBirth,\n\t\t\tsourceOfIncome: data.sourceOfIncome,\n\t\t\tselfieImage: data?.selfieImage\n\t\t\t\t? (this.file(data?.selfieImage) as External.File)\n\t\t\t\t: null,\n\t\t\tidFrontImage: data?.idFrontImage\n\t\t\t\t? (this.file(data?.idFrontImage) as External.File)\n\t\t\t\t: null,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate profileCompletion(\n\t\tdata: Internal.ProfileCompletion,\n\t): External.ProfileCompletion {\n\t\tconst o: External.ProfileCompletion = {\n\t\t\taccountPassword: data.accountPassword ?? false,\n\t\t\taccountVerification: data.accountVerification ?? false,\n\t\t\tmobileNumberVerification: data.mobileNumberVerification ?? false,\n\t\t\tpersonalInformation: data.personalInformation ?? false,\n\t\t\ttransactionPassword: data.transactionPassword ?? false,\n\t\t\tcompletionPercentage: parseDecimal(data.completionPercentage, 0),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate announcement(data: Internal.Announcement): External.Announcement {\n\t\tconst o: External.Announcement = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\ttitle: data.title,\n\t\t\tstatus: data.status,\n\t\t\tmessage: data.message,\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate withdrawalRecord(\n\t\tdata: Internal.WithdrawalRecord,\n\t): External.WithdrawalRecord {\n\t\tconst o = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tbank: data.bank!,\n\t\t\tbankName: data.bankName ?? undefined,\n\t\t\tstatus: data.status,\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\n\t\t\tfee: parseDecimal(data.fee, 0),\n\t\t\treference: data.reference ?? undefined,\n\t\t\taccountName: data.accountName ?? undefined,\n\t\t\terror: data.error ?? undefined,\n\t\t\twithdrawalNumber: data.withdrawalNumber,\n\t\t\tserialCode: data.serialCode,\n\t\t\trecipientMobileNumber: data.recipientMobileNumber ?? undefined,\n\t\t\tdateTimeConfirmed: data.dateTimeConfirmed\n\t\t\t\t? new Date(data.dateTimeConfirmed)\n\t\t\t\t: undefined,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t} as External.WithdrawalRecord;\n\n\t\treturn compact(o);\n\t}\n\n\tprivate deposit(data: Internal.Deposit): External.Deposit {\n\t\tconst o: External.Deposit = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tstatus: data.status,\n\t\t\tvca: data.vca ?? undefined,\n\t\t\tqrCode: data.qrCode ?? undefined,\n\t\t\tcheckoutUrl: data.checkoutUrl ?? undefined,\n\t\t\terror: data.error ?? undefined,\n\t\t} as External.Deposit;\n\n\t\treturn compact(o);\n\t}\n\n\tprivate depositRecord(data: Internal.DepositRecord): External.DepositRecord {\n\t\tconst o: External.DepositRecord = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tstatus: data.status,\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\tfee: parseDecimal(data.fee, 0),\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\n\t\t\treference: data.reference ?? undefined,\n\t\t\tdeposit: data.deposit,\n\t\t\tdepositNumber: data.depositNumber,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t\terror: data.error ?? undefined,\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate betRecord(\n\t\tdata: Assign<Internal.BetRecord, { game?: Internal.Game }>,\n\t): External.BetRecord {\n\t\tconst o: External.BetRecord = {\n\t\t\tid: data.id,\n\t\t\tbet: parseDecimal(data.bet, 0),\n\t\t\tpayout: parseDecimal(data.payout, 0),\n\t\t\todds: data.odds,\n\t\t\tstatus: data.status,\n\t\t\tjackpotContribution: parseDecimal(data.jackpotContribution, 0),\n\t\t\tjackpotPayout: parseDecimal(data.jackpotPayout, 0),\n\t\t\twinloss: parseDecimal(data.winloss),\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\n\t\t\tvendorRoundId: data.vendorRoundId ?? undefined,\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\n\t\t\tserialCode: data.serialCode,\n\t\t\tdateTimeSettled: data.dateTimeSettled\n\t\t\t\t? new Date(data.dateTimeSettled)\n\t\t\t\t: undefined,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t\tbetContent: data.betContent ?? undefined,\n\t\t\tcontestName: data.contestName ?? undefined,\n\t\t\texternalCategory: data.externalCategory ?? undefined,\n\t\t\tmetadata: {\n\t\t\t\todds: data.metadata?.odds ?? undefined,\n\t\t\t},\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate latestBetRecord(\n\t\tdata: Assign<Internal.LatestBetRecord, { game?: Internal.Game }>,\n\t): External.LatestBetRecord {\n\t\tconst o: External.LatestBetRecord = {\n\t\t\tid: data.id,\n\t\t\tmember: data.member,\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\n\t\t\tbet: parseDecimal(data.bet, 0),\n\t\t\tpayout: parseDecimal(data.payout, 0),\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\n\t\t\tdateTimeSettled: new Date(data.dateTimeSettled),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate transactionRecord(\n\t\tdata: Internal.TransactionRecord,\n\t): External.TransactionRecord {\n\t\tconst o: External.TransactionRecord = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\tcontent: data.content ?? undefined,\n\t\t\tcurrentBalance: parseDecimal(data.currentBalance, 0),\n\t\t\tcurrentBonusBalance: parseDecimal(data.currentBonusBalance, 0),\n\t\t\treferenceNumber: data.referenceNumber,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate game(data: Internal.Game): External.Game {\n\t\tconst images = [data.customImage, data.image].filter(Boolean).map((url) => {\n\t\t\tinvariant(url);\n\n\t\t\treturn url.includes('?')\n\t\t\t\t? `${url}&cache_id=${IMAGE_CACHE_ID}`\n\t\t\t\t: `${url}?cache_id=${IMAGE_CACHE_ID}`;\n\t\t});\n\n\t\tconst o: External.Game = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\ttags: data.tags ?? [],\n\t\t\tname: data.name,\n\t\t\timages,\n\t\t\tprovider: data.provider,\n\t\t\treference: data.reference,\n\t\t\tfavorite: data.favorite,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate gameSession(data: Internal.GameSession): External.GameSession {\n\t\tconst o = {\n\t\t\tid: data.id,\n\t\t\tstatus: data.status,\n\t\t\tlaunchUrl: data.launchUrl ?? undefined,\n\t\t\tlaunchOptions: data?.launchOptions ?? undefined,\n\t\t} as External.GameSession;\n\n\t\treturn compact(o);\n\t}\n\n\tprivate promo(data: Internal.Promo): External.Promo {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tname: data.name,\n\t\t\tstatus: data.status,\n\t\t\tdescription: data.description,\n\t\t\tbanner: !data.banner\n\t\t\t\t? null\n\t\t\t\t: (this.file(data.banner) as Extract<\n\t\t\t\t\t\tExternal.File,\n\t\t\t\t\t\t{ status: 'READY' }\n\t\t\t\t\t>),\n\t\t\tmaximumBonusAmount: parseDecimal(data.maximumBonusAmount),\n\t\t\tminimumBonusAmount: parseDecimal(data.minimumBonusAmount),\n\t\t\tmaximumDepositAmount: parseDecimal(data.maximumDepositAmount),\n\t\t\tminimumDepositAmount: parseDecimal(data.minimumDepositAmount),\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\t}\n\n\tprivate cashback(data: Internal.Cashback): External.Cashback {\n\t\tconst o: External.Cashback = {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tdescription: data.description,\n\t\t\tstatus: data.status,\n\t\t\tminimumCashback: parseDecimal(data.minimumCashback, 0),\n\t\t\tmaximumMonthlyCashback: parseDecimal(data.maximumMonthlyCashback),\n\t\t\tbanner: !data.banner\n\t\t\t\t? null\n\t\t\t\t: (this.file(data.banner) as Extract<\n\t\t\t\t\t\tExternal.File,\n\t\t\t\t\t\t{ status: 'READY' }\n\t\t\t\t\t>),\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t\tturnoverContributionPercentagePerGameProvider: Object.entries(\n\t\t\t\tdata.turnoverContributionPercentagePerGameProvider,\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\n\t\t\t\treturn o;\n\t\t\t}, {}),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate bonus(data: Internal.Bonus): External.Bonus {\n\t\tconst o: External.Bonus = {\n\t\t\tid: data.id,\n\t\t\tpromo: this.promo(data.promo),\n\t\t\tdeposit: !data.deposit\n\t\t\t\t? undefined\n\t\t\t\t: {\n\t\t\t\t\t\ttype: data.deposit.type,\n\t\t\t\t\t\tstatus: data.deposit.status,\n\t\t\t\t\t\tfee: parseDecimal(data.deposit.fee, 0),\n\t\t\t\t\t\tamount: parseDecimal(data.deposit.amount, 0),\n\t\t\t\t\t\tnetAmount: parseDecimal(data.deposit.netAmount, 0),\n\t\t\t\t\t\treference: data.deposit.reference ?? undefined,\n\t\t\t\t\t\tdateTimeCreated: new Date(data.deposit.dateTimeCreated),\n\t\t\t\t\t\tdateTimeLastUpdated: new Date(data.deposit.dateTimeLastUpdated),\n\t\t\t\t\t},\n\t\t\tbalance: parseDecimal(data.balance, 0),\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\texpiration: new Date(data.expiration),\n\t\t\tturnoverRequirement: parseDecimal(data.turnoverRequirement, 0),\n\t\t\tcurrentTurnoverRequirementContribution: parseDecimal(\n\t\t\t\tdata.currentTurnoverRequirementContribution,\n\t\t\t\t0,\n\t\t\t),\n\t\t\tcurrentTurnoverRequirementContributionPercentage: parseDecimal(\n\t\t\t\tdata.currentTurnoverRequirementContributionPercentage,\n\t\t\t\t0,\n\t\t\t),\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\n\t\t\tenabledGameProviders: data.enabledGameProviders,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate cashbackBonus(data: Internal.CashbackBonus): External.CashbackBonus {\n\t\tconst o: External.CashbackBonus = {\n\t\t\tid: data.id,\n\t\t\ttotal: parseDecimal(data.total, 0),\n\t\t\tbalance: parseDecimal(data.balance, 0),\n\t\t\tcashback: this.cashback(data.cashback),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate memberCabinetSiteMachine(data: Internal.CabinetSiteMachine): External.CabinetSiteMachine {\n\t\tconst o: External.CabinetSiteMachine = {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tfingerprint: data.fingerprint,\n\t\t\tstatus: data.status,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate file(data: Internal.File): External.File {\n\t\tconst o = {\n\t\t\tid: data.id,\n\t\t\turl: data.url ?? undefined,\n\t\t\tstatus: data.status,\n\t\t} as External.File;\n\n\t\treturn compact(o);\n\t}\n\n\tprivate pointsWallet(data: Internal.PointsWallet): External.PointsWallet {\n\t\tconst o: External.PointsWallet = {\n\t\t\tid: data.id,\n\t\t\tpoints: parseDecimal(data.points, 0),\n\t\t\taccount: data.account,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate pointsWalletTransaction(\n\t\tdata: Internal.PointsWalletTransaction,\n\t): External.PointsWalletTransaction {\n\t\tconst o: External.PointsWalletTransaction = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\tbalance: parseDecimal(data.balance, 0),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate achievementPointsHistoryRecord(\n\t\tdata: Internal.AchievementPointsHistoryRecord,\n\t): External.AchievementPointsHistoryRecord {\n\t\tconst o: External.AchievementPointsHistoryRecord = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tpoints: parseDecimal(data.points, 0),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate activityRecord(\n\t\tdata: Internal.ActivityRecord,\n\t): External.ActivityRecord {\n\t\tconst o: External.ActivityRecord = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tamount: data.amount ? parseDecimal(data.amount, 0) : undefined,\n\t\t\tdomain: data.domain ?? undefined,\n\t\t\tdetails: data.details,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate referral(data: Internal.Referral): External.Referral {\n\t\tconst o: External.Referral = {\n\t\t\tid: data.id,\n\t\t\tlevel: data.level,\n\t\t\tupline: data.upline,\n\t\t\tdownline: data.downline,\n\t\t\tturnover: parseDecimal(data.turnover, 0),\n\t\t\tcommission: parseDecimal(data.commission, 0),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate referralCommission(\n\t\tdata: Internal.ReferralCommission,\n\t): External.ReferralCommission {\n\t\tconst o: External.ReferralCommission = {\n\t\t\tid: data.id,\n\t\t\tcommission: parseDecimal(data.commission, 0),\n\t\t\tlevel1Commission: parseDecimal(data.level1Commission, 0),\n\t\t\tlevel2Commission: parseDecimal(data.level2Commission, 0),\n\t\t\tlevel3Commission: parseDecimal(data.level3Commission, 0),\n\t\t\treferralsCount: data.referralsCount,\n\t\t\tlevel1ReferralsCount: data.level1ReferralsCount,\n\t\t\tlevel2ReferralsCount: data.level2ReferralsCount,\n\t\t\tlevel3ReferralsCount: data.level3ReferralsCount,\n\t\t\treferralCode: data.referralCode,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate message(data: Internal.Message): External.Message {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\ticon: data.icon,\n\t\t\tlogo: data.logo,\n\t\t\timage: data.image,\n\t\t\ttitle: data.title,\n\t\t\tpopup: data.popup,\n\t\t\tforce: data.force,\n\t\t\tcontent: data.content,\n\t\t\tactions: data.actions,\n\t\t\tmarkedAsRead: data.markedAsRead,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\ttype: data.type,\n\t\t\tmetadata: !data.metadata\n\t\t\t\t? null\n\t\t\t\t: {\n\t\t\t\t\t\ttournament: data.metadata.tournament,\n\t\t\t\t\t\tpayout: {\n\t\t\t\t\t\t\tid: data.metadata.payout.id,\n\t\t\t\t\t\t\tamount: parseDecimal(data.metadata.payout.amount, 0),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t};\n\t}\n\n\tprivate instapayBank(data: Internal.InstapayBank): External.InstapayBank {\n\t\treturn data;\n\t}\n\n\tprivate promoByCode(data: Internal.SpotBonusPromo): External.SpotBonusPromo {\n\t\treturn {\n\t\t\tactiveBonusesCount: data.activeBonusesCount,\n\t\t\tbonusesCount: data.bonusesCount,\n\t\t\tcancelledBonusesCount: data.cancelledBonusesCount,\n\t\t\tclearedBonusesCount: data.clearedBonusesCount,\n\t\t\tclosedBonusesCount: data.closedBonusesCount,\n\t\t\tclosedBonusesCountPercentage: parseDecimal(\n\t\t\t\tdata.closedBonusesCountPercentage,\n\t\t\t\t0,\n\t\t\t),\n\t\t\tcode: data.code,\n\t\t\tdaysToClear: data.daysToClear,\n\t\t\tenabledGameProviders: data.enabledGameProviders,\n\t\t\tid: data.id,\n\t\t\texpiredBonusesCount: data.expiredBonusesCount,\n\t\t\tmaximumBonusesCountLimit: data.maximumBonusesCountLimit,\n\t\t\tname: data.name,\n\t\t\tstatus: data.status,\n\t\t\ttotalBet: parseDecimal(data.totalBet, 0),\n\t\t\ttotalBonus: parseDecimal(data.totalBonus, 0),\n\t\t\ttotalBonusBalance: parseDecimal(data.totalBonusBalance, 0),\n\t\t\ttotalBonusCashedOut: parseDecimal(data.totalBonusCashedOut, 0),\n\t\t\ttotalDeposit: parseDecimal(data.totalDeposit, 0),\n\t\t\tturnoverRequirementMultiplier: parseDecimal(\n\t\t\t\tdata.turnoverRequirementMultiplier,\n\t\t\t\t0,\n\t\t\t),\n\t\t\ttype: data.type,\n\t\t\tzeroedOutBonusesCount: data.zeroedOutBonusesCount,\n\t\t\tzeroOutThreshold: parseDecimal(data.zeroOutThreshold, 0),\n\t\t\tbonusAmount: parseDecimal(data.bonusAmount, 0),\n\t\t\tdescription: data.description,\n\t\t\tturnoverRequirementType: data.turnoverRequirementType,\n\t\t\tactivationEndDateTime: data.activationEndDateTime\n\t\t\t\t? new Date(data.activationEndDateTime)\n\t\t\t\t: undefined,\n\t\t\tactivationStartDateTime: data.activationStartDateTime\n\t\t\t\t? new Date(data.activationStartDateTime)\n\t\t\t\t: undefined,\n\t\t\tdateTimeClosed: data.dateTimeClosed\n\t\t\t\t? new Date(data.dateTimeClosed)\n\t\t\t\t: undefined,\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider: Object.entries(\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\n\t\t\t\treturn o;\n\t\t\t}, {}),\n\t\t\tminimumTicketOddFactorPerSportsGameProvider: Object.entries(\n\t\t\t\tdata.minimumTicketOddFactorPerSportsGameProvider,\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\n\t\t\t\treturn o;\n\t\t\t}, {}),\n\t\t\tbanner: data.banner,\n\t\t};\n\t}\n\n\tquest(data: Internal.Quest): External.Quest {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tdescription: data.description,\n\t\t\tstatus: data.status,\n\t\t\tbonus: parseDecimal(data.bonus, 0),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tendDateTime: new Date(data.endDateTime),\n\t\t\tprogram: {\n\t\t\t\ttype: data.program.type,\n\t\t\t\tname: data.program.name,\n\t\t\t\tdescription: data.program.description,\n\t\t\t\tstatus: data.program.status,\n\t\t\t\tstages:\n\t\t\t\t\tdata.program.stages?.map((stage) => ({\n\t\t\t\t\t\ttargetTurnover: parseDecimal(stage.targetTurnover, 0),\n\t\t\t\t\t\tbonusTurnoverRequirementMultiplier: parseDecimal(\n\t\t\t\t\t\t\tstage.bonusTurnoverRequirementMultiplier,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tbonusAmount: parseDecimal(stage.bonusAmount, 0),\n\t\t\t\t\t})) ?? [],\n\t\t\t},\n\t\t\tprogressPercentage: parseDecimal(data.progressPercentage, 0),\n\t\t\tturnover: parseDecimal(data.turnover, 0),\n\t\t\ttargetTurnover: data?.targetTurnover\n\t\t\t\t? parseDecimal(data.targetTurnover, 0)\n\t\t\t\t: undefined,\n\t\t\tcheckInStreak: data?.checkInStreak ?? undefined,\n\t\t\tlastCheckInDate: data?.lastCheckInDate\n\t\t\t\t? new Date(data.lastCheckInDate)\n\t\t\t\t: undefined,\n\t\t\tstartDateTime: data?.startDateTime\n\t\t\t\t? new Date(data.startDateTime)\n\t\t\t\t: undefined,\n\t\t\ttype: data.type,\n\t\t\tdateTimeCompleted: data.dateTimeCompleted\n\t\t\t\t? new Date(data.dateTimeCompleted)\n\t\t\t\t: undefined,\n\t\t\t...(data.type === 'WAGERING' && {\n\t\t\t\tstage: data.stage,\n\t\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\n\t\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\n\t\t\t}),\n\t\t\t...(data.type === 'DAILY_CHECKIN' && {\n\t\t\t\tseventhDayBonusAmount: parseDecimal(data.seventhDayBonusAmount, 0),\n\t\t\t\tsixthDayBonusAmount: parseDecimal(data.sixthDayBonusAmount, 0),\n\t\t\t\tthirdDayBonusAmount: parseDecimal(data.thirdDayBonusAmount, 0),\n\t\t\t}),\n\n\t\t\t...(data.type === 'ONBOARDING' && {\n\t\t\t\tfirstDepositCompleted: data.firstDepositCompleted,\n\t\t\t\taccountVerificationCompleted: data.accountVerificationCompleted,\n\t\t\t}),\n\n\t\t\t...(data.type === 'JOURNEY' && {\n\t\t\t\tmilestones: data.milestones?.map((milestone) => ({\n\t\t\t\t\tid: milestone.id,\n\t\t\t\t\ttype: milestone.type,\n\t\t\t\t\tname: milestone.name,\n\t\t\t\t\tbonusAmount: parseDecimal(milestone.bonusAmount, 0),\n\t\t\t\t\tcleared: milestone.cleared ?? false,\n\t\t\t\t\tdescription: milestone?.description ?? undefined,\n\t\t\t\t\tlink: milestone?.link ?? undefined,\n\t\t\t\t})),\n\t\t\t}),\n\t\t};\n\t}\n\n\tprivate topWin(\n\t\tdata: Assign<Internal.TopWin, { game?: Internal.Game }>,\n\t): External.TopWin {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\n\t\t\tmember: {\n\t\t\t\tid: data.member.id,\n\t\t\t\tname: data.member.name,\n\t\t\t},\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\n\t\t\tpayout: parseDecimal(data.payout, 0),\n\t\t};\n\t}\n\n\tprivate jackpots(data: Internal.Jackpot): External.Jackpot {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tdescription: data.description,\n\t\t\tpool: parseDecimal(data.pool, 0),\n\t\t\tstatus: data.status,\n\t\t\tminimumJackpotPoolDrawingLimit: parseDecimal(\n\t\t\t\tdata.minimumJackpotPoolDrawingLimit,\n\t\t\t\t0,\n\t\t\t),\n\t\t\tmaximumJackpotPoolLimit: parseDecimal(data.maximumJackpotPoolLimit, 0),\n\t\t\tdrawing: data.drawing,\n\t\t\tminimumMultiplier: parseDecimal(data.minimumMultiplier, 0),\n\t\t\tminimumBet: parseDecimal(data.minimumBet, 0),\n\t\t\tjackpotPayoutPercentage: parseDecimal(data.jackpotPayoutPercentage, 0),\n\t\t\tjackpotTurnoverContributionPercentagePerGameProvider: Object.entries(\n\t\t\t\tdata.jackpotTurnoverContributionPercentagePerGameProvider ?? {},\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\n\t\t\t\treturn o;\n\t\t\t}, {}),\n\t\t\ttotalPayout: parseDecimal(data.totalPayout, 0),\n\t\t};\n\t}\n\n\tprivate jackpotPayouts(data: Internal.JackpotPayout): External.JackpotPayout {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tmember: {\n\t\t\t\tid: data.member.id,\n\t\t\t\tname: data.member.name,\n\t\t\t},\n\t\t\tjackpot: {\n\t\t\t\tid: data.jackpot.id,\n\t\t\t\tname: data.jackpot.name,\n\t\t\t},\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\n\t\t\tbet: parseDecimal(data.bet, 0),\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tgame: {\n\t\t\t\tprovider: data?.game?.provider,\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate tournamentsLeaderboard(\n\t\tdata: Internal.TournamentLeaderboard,\n\t): External.TournamentLeaderboard {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tusername: data.username,\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\n\t\t\tdateTimeCreated: data.dateTimeCreated,\n\t\t\tgame: data.game,\n\t\t\tprize: data.prize,\n\t\t};\n\t}\n\n\tprivate tournaments(data: Internal.Tournament): External.Tournament {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tname: data.name,\n\t\t\tdescription: data.description,\n\t\t\twinnersCount: parseDecimal(data.winnersCount, 0),\n\t\t\tstatus: data.status,\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\n\t\t\ttopPayouts: data.topPayouts.map((payout) => ({\n\t\t\t\t...payout,\n\t\t\t\tamount: parseDecimal(payout.amount, 0),\n\t\t\t})),\n\t\t\tenabledGameProviders: data.enabledGameProviders,\n\t\t\tfrequency: data.frequency,\n\t\t\tmode: data.mode,\n\t\t\tmobileBanner: {\n\t\t\t\tid: data.mobileBanner?.id,\n\t\t\t\turl: data.mobileBanner?.url,\n\t\t\t\tmimeType: data.mobileBanner?.mimeType,\n\t\t\t},\n\t\t\twebBanner: {\n\t\t\t\tid: data.webBanner?.id,\n\t\t\t\turl: data.webBanner?.url,\n\t\t\t\tmimeType: data.webBanner?.mimeType,\n\t\t\t},\n\n\t\t\trewardSettings: data.rewardSettings,\n\n\t\t\tcurrentLeaderboard: {\n\t\t\t\tcurrentLeaderboard: data.currentLeaderboard?.edges.map(\n\t\t\t\t\t({ cursor, node }) => ({\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t\t...this.tournamentsLeaderboard(node),\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t\ttotalCount: data.currentLeaderboard.totalCount,\n\t\t\t\thasNextPage: data.currentLeaderboard.pageInfo?.hasNextPage as never,\n\t\t\t\tendCursor: data.currentLeaderboard.pageInfo?.endCursor ?? undefined,\n\t\t\t},\n\t\t\tpreviousLeaderboard: {\n\t\t\t\tpreviousLeaderboard: data.previousLeaderboard.edges.map(\n\t\t\t\t\t({ cursor, node }) => ({\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t\t...this.tournamentsLeaderboard(node),\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t\ttotalCount: data.previousLeaderboard.totalCount,\n\t\t\t\thasNextPage: data.previousLeaderboard.pageInfo?.hasNextPage as never,\n\t\t\t\tendCursor: data.previousLeaderboard.pageInfo?.endCursor ?? undefined,\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate memberAchievements(\n\t\tdata: Internal.MemberAchievement,\n\t): External.MemberAchievement {\n\t\treturn {\n\t\t\tmember: {\n\t\t\t\tachievements: data.member.achievements,\n\t\t\t\tlevel: data.member.level,\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate cabinetWithdrawal(data: Internal.CabinetWithdrawal): External.CabinetWithdrawalRecord {\n\t\tconst o: External.Deposit = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tstatus: data.status,\n\t\t\tamount: data.amount,\n\t\t\treference: data.reference,\n\t\t\taccountName: data.accountName,\n\t\t\tdateTimeCreated: data.dateTimeCreated,\n\t\t\terror: data.error ?? undefined,\n\t\t} as External.Deposit;\n\n\t\treturn compact(o);\n\t}\n}","import { Capacitor } from '@capacitor/core';\nimport {\n\tAccountService,\n\tAuthService,\n\tCmsPortalService,\n\tExtensionService,\n\tFileService,\n\tGameService,\n\tPortalService,\n\tReportService,\n\tTriggerService,\n\tWalletService,\n} from '../services/index.js';\nimport { Cache } from '../utils/cache.js';\nimport { clamp } from '../utils/clamp.js';\nimport {\n\tGraphQLClient,\n\ttype GraphQLClientConfig,\n\ttype GraphQLClientMiddleware,\n} from '../utils/graphql-client.js';\nimport { sha256 } from '../utils/sha256.js';\nimport { AdManager } from './ad-manager.js';\nimport { CellexpertManager } from './cellexpert-manager.js';\nimport { Logger } from './logger.js';\nimport { ObjectId } from './object-id.js';\nimport { ObjectType } from './object-type.js';\nimport { SessionManager } from './session-manager.js';\nimport { SessionManagerCookie } from './session-manager-cookie.js';\nimport { Transformer } from './transformer.js';\nimport type {\n\tAccountReturn,\n\tAchievementPointsHistoryRecordInput,\n\tAchievementPointsHistoryRecordReturn,\n\tAchievementSettingsReturn,\n\tActivityRecordsInput,\n\tActivityRecordsReturn,\n\tAnnouncementsInput,\n\tAnnouncementsReturn,\n\tAuthenticateInput,\n\tAuthenticateReturn,\n\tAvailablePromosReturn,\n\tAvailableQuestsReturn,\n\tBetRecordsInput,\n\tBetRecordsReturn,\n\tBonusesReturn,\n\tBonusReturn,\n\tCabinetSignInInput,\n\tCabinetSignInReturn,\n\tCabinetSiteMachineReturn,\n\tCabinetWithdrawalReturn,\n\tCashbackBonusReturn,\n\tCashbacksReturn,\n\tCheckInDailyQuestReturn,\n\tClaimCashbackBonusReturn,\n\tClaimRewardReturn,\n\tClaimSpotBonusReturn,\n\tCompleteOnboardingInput,\n\tCompleteOnboardingReturn,\n\tCreateAccountInput,\n\tCreateAccountInput__Next,\n\tCreateAccountReturn,\n\tCreateDepositInput,\n\tCreateDepositReturn,\n\tCreateGameSessionInput,\n\tCreateGameSessionReturn,\n\tCreateSingleUseTokenReturn,\n\tCreateWithdrawalInput,\n\tCreateWithdrawalReturn,\n\tDeleteAccountReturn,\n\tDepositRecordsInput,\n\tDepositRecordsReturn,\n\tDepositReturn,\n\tDepositsCountReturn,\n\tDownlinesByNameInput,\n\tDownlinesByNameReturn,\n\tEndGameSessionReturn,\n\tEnvironment,\n\tFavoriteGamesReturn,\n\tFileReturn,\n\tGameProvider,\n\tGameReturn,\n\tGameSessionReturn,\n\tGamesInput,\n\tGamesInput__Next,\n\tGamesReturn,\n\tGoogleClientIdReturn,\n\tInstapayBankListReturn,\n\tJackpotPayoutsInput,\n\tJackpotPayoutsReturn,\n\tJackpotsInput,\n\tJackpotsReturn,\n\tLatestBetRecordsReturn,\n\tLocale,\n\tMarkAllMessagesAsReadReturn,\n\tMarkGameAsFavoriteInput,\n\tMarkGameAsFavoriteReturn,\n\tMarkMessageAsReadReturn,\n\tMayaSignInInput,\n\tMayaSignInReturn,\n\tMemberAchievementReturn,\n\tMemberLevelSettingsReturn,\n\tMessagesInput,\n\tMessagesReturn,\n\tMobileNumberSignInInput,\n\tMobileNumberSignInReturn,\n\tNameAndPasswordSignInInput,\n\tNameAndPasswordSignInReturn,\n\tOnboardingStatusReturn,\n\tPaymentSettingsReturn,\n\tPlatformReturn,\n\tPlatformReturn__Next,\n\tPointsClubSettingsReturn,\n\tPointsWalletReturn,\n\tPointsWalletTransactionsInput,\n\tPointsWalletTransactionsReturn,\n\tProfileCompletionReturn,\n\tPromoByCodeReturn,\n\tPromoFilterInput,\n\tPromosReturn,\n\tRecommendedGamesInput,\n\tRecommendedGamesReturn,\n\tRedeemPointsInput,\n\tRedeemPointsReturn,\n\tRedeemVoucherInput,\n\tRedeemVoucherReturn,\n\tReferralCodeReturn,\n\tReferralCommissionReturn,\n\tReferralsInput,\n\tReferralsReturn,\n\tRegisterFCMDeviceInput,\n\tRegisterFCMDeviceReturn,\n\tRegisterMayaAccountInput,\n\tRegisterMayaAccountReturn,\n\tRemainingDailyWithdrawalsCountReturn,\n\tRequireFirstDepositReturn,\n\tResetPasswordInput,\n\tResetPasswordReturn,\n\tSendVerificationCodeInput__Next,\n\tSendVerificationCodeReturn,\n\tSendVerificationCodeReturn__Next,\n\tSessionReturn,\n\tSignInInput,\n\tSignInReturn,\n\tSingleUseTokenSignInInput,\n\tSingleUseTokenSignInReturn,\n\tSiteReturn,\n\tSkipOnboardingReturn,\n\tSocialsSignInInput,\n\tSocialsSignInReturn,\n\tSubmitMemberVerificationReturn,\n\tSubmitVerificationDetailsInput,\n\tSubmitVerificationDetailsInputNext,\n\tSubmitVerificationDetailsReturn,\n\tTokenSignInInput,\n\tTokenSignInReturn,\n\tTopWinsReturn,\n\tTouchDepositInput,\n\tTouchDepositReturn,\n\tTournamentsInput,\n\tTournamentsReturn,\n\tTransactionRecordsInput,\n\tTransactionRecordsReturn,\n\tUnmarkGameAsFavoriteInput,\n\tUnmarkGameAsFavoriteReturn,\n\tUnreadMessagesCountInput,\n\tUnreadMessagesCountReturn,\n\tUnregisterFCMDeviceInput,\n\tUnregisterFCMDeviceReturn,\n\tUpdateAccountInput,\n\tUpdateAccountReturn,\n\tUpdateReferralCodeInput,\n\tUpdateReferralCodeReturn,\n\tUpdateVerificationDetailsInput,\n\tUpdateVerificationDetailsReturn,\n\tUplinesByNameInput,\n\tUplinesByNameReturn,\n\tUploadImageFileInput,\n\tUploadImageFileReturn,\n\tValidateMayaSessionReturn,\n\tVerificationDetailsReturn,\n\tVerifyMobileNumberReturn,\n\tWalletGameInput,\n\tWalletGamesReturn,\n\tWalletReturn,\n\tWatchSessionInput,\n\tWithdrawalRecordsInput,\n\tWithdrawalRecordsReturn,\n} from './types.js';\nimport { addAreaCode } from './utils.js';\n\nexport interface SdkConfig {\n\t/**\n\t * @default 'development'\n\t */\n\tenvironment?: Environment;\n\tsite: string;\n\tsitePlatform: string;\n\tplatform: string;\n\tlogs?: boolean;\n\tsessionStorage?: 'cookie' | 'localStorage';\n\tmiddleware?: GraphQLClientMiddleware;\n\tfetch?: typeof globalThis.fetch;\n}\n\nconst defaultConfig = {\n\tenvironment: 'development' as Environment,\n\tlogs: false,\n};\n\nexport class Sdk {\n\t/**\n\t * Initializes the SDK by fetching and assigning the member domain.\n\t */\n\tasync init(): Promise<void> {\n\t\tconst res = await this.accountService.memberAccount();\n\n\t\tif (res.ok) {\n\t\t\tconst accountData = this.transformer.transform.account(res.data);\n\t\t\tthis.memberDomain = accountData?.domain ?? null;\n\t\t}\n\t}\n\tprivate cmsPortalService: CmsPortalService;\n\tprivate authService: AuthService;\n\tprivate gameService: GameService;\n\tprivate fileService: FileService;\n\tprivate walletService: WalletService;\n\tprivate extensionService: ExtensionService;\n\tprivate accountService: AccountService;\n\tprivate reportService: ReportService;\n\tprivate portalService: PortalService;\n\tprivate triggerService: TriggerService;\n\tprivate sessionManager: SessionManager | SessionManagerCookie;\n\tprivate adManager: AdManager;\n\tprivate cellexpertManager: CellexpertManager;\n\tprivate transformer: Transformer;\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\tprivate config: SdkConfig;\n\n\t/**\n\t * Stores the member domain for use in future mutations/queries\n\t */\n\tpublic memberDomain: string | null = null;\n\n\tconstructor(config: SdkConfig) {\n\t\tconst {\n\t\t\t/**/\n\t\t\tsite,\n\t\t\tsitePlatform,\n\t\t\tplatform,\n\t\t\tenvironment,\n\t\t\tlogs,\n\t\t} = Object.assign(defaultConfig, config);\n\n\t\tconst production = environment === 'production';\n\n\t\tconst logger = new Logger({\n\t\t\tenabled: logs,\n\t\t});\n\n\t\tconst adManager = new AdManager({ logger });\n\t\tconst cellexpertManager = new CellexpertManager({ logger });\n\n\t\tconst transformer = new Transformer();\n\n\t\tconst authUrl = ENDPOINTS[environment].auth;\n\t\tconst walletUrl = ENDPOINTS[environment].wallet;\n\t\tconst extensionUrl = ENDPOINTS[environment].extension;\n\t\tconst reportUrl = ENDPOINTS[environment].report;\n\t\tconst accountUrl = ENDPOINTS[environment].account;\n\t\tconst portalUrl = ENDPOINTS[environment].portal;\n\t\tconst fileUrl = ENDPOINTS[environment].file;\n\t\tconst gameUrl = ENDPOINTS[environment].game;\n\t\tconst triggerUrl = ENDPOINTS[environment].trigger;\n\t\tconst cmsPortalUrl = ENDPOINTS[environment].cmsPortal;\n\n\t\tconst cmsPortalService = new CmsPortalService(() => ({\n\t\t\turl: cmsPortalUrl,\n\t\t\tsite,\n\t\t\tplatform: sitePlatform,\n\t\t\tfetch: this.fetch,\n\t\t}));\n\n\t\tthis._fetch = config.fetch ?? null;\n\t\tthis._middleware = config.middleware ?? ((req) => req);\n\n\t\tconst graphqlClientConfig = () =>\n\t\t\t({\n\t\t\t\tmiddlewares: [\n\t\t\t\t\t/**/\n\t\t\t\t\tthis.authMiddleware,\n\t\t\t\t\tthis.domainMiddleware,\n\t\t\t\t\tthis.miscMiddleware,\n\t\t\t\t\tthis.middleware,\n\t\t\t\t],\n\t\t\t\tfetch: this.fetch,\n\t\t\t\tfetchOptions: {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tRole: 'MEMBER',\n\t\t\t\t\t\t'Platform-Code': platform,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}) satisfies GraphQLClientConfig;\n\n\t\tconst gameService = new GameService(\n\t\t\tnew GraphQLClient(gameUrl, graphqlClientConfig),\n\t\t);\n\t\tconst extensionService = new ExtensionService(\n\t\t\tnew GraphQLClient(extensionUrl, graphqlClientConfig),\n\t\t);\n\t\tconst fileService = new FileService(\n\t\t\tnew GraphQLClient(fileUrl, graphqlClientConfig),\n\t\t);\n\t\tconst walletService = new WalletService(\n\t\t\tnew GraphQLClient(walletUrl, graphqlClientConfig),\n\t\t);\n\t\tconst accountService = new AccountService(\n\t\t\tnew GraphQLClient(accountUrl, graphqlClientConfig),\n\t\t);\n\t\tconst reportService = new ReportService(\n\t\t\tnew GraphQLClient(reportUrl, graphqlClientConfig),\n\t\t);\n\t\tconst portalService = new PortalService(\n\t\t\tnew GraphQLClient(portalUrl, graphqlClientConfig),\n\t\t);\n\t\tconst triggerService = new TriggerService(\n\t\t\tnew GraphQLClient(triggerUrl, graphqlClientConfig),\n\t\t);\n\n\t\tconst authService = new AuthService({\n\t\t\turl: authUrl,\n\t\t\tfetchOptions: {\n\t\t\t\theaders: {\n\t\t\t\t\tRole: 'MEMBER',\n\t\t\t\t\t'Platform-Code': platform,\n\n\t\t\t\t\t...(!production && {\n\t\t\t\t\t\t'Test-Pass': '',\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tconst sessionManager =\n\t\t\tconfig.sessionStorage === 'cookie'\n\t\t\t\t? new SessionManagerCookie({\n\t\t\t\t\t\tlogger,\n\t\t\t\t\t\tauthService,\n\t\t\t\t\t\twalletService,\n\t\t\t\t\t})\n\t\t\t\t: new SessionManager({\n\t\t\t\t\t\tlogger,\n\t\t\t\t\t\tauthService,\n\t\t\t\t\t\twalletService,\n\t\t\t\t\t});\n\n\t\tthis.logger = logger;\n\t\tthis.adManager = adManager;\n\t\tthis.cellexpertManager = cellexpertManager;\n\t\tthis.transformer = transformer;\n\t\tthis.authService = authService;\n\t\tthis.gameService = gameService;\n\t\tthis.extensionService = extensionService;\n\t\tthis.fileService = fileService;\n\t\tthis.walletService = walletService;\n\t\tthis.accountService = accountService;\n\t\tthis.reportService = reportService;\n\t\tthis.portalService = portalService;\n\t\tthis.triggerService = triggerService;\n\t\tthis.sessionManager = sessionManager;\n\t\tthis.cmsPortalService = cmsPortalService;\n\t\tthis.cache = new Cache();\n\t\tthis.config = {\n\t\t\tenvironment,\n\t\t\tsite,\n\t\t\tplatform,\n\t\t\tsitePlatform,\n\t\t\tlogs,\n\t\t};\n\t}\n\n\tprivate _fetch: typeof globalThis.fetch | null = null;\n\tprivate _middleware: GraphQLClientMiddleware;\n\n\tset fetch(value: typeof globalThis.fetch | null) {\n\t\tthis._fetch = value;\n\t}\n\n\tget fetch() {\n\t\treturn this._fetch;\n\t}\n\n\tset middleware(value: GraphQLClientMiddleware) {\n\t\tthis._middleware = value;\n\t}\n\n\tget middleware() {\n\t\treturn this._middleware;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tADS\n\t *=============================================\n\t */\n\n\tset adClickId(value: string | null) {\n\t\tthis.adManager.clickId = value;\n\t}\n\n\tget adClickId() {\n\t\treturn this.adManager.clickId;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tCXD\n\t *=============================================\n\t */\n\n\tset cxd(value: string | null) {\n\t\tthis.cellexpertManager.cxd = value;\n\t}\n\n\tget cxd() {\n\t\treturn this.cellexpertManager.cxd;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tLOCALE\n\t *=============================================\n\t */\n\n\tprivate get locale() {\n\t\treturn new Promise<Locale>((resolve) => {\n\t\t\tconst cacheKey = 'locale';\n\t\t\tconst cacheValue = this.cache.get<Locale>(cacheKey);\n\n\t\t\tif (cacheValue) return resolve(cacheValue);\n\n\t\t\tthis.platform__next().then((res) => {\n\t\t\t\tif (res.ok) {\n\t\t\t\t\tthis.cache.set(cacheKey, res.data.locale);\n\t\t\t\t\tresolve(res.data.locale);\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger.warn(\"Failed to fetch currency. Using 'PH' as fallback\");\n\t\t\t\t\tresolve('en-PH');\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/*\n\t *=============================================\n\t * \tAUTH MIDDLEWARE\n\t *=============================================\n\t */\n\n\tprivate get authMiddleware(): GraphQLClientMiddleware {\n\t\treturn async (request) => {\n\t\t\tthis.logger.info('Checking for session');\n\n\t\t\tconst res = await this.sessionManager.get();\n\n\t\t\tif (res.data) {\n\t\t\t\trequest.headers.set('Authorization', `Bearer ${res.data.accessToken}`);\n\t\t\t\tthis.logger.info('Session found');\n\t\t\t\tthis.logger.success(\"Added 'Authorization' header\");\n\t\t\t} else {\n\t\t\t\tthis.logger.info('No session found');\n\t\t\t}\n\n\t\t\treturn request;\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tDOMAIN MIDDLEWARE\n\t *=============================================\n\t */\n\n\tprivate get domainMiddleware(): GraphQLClientMiddleware {\n\t\treturn async (request) => {\n\t\t\t// 💀 We don't support this anymore\n\t\t\tif (this.sessionManager.onMaya) {\n\t\t\t\trequest.headers.delete('Domain');\n\t\t\t\treturn request;\n\t\t\t}\n\n\t\t\t// Use memberDomain if it contains 'cabinet'\n\t\t\tif (this.memberDomain && this.memberDomain.includes('cabinet')) {\n\t\t\t\trequest.headers.set('Domain', this.memberDomain);\n\t\t\t\treturn request;\n\t\t\t}\n\n\t\t\tconst domain =\n\t\t\t\ttypeof window === 'undefined'\n\t\t\t\t\t? null\n\t\t\t\t\t: !Capacitor.isNativePlatform()\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: Capacitor.getPlatform() === 'ios'\n\t\t\t\t\t\t\t? `ios/${this.config.platform}`.toLowerCase()\n\t\t\t\t\t\t\t: Capacitor.getPlatform() === 'android'\n\t\t\t\t\t\t\t\t? `android/${this.config.platform}`.toLowerCase()\n\t\t\t\t\t\t\t\t: null;\n\n\t\t\tif (domain) {\n\t\t\t\trequest.headers.set('Domain', domain);\n\t\t\t\treturn request;\n\t\t\t}\n\n\t\t\trequest.headers.delete('Domain');\n\t\t\treturn request;\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tMISCELLANEOUS MIDDLEWARE\n\t *=============================================\n\t */\n\n\tprivate get miscMiddleware(): GraphQLClientMiddleware {\n\t\treturn async (request) => {\n\t\t\tconst adClickId = this.adManager.clickId;\n\t\t\tif (adClickId) request.headers.set('Ad-Click-Id', adClickId);\n\t\t\treturn request;\n\t\t};\n\t}\n\n\tasync signIn(\n\t\tinput: NameAndPasswordSignInInput,\n\t): Promise<NameAndPasswordSignInReturn>;\n\tasync signIn(\n\t\tinput: MobileNumberSignInInput,\n\t): Promise<MobileNumberSignInReturn>;\n\tasync signIn(input: MayaSignInInput): Promise<MayaSignInReturn>;\n\tasync signIn(input: TokenSignInInput): Promise<TokenSignInReturn>;\n\tasync signIn(input: SocialsSignInInput): Promise<SocialsSignInReturn>;\n\tasync signIn(input: CabinetSignInInput): Promise<CabinetSignInReturn>;\n\tasync signIn(\n\t\tinput: SingleUseTokenSignInInput,\n\t): Promise<SingleUseTokenSignInReturn>;\n\tasync signIn(input: SignInInput): Promise<SignInReturn> {\n\t\tif (input.type === 'TOKEN') {\n\t\t\tconsole.warn(\n\t\t\t\t\"'TOKEN (signIn)' is deprecated. Please use 'SOCIALS' instead.\",\n\t\t\t);\n\t\t}\n\n\t\tswitch (input.type) {\n\t\t\tcase 'NAME_AND_PASSWORD': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\t...input,\n\t\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\t});\n\n\t\t\t\tif (!res.ok) return res;\n\t\t\t\tif (res.data) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: true,\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t'2FAEnabled': true,\n\t\t\t\t\t\t\tauthenticator: res.data.authenticator,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t'2FAEnabled': false,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tcase 'SOCIALS':\n\t\t\tcase 'TOKEN': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\ttype: 'SOCIALS',\n\t\t\t\t\ttoken: input.token,\n\t\t\t\t\tchannel: input.channel,\n\t\t\t\t});\n\n\t\t\t\treturn res.ok ? { ok: true } : res;\n\t\t\t}\n\n\t\t\tcase 'CABINET': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\ttype: 'CABINET',\n\t\t\t\t\ttoken: input.token,\n\t\t\t\t\tchannel: input.channel,\n\t\t\t\t});\n\n\t\t\t\treturn res.ok ? { ok: true } : res;\n\t\t\t}\n\n\t\t\tcase 'MOBILE_NUMBER': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\ttype: 'MOBILE_NUMBER',\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\t\tverificationCode: input.verificationCode,\n\t\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t\t\ttestPass: input.testPass,\n\t\t\t\t\tchannel: input.channel,\n\t\t\t\t});\n\n\t\t\t\treturn res.ok ? { ok: true } : res;\n\t\t\t}\n\n\t\t\tcase 'SINGLE_USE_TOKEN': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\ttype: 'SINGLE_USE_TOKEN',\n\t\t\t\t\ttoken: input.token,\n\t\t\t\t\tchannel: input.channel,\n\t\t\t\t});\n\n\t\t\t\treturn res.ok ? { ok: true } : res;\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tconst res = await this.sessionManager.create(input);\n\n\t\t\t\treturn res.ok ? { ok: true } : res;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync authenticate(input: AuthenticateInput): Promise<AuthenticateReturn> {\n\t\tswitch (input.type) {\n\t\t\tcase 'SECURITY_QUESTION': {\n\t\t\t\treturn await this.sessionManager.createFromAuthenticator({\n\t\t\t\t\ttype: 'SECURITY_QUESTION',\n\t\t\t\t\ttoken: input.token,\n\t\t\t\t\tchannel: input.channel,\n\t\t\t\t\tsecretAnswer: await sha256(input.secretAnswer),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tname: 'HttpBadRequest',\n\t\t\t\t\t\tmessage: \"Invalid input 'type'\",\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\tasync signOut() {\n\t\tawait this.sessionManager.destroy();\n\t}\n\n\twatchSession(input: WatchSessionInput) {\n\t\tconst interval = clamp(input.interval ?? 30000, 30000, 60000);\n\n\t\tlet timeout: NodeJS.Timeout | null = null;\n\n\t\tconst assignTimeout = () => {\n\t\t\treturn setTimeout(async () => {\n\t\t\t\tconst v = await this.sessionManager.verify();\n\n\t\t\t\tif (!v) {\n\t\t\t\t\tawait input.onInvalid();\n\t\t\t\t}\n\n\t\t\t\ttimeout = assignTimeout();\n\t\t\t}, interval);\n\t\t};\n\n\t\ttimeout = assignTimeout();\n\n\t\treturn function unsubscribe() {\n\t\t\tif (timeout) {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t}\n\t\t};\n\t}\n\n\tasync session(): Promise<SessionReturn> {\n\t\tconst res = await this.sessionManager.get();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? {\n\t\t\t\t\t\tid: res.data.session.id,\n\t\t\t\t\t\tmaya: this.sessionManager.onMaya,\n\t\t\t\t\t\tcabinet: this.sessionManager.onCabinet,\n\t\t\t\t\t\taccessToken: res.data.accessToken,\n\t\t\t\t\t\trefreshToken: res.data.refreshToken,\n\t\t\t\t\t\tdateTimeCreated: new Date(res.data.session.dateTimeCreated),\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\tasync refreshSession(): Promise<SessionReturn> {\n\t\tconst res = await this.sessionManager.refresh();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? {\n\t\t\t\t\t\tid: res.data.session.id,\n\t\t\t\t\t\tmaya: this.sessionManager.onMaya,\n\t\t\t\t\t\tcabinet: this.sessionManager.onCabinet,\n\t\t\t\t\t\taccessToken: res.data.accessToken,\n\t\t\t\t\t\trefreshToken: res.data.refreshToken,\n\t\t\t\t\t\tdateTimeCreated: new Date(res.data.session.dateTimeCreated),\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\tasync validateMayaSession(): Promise<ValidateMayaSessionReturn> {\n\t\treturn await this.walletService.validateMayaSession();\n\t}\n\n\tasync createSingleUseToken(): Promise<CreateSingleUseTokenReturn> {\n\t\tconst res0 = await this.sessionManager.get();\n\n\t\tif (!res0.ok || !res0.data) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.authService.createSingleUseToken(\n\t\t\tres0.data.accessToken,\n\t\t);\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn { ok: true, data: res1.data.token };\n\t}\n\n\t/*\n\t *=============================================\n\t * \tSITE\n\t *=============================================\n\t */\n\n\tasync site(): Promise<SiteReturn> {\n\t\tconst res = await this.cmsPortalService.self();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.site(res.data),\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tEXTENSION\n\t *=============================================\n\t */\n\n\tasync memberCabinetSiteMachine(): Promise<CabinetSiteMachineReturn> {\n\t\tconst res = await this.extensionService.memberCabinetSiteMachine();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? this.transformer.transform.memberCabinetSiteMachine(res.data)\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\tasync cabinetWithdrawalRecord(id: string): Promise<CabinetWithdrawalReturn> {\n\t\tconst res = await this.walletService.cabinetWithdrawal({ id });\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? this.transformer.transform.cabinetWithdrawal(res.data)\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tPLATFORM\n\t *=============================================\n\t */\n\n\t/** @deprecated */\n\tasync platform(): Promise<PlatformReturn> {\n\t\tconsole.warn(\n\t\t\t\"'platform' is deprecated. Please use 'platform__next' instead.\",\n\t\t);\n\n\t\tconst res = await this.accountService.platform();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.platform(res.data),\n\t\t};\n\t}\n\n\tasync platform__next(): Promise<PlatformReturn__Next> {\n\t\tconst res = await this.portalService.platform();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.platform__next(res.data),\n\t\t};\n\t}\n\n\tasync paymentSettings(): Promise<PaymentSettingsReturn> {\n\t\tconst res = await this.accountService.paymentSettings();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.paymentSettings(res.data),\n\t\t};\n\t}\n\n\tasync memberLevelSettings(): Promise<MemberLevelSettingsReturn> {\n\t\tconst res = await this.accountService.memberLevelSettings();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.memberLevelSettings(res.data),\n\t\t};\n\t}\n\n\tasync achievementSettings(): Promise<AchievementSettingsReturn> {\n\t\tconst res = await this.accountService.achievementSettings();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.achievementSettings(res.data),\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tACCOUNT\n\t *=============================================\n\t */\n\n\tasync account(): Promise<AccountReturn> {\n\t\tconst r = await this.accountService.memberAccount();\n\n\t\tif (!r.ok) return r;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.account(r.data),\n\t\t};\n\t}\n\n\t/**\n\t * @deprecated use `createAccount__next`\n\t */\n\tasync createAccount(input: CreateAccountInput): Promise<CreateAccountReturn> {\n\t\tconsole.warn(\n\t\t\t\"'createAccount' is deprecated. Please use 'createAccount__next' instead.\",\n\t\t);\n\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\n\n\t\tconst res = await this.accountService.registerMemberAccount({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tbtag: input.btag,\n\t\t\t\tname: input.name,\n\t\t\t\tdomain: input.domain,\n\t\t\t\tbirthDay:\n\t\t\t\t\ttypeof input.dateOfBirth === 'string'\n\t\t\t\t\t\t? input.dateOfBirth\n\t\t\t\t\t\t: this.formatYmd(input.dateOfBirth),\n\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t},\n\t\t\treferralCode: input.referralCode,\n\t\t\tverificationCode: input.verificationCode,\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\tasync createAccount__next(\n\t\tinput: CreateAccountInput__Next,\n\t): Promise<CreateAccountReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\n\n\t\tif (input.type === 'MOBILE_NUMBER') {\n\t\t\tconst res = await this.accountService.registerMemberAccountViaMobile({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tbtag: input.btag,\n\t\t\t\t\tdomain: input.domain,\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\t\trealName: input.realName,\n\t\t\t\t\tbirthDay: input.dateOfBirth,\n\t\t\t\t\tbranchCode: input.branchCode,\n\t\t\t\t\t...(this.cxd && {\n\t\t\t\t\t\tcellxpertCxd: this.cxd,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\treferralCode: input.referralCode,\n\t\t\t\tverificationCode: input.verificationCode,\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t\ttestPass: input.testPass,\n\t\t\t});\n\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t\t}\n\n\t\tif (input.type === 'MOBILE_NUMBER_INR') {\n\t\t\tconst res = await this.accountService.registerMemberAccountByMobileNumber(\n\t\t\t\t{\n\t\t\t\t\tinput: {\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\t\t\trealName: input.realName,\n\t\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\t\t},\n\t\t\t\t\tmobileNumberVerificationCode: input.mobileVerificationCode,\n\t\t\t\t\ttestPass: input.testPass,\n\t\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t\t}\n\n\t\tif (input.type === 'NAME_AND_PASSWORD') {\n\t\t\tconst res = await this.accountService.registerMemberAccount__next({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tname: input.name,\n\t\t\t\t\tbtag: input.btag,\n\t\t\t\t\tdomain: input.domain,\n\t\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\t\tmobileNumber: input.mobileNumber\n\t\t\t\t\t\t? addAreaCode(input.mobileNumber, await this.locale)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t\t}\n\n\t\tconst res = await this.accountService.registerMemberAccountByName({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tname: input.name,\n\t\t\t\tpassword: await sha256(input.password),\n\t\t\t},\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\tasync registerMayaAccount(\n\t\tinput: RegisterMayaAccountInput,\n\t): Promise<RegisterMayaAccountReturn> {\n\t\treturn await this.accountService.registerMayaMemberAccount({\n\t\t\tinput: {\n\t\t\t\tname: input.name,\n\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\tdomain: input.domain,\n\t\t\t},\n\t\t});\n\t}\n\n\tasync updateAccount(\n\t\tid: string,\n\t\tinput: UpdateAccountInput,\n\t): Promise<UpdateAccountReturn> {\n\t\tconst {\n\t\t\t/**/\n\t\t\tpassword,\n\t\t\tdateOfBirth,\n\t\t\tmobileNumber,\n\t\t\tsecretAnswer,\n\t\t\ttransactionPassword,\n\t\t\t...others\n\t\t} = input;\n\n\t\treturn await this.accountService.updateMemberAccount({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tdata: {\n\t\t\t\t\t...others,\n\t\t\t\t\tpassword: password ? await sha256(password) : undefined,\n\t\t\t\t\ttransactionPassword: transactionPassword\n\t\t\t\t\t\t? await sha256(transactionPassword)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tmobileNumber: mobileNumber\n\t\t\t\t\t\t? addAreaCode(mobileNumber, await this.locale)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tsecretAnswer: secretAnswer ? await sha256(secretAnswer) : undefined,\n\t\t\t\t\tbirthDay: dateOfBirth\n\t\t\t\t\t\t? typeof dateOfBirth === 'string'\n\t\t\t\t\t\t\t? dateOfBirth\n\t\t\t\t\t\t\t: this.formatYmd(dateOfBirth)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tasync deleteAccount(id: string): Promise<DeleteAccountReturn> {\n\t\treturn await this.accountService.deleteMemberAccount({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t},\n\t\t});\n\t}\n\tasync unlinkGoogle(id: string): Promise<DeleteAccountReturn> {\n\t\treturn await this.accountService.unlinkGoogle({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t},\n\t\t});\n\t}\n\tasync verificationDetails(): Promise<VerificationDetailsReturn> {\n\t\tconst res = await this.accountService.memberVerification();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? this.transformer.transform.verificationDetails(res.data)\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\tasync submitVerificationDetails(\n\t\tinput: SubmitVerificationDetailsInput,\n\t): Promise<SubmitVerificationDetailsReturn> {\n\t\tconst id =\n\t\t\tinput.id ?? ObjectId.generate(ObjectType.Verification).toString();\n\n\t\tconst res = await this.accountService.createMemberVerification({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\t...input,\n\t\t\t},\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\tasync submitVerificationDetails_Next(\n\t\tinput: SubmitVerificationDetailsInputNext,\n\t): Promise<SubmitVerificationDetailsReturn> {\n\t\tconst id =\n\t\t\tinput.id ?? ObjectId.generate(ObjectType.Verification).toString();\n\n\t\tconst res = await this.accountService.createMemberVerification_Next({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\t...input,\n\t\t\t},\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\tasync updateVerificationDetails(\n\t\tid: string,\n\t\tinput: UpdateVerificationDetailsInput,\n\t): Promise<UpdateVerificationDetailsReturn> {\n\t\treturn await this.accountService.updateMemberVerification({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tdata: {\n\t\t\t\t\t...input,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tasync updateVerificationDetails_Next(\n\t\tid: string,\n\t\tinput: UpdateVerificationDetailsInput,\n\t): Promise<UpdateVerificationDetailsReturn> {\n\t\treturn await this.accountService.updateMemberVerification_Next({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tdata: {\n\t\t\t\t\t...input,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tasync submitMemberVerification(\n\t\tid: string,\n\t): Promise<SubmitMemberVerificationReturn> {\n\t\tconst res = await this.accountService.submitMemberVerification({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t},\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\tasync resetPassword(input: ResetPasswordInput): Promise<ResetPasswordReturn> {\n\t\treturn await this.accountService.resetPassword({\n\t\t\tinput: {\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\tnewPassword: await sha256(input.newPassword),\n\t\t\t},\n\t\t\tverificationCode: input.verificationCode,\n\t\t});\n\t}\n\n\tasync verifyMobileNumber(\n\t\tverificationCode: string,\n\t): Promise<VerifyMobileNumberReturn> {\n\t\treturn await this.accountService.verifyMobileNumber({\n\t\t\tinput: {\n\t\t\t\tverificationCode,\n\t\t\t},\n\t\t});\n\t}\n\n\tasync profileCompletion(): Promise<ProfileCompletionReturn> {\n\t\tconst res = await this.accountService.profileCompletion();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.profileCompletion(res.data),\n\t\t};\n\t}\n\n\t/**\n\t * @deprecated use `sendVerificationCode__next`\n\t */\n\tasync sendVerificationCode(\n\t\tmobileNumber: string,\n\t): Promise<SendVerificationCodeReturn> {\n\t\tconsole.warn(\n\t\t\t\"'sendVerificationCode' is deprecated. Please use 'sendVerificationCode__next' instead.\",\n\t\t);\n\n\t\treturn await this.accountService.sendVerificationCode({\n\t\t\tinput: {\n\t\t\t\tchannel: 'SMS',\n\t\t\t\trecipient: addAreaCode(mobileNumber, await this.locale),\n\t\t\t},\n\t\t});\n\t}\n\n\tasync sendVerificationCode__next(\n\t\tinput: SendVerificationCodeInput__Next,\n\t): Promise<SendVerificationCodeReturn__Next> {\n\t\tif (input.type === 'SMS') {\n\t\t\treturn this.authService.sendVerificationCode({\n\t\t\t\tchannel: 'SMS',\n\t\t\t\trecipient: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\t...(input.strict && {\n\t\t\t\t\tverificationType: 'MEMBER',\n\t\t\t\t}),\n\t\t\t});\n\t\t}\n\n\t\tthrow new Error(\"'Email' verification code is not yet supported\");\n\t}\n\n\tasync wallet(): Promise<WalletReturn> {\n\t\tconst res = await this.walletService.wallet();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.wallet(res.data) : null,\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tANNOUNCEMENT\n\t *=============================================\n\t */\n\n\tasync announcements(\n\t\tinput?: AnnouncementsInput,\n\t): Promise<AnnouncementsReturn> {\n\t\tconst res = await this.accountService.announcements({\n\t\t\t...input,\n\t\t\tfilter: {\n\t\t\t\t...input?.filter,\n\t\t\t\tvisibility: {\n\t\t\t\t\tin: ['MEMBER', 'GLOBAL'],\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tannouncements: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.announcement(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as AnnouncementsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tWITHDRAWAL\n\t *=============================================\n\t */\n\n\tasync createWithdrawal(\n\t\tinput: CreateWithdrawalInput,\n\t): Promise<CreateWithdrawalReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Withdrawal).toString();\n\n\t\tif (input.type === 'BANK') {\n\t\t\tconst res = await this.walletService.createBankWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'CABINET') {\n\t\t\tconst res = await this.extensionService.createCabinetWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'GCASH') {\n\t\t\tconst res = await this.walletService.createGCashWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t\trecipientMobileNumber: addAreaCode(\n\t\t\t\t\t\tinput.recipientMobileNumber,\n\t\t\t\t\t\tawait this.locale,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'GCASH_STANDARD_CASHIN') {\n\t\t\tconst res = await this.walletService.createGCashStandardCashInWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t\trecipientMobileNumber: addAreaCode(\n\t\t\t\t\t\tinput.recipientMobileNumber,\n\t\t\t\t\t\tawait this.locale,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MAYA') {\n\t\t\tconst res = await this.walletService.createMayaWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t\trecipientMobileNumber: addAreaCode(\n\t\t\t\t\t\tinput.recipientMobileNumber,\n\t\t\t\t\t\tawait this.locale,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MAYA_APP') {\n\t\t\tconst res = await this.walletService.createMayaAppWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'AIO_INSTAPAY') {\n\t\t\tconst res = await this.walletService.createAIOInstapayWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tbankCode: input.bankCode,\n\t\t\t\t\taccountNumber: input.accountNumber,\n\t\t\t\t\taccountName: input.accountName,\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\t\tif (input.type === 'AIO_INSTAPAY_NEXT') {\n\t\t\tconst res = await this.walletService.createAIOInstapayWithdrawal_next({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tbankCode: input.bankCode,\n\t\t\t\t\taccountNumber: input.accountNumber,\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t\taccountName: input.accountName,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MANUAL_UPI') {\n\t\t\tconst res = await this.walletService.createManualUpiWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tupiId: input.upiId,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MANUAL_BANK') {\n\t\t\tconst res = await this.walletService.createManualBankWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tbankAccountName: input.bankAccountName,\n\t\t\t\t\tbankAccountNumber: input.bankAccountNumber,\n\t\t\t\t\tbankIFSCCode: input.bankIFSCCode,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\treturn { ok: true, data: { id } };\n\t}\n\n\tasync withdrawalRecords(\n\t\tinput?: WithdrawalRecordsInput,\n\t): Promise<WithdrawalRecordsReturn> {\n\t\tconst res = await this.reportService.withdrawalRecords(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\twithdrawalRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.withdrawalRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as WithdrawalRecordsReturn;\n\t}\n\n\tasync remainingDailyWithdrawalsCount(): Promise<RemainingDailyWithdrawalsCountReturn> {\n\t\treturn await this.walletService.remainingDailyWithdrawalsCount();\n\t}\n\n\tasync instapayBankList(): Promise<InstapayBankListReturn> {\n\t\tconst res = await this.walletService.instapayBankList();\n\t\tif (!res.ok) return res;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.instapayBank),\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tDEPOSIT\n\t *=============================================\n\t */\n\n\tasync createDeposit(input: CreateDepositInput): Promise<CreateDepositReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Deposit).toString();\n\n\t\tconst environment = this.config.environment ?? 'development';\n\t\tif (input.type === 'TEST') {\n\t\t\tconst res = await this.walletService.createTestDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\t\tif (input.type === 'MAYA') {\n\t\t\tconst res = await this.walletService.createMayaDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MAYA_APP') {\n\t\t\tconst res = await this.walletService.createMayaAppDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'GCASH') {\n\t\t\tconst res = await this.walletService.createGCashDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'AIO_GCASH') {\n\t\t\tconst res = await this.walletService.createAiOGCashDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\t\tif (input.type === 'AIO_PAY_MAYA') {\n\t\t\tconst res = await this.walletService.createAiOPayMayaDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'AIO_GRAB_PAY') {\n\t\t\tconst res = await this.walletService.createAiOGrabPayDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'AIO_PALAWAN_PAY') {\n\t\t\tconst res = await this.walletService.createAiOPalawanPayDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'AIO_ONLINE_BANK') {\n\t\t\tconst res = await this.walletService.createAIOOnlineBankDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'AIO_QRPH') {\n\t\t\tconst res = await this.walletService.createAIOQRPHDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\t\tif (input.type === 'MANUAL_UPI') {\n\t\t\tconst res = await this.walletService.createManualUPIDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\treference: input.reference,\n\t\t\t\t\treferenceImage: input.referenceImage,\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MANUAL_BANK') {\n\t\t\tconst res = await this.walletService.createManualBankDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\treferenceImage: input.referenceId,\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'GCASH_WEBPAY') {\n\t\t\tconst res = await this.walletService.createGCashWebpayDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t\tcancelRedirectionUrl: input.cancelRedirectionUrl,\n\t\t\t\t\tsuccessRedirectionUrl: input.successRedirectionUrl,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MAYA_WEBPAY') {\n\t\t\tconst res = await this.walletService.createMayaWebpayDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t\tredirectUrl: input.redirectUrl,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\treturn { ok: true, data: { id } };\n\t}\n\n\tasync deposit(id: string): Promise<DepositReturn> {\n\t\tconst res = await this.walletService.deposit({ id });\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.deposit(res.data) : null,\n\t\t};\n\t}\n\n\tasync depositRecords(\n\t\tinput?: DepositRecordsInput,\n\t): Promise<DepositRecordsReturn> {\n\t\tconst res = await this.reportService.depositRecords(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tdepositRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.depositRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as DepositRecordsReturn;\n\t}\n\n\tasync depositsCount(): Promise<DepositsCountReturn> {\n\t\treturn await this.reportService.depositsCount();\n\t}\n\n\tasync touchDeposit(input: TouchDepositInput): Promise<TouchDepositReturn> {\n\t\tswitch (input.type) {\n\t\t\tcase 'GCASH':\n\t\t\t\treturn await this.walletService.touchGCashDeposit({\n\t\t\t\t\tinput: { id: input.id },\n\t\t\t\t});\n\t\t\tcase 'QR_PH':\n\t\t\t\treturn await this.walletService.touchQrphDeposit({\n\t\t\t\t\tinput: { id: input.id },\n\t\t\t\t});\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unsupported input type: '${input.type}'`);\n\t\t}\n\t}\n\n\tasync redeemVoucher(input: RedeemVoucherInput): Promise<RedeemVoucherReturn> {\n\t\treturn await this.walletService.redeemVoucher({\n\t\t\tinput: {\n\t\t\t\ttype: input.type,\n\t\t\t\tcode: input.code,\n\t\t\t},\n\t\t});\n\t}\n\n\t/*\n\t *=============================================\n\t * \tBET RECORD\n\t *=============================================\n\t */\n\n\tasync betRecords(input?: BetRecordsInput): Promise<BetRecordsReturn> {\n\t\tconst res0 = await this.reportService.betRecords({\n\t\t\t...input,\n\t\t\t...(input?.filter && {\n\t\t\t\tfilter: {\n\t\t\t\t\t...(input.filter.status && {\n\t\t\t\t\t\tstatus: input.filter.status,\n\t\t\t\t\t}),\n\t\t\t\t\t...(input.filter.serialCode && {\n\t\t\t\t\t\tserialCode: input.filter.serialCode,\n\t\t\t\t\t}),\n\t\t\t\t\t...(input.filter.vendorRoundId && {\n\t\t\t\t\t\tvendorRoundId: input.filter.vendorRoundId,\n\t\t\t\t\t}),\n\t\t\t\t\t...(input.filter.gameType && {\n\t\t\t\t\t\tgame__type: input.filter.gameType,\n\t\t\t\t\t}),\n\t\t\t\t\t...(input.filter.gameProvider && {\n\t\t\t\t\t\tgame__provider: input.filter.gameProvider,\n\t\t\t\t\t}),\n\t\t\t\t\t...(input.filter.dateTimeCreated && {\n\t\t\t\t\t\tdateTimeCreated: input.filter.dateTimeCreated,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t}),\n\t\t});\n\n\t\tif (!res0.ok) return res0;\n\n\t\tconst ids = [...new Set(res0.data.edges.map((e) => e.node.game.id))];\n\n\t\tif (ids.length <= 0) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: {\n\t\t\t\t\tbetRecords: [],\n\t\t\t\t\ttotalCount: 0,\n\t\t\t\t\tendCursor: undefined,\n\t\t\t\t\thasNextPage: false,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.cmsPortalService.games({\n\t\t\tfilter: {\n\t\t\t\treference: {\n\t\t\t\t\tin: ids,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tbetRecords: res0.data.edges.map(({ cursor, node }) => {\n\t\t\t\t\tconst game = res1.data.edges.find(\n\t\t\t\t\t\t(e) => node.game.id === e.node.reference,\n\t\t\t\t\t)?.node;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...this.transformer.transform.betRecord({\n\t\t\t\t\t\t\t...node,\n\t\t\t\t\t\t\tgame,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t\ttotalCount: res0.data.totalCount,\n\t\t\t\tendCursor: res0.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res0.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as BetRecordsReturn;\n\t}\n\n\tasync latestBetRecords(): Promise<LatestBetRecordsReturn> {\n\t\tconst res0 = await this.portalService.latestBetRecords();\n\n\t\tif (!res0.ok) return res0;\n\n\t\tconst ids = [...new Set(res0.data.map((o) => o.game.id))];\n\n\t\tif (ids.length <= 0) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: [],\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.cmsPortalService.games({\n\t\t\tfilter: {\n\t\t\t\treference: {\n\t\t\t\t\tin: ids,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res0.data.map((o) => {\n\t\t\t\tconst game = res1.data.edges.find(\n\t\t\t\t\t(e) => e.node.reference === o.game.id,\n\t\t\t\t)?.node;\n\n\t\t\t\treturn this.transformer.transform.latestBetRecord({\n\t\t\t\t\t...o,\n\t\t\t\t\tgame,\n\t\t\t\t});\n\t\t\t}),\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tTRANSACTION\n\t *=============================================\n\t */\n\n\tasync transactionRecords(\n\t\tinput?: TransactionRecordsInput,\n\t): Promise<TransactionRecordsReturn> {\n\t\tconst res = await this.reportService.transactionRecords(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\ttransactionRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.transactionRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as TransactionRecordsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tPROMO\n\t *=============================================\n\t */\n\n\tasync promos(): Promise<PromosReturn> {\n\t\tconst res = await this.walletService.promos();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\n\t\t};\n\t}\n\n\tasync availablePromos(\n\t\tinput?: PromoFilterInput,\n\t): Promise<AvailablePromosReturn> {\n\t\tconst res = await this.walletService.availablePromos(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\n\t\t};\n\t}\n\n\tasync cashbacks(): Promise<CashbacksReturn> {\n\t\tconst res = await this.walletService.cashbacks();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.cashback),\n\t\t};\n\t}\n\n\t/** @deprecated */\n\tasync bonus(): Promise<BonusReturn> {\n\t\tconsole.warn(\"'bonus' is deprecated. Please use 'bonuses' instead.\");\n\n\t\tconst res = await this.walletService.bonus();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.bonus(res.data) : null,\n\t\t};\n\t}\n\n\tasync bonuses(): Promise<BonusesReturn> {\n\t\tconst res = await this.walletService.bonuses();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.bonus),\n\t\t};\n\t}\n\n\tasync cashbackBonuses(): Promise<CashbackBonusReturn> {\n\t\tconst res = await this.walletService.cashbackBonuses();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.cashbackBonus),\n\t\t};\n\t}\n\n\tasync claimCashbackBonus(id: string): Promise<ClaimCashbackBonusReturn> {\n\t\treturn await this.walletService.claimCashbackBonus({ input: { id } });\n\t}\n\n\tasync claimSpotBonus(code: string): Promise<ClaimSpotBonusReturn> {\n\t\treturn await this.walletService.claimSpotBonus({ code: code });\n\t}\n\n\tasync promoByCode(code: string): Promise<PromoByCodeReturn> {\n\t\tconst res = await this.reportService.promoByCode({ code: code });\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.promoByCode(res.data),\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tGAME\n\t *=============================================\n\t */\n\n\tasync game(id: string): Promise<GameReturn> {\n\t\tconst res = await this.cmsPortalService.game(id);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.game(res.data) : null,\n\t\t};\n\t}\n\n\t/** @deprecated */\n\tasync games(input?: GamesInput): Promise<GamesReturn> {\n\t\tconsole.warn(\"'games' is deprecated. Please use 'games__next' instead.\");\n\n\t\tconst res = await this.cmsPortalService.games(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.game(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as GamesReturn;\n\t}\n\n\tasync walletGames(input?: WalletGameInput): Promise<WalletGamesReturn> {\n\t\tconsole.warn(\n\t\t\t\"'walletGames games' is deprecated. This is for testing purpose only.\",\n\t\t);\n\n\t\tconst res = await this.walletService.walletGames(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...node,\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as WalletGamesReturn;\n\t}\n\n\tasync games__next(input?: GamesInput__Next): Promise<GamesReturn> {\n\t\tconst res = await this.cmsPortalService.games__next(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.game(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as GamesReturn;\n\t}\n\n\tasync recommendedGames(\n\t\tinput?: RecommendedGamesInput,\n\t): Promise<RecommendedGamesReturn> {\n\t\tconst res0 = await this.portalService.recommendedGames();\n\n\t\tif (!res0.ok) return res0;\n\n\t\tconst ids = [...new Set(res0.data.map((o) => o.id))];\n\n\t\tif (ids.length <= 0) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: {\n\t\t\t\t\tgames: [],\n\t\t\t\t\ttotalCount: 0,\n\t\t\t\t\thasNextPage: false,\n\t\t\t\t\tendCursor: undefined,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.cmsPortalService.games({\n\t\t\tfirst: input?.first,\n\t\t\tafter: input?.after,\n\t\t\tfilter: {\n\t\t\t\treference: {\n\t\t\t\t\tin: ids,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tgames: res1.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.game(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res1.data.totalCount,\n\t\t\t\thasNextPage: res1.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res1.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as RecommendedGamesReturn;\n\t}\n\n\tasync gameSession(\n\t\tid: string,\n\t\tgameProvider?: GameProvider,\n\t): Promise<GameSessionReturn> {\n\t\tif (gameProvider) {\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(gameProvider)\n\t\t\t\t? await this.walletService.gameSession({ id })\n\t\t\t\t: await this.gameService.gameSession({ id });\n\n\t\t\tif (!res.ok) return res;\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: res.data\n\t\t\t\t\t? this.transformer.transform.gameSession(res.data)\n\t\t\t\t\t: null,\n\t\t\t};\n\t\t}\n\n\t\tconst res0 = await this.walletService.gameSession({ id });\n\n\t\tif (!res0.ok) return res0;\n\n\t\tif (res0.data) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: this.transformer.transform.gameSession(res0.data),\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.gameService.gameSession({ id });\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res1.data\n\t\t\t\t? this.transformer.transform.gameSession(res1.data)\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\tasync createGameSession(\n\t\tinput: CreateGameSessionInput,\n\t): Promise<CreateGameSessionReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.GameSession).toString();\n\n\t\tif (input.provider) {\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(input.provider)\n\t\t\t\t? await this.walletService.createGameSession({\n\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tgame: input.reference,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t: await this.gameService.createGameSession({\n\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tgame: input.reference,\n\t\t\t\t\t\t\thomepageUrl:\n\t\t\t\t\t\t\t\ttypeof window === 'undefined' ? undefined : input.homepageUrl,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t\t}\n\n\t\tconst isSports = input.game.startsWith('SPORTS:');\n\n\t\tif (isSports) {\n\t\t\tconst game = await ObjectId.generateFromKey(\n\t\t\t\tObjectType.Game,\n\t\t\t\tinput.game,\n\t\t\t).then((generatedId) => {\n\t\t\t\treturn generatedId.toString();\n\t\t\t});\n\n\t\t\tconst res0 = await this.gameService.createGameSession({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tgame,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn res0.ok ? { ok: true, data: { id } } : res0;\n\t\t}\n\n\t\tconst res0 = await this.game(input.game);\n\n\t\tif (!res0.data) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: res0.error?.name ?? 'GameDoesNotExistError',\n\t\t\t\t\tmessage: res0.error?.message ?? 'Game does not exist',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst { provider, reference } = res0.data;\n\n\t\tconst res1 = NEW_GAME_PROVIDERS.includes(provider)\n\t\t\t? await this.walletService.createGameSession({\n\t\t\t\t\tinput: { id, game: reference },\n\t\t\t\t})\n\t\t\t: await this.gameService.createGameSession({\n\t\t\t\t\tinput: {\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tgame: reference,\n\t\t\t\t\t\thomepageUrl:\n\t\t\t\t\t\t\ttypeof window === 'undefined' ? undefined : input.homepageUrl,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\treturn res1.ok ? { ok: true, data: { id } } : res1;\n\t}\n\n\tasync endGameSession(\n\t\tid: string,\n\t\tgameProvider?: GameProvider,\n\t): Promise<EndGameSessionReturn> {\n\t\tif (gameProvider) {\n\t\t\treturn NEW_GAME_PROVIDERS.includes(gameProvider)\n\t\t\t\t? await this.walletService.endGameSession({ input: { id } })\n\t\t\t\t: await this.gameService.endGameSession({ input: { id } });\n\t\t}\n\n\t\tconst res0 = await this.walletService.endGameSession({ input: { id } });\n\t\tif (res0.ok) return res0;\n\t\tconst res1 = await this.gameService.endGameSession({ input: { id } });\n\t\treturn res1;\n\t}\n\n\tasync markGameAsFavorite(\n\t\tinput: MarkGameAsFavoriteInput,\n\t): Promise<MarkGameAsFavoriteReturn> {\n\t\treturn await this.walletService.markGameAsFavorite({ input });\n\t}\n\n\tasync unmarkGameAsFavorite(\n\t\tinput: UnmarkGameAsFavoriteInput,\n\t): Promise<UnmarkGameAsFavoriteReturn> {\n\t\treturn await this.walletService.unmarkGameAsFavorite({ input });\n\t}\n\n\tasync favoriteGames(): Promise<FavoriteGamesReturn> {\n\t\tconst res0 = await this.walletService.favoriteGames();\n\n\t\tconst ids = res0.data?.length\n\t\t\t? [...new Set(res0.data.map((e) => e.id))]\n\t\t\t: [];\n\n\t\tif (ids.length <= 0) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: [],\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.cmsPortalService.games({\n\t\t\tfilter: {\n\t\t\t\treference: {\n\t\t\t\t\tin: ids,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata:\n\t\t\t\tres0.data\n\t\t\t\t\t?.map(({ id }) => {\n\t\t\t\t\t\tconst game = res1.data.edges.find(\n\t\t\t\t\t\t\t(e) => id === e.node.reference,\n\t\t\t\t\t\t)?.node;\n\t\t\t\t\t\treturn game ? this.transformer.transform.game(game) : null;\n\t\t\t\t\t})\n\t\t\t\t\t.filter(Boolean) ?? [],\n\t\t} as FavoriteGamesReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tFILE\n\t *=============================================\n\t */\n\n\tasync file(id: string): Promise<FileReturn> {\n\t\tconst res = await this.fileService.file({ id });\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.file(res.data) : null,\n\t\t};\n\t}\n\n\tasync uploadImageFile(\n\t\tinput: UploadImageFileInput,\n\t): Promise<UploadImageFileReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.File).toString();\n\n\t\tconst res = await this.fileService.uploadPrivateImageFile({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tfile: input.file,\n\t\t\t},\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tPOINTS\n\t *=============================================\n\t */\n\n\tasync pointsWallet(): Promise<PointsWalletReturn> {\n\t\tconst res = await this.walletService.pointsWallet();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.pointsWallet(res.data) : null,\n\t\t};\n\t}\n\n\tasync redeemPoints(input: RedeemPointsInput): Promise<RedeemPointsReturn> {\n\t\treturn await this.walletService.redeemPointsToCash({\n\t\t\tinput: {\n\t\t\t\tamount: input.amount.toString(),\n\t\t\t},\n\t\t});\n\t}\n\n\tasync pointsWalletTransactions(\n\t\tinput?: PointsWalletTransactionsInput,\n\t): Promise<PointsWalletTransactionsReturn> {\n\t\tconst res = await this.reportService.pointsWalletTransactions(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tpointsWalletTransactions: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.pointsWalletTransaction(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as PointsWalletTransactionsReturn;\n\t}\n\n\tasync achievementPointsHistoryRecord(\n\t\tinput?: AchievementPointsHistoryRecordInput,\n\t): Promise<AchievementPointsHistoryRecordReturn> {\n\t\tconst res = await this.reportService.achievementPointsHistoryRecord(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tachievementPointsHistoryRecords: res.data.edges.map(\n\t\t\t\t\t({ cursor, node }) => ({\n\t\t\t\t\t\t...this.transformer.transform.achievementPointsHistoryRecord(node),\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as AchievementPointsHistoryRecordReturn;\n\t}\n\n\tasync memberAchievements(): Promise<MemberAchievementReturn> {\n\t\tconst res = await this.reportService.memberAchievements();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? this.transformer.transform.memberAchievements(res.data)\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tACTIVITY RECORD\n\t *=============================================\n\t */\n\n\tasync activityRecords(\n\t\tinput?: ActivityRecordsInput,\n\t): Promise<ActivityRecordsReturn> {\n\t\tconst res = await this.reportService.activityRecords(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tactivityRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.activityRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as ActivityRecordsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tREFERRAL\n\t *=============================================\n\t */\n\n\tasync referralCode(): Promise<ReferralCodeReturn> {\n\t\tconst res = await this.accountService.referralCode();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ?? null,\n\t\t};\n\t}\n\n\tasync updateReferralCode(\n\t\tinput: UpdateReferralCodeInput,\n\t): Promise<UpdateReferralCodeReturn> {\n\t\treturn await this.accountService.updateReferralCode({ input });\n\t}\n\n\tasync referrals(input?: ReferralsInput): Promise<ReferralsReturn> {\n\t\tconst res = await this.reportService.referrals(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\treferrals: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.referral(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as ReferralsReturn;\n\t}\n\n\tasync referralCommission(): Promise<ReferralCommissionReturn> {\n\t\tconst res = await this.reportService.referralCommission();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? this.transformer.transform.referralCommission(res.data)\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\tasync uplinesByName(input: UplinesByNameInput): Promise<UplinesByNameReturn> {\n\t\tconst res = await this.reportService.uplinesByName(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\n\t\t};\n\t}\n\n\tasync downlinesByName(\n\t\tinput: DownlinesByNameInput,\n\t): Promise<DownlinesByNameReturn> {\n\t\tconst res = await this.reportService.downlinesByName(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\n\t\t};\n\t}\n\n\tasync pointsClubSettings(): Promise<PointsClubSettingsReturn> {\n\t\tconst res = await this.accountService.pointsClubSettings();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? this.transformer.transform.pointsClubSettings(res.data)\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tMESSAGES\n\t *=============================================\n\t */\n\n\tasync messages(input?: MessagesInput): Promise<MessagesReturn> {\n\t\tconst res = await this.triggerService.messages(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tmessages: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.message(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as MessagesReturn;\n\t}\n\n\tasync unreadMessagesCount(\n\t\tinput?: UnreadMessagesCountInput,\n\t): Promise<UnreadMessagesCountReturn> {\n\t\treturn await this.triggerService.unreadMessagesCount(input);\n\t}\n\n\tasync markMessageAsRead(id: string): Promise<MarkMessageAsReadReturn> {\n\t\treturn await this.triggerService.markMessageAsRead({ id });\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\tasync markAllMessageAsRead(): Promise<MarkAllMessagesAsReadReturn> {\n\t\treturn await this.triggerService.markAllMessageAsRead();\n\t}\n\n\tasync markAllMessagesAsRead(): Promise<MarkAllMessagesAsReadReturn> {\n\t\treturn await this.triggerService.markAllMessagesAsRead();\n\t}\n\n\tasync claimReward(id: string): Promise<ClaimRewardReturn> {\n\t\treturn await this.triggerService.claimReward({ id });\n\t}\n\n\t/*\n\t *=============================================\n\t * \tONBOARDING\n\t *=============================================\n\t */\n\n\tasync onboardingStatus(): Promise<OnboardingStatusReturn> {\n\t\tconst res = await this.portalService.onboardingStatus();\n\t\tif (!res.ok) return res;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data,\n\t\t};\n\t}\n\n\tasync completeOnboarding(\n\t\tinput: CompleteOnboardingInput,\n\t): Promise<CompleteOnboardingReturn> {\n\t\treturn await this.portalService.completeOnboarding({\n\t\t\tinput: {\n\t\t\t\tfavoriteGameTypes: input.favoriteGameTypes,\n\t\t\t\tplayerExperience: input.playerExperience,\n\t\t\t},\n\t\t});\n\t}\n\n\tasync skipOnboarding(): Promise<SkipOnboardingReturn> {\n\t\treturn await this.portalService.skipOnboarding();\n\t}\n\n\t/*\n\t *=============================================\n\t * \tQUEST\n\t *=============================================\n\t */\n\n\tasync availableQuests(): Promise<AvailableQuestsReturn> {\n\t\tconst res = await this.triggerService.availableQuests();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.quest),\n\t\t};\n\t}\n\n\tasync checkInDailyQuest(id: string): Promise<CheckInDailyQuestReturn> {\n\t\treturn await this.triggerService.checkInDailyQuest({ input: { id } });\n\t}\n\n\t/*\n\t *=============================================\n\t * \tTOP WINS\n\t *=============================================\n\t */\n\n\tasync topWins(): Promise<TopWinsReturn> {\n\t\tconst res0 = await this.portalService.topWins();\n\n\t\tconst ids = res0.data?.length\n\t\t\t? [...new Set(res0.data.map((e) => e.game.id))]\n\t\t\t: [];\n\n\t\tif (ids.length <= 0) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: [],\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.cmsPortalService.games({\n\t\t\tfilter: {\n\t\t\t\treference: {\n\t\t\t\t\tin: ids,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res0?.data?.map((o) => {\n\t\t\t\tconst game = res1.data.edges.find(\n\t\t\t\t\t(e) => e.node.reference === o.game.id,\n\t\t\t\t)?.node;\n\n\t\t\t\treturn this.transformer.transform.topWin({\n\t\t\t\t\t...o,\n\t\t\t\t\tgame,\n\t\t\t\t});\n\t\t\t}),\n\t\t} as TopWinsReturn;\n\t}\n\n\tasync topWinsNext(): Promise<TopWinsReturn> {\n\t\tconst res0 = await this.portalService.topWinsNext();\n\n\t\tconst ids = res0.data?.length\n\t\t\t? [...new Set(res0.data.map((e) => e.game.id))]\n\t\t\t: [];\n\n\t\tif (ids.length <= 0) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: [],\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.cmsPortalService.games({\n\t\t\tfilter: {\n\t\t\t\treference: {\n\t\t\t\t\tin: ids,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res0?.data?.map((o) => {\n\t\t\t\tconst game = res1.data.edges.find(\n\t\t\t\t\t(e) => e.node.reference === o.game.id,\n\t\t\t\t)?.node;\n\n\t\t\t\treturn this.transformer.transform.topWin({\n\t\t\t\t\t...o,\n\t\t\t\t\tgame,\n\t\t\t\t});\n\t\t\t}),\n\t\t} as TopWinsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tJACKPOT\n\t *=============================================\n\t */\n\n\tasync jackpots(input?: JackpotsInput): Promise<JackpotsReturn> {\n\t\tconst res = await this.reportService.jackpots(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tjackpots: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.jackpots(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as JackpotsReturn;\n\t}\n\n\tasync jackpotPayouts(\n\t\tinput?: JackpotPayoutsInput,\n\t): Promise<JackpotPayoutsReturn> {\n\t\tconst res = await this.reportService.jackpotPayouts(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tjackpotPayouts: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.jackpotPayouts(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as JackpotPayoutsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tTOURNAMENTS\n\t *=============================================\n\t */\n\n\tasync tournaments(input?: TournamentsInput): Promise<TournamentsReturn> {\n\t\tconst res = await this.reportService.tournaments(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\ttournaments: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.tournaments(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as TournamentsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tFCM/FIREBASE\n\t *=============================================\n\t */\n\n\tasync registerFCMDevice(\n\t\tinput: RegisterFCMDeviceInput,\n\t): Promise<RegisterFCMDeviceReturn> {\n\t\treturn await this.triggerService.registerFCMDevice({ input });\n\t}\n\n\tasync unregisterFCMDevice(\n\t\tinput: UnregisterFCMDeviceInput,\n\t): Promise<UnregisterFCMDeviceReturn> {\n\t\treturn await this.triggerService.unregisterFCMDevice({ input });\n\t}\n\n\t/*\n\t *=============================================\n\t * \tTHIRD PARTY\n\t *=============================================\n\t */\n\n\tasync googleClientId(): Promise<GoogleClientIdReturn> {\n\t\tconst res = await this.accountService.googleClientId();\n\t\tif (!res.ok) return res;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ?? null,\n\t\t};\n\t}\n\n\tasync requireFirstDeposit(): Promise<RequireFirstDepositReturn> {\n\t\tconst res = await this.accountService.requireFirstDeposit();\n\t\tif (!res.ok) return res;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ?? false,\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tUTILS\n\t *=============================================\n\t */\n\n\tprivate formatYmd(date: Date): string {\n\t\tconst ensure2Digits = (n: number) => n.toString().padStart(2, '0');\n\n\t\tconst y = date.getFullYear();\n\t\tconst m = ensure2Digits(date.getMonth() + 1);\n\t\tconst d = ensure2Digits(date.getDate());\n\n\t\treturn `${y}-${m}-${d}`;\n\t}\n}\n\nconst NEW_GAME_PROVIDERS: GameProvider[] = [\n\t/**/\n\t'RTG',\n\t'DARWIN',\n\t'DRBINGO',\n\t'MEGABALL',\n\t'MEGA2SPIN',\n\t'EVOLUTION',\n\t'DIGITAIN',\n\t'EVOLUTION_NETENT',\n\t'ETENGJUE',\n\t'EVOLUTION_REDTIGER',\n\t'HOLLYWOODTV',\n\t'NO_LIMIT_CITY',\n\t'BIG_TIME_GAMING',\n\t'SAGAMING',\n\t'JK8',\n\t'TEST',\n\t'RUBYPLAY',\n\t'ORTIZ',\n];\n\nconst ENDPOINTS = {\n\tdevelopment: {\n\t\tauth: 'https://auth.development.opexa.io',\n\t\tgame: 'https://game.development.opexa.io/graphql',\n\t\textension: 'https://extension.development.opexa.io/graphql',\n\t\tfile: 'https://file.development.opexa.io/graphql',\n\t\treport: 'https://report.development.opexa.io/graphql',\n\t\twallet: 'https://wallet.development.opexa.io/graphql',\n\t\taccount: 'https://account.development.opexa.io/graphql',\n\t\tportal: 'https://portal.development.opexa.io/graphql',\n\t\ttrigger: 'https://trigger.development.opexa.io/graphql',\n\t\tstatic: 'https://static.development.opexa.io',\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\n\t\topexapay: 'https://external.opexapay.development.opexa.io',\n\t},\n\tproduction: {\n\t\tauth: 'https://auth.opexa.io',\n\t\tgame: 'https://game.opexa.io/graphql',\n\t\textension: 'https://extension.opexa.io/graphql',\n\t\tfile: 'https://file.opexa.io/graphql',\n\t\treport: 'https://report.opexa.io/graphql',\n\t\twallet: 'https://wallet.opexa.io/graphql',\n\t\taccount: 'https://account.opexa.io/graphql',\n\t\tportal: 'https://portal.opexa.io/graphql',\n\t\ttrigger: 'https://trigger.opexa.io/graphql',\n\t\tstatic: 'https://static.atalos.io',\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\n\t\topexapay: 'https://external.opexapay.opexa.io',\n\t},\n\tstaging: {\n\t\tauth: 'https://auth.staging.atalos.io',\n\t\tgame: 'https://game.staging.atalos.io/graphql',\n\t\textension: 'https://extension.staging.atalos.io/graphql',\n\t\tfile: 'https://file.staging.atalos.io/graphql',\n\t\treport: 'https://report.staging.atalos.io/graphql',\n\t\twallet: 'https://wallet.staging.atalos.io/graphql',\n\t\taccount: 'https://account.staging.atalos.io/graphql',\n\t\tportal: 'https://portal.staging.atalos.io/graphql',\n\t\ttrigger: 'https://trigger.staging.atalos.io/graphql',\n\t\tstatic: 'https://static.atalos.io',\n\t\tcmsPortal: 'https://portal-api.staging.opexacms.io',\n\t\topexapay: 'https://external.opexapay.staging.atalos.io ',\n\t},\n};\n\nexport default Sdk;\n"]}
|