@opexa/portal-sdk 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +1591 -0
  2. package/dist/graphql/account.service.d.ts +24 -0
  3. package/dist/graphql/announcement.d.ts +29 -0
  4. package/dist/graphql/auth.service.d.ts +16 -0
  5. package/dist/graphql/bet-record.d.ts +71 -0
  6. package/dist/graphql/bonus.d.ts +43 -0
  7. package/dist/graphql/cashback.d.ts +22 -0
  8. package/dist/graphql/deposit.d.ts +94 -0
  9. package/dist/graphql/file.d.ts +38 -0
  10. package/dist/graphql/file.service.d.ts +11 -0
  11. package/dist/graphql/game.d.ts +84 -0
  12. package/dist/graphql/game.service.d.ts +14 -0
  13. package/dist/graphql/index.d.ts +23 -0
  14. package/dist/graphql/member.d.ts +182 -0
  15. package/dist/graphql/platform.d.ts +38 -0
  16. package/dist/graphql/points.d.ts +22 -0
  17. package/dist/graphql/portal.service.d.ts +9 -0
  18. package/dist/graphql/promo.d.ts +35 -0
  19. package/dist/graphql/report.service.d.ts +18 -0
  20. package/dist/graphql/session.d.ts +25 -0
  21. package/dist/graphql/static.service.d.ts +12 -0
  22. package/dist/graphql/transaction.d.ts +26 -0
  23. package/dist/graphql/types.d.ts +93 -0
  24. package/dist/graphql/wallet.d.ts +14 -0
  25. package/dist/graphql/wallet.service.d.ts +30 -0
  26. package/dist/graphql/withdrawal.d.ts +106 -0
  27. package/dist/index.d.ts +4 -0
  28. package/dist/index.js +1007 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/index.mjs +2916 -0
  31. package/dist/index.mjs.map +1 -0
  32. package/dist/logger.d.ts +15 -0
  33. package/dist/object-id.d.ts +1 -0
  34. package/dist/object-type.d.ts +9 -0
  35. package/dist/sdk.d.ts +228 -0
  36. package/dist/session-service.d.ts +25 -0
  37. package/dist/transformer.d.ts +52 -0
  38. package/dist/types.d.ts +839 -0
  39. package/dist/utils/add-days.d.ts +1 -0
  40. package/dist/utils/add-minutes.d.ts +1 -0
  41. package/dist/utils/clone-date.d.ts +1 -0
  42. package/dist/utils/gql.d.ts +1 -0
  43. package/dist/utils/graphql-client.d.ts +29 -0
  44. package/dist/utils/http-error.d.ts +6 -0
  45. package/dist/utils/is-after.d.ts +4 -0
  46. package/dist/utils/parse-decimal.d.ts +2 -0
  47. package/dist/utils/sha256.d.ts +1 -0
  48. package/dist/utils/sub-minutes.d.ts +1 -0
  49. package/dist/utils/types.d.ts +5 -0
  50. package/package.json +81 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/lib/object-type.ts","../src/lib/utils/gql.ts","../src/lib/graphql/announcement.ts","../src/lib/graphql/game.ts","../src/lib/graphql/bet-record.ts","../src/lib/graphql/file.ts","../src/lib/graphql/cashback.ts","../src/lib/graphql/promo.ts","../src/lib/graphql/bonus.ts","../src/lib/graphql/deposit.ts","../src/lib/graphql/member.ts","../src/lib/graphql/platform.ts","../src/lib/graphql/points.ts","../src/lib/graphql/transaction.ts","../src/lib/graphql/wallet.ts","../src/lib/graphql/withdrawal.ts","../src/lib/graphql/account.service.ts","../src/lib/utils/http-error.ts","../src/lib/utils/sha256.ts","../src/lib/graphql/auth.service.ts","../src/lib/graphql/file.service.ts","../src/lib/graphql/game.service.ts","../src/lib/graphql/report.service.ts","../src/lib/graphql/static.service.ts","../src/lib/graphql/wallet.service.ts","../src/lib/graphql/portal.service.ts","../src/lib/logger.ts","../src/lib/utils/clone-date.ts","../src/lib/utils/add-days.ts","../src/lib/utils/add-minutes.ts","../src/lib/utils/is-after.ts","../src/lib/utils/sub-minutes.ts","../src/lib/session-service.ts","../src/lib/utils/parse-decimal.ts","../src/lib/transformer.ts","../src/lib/utils/graphql-client.ts","../src/lib/sdk.ts"],"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\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';\nimport type { DateFilterField, DateString, EnumFilterField, Html, PaginatedQuery } from './types';\n\nexport type AnnouncementType = 'RELEASE' | 'SCHEDULED_MAINTENANCE';\n\nexport type AnnouncementStatus = 'ACTIVE' | 'INACTIVE';\n\nexport type AnnouncementVisibility = 'MEMBER' | 'OPERATOR' | 'GLOBAL';\n\nexport interface Announcement {\n\tid: string;\n\ttype: AnnouncementType;\n\ttitle: string;\n\tstatus: AnnouncementStatus;\n\tmessage: Html;\n\tactivationStartDateTime: DateString;\n\tactivationEndDateTime: DateString;\n\tdateTimeCreated: DateString;\n\tdateTimeLastUpdated: DateString;\n}\n\nexport interface AnnouncementsQuery extends PaginatedQuery<'announcements', Announcement> {}\n\nexport interface AnnouncementsQueryVariables {\n\tfirst?: number;\n\tafter?: string;\n\tfilter?: {\n\t\ttype?: EnumFilterField<AnnouncementType>;\n\t\tvisibility?: EnumFilterField<AnnouncementVisibility>;\n\t\tactivationStartDateTime?: DateFilterField;\n\t\tactivationEndDateTime?: DateFilterField;\n\t};\n}\n\nexport const ANNOUNCEMENTS_QUERY = gql`\n\tquery Announcements($first: Int, $after: Cursor, $filter: AnnouncementFilterInput) {\n\t\tannouncements(first: $first, after: $after, filter: $filter) {\n\t\t\tedges {\n\t\t\t\tcursor\n\t\t\t\tnode {\n\t\t\t\t\t... on Announcement {\n\t\t\t\t\t\tid\n\t\t\t\t\t\ttype\n\t\t\t\t\t\ttitle\n\t\t\t\t\t\tstatus\n\t\t\t\t\t\tmessage\n\t\t\t\t\t\tactivationStartDateTime\n\t\t\t\t\t\tactivationEndDateTime\n\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\ttotalCount\n\t\t\tpageInfo {\n\t\t\t\thasNextPage\n\t\t\t\tendCursor\n\t\t\t}\n\t\t}\n\t}\n`;\n","import { gql } from '../utils/gql';\nimport type {\n\tDateString,\n\tEnumFilterField,\n\tMutationError,\n\tObjectIdFilterField,\n\tPaginatedQuery,\n\tStringFilterField,\n} from './types';\n\nexport type GameType = 'SLOTS' | 'SPORTS' | 'BINGO' | 'FISHING' | 'LIVE' | 'GAMES';\n\nexport type GameProvider__Next = 'DARWIN' | 'MEGABALL' | 'DRBINGO' | 'RTG';\n\nexport type GameProvider =\n\t| 'JILI'\n\t| 'PGSOFT'\n\t| 'FACHAI'\n\t| 'PLAYTECH'\n\t| 'CQ9'\n\t| 'JDB'\n\t| 'BOOONGO'\n\t| 'HABANERO'\n\t| 'RELAXGAMING'\n\t| 'DG'\n\t| 'E2E'\n\t| 'BTI'\n\t| GameProvider__Next;\n\nexport interface Game {\n\tid: string;\n\tname: string;\n\ttype: GameType;\n\tprovider: GameProvider;\n}\n\nexport interface GamesQuery extends PaginatedQuery<'games', Game> {}\n\nexport interface GamesQueryVariables {\n\tafter?: string;\n\tfirst?: number;\n\tfilter?: {\n\t\tid?: ObjectIdFilterField;\n\t\tname?: StringFilterField;\n\t\ttype?: EnumFilterField<GameType>;\n\t\tprovider?: EnumFilterField<GameProvider>;\n\t};\n}\n\nexport const GAME_FRAGMENT = gql`\n\tfragment GameFragment on Game {\n\t\tid\n\t\ttype\n\t\tname\n\t\tprovider\n\t}\n`;\n\nexport interface GameQuery {\n\tnode?: Game | null;\n}\n\nexport interface GameQueryVariables {\n\tid: string;\n}\n\nexport const GAME_QUERY = gql`\n\t${GAME_FRAGMENT}\n\n\tquery Game($id: ObjectId!) {\n\t\tnode(id: $id) {\n\t\t\t... on Game {\n\t\t\t\t...GameFragment\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const GAMES_QUERY = gql`\n\t${GAME_FRAGMENT}\n\n\tquery Games($after: Cursor, $first: Int, $filter: GameFilterInput) {\n\t\tgames(after: $after, first: $first, filter: $filter) {\n\t\t\ttotalCount\n\t\t\tedges {\n\t\t\t\tcursor\n\t\t\t\tnode {\n\t\t\t\t\t... on Game {\n\t\t\t\t\t\t...GameFragment\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpageInfo {\n\t\t\t\thasNextPage\n\t\t\t\tendCursor\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface GamesByNameQuery {\n\tgamesByName: Game[];\n}\n\nexport interface GamesByNameQueryVariables {\n\tsearch: string;\n\tfirst?: number;\n\tfilter?: GamesQueryVariables['filter'];\n}\n\nexport const GAMES_BY_NAME_QUERY = gql`\n\t${GAME_FRAGMENT}\n\n\tquery GamesByName($search: String!, $filter: GameFilterInput, $first: Int) {\n\t\tgamesByName(search: $search, filter: $filter, first: $first) {\n\t\t\t...GameFragment\n\t\t}\n\t}\n`;\n\nexport type GameSessionStatus = 'PENDING' | 'STARTING' | 'READY' | 'ENDED' | 'CANCELLED';\n\nexport type GameSession =\n\t| {\n\t\t\tid: string;\n\t\t\tgame: Game;\n\t\t\tstatus: Extract<GameSessionStatus, 'READY'>;\n\t\t\tlaunchUrl: string;\n\t\t\tdateTimeCreated: DateString;\n\t\t\tdateTimeLastUpdated: DateString;\n\t }\n\t| {\n\t\t\tid: string;\n\t\t\tgame: Game;\n\t\t\tstatus: Exclude<GameSessionStatus, 'READY'>;\n\t\t\tlaunchUrl?: never;\n\t\t\tdateTimeCreated: DateString;\n\t\t\tdateTimeLastUpdated: DateString;\n\t };\n\nexport interface GameSessionQuery {\n\tnode?: GameSession | null;\n}\n\nexport interface GameSessionQueryVariables {\n\tid: string;\n}\n\nexport const GAME_SESSION_QUERY = gql`\n\t${GAME_FRAGMENT}\n\n\tquery GameSession($id: ObjectId!) {\n\t\tnode(id: $id) {\n\t\t\t... on GameSession {\n\t\t\t\tid\n\t\t\t\tgame {\n\t\t\t\t\t...GameFragment\n\t\t\t\t}\n\t\t\t\tstatus\n\t\t\t\tlaunchUrl\n\t\t\t\tdateTimeCreated\n\t\t\t\tdateTimeLastUpdated\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport type CreateGameSessionError = MutationError<'GameDoesNotExistError'>;\n\nexport interface CreateGameSessionMutation {\n\tcreateGameSession?: null | CreateGameSessionError;\n}\n\nexport interface CreateGameSessionMutationVariables {\n\tinput: {\n\t\tid: string;\n\t\tgame: string;\n\t};\n}\n\nexport const CREATE_GAME_SESSION_MUTATION = gql`\n\tmutation CreateGameSession($input: CreateGameSessionInput!) {\n\t\tcreateGameSession(input: $input) {\n\t\t\t... on GameDoesNotExistError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface EndGameSessionMutation {\n\tendGameSession: boolean;\n}\n\nexport interface EndGameSessionMutationVariables {\n\tinput: {\n\t\tid: string;\n\t};\n}\n\nexport const END_GAME_SESSION_MUTATION = gql`\n\tmutation EndGameSession($input: EndGameSessionInput!) {\n\t\tendGameSession(input: $input)\n\t}\n`;\n","import { gql } from '../utils/gql';\nimport type { GameType } from './game';\nimport { GAME_FRAGMENT, type Game } from './game';\nimport type {\n\tDateFilterField,\n\tDateString,\n\tDecimal,\n\tEnumFilterField,\n\tObjectIdFilterField,\n\tPaginatedQuery,\n\tSortOrder,\n\tStringFilterField,\n} from './types';\n\nexport type BetRecordStatus = 'STARTED' | 'SETTLED' | 'CANCELLED';\n\nexport interface BetRecordMetadata {\n\todds?: string | null;\n\tvalidBet?: Decimal | null;\n\tbetContent?: string | null;\n\tcontestName?: string | null;\n}\n\nexport interface BetRecord {\n\tid: string;\n\tgame: Game;\n\tstatus: BetRecordStatus;\n\tserialCode: string;\n\tvendorRoundId?: string | null;\n\tbet: Decimal;\n\tpayout: Decimal;\n\tvalidBet: Decimal;\n\tjackpotContribution: Decimal;\n\tjackpotPayout: Decimal;\n\twinloss?: Decimal | null;\n\tdateTimeSettled?: DateString | null;\n\tdateTimeCreated: DateString;\n\tdateTimeLastUpdated: DateString;\n\tbetContent?: string | null;\n\tcontestName?: string | null;\n\texternalCategory?: string | null;\n\tmetadata?: {\n\t\todds?: string | null;\n\t\tvalidBet?: Decimal | null;\n\t} | null;\n}\n\nexport interface BetRecordsQuery {\n\tmember: PaginatedQuery<'betRecords', BetRecord>;\n}\n\nexport interface BetRecordsQueryVariables {\n\tfirst?: number;\n\tafter?: string;\n\tsort?: SortOrder;\n\tfilter?: {\n\t\tserialCode?: StringFilterField;\n\t\tgame?: ObjectIdFilterField;\n\t\tgame__externalId?: StringFilterField;\n\t\tgame__type?: EnumFilterField<GameType>;\n\t\tgame__provider?: EnumFilterField<string>;\n\t\tdateTimeCreated?: DateFilterField;\n\t\tvendorRoundId?: StringFilterField;\n\t\tstatus?: EnumFilterField<BetRecordStatus>;\n\t};\n\tstartDateTime?: DateFilterField;\n\tendDateTime?: DateFilterField;\n}\n\nexport const BET_RECORDS_QUERY = gql`\n\t${GAME_FRAGMENT}\n\n\tquery BetRecords($first: Int, $after: Cursor, $filter: BetRecordFilterInput) {\n\t\tmember {\n\t\t\tbetRecords(first: $first, after: $after, filter: $filter) {\n\t\t\t\ttotalCount\n\t\t\t\tedges {\n\t\t\t\t\tcursor\n\t\t\t\t\tnode {\n\t\t\t\t\t\t... on BetRecord {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\tserialCode\n\t\t\t\t\t\t\tgame {\n\t\t\t\t\t\t\t\t...GameFragment\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbet\n\t\t\t\t\t\t\tpayout\n\t\t\t\t\t\t\twinloss\n\t\t\t\t\t\t\tjackpotPayout\n\t\t\t\t\t\t\tjackpotContribution\n\t\t\t\t\t\t\tstatus\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\tdateTimeSettled\n\t\t\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t\t\t\tmetadata\n\t\t\t\t\t\t\tvendorRoundId\n\t\t\t\t\t\t\tbetContent\n\t\t\t\t\t\t\tcontestName\n\t\t\t\t\t\t\texternalCategory\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tpageInfo {\n\t\t\t\t\thasNextPage\n\t\t\t\t\tendCursor\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface LatestBetRecord {\n\tid: string;\n\tmember: {\n\t\tid: string;\n\t\tname: string;\n\t};\n\tgame: Game;\n\tbet: Decimal;\n\tpayout: Decimal;\n\tvalidBet: Decimal;\n\tdateTimeSettled: DateString;\n\tdateTimeCreated: DateString;\n}\n\nexport interface LatestBetRecordsQuery {\n\tlatestBetRecords: LatestBetRecord[];\n}\n\nexport const LATEST_BET_RECORDS_QUERY = gql`\n\tquery LatestBetRecords {\n\t\tlatestBetRecords {\n\t\t\tid\n\t\t\tmember {\n\t\t\t\tid\n\t\t\t\tname\n\t\t\t}\n\t\t\tgame {\n\t\t\t\t...GameFragment\n\t\t\t}\n\t\t\tbet\n\t\t\tpayout\n\t\t\tvalidBet\n\t\t\tdateTimeSettled\n\t\t\tdateTimeCreated\n\t\t}\n\t}\n\n\t${GAME_FRAGMENT}\n`;\n","import { gql } from '../utils/gql';\nimport type { DateString, MutationError } from './types';\n\nexport type FileStatus = File['status'];\n\nexport type File =\n\t| {\n\t\t\tid: string;\n\t\t\turl?: never;\n\t\t\tstatus: 'UPLOADING' | 'FAILED';\n\t\t\tdateTimeCreated: DateString;\n\t }\n\t| {\n\t\t\tid: string;\n\t\t\turl: string;\n\t\t\tstatus: 'READY';\n\t\t\tdateTimeCreated: DateString;\n\t }\n\t| {\n\t\t\tid: string;\n\t\t\turl?: string | null;\n\t\t\tstatus: 'DELETED';\n\t\t\tdateTimeCreated: DateString;\n\t };\n\nexport interface FileQuery {\n\tnode?: File | null;\n}\n\nexport interface FileQueryVariables {\n\tid: string;\n}\n\nexport const FILE_FRAGMENT = gql`\n\tfragment FileFragment on File {\n\t\tid\n\t\turl\n\t\tstatus\n\t\tdateTimeCreated\n\t}\n`;\n\nexport const FILE_QUERY = gql`\n\t${FILE_FRAGMENT}\n\n\tquery File($id: ObjectId!) {\n\t\tnode(id: $id) {\n\t\t\t... on File {\n\t\t\t\t...FileFragment\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport type UploadPrivateImageFileError = MutationError<\n\t'FileFormatNotSupportedError' | 'FileNameTooLongError' | 'FileSizeTooBigError'\n>;\n\nexport interface UploadPrivateImageFileMutation {\n\tuploadPrivateImageFile?: UploadPrivateImageFileError | null;\n}\n\nexport interface UploadPrivateImageFileMutationVariables {\n\tinput: {\n\t\tid: string;\n\t\tfile: globalThis.File;\n\t};\n}\n\nexport const UPLOAD_PRIVATE_IMAGE_FILE_MUTATION = gql`\n\tmutation UploadPrivateImageFile($input: UploadFileInput!) {\n\t\tuploadPrivateImageFile(input: $input) {\n\t\t\t... on FileFormatNotSupportedError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on FileNameTooLongError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on FileSizeTooBigError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n","import { gql } from '../utils/gql';\nimport { FILE_FRAGMENT, type File } from './file';\nimport type { DateString, Html } from './types';\n\nexport type CashbackStatus = 'ACTIVE' | 'INACTIVE';\n\nexport interface Cashback {\n\tid: string;\n\tname: string;\n\tbanner: Extract<File, { status: 'READY' }>;\n\tstatus: CashbackStatus;\n\tdescription: Html;\n\tactivationStartDateTime: DateString;\n\tactivationEndDateTime: DateString;\n\tdateTimeCreated: DateString;\n\tdateTimeLastUpdated: DateString;\n}\n\nexport interface CashbacksQuery {\n\tcashbacks: Cashback[];\n}\n\nexport const CASHBACK_FRAGMENT = gql`\n\t${FILE_FRAGMENT}\n\n\tfragment CashbackFragment on Cashback {\n\t\tid\n\t\tname\n\t\tbanner {\n\t\t\t...FileFragment\n\t\t}\n\t\tstatus\n\t\tdescription\n\t\tactivationStartDateTime\n\t\tactivationEndDateTime\n\t\tdateTimeCreated\n\t\tdateTimeLastUpdated\n\t}\n`;\n\nexport const CASHBACKS_QUERY = gql`\n\t${CASHBACK_FRAGMENT}\n\n\tquery Cashbacks {\n\t\tcashbacks {\n\t\t\t...CashbackFragment\n\t\t}\n\t}\n`;\n","import { gql } from '../utils/gql';\nimport { FILE_FRAGMENT, type File } from './file';\nimport type { DateString, EnumFilterField, Html } from './types';\n\nexport type PromoType = 'DEPOSIT';\n\nexport type PromoStatus = 'ACTIVE' | 'INACTIVE' | 'DISABLED';\n\nexport interface Promo {\n\tid: string;\n\ttype: PromoType;\n\tname: string;\n\tbanner: Extract<File, { status: 'READY' }>;\n\tstatus: PromoStatus;\n\tdescription: Html;\n\tminimumBonusAmount?: string | null;\n\tmaximumBonusAmount?: string | null;\n\tactivationStartDateTime: DateString;\n\tactivationEndDateTime: DateString;\n\tdateTimeCreated: DateString;\n\tdateTimeLastUpdated: DateString;\n}\n\nexport interface PromosQuery {\n\tpromos: Promo[];\n}\n\nexport const PROMO_FRAGMENT = gql`\n\t${FILE_FRAGMENT}\n\n\tfragment PromoFragment on Promo {\n\t\tid\n\t\ttype\n\t\tname\n\t\tbanner {\n\t\t\t...FileFragment\n\t\t}\n\t\tstatus\n\t\tdescription\n\t\tmaximumBonusAmount\n\t\tminimumBonusAmount\n\t\tactivationStartDateTime\n\t\tactivationEndDateTime\n\t\tdateTimeCreated\n\t\tdateTimeLastUpdated\n\t}\n`;\n\nexport const PROMOS_QUERY = gql`\n\t${PROMO_FRAGMENT}\n\n\tquery Promos {\n\t\tpromos {\n\t\t\t...PromoFragment\n\t\t}\n\t}\n`;\n\nexport interface AvailablePromosQuery {\n\tavailablePromos: Promo[];\n}\n\nexport interface AvailablePromosQueryVariables {\n\tfilter?: {\n\t\ttype?: EnumFilterField<PromoType>;\n\t};\n}\n\nexport const AVAILABLE_PROMOS_QUERY = gql`\n\t${PROMO_FRAGMENT}\n\n\tquery AvailablePromos($filter: PromoFilterInput) {\n\t\tavailablePromos(filter: $filter) {\n\t\t\t...PromoFragment\n\t\t}\n\t}\n`;\n","import type { DepositRecord } from '..';\nimport { gql } from '../utils/gql';\nimport type { Cashback } from './cashback';\nimport { CASHBACK_FRAGMENT } from './cashback';\nimport { PROMO_FRAGMENT, type Promo } from './promo';\nimport type { DateString, Decimal, MutationError } from './types';\n\nexport interface Bonus {\n\tid: string;\n\tpromo: Promo;\n\tdeposit?: Omit<DepositRecord, 'id' | 'depositNumber'> | null;\n\tamount: Decimal;\n\tbalance: Decimal;\n\tturnoverRequirement: Decimal;\n\tcurrentTurnoverRequirementContribution: Decimal;\n\tcurrentTurnoverRequirementContributionPercentage: Decimal;\n\texpiration: DateString;\n\tdateTimeCreated: DateString;\n\tdateTimeLastUpdated: DateString;\n}\n\nexport interface BonusQuery {\n\tbonus?: Bonus | null;\n}\n\nexport const BONUS_QUERY = gql`\n\t${PROMO_FRAGMENT}\n\n\tquery Bonus {\n\t\tbonus {\n\t\t\tid\n\t\t\tpromo {\n\t\t\t\t...PromoFragment\n\t\t\t}\n\t\t\tdeposit {\n\t\t\t\ttype\n\t\t\t\tamount\n\t\t\t\tnetAmount\n\t\t\t\tfee\n\t\t\t\tstatus\n\t\t\t\treference\n\t\t\t\tdateTimeCreated\n\t\t\t\tdateTimeLastUpdated\n\t\t\t}\n\t\t\tamount\n\t\t\tbalance\n\t\t\tturnoverRequirement\n\t\t\tcurrentTurnoverRequirementContribution\n\t\t\tcurrentTurnoverRequirementContributionPercentage\n\t\t\texpiration\n\t\t\tdateTimeCreated\n\t\t\tdateTimeLastUpdated\n\t\t}\n\t}\n`;\n\nexport interface CashbackBonus {\n\tid: string;\n\tbalance: Decimal;\n\tcashback: Cashback;\n\tdateTimeCreated: DateString;\n\tdateTimeLastUpdated: DateString;\n}\n\nexport interface CashbackBonusesQuery {\n\tcashbackBonuses: CashbackBonus[];\n}\n\nexport const CASHBACK_BONUSES_QUERY = gql`\n\t${CASHBACK_FRAGMENT}\n\n\tquery CashbackBonuses {\n\t\tcashbackBonuses {\n\t\t\tid\n\t\t\tbalance\n\t\t\tcashback {\n\t\t\t\t...CashbackFragment\n\t\t\t}\n\t\t\tdateTimeCreated\n\t\t\tdateTimeLastUpdated\n\t\t}\n\t}\n`;\n\nexport type ClaimCashbackBonusError = MutationError<'CashbackBonusDoesNotExistError'>;\n\nexport interface ClaimCashbackBonusMutation {\n\tclaimCashbackBonus?: null | ClaimCashbackBonusError;\n}\n\nexport interface ClaimCashbackBonusMutationVariables {\n\tinput: {\n\t\tid: string;\n\t};\n}\n\nexport const CLAIM_CASHBACK_BONUS_MUTATION = gql`\n\tmutation ClaimCashbackBonus($input: ClaimCashbackBonusInput!) {\n\t\tclaimCashbackBonus(input: $input) {\n\t\t\t... on CashbackBonusDoesNotExistError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n","import { gql } from '../utils/gql';\nimport type {\n\tDateFilterField,\n\tDateString,\n\tDecimal,\n\tEnumFilterField,\n\tMutationError,\n\tPaginatedQuery,\n\tStringFilterField,\n} from './types';\n\nexport type DepositRecordType = 'BANK' | 'GCASH' | 'MANUAL' | 'MAYA' | 'MAYA_APP';\n\nexport type DepositRecordStatus =\n\t| 'PENDING'\n\t| 'ACCEPTED'\n\t| 'APPROVED'\n\t| 'REJECTED'\n\t| 'CONFIRMED'\n\t| 'CANCELLED';\n\nexport interface DepositRecord {\n\tid: string;\n\ttype: DepositRecordType;\n\tstatus: DepositRecordStatus;\n\tamount: Decimal;\n\tnetAmount: Decimal;\n\tfee: Decimal;\n\treference?: string | null;\n\tdepositNumber: string;\n\tdateTimeCreated: DateString;\n\tdateTimeLastUpdated: DateString;\n}\n\nexport interface DepositRecordsQuery {\n\tmember: PaginatedQuery<'depositRecords', DepositRecord>;\n}\n\nexport interface DepositRecordsQueryVariables {\n\tfirst?: number;\n\tafter?: string;\n\tfilter?: {\n\t\tdepositNumber?: StringFilterField;\n\t\ttype?: EnumFilterField<DepositRecordType>;\n\t\treference?: StringFilterField;\n\t\tstatus?: EnumFilterField<DepositRecordStatus>;\n\t\tdateTimeCreated?: DateFilterField;\n\t\tdateTimeLastUpdated?: DateFilterField;\n\t};\n}\n\nexport const DEPOSIT_RECORDS_QUERY = gql`\n\tquery DepositRecords($after: Cursor, $first: Int, $filter: DepositRecordFilterInput) {\n\t\tmember {\n\t\t\tdepositRecords(after: $after, first: $first, filter: $filter) {\n\t\t\t\tedges {\n\t\t\t\t\tcursor\n\t\t\t\t\tnode {\n\t\t\t\t\t\t... on DepositRecord {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tnetAmount\n\t\t\t\t\t\t\tfee\n\t\t\t\t\t\t\tstatus\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\t\tdepositNumber\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttotalCount\n\t\t\t\tpageInfo {\n\t\t\t\t\thasNextPage\n\t\t\t\t\tendCursor\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport type CreateDepositError = MutationError<\n\t| 'DepositPromoMaximumAmountExceededError'\n\t| 'DepositPromoMinimumAmountNotMetError'\n\t| 'HasActiveBonusError'\n\t| 'MaximumDepositAmountExceededError'\n\t| 'MinimumDepositAmountNotMetError'\n\t| 'MinimumFirstDepositAmountNotMetError'\n\t| 'PromoNotEnabledError'\n\t| 'WalletDoesNotExistError'\n>;\n\nexport interface CreateGCashDepositMutation {\n\tcreateGCashDeposit?: CreateDepositError | null;\n}\n\nexport interface CreateGCashDepositMutationVariables {\n\tinput: {\n\t\tid: string;\n\t\tamount: Decimal;\n\t\tpromo?: string;\n\t};\n}\n\nexport const CREATE_GCASH_DEPOSIT_MUTATION = gql`\n\tmutation CreateGCashDeposit($input: CreateGCashDepositInput!) {\n\t\tcreateGCashDeposit(input: $input) {\n\t\t\t... on DepositPromoMaximumAmountExceededError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on HasActiveBonusError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MaximumDepositAmountExceededError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MinimumDepositAmountNotMetError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on PromoNotEnabledError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on WalletDoesNotExistError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface CreateMayaDepositMutation {\n\tcreateMayaDeposit?: CreateDepositError | null;\n}\n\nexport interface CreateMayaDepositMutationVariables {\n\tinput: {\n\t\tid: string;\n\t\tamount: Decimal;\n\t\tpromo?: string;\n\t};\n}\n\nexport const CREATE_MAYA_DEPOSIT_MUTATION = gql`\n\tmutation CreateMayaDeposit($input: CreateMayaDepositInput!) {\n\t\tcreateMayaDeposit(input: $input) {\n\t\t\t... on DepositPromoMaximumAmountExceededError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on HasActiveBonusError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MaximumDepositAmountExceededError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MinimumDepositAmountNotMetError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on PromoNotEnabledError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on WalletDoesNotExistError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface CreateMayaAppDepositMutation {\n\tcreateMayaAppDeposit?: CreateDepositError | null;\n}\n\nexport interface CreateMayaAppDepositMutationVariables {\n\tinput: {\n\t\tid: string;\n\t\tamount: Decimal;\n\t\tpromo?: string;\n\t};\n}\n\nexport const CREATE_MAYA_APP_DEPOSIT_MUTATION = gql`\n\tmutation CreateMayaAppDeposit($input: CreateMayaAppDepositInput!) {\n\t\tcreateMayaAppDeposit(input: $input) {\n\t\t\t... on DepositPromoMaximumAmountExceededError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on HasActiveBonusError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MaximumDepositAmountExceededError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MinimumDepositAmountNotMetError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on PromoNotEnabledError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on WalletDoesNotExistError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n\ntype Deposit__Common = Omit<DepositRecord, 'depositNumber' | 'status'>;\n\ntype Deposit__Failed = Deposit__Common & {\n\tstatus: 'REJECTED' | 'CANCELLED';\n\tcheckoutUrl?: string | null;\n};\n\ntype Deposit__Pending = Deposit__Common & {\n\tstatus: 'PENDING';\n\tcheckoutUrl?: never;\n};\n\ntype Deposit__Success = Deposit__Common & {\n\tstatus: 'ACCEPTED' | 'APPROVED' | 'CONFIRMED';\n\tcheckoutUrl: string;\n};\n\nexport type Deposit = Deposit__Failed | Deposit__Pending | Deposit__Success;\n\nexport interface DepositQuery {\n\tnode?: Deposit | null;\n}\n\nexport interface DepositQueryVariables {\n\tid: string;\n}\n\nexport const DEPOSIT_QUERY = gql`\n\tquery Deposit($id: ObjectId!) {\n\t\tnode(id: $id) {\n\t\t\t... on GCashDeposit {\n\t\t\t\tid\n\t\t\t\ttype\n\t\t\t\tamount\n\t\t\t\tnetAmount\n\t\t\t\tfee\n\t\t\t\tstatus\n\t\t\t\treference\n\t\t\t\tcheckoutUrl\n\t\t\t\tdateTimeCreated\n\t\t\t\tdateTimeLastUpdated\n\t\t\t}\n\t\t\t... on MayaDeposit {\n\t\t\t\tid\n\t\t\t\ttype\n\t\t\t\tamount\n\t\t\t\tnetAmount\n\t\t\t\tfee\n\t\t\t\tstatus\n\t\t\t\treference\n\t\t\t\tcheckoutUrl\n\t\t\t\tdateTimeCreated\n\t\t\t\tdateTimeLastUpdated\n\t\t\t}\n\t\t\t... on MayaAppDeposit {\n\t\t\t\tid\n\t\t\t\ttype\n\t\t\t\tamount\n\t\t\t\tnetAmount\n\t\t\t\tfee\n\t\t\t\tstatus\n\t\t\t\treference\n\t\t\t\tcheckoutUrl\n\t\t\t\tdateTimeCreated\n\t\t\t\tdateTimeLastUpdated\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface DepositsCountQuery {\n\tmember: {\n\t\tdepositsCount: number;\n\t};\n}\n\nexport const DEPOSITS_COUNT_QUERY = gql`\n\tquery DepositsCount {\n\t\tmember {\n\t\t\tdepositsCount\n\t\t}\n\t}\n`;\n","import { gql } from '../utils/gql';\nimport { FILE_FRAGMENT, type File } from './file';\nimport type { DateString, Decimal, MutationError } from './types';\n\n/* [report] Query.member */\nexport interface Member {\n\tdateTimeLastActive?: DateString | null;\n}\n\nexport interface MemberQuery {\n\tmember: Member;\n}\n\nexport const MEMBER_QUERY = gql`\n\tquery Member {\n\t\tmember {\n\t\t\tdateTimeLastActive\n\t\t}\n\t}\n`;\n\nexport type MemberAccountStatus = 'ACTIVE' | 'DISABLED' | 'BLACKLISTED';\n\nexport type MemberAccountVerificationStatus = 'UNVERIFIED' | 'PENDING' | 'VERIFIED';\n\nexport type MemberVerificationStatus =\n\t| 'PENDING'\n\t| 'APPROVED'\n\t| 'REJECTED'\n\t| 'VERIFIED'\n\t| 'UNVERIFIED';\n\n/* [account] Query.self */\nexport interface MemberAccount {\n\tid: string;\n\tname: string;\n\tstatus: MemberAccountStatus;\n\trealName?: string | null;\n\tnickName?: string | null;\n\tbirthDay?: DateString | null;\n\tvalidId?: string | null;\n\temailAddress?: string | null;\n\tmobileNumber?: string | null;\n\tverified: boolean;\n\tverificationStatus: MemberAccountVerificationStatus;\n\tmobileNumberVerified?: boolean | null;\n\tmobileNumberVerificationRequired?: boolean | null;\n\ttransactionPassword: boolean;\n\tdateTimeCreated: DateString;\n\tdateTimeLastUpdated: DateString;\n}\n\nexport interface MemberAccountQuery {\n\tmemberAccount: MemberAccount;\n}\n\nexport const MEMBER_ACCOUNT_QUERY = gql`\n\tquery MemberAccount {\n\t\tmemberAccount: self {\n\t\t\t... on MemberAccount {\n\t\t\t\tid\n\t\t\t\tname\n\t\t\t\tstatus\n\t\t\t\trealName\n\t\t\t\temailAddress\n\t\t\t\tmobileNumber\n\t\t\t\tbirthDay\n\t\t\t\tverified\n\t\t\t\tverificationStatus\n\t\t\t\tnickName\n\t\t\t\tvalidId\n\t\t\t\tmobileNumberVerified\n\t\t\t\tmobileNumberVerificationRequired\n\t\t\t\ttransactionPassword\n\t\t\t\tdateTimeCreated\n\t\t\t\tdateTimeLastUpdated\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface MemberVerification {\n\tid: string;\n\tstatus: MemberVerificationStatus;\n\taddress: string;\n\tsourceOfIncome: string;\n\tnatureOfWork: string;\n\tnationality: string;\n\tplaceOfBirth: string;\n\tidFrontImage: File;\n\tselfieImage: File;\n}\n\nexport interface MemberVerificationQuery {\n\tmemberAccount: {\n\t\tverification?: MemberVerification | null;\n\t};\n}\n\nexport const MEMBER_VERIFICATION_QUERY = gql`\n\t${FILE_FRAGMENT}\n\n\tquery MemberVerification {\n\t\tmemberAccount: self {\n\t\t\t... on MemberAccount {\n\t\t\t\tverification {\n\t\t\t\t\tid\n\t\t\t\t\tstatus\n\t\t\t\t\taddress\n\t\t\t\t\tsourceOfIncome\n\t\t\t\t\tnatureOfWork\n\t\t\t\t\tnationality\n\t\t\t\t\tplaceOfBirth\n\t\t\t\t\tidFrontImage {\n\t\t\t\t\t\t...FileFragment\n\t\t\t\t\t}\n\t\t\t\t\tselfieImage {\n\t\t\t\t\t\t...FileFragment\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport type RegisterMemberAccountError = MutationError<\n\t| 'AccountNameNotAvailableError'\n\t| 'InvalidPlatformError'\n\t| 'InvalidReCAPTCHAResponseError'\n\t| 'InvalidSMSVerificationCodeError'\n\t| 'MinimumAgeRequirementError'\n\t| 'MobileNumberNotAvailableError'\n>;\n\nexport interface RegisterMemberAccountMutation {\n\tregisterMemberAccount?: null | RegisterMemberAccountError;\n}\n\nexport interface RegisterMemberAccountMutationVariables {\n\tinput: {\n\t\tid: string;\n\t\tname: string;\n\t\tpassword: string;\n\t\tmobileNumber: string;\n\t\tbirthDay: string;\n\t\tdomain?: string;\n\t};\n\tverificationCode?: string;\n\treCAPTCHAResponse?: string;\n}\n\nexport const REGISTER_MEMBER_ACCOUNT_MUTATION = gql`\n\tmutation RegisterMemberAccount(\n\t\t$input: RegisterMemberAccountInput!\n\t\t$referralCode: String\n\t\t$verificationCode: String\n\t\t$reCAPTCHAResponse: String\n\t) {\n\t\tregisterMemberAccount(\n\t\t\tinput: $input\n\t\t\treferralCode: $referralCode\n\t\t\tverificationCode: $verificationCode\n\t\t\treCAPTCHAResponse: $reCAPTCHAResponse\n\t\t) {\n\t\t\t... on AccountNameNotAvailableError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on InvalidPlatformError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on InvalidPlatformError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on InvalidReCAPTCHAResponseError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on InvalidSMSVerificationCodeError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MinimumAgeRequirementError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MobileNumberNotAvailableError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport type UpdateMemberAccountError = MutationError<\n\t| 'AccountNameNotAvailableError'\n\t| 'EmailAddressNotAvailableError'\n\t| 'InvalidTransactionPasswordError'\n\t| 'MobileNumberNotAvailableError'\n\t| 'NickNameNotAvailableError'\n\t| 'RealNameAlreadySetError'\n\t| 'ValidIdAlreadySetError'\n>;\n\nexport interface UpdateMemberAccountMutation {\n\tupdateMemberAccount?: null | UpdateMemberAccountError;\n}\n\nexport interface UpdateMemberAccountMutationVariables {\n\tinput: {\n\t\tid: string;\n\t\tdata: {\n\t\t\tname?: string;\n\t\t\tpassword?: string;\n\t\t\temailAddress?: string;\n\t\t\tmobileNumber?: string;\n\t\t\trealName?: string;\n\t\t\tnickName?: string;\n\t\t\ttransactionPassword?: string;\n\t\t\tvalidId?: string;\n\t\t\tmobileNumberVerificationRequired?: boolean;\n\t\t\tsecretQuestion?: string;\n\t\t\tsecretAnswer?: string;\n\t\t};\n\t};\n}\n\nexport const UPDATE_MEMBER_ACCOUNT_MUTATION = gql`\n\tmutation UpdateMemberAccount($input: UpdateMemberAccountInput!) {\n\t\tupdateMemberAccount(input: $input) {\n\t\t\t... on AccountNameNotAvailableError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on EmailAddressNotAvailableError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on InvalidTransactionPasswordError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MobileNumberNotAvailableError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on NickNameNotAvailableError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on RealNameAlreadySetError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on ValidIdAlreadySetError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport type ResetPasswordError = MutationError<\n\t'AccountNotFoundError' | 'InvalidVerificationCodeError'\n>;\n\nexport interface ResetPasswordMutation {\n\tresetPassword?: ResetPasswordError | null;\n}\n\nexport interface ResetPasswordMutationVariables {\n\tinput: {\n\t\tmobileNumber: string;\n\t\tnewPassword: string;\n\t};\n\tverificationCode: string;\n}\n\nexport const RESET_PASSWORD_MUTATION = gql`\n\tmutation ResetPassword($input: ResetPasswordInput!, $verificationCode: String) {\n\t\tresetPassword(input: $input, verificationCode: $verificationCode) {\n\t\t\t... on AccountNotFoundError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on InvalidVerificationCodeError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface DeleteMemberAccountMutation {\n\tdeleteMemberAccount: boolean;\n}\n\nexport interface DeleteMemberAccountMutationVariables {\n\tinput: {\n\t\tid: string;\n\t};\n}\n\nexport const DELETE_MEMBER_ACCOUNT_MUTATION = gql`\n\tmutation DeleteMemberAccount($input: DeleteMemberAccountInput!) {\n\t\tdeleteMemberAccount(input: $input)\n\t}\n`;\n\nexport type SendVerificationCodeError = MutationError<\n\t'InvalidPlatformError' | 'NotReadyToSendVerficationCodeError'\n>;\n\nexport interface SendVerificationCodeMutation {\n\tsendVerificationCode?: SendVerificationCodeError | null;\n}\n\nexport interface SendVerificationCodeMutationVariables {\n\tinput: {\n\t\tchannel: 'SMS' | 'EMAIL';\n\t\trecipient: string;\n\t};\n}\n\nexport const SEND_VERIFICATION_CODE_MUTATION = gql`\n\tmutation SendVerificationCode($input: SendVerificationCodeInput!) {\n\t\tsendVerificationCode(input: $input) {\n\t\t\t... on InvalidPlatformError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on NotReadyToSendVerficationCodeError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport type VerifyMobileNumberError = MutationError<\n\t'InvalidSMSVerificationCodeError' | 'MobileNumberAlreadyVerifiedError'\n>;\n\nexport interface VerifyMobileNumberMutation {\n\tverifyMobileNumber?: VerifyMobileNumberError | null;\n}\n\nexport interface VerifyMobileNumberMutationVariables {\n\tinput: {\n\t\tverificationCode: string;\n\t};\n}\n\nexport const VERIFY_MOBILE_NUMBER_MUTATION = gql`\n\tmutation VerifyMobileNumber($input: VerifyMobileNumberInput!) {\n\t\tverifyMobileNumber(input: $input) {\n\t\t\t... on InvalidSMSVerificationCodeError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MobileNumberAlreadyVerifiedError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport type CreateMemberVerificationError = MutationError<\n\t'FileDoesNotExistError' | 'FileNotReadyError' | 'MemberVerificationAlreadyExistsError'\n>;\n\nexport interface CreateMemberVerificationMutation {\n\tcreateMemberVerification?: CreateMemberVerificationError | null;\n}\n\nexport interface CreateMemberVerificationMutationVariables {\n\tinput: {\n\t\tid: string;\n\t\tidFrontImage: string;\n\t\tselfieImage: string;\n\t\taddress: string;\n\t\tsourceOfIncome: string;\n\t\tnatureOfWork: string;\n\t\tnationality: string;\n\t\tplaceOfBirth: string;\n\t};\n}\n\nexport const CREATE_MEMBER_VERIFICATION_MUTATION = gql`\n\tmutation CreateMemberVerification($input: CreateMemberVerificationInput!) {\n\t\tcreateMemberVerification(input: $input) {\n\t\t\t... on FileDoesNotExistError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on FileNotReadyError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MemberVerificationAlreadyExistsError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport type UpdateMemberVerificationError = MutationError<\n\t| 'FileDoesNotExistError'\n\t| 'FileNotReadyError'\n\t| 'MemberVerificationAlreadyApprovedError'\n\t| 'MemberVerificationDoesNotExistError'\n>;\n\nexport interface UpdateMemberVerificationMutation {\n\tupdateMemberVerification?: UpdateMemberVerificationError | null;\n}\n\nexport interface UpdateMemberVerificationMutationVariables {\n\tinput: {\n\t\tid: string;\n\t\tdata: {\n\t\t\tidFrontImage?: string;\n\t\t\tselfieImage?: string;\n\t\t\taddress?: string;\n\t\t\tsourceOfIncome?: string;\n\t\t\tnatureOfWork?: string;\n\t\t\tnationality?: string;\n\t\t\tplaceOfBirth?: string;\n\t\t};\n\t};\n}\n\nexport const UPDATE_MEMBER_VERIFICATION_MUTATION = gql`\n\tmutation UpdateMemberVerification($input: UpdateMemberVerificationInput!) {\n\t\tupdateMemberVerification(input: $input) {\n\t\t\t... on FileDoesNotExistError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on FileNotReadyError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MemberVerificationAlreadyApprovedError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MemberVerificationDoesNotExistError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface ProfileCompletion {\n\tcompletionPercentage: Decimal;\n\tpersonalInformation: boolean;\n\taccountVerification: boolean;\n\tmobileNumberVerification: boolean;\n\ttransactionPassword: boolean;\n\taccountPassword: boolean;\n}\n\nexport interface ProfileCompletionQuery {\n\tprofileCompletion: ProfileCompletion;\n}\n\nexport const PROFILE_COMPLETION_QUERY = gql`\n\tquery ProfileCompletion {\n\t\tprofileCompletion {\n\t\t\tcompletionPercentage\n\t\t\tpersonalInformation\n\t\t\taccountVerification\n\t\t\tmobileNumberVerification\n\t\t\ttransactionPassword\n\t\t\taccountPassword\n\t\t}\n\t}\n`;\n","import { gql } from '../utils/gql';\nimport type { Decimal } from './types';\n\nexport interface DepositGatewaySettings {\n\tminimumAmount: string;\n\tmaximumAmount: string;\n\twebEnabled: boolean;\n\tmobileWebEnabled: boolean;\n\tandroidEnabled: boolean;\n\tiosEnabled: boolean;\n}\n\nexport interface WithdrawalGatewaySettings {\n\tminimumAmount: Decimal;\n\tmaximumAmount: Decimal;\n\tfixedFee?: Decimal | null;\n\tpercentageFee?: Decimal | null;\n\twebEnabled: boolean;\n\tmobileWebEnabled: boolean;\n\tandroidEnabled: boolean;\n\tiosEnabled: boolean;\n}\n\nexport interface PointsClubSettings {\n\tmultiplier: Decimal;\n}\n\nexport interface Platform {\n\trestrictWithdrawalsToVerifiedMembers: boolean;\n\tminimumFirstDepositAmount: Decimal;\n\tbankDepositGatewaySettings?: DepositGatewaySettings | null;\n\tgcashDepositGatewaySettings?: DepositGatewaySettings | null;\n\tmayaDepositGatewaySettings?: DepositGatewaySettings | null;\n\tmayaAppDepositGatewaySettings?: DepositGatewaySettings | null;\n\tbankWithdrawalGatewaySettings?: WithdrawalGatewaySettings | null;\n\tgcashWithdrawalGatewaySettings?: WithdrawalGatewaySettings | null;\n\tmayaWithdrawalGatewaySettings?: WithdrawalGatewaySettings | null;\n\tmayaAppWithdrawalGatewaySettings?: WithdrawalGatewaySettings | null;\n\tpointsClubSettings: PointsClubSettings;\n}\n\nexport type PlatformQuery = Platform;\n\nexport const PLATFORM_QUERY = gql`\n\tfragment DepositGatewaySettingsCoreData on DepositGatewaySettings {\n\t\tminimumAmount\n\t\tmaximumAmount\n\t\tfixedFee\n\t\tpercentageFee\n\t\twebEnabled\n\t\tmobileWebEnabled\n\t\tandroidEnabled\n\t\tiosEnabled\n\t}\n\n\tfragment WithdrawalGatewaySettingsCoreData on WithdrawalGatewaySettings {\n\t\tminimumAmount\n\t\tmaximumAmount\n\t\tfixedFee\n\t\tpercentageFee\n\t\twebEnabled\n\t\tmobileWebEnabled\n\t\tandroidEnabled\n\t\tiosEnabled\n\t}\n\n\tquery Platform {\n\t\tminimumFirstDepositAmount\n\t\trestrictWithdrawalsToVerifiedMembers\n\t\tbankDepositGatewaySettings: depositGatewaySettings(gateway: BANK) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tgcashDepositGatewaySettings: depositGatewaySettings(gateway: GCASH) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tmayaDepositGatewaySettings: depositGatewaySettings(gateway: MAYA) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tmayaAppDepositGatewaySettings: depositGatewaySettings(gateway: MAYA_APP) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tbankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: BANK) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tgcashWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: GCASH) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tmayaWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tmayaAppWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA_APP) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tpointsClubSettings {\n\t\t\tmultiplier\n\t\t}\n\t}\n`;\n","import { gql } from '../utils/gql';\nimport type { DateString, Decimal, MutationError } from './types';\n\nexport interface PointsWallet {\n\tid: string;\n\tpoints: Decimal;\n\taccount: string;\n\tdateTimeCreated: DateString;\n}\n\nexport const POINTS_WALLET_QUERY = gql`\n\tquery PointsWallet {\n\t\tpointsWallet {\n\t\t\tid\n\t\t\tpoints\n\t\t\taccount\n\t\t\tdateTimeCreated\n\t\t}\n\t}\n`;\n\nexport interface PointsWalletQuery {\n\tpointsWallet?: PointsWallet | null;\n}\n\nexport const POINTS_TO_CASH_CONVERSION_MUTATION = gql`\n\tmutation PointsToCashConversion($input: PointsToCashConversionInput!) {\n\t\tpointsToCashConversion(input: $input) {\n\t\t\t... on InsufficientPointsError {\n\t\t\t\tmessage\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport type PointsToCashConversionError = MutationError<'InsufficientPointsError'>;\n\nexport interface PointsToCashConversionMutationVariables {\n\tinput: {\n\t\tamount: Decimal;\n\t};\n}\n\nexport interface PointsToCashConversionMutation {\n\tpointsToCashConversion?: PointsToCashConversionError | null;\n}\n","import { gql } from '../utils/gql';\nimport type {\n\tDateFilterField,\n\tDateString,\n\tDecimal,\n\tEnumFilterField,\n\tPaginatedQuery,\n\tStringFilterField,\n} from './types';\n\nexport type TransactionRecordType =\n\t| 'DEPOSIT'\n\t| 'PAYOUT'\n\t| 'WITHDRAWAL_REFUND'\n\t| 'TRANSFER_IN'\n\t| 'WITHDRAWAL'\n\t| 'BET'\n\t| 'TRANSFER_OUT'\n\t| 'ROLLBACK'\n\t| 'BET_REFUND'\n\t| 'PAYOUT_REFUND'\n\t| 'CASHBACK_BONUS'\n\t| 'BONUS'\n\t| 'RESERVE'\n\t| 'REJECT_WITHDRAWAL'\n\t| 'MANUAL_DEPOSIT'\n\t| 'GCASH_DEPOSIT'\n\t| 'MANUAL_WITHDRAWAL'\n\t| 'BANK_WITHDRAWAL'\n\t| 'GCASH_WITHDRAWAL'\n\t| 'COMMIT_RESERVE'\n\t| 'ROLLBACK_PAYOUT'\n\t| 'ROLLBACK_RESERVE';\n\nexport interface TransactionRecord {\n\tid: string;\n\ttype: TransactionRecordType;\n\tamount: Decimal;\n\tcontent?: string | null;\n\tcurrentBalance: Decimal;\n\treferenceNumber: string;\n\tdateTimeCreated: DateString;\n\tdateTimeLastUpdated: DateString;\n}\n\nexport interface TransactionRecordsQuery {\n\tmember: PaginatedQuery<'transactionRecords', TransactionRecord>;\n}\n\nexport interface TransactionRecordsQueryVariables {\n\tfirst?: number;\n\tafter?: string;\n\tfilter?: {\n\t\treferenceNumber?: StringFilterField;\n\t\ttype?: EnumFilterField<TransactionRecordType>;\n\t\tdateTimeCreated?: DateFilterField;\n\t};\n}\n\nexport const TRANSACTION_RECORDS_QUERY = gql`\n\tquery TransactionRecords($first: Int, $after: Cursor, $filter: TransactionRecordFilter) {\n\t\tmember {\n\t\t\ttransactionRecords(first: $first, after: $after, filter: $filter) {\n\t\t\t\tedges {\n\t\t\t\t\tcursor\n\t\t\t\t\tnode {\n\t\t\t\t\t\t... on TransactionRecord {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tcontent\n\t\t\t\t\t\t\tcurrentBalance\n\t\t\t\t\t\t\treferenceNumber\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttotalCount\n\t\t\t\tpageInfo {\n\t\t\t\t\thasNextPage\n\t\t\t\t\tendCursor\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n","import { gql } from '../utils/gql';\nimport type { DateString, Decimal } from './types';\n\nexport type Currency = 'PHP' | 'USD';\n\nexport interface Wallet {\n\tid: string;\n\tbalance: Decimal;\n\tcurrency: Currency;\n\tdateTimeCreated: DateString;\n\tdateTimeLastUpdated: DateString;\n}\n\nexport interface WalletQuery {\n\twallet?: Wallet | null;\n}\n\nexport const WALLET_QUERY = gql`\n\tquery Wallet {\n\t\twallet {\n\t\t\tid\n\t\t\tbalance\n\t\t\tcurrency\n\t\t\tdateTimeCreated\n\t\t\tdateTimeLastUpdated\n\t\t}\n\t}\n`;\n","import { gql } from '../utils/gql';\nimport type {\n\tDateFilterField,\n\tDateString,\n\tDecimal,\n\tEnumFilterField,\n\tMutationError,\n\tPaginatedQuery,\n\tStringFilterField,\n} from './types';\n\nexport type Bank = 'AUBKPHMM' | 'MBTCPHMM' | 'BNORPHMM' | 'MKRUPHM1';\n\nexport type WithdrawalRecordStatus =\n\t| 'PENDING'\n\t| 'APPROVED'\n\t| 'REJECTED'\n\t| 'CONFIRMED'\n\t| 'CANCELLED';\n\nexport type WithdrawalRecordType = WithdrawalRecord['type'];\n\ninterface Common {\n\tid: string;\n\tfee: Decimal;\n\tamount: Decimal;\n\tnetAmount: Decimal;\n\tstatus: WithdrawalRecordStatus;\n\treference?: string | null;\n\twithdrawalNumber: string;\n\tdateTimeConfirmed?: DateString | null;\n\tdateTimeCreated: DateString;\n\tdateTimeLastUpdated: DateString;\n}\n\nexport interface ManualWithdrawalRecord extends Common {\n\ttype: 'MANUAL';\n\tbank?: never;\n\trecipientMobileNumber?: never;\n}\n\nexport interface BankWithdrawalRecord extends Common {\n\ttype: 'BANK';\n\tbank: Bank;\n\trecipientMobileNumber?: never;\n}\n\nexport interface GCashWithdrawalRecord extends Common {\n\ttype: 'GCASH';\n\tbank?: never;\n\trecipientMobileNumber: string;\n}\n\nexport interface MayaWithdrawalRecord extends Common {\n\ttype: 'MAYA_APP';\n\tbank?: never;\n\trecipientMobileNumber?: never;\n}\n\nexport type WithdrawalRecord =\n\t| ManualWithdrawalRecord\n\t| BankWithdrawalRecord\n\t| GCashWithdrawalRecord\n\t| MayaWithdrawalRecord;\n\nexport interface WithdrawalRecordsQuery {\n\tmember: PaginatedQuery<'withdrawalRecords', WithdrawalRecord>;\n}\n\nexport interface WithdrawalRecordsQueryVariables {\n\tfirst?: number;\n\tafter?: string;\n\tfilter?: {\n\t\twithdrawalNumber?: StringFilterField;\n\t\ttype?: EnumFilterField<WithdrawalRecordType>;\n\t\treference?: StringFilterField;\n\t\tstatus?: EnumFilterField<WithdrawalRecordStatus>;\n\t\tdateTimeCreated?: DateFilterField;\n\t\tdateTimeLastUpdated?: DateFilterField;\n\t};\n}\n\nexport const WITHDRAWAL_RECORDS_QUERY = gql`\n\tquery WithdrawalRecords($first: Int, $after: Cursor, $filter: WithdrawalRecordFilterInput) {\n\t\tmember {\n\t\t\twithdrawalRecords(first: $first, after: $after, filter: $filter) {\n\t\t\t\tedges {\n\t\t\t\t\tcursor\n\t\t\t\t\tnode {\n\t\t\t\t\t\t... on BankWithdrawalRecord {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\tbank\n\t\t\t\t\t\t\tfee\n\t\t\t\t\t\t\tnetAmount\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tstatus\n\t\t\t\t\t\t\twithdrawalNumber\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t\t\t}\n\t\t\t\t\t\t... on GCashWithdrawalRecord {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\tfee\n\t\t\t\t\t\t\tnetAmount\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tstatus\n\t\t\t\t\t\t\twithdrawalNumber\n\t\t\t\t\t\t\trecipientMobileNumber\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t\t\t}\n\t\t\t\t\t\t... on ManualWithdrawalRecord {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\tfee\n\t\t\t\t\t\t\tnetAmount\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tstatus\n\t\t\t\t\t\t\twithdrawalNumber\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t\t\t}\n\t\t\t\t\t\t... on MayaAppWithdrawalRecord {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\tfee\n\t\t\t\t\t\t\tnetAmount\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tstatus\n\t\t\t\t\t\t\twithdrawalNumber\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttotalCount\n\t\t\t\tpageInfo {\n\t\t\t\t\thasNextPage\n\t\t\t\t\tendCursor\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport type CreateWithdrawalError = MutationError<\n\t| 'AccountNotVerifiedError'\n\t| 'InvalidTransactionPasswordError'\n\t| 'InvalidWithdrawalAmountError'\n\t| 'MobileNumberNotVerifiedError'\n\t| 'NotEnoughBalanceError'\n\t| 'WithdrawalDailyLimitExceededError'\n>;\n\nexport interface CreateGCashWithdrawalMutation {\n\tcreateGCashWithdrawal?: CreateWithdrawalError | null;\n}\n\nexport interface CreateGCashWithdrawalMutationVariables {\n\tinput: {\n\t\tid: string;\n\t\tamount: Decimal;\n\t\ttransactionPassword: string;\n\t\trecipientMobileNumber: string;\n\t};\n}\n\nexport const CREATE_GCASH_WITHDRAWAL_MUTATION = gql`\n\tmutation CreateGCashWithdrawal($input: CreateGCashWithdrawalInput!) {\n\t\tcreateGCashWithdrawal(input: $input) {\n\t\t\t... on AccountNotVerifiedError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on InvalidTransactionPasswordError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on InvalidWithdrawalAmountError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MobileNumberNotVerifiedError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on NotEnoughBalanceError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on WithdrawalDailyLimitExceededError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface CreateMayaWithdrawalMutation {\n\tcreateMayaWithdrawal?: CreateWithdrawalError | null;\n}\n\nexport interface CreateMayaWithdrawalMutationVariables {\n\tinput: {\n\t\tid: string;\n\t\tamount: Decimal;\n\t\ttransactionPassword: string;\n\t\trecipientMobileNumber: string;\n\t};\n}\n\nexport const CREATE_MAYA_WITHDRAWAL_MUTATION = gql`\n\tmutation CreateMayaWithdrawal($input: CreateMayaWithdrawalInput!) {\n\t\tcreateMayaWithdrawal(input: $input) {\n\t\t\t... on AccountNotVerifiedError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on InvalidTransactionPasswordError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on InvalidWithdrawalAmountError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on MobileNumberNotVerifiedError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on NotEnoughBalanceError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on WithdrawalDailyLimitExceededError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface CreateMayaAppWithdrawalMutation {\n\tcreateMayaAppWithdrawal?: CreateWithdrawalError | null;\n}\n\nexport interface CreateMayaAppWithdrawalMutationVariables {\n\tinput: {\n\t\tid: string;\n\t\tamount: Decimal;\n\t\ttransactionPassword: string;\n\t};\n}\n\nexport const CREATE_MAYA_APP_WITHDRAWAL_MUTATION = gql`\n\tmutation CreateMayaAppWithdrawal($input: CreateMayaAppWithdrawalInput!) {\n\t\tcreateMayaAppWithdrawal(input: $input) {\n\t\t\t... on AccountNotVerifiedError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on InvalidTransactionPasswordError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on InvalidWithdrawalAmountError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on NotEnoughBalanceError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on WithdrawalDailyLimitExceededError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface CreateBankWithdrawalMutation {\n\tcreateBankWithdrawal?: CreateWithdrawalError | null;\n}\n\nexport interface CreateBankWithdrawalMutationVariables {\n\tinput: {\n\t\tid: string;\n\t\tamount: Decimal;\n\t\ttransactionPassword: string;\n\t};\n}\n\nexport const CREATE_BANK_WITHDRAWAL_MUTATION = gql`\n\tmutation CreateBankWithdrawal($input: CreateBankWithdrawalInput!) {\n\t\tcreateBankWithdrawal(input: $input) {\n\t\t\t... on MobileNumberNotVerifiedError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on AccountNotVerifiedError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on InvalidWithdrawalAmountError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on WithdrawalDailyLimitExceededError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on InvalidTransactionPasswordError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t\t... on NotEnoughBalanceError {\n\t\t\t\tcode: __typename\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface RemainingDailyWithdrawalsCountQuery {\n\tremainingDailyWithdrawalsCount: number;\n}\n\nexport const REMAINING_DAILY_WITHDRAWALS_COUNT_QUERY = gql`\n\tquery RemainingDailyWithdrawalsCount {\n\t\tremainingDailyWithdrawalsCount\n\t}\n`;\n","import type { GraphQLClient } from '../utils/graphql-client';\nimport type { Announcement, AnnouncementsQuery, AnnouncementsQueryVariables } from './announcement';\nimport { ANNOUNCEMENTS_QUERY } from './announcement';\nimport type {\n\tCreateMemberVerificationError,\n\tCreateMemberVerificationMutation,\n\tCreateMemberVerificationMutationVariables,\n\tDeleteMemberAccountMutation,\n\tDeleteMemberAccountMutationVariables,\n\tMemberAccount,\n\tMemberAccountQuery,\n\tMemberVerification,\n\tMemberVerificationQuery,\n\tProfileCompletion,\n\tProfileCompletionQuery,\n\tRegisterMemberAccountError,\n\tRegisterMemberAccountMutation,\n\tRegisterMemberAccountMutationVariables,\n\tResetPasswordError,\n\tResetPasswordMutation,\n\tResetPasswordMutationVariables,\n\tSendVerificationCodeError,\n\tSendVerificationCodeMutation,\n\tSendVerificationCodeMutationVariables,\n\tUpdateMemberAccountError,\n\tUpdateMemberAccountMutation,\n\tUpdateMemberAccountMutationVariables,\n\tUpdateMemberVerificationError,\n\tUpdateMemberVerificationMutation,\n\tUpdateMemberVerificationMutationVariables,\n\tVerifyMobileNumberError,\n\tVerifyMobileNumberMutation,\n\tVerifyMobileNumberMutationVariables,\n} from './member';\nimport {\n\tCREATE_MEMBER_VERIFICATION_MUTATION,\n\tDELETE_MEMBER_ACCOUNT_MUTATION,\n\tMEMBER_ACCOUNT_QUERY,\n\tMEMBER_VERIFICATION_QUERY,\n\tPROFILE_COMPLETION_QUERY,\n\tREGISTER_MEMBER_ACCOUNT_MUTATION,\n\tRESET_PASSWORD_MUTATION,\n\tSEND_VERIFICATION_CODE_MUTATION,\n\tUPDATE_MEMBER_ACCOUNT_MUTATION,\n\tUPDATE_MEMBER_VERIFICATION_MUTATION,\n\tVERIFY_MOBILE_NUMBER_MUTATION,\n} from './member';\nimport type { Platform, PlatformQuery } from './platform';\nimport { PLATFORM_QUERY } from './platform';\nimport type { OperationResult, PaginatedQueryResult, UnknownError } from './types';\n\nexport class AccountService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\t/** aka `Query.self` */\n\tasync memberAccount(): Promise<OperationResult<never, MemberAccount>> {\n\t\tconst res = await this.client.request<MemberAccountQuery>(MEMBER_ACCOUNT_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.memberAccount,\n\t\t};\n\t}\n\n\tasync registerMemberAccount(\n\t\tvariables: RegisterMemberAccountMutationVariables,\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\n\t\tconst res = await this.client.request<RegisterMemberAccountMutation>(\n\t\t\tREGISTER_MEMBER_ACCOUNT_MUTATION,\n\t\t\tvariables,\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: res.data.registerMemberAccount,\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<UpdateMemberAccountMutation>(\n\t\t\tUPDATE_MEMBER_ACCOUNT_MUTATION,\n\t\t\tvariables,\n\t\t);\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: res.data.updateMemberAccount,\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<UnknownError>> {\n\t\tconst res = await this.client.request<DeleteMemberAccountMutation>(\n\t\t\tDELETE_MEMBER_ACCOUNT_MUTATION,\n\t\t\tvariables,\n\t\t);\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\tcode: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync resetPassword(\n\t\tvariables: ResetPasswordMutationVariables,\n\t): Promise<OperationResult<ResetPasswordError>> {\n\t\tconst res = await this.client.request<ResetPasswordMutation>(\n\t\t\tRESET_PASSWORD_MUTATION,\n\t\t\tvariables,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.resetPassword) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: res.data.resetPassword,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync profileCompletion(): Promise<OperationResult<never, ProfileCompletion>> {\n\t\tconst res = await this.client.request<ProfileCompletionQuery>(PROFILE_COMPLETION_QUERY);\n\n\t\treturn res.ok ? { ok: true, data: res.data.profileCompletion } : res;\n\t}\n\n\tasync platform(): Promise<OperationResult<never, Platform>> {\n\t\treturn await this.client.request<PlatformQuery>(PLATFORM_QUERY);\n\t}\n\n\tasync sendVerificationCode(\n\t\tvariables: SendVerificationCodeMutationVariables,\n\t): Promise<OperationResult<SendVerificationCodeError>> {\n\t\tconst res = await this.client.request<SendVerificationCodeMutation>(\n\t\t\tSEND_VERIFICATION_CODE_MUTATION,\n\t\t\tvariables,\n\t\t);\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: res.data.sendVerificationCode,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\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<VerifyMobileNumberMutation>(\n\t\t\tVERIFY_MOBILE_NUMBER_MUTATION,\n\t\t\tvariables,\n\t\t);\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: res.data.verifyMobileNumber,\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<CreateMemberVerificationMutation>(\n\t\t\tCREATE_MEMBER_VERIFICATION_MUTATION,\n\t\t\tvariables,\n\t\t);\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: res.data.createMemberVerification,\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<UpdateMemberVerificationMutation>(\n\t\t\tUPDATE_MEMBER_VERIFICATION_MUTATION,\n\t\t\tvariables,\n\t\t);\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: res.data.updateMemberVerification,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync memberVerification(): Promise<\n\t\tOperationResult<never, MemberVerification | null | undefined>\n\t> {\n\t\tconst res = await this.client.request<MemberVerificationQuery>(MEMBER_VERIFICATION_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.memberAccount.verification,\n\t\t};\n\t}\n\n\tasync announcements(\n\t\tvariables?: AnnouncementsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Announcement>>> {\n\t\tconst res = await this.client.request<AnnouncementsQuery>(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","export type HttpErrorCode =\n\t| 'HttpBadRequest'\n\t| 'HttpUnauthorized'\n\t| 'HttpForbidden'\n\t| 'HttpNotFound'\n\t| 'HttpRequestTimeout'\n\t| 'HttpTooManyRequests'\n\t| 'HttpInternalServerError'\n\t| 'HttpServiceUnavailable';\n\nexport interface HttpError {\n\tcode: HttpErrorCode;\n\tmessage: string;\n}\n\nexport function createHttpError(statusCode: number, message?: string): HttpError {\n\tconst e = ERROR_MAP[statusCode];\n\n\treturn {\n\t\tcode: e.code,\n\t\tmessage: message ?? e.message,\n\t};\n}\n\nconst ERROR_MAP: Record<number, HttpError> = {\n\t400: {\n\t\tcode: 'HttpBadRequest',\n\t\tmessage: 'Bad Request',\n\t},\n\t401: {\n\t\tcode: 'HttpUnauthorized',\n\t\tmessage: 'Unauthorized',\n\t},\n\t403: {\n\t\tcode: 'HttpForbidden',\n\t\tmessage: 'Forbidden',\n\t},\n\t404: {\n\t\tcode: 'HttpNotFound',\n\t\tmessage: 'Not Found',\n\t},\n\t408: {\n\t\tcode: 'HttpRequestTimeout',\n\t\tmessage: 'Request Timeout',\n\t},\n\t429: {\n\t\tcode: 'HttpTooManyRequests',\n\t\tmessage: 'Too Many Requests',\n\t},\n\t500: {\n\t\tcode: 'HttpInternalServerError',\n\t\tmessage: 'Internal Server Error',\n\t},\n\t503: {\n\t\tcode: 'HttpServiceUnavailable',\n\t\tmessage: 'Service Unavailable',\n\t},\n};\n","export async function sha256(input: string) {\n\tconst msgUint8 = new TextEncoder().encode(input);\n\tconst hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\n\tconst hashArray = Array.from(new Uint8Array(hashBuffer));\n\tconst hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');\n\treturn hashHex;\n}\n","import { createHttpError } from '../utils/http-error';\nimport { sha256 } from '../utils/sha256';\nimport type {\n\tCreateSessionError,\n\tCreateSessionInput,\n\tCreateSessionMutation,\n\tRefreshSessionError,\n\tRefreshSessionMutation,\n} from './session';\nimport type { OperationResult, UnknownError } from './types';\n\nexport interface AuthServiceConfig {\n\turl: string;\n\tplatform: string;\n}\n\nexport class AuthService {\n\tprivate url: string;\n\tprivate platform: string;\n\n\tconstructor(config: AuthServiceConfig) {\n\t\tthis.url = config.url;\n\t\tthis.platform = config.platform;\n\t}\n\n\tasync createSession(\n\t\tinput: CreateSessionInput,\n\t): Promise<OperationResult<CreateSessionError, CreateSessionMutation>> {\n\t\tconst headers = new Headers();\n\n\t\theaders.set('Content-Type', 'application/json');\n\t\theaders.set('Platform-Code', this.platform);\n\t\theaders.set('Role', 'MEMBER');\n\n\t\t/* Name and Password Sign-in */\n\t\tif ('name' in input) {\n\t\t\tconst data = `${input.name}:${await sha256(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\t/* Mobile Number Sign-in */\n\t\tif ('mobileNumber' in input) {\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', `Basic ${token}`);\n\t\t}\n\n\t\ttry {\n\t\t\tconst response = 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 response.json();\n\n\t\t\tif (response.status === 401 || response.status === 403) {\n\t\t\t\tif (data.code === 'ACCOUNT_BLACKLISTED') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: {\n\t\t\t\t\t\t\tcode: 'AccountBlacklisted',\n\t\t\t\t\t\t\tmessage: 'Account is blacklisted',\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: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tcode: 'AccountNotFound',\n\t\t\t\t\t\tmessage: 'Account not found.',\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createHttpError(response.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,\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createHttpError(500),\n\t\t\t};\n\t\t}\n\t}\n\n\tasync refreshSession(\n\t\trefreshToken: string,\n\t): Promise<OperationResult<RefreshSessionError, RefreshSessionMutation>> {\n\t\ttry {\n\t\t\tconst response = await fetch(`${this.url}/session:refresh`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\tAuthorization: `Bearer ${refreshToken}`,\n\t\t\t\t\t'Platform-Code': this.platform,\n\t\t\t\t\tRole: 'MEMBER',\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tconst data = await response.json();\n\n\t\t\tif (response.status === 401 || response.status === 403) {\n\t\t\t\tif (data.code === 'ACCOUNT_BLACKLISTED') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: {\n\t\t\t\t\t\t\tcode: 'AccountBlacklisted',\n\t\t\t\t\t\t\tmessage: 'Account is blacklisted',\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: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tcode: 'InvalidToken',\n\t\t\t\t\t\tmessage: 'Invalid token.',\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createHttpError(response.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,\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createHttpError(500),\n\t\t\t};\n\t\t}\n\t}\n\n\tasync destroySession(accessToken: string): Promise<OperationResult<UnknownError>> {\n\t\ttry {\n\t\t\tconst response = await fetch(`${this.url}/session`, {\n\t\t\t\tmethod: 'DELETE',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\tAuthorization: `Bearer ${accessToken}`,\n\t\t\t\t\t'Platform-Code': this.platform,\n\t\t\t\t\tRole: 'MEMBER',\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createHttpError(response.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: {\n\t\t\t\t\tcode: '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 verifySession(accessToken: string) {\n\t\ttry {\n\t\t\tconst response = await fetch(`${this.url}/session`, {\n\t\t\t\tmethod: 'GET',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\tAuthorization: `Bearer ${accessToken}`,\n\t\t\t\t\t'Platform-Code': this.platform,\n\t\t\t\t\tRole: 'MEMBER',\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tif (response.status === 403) return false;\n\t\t\tif (response.status === 401) return false;\n\t\t} catch {\n\t\t\t// ignore\n\t\t}\n\n\t\treturn true;\n\t}\n}\n","import type {\n\tFileQueryVariables,\n\tUploadPrivateImageFileMutation,\n\tUploadPrivateImageFileMutationVariables,\n} from '../graphql';\nimport { FILE_QUERY, type FileQuery } from '../graphql';\nimport type { GraphQLClient } from '../utils/graphql-client';\nimport type { File, UploadPrivateImageFileError } from './file';\nimport type { OperationResult } from './types';\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>(FILE_QUERY, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.node,\n\t\t};\n\t}\n\n\tasync uploadPrivateImageFile(\n\t\tvariables: UploadPrivateImageFileMutationVariables,\n\t): Promise<OperationResult<UploadPrivateImageFileError>> {\n\t\tconst res = await this.client.upload<UploadPrivateImageFileMutation>(FILE_QUERY, 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: res.data.uploadPrivateImageFile,\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 { GraphQLClient } from '../utils/graphql-client';\nimport type {\n\tCreateGameSessionError,\n\tCreateGameSessionMutation,\n\tCreateGameSessionMutationVariables,\n\tEndGameSessionMutation,\n\tEndGameSessionMutationVariables,\n\tGame,\n\tGameQuery,\n\tGameQueryVariables,\n\tGameSession,\n\tGameSessionQuery,\n\tGameSessionQueryVariables,\n\tGamesByNameQuery,\n\tGamesByNameQueryVariables,\n\tGamesQuery,\n\tGamesQueryVariables,\n} from './game';\nimport {\n\tCREATE_GAME_SESSION_MUTATION,\n\tEND_GAME_SESSION_MUTATION,\n\tGAMES_BY_NAME_QUERY,\n\tGAMES_QUERY,\n\tGAME_QUERY,\n\tGAME_SESSION_QUERY,\n} from './game';\nimport type { OperationResult, PaginatedQueryResult, UnknownError } from './types';\n\nexport class GameService {\n\tprotected client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync game(\n\t\tvariables?: GameQueryVariables,\n\t): Promise<OperationResult<never, Game | null | undefined>> {\n\t\tconst res = await this.client.request<GameQuery>(GAME_QUERY, variables);\n\n\t\treturn res.ok ? { ok: true, data: res.data.node } : res;\n\t}\n\n\tasync games(\n\t\tvariables?: GamesQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Game>>> {\n\t\tconst res = await this.client.request<GamesQuery>(GAMES_QUERY, variables);\n\n\t\treturn res.ok ? { ok: true, data: res.data.games } : res;\n\t}\n\n\tasync gamesByName(\n\t\tvariables?: GamesByNameQueryVariables,\n\t): Promise<OperationResult<never, Game[]>> {\n\t\tconst res = await this.client.request<GamesByNameQuery>(GAMES_BY_NAME_QUERY, variables);\n\n\t\treturn res.ok ? { ok: true, data: res.data.gamesByName } : res;\n\t}\n\n\tasync gameSession(\n\t\tvariables: GameSessionQueryVariables,\n\t): Promise<OperationResult<never, GameSession | null | undefined>> {\n\t\tconst res = await this.client.request<GameSessionQuery>(GAME_SESSION_QUERY, 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<CreateGameSessionMutation>(\n\t\t\tCREATE_GAME_SESSION_MUTATION,\n\t\t\tvariables,\n\t\t);\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: res.data.createGameSession,\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<UnknownError>> {\n\t\tconst res = await this.client.request<EndGameSessionMutation>(\n\t\t\tEND_GAME_SESSION_MUTATION,\n\t\t\tvariables,\n\t\t);\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\tcode: '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 { GraphQLClient } from '../utils/graphql-client';\nimport {\n\tBET_RECORDS_QUERY,\n\ttype BetRecord,\n\ttype BetRecordsQuery,\n\ttype BetRecordsQueryVariables,\n} from './bet-record';\nimport type {\n\tDepositRecord,\n\tDepositRecordsQuery,\n\tDepositRecordsQueryVariables,\n\tDepositsCountQuery,\n} from './deposit';\nimport { DEPOSITS_COUNT_QUERY, DEPOSIT_RECORDS_QUERY } from './deposit';\nimport type { Member, MemberQuery } from './member';\nimport { MEMBER_QUERY } from './member';\nimport type {\n\tTransactionRecord,\n\tTransactionRecordsQuery,\n\tTransactionRecordsQueryVariables,\n} from './transaction';\nimport { TRANSACTION_RECORDS_QUERY } from './transaction';\nimport type { OperationResult, PaginatedQueryResult } from './types';\nimport type {\n\tWithdrawalRecord,\n\tWithdrawalRecordsQuery,\n\tWithdrawalRecordsQueryVariables,\n} from './withdrawal';\nimport { WITHDRAWAL_RECORDS_QUERY } from './withdrawal';\n\nexport class ReportService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync betRecords(\n\t\tvariables?: BetRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<BetRecord>>> {\n\t\tconst res = await this.client.request<BetRecordsQuery>(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<TransactionRecordsQuery>(\n\t\t\tTRANSACTION_RECORDS_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.transactionRecords } : res;\n\t}\n\n\tasync withdrawalRecords(\n\t\tvariables?: WithdrawalRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<WithdrawalRecord>>> {\n\t\tconst res = await this.client.request<WithdrawalRecordsQuery>(\n\t\t\tWITHDRAWAL_RECORDS_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.withdrawalRecords } : res;\n\t}\n\n\tasync depositRecords(\n\t\tvariables?: DepositRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<DepositRecord>>> {\n\t\tconst res = await this.client.request<DepositRecordsQuery>(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 = await this.client.request<DepositsCountQuery>(DEPOSITS_COUNT_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.depositsCount } : res;\n\t}\n\n\tasync member(): Promise<OperationResult<never, Member>> {\n\t\tconst res = await this.client.request<MemberQuery>(MEMBER_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member } : res;\n\t}\n}\n","interface StaticServiceConfig {\n\turl: string;\n}\n\nexport class StaticService {\n\tprivate url: string;\n\n\tconstructor(config: StaticServiceConfig) {\n\t\tthis.url = config.url;\n\t}\n\n\tgameThumbnail<T extends { id: string; provider: string }>(args: T) {\n\t\treturn `${this.url}/images/${args.provider.toLowerCase()}/thumbnail-${args.id}.webp`;\n\t}\n}\n","import type {\n\tBonus,\n\tBonusQuery,\n\tCashbackBonus,\n\tCashbackBonusesQuery,\n\tClaimCashbackBonusError,\n\tClaimCashbackBonusMutation,\n\tClaimCashbackBonusMutationVariables,\n} from './bonus';\nimport { BONUS_QUERY, CASHBACK_BONUSES_QUERY, CLAIM_CASHBACK_BONUS_MUTATION } from './bonus';\nimport type { Cashback, CashbacksQuery } from './cashback';\nimport { CASHBACKS_QUERY } from './cashback';\nimport type {\n\tCreateDepositError,\n\tCreateGCashDepositMutation,\n\tCreateGCashDepositMutationVariables,\n\tCreateMayaAppDepositMutation,\n\tCreateMayaAppDepositMutationVariables,\n\tCreateMayaDepositMutation,\n\tCreateMayaDepositMutationVariables,\n\tDeposit,\n\tDepositQuery,\n\tDepositQueryVariables,\n} from './deposit';\nimport {\n\tCREATE_GCASH_DEPOSIT_MUTATION,\n\tCREATE_MAYA_APP_DEPOSIT_MUTATION,\n\tCREATE_MAYA_DEPOSIT_MUTATION,\n\tDEPOSIT_QUERY,\n} from './deposit';\nimport { GameService } from './game.service';\nimport type {\n\tPointsToCashConversionError,\n\tPointsToCashConversionMutation,\n\tPointsToCashConversionMutationVariables,\n\tPointsWallet,\n\tPointsWalletQuery,\n} from './points';\nimport { POINTS_TO_CASH_CONVERSION_MUTATION, POINTS_WALLET_QUERY } from './points';\nimport type {\n\tAvailablePromosQuery,\n\tAvailablePromosQueryVariables,\n\tPromo,\n\tPromosQuery,\n} from './promo';\nimport { AVAILABLE_PROMOS_QUERY, PROMOS_QUERY } from './promo';\nimport type { OperationResult } from './types';\nimport type { Wallet, WalletQuery } from './wallet';\nimport { WALLET_QUERY } from './wallet';\nimport type {\n\tCreateBankWithdrawalMutation,\n\tCreateBankWithdrawalMutationVariables,\n\tCreateGCashWithdrawalMutation,\n\tCreateGCashWithdrawalMutationVariables,\n\tCreateMayaAppWithdrawalMutation,\n\tCreateMayaAppWithdrawalMutationVariables,\n\tCreateMayaWithdrawalMutation,\n\tCreateMayaWithdrawalMutationVariables,\n\tCreateWithdrawalError,\n\tRemainingDailyWithdrawalsCountQuery,\n} from './withdrawal';\nimport {\n\tCREATE_BANK_WITHDRAWAL_MUTATION,\n\tCREATE_GCASH_WITHDRAWAL_MUTATION,\n\tCREATE_MAYA_APP_WITHDRAWAL_MUTATION,\n\tCREATE_MAYA_WITHDRAWAL_MUTATION,\n\tREMAINING_DAILY_WITHDRAWALS_COUNT_QUERY,\n} from './withdrawal';\n\nexport class WalletService extends GameService {\n\tasync promos(): Promise<OperationResult<never, Promo[]>> {\n\t\tconst res = await this.client.request<PromosQuery>(PROMOS_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.promos } : res;\n\t}\n\n\tasync cashbacks(): Promise<OperationResult<never, Cashback[]>> {\n\t\tconst res = await this.client.request<CashbacksQuery>(CASHBACKS_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.cashbacks } : res;\n\t}\n\n\tasync availablePromos(\n\t\tvariables?: AvailablePromosQueryVariables,\n\t): Promise<OperationResult<never, Promo[]>> {\n\t\tconst res = await this.client.request<AvailablePromosQuery>(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>(CASHBACK_BONUSES_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.cashbackBonuses } : res;\n\t}\n\n\tasync claimCashbackBonus(\n\t\tvariables: ClaimCashbackBonusMutationVariables,\n\t): Promise<OperationResult<ClaimCashbackBonusError>> {\n\t\tconst res = await this.client.request<ClaimCashbackBonusMutation>(\n\t\t\tCLAIM_CASHBACK_BONUS_MUTATION,\n\t\t\tvariables,\n\t\t);\n\n\t\tif (!res.ok) {\n\t\t\treturn {\n\t\t\t\tok: res.ok,\n\t\t\t\terror: res.error,\n\t\t\t};\n\t\t}\n\n\t\tif (res.data.claimCashbackBonus) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: res.data.claimCashbackBonus,\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>(DEPOSIT_QUERY, variables);\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 res = await this.client.request<CreateGCashDepositMutation>(\n\t\t\tCREATE_GCASH_DEPOSIT_MUTATION,\n\t\t\tvariables,\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: res.data.createGCashDeposit,\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 res = await this.client.request<CreateMayaDepositMutation>(\n\t\t\tCREATE_MAYA_DEPOSIT_MUTATION,\n\t\t\tvariables,\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: res.data.createMayaDeposit,\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 res = await this.client.request<CreateMayaAppDepositMutation>(\n\t\t\tCREATE_MAYA_APP_DEPOSIT_MUTATION,\n\t\t\tvariables,\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: res.data.createMayaAppDeposit,\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 res = await this.client.request<CreateGCashWithdrawalMutation>(\n\t\t\tCREATE_GCASH_WITHDRAWAL_MUTATION,\n\t\t\tvariables,\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: res.data.createGCashWithdrawal,\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 res = await this.client.request<CreateMayaWithdrawalMutation>(\n\t\t\tCREATE_MAYA_WITHDRAWAL_MUTATION,\n\t\t\tvariables,\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: res.data.createMayaWithdrawal,\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 res = await this.client.request<CreateMayaAppWithdrawalMutation>(\n\t\t\tCREATE_MAYA_APP_WITHDRAWAL_MUTATION,\n\t\t\tvariables,\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: res.data.createMayaAppWithdrawal,\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 res = await this.client.request<CreateBankWithdrawalMutation>(\n\t\t\tCREATE_BANK_WITHDRAWAL_MUTATION,\n\t\t\tvariables,\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: res.data.createBankWithdrawal,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync remainingDailyWithdrawalsCount(): Promise<OperationResult<never, number>> {\n\t\tconst res = await this.client.request<RemainingDailyWithdrawalsCountQuery>(\n\t\t\tREMAINING_DAILY_WITHDRAWALS_COUNT_QUERY,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.remainingDailyWithdrawalsCount } : res;\n\t}\n\n\tasync pointsWallet(): Promise<OperationResult<never, PointsWallet | null | undefined>> {\n\t\tconst res = await this.client.request<PointsWalletQuery>(POINTS_WALLET_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.pointsWallet } : res;\n\t}\n\n\tasync pointsToCashConversion(\n\t\tvariables: PointsToCashConversionMutationVariables,\n\t): Promise<OperationResult<PointsToCashConversionError>> {\n\t\tconst res = await this.client.request<PointsToCashConversionMutation>(\n\t\t\tPOINTS_TO_CASH_CONVERSION_MUTATION,\n\t\t\tvariables,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.pointsToCashConversion) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: res.data.pointsToCashConversion,\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 { GraphQLClient } from '../utils/graphql-client';\nimport {\n\tLATEST_BET_RECORDS_QUERY,\n\ttype LatestBetRecord,\n\ttype LatestBetRecordsQuery,\n} from './bet-record';\nimport type { OperationResult } from './types';\n\nexport class PortalService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync latestBetRecords(): Promise<OperationResult<never, LatestBetRecord[]>> {\n\t\tconst res = await this.client.request<LatestBetRecordsQuery>(LATEST_BET_RECORDS_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.latestBetRecords,\n\t\t};\n\t}\n}\n","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 cloneDate(date: Date) {\n\treturn new Date(date.getTime());\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';\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 { cloneDate } from './clone-date';\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 { AuthService, type AuthServiceConfig, type CreateSessionInput } from './graphql';\nimport { Logger } from './logger';\nimport type { Session } from './types';\nimport { addDays } from './utils/add-days';\nimport { addMinutes } from './utils/add-minutes';\nimport { isAfter } from './utils/is-after';\nimport { subMinutes } from './utils/sub-minutes';\n\nexport class SessionService {\n\tprivate logger;\n\tprivate storageKey = 'session';\n\tprivate authService: AuthService;\n\n\tconstructor(config: AuthServiceConfig) {\n\t\tthis.logger = new Logger();\n\t\tthis.authService = new AuthService(config);\n\t}\n\n\tasync create(input: CreateSessionInput) {\n\t\tconst res = await this.authService.createSession(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\twindow.localStorage.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 as const };\n\t\t} else {\n\t\t\treturn res;\n\t\t}\n\t}\n\n\tasync session() {\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 val = window.localStorage.getItem(this.storageKey);\n\n\t\tif (!val) return null;\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\t\t\t\twindow.localStorage.removeItem(this.storageKey);\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t/* is access token expired? */\n\t\t\tif (isAfter(now, accessTokenExpiresAt)) {\n\t\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\n\n\t\t\t\tthis.logger.info('Refreshing session...');\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/* return previous session for all errors except \"InvalidToken\" */\n\t\t\t\t\tif (res.error.code === 'InvalidToken' || res.error.code === 'AccountBlacklisted') {\n\t\t\t\t\t\t/* TODO: logout */\n\t\t\t\t\t\twindow.localStorage.removeItem(this.storageKey);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.logger.warn('Old session returned.');\n\t\t\t\t\t\treturn obj;\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\twindow.localStorage.setItem(this.storageKey, JSON.stringify(obj));\n\t\t\t}\n\n\t\t\treturn obj;\n\t\t} catch {\n\t\t\treturn null;\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 obj = await this.session();\n\n\t\tif (obj) await this.authService.destroySession(obj.accessToken);\n\n\t\twindow.localStorage.removeItem(this.storageKey);\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\n}\n","export function parseDecimal(value: unknown): number | undefined;\nexport function parseDecimal(value: unknown, fallback: number): number;\nexport function parseDecimal(value: unknown, 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 './graphql';\nimport type * as External from './types';\n\nimport { StaticService } from './graphql';\nimport { parseDecimal } from './utils/parse-decimal';\n\ninterface TransformerConfig {\n\tenvironment?: 'development' | 'production';\n}\n\nexport class Transformer {\n\tprivate staticService: StaticService;\n\n\tconstructor(config?: TransformerConfig) {\n\t\tconst debug = config?.environment === 'development';\n\n\t\tthis.staticService = new StaticService({\n\t\t\turl: debug\n\t\t\t\t? import.meta.env.VITE_STATIC_DEVELOPMENT_URL\n\t\t\t\t: import.meta.env.VITE_STATIC_PRODUCTION_URL,\n\t\t});\n\t}\n\n\tget transform() {\n\t\treturn {\n\t\t\tplatform: this.platform.bind(this),\n\t\t\taccount: this.account.bind(this),\n\t\t\twallet: this.wallet.bind(this),\n\t\t\tverificationDetails: this.verificationDetails.bind(this),\n\t\t\tprofileCompletion: this.profileCompletion.bind(this),\n\t\t\tannouncement: this.announcement.bind(this),\n\t\t\twithdrawalRecord: this.withdrawalRecord.bind(this),\n\t\t\tdeposit: this.deposit.bind(this),\n\t\t\tdepositRecord: this.depositRecord.bind(this),\n\t\t\tbetRecord: this.betRecord.bind(this),\n\t\t\tlatestBetRecord: this.latestBetRecord.bind(this),\n\t\t\ttransactionRecord: this.transactionRecord.bind(this),\n\t\t\tgame: this.game.bind(this),\n\t\t\tgameSession: this.gameSession.bind(this),\n\t\t\tpromo: this.promo.bind(this),\n\t\t\tcashback: this.cashback.bind(this),\n\t\t\tbonus: this.bonus.bind(this),\n\t\t\tcashbackBonus: this.cashbackBonus.bind(this),\n\t\t\tfile: this.file.bind(this),\n\t\t\tpointsWallet: this.pointsWallet.bind(this),\n\t\t};\n\t}\n\n\tprivate platform(data: Internal.Platform): External.Platform {\n\t\treturn {\n\t\t\tpaymentSettings: {\n\t\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\n\t\t\t\trestrictWithdrawalsToVerifiedMembers: data.restrictWithdrawalsToVerifiedMembers,\n\t\t\t\tdepositGateway: {\n\t\t\t\t\tbank: {\n\t\t\t\t\t\tandroidEnabled: data.bankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.bankDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.bankDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\t},\n\t\t\t\t\tgcash: {\n\t\t\t\t\t\tandroidEnabled: data.gcashDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.gcashDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.gcashDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\t},\n\t\t\t\t\tmaya: {\n\t\t\t\t\t\tandroidEnabled: data.mayaDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\t},\n\t\t\t\t\tmayaApp: {\n\t\t\t\t\t\tandroidEnabled: data.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\twithdrawalGateway: {\n\t\t\t\t\tbank: {\n\t\t\t\t\t\tandroidEnabled: data.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.maximumAmount),\n\t\t\t\t\t},\n\t\t\t\t\tgcash: {\n\t\t\t\t\t\tandroidEnabled: data.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.gcashWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmaya: {\n\t\t\t\t\t\tandroidEnabled: data.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.maximumAmount),\n\t\t\t\t\t},\n\t\t\t\t\tmayaApp: {\n\t\t\t\t\t\tandroidEnabled: data.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t},\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 account(data: Internal.MemberAccount & Internal.Member): External.Account {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tstatus: data.status,\n\t\t\tverified: data.verified,\n\t\t\tnickName: data.nickName ?? undefined,\n\t\t\trealName: data.realName ?? undefined,\n\t\t\tdateOfBirth: data.birthDay ? new Date(data.birthDay) : undefined,\n\t\t\temailAddress: data.emailAddress ?? undefined,\n\t\t\tmobileNumber: data.mobileNumber ?? undefined,\n\t\t\tmobileNumberVerified: data.mobileNumberVerified ?? false,\n\t\t\tmobileNumberVerificationRequired: data.mobileNumberVerificationRequired ?? false,\n\t\t\tvalidId: data.validId ?? undefined,\n\t\t\tverificationStatus: data.verificationStatus,\n\t\t\ttransactionPassword: data.transactionPassword,\n\t\t\tdateTimeLastActive: data.dateTimeLastActive ? new Date(data.dateTimeLastActive) : undefined,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\t}\n\n\tprivate wallet(data: Internal.Wallet): External.Wallet {\n\t\treturn {\n\t\t\t...data,\n\t\t\tbalance: parseDecimal(data.balance, 0),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\t}\n\n\tprivate verificationDetails(data: Internal.MemberVerification): External.VerificationDetails {\n\t\treturn {\n\t\t\t...data,\n\t\t\tidFrontImage: {\n\t\t\t\t...data.idFrontImage,\n\t\t\t\turl: data.idFrontImage.url ?? undefined,\n\t\t\t\tdateTimeCreated: new Date(data.idFrontImage.dateTimeCreated),\n\t\t\t} as External.File,\n\t\t\tselfieImage: {\n\t\t\t\t...data.selfieImage,\n\t\t\t\turl: data.selfieImage.url ?? undefined,\n\t\t\t\tdateTimeCreated: new Date(data.selfieImage.dateTimeCreated),\n\t\t\t} as External.File,\n\t\t};\n\t}\n\n\tprivate profileCompletion(data: Internal.ProfileCompletion): External.ProfileCompletion {\n\t\treturn {\n\t\t\t...data,\n\t\t\tcompletionPercentage: parseDecimal(data, 0),\n\t\t};\n\t}\n\n\tprivate announcement(data: Internal.Announcement): External.Announcement {\n\t\treturn {\n\t\t\t...data,\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 withdrawalRecord(data: Internal.WithdrawalRecord): External.WithdrawalRecord {\n\t\treturn {\n\t\t\t...data,\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\tbank: data.bank ?? undefined,\n\t\t\trecipientMobileNumber: data.recipientMobileNumber ?? undefined,\n\t\t\tdateTimeConfirmed: data.dateTimeConfirmed ? new Date(data.dateTimeConfirmed) : undefined,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t} as unknown as External.WithdrawalRecord;\n\t}\n\n\tprivate deposit(data: Internal.Deposit): External.Deposit {\n\t\treturn {\n\t\t\t...data,\n\t\t\tfee: parseDecimal(data.fee, 0),\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\n\t\t\treference: data.reference ?? undefined,\n\t\t\tcheckoutUrl: data.checkoutUrl ?? undefined,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t} as External.Deposit;\n\t}\n\n\tprivate depositRecord(data: Internal.DepositRecord): External.DepositRecord {\n\t\treturn {\n\t\t\t...data,\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\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\t}\n\n\tprivate betRecord(data: Internal.BetRecord): External.BetRecord {\n\t\treturn {\n\t\t\t...data,\n\t\t\tbet: parseDecimal(data.bet, 0),\n\t\t\tpayout: parseDecimal(data.payout, 0),\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: this.game(data.game),\n\t\t\tdateTimeSettled: data.dateTimeSettled ? new Date(data.dateTimeSettled) : undefined,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t\tbetContent: data.betContent ?? undefined,\n\t\t\tcontestName: data.contestName ?? undefined,\n\t\t\texternalCategory: data.externalCategory ?? undefined,\n\t\t\tmetadata: {\n\t\t\t\todds: data.metadata?.odds ?? undefined,\n\t\t\t\tvalidBet: parseDecimal(data.metadata?.validBet),\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate latestBetRecord(data: Internal.LatestBetRecord): External.LatestBetRecord {\n\t\treturn {\n\t\t\t...data,\n\t\t\tgame: this.game(data.game),\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\t}\n\n\tprivate transactionRecord(data: Internal.TransactionRecord): External.TransactionRecord {\n\t\treturn {\n\t\t\t...data,\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\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\t}\n\n\tprivate game(data: Internal.Game): External.Game {\n\t\treturn {\n\t\t\t...data,\n\t\t\timage: this.staticService.gameThumbnail(data),\n\t\t};\n\t}\n\n\tprivate gameSession(data: Internal.GameSession): External.GameSession {\n\t\treturn {\n\t\t\t...data,\n\t\t\tgame: this.game(data.game),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\t}\n\n\tprivate promo(data: Internal.Promo): External.Promo {\n\t\treturn {\n\t\t\t...data,\n\t\t\tbanner: {\n\t\t\t\t...data.banner,\n\t\t\t\tdateTimeCreated: new Date(data.banner.dateTimeCreated),\n\t\t\t},\n\t\t\tmaximumBonusAmount: parseDecimal(data.maximumBonusAmount),\n\t\t\tminimumBonusAmount: parseDecimal(data.minimumBonusAmount),\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\treturn {\n\t\t\t...data,\n\t\t\tbanner: {\n\t\t\t\t...data.banner,\n\t\t\t\tdateTimeCreated: new Date(data.banner.dateTimeCreated),\n\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};\n\t}\n\n\tprivate bonus(data: Internal.Bonus): External.Bonus {\n\t\treturn {\n\t\t\t...data,\n\t\t\tpromo: this.promo(data.promo),\n\t\t\t/* deposit here does not have an id and depositNumber field */\n\t\t\tdeposit: data.deposit\n\t\t\t\t? {\n\t\t\t\t\t\t...data.deposit,\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\t\t: undefined,\n\t\t\tbalance: parseDecimal(data.balance, 0),\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\texpiration: new Date(data.expiration),\n\t\t\tturnoverRequirement: parseDecimal(data.turnoverRequirement, 0),\n\t\t\tcurrentTurnoverRequirementContribution: parseDecimal(\n\t\t\t\tdata.currentTurnoverRequirementContribution,\n\t\t\t\t0,\n\t\t\t),\n\t\t\tcurrentTurnoverRequirementContributionPercentage: parseDecimal(\n\t\t\t\tdata.currentTurnoverRequirementContributionPercentage,\n\t\t\t\t0,\n\t\t\t),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\t}\n\n\tprivate cashbackBonus(data: Internal.CashbackBonus): External.CashbackBonus {\n\t\treturn {\n\t\t\tid: data.id,\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\t}\n\n\tprivate file(data: Internal.File): External.File {\n\t\treturn {\n\t\t\t...data,\n\t\t\turl: data.url ?? undefined,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t} as External.File;\n\t}\n\n\tprivate pointsWallet(data: Internal.PointsWallet): External.PointsWallet {\n\t\treturn {\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\t}\n}\n","import { type HttpError, createHttpError } from './http-error';\nimport type { GenericObject } from './types';\n\nexport type GraphQLClientMiddleware = (request: Request) => Request | Promise<Request>;\n\nexport interface GraphQLClientFetchOptions extends Omit<RequestInit, 'body' | 'method'> {}\n\nexport interface GraphQLClientConfig {\n\tmiddlewares?: GraphQLClientMiddleware[];\n\tfetchOptions?: GraphQLClientFetchOptions;\n}\n\nexport type GraphQLClientResponse<Data> =\n\t| {\n\t\t\tok: true;\n\t\t\tdata: Data;\n\t }\n\t| {\n\t\t\tok: false;\n\t\t\terror: HttpError;\n\t };\n\ntype GraphQLErrorExtensionCode =\n\t| 'FORBIDDEN'\n\t| 'UNAUTHORIZED'\n\t| 'BAD_USER_INPUT'\n\t| 'INTERNAL_SERVER_ERROR';\n\ninterface GraphQLErrorExtension {\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: GraphQLErrorExtension;\n\tlocations: GraphQLErrorLocation[];\n}\n\nexport class GraphQLClient {\n\tprivate url: string;\n\tprivate options: GraphQLClientFetchOptions;\n\tprivate middlewares: GraphQLClientMiddleware[];\n\n\tconstructor(url: string, config?: GraphQLClientConfig) {\n\t\tconst headers = new Headers(config?.fetchOptions?.headers);\n\n\t\tthis.url = url;\n\t\tthis.options = { ...config?.fetchOptions, headers };\n\t\tthis.middlewares = config?.middlewares ?? [];\n\t}\n\n\tasync request<Data>(\n\t\tquery: string,\n\t\tvariables?: GenericObject,\n\t): Promise<GraphQLClientResponse<Data>> {\n\t\tconst body = JSON.stringify({ query, variables });\n\t\tconst headers = new Headers(this.options.headers);\n\n\t\theaders.set('Content-Type', 'application/json');\n\t\theaders.set('Accept', 'application/json');\n\n\t\tconst request = await this.runMiddlewares(\n\t\t\tnew Request(this.url, {\n\t\t\t\t...this.options,\n\t\t\t\tbody,\n\t\t\t\theaders,\n\t\t\t\tmethod: 'POST',\n\t\t\t}),\n\t\t);\n\n\t\tconst response = await fetch(request);\n\n\t\tif (!response.ok) {\n\t\t\treturn { ok: false, error: createHttpError(response.status) };\n\t\t}\n\n\t\tconst json = await response.json();\n\t\tconst data = json.data;\n\t\tconst error = json.errors?.at(0) as GraphQLError | undefined;\n\n\t\tif (error?.extensions.code === 'FORBIDDEN') {\n\t\t\treturn { ok: false, error: createHttpError(403, error.message) };\n\t\t}\n\n\t\tif (error?.extensions.code === 'UNAUTHORIZED') {\n\t\t\treturn { ok: false, error: createHttpError(401, error.message) };\n\t\t}\n\n\t\tif (error?.extensions.code === 'BAD_USER_INPUT') {\n\t\t\treturn { ok: false, error: createHttpError(400, error.message) };\n\t\t}\n\n\t\tif (error?.extensions.code === 'INTERNAL_SERVER_ERROR') {\n\t\t\treturn { ok: false, error: createHttpError(500, error.message) };\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata,\n\t\t};\n\t}\n\n\t/** Single file upload */\n\tasync upload<Data>(\n\t\tquery: string,\n\t\tvariables: GenericObject,\n\t): Promise<GraphQLClientResponse<Data>> {\n\t\tconst body = GraphQLClient.createUploadBody(query, variables);\n\t\tconst headers = new Headers(this.options.headers);\n\n\t\theaders.set('Accept', 'application/json');\n\t\theaders.delete('Content-Type');\n\n\t\tconst request = await this.runMiddlewares(\n\t\t\tnew Request(this.url, {\n\t\t\t\t...this.options,\n\t\t\t\tbody,\n\t\t\t\theaders,\n\t\t\t\tmethod: 'POST',\n\t\t\t}),\n\t\t);\n\n\t\tconst response = await fetch(request);\n\n\t\tif (!response.ok) {\n\t\t\treturn { ok: false, error: createHttpError(response.status) };\n\t\t}\n\n\t\tconst json = await response.json();\n\t\tconst data = json.data;\n\t\tconst error = json.errors?.at(0) as GraphQLError | undefined;\n\n\t\tif (error?.extensions.code === 'FORBIDDEN') {\n\t\t\treturn { ok: false, error: createHttpError(403) };\n\t\t}\n\n\t\tif (error?.extensions.code === 'UNAUTHORIZED') {\n\t\t\treturn { ok: false, error: createHttpError(401) };\n\t\t}\n\n\t\tif (error?.extensions.code === 'BAD_USER_INPUT') {\n\t\t\treturn { ok: false, error: createHttpError(400) };\n\t\t}\n\n\t\tif (error?.extensions.code === 'INTERNAL_SERVER_ERROR') {\n\t\t\treturn { ok: false, error: createHttpError(500, error.message) };\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata,\n\t\t};\n\t}\n\n\tprivate async runMiddlewares(request: Request) {\n\t\tlet result = request.clone();\n\n\t\tfor (const middleware of this.middlewares) {\n\t\t\tresult = await middleware(result);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate static createUploadBody(query: string, variables: GenericObject) {\n\t\tconst { files, others } = GraphQLClient.extractFiles(variables);\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\tObject.entries(others).forEach(([key, value]) => {\n\t\t\tbody.append(key, JSON.stringify(value));\n\t\t});\n\n\t\tconst map: GenericObject = {};\n\n\t\tObject.keys(files).forEach((key, index) => {\n\t\t\tmap[index.toString()] = `variables.${key}`;\n\t\t});\n\n\t\tbody.append('map', JSON.stringify(map));\n\n\t\tObject.values(files).forEach((value, index) => {\n\t\t\tbody.append(index.toString(), value);\n\t\t});\n\n\t\treturn body;\n\t}\n\n\tprivate static extractFiles(value: GenericObject) {\n\t\tconst files: Record<string, File | Blob> = {};\n\t\tconst others: GenericObject = {};\n\n\t\tObject.entries(value).forEach(([key, value]) => {\n\t\t\tif (value instanceof File || value instanceof Blob) {\n\t\t\t\tfiles[key] = value;\n\t\t\t} else {\n\t\t\t\tothers[key] = value;\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tfiles,\n\t\t\tothers,\n\t\t};\n\t}\n}\n","import { AccountService, FileService, GameService, ReportService, WalletService } from './graphql';\nimport { PortalService } from './graphql/portal.service';\nimport { Logger } from './logger';\nimport { ObjectId } from './object-id';\nimport { ObjectType } from './object-type';\nimport { SessionService } from './session-service';\nimport { Transformer } from './transformer';\nimport type {\n\tAccountReturn,\n\tAnnouncementsInput,\n\tAnnouncementsReturn,\n\tAvailablePromosReturn,\n\tBetRecordsInput,\n\tBetRecordsReturn,\n\tBonusReturn,\n\tCashbackBonusReturn,\n\tCashbacksReturn,\n\tClaimCashbackBonusReturn,\n\tCreateAccountInput,\n\tCreateAccountReturn,\n\tCreateDepositInput,\n\tCreateDepositReturn,\n\tCreateGameSessionInput,\n\tCreateGameSessionReturn,\n\tCreateWithdrawalInput,\n\tCreateWithdrawalReturn,\n\tDeleteAccountReturn,\n\tDepositRecordsInput,\n\tDepositRecordsReturn,\n\tDepositReturn,\n\tDepositsCountReturn,\n\tEndGameSessionReturn,\n\tFileReturn,\n\tGameSessionReturn,\n\tGamesByNameInput,\n\tGamesByNameInput__Next,\n\tGamesByNameReturn,\n\tGamesInput,\n\tGamesInput__Next,\n\tGamesReturn,\n\tLatestBetRecordsReturn,\n\tPlatformReturn,\n\tPointsToCashConversionReturn,\n\tPointsWalletReturn,\n\tProfileCompletionReturn,\n\tPromosReturn,\n\tRemainingDailyWithdrawalsCountReturn,\n\tResetPasswordInput,\n\tResetPasswordReturn,\n\tSendVerificationCodeReturn,\n\tSessionReturn,\n\tSignInInput,\n\tSignInReturn,\n\tSubmitVerificationDetailsInput,\n\tSubmitVerificationDetailsReturn,\n\tTransactionRecordsInput,\n\tTransactionRecordsReturn,\n\tUpdateAccountInput,\n\tUpdateAccountReturn,\n\tUpdateVerificationDetailsInput,\n\tUpdateVerificationDetailsReturn,\n\tUploadImageFileInput,\n\tUploadImageFileReturn,\n\tVerificationDetailsReturn,\n\tVerifyMobileNumberReturn,\n\tWalletReturn,\n\tWithdrawalRecordsInput,\n\tWithdrawalRecordsReturn,\n} from './types';\nimport {\n\tGraphQLClient,\n\ttype GraphQLClientConfig,\n\ttype GraphQLClientMiddleware,\n} from './utils/graphql-client';\nimport { sha256 } from './utils/sha256';\n\nexport interface SdkConfig {\n\tplatform: string;\n\t/**\n\t * @description Whether to use production or development endpoints.\n\t * @default \"development\"\n\t */\n\tenvironment?: 'production' | 'development';\n\t/**\n\t * @description Enables/disables logging.\n\t * @default false\n\t */\n\tlog?: boolean;\n}\n\nexport class Sdk {\n\tprivate gameService: GameService;\n\tprivate fileService: FileService;\n\tprivate walletService: WalletService;\n\tprivate reportService: ReportService;\n\tprivate portalService: PortalService;\n\tprivate accountService: AccountService;\n\tprivate sessionService: SessionService;\n\tprivate transformer: Transformer;\n\tprivate logger: Logger;\n\n\tconstructor(config: SdkConfig) {\n\t\tconst debug = config.environment === 'development';\n\n\t\tthis.sessionService = new SessionService({\n\t\t\turl: debug\n\t\t\t\t? import.meta.env.VITE_AUTH_DEVELOPMENT_URL\n\t\t\t\t: import.meta.env.VITE_AUTH_PRODUCTION_URL,\n\t\t\tplatform: config.platform,\n\t\t});\n\n\t\tconst graphqlClientConfig: GraphQLClientConfig = {\n\t\t\tmiddlewares: [this.authMiddleware],\n\t\t\tfetchOptions: {\n\t\t\t\theaders: {\n\t\t\t\t\tRole: 'MEMBER',\n\t\t\t\t\t'Platform-Code': config.platform,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\tthis.gameService = new GameService(\n\t\t\tnew GraphQLClient(\n\t\t\t\tdebug\n\t\t\t\t\t? import.meta.env.VITE_GAME_DEVELOPMENT_URL\n\t\t\t\t\t: import.meta.env.VITE_GAME_PRODUCTION_URL,\n\t\t\t\tgraphqlClientConfig,\n\t\t\t),\n\t\t);\n\n\t\tthis.fileService = new FileService(\n\t\t\tnew GraphQLClient(\n\t\t\t\tdebug\n\t\t\t\t\t? import.meta.env.VITE_FILE_DEVELOPMENT_URL\n\t\t\t\t\t: import.meta.env.VITE_FILE_PRODUCTION_URL,\n\t\t\t\tgraphqlClientConfig,\n\t\t\t),\n\t\t);\n\n\t\tthis.walletService = new WalletService(\n\t\t\tnew GraphQLClient(\n\t\t\t\tdebug\n\t\t\t\t\t? import.meta.env.VITE_WALLET_DEVELOPMENT_URL\n\t\t\t\t\t: import.meta.env.VITE_WALLET_PRODUCTION_URL,\n\t\t\t\tgraphqlClientConfig,\n\t\t\t),\n\t\t);\n\n\t\tthis.reportService = new ReportService(\n\t\t\tnew GraphQLClient(\n\t\t\t\tdebug\n\t\t\t\t\t? import.meta.env.VITE_REPORT_DEVELOPMENT_URL\n\t\t\t\t\t: import.meta.env.VITE_REPORT_PRODUCTION_URL,\n\t\t\t\tgraphqlClientConfig,\n\t\t\t),\n\t\t);\n\n\t\tthis.accountService = new AccountService(\n\t\t\tnew GraphQLClient(\n\t\t\t\tdebug\n\t\t\t\t\t? import.meta.env.VITE_ACCOUNT_DEVELOPMENT_URL\n\t\t\t\t\t: import.meta.env.VITE_ACCOUNT_PRODUCTION_URL,\n\t\t\t\tgraphqlClientConfig,\n\t\t\t),\n\t\t);\n\n\t\tthis.portalService = new PortalService(\n\t\t\tnew GraphQLClient(\n\t\t\t\tdebug\n\t\t\t\t\t? import.meta.env.VITE_PORTAL_DEVELOPMENT_URL\n\t\t\t\t\t: import.meta.env.VITE_PORTAL_PRODUCTION_URL,\n\t\t\t\tgraphqlClientConfig,\n\t\t\t),\n\t\t);\n\n\t\tthis.transformer = new Transformer(config);\n\n\t\tthis.logger = new Logger({\n\t\t\tenabled: config.log ?? false,\n\t\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 session = await this.sessionService.session();\n\n\t\t\tif (session) {\n\t\t\t\trequest.headers.append('Authorization', `Bearer ${session.accessToken}`);\n\n\t\t\t\tthis.logger.info('Session found');\n\t\t\t\tthis.logger.success(\"Added 'Authorization' header\");\n\t\t\t} else {\n\t\t\t\tthis.logger.info('No session found');\n\t\t\t}\n\n\t\t\treturn request;\n\t\t};\n\t}\n\n\tasync signIn(input: SignInInput): Promise<SignInReturn> {\n\t\tconst res = await this.sessionService.create(input);\n\n\t\treturn res.ok ? { ok: true } : res;\n\t}\n\n\tasync signOut() {\n\t\tawait this.sessionService.destroy();\n\t}\n\n\tasync session(): Promise<SessionReturn> {\n\t\tconst data = await this.sessionService.session();\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: data\n\t\t\t\t? {\n\t\t\t\t\t\tid: data.session.id,\n\t\t\t\t\t\tdateTimeCreated: new Date(data.session.dateTimeCreated),\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\t/*\n\t * ========================================\n\t * Platform\n\t * ========================================\n\t */\n\n\tasync platform(): Promise<PlatformReturn> {\n\t\tconst res = await this.accountService.platform();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.platform(res.data),\n\t\t};\n\t}\n\n\t/*\n\t * ========================================\n\t * Account\n\t * ========================================\n\t */\n\n\tasync account(): Promise<AccountReturn> {\n\t\tconst [i, j] = await Promise.all([\n\t\t\tthis.accountService.memberAccount(),\n\t\t\tthis.reportService.member(),\n\t\t]);\n\n\t\tif (!i.ok) return { ok: false, error: i.error };\n\t\tif (!j.ok) return { ok: false, error: j.error };\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.account({\n\t\t\t\t...i.data,\n\t\t\t\t...j.data,\n\t\t\t}),\n\t\t};\n\t}\n\n\t/**\n\t * @example\n\t * ```ts\n\t * const res = await sdk.createAccount({\n\t * \tid: ObjectId.generate(ObjectType.Account).toString(),\n\t * \tname: data.name,\n\t * \tpassword: data.password,\n\t * \tdateOfBirth: new Date(data.dateOfBirth),\n\t * \tmobileNumber: data.mobileNumber,\n\t * \tdomain: data.domain,\n\t * \tverificationCode: data.verificationCode,\n\t * \treCAPTCHAResponse: data.reCAPTCHAResponse,\n\t * });\n\t *\n\t * if (!res.ok) {\n\t * \twindow.alert(res.error.message);\n\t * } else {\n\t * \t// Do something\n\t * }\n\t * ```\n\t */\n\tasync createAccount(input: CreateAccountInput): Promise<CreateAccountReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\n\n\t\tconst res = await this.accountService.registerMemberAccount({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tname: input.name,\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: input.dateOfBirth.toISOString(),\n\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\tmobileNumber: this.addAreaCode(input.mobileNumber),\n\t\t\t\tdomain: input.domain,\n\t\t\t},\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\t/**\n\t * @example\n\t * ```ts\n\t * const res = await sdk.updateAccount(user.id, {\n\t * \tvalidId: data.validId,\n\t * \trealName: data.realName,\n\t * });\n\t *\n\t * if (!res.ok) {\n\t * \twindow.alert(res.error.message);\n\t * } else {\n\t * \t// Do something\n\t * }\n\t * ```\n\t */\n\tasync updateAccount(id: string, input: UpdateAccountInput): Promise<UpdateAccountReturn> {\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...input,\n\t\t\t\t\tpassword: input.password ? await sha256(input.password) : undefined,\n\t\t\t\t\ttransactionPassword: input.transactionPassword\n\t\t\t\t\t\t? await sha256(input.transactionPassword)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\t...(input.mobileNumber && {\n\t\t\t\t\t\tmobileNumber: this.addAreaCode(input.mobileNumber),\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tasync deleteAccount(id: string): Promise<DeleteAccountReturn> {\n\t\treturn await this.accountService.deleteMemberAccount({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t},\n\t\t});\n\t}\n\n\tasync verificationDetails(): Promise<VerificationDetailsReturn> {\n\t\tconst res = await this.accountService.memberVerification();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.verificationDetails(res.data) : null,\n\t\t};\n\t}\n\n\t/**\n\t * @example\n\t * ```ts\n\t * const res = await sdk.submitVerificationDetails({\n\t * \tid: ObjectId.generate(ObjectType.Verification).toString(),\n\t * \tidFrontImage: data.idFrontImage,\n\t * \tselfieImage: data.selfieImage,\n\t * \taddress: data.address,\n\t * \tsourceOfIncome: data.sourceOfIncome,\n\t * \tnatureOfWork: data.natureOfWork,\n\t * \tplaceOfBirth: data.placeOfBirth,\n\t * \tnationality: data.nationality,\n\t * });\n\t *\n\t * if (!res.ok) {\n\t * \twindow.alert(res.error.message);\n\t * } else {\n\t * \t// Do something\n\t * }\n\t * ```\n\t */\n\tasync submitVerificationDetails(\n\t\tinput: SubmitVerificationDetailsInput,\n\t): Promise<SubmitVerificationDetailsReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Verification).toString();\n\n\t\tconst res = await this.accountService.createMemberVerification({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\t...input,\n\t\t\t},\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\t/**\n\t * @example\n\t * ```ts\n\t * const res = await sdk.submitVerificationDetails(verificationDetails.id, {\n\t * \tidFrontImage: data.idFrontImage,\n\t * \tselfieImage: data.selfieImage,\n\t * });\n\t *\n\t * if (!res.ok) {\n\t * \twindow.alert(res.error.message);\n\t * } else {\n\t * \t// Do something\n\t * }\n\t * ```\n\t */\n\tasync updateVerificationDetails(\n\t\tid: string,\n\t\tinput: UpdateVerificationDetailsInput,\n\t): Promise<UpdateVerificationDetailsReturn> {\n\t\treturn await this.accountService.updateMemberVerification({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tdata: {\n\t\t\t\t\t...input,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tasync resetPassword(input: ResetPasswordInput): Promise<ResetPasswordReturn> {\n\t\treturn await this.accountService.resetPassword({\n\t\t\tinput: {\n\t\t\t\tmobileNumber: this.addAreaCode(input.mobileNumber),\n\t\t\t\tnewPassword: await sha256(input.newPassword),\n\t\t\t},\n\t\t\tverificationCode: input.verificationCode,\n\t\t});\n\t}\n\n\tasync verifyMobileNumber(verificationCode: string): Promise<VerifyMobileNumberReturn> {\n\t\treturn await this.accountService.verifyMobileNumber({\n\t\t\tinput: {\n\t\t\t\tverificationCode,\n\t\t\t},\n\t\t});\n\t}\n\n\tasync profileCompletion(): Promise<ProfileCompletionReturn> {\n\t\tconst res = await this.accountService.profileCompletion();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.profileCompletion(res.data),\n\t\t};\n\t}\n\n\tasync sendVerificationCode(mobileNumber: string): Promise<SendVerificationCodeReturn> {\n\t\treturn await this.accountService.sendVerificationCode({\n\t\t\tinput: {\n\t\t\t\tchannel: 'SMS',\n\t\t\t\trecipient: this.addAreaCode(mobileNumber),\n\t\t\t},\n\t\t});\n\t}\n\n\tasync wallet(): Promise<WalletReturn> {\n\t\tconst res = await this.walletService.wallet();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.wallet(res.data) : null,\n\t\t};\n\t}\n\n\t/*\n\t * ========================================\n\t * Announcement\n\t * ========================================\n\t */\n\n\tasync announcements(input?: AnnouncementsInput): Promise<AnnouncementsReturn> {\n\t\tconst res = await this.accountService.announcements({\n\t\t\t...input,\n\t\t\tfilter: {\n\t\t\t\tvisibility: {\n\t\t\t\t\tin: ['MEMBER', 'GLOBAL'],\n\t\t\t\t},\n\t\t\t\tactivationStartDateTime: {\n\t\t\t\t\tgreaterThanOrEqual: new Date(),\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\tnextCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as AnnouncementsReturn;\n\t}\n\n\t/*\n\t * ========================================\n\t * Withdrawal\n\t * ========================================\n\t */\n\n\t/**\n\t * @example\n\t * ```ts\n\t * const res = await sdk.createWithdrawal({\n\t * \tid: ObjectId.generate(ObjectType.Withdrawal).toString(),\n\t * \ttype: 'BANK',\n\t * \tamount: data.amount,\n\t * \ttransactionPassword: data.transactionPassword,\n\t * });\n\t *\n\t * if (!res.ok) {\n\t * \twindow.alert(res.error.message);\n\t * } else {\n\t * \t// Do something\n\t * }\n\t * ```\n\t */\n\tasync createWithdrawal(input: CreateWithdrawalInput): Promise<CreateWithdrawalReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Withdrawal).toString();\n\n\t\tif (input.type === 'BANK') {\n\t\t\tconst res = await this.walletService.createBankWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t},\n\t\t\t});\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: this.addAreaCode(input.recipientMobileNumber),\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 === '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: this.addAreaCode(input.recipientMobileNumber),\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 === '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});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\treturn { ok: true, data: { id } };\n\t}\n\n\tasync withdrawalRecords(input?: WithdrawalRecordsInput): Promise<WithdrawalRecordsReturn> {\n\t\tconst res = await this.reportService.withdrawalRecords(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\twithdrawalRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.withdrawalRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tnextCursor: 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\t/*\n\t * ========================================\n\t * Deposit\n\t * ========================================\n\t */\n\n\t/**\n\t * @example\n\t * ```ts\n\t * const res = await sdk.createDeposit({\n\t * \tid: ObjectId.generate(ObjectType.Deposit).toString(),\n\t * \ttype: 'GCASH',\n\t * \tamount: data.amount,\n\t * \tpromo: data.promo,\n\t * });\n\t *\n\t * if (!res.ok) {\n\t * \twindow.alert(res.error.message);\n\t * } else {\n\t * \t// Do something\n\t * }\n\t * ```\n\t */\n\tasync createDeposit(input: CreateDepositInput): Promise<CreateDepositReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Deposit).toString();\n\n\t\tif (input.type === 'MAYA') {\n\t\t\tconst res = await this.walletService.createMayaDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t});\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});\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});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\treturn { ok: true, data: { id } };\n\t}\n\n\tasync deposit(id: string): Promise<DepositReturn> {\n\t\tconst res = await this.walletService.deposit({ id });\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.deposit(res.data) : null,\n\t\t};\n\t}\n\n\tasync depositRecords(input?: DepositRecordsInput): Promise<DepositRecordsReturn> {\n\t\tconst res = await this.reportService.depositRecords(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tdepositRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.depositRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tnextCursor: 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\t/*\n\t * ========================================\n\t * Bet\n\t * ========================================\n\t */\n\n\tasync betRecords(input?: BetRecordsInput): Promise<BetRecordsReturn> {\n\t\tconst res = await this.reportService.betRecords(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\tbetRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.betRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tnextCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as BetRecordsReturn;\n\t}\n\n\tasync latestBetRecords(): Promise<LatestBetRecordsReturn> {\n\t\tconst res = await this.portalService.latestBetRecords();\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.latestBetRecord),\n\t\t};\n\t}\n\n\t/*\n\t * ========================================\n\t * Transaction\n\t * ========================================\n\t */\n\n\tasync transactionRecords(input?: TransactionRecordsInput): Promise<TransactionRecordsReturn> {\n\t\tconst res = await this.reportService.transactionRecords(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\ttransactionRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.transactionRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tnextCursor: 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 * Promos\n\t * ========================================\n\t */\n\n\tasync promos(): Promise<PromosReturn> {\n\t\tconst res = await this.walletService.promos();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\n\t\t};\n\t}\n\n\tasync availablePromos(): Promise<AvailablePromosReturn> {\n\t\tconst res = await this.walletService.availablePromos();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\n\t\t};\n\t}\n\n\tasync cashbacks(): Promise<CashbacksReturn> {\n\t\tconst res = await this.walletService.cashbacks();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.cashback),\n\t\t};\n\t}\n\n\tasync bonus(): Promise<BonusReturn> {\n\t\tconst res = await this.walletService.bonus();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.bonus(res.data) : null,\n\t\t};\n\t}\n\n\tasync cashbackBonuses(): Promise<CashbackBonusReturn> {\n\t\tconst res = await this.walletService.cashbackBonuses();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.cashbackBonus),\n\t\t};\n\t}\n\n\tasync claimCashbackBonus(id: string): Promise<ClaimCashbackBonusReturn> {\n\t\treturn await this.walletService.claimCashbackBonus({ input: { id } });\n\t}\n\n\t/*\n\t * ========================================\n\t * Game\n\t * ========================================\n\t */\n\n\tasync games(input?: GamesInput): Promise<GamesReturn> {\n\t\tconst res = await this.gameService.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\tnextCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as GamesReturn;\n\t}\n\n\tasync gamesByName(input: GamesByNameInput): Promise<GamesByNameReturn> {\n\t\tconst res = await this.gameService.gamesByName(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.game),\n\t\t};\n\t}\n\n\tasync gamesByName__next(input: GamesByNameInput__Next): Promise<GamesByNameReturn> {\n\t\tconst res = await this.walletService.gamesByName(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.game),\n\t\t};\n\t}\n\n\tasync games__next(input?: GamesInput__Next): Promise<GamesReturn> {\n\t\tconst res = await this.walletService.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\tnextCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as GamesReturn;\n\t}\n\n\t/**\n\t * @example\n\t * ```ts\n\t * const res = await sdk.createGameSession({\n\t * \tid: ObjectId.generate(ObjectType.GameSession).toString(),\n\t * \tgame: game.id,\n\t * });\n\t *\n\t * if (!res.ok) {\n\t * \twindow.alert(res.error.message);\n\t * } else {\n\t * \t// Do something\n\t * }\n\t * ```\n\t */\n\tasync createGameSession(input: CreateGameSessionInput): Promise<CreateGameSessionReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.GameSession).toString();\n\n\t\tconst res = await this.gameService.createGameSession({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tgame: input.game,\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 * @example\n\t * ```ts\n\t * const res = await sdk.createGameSession({\n\t * \tid: ObjectId.generate(ObjectType.GameSession).toString(),\n\t * \tgame: game.id,\n\t * });\n\t *\n\t * if (!res.ok) {\n\t * \twindow.alert(res.error.message);\n\t * } else {\n\t * \t// Do something\n\t * }\n\t * ```\n\t */\n\tasync createGameSession__next(input: CreateGameSessionInput): Promise<CreateGameSessionReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.GameSession).toString();\n\n\t\tconst res = await this.walletService.createGameSession({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tgame: input.game,\n\t\t\t},\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\tasync gameSession(id: string): Promise<GameSessionReturn> {\n\t\tconst res = await this.gameService.gameSession({ 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.gameSession(res.data) : null,\n\t\t};\n\t}\n\n\tasync gameSession__next(id: string): Promise<GameSessionReturn> {\n\t\tconst res = await this.walletService.gameSession({ 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.gameSession(res.data) : null,\n\t\t};\n\t}\n\n\tasync endGameSession(id: string): Promise<EndGameSessionReturn> {\n\t\treturn await this.gameService.endGameSession({ input: { id } });\n\t}\n\n\tasync endGameSession__next(id: string): Promise<EndGameSessionReturn> {\n\t\treturn await this.walletService.endGameSession({ input: { id } });\n\t}\n\n\t/*\n\t * ========================================\n\t * File\n\t * ========================================\n\t */\n\n\tasync file(id: string): Promise<FileReturn> {\n\t\tconst res = await this.fileService.file({ id });\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.file(res.data) : null,\n\t\t};\n\t}\n\n\t/**\n\t * @example\n\t * ```ts\n\t * const res = await sdk.uploadImageFile({\n\t * \tid: ObjectId.generate(ObjectType.File).toString(),\n\t * \tfile: data.file,\n\t * });\n\t *\n\t * if (!res.ok) {\n\t * \twindow.alert(res.error.message);\n\t * } else {\n\t * \t// Do something\n\t * }\n\t * ```\n\t */\n\tasync uploadImageFile(input: UploadImageFileInput): Promise<UploadImageFileReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.File).toString();\n\n\t\tconst res = await this.fileService.uploadPrivateImageFile({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tfile: input.file,\n\t\t\t},\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\t/*\n\t * ========================================\n\t * Points\n\t * ========================================\n\t */\n\n\tasync pointsWallet(): Promise<PointsWalletReturn> {\n\t\tconst res = await this.walletService.pointsWallet();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.pointsWallet(res.data) : null,\n\t\t};\n\t}\n\n\tasync pointsToCashConversion(amount: number): Promise<PointsToCashConversionReturn> {\n\t\treturn await this.walletService.pointsToCashConversion({\n\t\t\tinput: {\n\t\t\t\tamount: amount.toString(),\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate addAreaCode(mobileNumber: string) {\n\t\tif (mobileNumber.startsWith('+63')) return mobileNumber;\n\t\tif (mobileNumber.startsWith('63')) return `+${mobileNumber}`;\n\t\tif (mobileNumber.startsWith('0')) return `+63${mobileNumber.substring(1)}`;\n\t\treturn `+63${mobileNumber}`;\n\t}\n}\n\nexport default Sdk;\n"],"names":["ObjectType","gql","strings","values","result","index","string","value","ANNOUNCEMENTS_QUERY","GAME_FRAGMENT","GAME_QUERY","GAMES_QUERY","GAMES_BY_NAME_QUERY","GAME_SESSION_QUERY","CREATE_GAME_SESSION_MUTATION","END_GAME_SESSION_MUTATION","BET_RECORDS_QUERY","LATEST_BET_RECORDS_QUERY","FILE_FRAGMENT","FILE_QUERY","CASHBACK_FRAGMENT","CASHBACKS_QUERY","PROMO_FRAGMENT","PROMOS_QUERY","AVAILABLE_PROMOS_QUERY","BONUS_QUERY","CASHBACK_BONUSES_QUERY","CLAIM_CASHBACK_BONUS_MUTATION","DEPOSIT_RECORDS_QUERY","CREATE_GCASH_DEPOSIT_MUTATION","CREATE_MAYA_DEPOSIT_MUTATION","CREATE_MAYA_APP_DEPOSIT_MUTATION","DEPOSIT_QUERY","DEPOSITS_COUNT_QUERY","MEMBER_QUERY","MEMBER_ACCOUNT_QUERY","MEMBER_VERIFICATION_QUERY","REGISTER_MEMBER_ACCOUNT_MUTATION","UPDATE_MEMBER_ACCOUNT_MUTATION","RESET_PASSWORD_MUTATION","DELETE_MEMBER_ACCOUNT_MUTATION","SEND_VERIFICATION_CODE_MUTATION","VERIFY_MOBILE_NUMBER_MUTATION","CREATE_MEMBER_VERIFICATION_MUTATION","UPDATE_MEMBER_VERIFICATION_MUTATION","PROFILE_COMPLETION_QUERY","PLATFORM_QUERY","POINTS_WALLET_QUERY","POINTS_TO_CASH_CONVERSION_MUTATION","TRANSACTION_RECORDS_QUERY","WALLET_QUERY","WITHDRAWAL_RECORDS_QUERY","CREATE_GCASH_WITHDRAWAL_MUTATION","CREATE_MAYA_WITHDRAWAL_MUTATION","CREATE_MAYA_APP_WITHDRAWAL_MUTATION","CREATE_BANK_WITHDRAWAL_MUTATION","REMAINING_DAILY_WITHDRAWALS_COUNT_QUERY","AccountService","client","__publicField","res","variables","createHttpError","statusCode","message","e","ERROR_MAP","sha256","input","msgUint8","hashBuffer","b","AuthService","config","headers","data","token","response","refreshToken","accessToken","FileService","GameService","ReportService","StaticService","args","WalletService","PortalService","Logger","cloneDate","date","addDays","days","addMinutes","minutes","isAfter","date1","date2","subMinutes","SessionService","now","val","obj","accessTokenExpiresAt","refreshTokenExpiresAt","parseDecimal","fallback","parsed","Transformer","debug","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","GraphQLClient","url","query","body","request","json","error","middleware","files","others","key","map","Sdk","graphqlClientConfig","session","i","j","id","ObjectId","verificationCode","mobileNumber","cursor","node","amount"],"mappings":"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"}