@voxary/valorant-client 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/api/groups/pvp.ts","../src/endpoints/riot/account.ts","../src/endpoints/riot/shared.ts","../src/endpoints/riot/chat.ts","../src/endpoints/riot/contracts.ts","../src/endpoints/riot/esports.ts","../src/endpoints/riot/local.ts","../src/endpoints/riot/premier.ts","../src/endpoints/riot/pvp.ts","../src/endpoints/riot/restrictions.ts","../src/endpoints/riot/store.ts","../src/endpoints/riot/storefront.ts","../src/endpoints/riot/voice.ts","../src/api/groups/party.ts","../src/api/groups/store.ts","../src/api/groups/pregame.ts","../src/api/groups/currentGame.ts","../src/api/groups/contracts.ts","../src/api/groups/local.ts","../src/api/groups/chat.ts","../src/api/groups/voice.ts","../src/api/groups/premier.ts","../src/api/groups/esports.ts","../src/api/groups/restrictions.ts","../src/api/groups/account.ts","../src/api/groups/auth.ts","../src/endpoints/catalog/index.ts","../src/endpoints/catalog/factory.ts","../src/envelope.ts","../src/endpoints/catalog/schemas.ts","../src/api/groups/catalog.ts","../src/api/registry.ts","../src/auth.ts","../src/errors.ts","../src/context.ts","../src/http.ts","../src/internal/body.ts","../src/internal/cookies.ts","../src/internal/retry.ts","../src/internal/failure.ts","../src/local.ts","../src/request.ts","../src/types.ts","../src/client.ts"],"sourcesContent":["export {ValorantClient} from './client'\nexport type {Logger, RetryOptions, ValorantApi, ValorantClientOptions} from './client'\n\nexport {ValorantContext, isRegion, shardForRegion} from './context'\nexport type {ContextListener, Region, Shard, ValorantState, ValorantStateKey} from './context'\n\nexport {\n MissingContextError,\n MissingParameterError,\n ValorantApiError,\n ValorantAuthError,\n ValorantError,\n ValorantNetworkError,\n ValorantRateLimitError,\n ValorantValidationError\n} from './errors'\n\nexport {parseAuthRedirect} from './auth'\nexport type {AuthFlows, AuthTokens, EstablishSessionOptions, LoginOptions, LoginResult} from './auth'\n\nexport {parseLockfile, readLockfile} from './local'\nexport type {LocalConnectOptions, LocalEvent, LocalEventStream, LocalFlows, Lockfile} from './local'\n\nexport {fetchTransport, localTransport} from './http'\nexport type {HttpRequest, HttpResponse, Transport} from './http'\n\nexport {registry} from './api/registry'\nexport type {\n CallOptions,\n EndpointCallOptions,\n EndpointMethod,\n EndpointResult,\n QueryInput,\n ValidationMode,\n ValorantResponse\n} from './types'\n\n// Schemas and response types of every endpoint, from the documentation project.\nexport * from 'valorant-api-types'\n","import {endpoints as e} from 'valorant-api-types'\r\nimport * as x from '../../endpoints/riot'\r\n\r\nexport interface PvpGroup {\r\n readonly content: typeof e.fetchContentEndpoint\r\n readonly accountXp: typeof e.accountXPEndpoint\r\n readonly playerLoadout: typeof e.playerLoadoutEndpoint\r\n readonly setPlayerLoadout: typeof e.setPlayerLoadoutEndpoint\r\n readonly playerMmr: typeof e.playerMMREndpoint\r\n readonly matchHistory: typeof e.matchHistoryEndpoint\r\n readonly matchDetails: typeof e.matchDetailsEndpoint\r\n readonly competitiveUpdates: typeof e.competitiveUpdatesEndpoint\r\n readonly leaderboard: typeof e.leaderboardEndpoint\r\n readonly penalties: typeof e.penaltiesEndpoint\r\n readonly config: typeof e.configEndpoint\r\n readonly nameService: typeof e.nameServiceEndpoint\r\n readonly playerLoadoutV3: typeof x.playerLoadoutV3Endpoint\r\n}\r\n\r\nexport const pvp: PvpGroup = {\r\n content: e.fetchContentEndpoint,\r\n accountXp: e.accountXPEndpoint,\r\n playerLoadout: e.playerLoadoutEndpoint,\r\n setPlayerLoadout: e.setPlayerLoadoutEndpoint,\r\n playerMmr: e.playerMMREndpoint,\r\n matchHistory: e.matchHistoryEndpoint,\r\n matchDetails: e.matchDetailsEndpoint,\r\n competitiveUpdates: e.competitiveUpdatesEndpoint,\r\n leaderboard: e.leaderboardEndpoint,\r\n penalties: e.penaltiesEndpoint,\r\n config: e.configEndpoint,\r\n nameService: e.nameServiceEndpoint,\r\n playerLoadoutV3: x.playerLoadoutV3Endpoint\r\n}\r\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\nimport {player} from './shared'\n\nexport const dailyTicketEndpoint = {\n name: 'Daily Ticket',\n description: 'Daily ticket rewards and the matches already counted.',\n category: 'Account Endpoints',\n type: 'pd',\n suffix: 'daily-ticket/v1/{puuid}',\n riotRequirements: player,\n responses: {'200': z.object({\n Version: z.number(),\n DailyRewards: z.object({\n RemainingLifetimeSeconds: z.number(),\n BonusMilestonesPending: z.number(),\n Milestones: z.array(z.object({\n Progress: z.number(),\n BonusApplied: z.boolean()\n }))\n }),\n ProcessedMatches: z.array(z.object({\n ID: z.string(),\n CreatedAt: z.string(),\n DailyExpireTime: z.string(),\n PreviousDailyExpireTime: z.string(),\n ProgressBefore: z.number(),\n ProgressAfter: z.number(),\n XP: z.number(),\n SoftCurrency: z.number(),\n WasPenalized: z.boolean(),\n BonusesApplied: z.number(),\n DailyBonusState: z.array(z.boolean())\n }))\n })}\n} as const satisfies ValorantEndpoint\n\nexport const dailyTicketQueueConfigEndpoint = {\n name: 'Daily Ticket Queue Config',\n description: 'Which queues count for the daily ticket.',\n category: 'Account Endpoints',\n type: 'pd',\n suffix: 'daily-ticket/v1/queue-config',\n riotRequirements: player,\n responses: {'200': z.object({\n default: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n queueOverrides: z.object({\n abilitydraftarena: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n competitive: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_abilitydraftarena: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_competitive: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_dodgeball: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_fortcollins: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_hurm: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_newmap: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_skirmish2v2: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_skirmishascension1v1: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_skirmishascension2v2: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_snowball: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_spikerush: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_swiftplay: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_unrated: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_valaram: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n dodgeball: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n fortcollins: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n ggteam: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n hurm: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n newmap: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n premier: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n skirmish2v2: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n skirmishascension1v1: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n skirmishascension2v2: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n snowball: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n spikerush: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n swiftplay: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n unrated: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n valaram: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n })\n })\n })}\n} as const satisfies ValorantEndpoint\n\nexport const favoritesEndpoint = {\n name: 'Favorites',\n description: 'Favorited store content of the player.',\n category: 'Account Endpoints',\n type: 'pd',\n suffix: 'favorites/v1/players/{puuid}/favorites',\n riotRequirements: player,\n responses: {'200': z.object({\n Subject: z.string(),\n FavoritedContent: z.record(z.string(), z.object({\n FavoriteID: z.string(),\n ItemID: z.string()\n }))\n })}\n} as const satisfies ValorantEndpoint\n\nexport const goldstarsEndpoint = {\n name: 'Goldstars',\n description: 'Goldstar definitions. Field names are obfuscated by the game.',\n category: 'Account Endpoints',\n type: 'pd',\n suffix: 'goldstars/v1/goldstars',\n riotRequirements: player,\n responses: {'200': z.array(z.object({\n id: z.string(),\n tempT: z.number()\n }))}\n} as const satisfies ValorantEndpoint\n\nexport const goldstarsPlayerEndpoint = {\n name: 'Goldstars Player',\n description: 'Goldstars of a player. Field names are obfuscated by the game.',\n category: 'Account Endpoints',\n type: 'pd',\n suffix: 'goldstars/v1/players/{puuid}',\n riotRequirements: player,\n responses: {'200': z.object({\n puuid: z.string(),\n version: z.number(),\n tempS: z.object({\n \"00000000-0000-0000-0000-000000000000\": z.object({\n tempS: z.string(),\n tempA: z.record(z.string(), z.object({\n id: z.string(),\n tempC: z.number(),\n tempB: z.number()\n }))\n }),\n \"8102cd81-43a0-d0d7-bd59-47b8fe9bed1b\": z.object({\n tempS: z.string(),\n tempA: z.record(z.string(), z.object({\n id: z.string(),\n tempC: z.number(),\n tempB: z.number()\n }))\n })\n }),\n tempM: z.array(z.object({\n id: z.string(),\n tempG: z.number(),\n tempP: z.record(z.string(), z.object({\n tempA: z.record(z.string(), z.object({\n id: z.string(),\n tempV: z.number(),\n tempB: z.boolean()\n }))\n }))\n }))\n })}\n} as const satisfies ValorantEndpoint\n\nexport const bloomlineQueuesEndpoint = {\n name: 'Bloomline Queues',\n description: 'Queues handled by the `bloomline` service. The purpose of the service is not documented.',\n category: 'Account Endpoints',\n type: 'pd',\n suffix: 'bloomline/v0/config/valid-queues',\n riotRequirements: player,\n responses: {'200': z.object({\n ProcessedQueues: z.array(z.string()),\n PerformanceScoreQueues: z.array(z.string())\n })}\n} as const satisfies ValorantEndpoint\n\nexport const bloomlinePlayerEndpoint = {\n name: 'Bloomline Player',\n description: 'Per-player data of the `bloomline` service. The purpose of the service is not documented.',\n category: 'Account Endpoints',\n type: 'pd',\n suffix: 'bloomline/v0/players/{puuid}',\n riotRequirements: player,\n responses: {'200': z.object({\n Subject: z.string(),\n Bonsais: z.array(z.object({\n BonsaiID: z.string(),\n HypeID: z.string().optional(),\n BackgroundID: z.string().optional(),\n ClipID: z.string().optional(),\n BorderID: z.string().optional(),\n Flourish: z.object({\n ShortLevel: z.number().optional(),\n PreviousShortLevel: z.number().optional(),\n LongLevel: z.number().optional(),\n FlourishID: z.string().optional(),\n Points: z.number().optional(),\n PointsVersion: z.number().optional()\n }),\n TrackProgressList: z.array(z.object({\n TrackID: z.string(),\n TrackLevel: z.number().optional()\n }))\n })),\n LongGroupVersion: z.number()\n })}\n} as const satisfies ValorantEndpoint\n","/** Requirements of every player-scoped request. */\r\nexport const player = {token: true, entitlement: true, clientVersion: true, clientPlatform: true} as const\r\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\n\nexport const chatSettingsEndpoint = {\n name: 'Settings',\n description: 'Get chat settings',\n category: 'Local Endpoints - Chat',\n type: 'local',\n suffix: 'chat/v1/settings',\n riotRequirements: {localAuth: true},\n responses: {'200': z.object({\n bounceDockIconEnabled: z.boolean(),\n \"chat-status-message\": z.string(),\n chatFilterDisabled: z.boolean(),\n chatGBG: z.boolean(),\n chatGroupDiscord: z.boolean(),\n chatGroupMobile: z.boolean(),\n chatGroupOffline: z.boolean(),\n chatWindow: z.object({\n detached: z.boolean(),\n height: z.number(),\n left: z.number(),\n top: z.number(),\n width: z.number()\n }),\n chatWindowDockedHeight: z.number(),\n \"closed-conversations\": z.object({\n \"ff822fdf-71a3-54ac-814e-7ac752ba428d@eu1.pvp.net\": z.number()\n }),\n friendRequestToastsDisabled: z.boolean(),\n \"hidden-conversations\": z.object({}),\n linkClickWarningEnabled: z.boolean(),\n messageNotificationsEnabled: z.boolean(),\n moreUnreadsEnabled: z.boolean(),\n \"muted-conversations\": z.object({}),\n recentlyPlayedFirstOpen: z.boolean(),\n recentlyPlayedOpen: z.boolean(),\n \"roster-group-collapsed\": z.object({}),\n showWhenTypingEnabled: z.boolean(),\n sortBy: z.string(),\n usePlayerPreferences: z.boolean()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const chatTournamentInfoEndpoint = {\n name: 'Tournament Info',\n description: 'Get in-tournament conversations',\n category: 'Local Endpoints - Chat',\n type: 'local',\n suffix: 'chat/v6/conversations/ares-tournaments',\n riotRequirements: {localAuth: true},\n responses: {'200': z.object({})}\n} as const satisfies ValorantEndpoint\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\nimport {player} from './shared'\n\nexport const activeRecruitmentEventEndpoint = {\n name: 'Active Recruitment Event',\n description: 'The current agent recruitment event.',\n category: 'Contract Endpoints',\n type: 'pd',\n suffix: 'contracts/v1/agents/activeRecruitmentEvent',\n riotRequirements: player,\n responses: {'200': z.object({\n AgentID: z.string(),\n CounterID: z.string(),\n MilestoneThreshold: z.number(),\n StartDate: z.string(),\n EndDate: z.string(),\n IsActive: z.boolean(),\n includedPlatforms: z.object({\n console: z.object({\n developmentOnly: z.boolean()\n }),\n mobile: z.object({\n developmentOnly: z.boolean()\n }),\n pc: z.object({\n developmentOnly: z.boolean()\n })\n })\n })}\n} as const satisfies ValorantEndpoint\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\nimport {player} from './shared'\n\nexport const esportsLiveEventTimesEndpoint = {\n name: 'Esports Live Event Times',\n description: 'Live and upcoming esports matches, pick blocks and tournaments.',\n category: 'Esports Endpoints',\n type: 'pd',\n suffix: 'esports-service/v2/liveEventTimes',\n riotRequirements: player,\n responses: {'200': z.object({\n Tournaments: z.array(z.object({\n ID: z.string(),\n StartTimeUTC: z.string(),\n EndTimeUTC: z.string()\n }))\n })}\n} as const satisfies ValorantEndpoint\n\nexport const esportsUpcomingMatchesEndpoint = {\n name: 'Esports Upcoming Matches',\n description: 'Upcoming esports matches.',\n category: 'Esports Endpoints',\n type: 'pd',\n suffix: 'esports-service/v2/upcomingMatches',\n riotRequirements: player,\n responses: {'200': z.object({})}\n} as const satisfies ValorantEndpoint\n\nexport const esportsPickemLeaguesEndpoint = {\n name: 'Esports Pickem Leagues',\n description: 'Pick\\'em leagues.',\n category: 'Esports Endpoints',\n type: 'pd',\n suffix: 'esports-service/v1/pickem/leagues',\n riotRequirements: player,\n responses: {'200': z.object({\n PickemLeagues: z.array(z.object({\n LeagueID: z.string(),\n EldsLeagueID: z.string(),\n Tournament: z.object({\n ID: z.string(),\n EldsTournamentID: z.string(),\n LeagueID: z.string(),\n PickBlocks: z.array(z.object({\n ID: z.string(),\n EldsTournamentID: z.string(),\n Slug: z.object({\n Slug: z.string()\n }),\n PickOpenTime: z.string(),\n PickCloseTime: z.string(),\n State: z.string(),\n OpenLevel: z.string(),\n BlockType: z.string(),\n PickBlockElements: z.array(z.object({\n ID: z.string(),\n PickBlockID: z.string(),\n Section: z.object({\n ID: z.string(),\n EldsSectionID: z.string(),\n CorrectPick: z.object({\n Entries: z.array(z.object({\n Index: z.number(),\n Correctness: z.string(),\n ParticipantID: z.string(),\n Points: z.number(),\n Rank: z.number()\n })).nullable()\n })\n }),\n Match: z.object({\n ID: z.string(),\n EldsMatchID: z.string(),\n BaselinePoints: z.number(),\n CorrectPick: z.string(),\n ResultState: z.string()\n }),\n PickOpenTime: z.string(),\n PickCloseTime: z.string(),\n State: z.string(),\n DisplayOrder: z.number()\n })),\n CompletionStatus: z.string()\n })),\n Participants: z.array(z.object({\n ID: z.string(),\n EldsTeamID: z.string()\n }))\n }),\n Published: z.boolean()\n }))\n })}\n} as const satisfies ValorantEndpoint\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\n\nexport const localLocaleEndpoint = {\n name: 'Locale',\n description: 'Get the current locale',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'riotclient/product-locales/products/valorant/patchlines/live',\n riotRequirements: {localAuth: true},\n responses: {'200': z.string()}\n} as const satisfies ValorantEndpoint\n\nexport const localAvailableLocalesEndpoint = {\n name: 'Available Locales',\n description: 'Get available locales',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'rnet-product-registry/v4/available-product-locales/products/valorant/patchlines/live',\n riotRequirements: {localAuth: true},\n responses: {'200': z.array(z.string())}\n} as const satisfies ValorantEndpoint\n\nexport const localRiotStatusEndpoint = {\n name: 'Riot Status',\n description: 'Get game status information such as maintenances and incidents Response is an escaped JSON string.',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'riot-status/v1/products/valorant/patchlines/live/deployments/{region}',\n riotRequirements: {localAuth: true},\n responses: {'200': z.string()}\n} as const satisfies ValorantEndpoint\n\nexport const localAccessTokenEndpoint = {\n name: 'Access Token',\n description: 'Gets a Riot access token',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'rso-auth/v1/authorization/access-token',\n riotRequirements: {localAuth: true},\n responses: {'200': z.object({\n clientId: z.string(),\n expiry: z.number(),\n scopes: z.array(z.string()),\n token: z.string()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const localPluginStatusEndpoint = {\n name: 'Plugin Status',\n description: 'Gets plugin status',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'plugin-manager/v1/status',\n riotRequirements: {localAuth: true},\n responses: {'200': z.object({\n state: z.string()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const localRmsSessionEndpoint = {\n name: 'Rms Session',\n description: 'Gets the token for Riot Messaging Service',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'riot-messaging-service/v1/session',\n riotRequirements: {localAuth: true},\n responses: {'200': z.object({\n state: z.string(),\n token: z.string(),\n tokenType: z.string()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const localProcessInfoEndpoint = {\n name: 'Process Info',\n description: 'Gets the Valorant process ID',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'process-control/v1/process',\n riotRequirements: {localAuth: true},\n responses: {'200': z.object({\n pid: z.number(),\n status: z.string()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const localLogPathEndpoint = {\n name: 'Log Path',\n description: 'Gets the Valorant log path',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'product-session/v1/logs/path/VALORANT',\n riotRequirements: {localAuth: true},\n responses: {'200': z.string()}\n} as const satisfies ValorantEndpoint\n\nexport const localEulaEndpoint = {\n name: 'Eula',\n description: 'Get the EULA',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'eula/v1/agreement/content',\n riotRequirements: {localAuth: true},\n responses: {'200': z.string()}\n} as const satisfies ValorantEndpoint\n\nexport const localPrivacyPolicyEndpoint = {\n name: 'Privacy Policy',\n description: 'Get privacy policy',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'eula/v1/privacy-policy/content',\n riotRequirements: {localAuth: true},\n responses: {'200': z.string()}\n} as const satisfies ValorantEndpoint\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\nimport {player} from './shared'\n\nexport const premierSeasonsEndpoint = {\n name: 'Premier Seasons',\n description: 'All Premier seasons of the shard. The affinity in the path is the region of the context.',\n category: 'Premier Endpoints',\n type: 'pd',\n suffix: 'premier/v1/affinities/{region}/premier-seasons',\n riotRequirements: player,\n responses: {'200': z.object({\n PremierSeasons: z.array(z.object({\n ID: z.string(),\n Name: z.string(),\n PreviousPremierSeasonID: z.string(),\n NextPremierSeasonID: z.string(),\n IsActive: z.boolean(),\n StartTime: z.string(),\n EndTime: z.string(),\n Events: z.array(z.object({\n ID: z.string(),\n Type: z.string(),\n StartDateTime: z.string(),\n EndDateTime: z.string(),\n MapSelectionStrategy: z.string(),\n MapPoolMapIDs: z.array(z.string()),\n PointsRequiredToParticipate: z.number()\n })),\n ScheduledEvents: z.array(z.object({\n EventID: z.string(),\n EventType: z.string(),\n Conference: z.string(),\n DivisionGroup: z.string(),\n EventPresetName: z.string(),\n StartDateTime: z.string(),\n EndDateTime: z.string(),\n TournamentRoundTimes: z.array(z.object({\n StartDateTime: z.string(),\n EndDateTime: z.string()\n }))\n })),\n Conferences: z.array(z.object({\n id: z.string(),\n key: z.string(),\n isSuper: z.boolean(),\n gamePods: z.array(z.string()),\n timezone: z.string(),\n superConference: z.string().optional(),\n leaderboardPlayoffQualificationDateTime: z.string(),\n leaderboardPromotionFinalizationDateTime: z.string()\n })),\n Divisions: z.array(z.object({\n Division: z.number(),\n DivisionName: z.string(),\n DivisionGroup: z.string(),\n EventPresetName: z.string()\n })),\n DivisionThresholds: z.array(z.object({\n playoffThresholdType: z.string(),\n playoffThresholdValue: z.number(),\n promotionThresholdType: z.string(),\n promotionThresholdValue: z.number(),\n shouldPromoteToSuperConference: z.boolean(),\n skipReseedCriteria: z.string(),\n conference: z.string().optional(),\n division: z.number().optional(),\n promotionConference: z.string().optional(),\n skipReseedCriteriaValue: z.number().optional()\n })),\n EventPresets: z.object({\n PRO: z.object({\n EventPresetsByEventType: z.object({\n LEAGUE: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n SCRIM: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n TOURNAMENT: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n })\n })\n }),\n REGULAR: z.object({\n EventPresetsByEventType: z.object({\n LEAGUE: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n SCRIM: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n TOURNAMENT: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n })\n })\n })\n }),\n FlawlessPointRequirement: z.number(),\n ChampionshipPointRequirement: z.number(),\n ChampionshipEventID: z.string(),\n EnrollmentPhaseStartDateTime: z.string(),\n EnrollmentPhaseEndDateTime: z.string(),\n LeaderboardPlayoffQualificationDateTime: z.string(),\n LeaderboardPromotionFinalizationDateTime: z.string(),\n LeaderboardFinalizationDateTime: z.string(),\n ContenderEligibilityExpiryDateTime: z.string(),\n StageLockTime: z.string(),\n ParticipationRewardsActIDs: z.array(z.string()),\n ParticipationRewards: z.object({\n EntitlementRewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }))\n }),\n TournamentWinnerRewards: z.object({}),\n DivisionWinnerRewards: z.object({\n ADVANCED: z.object({\n EntitlementRewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }))\n }).optional(),\n CONTENDER: z.object({\n EntitlementRewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }))\n }).optional(),\n ELITE: z.object({\n EntitlementRewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }))\n }).optional(),\n INTERMEDIATE: z.object({\n EntitlementRewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }))\n }).optional(),\n OPEN: z.object({\n EntitlementRewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }))\n }).optional(),\n INVITE: z.object({\n EntitlementRewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }))\n }).optional()\n }),\n RosterRecentActivityNumSeasons: z.number()\n }))\n })}\n} as const satisfies ValorantEndpoint\n\nexport const premierActiveSeasonEndpoint = {\n name: 'Premier Active Season',\n description: 'The Premier season that is running now.',\n category: 'Premier Endpoints',\n type: 'pd',\n suffix: 'premier/v1/affinities/{region}/premier-seasons/active',\n riotRequirements: player,\n responses: {'200': z.object({\n ID: z.string(),\n Name: z.string(),\n PreviousPremierSeasonID: z.string(),\n NextPremierSeasonID: z.string(),\n IsActive: z.boolean(),\n StartTime: z.string(),\n EndTime: z.string(),\n Events: z.array(z.object({\n ID: z.string(),\n Type: z.string(),\n StartDateTime: z.string(),\n EndDateTime: z.string(),\n MapSelectionStrategy: z.string(),\n MapPoolMapIDs: z.array(z.string()),\n PointsRequiredToParticipate: z.number()\n })),\n ScheduledEvents: z.array(z.object({\n EventID: z.string(),\n EventType: z.string(),\n Conference: z.string(),\n DivisionGroup: z.string(),\n EventPresetName: z.string(),\n StartDateTime: z.string(),\n EndDateTime: z.string(),\n TournamentRoundTimes: z.array(z.object({\n StartDateTime: z.string(),\n EndDateTime: z.string()\n }))\n })),\n Conferences: z.array(z.object({\n id: z.string(),\n key: z.string(),\n isSuper: z.boolean(),\n gamePods: z.array(z.string()),\n timezone: z.string(),\n superConference: z.string().optional(),\n leaderboardPlayoffQualificationDateTime: z.string(),\n leaderboardPromotionFinalizationDateTime: z.string()\n })),\n Divisions: z.array(z.object({\n Division: z.number(),\n DivisionName: z.string(),\n DivisionGroup: z.string(),\n EventPresetName: z.string()\n })),\n DivisionThresholds: z.array(z.object({\n playoffThresholdType: z.string(),\n playoffThresholdValue: z.number(),\n promotionThresholdType: z.string(),\n promotionThresholdValue: z.number(),\n shouldPromoteToSuperConference: z.boolean(),\n skipReseedCriteria: z.string(),\n conference: z.string().optional(),\n division: z.number().optional(),\n promotionConference: z.string().optional(),\n skipReseedCriteriaValue: z.number().optional()\n })),\n EventPresets: z.object({\n PRO: z.object({\n EventPresetsByEventType: z.object({\n LEAGUE: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n SCRIM: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n TOURNAMENT: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n })\n })\n }),\n REGULAR: z.object({\n EventPresetsByEventType: z.object({\n LEAGUE: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n SCRIM: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n TOURNAMENT: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n })\n })\n })\n }),\n FlawlessPointRequirement: z.number(),\n ChampionshipPointRequirement: z.number(),\n ChampionshipEventID: z.string(),\n EnrollmentPhaseStartDateTime: z.string(),\n EnrollmentPhaseEndDateTime: z.string(),\n LeaderboardPlayoffQualificationDateTime: z.string(),\n LeaderboardPromotionFinalizationDateTime: z.string(),\n LeaderboardFinalizationDateTime: z.string(),\n ContenderEligibilityExpiryDateTime: z.string(),\n StageLockTime: z.string(),\n ParticipationRewards: z.object({}),\n TournamentWinnerRewards: z.object({}),\n DivisionWinnerRewards: z.object({}),\n RosterRecentActivityNumSeasons: z.number()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const premierConferencesEndpoint = {\n name: 'Premier Conferences',\n description: 'Premier conferences of the region.',\n category: 'Premier Endpoints',\n type: 'pd',\n suffix: 'premier/v1/affinities/{region}/conferences',\n riotRequirements: player,\n responses: {'200': z.object({\n PremierConferences: z.array(z.object({\n id: z.string(),\n key: z.string(),\n isSuper: z.boolean(),\n gamePods: z.array(z.string()),\n timezone: z.string(),\n superConference: z.string().optional(),\n leaderboardPlayoffQualificationDateTime: z.string(),\n leaderboardPromotionFinalizationDateTime: z.string()\n }))\n })}\n} as const satisfies ValorantEndpoint\n\nexport const premierMatchLimitEndpoint = {\n name: 'Premier Match Limit',\n description: 'How many Premier matches can still be played and when the limit resets.',\n category: 'Premier Endpoints',\n type: 'pd',\n suffix: 'premier/v1/matchlimitinfo',\n riotRequirements: player,\n responses: {'200': z.object({\n leagueMatchLimit: z.number(),\n tournamentLimit: z.number(),\n timeUntilNextResetSeconds: z.number()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const premierEligibilityEndpoint = {\n name: 'Premier Eligibility',\n description: 'Whether the player can join a Premier roster.',\n category: 'Premier Endpoints',\n type: 'pd',\n suffix: 'premier/v1/player/eligibility',\n riotRequirements: player,\n responses: {'200': z.object({\n subject: z.string(),\n accountVerificationStatus: z.boolean(),\n rankedPlacementCompletionStatus: z.boolean(),\n matchLimitReached: z.boolean(),\n isOnProvidedRoster: z.boolean()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const premierPlayerV2Endpoint = {\n name: 'Premier Player V2',\n description: 'Premier membership of a player: roster id and pending invites.',\n category: 'Premier Endpoints',\n type: 'pd',\n suffix: 'premier/v2/players/{puuid}',\n riotRequirements: player,\n responses: {'200': z.object({\n puuid: z.string(),\n rosterId: z.string(),\n version: z.number(),\n createdAt: z.number(),\n updatedAt: z.number()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const premierPlayerV3Endpoint = {\n name: 'Premier Player V3',\n description: 'Like v2, with prestige and contender eligibility.',\n category: 'Premier Endpoints',\n type: 'pd',\n suffix: 'premier/v3/players/{puuid}',\n riotRequirements: player,\n responses: {'200': z.object({\n puuid: z.string(),\n rosterId: z.string(),\n prestige: z.object({\n earnedPrestige: z.boolean(),\n earnedAura: z.boolean(),\n showTag: z.boolean(),\n showPlating: z.boolean(),\n showAura: z.boolean()\n }),\n contenderEligibilityExpiry: z.string(),\n socialVersion: z.number(),\n premierVersion: z.number(),\n updatedAt: z.number(),\n seasons: z.object({\n \"08d281c5-4426-3aaa-3316-ebaf5f2c858a\": z.object({\n seasonId: z.string(),\n hasEarnedPrestigeAura: z.boolean(),\n hasEarnedParticipation: z.boolean(),\n hasEarnedDivisionWinner: z.boolean()\n }),\n \"91be4c20-439d-8e24-f577-4ca8a98e8dc8\": z.object({\n seasonId: z.string(),\n hasEarnedPrestigeAura: z.boolean(),\n hasEarnedParticipation: z.boolean(),\n hasEarnedDivisionWinner: z.boolean()\n })\n })\n })}\n} as const satisfies ValorantEndpoint\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\nimport {player} from './shared'\n\nexport const playerLoadoutV3Endpoint = {\n name: 'Player Loadout V3',\n description: 'Current loadout. The v2 route used by `pvp.playerLoadout` answers 404 on current clients.',\n category: 'PVP Endpoints',\n type: 'pd',\n suffix: 'personalization/v3/players/{puuid}/playerloadout',\n riotRequirements: player,\n responses: {'200': z.object({\n Subject: z.string(),\n Version: z.number(),\n Guns: z.array(z.object({\n ID: z.string(),\n SkinID: z.string(),\n SkinLevelID: z.string(),\n ChromaID: z.string(),\n CharmInstanceID: z.string().optional(),\n CharmID: z.string().optional(),\n CharmLevelID: z.string().optional()\n })),\n ActiveExpressions: z.array(z.object({\n TypeID: z.string(),\n AssetID: z.string()\n })),\n DynamicOptions: z.object({}),\n Identity: z.object({\n PlayerCardID: z.string(),\n PlayerTitleID: z.string(),\n AccountLevel: z.number(),\n PreferredLevelBorderID: z.string(),\n HideAccountLevel: z.boolean()\n }),\n Incognito: z.boolean()\n })}\n} as const satisfies ValorantEndpoint\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\nimport {player} from './shared'\n\nexport const avoidListEndpoint = {\n name: 'Avoid List',\n description: 'Players the account avoids in matchmaking.',\n category: 'Restriction Endpoints',\n type: 'pd',\n suffix: 'restrictions/v1/avoidList',\n riotRequirements: player,\n responses: {'200': z.object({\n Subject: z.string()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const activeFutureInterventionsEndpoint = {\n name: 'Active Future Interventions',\n description: 'Upcoming or active restrictions of the account, by category.',\n category: 'Restriction Endpoints',\n type: 'pd',\n suffix: 'restrictions/v1/activeFutureInterventions',\n riotRequirements: player,\n responses: {'200': z.object({\n Subject: z.string()\n })}\n} as const satisfies ValorantEndpoint\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\nimport {player} from './shared'\n\nexport const agentStoreEndpoint = {\n name: 'Agent Store',\n description: 'Agents offered in the store.',\n category: 'Store Endpoints',\n type: 'pd',\n suffix: 'store/v1/storefronts/agent',\n riotRequirements: player,\n responses: {'200': z.object({\n AgentStore: z.object({\n AgentStoreOffers: z.array(z.object({\n AgentID: z.string(),\n StoreOffers: z.array(z.object({\n OfferID: z.string(),\n IsDirectPurchase: z.boolean(),\n StartDate: z.string(),\n Cost: z.record(z.string(), z.number()),\n Rewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Quantity: z.number()\n }))\n }))\n })),\n CurrentFeaturedAgent: z.string(),\n NextFeaturedAgent: z.string()\n })\n })}\n} as const satisfies ValorantEndpoint\n\nexport const allEntitlementsEndpoint = {\n name: 'All Entitlements',\n description: 'Everything the player owns, grouped by item type. This is the call without an item type, which is the shape `store.ownedItems` describes.',\n category: 'Store Endpoints',\n type: 'pd',\n suffix: 'store/v1/entitlements/{puuid}',\n riotRequirements: player,\n responses: {'200': z.object({\n EntitlementsByTypes: z.array(z.object({\n ItemTypeID: z.string(),\n Entitlements: z.array(z.object({\n TypeID: z.string(),\n ItemID: z.string(),\n InstanceID: z.string().optional()\n }))\n }))\n })}\n} as const satisfies ValorantEndpoint\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\nimport {player} from './shared'\n\nexport const storefrontV3Endpoint = {\n name: 'Storefront V3',\n description: 'Get the current storefront of the player: featured bundles, the daily skin offers, accessories and night market plugins. Replaces the v2 storefront endpoint, which now answers 404.',\n category: 'Store Endpoints',\n type: 'pd',\n method: 'POST',\n suffix: 'store/v3/storefront/{puuid}',\n headers: new Map([['Content-Type', 'application/json']]),\n riotRequirements: player,\n responses: {'200': z.object({\n FeaturedBundle: z.object({\n Bundle: z.object({\n ID: z.string(),\n DataAssetID: z.string(),\n CurrencyID: z.string(),\n Items: z.array(z.object({\n Item: z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }),\n BasePrice: z.number(),\n CurrencyID: z.string(),\n DiscountPercent: z.number(),\n DiscountedPrice: z.number(),\n IsPromoItem: z.boolean()\n })),\n ItemOffers: z.array(z.object({\n BundleItemOfferID: z.string(),\n Offer: z.object({\n OfferID: z.string(),\n IsDirectPurchase: z.boolean(),\n StartDate: z.string(),\n Cost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n Rewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Quantity: z.number()\n }))\n }),\n DiscountPercent: z.number(),\n DiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n })\n })),\n TotalBaseCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n TotalDiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n TotalDiscountPercent: z.number(),\n DurationRemainingInSeconds: z.number(),\n WholesaleOnly: z.boolean(),\n IsGiftable: z.number()\n }),\n Bundles: z.array(z.object({\n ID: z.string(),\n DataAssetID: z.string(),\n CurrencyID: z.string(),\n Items: z.array(z.object({\n Item: z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }),\n BasePrice: z.number(),\n CurrencyID: z.string(),\n DiscountPercent: z.number(),\n DiscountedPrice: z.number(),\n IsPromoItem: z.boolean()\n })),\n ItemOffers: z.array(z.object({\n BundleItemOfferID: z.string(),\n Offer: z.object({\n OfferID: z.string(),\n IsDirectPurchase: z.boolean(),\n StartDate: z.string(),\n Cost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n Rewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Quantity: z.number()\n }))\n }),\n DiscountPercent: z.number(),\n DiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n })\n })),\n TotalBaseCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n TotalDiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n TotalDiscountPercent: z.number(),\n DurationRemainingInSeconds: z.number(),\n WholesaleOnly: z.boolean(),\n IsGiftable: z.number()\n })),\n FeaturedTileEntries: z.array(z.object({\n Type: z.number(),\n Entry: z.object({\n Bundle: z.object({\n ID: z.string(),\n DataAssetID: z.string(),\n CurrencyID: z.string(),\n Items: z.array(z.object({\n Item: z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }),\n BasePrice: z.number(),\n CurrencyID: z.string(),\n DiscountPercent: z.number(),\n DiscountedPrice: z.number(),\n IsPromoItem: z.boolean()\n })),\n ItemOffers: z.array(z.object({\n BundleItemOfferID: z.string(),\n Offer: z.object({\n OfferID: z.string(),\n IsDirectPurchase: z.boolean(),\n StartDate: z.string(),\n Cost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n Rewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Quantity: z.number()\n }))\n }),\n DiscountPercent: z.number(),\n DiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n })\n })),\n TotalBaseCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n TotalDiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n TotalDiscountPercent: z.number(),\n DurationRemainingInSeconds: z.number(),\n WholesaleOnly: z.boolean(),\n IsGiftable: z.number()\n })\n })\n })),\n BundleRemainingDurationInSeconds: z.number()\n }),\n SkinsPanelLayout: z.object({\n SingleItemOffers: z.array(z.string()),\n SingleItemStoreOffers: z.array(z.object({\n OfferID: z.string(),\n IsDirectPurchase: z.boolean(),\n StartDate: z.string(),\n Cost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n Rewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Quantity: z.number()\n }))\n })),\n SingleItemOffersRemainingDurationInSeconds: z.number()\n }),\n UpgradeCurrencyStore: z.object({\n UpgradeCurrencyOffers: z.array(z.object({\n OfferID: z.string(),\n StorefrontItemID: z.string(),\n Offer: z.object({\n OfferID: z.string(),\n IsDirectPurchase: z.boolean(),\n StartDate: z.string(),\n Cost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n Rewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Quantity: z.number()\n }))\n }),\n DiscountedPercent: z.number()\n }))\n }),\n AccessoryStore: z.object({\n AccessoryStoreOffers: z.array(z.object({\n Offer: z.object({\n OfferID: z.string(),\n IsDirectPurchase: z.boolean(),\n StartDate: z.string(),\n Cost: z.object({\n \"85ca954a-41f2-ce94-9b45-8ca3dd39a00d\": z.number()\n }),\n Rewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Quantity: z.number()\n }))\n }),\n ContractID: z.string()\n })),\n AccessoryStoreRemainingDurationInSeconds: z.number(),\n StorefrontID: z.string()\n }),\n PluginStores: z.array(z.object({\n PluginID: z.string(),\n PluginOffers: z.object({\n StoreOffers: z.array(z.object({\n PurchaseInformation: z.object({\n DataAssetID: z.string(),\n OfferID: z.string(),\n OfferType: z.number(),\n StartDate: z.string(),\n PrimaryCurrencyID: z.string(),\n Cost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n DiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n DiscountedPercentage: z.number(),\n WholesaleOnly: z.boolean(),\n IsGiftable: z.number()\n }),\n SubOffers: z.array(z.object({\n PurchaseInformation: z.object({\n DataAssetID: z.string(),\n OfferID: z.string(),\n OfferType: z.number(),\n StartDate: z.string(),\n PrimaryCurrencyID: z.string(),\n Cost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n DiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n DiscountedPercentage: z.number(),\n Rewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Quantity: z.number()\n })),\n WholesaleOnly: z.boolean(),\n IsGiftable: z.number()\n })\n }))\n })),\n RemainingDurationInSeconds: z.number()\n }),\n StartDate: z.string()\n }))\n })}\n} as const satisfies ValorantEndpoint\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\n\nexport const voiceAudioPropertiesEndpoint = {\n name: 'Audio Properties',\n description: 'Get audio properties such as if the microphone is in use',\n category: 'Local Endpoints - Voice',\n type: 'local',\n suffix: 'voice-chat/v1/audio-properties',\n riotRequirements: {localAuth: true},\n responses: {'200': z.object({\n fastEnergyMeter: z.number(),\n isLoopbackEnabled: z.boolean(),\n isMicActive: z.boolean(),\n isSpeakerActive: z.boolean(),\n micEnergy: z.number(),\n micVolume: z.number(),\n noiseFloorMeter: z.number(),\n speakerEnergy: z.number(),\n speakerVolume: z.number(),\n speechThresholdMeter: z.number()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const voiceCaptureDevicesEndpoint = {\n name: 'Capture Devices',\n description: 'Get microphone input device info',\n category: 'Local Endpoints - Voice',\n type: 'local',\n suffix: 'voice-chat/v2/devices/capture',\n riotRequirements: {localAuth: true},\n responses: {'200': z.array(z.object({\n handle: z.string(),\n is_current_device: z.boolean(),\n is_default: z.boolean(),\n is_effective_device: z.boolean(),\n name: z.string()\n }))}\n} as const satisfies ValorantEndpoint\n\nexport const voiceRenderDevicesEndpoint = {\n name: 'Render Devices',\n description: 'Get audio output devices',\n category: 'Local Endpoints - Voice',\n type: 'local',\n suffix: 'voice-chat/v2/devices/render',\n riotRequirements: {localAuth: true},\n responses: {'200': z.array(z.object({\n handle: z.string(),\n is_current_device: z.boolean(),\n is_default: z.boolean(),\n is_effective_device: z.boolean(),\n name: z.string()\n }))}\n} as const satisfies ValorantEndpoint\n","import {endpoints as e} from 'valorant-api-types'\r\n\r\nexport interface PartyGroup {\r\n readonly get: typeof e.partyEndpoint\r\n readonly player: typeof e.partyPlayerEndpoint\r\n readonly removePlayer: typeof e.partyRemovePlayerEndpoint\r\n readonly setMemberReady: typeof e.partySetMemberReadyEndpoint\r\n readonly refreshCompetitiveTier: typeof e.refreshCompetitiveTierEndpoint\r\n readonly refreshPlayerIdentity: typeof e.refreshPlayerIdentityEndpoint\r\n readonly refreshPings: typeof e.refreshPingsEndpoint\r\n readonly changeQueue: typeof e.changeQueueEndpoint\r\n readonly startCustomGame: typeof e.startCustomGameEndpoint\r\n readonly enterMatchmakingQueue: typeof e.enterMatchmakingQueueEndpoint\r\n readonly leaveMatchmakingQueue: typeof e.leaveMatchmakingQueueEndpoint\r\n readonly setAccessibility: typeof e.setPartyAccessibilityEndpoint\r\n readonly setCustomGameSettings: typeof e.setCustomGameSettingsEndpoint\r\n readonly invite: typeof e.partyInviteEndpoint\r\n readonly requestToJoin: typeof e.partyRequestEndpoint\r\n readonly declineRequest: typeof e.partyDeclineEndpoint\r\n readonly customGameConfigs: typeof e.customGameConfigsEndpoint\r\n readonly chatToken: typeof e.partyChatTokenEndpoint\r\n readonly voiceToken: typeof e.partyVoiceTokenEndpoint\r\n readonly disableCode: typeof e.partyDisableCodeEndpoint\r\n readonly generateCode: typeof e.partyGenerateCodeEndpoint\r\n readonly joinByCode: typeof e.partyJoinByCodeEndpoint\r\n}\r\n\r\nexport const party: PartyGroup = {\r\n get: e.partyEndpoint,\r\n player: e.partyPlayerEndpoint,\r\n removePlayer: e.partyRemovePlayerEndpoint,\r\n setMemberReady: e.partySetMemberReadyEndpoint,\r\n refreshCompetitiveTier: e.refreshCompetitiveTierEndpoint,\r\n refreshPlayerIdentity: e.refreshPlayerIdentityEndpoint,\r\n refreshPings: e.refreshPingsEndpoint,\r\n changeQueue: e.changeQueueEndpoint,\r\n startCustomGame: e.startCustomGameEndpoint,\r\n enterMatchmakingQueue: e.enterMatchmakingQueueEndpoint,\r\n leaveMatchmakingQueue: e.leaveMatchmakingQueueEndpoint,\r\n setAccessibility: e.setPartyAccessibilityEndpoint,\r\n setCustomGameSettings: e.setCustomGameSettingsEndpoint,\r\n invite: e.partyInviteEndpoint,\r\n requestToJoin: e.partyRequestEndpoint,\r\n declineRequest: e.partyDeclineEndpoint,\r\n customGameConfigs: e.customGameConfigsEndpoint,\r\n chatToken: e.partyChatTokenEndpoint,\r\n voiceToken: e.partyVoiceTokenEndpoint,\r\n disableCode: e.partyDisableCodeEndpoint,\r\n generateCode: e.partyGenerateCodeEndpoint,\r\n joinByCode: e.partyJoinByCodeEndpoint\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\r\nimport * as x from '../../endpoints/riot'\r\n\r\nexport interface StoreGroup {\r\n readonly prices: typeof e.pricesEndpoint\r\n readonly storefront: typeof e.storefrontEndpoint\r\n readonly wallet: typeof e.walletEndpoint\r\n readonly ownedItems: typeof e.ownedItemsEndpoint\r\n readonly storefrontV3: typeof x.storefrontV3Endpoint\r\n readonly agentStore: typeof x.agentStoreEndpoint\r\n readonly allEntitlements: typeof x.allEntitlementsEndpoint\r\n}\r\n\r\nexport const store: StoreGroup = {\r\n prices: e.pricesEndpoint,\r\n storefront: e.storefrontEndpoint,\r\n wallet: e.walletEndpoint,\r\n ownedItems: e.ownedItemsEndpoint,\r\n storefrontV3: x.storefrontV3Endpoint,\r\n agentStore: x.agentStoreEndpoint,\r\n allEntitlements: x.allEntitlementsEndpoint\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\r\n\r\nexport interface PregameGroup {\r\n readonly player: typeof e.pregamePlayerEndpoint\r\n readonly match: typeof e.pregameMatchEndpoint\r\n readonly loadouts: typeof e.pregameLoadoutsEndpoint\r\n readonly selectCharacter: typeof e.selectCharacterEndpoint\r\n readonly lockCharacter: typeof e.lockCharacterEndpoint\r\n readonly quit: typeof e.pregameQuitEndpoint\r\n}\r\n\r\nexport const pregame: PregameGroup = {\r\n player: e.pregamePlayerEndpoint,\r\n match: e.pregameMatchEndpoint,\r\n loadouts: e.pregameLoadoutsEndpoint,\r\n selectCharacter: e.selectCharacterEndpoint,\r\n lockCharacter: e.lockCharacterEndpoint,\r\n quit: e.pregameQuitEndpoint\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\r\n\r\nexport interface CurrentGameGroup {\r\n readonly player: typeof e.currentGamePlayerEndpoint\r\n readonly match: typeof e.currentGameMatchEndpoint\r\n readonly loadouts: typeof e.currentGameLoadoutsEndpoint\r\n readonly quit: typeof e.currentGameQuitEndpoint\r\n}\r\n\r\nexport const currentGame: CurrentGameGroup = {\r\n player: e.currentGamePlayerEndpoint,\r\n match: e.currentGameMatchEndpoint,\r\n loadouts: e.currentGameLoadoutsEndpoint,\r\n quit: e.currentGameQuitEndpoint\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\r\nimport * as x from '../../endpoints/riot'\r\n\r\nexport interface ContractsGroup {\r\n readonly itemUpgrades: typeof e.itemUpgradesEndpoint\r\n readonly list: typeof e.contractsEndpoint\r\n readonly activate: typeof e.activateContractEndpoint\r\n readonly activeRecruitmentEvent: typeof x.activeRecruitmentEventEndpoint\r\n}\r\n\r\nexport const contracts: ContractsGroup = {\r\n itemUpgrades: e.itemUpgradesEndpoint,\r\n list: e.contractsEndpoint,\r\n activate: e.activateContractEndpoint,\r\n activeRecruitmentEvent: x.activeRecruitmentEventEndpoint\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\r\nimport * as x from '../../endpoints/riot'\r\n\r\nexport interface LocalGroup {\r\n readonly help: typeof e.localHelpEndpoint\r\n readonly sessions: typeof e.sessionsEndpoint\r\n readonly rsoUserInfo: typeof e.rsoUserInfoEndpoint\r\n readonly clientRegion: typeof e.clientRegionEndpoint\r\n readonly accountAlias: typeof e.accountAliasEndpoint\r\n readonly entitlementsToken: typeof e.entitlementsTokenEndpoint\r\n readonly chatSession: typeof e.chatSessionEndpoint\r\n readonly friends: typeof e.friendsEndpoint\r\n readonly sendFriendRequest: typeof e.sendFriendRequestEndpoint\r\n readonly removeFriendRequest: typeof e.removeFriendRequestEndpoint\r\n readonly presence: typeof e.presenceEndpoint\r\n readonly friendRequests: typeof e.friendRequestsEndpoint\r\n readonly swaggerDocs: typeof e.localSwaggerDocsEndpoint\r\n readonly eula: typeof x.localEulaEndpoint\r\n readonly privacyPolicy: typeof x.localPrivacyPolicyEndpoint\r\n readonly availableLocales: typeof x.localAvailableLocalesEndpoint\r\n readonly locale: typeof x.localLocaleEndpoint\r\n readonly riotStatus: typeof x.localRiotStatusEndpoint\r\n readonly accessToken: typeof x.localAccessTokenEndpoint\r\n readonly pluginStatus: typeof x.localPluginStatusEndpoint\r\n readonly rmsSession: typeof x.localRmsSessionEndpoint\r\n readonly processInfo: typeof x.localProcessInfoEndpoint\r\n readonly logPath: typeof x.localLogPathEndpoint\r\n}\r\n\r\nexport const local: LocalGroup = {\r\n help: e.localHelpEndpoint,\r\n sessions: e.sessionsEndpoint,\r\n rsoUserInfo: e.rsoUserInfoEndpoint,\r\n clientRegion: e.clientRegionEndpoint,\r\n accountAlias: e.accountAliasEndpoint,\r\n entitlementsToken: e.entitlementsTokenEndpoint,\r\n chatSession: e.chatSessionEndpoint,\r\n friends: e.friendsEndpoint,\r\n sendFriendRequest: e.sendFriendRequestEndpoint,\r\n removeFriendRequest: e.removeFriendRequestEndpoint,\r\n presence: e.presenceEndpoint,\r\n friendRequests: e.friendRequestsEndpoint,\r\n swaggerDocs: e.localSwaggerDocsEndpoint,\r\n eula: x.localEulaEndpoint,\r\n privacyPolicy: x.localPrivacyPolicyEndpoint,\r\n availableLocales: x.localAvailableLocalesEndpoint,\r\n locale: x.localLocaleEndpoint,\r\n riotStatus: x.localRiotStatusEndpoint,\r\n accessToken: x.localAccessTokenEndpoint,\r\n pluginStatus: x.localPluginStatusEndpoint,\r\n rmsSession: x.localRmsSessionEndpoint,\r\n processInfo: x.localProcessInfoEndpoint,\r\n logPath: x.localLogPathEndpoint\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\r\nimport * as x from '../../endpoints/riot'\r\n\r\nexport interface ChatGroup {\r\n readonly partyInfo: typeof e.partyChatInfoEndpoint\r\n readonly pregameInfo: typeof e.pregameChatInfoEndpoint\r\n readonly currentGameInfo: typeof e.currentGameChatInfoEndpoint\r\n readonly allInfo: typeof e.allChatInfoEndpoint\r\n readonly participants: typeof e.chatParticipantsEndpoint\r\n readonly send: typeof e.sendChatEndpoint\r\n readonly history: typeof e.chatHistoryEndpoint\r\n readonly settings: typeof x.chatSettingsEndpoint\r\n readonly tournamentInfo: typeof x.chatTournamentInfoEndpoint\r\n}\r\n\r\nexport const chat: ChatGroup = {\r\n partyInfo: e.partyChatInfoEndpoint,\r\n pregameInfo: e.pregameChatInfoEndpoint,\r\n currentGameInfo: e.currentGameChatInfoEndpoint,\r\n allInfo: e.allChatInfoEndpoint,\r\n participants: e.chatParticipantsEndpoint,\r\n send: e.sendChatEndpoint,\r\n history: e.chatHistoryEndpoint,\r\n settings: x.chatSettingsEndpoint,\r\n tournamentInfo: x.chatTournamentInfoEndpoint\r\n}\r\n","import * as x from '../../endpoints/riot'\r\n\r\nexport interface VoiceGroup {\r\n readonly audioProperties: typeof x.voiceAudioPropertiesEndpoint\r\n readonly captureDevices: typeof x.voiceCaptureDevicesEndpoint\r\n readonly renderDevices: typeof x.voiceRenderDevicesEndpoint\r\n}\r\n\r\nexport const voice: VoiceGroup = {\r\n audioProperties: x.voiceAudioPropertiesEndpoint,\r\n captureDevices: x.voiceCaptureDevicesEndpoint,\r\n renderDevices: x.voiceRenderDevicesEndpoint\r\n}\r\n","import * as x from '../../endpoints/riot'\r\n\r\nexport interface PremierGroup {\r\n readonly seasons: typeof x.premierSeasonsEndpoint\r\n readonly activeSeason: typeof x.premierActiveSeasonEndpoint\r\n readonly conferences: typeof x.premierConferencesEndpoint\r\n readonly matchLimit: typeof x.premierMatchLimitEndpoint\r\n readonly eligibility: typeof x.premierEligibilityEndpoint\r\n readonly playerV2: typeof x.premierPlayerV2Endpoint\r\n readonly playerV3: typeof x.premierPlayerV3Endpoint\r\n}\r\n\r\nexport const premier: PremierGroup = {\r\n seasons: x.premierSeasonsEndpoint,\r\n activeSeason: x.premierActiveSeasonEndpoint,\r\n conferences: x.premierConferencesEndpoint,\r\n matchLimit: x.premierMatchLimitEndpoint,\r\n eligibility: x.premierEligibilityEndpoint,\r\n playerV2: x.premierPlayerV2Endpoint,\r\n playerV3: x.premierPlayerV3Endpoint\r\n}\r\n","import * as x from '../../endpoints/riot'\r\n\r\nexport interface EsportsGroup {\r\n readonly liveEventTimes: typeof x.esportsLiveEventTimesEndpoint\r\n readonly upcomingMatches: typeof x.esportsUpcomingMatchesEndpoint\r\n readonly pickemLeagues: typeof x.esportsPickemLeaguesEndpoint\r\n}\r\n\r\nexport const esports: EsportsGroup = {\r\n liveEventTimes: x.esportsLiveEventTimesEndpoint,\r\n upcomingMatches: x.esportsUpcomingMatchesEndpoint,\r\n pickemLeagues: x.esportsPickemLeaguesEndpoint\r\n}\r\n","import * as x from '../../endpoints/riot'\r\n\r\nexport interface RestrictionsGroup {\r\n readonly avoidList: typeof x.avoidListEndpoint\r\n readonly activeFutureInterventions: typeof x.activeFutureInterventionsEndpoint\r\n}\r\n\r\nexport const restrictions: RestrictionsGroup = {\r\n avoidList: x.avoidListEndpoint,\r\n activeFutureInterventions: x.activeFutureInterventionsEndpoint\r\n}\r\n","import * as x from '../../endpoints/riot'\r\n\r\nexport interface AccountGroup {\r\n readonly dailyTicket: typeof x.dailyTicketEndpoint\r\n readonly dailyTicketQueueConfig: typeof x.dailyTicketQueueConfigEndpoint\r\n readonly favorites: typeof x.favoritesEndpoint\r\n readonly goldstars: typeof x.goldstarsEndpoint\r\n readonly goldstarsPlayer: typeof x.goldstarsPlayerEndpoint\r\n readonly bloomlineQueues: typeof x.bloomlineQueuesEndpoint\r\n readonly bloomlinePlayer: typeof x.bloomlinePlayerEndpoint\r\n}\r\n\r\nexport const account: AccountGroup = {\r\n dailyTicket: x.dailyTicketEndpoint,\r\n dailyTicketQueueConfig: x.dailyTicketQueueConfigEndpoint,\r\n favorites: x.favoritesEndpoint,\r\n goldstars: x.goldstarsEndpoint,\r\n goldstarsPlayer: x.goldstarsPlayerEndpoint,\r\n bloomlineQueues: x.bloomlineQueuesEndpoint,\r\n bloomlinePlayer: x.bloomlinePlayerEndpoint\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\r\n\r\nexport interface AuthGroup {\r\n readonly cookies: typeof e.authCookiesEndpoint\r\n readonly request: typeof e.authRequestEndpoint\r\n readonly multiFactor: typeof e.multiFactorAuthenticationEndpoint\r\n readonly cookieReauth: typeof e.cookieReauthEndpoint\r\n readonly entitlement: typeof e.entitlementEndpoint\r\n readonly playerInfo: typeof e.playerInfoEndpoint\r\n readonly riotGeo: typeof e.riotGeoEndpoint\r\n readonly pasToken: typeof e.pasTokenEndpoint\r\n readonly riotClientConfig: typeof e.riotClientConfigEndpoint\r\n}\r\n\r\nexport const auth: AuthGroup = {\r\n cookies: e.authCookiesEndpoint,\r\n request: e.authRequestEndpoint,\r\n multiFactor: e.multiFactorAuthenticationEndpoint,\r\n cookieReauth: e.cookieReauthEndpoint,\r\n entitlement: e.entitlementEndpoint,\r\n playerInfo: e.playerInfoEndpoint,\r\n riotGeo: e.riotGeoEndpoint,\r\n pasToken: e.pasTokenEndpoint,\r\n riotClientConfig: e.riotClientConfigEndpoint\r\n}\r\n","/**\r\n * Static game data from the community API https://valorant-api.com (skins, agents, maps, ...).\r\n * No authentication. Item schemas describe the common fields of each item.\r\n */\r\nimport {z} from 'zod'\r\nimport {collection, endpoint} from './factory'\r\nimport {agentSchema, asset, mapSchema, seasonSchema, skinSchema, text, versionSchema, weaponSchema} from './schemas'\r\n\r\nconst playable = [['isPlayableCharacter', z.boolean().optional().describe('Only return playable agents. Skips the duplicate Sova.')]] as const\r\n\r\nconst agents = collection('Agents', 'Agent', 'agents', agentSchema, playable)\r\nconst buddies = collection('Buddies', 'Buddy', 'buddies', asset)\r\nconst buddyLevels = collection('Buddy Levels', 'Buddy Level', 'buddies/levels', asset)\r\nconst bundles = collection('Bundles', 'Bundle', 'bundles', asset)\r\nconst ceremonies = collection('Ceremonies', 'Ceremony', 'ceremonies', asset)\r\nconst competitiveTiers = collection('Competitive Tiers', 'Competitive Tier Set', 'competitivetiers', z.object({uuid: z.string(), tiers: z.array(z.object({tier: z.number(), tierName: text, division: text, color: text}).passthrough())}).passthrough())\r\nconst contentTiers = collection('Content Tiers', 'Content Tier', 'contenttiers', asset)\r\nconst contracts = collection('Contracts', 'Contract', 'contracts', asset)\r\nconst currencies = collection('Currencies', 'Currency', 'currencies', asset)\r\nconst events = collection('Events', 'Event', 'events', asset)\r\nconst flex = collection('Flex', 'Flex Item', 'flex', asset)\r\nconst gamemodes = collection('Gamemodes', 'Gamemode', 'gamemodes', asset)\r\nconst gamemodeEquippables = collection('Gamemode Equippables', 'Gamemode Equippable', 'gamemodes/equippables', asset)\r\nconst gear = collection('Gear', 'Gear Item', 'gear', asset)\r\nconst levelBorders = collection('Level Borders', 'Level Border', 'levelborders', asset)\r\nconst maps = collection('Maps', 'Map', 'maps', mapSchema)\r\nconst missions = collection('Missions', 'Mission', 'missions', z.object({uuid: z.string(), displayName: text}).passthrough())\r\nconst playerCards = collection('Player Cards', 'Player Card', 'playercards', asset)\r\nconst playerTitles = collection('Player Titles', 'Player Title', 'playertitles', z.object({uuid: z.string(), displayName: text, titleText: text}).passthrough())\r\nconst seasons = collection('Seasons', 'Season', 'seasons', seasonSchema)\r\nconst competitiveSeasons = collection('Competitive Seasons', 'Competitive Season', 'seasons/competitive', z.object({uuid: z.string(), seasonUuid: z.string(), startTime: z.string(), endTime: z.string()}).passthrough())\r\nconst sprays = collection('Sprays', 'Spray', 'sprays', asset)\r\nconst sprayLevels = collection('Spray Levels', 'Spray Level', 'sprays/levels', asset)\r\nconst themes = collection('Themes', 'Theme', 'themes', asset)\r\nconst weapons = collection('Weapons', 'Weapon', 'weapons', weaponSchema)\r\nconst weaponSkins = collection('Weapon Skins', 'Weapon Skin', 'weapons/skins', skinSchema)\r\nconst weaponSkinChromas = collection('Weapon Skin Chromas', 'Weapon Skin Chroma', 'weapons/skinchromas', asset)\r\nconst weaponSkinLevels = collection('Weapon Skin Levels', 'Weapon Skin Level', 'weapons/skinlevels', asset)\r\n\r\nexport const catalogEndpoints = {\r\n agents: agents.list, agent: agents.one,\r\n buddies: buddies.list, buddy: buddies.one,\r\n buddyLevels: buddyLevels.list, buddyLevel: buddyLevels.one,\r\n bundles: bundles.list, bundle: bundles.one,\r\n ceremonies: ceremonies.list, ceremony: ceremonies.one,\r\n competitiveTiers: competitiveTiers.list, competitiveTier: competitiveTiers.one,\r\n contentTiers: contentTiers.list, contentTier: contentTiers.one,\r\n contracts: contracts.list, contract: contracts.one,\r\n currencies: currencies.list, currency: currencies.one,\r\n events: events.list, event: events.one,\r\n flex: flex.list, flexItem: flex.one,\r\n gamemodes: gamemodes.list, gamemode: gamemodes.one,\r\n gamemodeEquippables: gamemodeEquippables.list, gamemodeEquippable: gamemodeEquippables.one,\r\n gear: gear.list, gearItem: gear.one,\r\n levelBorders: levelBorders.list, levelBorder: levelBorders.one,\r\n maps: maps.list, map: maps.one,\r\n missions: missions.list, mission: missions.one,\r\n playerCards: playerCards.list, playerCard: playerCards.one,\r\n playerTitles: playerTitles.list, playerTitle: playerTitles.one,\r\n seasons: seasons.list, season: seasons.one,\r\n competitiveSeasons: competitiveSeasons.list, competitiveSeason: competitiveSeasons.one,\r\n sprays: sprays.list, spray: sprays.one,\r\n sprayLevels: sprayLevels.list, sprayLevel: sprayLevels.one,\r\n themes: themes.list, theme: themes.one,\r\n version: endpoint('Version', 'Current game version and the matching client version', 'version', versionSchema),\r\n weapons: weapons.list, weapon: weapons.one,\r\n weaponSkins: weaponSkins.list, weaponSkin: weaponSkins.one,\r\n weaponSkinChromas: weaponSkinChromas.list, weaponSkinChroma: weaponSkinChromas.one,\r\n weaponSkinLevels: weaponSkinLevels.list, weaponSkinLevel: weaponSkinLevels.one\r\n} as const\r\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z, type ZodType} from 'zod'\nimport {markEnveloped} from '../../envelope'\n\nconst BASE = 'https://valorant-api.com/v1/'\n\nfunction query(queryParams: readonly (readonly [string, ZodType])[] = []): Map<string, ZodType> {\n return new Map<string, ZodType>([\n ['language', z.string().optional().describe('Language code such as `fr-FR`. Defaults to `en-US`.')],\n ...queryParams\n ])\n}\n\nexport function endpoint<const P extends string, S extends ZodType>(name: string, description: string, path: P, schema: S, queryParams: readonly (readonly [string, ZodType])[] = []) {\n return markEnveloped({\n name,\n description,\n category: 'Valorant-API.com',\n type: 'other',\n suffix: `${BASE}${path}` as `${typeof BASE}${P}`,\n query: query(queryParams),\n responses: {'200': schema}\n } as const satisfies ValorantEndpoint)\n}\n\n/** A list endpoint and its `/{uuid}` twin. */\nexport function collection<const P extends string, S extends ZodType>(title: string, singular: string, path: P, schema: S, queryParams: readonly (readonly [string, ZodType])[] = []) {\n return {\n list: endpoint(title, `List of ${title.toLowerCase()}`, path, z.array(schema), queryParams),\n one: endpoint(singular, `One ${singular.toLowerCase()} by UUID`, `${path}/{uuid}` as `${P}/{uuid}`, schema)\n }\n}\n","const enveloped = new WeakSet<object>()\n\n/** Marks an endpoint whose body is `{status, data}` and whose schema describes `data` only. */\nexport function markEnveloped<T extends object>(endpoint: T): T {\n enveloped.add(endpoint)\n return endpoint\n}\n\n/** Unwraps `data` for enveloped endpoints, whatever the validation mode. */\nexport function unwrapEnvelope(endpoint: object, body: unknown): unknown {\n if(enveloped.has(endpoint) && typeof body === 'object' && body !== null && 'data' in body) {\n return (body as {data: unknown}).data\n }\n return body\n}\n","import {z} from 'zod'\r\n\r\nexport const text = z.string().nullish()\r\n\r\nexport const asset = z.object({\r\n uuid: z.string(),\r\n displayName: text,\r\n displayIcon: text,\r\n assetPath: text\r\n}).passthrough()\r\n\r\nexport const agentSchema = asset.extend({\r\n description: text,\r\n developerName: text,\r\n characterTags: z.array(z.string()).nullish(),\r\n displayIconSmall: text,\r\n bustPortrait: text,\r\n fullPortrait: text,\r\n killfeedPortrait: text,\r\n background: text,\r\n isPlayableCharacter: z.boolean(),\r\n role: z.object({uuid: z.string(), displayName: text, description: text, displayIcon: text}).passthrough().nullish(),\r\n abilities: z.array(z.object({slot: z.string(), displayName: text, description: text, displayIcon: text}).passthrough()).nullish()\r\n})\r\n\r\nexport const mapSchema = asset.extend({\r\n coordinates: text,\r\n listViewIcon: text,\r\n splash: text,\r\n mapUrl: text,\r\n xMultiplier: z.number(),\r\n yMultiplier: z.number(),\r\n xScalarToAdd: z.number(),\r\n yScalarToAdd: z.number(),\r\n callouts: z.array(z.object({regionName: z.string(), superRegionName: z.string(), location: z.object({x: z.number(), y: z.number()})}).passthrough()).nullish()\r\n})\r\n\r\nexport const weaponSchema = asset.extend({\r\n category: z.string(),\r\n defaultSkinUuid: z.string(),\r\n killStreamIcon: text,\r\n weaponStats: z.object({}).passthrough().nullish(),\r\n shopData: z.object({}).passthrough().nullish(),\r\n skins: z.array(z.object({}).passthrough())\r\n})\r\n\r\nexport const skinSchema = asset.extend({\r\n themeUuid: z.string(),\r\n contentTierUuid: text,\r\n wallpaper: text,\r\n chromas: z.array(asset.passthrough()),\r\n levels: z.array(asset.passthrough())\r\n})\r\n\r\nexport const seasonSchema = z.object({\r\n uuid: z.string(),\r\n displayName: text,\r\n type: text,\r\n startTime: z.string(),\r\n endTime: z.string(),\r\n parentUuid: text,\r\n assetPath: text\r\n}).passthrough()\r\n\r\nexport const versionSchema = z.object({\r\n manifestId: z.string(),\r\n branch: z.string(),\r\n version: z.string(),\r\n buildVersion: z.string(),\r\n engineVersion: z.string(),\r\n riotClientVersion: z.string().describe('Value of the X-Riot-ClientVersion header'),\r\n riotClientBuild: z.string(),\r\n buildDate: z.string()\r\n}).passthrough()\r\n","import {catalogEndpoints} from '../../endpoints/catalog'\n\nexport const catalog = catalogEndpoints\n\nexport type CatalogGroup = typeof catalogEndpoints\n","import {pvp, type PvpGroup} from './groups/pvp'\r\nimport {party, type PartyGroup} from './groups/party'\r\nimport {store, type StoreGroup} from './groups/store'\r\nimport {pregame, type PregameGroup} from './groups/pregame'\r\nimport {currentGame, type CurrentGameGroup} from './groups/currentGame'\r\nimport {contracts, type ContractsGroup} from './groups/contracts'\r\nimport {local, type LocalGroup} from './groups/local'\r\nimport {chat, type ChatGroup} from './groups/chat'\r\nimport {voice, type VoiceGroup} from './groups/voice'\r\nimport {premier, type PremierGroup} from './groups/premier'\r\nimport {esports, type EsportsGroup} from './groups/esports'\r\nimport {restrictions, type RestrictionsGroup} from './groups/restrictions'\r\nimport {account, type AccountGroup} from './groups/account'\r\nimport {auth, type AuthGroup} from './groups/auth'\r\nimport {catalog, type CatalogGroup} from './groups/catalog'\r\n\r\n/** Shape of the registry. Written out with named group types so that declaration files stay small. */\r\nexport interface Registry {\r\n readonly pvp: PvpGroup\r\n readonly party: PartyGroup\r\n readonly store: StoreGroup\r\n readonly pregame: PregameGroup\r\n readonly currentGame: CurrentGameGroup\r\n readonly contracts: ContractsGroup\r\n readonly local: LocalGroup\r\n readonly chat: ChatGroup\r\n readonly voice: VoiceGroup\r\n readonly premier: PremierGroup\r\n readonly esports: EsportsGroup\r\n readonly restrictions: RestrictionsGroup\r\n readonly account: AccountGroup\r\n readonly auth: AuthGroup\r\n readonly catalog: CatalogGroup\r\n}\r\n\r\n/** Every documented HTTP endpoint, grouped and named for the public API. `client.<group>.<name>(options)` is generated from it. */\r\nexport const registry: Registry = {\r\n pvp,\r\n party,\r\n store,\r\n pregame,\r\n currentGame,\r\n contracts,\r\n local,\r\n chat,\r\n voice,\r\n premier,\r\n esports,\r\n restrictions,\r\n account,\r\n auth,\r\n catalog,\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\nimport type {ValorantClient} from './client'\nimport {ValorantError} from './errors'\n\nexport interface AuthTokens {\n accessToken: string\n idToken: string\n /** Lifetime in seconds. */\n expiresIn: number | undefined\n}\n\nexport type LoginResult =\n | {status: 'success', tokens: AuthTokens | undefined}\n | {status: 'multifactor', email: string}\n\nexport interface LoginOptions {\n username: string\n password: string\n /** hCaptcha token from the Riot login page. */\n captcha: string\n remember?: boolean\n}\n\nexport interface EstablishSessionOptions {\n /** Also look up the client version from valorant-api.com. Default false. */\n fetchClientVersion?: boolean\n}\n\n/** High-level flows that chain several auth endpoints and write their results into the context. */\nexport interface AuthFlows {\n /** Starts a login with credentials. Fragile: Riot requires a captcha. Prefer {@link reauthenticate} or `local.connect()`. */\n login(options: LoginOptions): Promise<LoginResult>\n submitMfa(code: string, rememberDevice?: boolean): Promise<LoginResult>\n /** Gets fresh tokens from the saved `ssid` cookie, then runs {@link establishSession}. */\n reauthenticate(options?: EstablishSessionOptions): Promise<AuthTokens>\n /** From the tokens in the context: entitlement token, puuid, region and shard. */\n establishSession(options?: EstablishSessionOptions): Promise<void>\n /** Reads the current client version from valorant-api.com and stores it. */\n fetchClientVersion(): Promise<string>\n}\n\n/** Extracts tokens from a `...#access_token=...&id_token=...` URL. */\nexport function parseAuthRedirect(location: string): AuthTokens | undefined {\n const fragment = location.split('#')[1]\n if(fragment === undefined) return undefined\n const params = new URLSearchParams(fragment)\n const accessToken = params.get('access_token')\n const idToken = params.get('id_token')\n if(accessToken === null || idToken === null) return undefined\n const expiresIn = Number(params.get('expires_in'))\n return {accessToken, idToken, expiresIn: Number.isFinite(expiresIn) && expiresIn > 0 ? expiresIn : undefined}\n}\n\nconst AUTH_COOKIES_BODY = {\n client_id: 'play-valorant-web-prod',\n nonce: '1',\n redirect_uri: 'https://playvalorant.com/opt_in',\n response_type: 'token id_token',\n scope: 'account openid'\n} as const\n\nexport function createAuthFlows(client: ValorantClient): AuthFlows {\n const ctx = client.context\n\n function applyTokens(tokens: AuthTokens | undefined): void {\n if(tokens) ctx.update({accessToken: tokens.accessToken, idToken: tokens.idToken})\n }\n\n function toLoginResult(data: unknown): LoginResult {\n const body = (data ?? {}) as {type?: string, success?: {redirect_url?: string}, multifactor?: {email?: string}}\n if(body.type === 'multifactor') return {status: 'multifactor', email: body.multifactor?.email ?? ''}\n const redirect = body.success?.redirect_url ?? JSON.stringify(data)\n const tokens = parseAuthRedirect(redirect.replaceAll('\\\\u0026', '&'))\n applyTokens(tokens)\n return {status: 'success', tokens}\n }\n\n return {\n async login(options) {\n await client.auth.cookies({body: AUTH_COOKIES_BODY})\n const data = await client.auth.request({\n body: {\n type: 'auth',\n language: 'en_US',\n remember: options.remember ?? true,\n riot_identity: {captcha: options.captcha, username: options.username, password: options.password}\n }\n })\n return toLoginResult(data)\n },\n\n async submitMfa(code, rememberDevice = true) {\n const data = await client.auth.multiFactor({body: {type: 'multifactor', multifactor: {otp: code, rememberDevice}}})\n return toLoginResult(data)\n },\n\n async reauthenticate(options) {\n const response = await client.send(e.cookieReauthEndpoint)\n const tokens = parseAuthRedirect(response.headers.get('location') ?? '')\n if(tokens === undefined) throw new ValorantError('Cookie reauthentication failed: the session cookies are missing or expired, log in again')\n applyTokens(tokens)\n await this.establishSession(options)\n return tokens\n },\n\n async establishSession(options) {\n const {entitlements_token} = await client.auth.entitlement()\n ctx.set('entitlementToken', entitlements_token)\n\n const info = await client.auth.playerInfo()\n ctx.set('puuid', info.sub)\n\n const geo = await client.auth.riotGeo({body: {id_token: ctx.require('idToken')}})\n ctx.applyAffinity(geo.affinities.live)\n\n if(options?.fetchClientVersion) await this.fetchClientVersion()\n },\n\n async fetchClientVersion() {\n const response = await client.transport({\n method: 'GET',\n url: 'https://valorant-api.com/v1/version',\n headers: {Accept: 'application/json'},\n signal: AbortSignal.timeout(15_000)\n })\n const version = (JSON.parse(response.text) as {data?: {riotClientVersion?: string}}).data?.riotClientVersion\n if(!version) throw new ValorantError('valorant-api.com did not return a client version')\n ctx.set('clientVersion', version)\n return version\n }\n }\n}\n","import type {ZodError} from 'zod'\n\n/** Base class of every error thrown by this library. */\nexport class ValorantError extends Error {\n constructor(message: string, options?: {cause?: unknown}) {\n super(message, options)\n this.name = new.target.name\n }\n}\n\n/** A required context value (token, shard, ...) was not set. */\nexport class MissingContextError extends ValorantError {\n constructor(readonly key: string) {\n super(`Context value \"${key}\" is required for this request but is not set`)\n }\n}\n\n/** A path parameter of the endpoint URL was not provided. */\nexport class MissingParameterError extends ValorantError {\n constructor(readonly parameter: string, readonly endpoint: string) {\n super(`Path parameter \"${parameter}\" is required for \"${endpoint}\"`)\n }\n}\n\n/** The request never produced an HTTP response (network failure, timeout, abort). */\nexport class ValorantNetworkError extends ValorantError {\n constructor(message: string, readonly url: string, options?: {cause?: unknown}) {\n super(message, options)\n }\n}\n\n/** A request body or response body did not match its schema. */\nexport class ValorantValidationError extends ValorantError {\n constructor(\n readonly target: 'request' | 'response',\n readonly endpoint: string,\n readonly issues: ZodError,\n readonly data: unknown\n ) {\n super(`Invalid ${target} for \"${endpoint}\": ${issues.issues.map(i => `${i.path.join('.') || '(root)'}: ${i.message}`).slice(0, 5).join('; ')}`)\n }\n}\n\n/** The server answered with a non-success status code. */\nexport class ValorantApiError extends ValorantError {\n readonly errorCode: string | undefined\n\n constructor(\n readonly status: number,\n readonly endpoint: string,\n readonly url: string,\n readonly body: unknown,\n readonly headers: Headers\n ) {\n const code = extractErrorCode(body)\n super(`${endpoint} failed with HTTP ${status}${code ? ` (${code})` : ''}`)\n this.errorCode = code\n }\n}\n\n/** HTTP 401, or HTTP 400 with BAD_CLAIMS: the access or entitlement token is no longer valid. */\nexport class ValorantAuthError extends ValorantApiError {}\n\n/** HTTP 429. */\nexport class ValorantRateLimitError extends ValorantApiError {\n constructor(status: number, endpoint: string, url: string, body: unknown, headers: Headers, readonly retryAfterMs: number | undefined) {\n super(status, endpoint, url, body, headers)\n }\n}\n\nfunction extractErrorCode(body: unknown): string | undefined {\n if(typeof body === 'object' && body !== null && 'errorCode' in body) {\n const code = (body as {errorCode: unknown}).errorCode\n return typeof code === 'string' ? code : undefined\n }\n return undefined\n}\n","import {MissingContextError} from './errors'\n\n/** Game shard, used in `pd`, `glz` and `shared` hosts. */\nexport type Shard = 'na' | 'eu' | 'ap' | 'kr'\n\n/** Game region (affinity), used in `glz` hosts. */\nexport type Region = 'na' | 'latam' | 'br' | 'eu' | 'ap' | 'kr'\n\n/** Everything the client needs that changes rarely: where to talk, and who we are. */\nexport interface ValorantState {\n shard: Shard\n region: Region\n puuid: string\n accessToken: string\n entitlementToken: string\n idToken: string\n pasToken: string\n /** Value of the `X-Riot-ClientVersion` header, e.g. `release-09.05-shipping-8-2570500`. */\n clientVersion: string\n /** Value of the `X-Riot-ClientPlatform` header (base64 JSON). */\n clientPlatform: string\n userAgent: string\n /** Cookies of `auth.riotgames.com`, name -> value. The `ssid` cookie enables re-authentication. */\n cookies: Record<string, string>\n /** Local Riot Client API, from the lockfile. */\n localPort: number\n localPassword: string\n}\n\nexport type ValorantStateKey = keyof ValorantState\n\nexport type ContextListener = (state: Readonly<ValorantState>, changed: readonly ValorantStateKey[]) => void\n\nconst DEFAULT_PLATFORM = btoa(JSON.stringify({\n platformType: 'PC',\n platformOS: 'Windows',\n platformOSVersion: '10.0.19042.1.256.64bit',\n platformChipset: 'Unknown'\n}))\n\nconst SECRET_KEYS: readonly ValorantStateKey[] = ['accessToken', 'entitlementToken', 'idToken', 'pasToken', 'cookies', 'localPassword']\n\nconst REGION_TO_SHARD: Record<Region, Shard> = {na: 'na', latam: 'na', br: 'na', eu: 'eu', ap: 'ap', kr: 'kr'}\n\nexport function isRegion(value: string): value is Region {\n return Object.hasOwn(REGION_TO_SHARD, value)\n}\n\nexport function shardForRegion(region: Region): Shard {\n return REGION_TO_SHARD[region]\n}\n\n/**\n * Mutable, observable store for the long-lived values shared by every request.\n * Share one instance between clients, or swap its content at any time with {@link replace} / {@link update}.\n */\nexport class ValorantContext {\n #state: Readonly<Partial<ValorantState>>\n readonly #listeners = new Set<ContextListener>()\n\n constructor(initial: Partial<ValorantState> = {}) {\n this.#state = Object.freeze({clientPlatform: DEFAULT_PLATFORM, ...stripUndefined(initial)})\n }\n\n get<K extends ValorantStateKey>(key: K): ValorantState[K] | undefined {\n return this.#state[key]\n }\n\n /** Like {@link get}, but throws {@link MissingContextError} when the value is not set. */\n require<K extends ValorantStateKey>(key: K): ValorantState[K] {\n const value = this.#state[key]\n if(value === undefined) throw new MissingContextError(key)\n return value\n }\n\n has(key: ValorantStateKey): boolean {\n return this.#state[key] !== undefined\n }\n\n /** Sets one value. `undefined` removes it. */\n set<K extends ValorantStateKey>(key: K, value: ValorantState[K] | undefined): void {\n this.update({[key]: value} as Partial<ValorantState>)\n }\n\n /** Merges a patch into the state. Keys set to `undefined` are removed. */\n update(patch: {[K in ValorantStateKey]?: ValorantState[K] | undefined}): void {\n this.#commit({...this.#state, ...patch})\n }\n\n /** Replaces the whole state. The default client platform is kept unless provided. */\n replace(next: Partial<ValorantState>): void {\n this.#commit({clientPlatform: DEFAULT_PLATFORM, ...next})\n }\n\n /** Removes everything except the default client platform. */\n clear(): void {\n this.replace({})\n }\n\n /** Sets region and the matching shard from a Riot affinity (`eu`, `latam`, ...). Unknown values are ignored. */\n applyAffinity(affinity: string): boolean {\n if(!isRegion(affinity)) return false\n this.update({region: affinity, shard: shardForRegion(affinity)})\n return true\n }\n\n setCookie(name: string, value: string | undefined): void {\n const cookies = {...this.#state.cookies}\n if(value === undefined) delete cookies[name]\n else cookies[name] = value\n this.update({cookies})\n }\n\n cookieHeader(): string | undefined {\n const entries = Object.entries(this.#state.cookies ?? {})\n return entries.length === 0 ? undefined : entries.map(([name, value]) => `${name}=${value}`).join('; ')\n }\n\n /** Immutable copy of the current state. Contains secrets. */\n snapshot(): Readonly<Partial<ValorantState>> {\n return this.#state\n }\n\n /** Calls `listener` after every change. Returns an unsubscribe function. */\n subscribe(listener: ContextListener): () => void {\n this.#listeners.add(listener)\n return () => void this.#listeners.delete(listener)\n }\n\n /** State with secrets masked, safe to log. */\n redacted(): Record<string, unknown> {\n const out: Record<string, unknown> = {...this.#state}\n for(const key of SECRET_KEYS) {\n if(out[key] !== undefined) out[key] = '[redacted]'\n }\n return out\n }\n\n toJSON(): Record<string, unknown> {\n return this.redacted()\n }\n\n [Symbol.for('nodejs.util.inspect.custom')](): Record<string, unknown> {\n return this.redacted()\n }\n\n #commit(next: Partial<ValorantState>): void {\n const previous = this.#state\n const clean = Object.freeze(stripUndefined(next))\n const keys = new Set([...Object.keys(previous), ...Object.keys(clean)]) as Set<ValorantStateKey>\n const changed = [...keys].filter(key => !sameValue(previous[key], clean[key]))\n if(changed.length === 0) return\n\n this.#state = clean\n for(const listener of [...this.#listeners]) listener(clean as Readonly<ValorantState>, changed)\n }\n}\n\nfunction stripUndefined<T extends object>(value: T): T {\n return Object.fromEntries(Object.entries(value).filter(([, v]) => v !== undefined)) as T\n}\n\nfunction sameValue(a: unknown, b: unknown): boolean {\n if(Object.is(a, b)) return true\n if(typeof a !== 'object' || typeof b !== 'object' || a === null || b === null) return false\n const aEntries = Object.entries(a)\n const bEntries = Object.entries(b)\n return aEntries.length === bEntries.length && aEntries.every(([key, value]) => Object.is((b as Record<string, unknown>)[key], value))\n}\n","export interface HttpRequest {\n method: string\n url: string\n headers: Record<string, string>\n body?: string\n signal?: AbortSignal\n}\n\nexport interface HttpResponse {\n status: number\n headers: Headers\n /** Every `Set-Cookie` header, unfolded. */\n setCookies: string[]\n text: string\n}\n\n/** Sends one HTTP request. Must not follow redirects. */\nexport type Transport = (request: HttpRequest) => Promise<HttpResponse>\n\nexport const fetchTransport: Transport = async request => {\n const response = await fetch(request.url, {\n method: request.method,\n headers: request.headers,\n body: request.body,\n signal: request.signal,\n redirect: 'manual'\n })\n return {\n status: response.status,\n headers: response.headers,\n setCookies: response.headers.getSetCookie(),\n text: await response.text()\n }\n}\n\n/**\n * Transport for the local Riot Client API, which serves a self-signed certificate.\n * Certificate checks are disabled for this transport only, and it refuses any host but loopback.\n */\nexport const localTransport: Transport = async request => {\n const {request: httpsRequest} = await import('node:https')\n const url = new URL(request.url)\n if(url.hostname !== '127.0.0.1' && url.hostname !== 'localhost') {\n throw new Error(`localTransport only talks to loopback hosts, got ${url.hostname}`)\n }\n\n return new Promise<HttpResponse>((resolve, reject) => {\n const req = httpsRequest(url, {\n method: request.method,\n headers: request.headers,\n rejectUnauthorized: false,\n signal: request.signal\n }, res => {\n const chunks: Buffer[] = []\n res.on('data', (chunk: Buffer) => chunks.push(chunk))\n res.on('error', reject)\n res.on('end', () => {\n const headers = new Headers()\n for(const [name, value] of Object.entries(res.headers)) {\n if(Array.isArray(value)) value.forEach(v => headers.append(name, v))\n else if(value !== undefined) headers.set(name, value)\n }\n resolve({\n status: res.statusCode ?? 0,\n headers,\n setCookies: res.headers['set-cookie'] ?? [],\n text: Buffer.concat(chunks).toString('utf8')\n })\n })\n })\n req.on('error', reject)\n req.end(request.body)\n })\n}\n","import {ZodError, type SafeParseReturnType, type ZodType} from 'zod'\n\nexport function parseBody(text: string): unknown {\n if(text === '') return undefined\n try {\n return JSON.parse(text)\n } catch {\n return text\n }\n}\n\n/** `safeParse` that also catches errors thrown by schema transforms. */\nexport function safeParse(schema: ZodType, data: unknown): SafeParseReturnType<unknown, unknown> {\n try {\n return schema.safeParse(data)\n } catch(thrown) {\n if(thrown instanceof ZodError) return {success: false, error: thrown}\n const message = thrown instanceof Error ? thrown.message : String(thrown)\n return {success: false, error: new ZodError([{code: 'custom', path: [], message: `Schema transform threw: ${message}`}])}\n }\n}\n","import type {ValorantContext} from '../context'\n\n/** Stores the name and value of every `Set-Cookie` line in the context. Expired and empty cookies are removed. */\nexport function storeCookies(context: ValorantContext, setCookies: readonly string[]): void {\n for(const line of setCookies) {\n const [pair = '', ...attributes] = line.split(';').map(part => part.trim())\n const separator = pair.indexOf('=')\n if(separator <= 0) continue\n\n const name = pair.slice(0, separator)\n const value = pair.slice(separator + 1)\n const expired = value === '' || attributes.some(a => a.toLowerCase() === 'max-age=0')\n context.setCookie(name, expired ? undefined : value)\n }\n}\n","export interface RetryOptions {\n /** Extra attempts after the first one. Default 2. */\n retries?: number\n baseDelayMs?: number\n maxDelayMs?: number\n}\n\nconst RETRYABLE_STATUS = new Set([429, 500, 502, 503, 504])\nconst IDEMPOTENT = new Set(['GET', 'HEAD', 'PUT', 'DELETE'])\n\nexport function isIdempotent(method: string): boolean {\n return IDEMPOTENT.has(method)\n}\n\n/** 429 is always safe to retry because the server did not process the request. */\nexport function isRetryableStatus(status: number, method: string): boolean {\n return RETRYABLE_STATUS.has(status) && (status === 429 || isIdempotent(method))\n}\n\nexport function parseRetryAfter(value: string | null): number | undefined {\n if(value === null) return undefined\n const seconds = Number(value)\n if(Number.isFinite(seconds)) return seconds * 1000\n const date = Date.parse(value)\n return Number.isNaN(date) ? undefined : Math.max(0, date - Date.now())\n}\n\nexport function backoff(attempt: number, retry: RetryOptions | undefined): number {\n const base = retry?.baseDelayMs ?? 500\n const max = retry?.maxDelayMs ?? 8000\n return Math.min(max, base * 2 ** attempt) * (0.5 + Math.random() / 2)\n}\n\nexport function sleep(ms: number, signal?: AbortSignal): Promise<void> {\n return new Promise(resolve => {\n const timer = setTimeout(done, ms)\n signal?.addEventListener('abort', done, {once: true})\n\n function done() {\n clearTimeout(timer)\n signal?.removeEventListener('abort', done)\n resolve()\n }\n })\n}\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {ValorantApiError, ValorantAuthError, ValorantRateLimitError} from '../errors'\nimport type {HttpRequest, HttpResponse} from '../http'\nimport {parseBody} from './body'\nimport {parseRetryAfter} from './retry'\n\n/** Maps a non-success response to the most specific error class. */\nexport function toApiError(endpoint: ValorantEndpoint, request: HttpRequest, response: HttpResponse): ValorantApiError {\n const body = parseBody(response.text)\n const args = [response.status, endpoint.name, request.url, body, response.headers] as const\n\n if(response.status === 429) return new ValorantRateLimitError(...args, parseRetryAfter(response.headers.get('retry-after')))\n\n const needsToken = endpoint.riotRequirements?.token === true\n const badClaims = typeof body === 'object' && body !== null && (body as {errorCode?: unknown}).errorCode === 'BAD_CLAIMS'\n if(needsToken && (response.status === 401 || (response.status === 400 && badClaims))) return new ValorantAuthError(...args)\n\n return new ValorantApiError(...args)\n}\n","import type {ValorantClient} from './client'\nimport type {ValorantContext} from './context'\nimport {isRegion, shardForRegion} from './context'\nimport {ValorantError} from './errors'\n\nexport interface Lockfile {\n name: string\n pid: number\n port: number\n password: string\n protocol: string\n}\n\nexport interface LocalConnectOptions {\n /** Defaults to `%LOCALAPPDATA%\\Riot Games\\Riot Client\\Config\\lockfile`. */\n lockfilePath?: string\n /** When VALORANT is not running, look the client version up on valorant-api.com. Default true. */\n fetchClientVersion?: boolean\n}\n\nexport interface LocalEvent {\n eventType: 'Create' | 'Update' | 'Delete'\n uri: string\n data: unknown\n}\n\n/** Live event stream of the local Riot Client (`wss://127.0.0.1:{port}`). Needs the optional `ws` package. */\nexport interface LocalEventStream {\n /** Receives every event of the subscribed names. Returns an unsubscribe function. */\n onEvent(listener: (name: string, event: LocalEvent) => void): () => void\n subscribe(eventName: string): void\n unsubscribe(eventName: string): void\n close(): void\n}\n\nexport interface LocalFlows {\n /** Reads the lockfile and fills the context: local port/password, tokens, puuid, region, shard and client version. */\n connect(options?: LocalConnectOptions): Promise<void>\n /** Opens the local websocket. Subscribe to `OnJsonApiEvent` for everything. */\n events(): Promise<LocalEventStream>\n}\n\nexport function parseLockfile(content: string): Lockfile {\n const [name, pid, port, password, protocol] = content.trim().split(':')\n if(!name || !pid || !port || !password || !protocol) throw new ValorantError('Malformed lockfile')\n return {name, pid: Number(pid), port: Number(port), password, protocol}\n}\n\nexport async function readLockfile(path?: string): Promise<Lockfile> {\n const {readFile} = await import('node:fs/promises')\n const {join} = await import('node:path')\n const file = path ?? join(process.env['LOCALAPPDATA'] ?? '', 'Riot Games', 'Riot Client', 'Config', 'lockfile')\n try {\n return parseLockfile(await readFile(file, 'utf8'))\n } catch(cause) {\n throw new ValorantError(`Could not read the Riot Client lockfile at \"${file}\". Is the Riot Client running?`, {cause})\n }\n}\n\nexport function createLocalFlows(client: ValorantClient): LocalFlows {\n const ctx = client.context\n\n return {\n async connect(options) {\n const lockfile = await readLockfile(options?.lockfilePath)\n ctx.update({localPort: lockfile.port, localPassword: lockfile.password})\n\n const tokens = await client.local.entitlementsToken()\n ctx.update({accessToken: tokens.accessToken, entitlementToken: tokens.token, puuid: tokens.subject})\n\n const sessions = await client.local.sessions()\n const valorant = Object.values(sessions).find(session => session.productId === 'valorant')\n if(valorant) {\n ctx.set('clientVersion', valorant.version)\n const region = launchArgument(valorant.launchConfiguration.arguments, 'ares-deployment')\n if(region !== undefined && isRegion(region)) ctx.update({region, shard: shardForRegion(region)})\n }\n\n // VALORANT is not running: fall back to the account affinity and the public version API.\n if(!ctx.has('region')) {\n const info = await client.auth.playerInfo()\n const affinity = Object.values(info.affinity ?? {}).find(isRegion)\n if(affinity !== undefined) ctx.applyAffinity(affinity)\n }\n if(!ctx.has('clientVersion') && options?.fetchClientVersion !== false) {\n await client.auth.fetchClientVersion().catch(() => undefined)\n }\n },\n\n async events() {\n return openEventStream(ctx)\n }\n }\n}\n\nfunction launchArgument(args: readonly string[], name: string): string | undefined {\n const prefix = `-${name}=`\n return args.find(arg => arg.startsWith(prefix))?.slice(prefix.length)\n}\n\nasync function openEventStream(ctx: ValorantContext): Promise<LocalEventStream> {\n let WebSocket: typeof import('ws').WebSocket\n try {\n WebSocket = (await import('ws')).WebSocket\n } catch(cause) {\n throw new ValorantError('The local event stream needs the optional \"ws\" package: npm install ws', {cause})\n }\n\n const socket = new WebSocket(`wss://127.0.0.1:${ctx.require('localPort')}`, {\n headers: {Authorization: `Basic ${btoa(`riot:${ctx.require('localPassword')}`)}`},\n rejectUnauthorized: false\n })\n const listeners = new Set<(name: string, event: LocalEvent) => void>()\n\n socket.on('message', raw => {\n const text = raw.toString()\n if(text === '') return\n const message = JSON.parse(text) as unknown\n if(!Array.isArray(message) || message[0] !== 8) return\n for(const listener of [...listeners]) listener(String(message[1]), message[2] as LocalEvent)\n })\n\n await new Promise<void>((resolve, reject) => {\n socket.once('open', resolve)\n socket.once('error', reject)\n })\n\n return {\n onEvent(listener) {\n listeners.add(listener)\n return () => void listeners.delete(listener)\n },\n subscribe: eventName => socket.send(JSON.stringify([5, eventName])),\n unsubscribe: eventName => socket.send(JSON.stringify([6, eventName])),\n close: () => socket.close()\n }\n}\n","import {typeToPrefix, type ValorantEndpoint} from 'valorant-api-types'\nimport type {ValorantContext} from './context'\nimport type {HttpRequest} from './http'\nimport {MissingParameterError} from './errors'\nimport {paramName, type CallOptions, type QueryInput} from './types'\n\nexport interface RequestInput extends CallOptions {\n params?: Record<string, string | undefined>\n query?: QueryInput\n body?: unknown\n}\n\nconst AUTH_HOST = 'auth.riotgames.com'\n\n/** Endpoints whose documented URL hardcodes a value that belongs to the context. */\nfunction applyQuirks(path: string, ctx: ValorantContext): string {\n const hardcoded = '/leaderboards/affinity/na/'\n return path.includes(hardcoded) ? path.replace(hardcoded, `/leaderboards/affinity/${ctx.require('shard')}/`) : path\n}\n\nfunction resolvePath(endpoint: ValorantEndpoint, input: RequestInput, ctx: ValorantContext): string {\n const suffix = applyQuirks(endpoint.suffix, ctx)\n return suffix.replace(/\\{([^}]+)\\}/g, (_, variable: string) => {\n const name = paramName(variable)\n const value = input.params?.[name] ?? (name === 'puuid' || name === 'region' ? ctx.require(name) : undefined)\n if(value === undefined) throw new MissingParameterError(name, endpoint.name)\n return encodeURIComponent(value)\n })\n}\n\nfunction resolveBase(endpoint: ValorantEndpoint, ctx: ValorantContext): string {\n switch(endpoint.type) {\n case 'pd':\n case 'shared':\n return typeToPrefix({type: endpoint.type, shard: ctx.require('shard')})\n case 'glz':\n return typeToPrefix({type: 'glz', shard: ctx.require('shard'), region: ctx.require('region')})\n case 'local':\n return typeToPrefix({type: 'local', port: ctx.require('localPort')})\n case 'other':\n return ''\n }\n}\n\nfunction appendQuery(url: string, query: QueryInput | undefined): string {\n if(!query) return url\n const params = new URLSearchParams()\n for(const [key, value] of Object.entries(query)) {\n if(value !== undefined && value !== null) params.append(key, String(value))\n }\n const encoded = params.toString()\n if(encoded === '') return url\n return url + (url.includes('?') ? '&' : '?') + encoded\n}\n\nfunction resolveHeaders(endpoint: ValorantEndpoint, input: RequestInput, ctx: ValorantContext, url: string): Record<string, string> {\n const headers: Record<string, string> = {Accept: 'application/json'}\n const need = endpoint.riotRequirements ?? {}\n\n const userAgent = ctx.get('userAgent')\n if(userAgent) headers['User-Agent'] = userAgent\n if(need.token) headers['Authorization'] = `Bearer ${ctx.require('accessToken')}`\n if(need.localAuth) headers['Authorization'] = `Basic ${btoa(`riot:${ctx.require('localPassword')}`)}`\n if(need.entitlement) headers['X-Riot-Entitlements-JWT'] = ctx.require('entitlementToken')\n if(need.clientVersion) headers['X-Riot-ClientVersion'] = ctx.require('clientVersion')\n if(need.clientPlatform) headers['X-Riot-ClientPlatform'] = ctx.require('clientPlatform')\n\n for(const [name, value] of endpoint.headers ?? []) headers[name] = value\n if(input.body !== undefined && !Object.keys(headers).some(h => h.toLowerCase() === 'content-type')) {\n headers['Content-Type'] = 'application/json'\n }\n\n if(new URL(url).hostname === AUTH_HOST) {\n const cookie = ctx.cookieHeader()\n if(cookie) headers['Cookie'] = cookie\n }\n\n return {...headers, ...input.headers}\n}\n\nexport function isAuthHost(url: string): boolean {\n return new URL(url).hostname === AUTH_HOST\n}\n\nexport function buildRequest(endpoint: ValorantEndpoint, input: RequestInput, ctx: ValorantContext): HttpRequest {\n const path = resolvePath(endpoint, input, ctx)\n const base = resolveBase(endpoint, ctx)\n const url = appendQuery(base + (base === '' ? path : path.replace(/^\\/+/, '')), input.query)\n\n const method = endpoint.method ?? 'GET'\n const headers = resolveHeaders(endpoint, input, ctx, url)\n const declaresJson = [...(endpoint.headers?.keys() ?? [])].some(h => h.toLowerCase() === 'content-type')\n const body = input.body !== undefined ? JSON.stringify(input.body) : (method !== 'GET' && declaresJson ? '{}' : undefined)\n\n return {method, url, headers, body}\n}\n","import type {z, ZodType} from 'zod'\nimport type {ValorantEndpoint} from 'valorant-api-types'\n\nexport type ValidationMode =\n /** Validate request bodies and responses, throw on mismatch. */\n | 'strict'\n /** Validate responses, report mismatches to the logger and return the raw data. */\n | 'loose'\n /** Return raw data untouched. */\n | 'off'\n\n/** Path parameters that fall back to the context when omitted. */\ntype ContextParam = 'puuid' | 'region'\n\ntype Replace<S extends string, From extends string, To extends string> =\n S extends `${infer A}${From}${infer B}` ? `${A}${To}${Replace<B, From, To>}` : S\n\ntype CamelWords<S extends string> = S extends `${infer H} ${infer T}` ? `${H}${Capitalize<CamelWords<T>>}` : S\n\n/** `pre-game match id` -> `preGameMatchId` */\nexport type ParamName<V extends string> = Uncapitalize<CamelWords<Replace<V, '-', ' '>>>\n\ntype PathVars<S extends string> = S extends `${string}{${infer V}}${infer R}` ? V | PathVars<R> : never\n\ntype ParamNames<E extends ValorantEndpoint> = ParamName<PathVars<E['suffix']>>\n\ntype RequiredParams<E extends ValorantEndpoint> = Exclude<ParamNames<E>, ContextParam>\n\ntype ParamsOption<E extends ValorantEndpoint> = [RequiredParams<E>] extends [never]\n ? {params?: {[K in ParamNames<E>]?: string}}\n : {params: {[K in RequiredParams<E>]: string} & {[K in Extract<ParamNames<E>, ContextParam>]?: string}}\n\ntype BodyOption<E extends ValorantEndpoint> = E extends {body: infer B extends ZodType}\n ? {body: z.input<B>}\n : {body?: undefined}\n\nexport type QueryValue = string | number | boolean | null | undefined\nexport type QueryInput = Record<string, QueryValue>\n\nexport interface CallOptions {\n signal?: AbortSignal\n timeoutMs?: number\n /** Extra headers, applied last. */\n headers?: Record<string, string>\n validation?: ValidationMode\n}\n\nexport type EndpointCallOptions<E extends ValorantEndpoint> =\n CallOptions & {query?: QueryInput} & ParamsOption<E> & BodyOption<E>\n\ntype SuccessCode = '200' | '201' | '202' | '204'\n\n/** Parsed (schema output) type of the success response. `unknown` when the endpoint has no documented response. */\nexport type EndpointResult<E extends ValorantEndpoint> = E extends {responses: infer R extends Record<string, ZodType>}\n ? [keyof R & SuccessCode] extends [never]\n ? unknown\n : {[K in keyof R & SuccessCode]: z.output<R[K]>}[keyof R & SuccessCode]\n : unknown\n\ntype HasRequiredInput<E extends ValorantEndpoint> =\n [RequiredParams<E>] extends [never] ? (E extends {body: ZodType} ? true : false) : true\n\nexport type EndpointMethod<E extends ValorantEndpoint> = HasRequiredInput<E> extends true\n ? (options: EndpointCallOptions<E>) => Promise<EndpointResult<E>>\n : (options?: EndpointCallOptions<E>) => Promise<EndpointResult<E>>\n\nexport interface ValorantResponse<T> {\n status: number\n headers: Headers\n data: T\n}\n\n/** Runtime twin of {@link ParamName}. */\nexport function paramName(variable: string): string {\n const [first = '', ...rest] = variable.replaceAll('-', ' ').split(' ')\n return first.charAt(0).toLowerCase() + first.slice(1) + rest.map(w => w.charAt(0).toUpperCase() + w.slice(1)).join('')\n}\n","import type {ValorantEndpoint} from 'valorant-api-types'\r\nimport {registry} from './api/registry'\r\nimport type {ValorantApi} from './api/types'\r\nimport {createAuthFlows} from './auth'\r\nimport {ValorantContext, type ValorantState} from './context'\r\nimport {unwrapEnvelope} from './envelope'\r\nimport {ValorantAuthError, ValorantNetworkError, ValorantRateLimitError, ValorantValidationError} from './errors'\r\nimport {fetchTransport, localTransport, type HttpResponse, type Transport} from './http'\r\nimport {parseBody, safeParse} from './internal/body'\r\nimport {storeCookies} from './internal/cookies'\r\nimport {toApiError} from './internal/failure'\r\nimport {backoff, isIdempotent, isRetryableStatus, sleep, type RetryOptions} from './internal/retry'\r\nimport {createLocalFlows} from './local'\r\nimport {buildRequest, isAuthHost, type RequestInput} from './request'\r\nimport type {EndpointCallOptions, EndpointResult, ValidationMode, ValorantResponse} from './types'\r\n\r\nexport type {RetryOptions} from './internal/retry'\r\nexport type {ValorantApi} from './api/types'\r\n\r\nexport interface Logger {\r\n warn(message: string, meta?: unknown): void\r\n debug?(message: string, meta?: unknown): void\r\n}\r\n\r\nexport interface ValorantClientOptions {\r\n /** An existing context to share, or initial values for a new one. */\r\n context?: ValorantContext | Partial<ValorantState>\r\n /** Default validation mode. Default `loose`. */\r\n validation?: ValidationMode\r\n /** Per-attempt timeout. Default 15000. */\r\n timeoutMs?: number\r\n /** Set to `false` to disable retries. */\r\n retry?: RetryOptions | false\r\n /**\r\n * Called once (single-flight) when a request fails because the tokens are no longer valid.\r\n * Update the context inside, the request is then retried. Example: `client => client.auth.reauthenticate()`.\r\n */\r\n refreshTokens?: (client: ValorantClient) => Promise<unknown>\r\n /** Transport for remote hosts. Defaults to `fetch`. */\r\n transport?: Transport\r\n /** Transport for the local Riot Client API. Defaults to a node:https transport that accepts its self-signed certificate. */\r\n localTransport?: Transport\r\n logger?: Logger\r\n}\r\n\r\nexport class ValorantClient {\r\n readonly context: ValorantContext\r\n readonly #options: ValorantClientOptions\r\n readonly #warned = new Set<string>()\r\n #refreshing: Promise<unknown> | undefined\r\n\r\n constructor(options: ValorantClientOptions = {}) {\r\n this.#options = options\r\n this.context = options.context instanceof ValorantContext ? options.context : new ValorantContext(options.context)\r\n Object.assign(this, this.#createApi())\r\n }\r\n\r\n /** Sends a request and returns status, headers and the parsed body. */\r\n async send<E extends ValorantEndpoint>(\r\n endpoint: E,\r\n options: EndpointCallOptions<E> = {} as EndpointCallOptions<E>\r\n ): Promise<ValorantResponse<EndpointResult<E>>> {\r\n const input = options as RequestInput\r\n const validation = input.validation ?? this.#options.validation ?? 'loose'\r\n\r\n if(validation === 'strict' && endpoint.body !== undefined && input.body !== undefined) {\r\n const parsed = endpoint.body.safeParse(input.body)\r\n if(!parsed.success) throw new ValorantValidationError('request', endpoint.name, parsed.error, input.body)\r\n }\r\n\r\n const retry = this.#options.retry === false ? undefined : (this.#options.retry ?? {})\r\n const maxRetries = retry ? (retry.retries ?? 2) : 0\r\n let refreshed = false\r\n\r\n for(let attempt = 0; ; attempt++) {\r\n const request = buildRequest(endpoint, input, this.context)\r\n const canRetry = attempt < maxRetries && input.signal?.aborted !== true\r\n let response: HttpResponse\r\n\r\n try {\r\n response = await this.#transportFor(endpoint)({...request, signal: this.#signal(input)})\r\n } catch(cause) {\r\n if(canRetry && isIdempotent(request.method) && input.signal?.aborted !== true) {\r\n await sleep(backoff(attempt, retry), input.signal)\r\n continue\r\n }\r\n throw new ValorantNetworkError(`${endpoint.name} could not reach ${new URL(request.url).host}`, request.url, {cause})\r\n }\r\n\r\n if(isAuthHost(request.url)) storeCookies(this.context, response.setCookies)\r\n this.#options.logger?.debug?.(`${request.method} ${request.url} -> ${response.status}`)\r\n\r\n if(response.status < 400) {\r\n return {\r\n status: response.status,\r\n headers: response.headers,\r\n data: this.#parseResponse(endpoint, response, validation) as EndpointResult<E>\r\n }\r\n }\r\n\r\n const error = toApiError(endpoint, request, response)\r\n\r\n if(error instanceof ValorantAuthError && this.#options.refreshTokens && !refreshed) {\r\n refreshed = true\r\n await this.#refreshOnce()\r\n continue\r\n }\r\n\r\n if(canRetry && isRetryableStatus(response.status, request.method)) {\r\n const retryAfter = error instanceof ValorantRateLimitError ? error.retryAfterMs : undefined\r\n await sleep(retryAfter ?? backoff(attempt, retry), input.signal)\r\n continue\r\n }\r\n\r\n throw error\r\n }\r\n }\r\n\r\n #createApi(): Record<string, Record<string, unknown>> {\r\n const api: Record<string, Record<string, unknown>> = {}\r\n for(const [group, endpoints] of Object.entries(registry)) {\r\n api[group] = Object.fromEntries(Object.entries(endpoints).map(([name, endpoint]) => [\r\n name,\r\n async (options?: unknown) => (await this.send(endpoint as ValorantEndpoint, options as never)).data\r\n ]))\r\n }\r\n Object.assign(api['auth']!, createAuthFlows(this))\r\n Object.assign(api['local']!, createLocalFlows(this))\r\n return api\r\n }\r\n\r\n #transportFor(endpoint: ValorantEndpoint): Transport {\r\n if(endpoint.type === 'local') return this.#options.localTransport ?? localTransport\r\n return this.#options.transport ?? fetchTransport\r\n }\r\n\r\n /** Transport used for requests to arbitrary remote hosts. */\r\n get transport(): Transport {\r\n return this.#options.transport ?? fetchTransport\r\n }\r\n\r\n #signal(input: RequestInput): AbortSignal {\r\n const timeout = AbortSignal.timeout(input.timeoutMs ?? this.#options.timeoutMs ?? 15_000)\r\n return input.signal ? AbortSignal.any([input.signal, timeout]) : timeout\r\n }\r\n\r\n #parseResponse(endpoint: ValorantEndpoint, response: HttpResponse, validation: ValidationMode): unknown {\r\n const data = unwrapEnvelope(endpoint, parseBody(response.text))\r\n const schema = endpoint.responses?.[String(response.status)]\r\n if(schema === undefined || validation === 'off') return data\r\n\r\n const parsed = safeParse(schema, data)\r\n if(parsed.success) return parsed.data\r\n if(validation === 'strict') throw new ValorantValidationError('response', endpoint.name, parsed.error, data)\r\n\r\n if(!this.#warned.has(endpoint.name)) {\r\n this.#warned.add(endpoint.name)\r\n this.#options.logger?.warn(`Response of \"${endpoint.name}\" does not match its schema, returning raw data`, parsed.error.issues.slice(0, 5))\r\n }\r\n return data\r\n }\r\n\r\n #refreshOnce(): Promise<unknown> {\r\n this.#refreshing ??= Promise.resolve(this.#options.refreshTokens!(this)).finally(() => {\r\n this.#refreshing = undefined\r\n })\r\n return this.#refreshing\r\n }\r\n}\r\n\r\nexport interface ValorantClient extends ValorantApi {}\r\n"],"mappings":"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","names":["import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","e","import_valorant_api_types","e","import_valorant_api_types","e","import_valorant_api_types","e","import_valorant_api_types","e","import_valorant_api_types","e","import_valorant_api_types","e","import_valorant_api_types","e","import_valorant_api_types","e","import_zod","import_zod","endpoint","import_zod","contracts","import_valorant_api_types","endpoint","e","import_zod","text","endpoint","text","import_valorant_api_types","endpoint","query","endpoint"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/api/groups/pvp.ts","../src/endpoints/riot/account.ts","../src/endpoints/riot/shared.ts","../src/endpoints/riot/agentSelect.ts","../src/endpoints/riot/chat.ts","../src/endpoints/riot/contracts.ts","../src/endpoints/riot/currentGame.ts","../src/endpoints/riot/esports.ts","../src/endpoints/riot/local.ts","../src/endpoints/riot/party.ts","../src/endpoints/riot/pregame.ts","../src/endpoints/riot/premier.ts","../src/endpoints/riot/presence.ts","../src/internal/base64.ts","../src/endpoints/riot/pvp.ts","../src/endpoints/riot/restrictions.ts","../src/endpoints/riot/store.ts","../src/endpoints/riot/storefront.ts","../src/endpoints/riot/voice.ts","../src/api/groups/party.ts","../src/api/groups/store.ts","../src/api/groups/pregame.ts","../src/api/groups/currentGame.ts","../src/api/groups/contracts.ts","../src/api/groups/local.ts","../src/api/groups/chat.ts","../src/api/groups/voice.ts","../src/api/groups/premier.ts","../src/api/groups/esports.ts","../src/api/groups/restrictions.ts","../src/api/groups/account.ts","../src/api/groups/auth.ts","../src/endpoints/catalog/index.ts","../src/endpoints/catalog/factory.ts","../src/envelope.ts","../src/endpoints/catalog/schemas.ts","../src/api/groups/catalog.ts","../src/api/registry.ts","../src/auth.ts","../src/errors.ts","../src/context.ts","../src/http.ts","../src/internal/body.ts","../src/internal/cookies.ts","../src/internal/retry.ts","../src/internal/failure.ts","../src/internal/normalize.ts","../src/lobby/mappings.ts","../src/lobby/flows.ts","../src/internal/gamelog.ts","../src/local.ts","../src/pregame/flows.ts","../src/request.ts","../src/types.ts","../src/client.ts","../src/pregame/agents.ts"],"sourcesContent":["export {ValorantClient} from './client'\r\nexport type {Logger, RetryOptions, ValorantApi, ValorantClientOptions} from './client'\r\n\r\nexport {ValorantContext, isRegion, shardForRegion} from './context'\r\nexport type {ContextListener, Region, Shard, ValorantState, ValorantStateKey} from './context'\r\n\r\nexport {\r\n MissingContextError,\r\n MissingParameterError,\r\n ValorantApiError,\r\n ValorantAuthError,\r\n ValorantError,\r\n ValorantNetworkError,\r\n ValorantRateLimitError,\r\n ValorantValidationError\r\n} from './errors'\r\n\r\nexport {parseAuthRedirect} from './auth'\r\nexport type {AuthFlows, AuthTokens, EstablishSessionOptions, LoginOptions, LoginResult} from './auth'\r\n\r\nexport {\r\n CustomGameMap,\r\n CustomGameMode,\r\n CustomGameTeam,\r\n MEMBERSHIP_KEY,\r\n customGameMapName,\r\n customGameModeName,\r\n teamOfPlayer\r\n} from './lobby/mappings'\r\nexport type {CustomGameRules} from './lobby/mappings'\r\nexport type {AssignOptions, CustomGameSettings, LobbyOptions, LobbyTarget, PartyFlows} from './lobby/flows'\r\nexport type {CustomGameParty} from './endpoints/riot/party'\r\n\r\nexport {Agent, agentName} from './pregame/agents'\r\nexport type {AgentSelectState, PickAgentOptions, PregameFlows} from './pregame/flows'\r\n\r\nexport {parseLockfile, readLockfile} from './local'\r\nexport type {LocalConnectOptions, LocalEvent, LocalEventStream, LocalFlows, Lockfile} from './local'\r\n\r\nexport {fetchTransport, localTransport} from './http'\r\nexport type {HttpRequest, HttpResponse, Transport} from './http'\r\n\r\nexport {registry} from './api/registry'\r\nexport type {\r\n CallOptions,\r\n EndpointCallOptions,\r\n EndpointMethod,\r\n EndpointResult,\r\n QueryInput,\r\n ValidationMode,\r\n ValorantResponse\r\n} from './types'\r\n\r\n// Schemas and response types of every endpoint, from the documentation project.\r\nexport * from 'valorant-api-types'\r\n","import {endpoints as e} from 'valorant-api-types'\r\nimport * as x from '../../endpoints/riot'\r\n\r\nexport interface PvpGroup {\r\n readonly content: typeof e.fetchContentEndpoint\r\n readonly accountXp: typeof e.accountXPEndpoint\r\n readonly setPlayerLoadout: typeof e.setPlayerLoadoutEndpoint\r\n readonly playerMmr: typeof e.playerMMREndpoint\r\n readonly matchHistory: typeof e.matchHistoryEndpoint\r\n readonly matchDetails: typeof e.matchDetailsEndpoint\r\n readonly competitiveUpdates: typeof e.competitiveUpdatesEndpoint\r\n readonly leaderboard: typeof e.leaderboardEndpoint\r\n readonly penalties: typeof e.penaltiesEndpoint\r\n readonly config: typeof x.configEndpoint\r\n readonly nameService: typeof e.nameServiceEndpoint\r\n readonly playerLoadoutV3: typeof x.playerLoadoutV3Endpoint\r\n}\r\n\r\nexport const pvp: PvpGroup = {\r\n content: e.fetchContentEndpoint,\r\n accountXp: e.accountXPEndpoint,\r\n setPlayerLoadout: e.setPlayerLoadoutEndpoint,\r\n playerMmr: e.playerMMREndpoint,\r\n matchHistory: e.matchHistoryEndpoint,\r\n matchDetails: e.matchDetailsEndpoint,\r\n competitiveUpdates: e.competitiveUpdatesEndpoint,\r\n leaderboard: e.leaderboardEndpoint,\r\n penalties: e.penaltiesEndpoint,\r\n config: x.configEndpoint,\r\n nameService: e.nameServiceEndpoint,\r\n playerLoadoutV3: x.playerLoadoutV3Endpoint\r\n}\r\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\nimport {player} from './shared'\n\nexport const dailyTicketEndpoint = {\n name: 'Daily Ticket',\n description: 'Daily ticket rewards and the matches already counted.',\n category: 'Account Endpoints',\n type: 'pd',\n suffix: 'daily-ticket/v1/{puuid}',\n riotRequirements: player,\n responses: {'200': z.object({\n Version: z.number(),\n DailyRewards: z.object({\n RemainingLifetimeSeconds: z.number(),\n BonusMilestonesPending: z.number(),\n Milestones: z.array(z.object({\n Progress: z.number(),\n BonusApplied: z.boolean()\n }))\n }),\n ProcessedMatches: z.array(z.object({\n ID: z.string(),\n CreatedAt: z.string(),\n DailyExpireTime: z.string(),\n PreviousDailyExpireTime: z.string(),\n ProgressBefore: z.number(),\n ProgressAfter: z.number(),\n XP: z.number(),\n SoftCurrency: z.number(),\n WasPenalized: z.boolean(),\n BonusesApplied: z.number(),\n DailyBonusState: z.array(z.boolean())\n }))\n })}\n} as const satisfies ValorantEndpoint\n\nexport const dailyTicketQueueConfigEndpoint = {\n name: 'Daily Ticket Queue Config',\n description: 'Which queues count for the daily ticket.',\n category: 'Account Endpoints',\n type: 'pd',\n suffix: 'daily-ticket/v1/queue-config',\n riotRequirements: player,\n responses: {'200': z.object({\n default: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n queueOverrides: z.object({\n abilitydraftarena: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n competitive: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_abilitydraftarena: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_competitive: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_dodgeball: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_fortcollins: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_hurm: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_newmap: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_skirmish2v2: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_skirmishascension1v1: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_skirmishascension2v2: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_snowball: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_spikerush: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_swiftplay: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_unrated: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n console_valaram: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n dodgeball: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n fortcollins: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n ggteam: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n hurm: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n newmap: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n premier: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n skirmish2v2: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n skirmishascension1v1: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n skirmishascension2v2: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n snowball: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n spikerush: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n swiftplay: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n unrated: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n }),\n valaram: z.object({\n flatProgressPerMatch: z.number(),\n progressPerRoundWin: z.boolean()\n })\n })\n })}\n} as const satisfies ValorantEndpoint\n\nexport const favoritesEndpoint = {\n name: 'Favorites',\n description: 'Favorited store content of the player.',\n category: 'Account Endpoints',\n type: 'pd',\n suffix: 'favorites/v1/players/{puuid}/favorites',\n riotRequirements: player,\n responses: {'200': z.object({\n Subject: z.string(),\n FavoritedContent: z.record(z.string(), z.object({\n FavoriteID: z.string(),\n ItemID: z.string()\n }))\n })}\n} as const satisfies ValorantEndpoint\n\nexport const goldstarsEndpoint = {\n name: 'Goldstars',\n description: 'Goldstar definitions. Field names are obfuscated by the game.',\n category: 'Account Endpoints',\n type: 'pd',\n suffix: 'goldstars/v1/goldstars',\n riotRequirements: player,\n responses: {'200': z.array(z.object({\n id: z.string(),\n tempT: z.number()\n }))}\n} as const satisfies ValorantEndpoint\n\nexport const goldstarsPlayerEndpoint = {\n name: 'Goldstars Player',\n description: 'Goldstars of a player. Field names are obfuscated by the game.',\n category: 'Account Endpoints',\n type: 'pd',\n suffix: 'goldstars/v1/players/{puuid}',\n riotRequirements: player,\n responses: {'200': z.object({\n puuid: z.string(),\n version: z.number(),\n tempS: z.object({\n \"00000000-0000-0000-0000-000000000000\": z.object({\n tempS: z.string(),\n tempA: z.record(z.string(), z.object({\n id: z.string(),\n tempC: z.number(),\n tempB: z.number()\n }))\n }),\n \"8102cd81-43a0-d0d7-bd59-47b8fe9bed1b\": z.object({\n tempS: z.string(),\n tempA: z.record(z.string(), z.object({\n id: z.string(),\n tempC: z.number(),\n tempB: z.number()\n }))\n })\n }),\n tempM: z.array(z.object({\n id: z.string(),\n tempG: z.number(),\n tempP: z.record(z.string(), z.object({\n tempA: z.record(z.string(), z.object({\n id: z.string(),\n tempV: z.number(),\n tempB: z.boolean()\n }))\n }))\n }))\n })}\n} as const satisfies ValorantEndpoint\n\nexport const bloomlineQueuesEndpoint = {\n name: 'Bloomline Queues',\n description: 'Queues handled by the `bloomline` service. The purpose of the service is not documented.',\n category: 'Account Endpoints',\n type: 'pd',\n suffix: 'bloomline/v0/config/valid-queues',\n riotRequirements: player,\n responses: {'200': z.object({\n ProcessedQueues: z.array(z.string()),\n PerformanceScoreQueues: z.array(z.string())\n })}\n} as const satisfies ValorantEndpoint\n\nexport const bloomlinePlayerEndpoint = {\n name: 'Bloomline Player',\n description: 'Per-player data of the `bloomline` service. The purpose of the service is not documented.',\n category: 'Account Endpoints',\n type: 'pd',\n suffix: 'bloomline/v0/players/{puuid}',\n riotRequirements: player,\n responses: {'200': z.object({\n Subject: z.string(),\n Bonsais: z.array(z.object({\n BonsaiID: z.string(),\n HypeID: z.string().optional(),\n BackgroundID: z.string().optional(),\n ClipID: z.string().optional(),\n BorderID: z.string().optional(),\n Flourish: z.object({\n ShortLevel: z.number().optional(),\n PreviousShortLevel: z.number().optional(),\n LongLevel: z.number().optional(),\n FlourishID: z.string().optional(),\n Points: z.number().optional(),\n PointsVersion: z.number().optional()\n }),\n TrackProgressList: z.array(z.object({\n TrackID: z.string(),\n TrackLevel: z.number().optional()\n }))\n })),\n LongGroupVersion: z.number()\n })}\n} as const satisfies ValorantEndpoint\n","import type {ValorantEndpoint} from 'valorant-api-types'\r\nimport type {ZodType} from 'zod'\r\n\r\n/** Requirements of every player-scoped request. */\r\nexport const player = {token: true, entitlement: true, clientVersion: true, clientPlatform: true} as const\r\n\r\nexport type WithResponse<E extends ValorantEndpoint, S extends ZodType> = Omit<E, 'responses'> & {readonly responses: {readonly '200': S}}\r\n\r\n/** The same endpoint with a response schema that matches the current game. */\r\nexport function withResponse<E extends ValorantEndpoint, S extends ZodType>(endpoint: E, schema: S): WithResponse<E, S> {\r\n return {...endpoint, responses: {'200': schema}}\r\n}\r\n\r\nexport type OnSharedHost<E extends ValorantEndpoint> = Omit<E, 'type'> & {readonly type: 'shared'}\r\n\r\n/** The same endpoint, served by the `shared` host. */\r\nexport function onSharedHost<E extends ValorantEndpoint>(endpoint: E): OnSharedHost<E> {\r\n return {...endpoint, type: 'shared'}\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\r\nimport {z} from 'zod'\r\nimport {withResponse} from './shared'\r\n\r\n/** The agent select after a pick. `PregameState` is `character_select_finished` once every player has locked. */\r\nconst agentSelect = z.object({\r\n ID: z.string(),\r\n Version: z.number(),\r\n Teams: z.array(z.object({\r\n TeamID: z.string(),\r\n TeamNumber: z.number(),\r\n Players: z.array(z.object({\r\n Subject: z.string(),\r\n CharacterID: z.string(),\r\n CharacterSelectionState: z.string(),\r\n PregamePlayerState: z.string(),\r\n CompetitiveTier: z.number(),\r\n PlayerIdentity: z.object({\r\n Subject: z.string(),\r\n PlayerCardID: z.string(),\r\n PlayerTitleID: z.string(),\r\n AccountLevel: z.number(),\r\n PreferredLevelBorderID: z.string(),\r\n Incognito: z.boolean(),\r\n HideAccountLevel: z.boolean()\r\n }),\r\n SeasonalBadgeInfo: z.object({\r\n SeasonID: z.string(),\r\n NumberOfWins: z.number(),\r\n Rank: z.number(),\r\n LeaderboardRank: z.number()\r\n }),\r\n IsCaptain: z.boolean(),\r\n PlatformType: z.string(),\r\n PremierPrestige: z.object({})\r\n }))\r\n })),\r\n AllyTeam: z.object({\r\n TeamID: z.string(),\r\n TeamNumber: z.number(),\r\n Players: z.array(z.object({\r\n Subject: z.string(),\r\n CharacterID: z.string(),\r\n CharacterSelectionState: z.string(),\r\n PregamePlayerState: z.string(),\r\n CompetitiveTier: z.number(),\r\n PlayerIdentity: z.object({\r\n Subject: z.string(),\r\n PlayerCardID: z.string(),\r\n PlayerTitleID: z.string(),\r\n AccountLevel: z.number(),\r\n PreferredLevelBorderID: z.string(),\r\n Incognito: z.boolean(),\r\n HideAccountLevel: z.boolean()\r\n }),\r\n SeasonalBadgeInfo: z.object({\r\n SeasonID: z.string(),\r\n NumberOfWins: z.number(),\r\n Rank: z.number(),\r\n LeaderboardRank: z.number()\r\n }),\r\n IsCaptain: z.boolean(),\r\n PlatformType: z.string(),\r\n PremierPrestige: z.object({})\r\n }))\r\n }),\r\n EnemyTeamSize: z.number(),\r\n EnemyTeamLockCount: z.number(),\r\n PregameState: z.string(),\r\n LastUpdated: z.string(),\r\n MapID: z.string(),\r\n CastedVotes: z.object({}),\r\n MapSelectStep: z.number(),\r\n Team1: z.string(),\r\n GamePodID: z.string(),\r\n Mode: z.string(),\r\n VoiceSessionID: z.string(),\r\n MUCName: z.string(),\r\n TeamMatchToken: z.string(),\r\n QueueID: z.string(),\r\n ProvisioningFlowID: z.string(),\r\n IsRanked: z.boolean(),\r\n PhaseTimeRemainingNS: z.number(),\r\n StepTimeRemainingNS: z.number(),\r\n altModesFlagADA: z.boolean(),\r\n GameRules: z.object({\r\n AccoladesEnabled: z.string(),\r\n AllowGameModifiers: z.string(),\r\n IsOvertimeWinByTwo: z.string(),\r\n PlayOutAllRounds: z.string(),\r\n ReplayRecordMatch: z.string(),\r\n SkipMatchHistory: z.string(),\r\n TournamentMode: z.string()\r\n })\r\n})\r\n\r\nexport const selectCharacterEndpoint = withResponse(e.selectCharacterEndpoint, agentSelect)\r\n\r\nexport const lockCharacterEndpoint = withResponse(e.lockCharacterEndpoint, agentSelect)\r\n","import {endpoints as e, type ValorantEndpoint} from 'valorant-api-types'\r\nimport {z} from 'zod'\r\nimport {withResponse} from './shared'\r\n\r\nexport const chatSettingsEndpoint = {\r\n name: 'Settings',\r\n description: 'Get chat settings',\r\n category: 'Local Endpoints - Chat',\r\n type: 'local',\r\n suffix: 'chat/v1/settings',\r\n riotRequirements: {localAuth: true},\r\n responses: {'200': z.object({\r\n bounceDockIconEnabled: z.boolean(),\r\n \"chat-status-message\": z.string(),\r\n chatFilterDisabled: z.boolean(),\r\n chatGBG: z.boolean(),\r\n chatGroupDiscord: z.boolean(),\r\n chatGroupMobile: z.boolean(),\r\n chatGroupOffline: z.boolean(),\r\n chatWindow: z.object({\r\n detached: z.boolean(),\r\n height: z.number(),\r\n left: z.number(),\r\n top: z.number(),\r\n width: z.number()\r\n }),\r\n chatWindowDockedHeight: z.number(),\r\n \"closed-conversations\": z.object({\r\n \"ff822fdf-71a3-54ac-814e-7ac752ba428d@eu1.pvp.net\": z.number()\r\n }),\r\n friendRequestToastsDisabled: z.boolean(),\r\n \"hidden-conversations\": z.object({}),\r\n linkClickWarningEnabled: z.boolean(),\r\n messageNotificationsEnabled: z.boolean(),\r\n moreUnreadsEnabled: z.boolean(),\r\n \"muted-conversations\": z.object({}),\r\n recentlyPlayedFirstOpen: z.boolean(),\r\n recentlyPlayedOpen: z.boolean(),\r\n \"roster-group-collapsed\": z.object({}),\r\n showWhenTypingEnabled: z.boolean(),\r\n sortBy: z.string(),\r\n usePlayerPreferences: z.boolean()\r\n })}\r\n} as const satisfies ValorantEndpoint\r\n\r\nexport const chatTournamentInfoEndpoint = {\r\n name: 'Tournament Info',\r\n description: 'Get in-tournament conversations',\r\n category: 'Local Endpoints - Chat',\r\n type: 'local',\r\n suffix: 'chat/v6/conversations/ares-tournaments',\r\n riotRequirements: {localAuth: true},\r\n responses: {'200': z.object({})}\r\n} as const satisfies ValorantEndpoint\r\n\r\nexport const chatParticipantsEndpoint = withResponse(e.chatParticipantsEndpoint, z.object({\r\n participants: z.array(z.object({\r\n activePlatform: z.string().nullable(),\r\n cid: z.string(),\r\n game_name: z.string(),\r\n game_tag: z.string(),\r\n isInteractionAllowed: z.boolean(),\r\n muted: z.boolean(),\r\n name: z.string(),\r\n pid: z.string(),\r\n puuid: z.string(),\r\n region: z.string()\r\n }))\r\n}))\r\n","import {endpoints as e, type ValorantEndpoint} from 'valorant-api-types'\r\nimport {z} from 'zod'\r\nimport {player, withResponse} from './shared'\r\n\r\nexport const activeRecruitmentEventEndpoint = {\r\n name: 'Active Recruitment Event',\r\n description: 'The current agent recruitment event.',\r\n category: 'Contract Endpoints',\r\n type: 'pd',\r\n suffix: 'contracts/v1/agents/activeRecruitmentEvent',\r\n riotRequirements: player,\r\n responses: {'200': z.object({\r\n AgentID: z.string(),\r\n CounterID: z.string(),\r\n MilestoneThreshold: z.number(),\r\n StartDate: z.string(),\r\n EndDate: z.string(),\r\n IsActive: z.boolean(),\r\n includedPlatforms: z.object({\r\n console: z.object({\r\n developmentOnly: z.boolean()\r\n }),\r\n mobile: z.object({\r\n developmentOnly: z.boolean()\r\n }),\r\n pc: z.object({\r\n developmentOnly: z.boolean()\r\n })\r\n })\r\n })}\r\n} as const satisfies ValorantEndpoint\r\n\r\nexport const contractsEndpoint = withResponse(e.contractsEndpoint, z.object({\r\n Version: z.number(),\r\n Subject: z.string(),\r\n Contracts: z.array(z.object({\r\n ContractDefinitionID: z.string(),\r\n ContractProgression: z.object({\r\n Version: z.number(),\r\n TotalProgressionEarned: z.number()\r\n }),\r\n ProgressionLevelReached: z.number(),\r\n ProgressionTowardsNextLevel: z.number()\r\n })),\r\n ActiveRecruitmentEventProgress: z.object({\r\n AgentID: z.string(),\r\n Version: z.number(),\r\n CounterID: z.string(),\r\n ProgressionEarned: z.number()\r\n }),\r\n Missions: z.array(z.object({\r\n ID: z.string(),\r\n Objectives: z.record(z.string(), z.number()),\r\n Complete: z.boolean(),\r\n ExpirationTime: z.string()\r\n })),\r\n MissionMetadata: z.object({\r\n WeeklyCheckpoint: z.string(),\r\n WeeklyRefillTime: z.string()\r\n }),\r\n BTEMilestone: z.number()\r\n}))\r\n","import {endpoints as e} from 'valorant-api-types'\nimport {z} from 'zod'\nimport {withResponse} from './shared'\n\nexport const currentGameLoadoutsEndpoint = withResponse(e.currentGameLoadoutsEndpoint, z.object({\n Loadouts: z.array(z.object({\n CharacterID: z.string(),\n Loadout: z.object({\n Subject: z.string(),\n Expressions: z.object({\n AESSelections: z.array(z.object({\n AssetID: z.string(),\n TypeID: z.string()\n }))\n }),\n DynamicOptions: z.object({}),\n Items: z.record(z.string(), z.object({\n ID: z.string(),\n TypeID: z.string(),\n Sockets: z.record(z.string(), z.object({\n ID: z.string(),\n Item: z.object({\n ID: z.string(),\n TypeID: z.string()\n })\n }))\n }))\n }),\n Subject: z.string()\n }))\n}))\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\nimport {player} from './shared'\n\nexport const esportsLiveEventTimesEndpoint = {\n name: 'Esports Live Event Times',\n description: 'Live and upcoming esports matches, pick blocks and tournaments.',\n category: 'Esports Endpoints',\n type: 'pd',\n suffix: 'esports-service/v2/liveEventTimes',\n riotRequirements: player,\n responses: {'200': z.object({\n Tournaments: z.array(z.object({\n ID: z.string(),\n StartTimeUTC: z.string(),\n EndTimeUTC: z.string()\n }))\n })}\n} as const satisfies ValorantEndpoint\n\nexport const esportsUpcomingMatchesEndpoint = {\n name: 'Esports Upcoming Matches',\n description: 'Upcoming esports matches.',\n category: 'Esports Endpoints',\n type: 'pd',\n suffix: 'esports-service/v2/upcomingMatches',\n riotRequirements: player,\n responses: {'200': z.object({})}\n} as const satisfies ValorantEndpoint\n\nexport const esportsPickemLeaguesEndpoint = {\n name: 'Esports Pickem Leagues',\n description: 'Pick\\'em leagues.',\n category: 'Esports Endpoints',\n type: 'pd',\n suffix: 'esports-service/v1/pickem/leagues',\n riotRequirements: player,\n responses: {'200': z.object({\n PickemLeagues: z.array(z.object({\n LeagueID: z.string(),\n EldsLeagueID: z.string(),\n Tournament: z.object({\n ID: z.string(),\n EldsTournamentID: z.string(),\n LeagueID: z.string(),\n PickBlocks: z.array(z.object({\n ID: z.string(),\n EldsTournamentID: z.string(),\n Slug: z.object({\n Slug: z.string()\n }),\n PickOpenTime: z.string(),\n PickCloseTime: z.string(),\n State: z.string(),\n OpenLevel: z.string(),\n BlockType: z.string(),\n PickBlockElements: z.array(z.object({\n ID: z.string(),\n PickBlockID: z.string(),\n Section: z.object({\n ID: z.string(),\n EldsSectionID: z.string(),\n CorrectPick: z.object({\n Entries: z.array(z.object({\n Index: z.number(),\n Correctness: z.string(),\n ParticipantID: z.string(),\n Points: z.number(),\n Rank: z.number()\n })).nullable()\n })\n }),\n Match: z.object({\n ID: z.string(),\n EldsMatchID: z.string(),\n BaselinePoints: z.number(),\n CorrectPick: z.string(),\n ResultState: z.string()\n }),\n PickOpenTime: z.string(),\n PickCloseTime: z.string(),\n State: z.string(),\n DisplayOrder: z.number()\n })),\n CompletionStatus: z.string()\n })),\n Participants: z.array(z.object({\n ID: z.string(),\n EldsTeamID: z.string()\n }))\n }),\n Published: z.boolean()\n }))\n })}\n} as const satisfies ValorantEndpoint\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\n\nexport const localLocaleEndpoint = {\n name: 'Locale',\n description: 'Get the current locale',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'riotclient/product-locales/products/valorant/patchlines/live',\n riotRequirements: {localAuth: true},\n responses: {'200': z.string()}\n} as const satisfies ValorantEndpoint\n\nexport const localAvailableLocalesEndpoint = {\n name: 'Available Locales',\n description: 'Get available locales',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'rnet-product-registry/v4/available-product-locales/products/valorant/patchlines/live',\n riotRequirements: {localAuth: true},\n responses: {'200': z.array(z.string())}\n} as const satisfies ValorantEndpoint\n\nexport const localRiotStatusEndpoint = {\n name: 'Riot Status',\n description: 'Get game status information such as maintenances and incidents Response is an escaped JSON string.',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'riot-status/v1/products/valorant/patchlines/live/deployments/{region}',\n riotRequirements: {localAuth: true},\n responses: {'200': z.string()}\n} as const satisfies ValorantEndpoint\n\nexport const localAccessTokenEndpoint = {\n name: 'Access Token',\n description: 'Gets a Riot access token',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'rso-auth/v1/authorization/access-token',\n riotRequirements: {localAuth: true},\n responses: {'200': z.object({\n clientId: z.string(),\n expiry: z.number(),\n scopes: z.array(z.string()),\n token: z.string()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const localPluginStatusEndpoint = {\n name: 'Plugin Status',\n description: 'Gets plugin status',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'plugin-manager/v1/status',\n riotRequirements: {localAuth: true},\n responses: {'200': z.object({\n state: z.string()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const localRmsSessionEndpoint = {\n name: 'Rms Session',\n description: 'Gets the token for Riot Messaging Service',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'riot-messaging-service/v1/session',\n riotRequirements: {localAuth: true},\n responses: {'200': z.object({\n state: z.string(),\n token: z.string(),\n tokenType: z.string()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const localProcessInfoEndpoint = {\n name: 'Process Info',\n description: 'Gets the Valorant process ID',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'process-control/v1/process',\n riotRequirements: {localAuth: true},\n responses: {'200': z.object({\n pid: z.number(),\n status: z.string()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const localLogPathEndpoint = {\n name: 'Log Path',\n description: 'Gets the Valorant log path',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'product-session/v1/logs/path/VALORANT',\n riotRequirements: {localAuth: true},\n responses: {'200': z.string()}\n} as const satisfies ValorantEndpoint\n\nexport const localEulaEndpoint = {\n name: 'Eula',\n description: 'Get the EULA',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'eula/v1/agreement/content',\n riotRequirements: {localAuth: true},\n responses: {'200': z.string()}\n} as const satisfies ValorantEndpoint\n\nexport const localPrivacyPolicyEndpoint = {\n name: 'Privacy Policy',\n description: 'Get privacy policy',\n category: 'Local Endpoints',\n type: 'local',\n suffix: 'eula/v1/privacy-policy/content',\n riotRequirements: {localAuth: true},\n responses: {'200': z.string()}\n} as const satisfies ValorantEndpoint\n","import {endpoints as e, type ValorantEndpoint} from 'valorant-api-types'\r\nimport {z} from 'zod'\r\nimport {player, withResponse} from './shared'\r\n\r\nconst customGameTeam = z.array(z.object({Subject: z.string().describe('PUUID')}))\r\n\r\n/** A party in a custom game lobby. Written from a live answer. */\r\nexport const customGameParty = z.object({\r\n ID: z.string(),\r\n MUCName: z.string(),\r\n VoiceRoomID: z.string(),\r\n Version: z.number(),\r\n ClientVersion: z.string(),\r\n Members: z.array(z.object({\r\n Subject: z.string(),\r\n CompetitiveTier: z.number(),\r\n PlayerIdentity: z.object({\r\n Subject: z.string(),\r\n PlayerCardID: z.string(),\r\n PlayerTitleID: z.string(),\r\n AccountLevel: z.number(),\r\n PreferredLevelBorderID: z.string(),\r\n Incognito: z.boolean(),\r\n HideAccountLevel: z.boolean()\r\n }),\r\n IsOwner: z.boolean(),\r\n QueueEligibleRemainingAccountLevels: z.number(),\r\n Pings: z.array(z.object({\r\n Ping: z.number(),\r\n GamePodID: z.string()\r\n })),\r\n IsReady: z.boolean(),\r\n IsModerator: z.boolean(),\r\n UseBroadcastHUD: z.boolean(),\r\n PlatformType: z.string(),\r\n PremierPrestige: z.object({}),\r\n JoinedAt: z.string()\r\n })),\r\n State: z.string(),\r\n PreviousState: z.string(),\r\n StateTransitionReason: z.string(),\r\n Accessibility: z.string(),\r\n CustomGameData: z.object({\r\n Settings: z.object({\r\n Map: z.string(),\r\n Mode: z.string(),\r\n UseBots: z.boolean(),\r\n GamePod: z.string(),\r\n GameRules: z.record(z.string(), z.string()).nullable(),\r\n EsportsCustomLobbyName: z.string()\r\n }),\r\n Membership: z.object({\r\n teamOne: customGameTeam,\r\n teamTwo: customGameTeam,\r\n teamSpectate: customGameTeam,\r\n teamOneCoaches: customGameTeam,\r\n teamTwoCoaches: customGameTeam\r\n }),\r\n MaxPartySize: z.number(),\r\n AutobalanceEnabled: z.boolean(),\r\n AutobalanceMinPlayers: z.number(),\r\n HasRecoveryData: z.boolean()\r\n }),\r\n MatchmakingData: z.object({\r\n QueueID: z.string(),\r\n PreferredGamePods: z.array(z.string()),\r\n SkillDisparityRRPenalty: z.number(),\r\n MaxPartySize: z.number()\r\n }),\r\n QueueEntryTime: z.string(),\r\n EstimatedQueueTimeSeconds: z.number(),\r\n ErrorNotification: z.object({\r\n ErrorType: z.string()\r\n }).optional(),\r\n RestrictedSeconds: z.number(),\r\n EligibleQueues: z.array(z.string()),\r\n CheatData: z.object({\r\n GamePodOverride: z.string(),\r\n ForcePostGameProcessing: z.boolean()\r\n }),\r\n InviteCode: z.string()\r\n })\r\n\r\nexport type CustomGameParty = z.output<typeof customGameParty>\r\n\r\nexport const setCustomGameTeamEndpoint = {\r\n name: 'Set Custom Game Team',\r\n description: 'Moves a player to a team of the custom game. Only the party owner can move other players. ' +\r\n '`team` is `TeamOne` or `TeamTwo`. Resolves to the updated party, whose `CustomGameData.Membership` lists the players of each team.',\r\n queryName: 'Party_ChangeTeamInCustomGame',\r\n category: 'Party Endpoints',\r\n type: 'glz',\r\n method: 'POST',\r\n suffix: 'parties/v1/parties/{party id}/customgamemembership/{team}',\r\n headers: new Map([['Content-Type', 'application/json']]),\r\n body: z.object({playerToPutOnTeam: z.string().describe('PUUID of the player to move')}),\r\n riotRequirements: player,\r\n responses: {'200': customGameParty}\r\n} as const satisfies ValorantEndpoint\r\n\r\nexport const customGamePartyEndpoint = {\r\n name: 'Custom Game Party',\r\n description: 'The party of a custom game lobby: members, teams (`CustomGameData.Membership`), map, mode and rules. ' +\r\n 'Typed for custom game lobbies. `party.get` is the general version.',\r\n queryName: 'Party_FetchParty',\r\n category: 'Party Endpoints',\r\n type: 'glz',\r\n suffix: 'parties/v1/parties/{party id}',\r\n riotRequirements: player,\r\n responses: {'200': customGameParty}\r\n} as const satisfies ValorantEndpoint\r\n\r\n/** A party, in or out of a custom game lobby. */\r\nexport const partyResponse = customGameParty.extend({CustomGameData: customGameParty.shape.CustomGameData.optional()})\r\n\r\n/* Party endpoints, answered with the schema of a party written from a live lobby. */\r\nexport const partyGenerateCodeEndpoint = withResponse(e.partyGenerateCodeEndpoint, customGameParty)\r\nexport const partyDisableCodeEndpoint = withResponse(e.partyDisableCodeEndpoint, customGameParty)\r\nexport const setPartyAccessibilityEndpoint = withResponse(e.setPartyAccessibilityEndpoint, customGameParty)\r\nexport const startCustomGameEndpoint = withResponse(e.startCustomGameEndpoint, customGameParty)\r\nexport const setCustomGameSettingsEndpoint = withResponse(e.setCustomGameSettingsEndpoint, customGameParty)\r\n\r\nexport const partyEndpoint = withResponse(e.partyEndpoint, partyResponse)\r\nexport const changeQueueEndpoint = withResponse(e.changeQueueEndpoint, partyResponse)\r\nexport const enterMatchmakingQueueEndpoint = withResponse(e.enterMatchmakingQueueEndpoint, partyResponse)\r\nexport const leaveMatchmakingQueueEndpoint = withResponse(e.leaveMatchmakingQueueEndpoint, partyResponse)\r\nexport const partyDeclineEndpoint = withResponse(e.partyDeclineEndpoint, partyResponse)\r\nexport const partyInviteEndpoint = withResponse(e.partyInviteEndpoint, partyResponse)\r\nexport const partySetMemberReadyEndpoint = withResponse(e.partySetMemberReadyEndpoint, partyResponse)\r\nexport const refreshCompetitiveTierEndpoint = withResponse(e.refreshCompetitiveTierEndpoint, partyResponse)\r\nexport const refreshPlayerIdentityEndpoint = withResponse(e.refreshPlayerIdentityEndpoint, partyResponse)\r\nexport const refreshPingsEndpoint = withResponse(e.refreshPingsEndpoint, partyResponse)\r\n","import {endpoints as e} from 'valorant-api-types'\r\nimport {z} from 'zod'\r\nimport {withResponse} from './shared'\r\n\r\nexport const pregameMatchEndpoint = withResponse(e.pregameMatchEndpoint, z.object({\r\n ID: z.string(),\r\n Version: z.number(),\r\n Teams: z.array(z.object({\r\n TeamID: z.string(),\r\n TeamNumber: z.number(),\r\n Players: z.array(z.object({\r\n Subject: z.string(),\r\n CharacterID: z.string(),\r\n CharacterSelectionState: z.string(),\r\n PregamePlayerState: z.string(),\r\n CompetitiveTier: z.number(),\r\n PlayerIdentity: z.object({\r\n Subject: z.string(),\r\n PlayerCardID: z.string(),\r\n PlayerTitleID: z.string(),\r\n AccountLevel: z.number(),\r\n PreferredLevelBorderID: z.string(),\r\n Incognito: z.boolean(),\r\n HideAccountLevel: z.boolean()\r\n }),\r\n SeasonalBadgeInfo: z.object({\r\n SeasonID: z.string(),\r\n NumberOfWins: z.number(),\r\n Rank: z.number(),\r\n LeaderboardRank: z.number()\r\n }),\r\n IsCaptain: z.boolean(),\r\n PlatformType: z.string(),\r\n PremierPrestige: z.object({})\r\n }))\r\n })),\r\n AllyTeam: z.object({\r\n TeamID: z.string(),\r\n TeamNumber: z.number(),\r\n Players: z.array(z.object({\r\n Subject: z.string(),\r\n CharacterID: z.string(),\r\n CharacterSelectionState: z.string(),\r\n PregamePlayerState: z.string(),\r\n CompetitiveTier: z.number(),\r\n PlayerIdentity: z.object({\r\n Subject: z.string(),\r\n PlayerCardID: z.string(),\r\n PlayerTitleID: z.string(),\r\n AccountLevel: z.number(),\r\n PreferredLevelBorderID: z.string(),\r\n Incognito: z.boolean(),\r\n HideAccountLevel: z.boolean()\r\n }),\r\n SeasonalBadgeInfo: z.object({\r\n SeasonID: z.string(),\r\n NumberOfWins: z.number(),\r\n Rank: z.number(),\r\n LeaderboardRank: z.number()\r\n }),\r\n IsCaptain: z.boolean(),\r\n PlatformType: z.string(),\r\n PremierPrestige: z.object({})\r\n }))\r\n }),\r\n EnemyTeamSize: z.number(),\r\n EnemyTeamLockCount: z.number(),\r\n PregameState: z.string(),\r\n LastUpdated: z.string(),\r\n MapID: z.string(),\r\n CastedVotes: z.object({}),\r\n MapSelectStep: z.number(),\r\n Team1: z.string(),\r\n GamePodID: z.string(),\r\n Mode: z.string(),\r\n VoiceSessionID: z.string(),\r\n MUCName: z.string(),\r\n TeamMatchToken: z.string(),\r\n QueueID: z.string(),\r\n ProvisioningFlowID: z.string(),\r\n IsRanked: z.boolean(),\r\n PhaseTimeRemainingNS: z.number(),\r\n StepTimeRemainingNS: z.number(),\r\n altModesFlagADA: z.boolean(),\r\n /** Rules of the match by name. Only the rules the lobby set are present. */\r\n GameRules: z.record(z.string(), z.string())\r\n}))\r\n\r\nexport const pregameLoadoutsEndpoint = withResponse(e.pregameLoadoutsEndpoint, z.object({\r\n Loadouts: z.array(z.object({\r\n Subject: z.string(),\r\n Expressions: z.object({\r\n AESSelections: z.array(z.object({\r\n AssetID: z.string(),\r\n TypeID: z.string()\r\n }))\r\n }),\r\n DynamicOptions: z.object({}),\r\n Items: z.record(z.string(), z.object({\r\n ID: z.string(),\r\n TypeID: z.string(),\r\n Sockets: z.record(z.string(), z.object({\r\n ID: z.string(),\r\n Item: z.object({\r\n ID: z.string(),\r\n TypeID: z.string()\r\n })\r\n }))\r\n }))\r\n })),\r\n LoadoutsValid: z.boolean()\r\n}))\r\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\nimport {player} from './shared'\n\nexport const premierSeasonsEndpoint = {\n name: 'Premier Seasons',\n description: 'All Premier seasons of the shard. The affinity in the path is the region of the context.',\n category: 'Premier Endpoints',\n type: 'pd',\n suffix: 'premier/v1/affinities/{region}/premier-seasons',\n riotRequirements: player,\n responses: {'200': z.object({\n PremierSeasons: z.array(z.object({\n ID: z.string(),\n Name: z.string(),\n PreviousPremierSeasonID: z.string(),\n NextPremierSeasonID: z.string(),\n IsActive: z.boolean(),\n StartTime: z.string(),\n EndTime: z.string(),\n Events: z.array(z.object({\n ID: z.string(),\n Type: z.string(),\n StartDateTime: z.string(),\n EndDateTime: z.string(),\n MapSelectionStrategy: z.string(),\n MapPoolMapIDs: z.array(z.string()),\n PointsRequiredToParticipate: z.number()\n })),\n ScheduledEvents: z.array(z.object({\n EventID: z.string(),\n EventType: z.string(),\n Conference: z.string(),\n DivisionGroup: z.string(),\n EventPresetName: z.string(),\n StartDateTime: z.string(),\n EndDateTime: z.string(),\n TournamentRoundTimes: z.array(z.object({\n StartDateTime: z.string(),\n EndDateTime: z.string()\n }))\n })),\n Conferences: z.array(z.object({\n id: z.string(),\n key: z.string(),\n isSuper: z.boolean(),\n gamePods: z.array(z.string()),\n timezone: z.string(),\n superConference: z.string().optional(),\n leaderboardPlayoffQualificationDateTime: z.string(),\n leaderboardPromotionFinalizationDateTime: z.string()\n })),\n Divisions: z.array(z.object({\n Division: z.number(),\n DivisionName: z.string(),\n DivisionGroup: z.string(),\n EventPresetName: z.string()\n })),\n DivisionThresholds: z.array(z.object({\n playoffThresholdType: z.string(),\n playoffThresholdValue: z.number(),\n promotionThresholdType: z.string(),\n promotionThresholdValue: z.number(),\n shouldPromoteToSuperConference: z.boolean(),\n skipReseedCriteria: z.string(),\n conference: z.string().optional(),\n division: z.number().optional(),\n promotionConference: z.string().optional(),\n skipReseedCriteriaValue: z.number().optional()\n })),\n EventPresets: z.object({\n PRO: z.object({\n EventPresetsByEventType: z.object({\n LEAGUE: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n SCRIM: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n TOURNAMENT: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n })\n })\n }),\n REGULAR: z.object({\n EventPresetsByEventType: z.object({\n LEAGUE: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n SCRIM: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n TOURNAMENT: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n })\n })\n })\n }),\n FlawlessPointRequirement: z.number(),\n ChampionshipPointRequirement: z.number(),\n ChampionshipEventID: z.string(),\n EnrollmentPhaseStartDateTime: z.string(),\n EnrollmentPhaseEndDateTime: z.string(),\n LeaderboardPlayoffQualificationDateTime: z.string(),\n LeaderboardPromotionFinalizationDateTime: z.string(),\n LeaderboardFinalizationDateTime: z.string(),\n ContenderEligibilityExpiryDateTime: z.string(),\n StageLockTime: z.string(),\n ParticipationRewardsActIDs: z.array(z.string()),\n ParticipationRewards: z.object({\n EntitlementRewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }))\n }),\n TournamentWinnerRewards: z.object({}),\n DivisionWinnerRewards: z.object({\n ADVANCED: z.object({\n EntitlementRewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }))\n }).optional(),\n CONTENDER: z.object({\n EntitlementRewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }))\n }).optional(),\n ELITE: z.object({\n EntitlementRewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }))\n }).optional(),\n INTERMEDIATE: z.object({\n EntitlementRewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }))\n }).optional(),\n OPEN: z.object({\n EntitlementRewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }))\n }).optional(),\n INVITE: z.object({\n EntitlementRewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }))\n }).optional()\n }),\n RosterRecentActivityNumSeasons: z.number()\n }))\n })}\n} as const satisfies ValorantEndpoint\n\nexport const premierActiveSeasonEndpoint = {\n name: 'Premier Active Season',\n description: 'The Premier season that is running now.',\n category: 'Premier Endpoints',\n type: 'pd',\n suffix: 'premier/v1/affinities/{region}/premier-seasons/active',\n riotRequirements: player,\n responses: {'200': z.object({\n ID: z.string(),\n Name: z.string(),\n PreviousPremierSeasonID: z.string(),\n NextPremierSeasonID: z.string(),\n IsActive: z.boolean(),\n StartTime: z.string(),\n EndTime: z.string(),\n Events: z.array(z.object({\n ID: z.string(),\n Type: z.string(),\n StartDateTime: z.string(),\n EndDateTime: z.string(),\n MapSelectionStrategy: z.string(),\n MapPoolMapIDs: z.array(z.string()),\n PointsRequiredToParticipate: z.number()\n })),\n ScheduledEvents: z.array(z.object({\n EventID: z.string(),\n EventType: z.string(),\n Conference: z.string(),\n DivisionGroup: z.string(),\n EventPresetName: z.string(),\n StartDateTime: z.string(),\n EndDateTime: z.string(),\n TournamentRoundTimes: z.array(z.object({\n StartDateTime: z.string(),\n EndDateTime: z.string()\n }))\n })),\n Conferences: z.array(z.object({\n id: z.string(),\n key: z.string(),\n isSuper: z.boolean(),\n gamePods: z.array(z.string()),\n timezone: z.string(),\n superConference: z.string().optional(),\n leaderboardPlayoffQualificationDateTime: z.string(),\n leaderboardPromotionFinalizationDateTime: z.string()\n })),\n Divisions: z.array(z.object({\n Division: z.number(),\n DivisionName: z.string(),\n DivisionGroup: z.string(),\n EventPresetName: z.string()\n })),\n DivisionThresholds: z.array(z.object({\n playoffThresholdType: z.string(),\n playoffThresholdValue: z.number(),\n promotionThresholdType: z.string(),\n promotionThresholdValue: z.number(),\n shouldPromoteToSuperConference: z.boolean(),\n skipReseedCriteria: z.string(),\n conference: z.string().optional(),\n division: z.number().optional(),\n promotionConference: z.string().optional(),\n skipReseedCriteriaValue: z.number().optional()\n })),\n EventPresets: z.object({\n PRO: z.object({\n EventPresetsByEventType: z.object({\n LEAGUE: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n SCRIM: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n TOURNAMENT: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n })\n })\n }),\n REGULAR: z.object({\n EventPresetsByEventType: z.object({\n LEAGUE: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n SCRIM: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n }),\n TOURNAMENT: z.object({\n EventPresetName: z.string(),\n eventType: z.string(),\n bestOfN: z.number(),\n matchmakingStrategy: z.string(),\n queueID: z.string(),\n pointsConfig: z.object({\n PointsForWin: z.number(),\n PointsForLoss: z.number()\n })\n })\n })\n })\n }),\n FlawlessPointRequirement: z.number(),\n ChampionshipPointRequirement: z.number(),\n ChampionshipEventID: z.string(),\n EnrollmentPhaseStartDateTime: z.string(),\n EnrollmentPhaseEndDateTime: z.string(),\n LeaderboardPlayoffQualificationDateTime: z.string(),\n LeaderboardPromotionFinalizationDateTime: z.string(),\n LeaderboardFinalizationDateTime: z.string(),\n ContenderEligibilityExpiryDateTime: z.string(),\n StageLockTime: z.string(),\n ParticipationRewards: z.object({}),\n TournamentWinnerRewards: z.object({}),\n DivisionWinnerRewards: z.object({}),\n RosterRecentActivityNumSeasons: z.number()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const premierConferencesEndpoint = {\n name: 'Premier Conferences',\n description: 'Premier conferences of the region.',\n category: 'Premier Endpoints',\n type: 'pd',\n suffix: 'premier/v1/affinities/{region}/conferences',\n riotRequirements: player,\n responses: {'200': z.object({\n PremierConferences: z.array(z.object({\n id: z.string(),\n key: z.string(),\n isSuper: z.boolean(),\n gamePods: z.array(z.string()),\n timezone: z.string(),\n superConference: z.string().optional(),\n leaderboardPlayoffQualificationDateTime: z.string(),\n leaderboardPromotionFinalizationDateTime: z.string()\n }))\n })}\n} as const satisfies ValorantEndpoint\n\nexport const premierMatchLimitEndpoint = {\n name: 'Premier Match Limit',\n description: 'How many Premier matches can still be played and when the limit resets.',\n category: 'Premier Endpoints',\n type: 'pd',\n suffix: 'premier/v1/matchlimitinfo',\n riotRequirements: player,\n responses: {'200': z.object({\n leagueMatchLimit: z.number(),\n tournamentLimit: z.number(),\n timeUntilNextResetSeconds: z.number()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const premierEligibilityEndpoint = {\n name: 'Premier Eligibility',\n description: 'Whether the player can join a Premier roster.',\n category: 'Premier Endpoints',\n type: 'pd',\n suffix: 'premier/v1/player/eligibility',\n riotRequirements: player,\n responses: {'200': z.object({\n subject: z.string(),\n accountVerificationStatus: z.boolean(),\n rankedPlacementCompletionStatus: z.boolean(),\n matchLimitReached: z.boolean(),\n isOnProvidedRoster: z.boolean()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const premierPlayerV2Endpoint = {\n name: 'Premier Player V2',\n description: 'Premier membership of a player: roster id and pending invites.',\n category: 'Premier Endpoints',\n type: 'pd',\n suffix: 'premier/v2/players/{puuid}',\n riotRequirements: player,\n responses: {'200': z.object({\n puuid: z.string(),\n rosterId: z.string(),\n version: z.number(),\n createdAt: z.number(),\n updatedAt: z.number()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const premierPlayerV3Endpoint = {\n name: 'Premier Player V3',\n description: 'Like v2, with prestige and contender eligibility.',\n category: 'Premier Endpoints',\n type: 'pd',\n suffix: 'premier/v3/players/{puuid}',\n riotRequirements: player,\n responses: {'200': z.object({\n puuid: z.string(),\n rosterId: z.string(),\n prestige: z.object({\n earnedPrestige: z.boolean(),\n earnedAura: z.boolean(),\n showTag: z.boolean(),\n showPlating: z.boolean(),\n showAura: z.boolean()\n }),\n contenderEligibilityExpiry: z.string(),\n socialVersion: z.number(),\n premierVersion: z.number(),\n updatedAt: z.number(),\n seasons: z.object({\n \"08d281c5-4426-3aaa-3316-ebaf5f2c858a\": z.object({\n seasonId: z.string(),\n hasEarnedPrestigeAura: z.boolean(),\n hasEarnedParticipation: z.boolean(),\n hasEarnedDivisionWinner: z.boolean()\n }),\n \"91be4c20-439d-8e24-f577-4ca8a98e8dc8\": z.object({\n seasonId: z.string(),\n hasEarnedPrestigeAura: z.boolean(),\n hasEarnedParticipation: z.boolean(),\n hasEarnedDivisionWinner: z.boolean()\n })\n })\n })}\n} as const satisfies ValorantEndpoint\n","import {endpoints as e} from 'valorant-api-types'\r\nimport {z} from 'zod'\r\nimport {withResponse} from './shared'\r\nimport {fromBase64} from '../../internal/base64'\r\n\r\n/** Decoded `private` payload of a VALORANT presence. */\r\nexport const valorantPresence = z.object({\r\n isIdle: z.boolean(),\r\n isValid: z.boolean(),\r\n matchPresenceData: z.object({\r\n gameScoreType: z.string(),\r\n matchMap: z.string(),\r\n provisioningFlow: z.string(),\r\n queueId: z.string(),\r\n sessionLoopState: z.string()\r\n }),\r\n maxPartySize: z.number(),\r\n partyId: z.string(),\r\n partyOwnerMatchScoreAllyTeam: z.number(),\r\n partyOwnerMatchScoreEnemyTeam: z.number(),\r\n partyPresenceData: z.object({\r\n customGameName: z.string(),\r\n customGameTeam: z.string(),\r\n isPartyCrossPlayEnabled: z.boolean(),\r\n isPartyOwner: z.boolean(),\r\n isPlayerCrossPlayEnabled: z.boolean(),\r\n maxPartySize: z.number(),\r\n partyAccessibility: z.string(),\r\n partyClientVersion: z.string(),\r\n partyId: z.string(),\r\n partyLFM: z.boolean(),\r\n partyOwnerMatchMap: z.string(),\r\n partyOwnerMatchScoreAllyTeam: z.number(),\r\n partyOwnerMatchScoreEnemyTeam: z.number(),\r\n partyOwnerProvisioningFlow: z.string(),\r\n partyOwnerSessionLoopState: z.string(),\r\n partyPrecisePlatformTypes: z.number(),\r\n partySize: z.number(),\r\n partyState: z.string(),\r\n partyVersion: z.number(),\r\n queueEntryTime: z.string(),\r\n rosterId: z.string(),\r\n tournamentId: z.string()\r\n }),\r\n partySize: z.number(),\r\n playerPresenceData: z.object({\r\n accountLevel: z.number(),\r\n competitiveTier: z.number(),\r\n leaderboardPosition: z.number(),\r\n platformOverride: z.string(),\r\n playerCardId: z.string(),\r\n playerTitleId: z.string(),\r\n tempValueAA: z.number()\r\n }),\r\n premierPresenceData: z.object({\r\n division: z.number(),\r\n plating: z.number(),\r\n rosterId: z.string(),\r\n rosterName: z.string(),\r\n rosterTag: z.string(),\r\n rosterType: z.string(),\r\n score: z.number(),\r\n showAura: z.boolean(),\r\n showPlating: z.boolean(),\r\n showTag: z.boolean()\r\n }),\r\n provisioningFlow: z.string(),\r\n queueId: z.string()\r\n})\r\n\r\nexport type ValorantPresence = z.output<typeof valorantPresence>\r\n\r\n/** `private` is a base64 JSON payload. It is decoded for VALORANT presences and is null for any other product. */\r\nfunction decodePresence(raw: string | null): ValorantPresence | null {\r\n if(!raw) return null\r\n try {\r\n return valorantPresence.parse(JSON.parse(fromBase64(raw)))\r\n } catch {\r\n return null\r\n }\r\n}\r\n\r\nexport const presenceEndpoint = withResponse(e.presenceEndpoint, z.object({\r\n presences: z.array(z.object({\r\n activePlatform: z.string().nullable(),\r\n basic: z.string(),\r\n game_name: z.string(),\r\n game_tag: z.string(),\r\n msg: z.string().nullable(),\r\n name: z.string(),\r\n packedData: z.string().nullable(),\r\n patchline: z.string().nullable(),\r\n pid: z.string(),\r\n platform: z.string().nullable(),\r\n product: z.string(),\r\n puuid: z.string(),\r\n region: z.string(),\r\n resource: z.string(),\r\n state: z.string(),\r\n summary: z.string(),\r\n time: z.number(),\r\n private: z.string().nullable().transform(decodePresence)\r\n }))\r\n}))\r\n","export function toBase64(text: string): string {\n return Buffer.from(text, 'utf8').toString('base64')\n}\n\nexport function fromBase64(encoded: string): string {\n return Buffer.from(encoded, 'base64').toString('utf8')\n}\n\n/** Value of a `Basic` authorization header. */\nexport function basicAuth(user: string, password: string): string {\n return `Basic ${toBase64(`${user}:${password}`)}`\n}\n","import {endpoints as e, type ValorantEndpoint} from 'valorant-api-types'\r\nimport {z} from 'zod'\r\nimport {onSharedHost, player, withResponse} from './shared'\r\n\r\nexport const playerLoadoutV3Endpoint = {\r\n name: 'Player Loadout V3',\r\n description: 'Current loadout. The v2 route used by `pvp.playerLoadout` answers 404 on current clients.',\r\n category: 'PVP Endpoints',\r\n type: 'pd',\r\n suffix: 'personalization/v3/players/{puuid}/playerloadout',\r\n riotRequirements: player,\r\n responses: {'200': z.object({\r\n Subject: z.string(),\r\n Version: z.number(),\r\n Guns: z.array(z.object({\r\n ID: z.string(),\r\n SkinID: z.string(),\r\n SkinLevelID: z.string(),\r\n ChromaID: z.string(),\r\n CharmInstanceID: z.string().optional(),\r\n CharmID: z.string().optional(),\r\n CharmLevelID: z.string().optional()\r\n })),\r\n ActiveExpressions: z.array(z.object({\r\n TypeID: z.string(),\r\n AssetID: z.string()\r\n })),\r\n DynamicOptions: z.object({}),\r\n Identity: z.object({\r\n PlayerCardID: z.string(),\r\n PlayerTitleID: z.string(),\r\n AccountLevel: z.number(),\r\n PreferredLevelBorderID: z.string(),\r\n HideAccountLevel: z.boolean()\r\n }),\r\n Incognito: z.boolean()\r\n })}\r\n} as const satisfies ValorantEndpoint\r\n\r\n/** The game calls this route on the `shared` host, with the player headers. The `pd` host answers 503. */\r\nexport const configEndpoint = withResponse(\r\n {...onSharedHost(e.configEndpoint), riotRequirements: player},\r\n z.object({\r\n LastApplication: z.string().datetime({offset: true}).transform(value => new Date(value)),\r\n /** Game settings by name. Every value is a string, and the set of names changes with each patch. */\r\n Collapsed: z.record(z.string(), z.string())\r\n })\r\n)\r\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\nimport {player} from './shared'\n\nexport const avoidListEndpoint = {\n name: 'Avoid List',\n description: 'Players the account avoids in matchmaking.',\n category: 'Restriction Endpoints',\n type: 'pd',\n suffix: 'restrictions/v1/avoidList',\n riotRequirements: player,\n responses: {'200': z.object({\n Subject: z.string()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const activeFutureInterventionsEndpoint = {\n name: 'Active Future Interventions',\n description: 'Upcoming or active restrictions of the account, by category.',\n category: 'Restriction Endpoints',\n type: 'pd',\n suffix: 'restrictions/v1/activeFutureInterventions',\n riotRequirements: player,\n responses: {'200': z.object({\n Subject: z.string()\n })}\n} as const satisfies ValorantEndpoint\n","import {endpoints as e, type ValorantEndpoint} from 'valorant-api-types'\r\nimport {z} from 'zod'\r\nimport {player, withResponse} from './shared'\r\n\r\nexport const agentStoreEndpoint = {\r\n name: 'Agent Store',\r\n description: 'Agents offered in the store.',\r\n category: 'Store Endpoints',\r\n type: 'pd',\r\n suffix: 'store/v1/storefronts/agent',\r\n riotRequirements: player,\r\n responses: {'200': z.object({\r\n AgentStore: z.object({\r\n AgentStoreOffers: z.array(z.object({\r\n AgentID: z.string(),\r\n StoreOffers: z.array(z.object({\r\n OfferID: z.string(),\r\n IsDirectPurchase: z.boolean(),\r\n StartDate: z.string(),\r\n Cost: z.record(z.string(), z.number()),\r\n Rewards: z.array(z.object({\r\n ItemTypeID: z.string(),\r\n ItemID: z.string(),\r\n Quantity: z.number()\r\n }))\r\n }))\r\n })),\r\n CurrentFeaturedAgent: z.string(),\r\n NextFeaturedAgent: z.string()\r\n })\r\n })}\r\n} as const satisfies ValorantEndpoint\r\n\r\nexport const allEntitlementsEndpoint = {\r\n name: 'All Entitlements',\r\n description: 'Everything the player owns, grouped by item type. This is the call without an item type, which is the shape `store.ownedItems` describes.',\r\n category: 'Store Endpoints',\r\n type: 'pd',\r\n suffix: 'store/v1/entitlements/{puuid}',\r\n riotRequirements: player,\r\n responses: {'200': z.object({\r\n EntitlementsByTypes: z.array(z.object({\r\n ItemTypeID: z.string(),\r\n Entitlements: z.array(z.object({\r\n TypeID: z.string(),\r\n ItemID: z.string(),\r\n InstanceID: z.string().optional()\r\n }))\r\n }))\r\n })}\r\n} as const satisfies ValorantEndpoint\r\n\r\n/** With an item type, the answer is `{ItemTypeID, Entitlements}`. */\r\nexport const ownedItemsEndpoint = withResponse(e.ownedItemsEndpoint, z.object({\r\n ItemTypeID: z.string(),\r\n Entitlements: z.array(z.object({\r\n TypeID: z.string(),\r\n ItemID: z.string()\r\n }))\r\n}))\r\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\nimport {player} from './shared'\n\nexport const storefrontV3Endpoint = {\n name: 'Storefront V3',\n description: 'Get the current storefront of the player: featured bundles, the daily skin offers, accessories and night market plugins. Replaces the v2 storefront endpoint, which now answers 404.',\n category: 'Store Endpoints',\n type: 'pd',\n method: 'POST',\n suffix: 'store/v3/storefront/{puuid}',\n headers: new Map([['Content-Type', 'application/json']]),\n riotRequirements: player,\n responses: {'200': z.object({\n FeaturedBundle: z.object({\n Bundle: z.object({\n ID: z.string(),\n DataAssetID: z.string(),\n CurrencyID: z.string(),\n Items: z.array(z.object({\n Item: z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }),\n BasePrice: z.number(),\n CurrencyID: z.string(),\n DiscountPercent: z.number(),\n DiscountedPrice: z.number(),\n IsPromoItem: z.boolean()\n })),\n ItemOffers: z.array(z.object({\n BundleItemOfferID: z.string(),\n Offer: z.object({\n OfferID: z.string(),\n IsDirectPurchase: z.boolean(),\n StartDate: z.string(),\n Cost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n Rewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Quantity: z.number()\n }))\n }),\n DiscountPercent: z.number(),\n DiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n })\n })),\n TotalBaseCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n TotalDiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n TotalDiscountPercent: z.number(),\n DurationRemainingInSeconds: z.number(),\n WholesaleOnly: z.boolean(),\n IsGiftable: z.number()\n }),\n Bundles: z.array(z.object({\n ID: z.string(),\n DataAssetID: z.string(),\n CurrencyID: z.string(),\n Items: z.array(z.object({\n Item: z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }),\n BasePrice: z.number(),\n CurrencyID: z.string(),\n DiscountPercent: z.number(),\n DiscountedPrice: z.number(),\n IsPromoItem: z.boolean()\n })),\n ItemOffers: z.array(z.object({\n BundleItemOfferID: z.string(),\n Offer: z.object({\n OfferID: z.string(),\n IsDirectPurchase: z.boolean(),\n StartDate: z.string(),\n Cost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n Rewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Quantity: z.number()\n }))\n }),\n DiscountPercent: z.number(),\n DiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n })\n })),\n TotalBaseCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n TotalDiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n TotalDiscountPercent: z.number(),\n DurationRemainingInSeconds: z.number(),\n WholesaleOnly: z.boolean(),\n IsGiftable: z.number()\n })),\n FeaturedTileEntries: z.array(z.object({\n Type: z.number(),\n Entry: z.object({\n Bundle: z.object({\n ID: z.string(),\n DataAssetID: z.string(),\n CurrencyID: z.string(),\n Items: z.array(z.object({\n Item: z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Amount: z.number()\n }),\n BasePrice: z.number(),\n CurrencyID: z.string(),\n DiscountPercent: z.number(),\n DiscountedPrice: z.number(),\n IsPromoItem: z.boolean()\n })),\n ItemOffers: z.array(z.object({\n BundleItemOfferID: z.string(),\n Offer: z.object({\n OfferID: z.string(),\n IsDirectPurchase: z.boolean(),\n StartDate: z.string(),\n Cost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n Rewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Quantity: z.number()\n }))\n }),\n DiscountPercent: z.number(),\n DiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n })\n })),\n TotalBaseCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n TotalDiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n TotalDiscountPercent: z.number(),\n DurationRemainingInSeconds: z.number(),\n WholesaleOnly: z.boolean(),\n IsGiftable: z.number()\n })\n })\n })),\n BundleRemainingDurationInSeconds: z.number()\n }),\n SkinsPanelLayout: z.object({\n SingleItemOffers: z.array(z.string()),\n SingleItemStoreOffers: z.array(z.object({\n OfferID: z.string(),\n IsDirectPurchase: z.boolean(),\n StartDate: z.string(),\n Cost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n Rewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Quantity: z.number()\n }))\n })),\n SingleItemOffersRemainingDurationInSeconds: z.number()\n }),\n UpgradeCurrencyStore: z.object({\n UpgradeCurrencyOffers: z.array(z.object({\n OfferID: z.string(),\n StorefrontItemID: z.string(),\n Offer: z.object({\n OfferID: z.string(),\n IsDirectPurchase: z.boolean(),\n StartDate: z.string(),\n Cost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n Rewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Quantity: z.number()\n }))\n }),\n DiscountedPercent: z.number()\n }))\n }),\n AccessoryStore: z.object({\n AccessoryStoreOffers: z.array(z.object({\n Offer: z.object({\n OfferID: z.string(),\n IsDirectPurchase: z.boolean(),\n StartDate: z.string(),\n Cost: z.object({\n \"85ca954a-41f2-ce94-9b45-8ca3dd39a00d\": z.number()\n }),\n Rewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Quantity: z.number()\n }))\n }),\n ContractID: z.string()\n })),\n AccessoryStoreRemainingDurationInSeconds: z.number(),\n StorefrontID: z.string()\n }),\n PluginStores: z.array(z.object({\n PluginID: z.string(),\n PluginOffers: z.object({\n StoreOffers: z.array(z.object({\n PurchaseInformation: z.object({\n DataAssetID: z.string(),\n OfferID: z.string(),\n OfferType: z.number(),\n StartDate: z.string(),\n PrimaryCurrencyID: z.string(),\n Cost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n DiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n DiscountedPercentage: z.number(),\n WholesaleOnly: z.boolean(),\n IsGiftable: z.number()\n }),\n SubOffers: z.array(z.object({\n PurchaseInformation: z.object({\n DataAssetID: z.string(),\n OfferID: z.string(),\n OfferType: z.number(),\n StartDate: z.string(),\n PrimaryCurrencyID: z.string(),\n Cost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n DiscountedCost: z.object({\n \"85ad13f7-3d1b-5128-9eb2-7cd8ee0b5741\": z.number()\n }),\n DiscountedPercentage: z.number(),\n Rewards: z.array(z.object({\n ItemTypeID: z.string(),\n ItemID: z.string(),\n Quantity: z.number()\n })),\n WholesaleOnly: z.boolean(),\n IsGiftable: z.number()\n })\n }))\n })),\n RemainingDurationInSeconds: z.number()\n }),\n StartDate: z.string()\n }))\n })}\n} as const satisfies ValorantEndpoint\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z} from 'zod'\n\nexport const voiceAudioPropertiesEndpoint = {\n name: 'Audio Properties',\n description: 'Get audio properties such as if the microphone is in use',\n category: 'Local Endpoints - Voice',\n type: 'local',\n suffix: 'voice-chat/v1/audio-properties',\n riotRequirements: {localAuth: true},\n responses: {'200': z.object({\n fastEnergyMeter: z.number(),\n isLoopbackEnabled: z.boolean(),\n isMicActive: z.boolean(),\n isSpeakerActive: z.boolean(),\n micEnergy: z.number(),\n micVolume: z.number(),\n noiseFloorMeter: z.number(),\n speakerEnergy: z.number(),\n speakerVolume: z.number(),\n speechThresholdMeter: z.number()\n })}\n} as const satisfies ValorantEndpoint\n\nexport const voiceCaptureDevicesEndpoint = {\n name: 'Capture Devices',\n description: 'Get microphone input device info',\n category: 'Local Endpoints - Voice',\n type: 'local',\n suffix: 'voice-chat/v2/devices/capture',\n riotRequirements: {localAuth: true},\n responses: {'200': z.array(z.object({\n handle: z.string(),\n is_current_device: z.boolean(),\n is_default: z.boolean(),\n is_effective_device: z.boolean(),\n name: z.string()\n }))}\n} as const satisfies ValorantEndpoint\n\nexport const voiceRenderDevicesEndpoint = {\n name: 'Render Devices',\n description: 'Get audio output devices',\n category: 'Local Endpoints - Voice',\n type: 'local',\n suffix: 'voice-chat/v2/devices/render',\n riotRequirements: {localAuth: true},\n responses: {'200': z.array(z.object({\n handle: z.string(),\n is_current_device: z.boolean(),\n is_default: z.boolean(),\n is_effective_device: z.boolean(),\n name: z.string()\n }))}\n} as const satisfies ValorantEndpoint\n","import {endpoints as e} from 'valorant-api-types'\r\nimport * as x from '../../endpoints/riot'\r\n\r\nexport interface PartyGroup {\r\n readonly get: typeof x.partyEndpoint\r\n readonly player: typeof e.partyPlayerEndpoint\r\n readonly removePlayer: typeof e.partyRemovePlayerEndpoint\r\n readonly setMemberReady: typeof x.partySetMemberReadyEndpoint\r\n readonly refreshCompetitiveTier: typeof x.refreshCompetitiveTierEndpoint\r\n readonly refreshPlayerIdentity: typeof x.refreshPlayerIdentityEndpoint\r\n readonly refreshPings: typeof x.refreshPingsEndpoint\r\n readonly changeQueue: typeof x.changeQueueEndpoint\r\n readonly startCustomGame: typeof x.startCustomGameEndpoint\r\n readonly enterMatchmakingQueue: typeof x.enterMatchmakingQueueEndpoint\r\n readonly leaveMatchmakingQueue: typeof x.leaveMatchmakingQueueEndpoint\r\n readonly setAccessibility: typeof x.setPartyAccessibilityEndpoint\r\n readonly setCustomGameSettings: typeof x.setCustomGameSettingsEndpoint\r\n readonly invite: typeof x.partyInviteEndpoint\r\n readonly requestToJoin: typeof e.partyRequestEndpoint\r\n readonly declineRequest: typeof x.partyDeclineEndpoint\r\n readonly customGameConfigs: typeof e.customGameConfigsEndpoint\r\n readonly disableCode: typeof x.partyDisableCodeEndpoint\r\n readonly generateCode: typeof x.partyGenerateCodeEndpoint\r\n readonly joinByCode: typeof e.partyJoinByCodeEndpoint\r\n readonly setCustomGameTeam: typeof x.setCustomGameTeamEndpoint\r\n readonly getCustomGame: typeof x.customGamePartyEndpoint\r\n}\r\n\r\nexport const party: PartyGroup = {\r\n get: x.partyEndpoint,\r\n player: e.partyPlayerEndpoint,\r\n removePlayer: e.partyRemovePlayerEndpoint,\r\n setMemberReady: x.partySetMemberReadyEndpoint,\r\n refreshCompetitiveTier: x.refreshCompetitiveTierEndpoint,\r\n refreshPlayerIdentity: x.refreshPlayerIdentityEndpoint,\r\n refreshPings: x.refreshPingsEndpoint,\r\n changeQueue: x.changeQueueEndpoint,\r\n startCustomGame: x.startCustomGameEndpoint,\r\n enterMatchmakingQueue: x.enterMatchmakingQueueEndpoint,\r\n leaveMatchmakingQueue: x.leaveMatchmakingQueueEndpoint,\r\n setAccessibility: x.setPartyAccessibilityEndpoint,\r\n setCustomGameSettings: x.setCustomGameSettingsEndpoint,\r\n invite: x.partyInviteEndpoint,\r\n requestToJoin: e.partyRequestEndpoint,\r\n declineRequest: x.partyDeclineEndpoint,\r\n customGameConfigs: e.customGameConfigsEndpoint,\r\n disableCode: x.partyDisableCodeEndpoint,\r\n generateCode: x.partyGenerateCodeEndpoint,\r\n joinByCode: e.partyJoinByCodeEndpoint,\r\n setCustomGameTeam: x.setCustomGameTeamEndpoint,\r\n getCustomGame: x.customGamePartyEndpoint\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\r\nimport * as x from '../../endpoints/riot'\r\n\r\nexport interface StoreGroup {\r\n readonly wallet: typeof e.walletEndpoint\r\n readonly ownedItems: typeof x.ownedItemsEndpoint\r\n readonly storefrontV3: typeof x.storefrontV3Endpoint\r\n readonly agentStore: typeof x.agentStoreEndpoint\r\n readonly allEntitlements: typeof x.allEntitlementsEndpoint\r\n}\r\n\r\nexport const store: StoreGroup = {\r\n wallet: e.walletEndpoint,\r\n ownedItems: x.ownedItemsEndpoint,\r\n storefrontV3: x.storefrontV3Endpoint,\r\n agentStore: x.agentStoreEndpoint,\r\n allEntitlements: x.allEntitlementsEndpoint\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\r\nimport * as x from '../../endpoints/riot'\r\n\r\nexport interface PregameGroup {\r\n readonly player: typeof e.pregamePlayerEndpoint\r\n readonly match: typeof x.pregameMatchEndpoint\r\n readonly loadouts: typeof x.pregameLoadoutsEndpoint\r\n readonly selectCharacter: typeof x.selectCharacterEndpoint\r\n readonly lockCharacter: typeof x.lockCharacterEndpoint\r\n readonly quit: typeof e.pregameQuitEndpoint\r\n}\r\n\r\nexport const pregame: PregameGroup = {\r\n player: e.pregamePlayerEndpoint,\r\n match: x.pregameMatchEndpoint,\r\n loadouts: x.pregameLoadoutsEndpoint,\r\n selectCharacter: x.selectCharacterEndpoint,\r\n lockCharacter: x.lockCharacterEndpoint,\r\n quit: e.pregameQuitEndpoint\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\r\nimport * as x from '../../endpoints/riot'\r\n\r\nexport interface CurrentGameGroup {\r\n readonly player: typeof e.currentGamePlayerEndpoint\r\n readonly match: typeof e.currentGameMatchEndpoint\r\n readonly loadouts: typeof x.currentGameLoadoutsEndpoint\r\n readonly quit: typeof e.currentGameQuitEndpoint\r\n}\r\n\r\nexport const currentGame: CurrentGameGroup = {\r\n player: e.currentGamePlayerEndpoint,\r\n match: e.currentGameMatchEndpoint,\r\n loadouts: x.currentGameLoadoutsEndpoint,\r\n quit: e.currentGameQuitEndpoint\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\r\nimport * as x from '../../endpoints/riot'\r\n\r\nexport interface ContractsGroup {\r\n readonly itemUpgrades: typeof e.itemUpgradesEndpoint\r\n readonly list: typeof x.contractsEndpoint\r\n readonly activate: typeof e.activateContractEndpoint\r\n readonly activeRecruitmentEvent: typeof x.activeRecruitmentEventEndpoint\r\n}\r\n\r\nexport const contracts: ContractsGroup = {\r\n itemUpgrades: e.itemUpgradesEndpoint,\r\n list: x.contractsEndpoint,\r\n activate: e.activateContractEndpoint,\r\n activeRecruitmentEvent: x.activeRecruitmentEventEndpoint\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\r\nimport * as x from '../../endpoints/riot'\r\n\r\nexport interface LocalGroup {\r\n readonly help: typeof e.localHelpEndpoint\r\n readonly sessions: typeof e.sessionsEndpoint\r\n readonly rsoUserInfo: typeof e.rsoUserInfoEndpoint\r\n readonly clientRegion: typeof e.clientRegionEndpoint\r\n readonly accountAlias: typeof e.accountAliasEndpoint\r\n readonly entitlementsToken: typeof e.entitlementsTokenEndpoint\r\n readonly chatSession: typeof e.chatSessionEndpoint\r\n readonly friends: typeof e.friendsEndpoint\r\n readonly sendFriendRequest: typeof e.sendFriendRequestEndpoint\r\n readonly removeFriendRequest: typeof e.removeFriendRequestEndpoint\r\n readonly presence: typeof x.presenceEndpoint\r\n readonly friendRequests: typeof e.friendRequestsEndpoint\r\n readonly swaggerDocs: typeof e.localSwaggerDocsEndpoint\r\n readonly eula: typeof x.localEulaEndpoint\r\n readonly privacyPolicy: typeof x.localPrivacyPolicyEndpoint\r\n readonly availableLocales: typeof x.localAvailableLocalesEndpoint\r\n readonly locale: typeof x.localLocaleEndpoint\r\n readonly riotStatus: typeof x.localRiotStatusEndpoint\r\n readonly accessToken: typeof x.localAccessTokenEndpoint\r\n readonly pluginStatus: typeof x.localPluginStatusEndpoint\r\n readonly rmsSession: typeof x.localRmsSessionEndpoint\r\n readonly processInfo: typeof x.localProcessInfoEndpoint\r\n readonly logPath: typeof x.localLogPathEndpoint\r\n}\r\n\r\nexport const local: LocalGroup = {\r\n help: e.localHelpEndpoint,\r\n sessions: e.sessionsEndpoint,\r\n rsoUserInfo: e.rsoUserInfoEndpoint,\r\n clientRegion: e.clientRegionEndpoint,\r\n accountAlias: e.accountAliasEndpoint,\r\n entitlementsToken: e.entitlementsTokenEndpoint,\r\n chatSession: e.chatSessionEndpoint,\r\n friends: e.friendsEndpoint,\r\n sendFriendRequest: e.sendFriendRequestEndpoint,\r\n removeFriendRequest: e.removeFriendRequestEndpoint,\r\n presence: x.presenceEndpoint,\r\n friendRequests: e.friendRequestsEndpoint,\r\n swaggerDocs: e.localSwaggerDocsEndpoint,\r\n eula: x.localEulaEndpoint,\r\n privacyPolicy: x.localPrivacyPolicyEndpoint,\r\n availableLocales: x.localAvailableLocalesEndpoint,\r\n locale: x.localLocaleEndpoint,\r\n riotStatus: x.localRiotStatusEndpoint,\r\n accessToken: x.localAccessTokenEndpoint,\r\n pluginStatus: x.localPluginStatusEndpoint,\r\n rmsSession: x.localRmsSessionEndpoint,\r\n processInfo: x.localProcessInfoEndpoint,\r\n logPath: x.localLogPathEndpoint\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\r\nimport * as x from '../../endpoints/riot'\r\n\r\nexport interface ChatGroup {\r\n readonly partyInfo: typeof e.partyChatInfoEndpoint\r\n readonly pregameInfo: typeof e.pregameChatInfoEndpoint\r\n readonly currentGameInfo: typeof e.currentGameChatInfoEndpoint\r\n readonly allInfo: typeof e.allChatInfoEndpoint\r\n readonly participants: typeof x.chatParticipantsEndpoint\r\n readonly send: typeof e.sendChatEndpoint\r\n readonly history: typeof e.chatHistoryEndpoint\r\n readonly settings: typeof x.chatSettingsEndpoint\r\n readonly tournamentInfo: typeof x.chatTournamentInfoEndpoint\r\n}\r\n\r\nexport const chat: ChatGroup = {\r\n partyInfo: e.partyChatInfoEndpoint,\r\n pregameInfo: e.pregameChatInfoEndpoint,\r\n currentGameInfo: e.currentGameChatInfoEndpoint,\r\n allInfo: e.allChatInfoEndpoint,\r\n participants: x.chatParticipantsEndpoint,\r\n send: e.sendChatEndpoint,\r\n history: e.chatHistoryEndpoint,\r\n settings: x.chatSettingsEndpoint,\r\n tournamentInfo: x.chatTournamentInfoEndpoint\r\n}\r\n","import * as x from '../../endpoints/riot'\r\n\r\nexport interface VoiceGroup {\r\n readonly audioProperties: typeof x.voiceAudioPropertiesEndpoint\r\n readonly captureDevices: typeof x.voiceCaptureDevicesEndpoint\r\n readonly renderDevices: typeof x.voiceRenderDevicesEndpoint\r\n}\r\n\r\nexport const voice: VoiceGroup = {\r\n audioProperties: x.voiceAudioPropertiesEndpoint,\r\n captureDevices: x.voiceCaptureDevicesEndpoint,\r\n renderDevices: x.voiceRenderDevicesEndpoint\r\n}\r\n","import * as x from '../../endpoints/riot'\r\n\r\nexport interface PremierGroup {\r\n readonly seasons: typeof x.premierSeasonsEndpoint\r\n readonly activeSeason: typeof x.premierActiveSeasonEndpoint\r\n readonly conferences: typeof x.premierConferencesEndpoint\r\n readonly matchLimit: typeof x.premierMatchLimitEndpoint\r\n readonly eligibility: typeof x.premierEligibilityEndpoint\r\n readonly playerV2: typeof x.premierPlayerV2Endpoint\r\n readonly playerV3: typeof x.premierPlayerV3Endpoint\r\n}\r\n\r\nexport const premier: PremierGroup = {\r\n seasons: x.premierSeasonsEndpoint,\r\n activeSeason: x.premierActiveSeasonEndpoint,\r\n conferences: x.premierConferencesEndpoint,\r\n matchLimit: x.premierMatchLimitEndpoint,\r\n eligibility: x.premierEligibilityEndpoint,\r\n playerV2: x.premierPlayerV2Endpoint,\r\n playerV3: x.premierPlayerV3Endpoint\r\n}\r\n","import * as x from '../../endpoints/riot'\r\n\r\nexport interface EsportsGroup {\r\n readonly liveEventTimes: typeof x.esportsLiveEventTimesEndpoint\r\n readonly upcomingMatches: typeof x.esportsUpcomingMatchesEndpoint\r\n readonly pickemLeagues: typeof x.esportsPickemLeaguesEndpoint\r\n}\r\n\r\nexport const esports: EsportsGroup = {\r\n liveEventTimes: x.esportsLiveEventTimesEndpoint,\r\n upcomingMatches: x.esportsUpcomingMatchesEndpoint,\r\n pickemLeagues: x.esportsPickemLeaguesEndpoint\r\n}\r\n","import * as x from '../../endpoints/riot'\r\n\r\nexport interface RestrictionsGroup {\r\n readonly avoidList: typeof x.avoidListEndpoint\r\n readonly activeFutureInterventions: typeof x.activeFutureInterventionsEndpoint\r\n}\r\n\r\nexport const restrictions: RestrictionsGroup = {\r\n avoidList: x.avoidListEndpoint,\r\n activeFutureInterventions: x.activeFutureInterventionsEndpoint\r\n}\r\n","import * as x from '../../endpoints/riot'\r\n\r\nexport interface AccountGroup {\r\n readonly dailyTicket: typeof x.dailyTicketEndpoint\r\n readonly dailyTicketQueueConfig: typeof x.dailyTicketQueueConfigEndpoint\r\n readonly favorites: typeof x.favoritesEndpoint\r\n readonly goldstars: typeof x.goldstarsEndpoint\r\n readonly goldstarsPlayer: typeof x.goldstarsPlayerEndpoint\r\n readonly bloomlineQueues: typeof x.bloomlineQueuesEndpoint\r\n readonly bloomlinePlayer: typeof x.bloomlinePlayerEndpoint\r\n}\r\n\r\nexport const account: AccountGroup = {\r\n dailyTicket: x.dailyTicketEndpoint,\r\n dailyTicketQueueConfig: x.dailyTicketQueueConfigEndpoint,\r\n favorites: x.favoritesEndpoint,\r\n goldstars: x.goldstarsEndpoint,\r\n goldstarsPlayer: x.goldstarsPlayerEndpoint,\r\n bloomlineQueues: x.bloomlineQueuesEndpoint,\r\n bloomlinePlayer: x.bloomlinePlayerEndpoint\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\r\n\r\nexport interface AuthGroup {\r\n readonly cookies: typeof e.authCookiesEndpoint\r\n readonly request: typeof e.authRequestEndpoint\r\n readonly multiFactor: typeof e.multiFactorAuthenticationEndpoint\r\n readonly cookieReauth: typeof e.cookieReauthEndpoint\r\n readonly entitlement: typeof e.entitlementEndpoint\r\n readonly playerInfo: typeof e.playerInfoEndpoint\r\n readonly riotGeo: typeof e.riotGeoEndpoint\r\n readonly pasToken: typeof e.pasTokenEndpoint\r\n readonly riotClientConfig: typeof e.riotClientConfigEndpoint\r\n}\r\n\r\nexport const auth: AuthGroup = {\r\n cookies: e.authCookiesEndpoint,\r\n request: e.authRequestEndpoint,\r\n multiFactor: e.multiFactorAuthenticationEndpoint,\r\n cookieReauth: e.cookieReauthEndpoint,\r\n entitlement: e.entitlementEndpoint,\r\n playerInfo: e.playerInfoEndpoint,\r\n riotGeo: e.riotGeoEndpoint,\r\n pasToken: e.pasTokenEndpoint,\r\n riotClientConfig: e.riotClientConfigEndpoint\r\n}\r\n","/**\r\n * Static game data from the community API https://valorant-api.com (skins, agents, maps, ...).\r\n * No authentication. Item schemas describe the common fields of each item.\r\n */\r\nimport {z} from 'zod'\r\nimport {collection, endpoint} from './factory'\r\nimport {agentSchema, asset, mapSchema, seasonSchema, skinSchema, text, versionSchema, weaponSchema} from './schemas'\r\n\r\nconst playable = [['isPlayableCharacter', z.boolean().optional().describe('Only return playable agents. Skips the duplicate Sova.')]] as const\r\n\r\nconst agents = collection('Agents', 'Agent', 'agents', agentSchema, playable)\r\nconst buddies = collection('Buddies', 'Buddy', 'buddies', asset)\r\nconst buddyLevels = collection('Buddy Levels', 'Buddy Level', 'buddies/levels', asset)\r\nconst bundles = collection('Bundles', 'Bundle', 'bundles', asset)\r\nconst ceremonies = collection('Ceremonies', 'Ceremony', 'ceremonies', asset)\r\nconst competitiveTiers = collection('Competitive Tiers', 'Competitive Tier Set', 'competitivetiers', z.object({uuid: z.string(), tiers: z.array(z.object({tier: z.number(), tierName: text, division: text, color: text}).passthrough())}).passthrough())\r\nconst contentTiers = collection('Content Tiers', 'Content Tier', 'contenttiers', asset)\r\nconst contracts = collection('Contracts', 'Contract', 'contracts', asset)\r\nconst currencies = collection('Currencies', 'Currency', 'currencies', asset)\r\nconst events = collection('Events', 'Event', 'events', asset)\r\nconst flex = collection('Flex', 'Flex Item', 'flex', asset)\r\nconst gamemodes = collection('Gamemodes', 'Gamemode', 'gamemodes', asset)\r\nconst gamemodeEquippables = collection('Gamemode Equippables', 'Gamemode Equippable', 'gamemodes/equippables', asset)\r\nconst gear = collection('Gear', 'Gear Item', 'gear', asset)\r\nconst levelBorders = collection('Level Borders', 'Level Border', 'levelborders', asset)\r\nconst maps = collection('Maps', 'Map', 'maps', mapSchema)\r\nconst missions = collection('Missions', 'Mission', 'missions', z.object({uuid: z.string(), displayName: text}).passthrough())\r\nconst playerCards = collection('Player Cards', 'Player Card', 'playercards', asset)\r\nconst playerTitles = collection('Player Titles', 'Player Title', 'playertitles', z.object({uuid: z.string(), displayName: text, titleText: text}).passthrough())\r\nconst seasons = collection('Seasons', 'Season', 'seasons', seasonSchema)\r\nconst competitiveSeasons = collection('Competitive Seasons', 'Competitive Season', 'seasons/competitive', z.object({uuid: z.string(), seasonUuid: z.string(), startTime: z.string(), endTime: z.string()}).passthrough())\r\nconst sprays = collection('Sprays', 'Spray', 'sprays', asset)\r\nconst sprayLevels = collection('Spray Levels', 'Spray Level', 'sprays/levels', asset)\r\nconst themes = collection('Themes', 'Theme', 'themes', asset)\r\nconst weapons = collection('Weapons', 'Weapon', 'weapons', weaponSchema)\r\nconst weaponSkins = collection('Weapon Skins', 'Weapon Skin', 'weapons/skins', skinSchema)\r\nconst weaponSkinChromas = collection('Weapon Skin Chromas', 'Weapon Skin Chroma', 'weapons/skinchromas', asset)\r\nconst weaponSkinLevels = collection('Weapon Skin Levels', 'Weapon Skin Level', 'weapons/skinlevels', asset)\r\n\r\nexport const catalogEndpoints = {\r\n agents: agents.list, agent: agents.one,\r\n buddies: buddies.list, buddy: buddies.one,\r\n buddyLevels: buddyLevels.list, buddyLevel: buddyLevels.one,\r\n bundles: bundles.list, bundle: bundles.one,\r\n ceremonies: ceremonies.list, ceremony: ceremonies.one,\r\n competitiveTiers: competitiveTiers.list, competitiveTier: competitiveTiers.one,\r\n contentTiers: contentTiers.list, contentTier: contentTiers.one,\r\n contracts: contracts.list, contract: contracts.one,\r\n currencies: currencies.list, currency: currencies.one,\r\n events: events.list, event: events.one,\r\n flex: flex.list, flexItem: flex.one,\r\n gamemodes: gamemodes.list, gamemode: gamemodes.one,\r\n gamemodeEquippables: gamemodeEquippables.list, gamemodeEquippable: gamemodeEquippables.one,\r\n gear: gear.list, gearItem: gear.one,\r\n levelBorders: levelBorders.list, levelBorder: levelBorders.one,\r\n maps: maps.list, map: maps.one,\r\n missions: missions.list, mission: missions.one,\r\n playerCards: playerCards.list, playerCard: playerCards.one,\r\n playerTitles: playerTitles.list, playerTitle: playerTitles.one,\r\n seasons: seasons.list, season: seasons.one,\r\n competitiveSeasons: competitiveSeasons.list, competitiveSeason: competitiveSeasons.one,\r\n sprays: sprays.list, spray: sprays.one,\r\n sprayLevels: sprayLevels.list, sprayLevel: sprayLevels.one,\r\n themes: themes.list, theme: themes.one,\r\n version: endpoint('Version', 'Current game version and the matching client version', 'version', versionSchema),\r\n weapons: weapons.list, weapon: weapons.one,\r\n weaponSkins: weaponSkins.list, weaponSkin: weaponSkins.one,\r\n weaponSkinChromas: weaponSkinChromas.list, weaponSkinChroma: weaponSkinChromas.one,\r\n weaponSkinLevels: weaponSkinLevels.list, weaponSkinLevel: weaponSkinLevels.one\r\n} as const\r\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {z, type ZodType} from 'zod'\nimport {markEnveloped} from '../../envelope'\n\nconst BASE = 'https://valorant-api.com/v1/'\n\nfunction query(queryParams: readonly (readonly [string, ZodType])[] = []): Map<string, ZodType> {\n return new Map<string, ZodType>([\n ['language', z.string().optional().describe('Language code such as `fr-FR`. Defaults to `en-US`.')],\n ...queryParams\n ])\n}\n\nexport function endpoint<const P extends string, S extends ZodType>(name: string, description: string, path: P, schema: S, queryParams: readonly (readonly [string, ZodType])[] = []) {\n return markEnveloped({\n name,\n description,\n category: 'Valorant-API.com',\n type: 'other',\n suffix: `${BASE}${path}` as `${typeof BASE}${P}`,\n query: query(queryParams),\n responses: {'200': schema}\n } as const satisfies ValorantEndpoint)\n}\n\n/** A list endpoint and its `/{uuid}` twin. */\nexport function collection<const P extends string, S extends ZodType>(title: string, singular: string, path: P, schema: S, queryParams: readonly (readonly [string, ZodType])[] = []) {\n return {\n list: endpoint(title, `List of ${title.toLowerCase()}`, path, z.array(schema), queryParams),\n one: endpoint(singular, `One ${singular.toLowerCase()} by UUID`, `${path}/{uuid}` as `${P}/{uuid}`, schema)\n }\n}\n","const enveloped = new WeakSet<object>()\n\n/** Marks an endpoint whose body is `{status, data}` and whose schema describes `data` only. */\nexport function markEnveloped<T extends object>(endpoint: T): T {\n enveloped.add(endpoint)\n return endpoint\n}\n\n/** Unwraps `data` for enveloped endpoints, whatever the validation mode. */\nexport function unwrapEnvelope(endpoint: object, body: unknown): unknown {\n if(enveloped.has(endpoint) && typeof body === 'object' && body !== null && 'data' in body) {\n return (body as {data: unknown}).data\n }\n return body\n}\n","import {z} from 'zod'\r\n\r\nexport const text = z.string().nullish()\r\n\r\nexport const asset = z.object({\r\n uuid: z.string(),\r\n displayName: text,\r\n displayIcon: text,\r\n assetPath: text\r\n}).passthrough()\r\n\r\nexport const agentSchema = asset.extend({\r\n description: text,\r\n developerName: text,\r\n characterTags: z.array(z.string()).nullish(),\r\n displayIconSmall: text,\r\n bustPortrait: text,\r\n fullPortrait: text,\r\n killfeedPortrait: text,\r\n background: text,\r\n isPlayableCharacter: z.boolean(),\r\n role: z.object({uuid: z.string(), displayName: text, description: text, displayIcon: text}).passthrough().nullish(),\r\n abilities: z.array(z.object({slot: z.string(), displayName: text, description: text, displayIcon: text}).passthrough()).nullish()\r\n})\r\n\r\nexport const mapSchema = asset.extend({\r\n coordinates: text,\r\n listViewIcon: text,\r\n splash: text,\r\n mapUrl: text,\r\n xMultiplier: z.number(),\r\n yMultiplier: z.number(),\r\n xScalarToAdd: z.number(),\r\n yScalarToAdd: z.number(),\r\n callouts: z.array(z.object({regionName: z.string(), superRegionName: z.string(), location: z.object({x: z.number(), y: z.number()})}).passthrough()).nullish()\r\n})\r\n\r\nexport const weaponSchema = asset.extend({\r\n category: z.string(),\r\n defaultSkinUuid: z.string(),\r\n killStreamIcon: text,\r\n weaponStats: z.object({}).passthrough().nullish(),\r\n shopData: z.object({}).passthrough().nullish(),\r\n skins: z.array(z.object({}).passthrough())\r\n})\r\n\r\nexport const skinSchema = asset.extend({\r\n themeUuid: z.string(),\r\n contentTierUuid: text,\r\n wallpaper: text,\r\n chromas: z.array(asset.passthrough()),\r\n levels: z.array(asset.passthrough())\r\n})\r\n\r\nexport const seasonSchema = z.object({\r\n uuid: z.string(),\r\n displayName: text,\r\n type: text,\r\n startTime: z.string(),\r\n endTime: z.string(),\r\n parentUuid: text,\r\n assetPath: text\r\n}).passthrough()\r\n\r\nexport const versionSchema = z.object({\r\n manifestId: z.string(),\r\n branch: z.string(),\r\n version: z.string(),\r\n buildVersion: z.string(),\r\n engineVersion: z.string(),\r\n riotClientVersion: z.string().describe('Value of the X-Riot-ClientVersion header'),\r\n riotClientBuild: z.string(),\r\n buildDate: z.string()\r\n}).passthrough()\r\n","import {catalogEndpoints} from '../../endpoints/catalog'\n\nexport const catalog = catalogEndpoints\n\nexport type CatalogGroup = typeof catalogEndpoints\n","import {pvp, type PvpGroup} from './groups/pvp'\r\nimport {party, type PartyGroup} from './groups/party'\r\nimport {store, type StoreGroup} from './groups/store'\r\nimport {pregame, type PregameGroup} from './groups/pregame'\r\nimport {currentGame, type CurrentGameGroup} from './groups/currentGame'\r\nimport {contracts, type ContractsGroup} from './groups/contracts'\r\nimport {local, type LocalGroup} from './groups/local'\r\nimport {chat, type ChatGroup} from './groups/chat'\r\nimport {voice, type VoiceGroup} from './groups/voice'\r\nimport {premier, type PremierGroup} from './groups/premier'\r\nimport {esports, type EsportsGroup} from './groups/esports'\r\nimport {restrictions, type RestrictionsGroup} from './groups/restrictions'\r\nimport {account, type AccountGroup} from './groups/account'\r\nimport {auth, type AuthGroup} from './groups/auth'\r\nimport {catalog, type CatalogGroup} from './groups/catalog'\r\n\r\n/** Shape of the registry. Written out with named group types so that declaration files stay small. */\r\nexport interface Registry {\r\n readonly pvp: PvpGroup\r\n readonly party: PartyGroup\r\n readonly store: StoreGroup\r\n readonly pregame: PregameGroup\r\n readonly currentGame: CurrentGameGroup\r\n readonly contracts: ContractsGroup\r\n readonly local: LocalGroup\r\n readonly chat: ChatGroup\r\n readonly voice: VoiceGroup\r\n readonly premier: PremierGroup\r\n readonly esports: EsportsGroup\r\n readonly restrictions: RestrictionsGroup\r\n readonly account: AccountGroup\r\n readonly auth: AuthGroup\r\n readonly catalog: CatalogGroup\r\n}\r\n\r\n/** Every documented HTTP endpoint, grouped and named for the public API. `client.<group>.<name>(options)` is generated from it. */\r\nexport const registry: Registry = {\r\n pvp,\r\n party,\r\n store,\r\n pregame,\r\n currentGame,\r\n contracts,\r\n local,\r\n chat,\r\n voice,\r\n premier,\r\n esports,\r\n restrictions,\r\n account,\r\n auth,\r\n catalog,\r\n}\r\n","import {endpoints as e} from 'valorant-api-types'\nimport type {ValorantClient} from './client'\nimport {ValorantError} from './errors'\n\nexport interface AuthTokens {\n accessToken: string\n idToken: string\n /** Lifetime in seconds. */\n expiresIn: number | undefined\n}\n\nexport type LoginResult =\n | {status: 'success', tokens: AuthTokens | undefined}\n | {status: 'multifactor', email: string}\n\nexport interface LoginOptions {\n username: string\n password: string\n /** hCaptcha token from the Riot login page. */\n captcha: string\n remember?: boolean\n}\n\nexport interface EstablishSessionOptions {\n /** Also look up the client version from valorant-api.com. Default false. */\n fetchClientVersion?: boolean\n}\n\n/** High-level flows that chain several auth endpoints and write their results into the context. */\nexport interface AuthFlows {\n /** Starts a login with credentials. Fragile: Riot requires a captcha. Prefer {@link reauthenticate} or `local.connect()`. */\n login(options: LoginOptions): Promise<LoginResult>\n submitMfa(code: string, rememberDevice?: boolean): Promise<LoginResult>\n /** Gets fresh tokens from the saved `ssid` cookie, then runs {@link establishSession}. */\n reauthenticate(options?: EstablishSessionOptions): Promise<AuthTokens>\n /** From the tokens in the context: entitlement token, puuid, region and shard. */\n establishSession(options?: EstablishSessionOptions): Promise<void>\n /** Reads the current client version from valorant-api.com and stores it. */\n fetchClientVersion(): Promise<string>\n}\n\n/** Extracts tokens from a `...#access_token=...&id_token=...` URL. */\nexport function parseAuthRedirect(location: string): AuthTokens | undefined {\n const fragment = location.split('#')[1]\n if(fragment === undefined) return undefined\n const params = new URLSearchParams(fragment)\n const accessToken = params.get('access_token')\n const idToken = params.get('id_token')\n if(accessToken === null || idToken === null) return undefined\n const expiresIn = Number(params.get('expires_in'))\n return {accessToken, idToken, expiresIn: Number.isFinite(expiresIn) && expiresIn > 0 ? expiresIn : undefined}\n}\n\nconst AUTH_COOKIES_BODY = {\n client_id: 'play-valorant-web-prod',\n nonce: '1',\n redirect_uri: 'https://playvalorant.com/opt_in',\n response_type: 'token id_token',\n scope: 'account openid'\n} as const\n\nexport function createAuthFlows(client: ValorantClient): AuthFlows {\n const ctx = client.context\n\n function applyTokens(tokens: AuthTokens | undefined): void {\n if(tokens) ctx.update({accessToken: tokens.accessToken, idToken: tokens.idToken})\n }\n\n function toLoginResult(data: unknown): LoginResult {\n const body = (data ?? {}) as {type?: string, success?: {redirect_url?: string}, multifactor?: {email?: string}}\n if(body.type === 'multifactor') return {status: 'multifactor', email: body.multifactor?.email ?? ''}\n const redirect = body.success?.redirect_url ?? JSON.stringify(data)\n const tokens = parseAuthRedirect(redirect.replaceAll('\\\\u0026', '&'))\n applyTokens(tokens)\n return {status: 'success', tokens}\n }\n\n return {\n async login(options) {\n await client.auth.cookies({body: AUTH_COOKIES_BODY})\n const data = await client.auth.request({\n body: {\n type: 'auth',\n language: 'en_US',\n remember: options.remember ?? true,\n riot_identity: {captcha: options.captcha, username: options.username, password: options.password}\n }\n })\n return toLoginResult(data)\n },\n\n async submitMfa(code, rememberDevice = true) {\n const data = await client.auth.multiFactor({body: {type: 'multifactor', multifactor: {otp: code, rememberDevice}}})\n return toLoginResult(data)\n },\n\n async reauthenticate(options) {\n const response = await client.send(e.cookieReauthEndpoint)\n const tokens = parseAuthRedirect(response.headers.get('location') ?? '')\n if(tokens === undefined) throw new ValorantError('Cookie reauthentication failed: the session cookies are missing or expired, log in again')\n applyTokens(tokens)\n await this.establishSession(options)\n return tokens\n },\n\n async establishSession(options) {\n const {entitlements_token} = await client.auth.entitlement()\n ctx.set('entitlementToken', entitlements_token)\n\n const info = await client.auth.playerInfo()\n ctx.set('puuid', info.sub)\n\n const geo = await client.auth.riotGeo({body: {id_token: ctx.require('idToken')}})\n ctx.applyAffinity(geo.affinities.live)\n\n if(options?.fetchClientVersion) await this.fetchClientVersion()\n },\n\n async fetchClientVersion() {\n const response = await client.transport({\n method: 'GET',\n url: 'https://valorant-api.com/v1/version',\n headers: {Accept: 'application/json'},\n signal: AbortSignal.timeout(15_000)\n })\n const version = (JSON.parse(response.text) as {data?: {riotClientVersion?: string}}).data?.riotClientVersion\n if(!version) throw new ValorantError('valorant-api.com did not return a client version')\n ctx.set('clientVersion', version)\n return version\n }\n }\n}\n","import type {ZodError} from 'zod'\n\n/** Base class of every error thrown by this library. */\nexport class ValorantError extends Error {\n constructor(message: string, options?: {cause?: unknown}) {\n super(message, options)\n this.name = new.target.name\n }\n}\n\n/** A required context value (token, shard, ...) was not set. */\nexport class MissingContextError extends ValorantError {\n constructor(readonly key: string) {\n super(`Context value \"${key}\" is required for this request but is not set`)\n }\n}\n\n/** A path parameter of the endpoint URL was not provided. */\nexport class MissingParameterError extends ValorantError {\n constructor(readonly parameter: string, readonly endpoint: string) {\n super(`Path parameter \"${parameter}\" is required for \"${endpoint}\"`)\n }\n}\n\n/** The request never produced an HTTP response (network failure, timeout, abort). */\nexport class ValorantNetworkError extends ValorantError {\n constructor(message: string, readonly url: string, options?: {cause?: unknown}) {\n super(message, options)\n }\n}\n\n/** A request body or response body did not match its schema. */\nexport class ValorantValidationError extends ValorantError {\n constructor(\n readonly target: 'request' | 'response',\n readonly endpoint: string,\n readonly issues: ZodError,\n readonly data: unknown\n ) {\n super(`Invalid ${target} for \"${endpoint}\": ${issues.issues.map(i => `${i.path.join('.') || '(root)'}: ${i.message}`).slice(0, 5).join('; ')}`)\n }\n}\n\n/** The server answered with a non-success status code. */\nexport class ValorantApiError extends ValorantError {\n readonly errorCode: string | undefined\n\n constructor(\n readonly status: number,\n readonly endpoint: string,\n readonly url: string,\n readonly body: unknown,\n readonly headers: Headers\n ) {\n const code = extractErrorCode(body)\n super(`${endpoint} failed with HTTP ${status}${code ? ` (${code})` : ''}`)\n this.errorCode = code\n }\n}\n\n/** HTTP 401, or HTTP 400 with BAD_CLAIMS: the access or entitlement token is no longer valid. */\nexport class ValorantAuthError extends ValorantApiError {}\n\n/** HTTP 429. */\nexport class ValorantRateLimitError extends ValorantApiError {\n constructor(status: number, endpoint: string, url: string, body: unknown, headers: Headers, readonly retryAfterMs: number | undefined) {\n super(status, endpoint, url, body, headers)\n }\n}\n\nfunction extractErrorCode(body: unknown): string | undefined {\n if(typeof body === 'object' && body !== null && 'errorCode' in body) {\n const code = (body as {errorCode: unknown}).errorCode\n return typeof code === 'string' ? code : undefined\n }\n return undefined\n}\n","import {MissingContextError} from './errors'\r\nimport {toBase64} from './internal/base64'\r\n\r\n/** Game shard, used in `pd`, `glz` and `shared` hosts. */\r\nexport type Shard = 'na' | 'eu' | 'ap' | 'kr'\r\n\r\n/** Game region (affinity), used in `glz` hosts. */\r\nexport type Region = 'na' | 'latam' | 'br' | 'eu' | 'ap' | 'kr'\r\n\r\n/** Everything the client needs that changes rarely: where to talk, and who we are. */\r\nexport interface ValorantState {\r\n shard: Shard\r\n region: Region\r\n puuid: string\r\n accessToken: string\r\n entitlementToken: string\r\n idToken: string\r\n pasToken: string\r\n /** Value of the `X-Riot-ClientVersion` header, e.g. `release-09.05-shipping-8-2570500`. */\r\n clientVersion: string\r\n /** Value of the `X-Riot-ClientPlatform` header (base64 JSON). */\r\n clientPlatform: string\r\n userAgent: string\r\n /** Cookies of `auth.riotgames.com`, name -> value. The `ssid` cookie enables re-authentication. */\r\n cookies: Record<string, string>\r\n /** Local Riot Client API, from the lockfile. */\r\n localPort: number\r\n localPassword: string\r\n}\r\n\r\nexport type ValorantStateKey = keyof ValorantState\r\n\r\nexport type ContextListener = (state: Readonly<ValorantState>, changed: readonly ValorantStateKey[]) => void\r\n\r\nconst DEFAULT_PLATFORM = toBase64(JSON.stringify({\r\n platformType: 'PC',\r\n platformOS: 'Windows',\r\n platformOSVersion: '10.0.19042.1.256.64bit',\r\n platformChipset: 'Unknown'\r\n}))\r\n\r\nconst SECRET_KEYS: readonly ValorantStateKey[] = ['accessToken', 'entitlementToken', 'idToken', 'pasToken', 'cookies', 'localPassword']\r\n\r\nconst REGION_TO_SHARD: Record<Region, Shard> = {na: 'na', latam: 'na', br: 'na', eu: 'eu', ap: 'ap', kr: 'kr'}\r\n\r\nexport function isRegion(value: string): value is Region {\r\n return Object.hasOwn(REGION_TO_SHARD, value)\r\n}\r\n\r\nexport function shardForRegion(region: Region): Shard {\r\n return REGION_TO_SHARD[region]\r\n}\r\n\r\n/**\r\n * Mutable, observable store for the long-lived values shared by every request.\r\n * Share one instance between clients, or swap its content at any time with {@link replace} / {@link update}.\r\n */\r\nexport class ValorantContext {\r\n #state: Readonly<Partial<ValorantState>>\r\n readonly #listeners = new Set<ContextListener>()\r\n\r\n constructor(initial: Partial<ValorantState> = {}) {\r\n this.#state = Object.freeze({clientPlatform: DEFAULT_PLATFORM, ...stripUndefined(initial)})\r\n }\r\n\r\n get<K extends ValorantStateKey>(key: K): ValorantState[K] | undefined {\r\n return this.#state[key]\r\n }\r\n\r\n /** Like {@link get}, but throws {@link MissingContextError} when the value is not set. */\r\n require<K extends ValorantStateKey>(key: K): ValorantState[K] {\r\n const value = this.#state[key]\r\n if(value === undefined) throw new MissingContextError(key)\r\n return value\r\n }\r\n\r\n has(key: ValorantStateKey): boolean {\r\n return this.#state[key] !== undefined\r\n }\r\n\r\n /** Sets one value. `undefined` removes it. */\r\n set<K extends ValorantStateKey>(key: K, value: ValorantState[K] | undefined): void {\r\n this.update({[key]: value} as Partial<ValorantState>)\r\n }\r\n\r\n /** Merges a patch into the state. Keys set to `undefined` are removed. */\r\n update(patch: {[K in ValorantStateKey]?: ValorantState[K] | undefined}): void {\r\n this.#commit({...this.#state, ...patch})\r\n }\r\n\r\n /** Replaces the whole state. The default client platform is kept unless provided. */\r\n replace(next: Partial<ValorantState>): void {\r\n this.#commit({clientPlatform: DEFAULT_PLATFORM, ...next})\r\n }\r\n\r\n /** Removes everything except the default client platform. */\r\n clear(): void {\r\n this.replace({})\r\n }\r\n\r\n /** Sets region and the matching shard from a Riot affinity (`eu`, `latam`, ...). Unknown values are ignored. */\r\n applyAffinity(affinity: string): boolean {\r\n if(!isRegion(affinity)) return false\r\n this.update({region: affinity, shard: shardForRegion(affinity)})\r\n return true\r\n }\r\n\r\n setCookie(name: string, value: string | undefined): void {\r\n const cookies = {...this.#state.cookies}\r\n if(value === undefined) delete cookies[name]\r\n else cookies[name] = value\r\n this.update({cookies})\r\n }\r\n\r\n cookieHeader(): string | undefined {\r\n const entries = Object.entries(this.#state.cookies ?? {})\r\n return entries.length === 0 ? undefined : entries.map(([name, value]) => `${name}=${value}`).join('; ')\r\n }\r\n\r\n /** Immutable copy of the current state. Contains secrets. */\r\n snapshot(): Readonly<Partial<ValorantState>> {\r\n return this.#state\r\n }\r\n\r\n /** Calls `listener` after every change. Returns an unsubscribe function. */\r\n subscribe(listener: ContextListener): () => void {\r\n this.#listeners.add(listener)\r\n return () => void this.#listeners.delete(listener)\r\n }\r\n\r\n /** State with secrets masked, safe to log. */\r\n redacted(): Record<string, unknown> {\r\n const out: Record<string, unknown> = {...this.#state}\r\n for(const key of SECRET_KEYS) {\r\n if(out[key] !== undefined) out[key] = '[redacted]'\r\n }\r\n return out\r\n }\r\n\r\n toJSON(): Record<string, unknown> {\r\n return this.redacted()\r\n }\r\n\r\n [Symbol.for('nodejs.util.inspect.custom')](): Record<string, unknown> {\r\n return this.redacted()\r\n }\r\n\r\n #commit(next: Partial<ValorantState>): void {\r\n const previous = this.#state\r\n const clean = Object.freeze(stripUndefined(next))\r\n const keys = new Set([...Object.keys(previous), ...Object.keys(clean)]) as Set<ValorantStateKey>\r\n const changed = [...keys].filter(key => !sameValue(previous[key], clean[key]))\r\n if(changed.length === 0) return\r\n\r\n this.#state = clean\r\n for(const listener of [...this.#listeners]) listener(clean as Readonly<ValorantState>, changed)\r\n }\r\n}\r\n\r\nfunction stripUndefined<T extends object>(value: T): T {\r\n return Object.fromEntries(Object.entries(value).filter(([, v]) => v !== undefined)) as T\r\n}\r\n\r\nfunction sameValue(a: unknown, b: unknown): boolean {\r\n if(Object.is(a, b)) return true\r\n if(typeof a !== 'object' || typeof b !== 'object' || a === null || b === null) return false\r\n const aEntries = Object.entries(a)\r\n const bEntries = Object.entries(b)\r\n return aEntries.length === bEntries.length && aEntries.every(([key, value]) => Object.is((b as Record<string, unknown>)[key], value))\r\n}\r\n","export interface HttpRequest {\n method: string\n url: string\n headers: Record<string, string>\n body?: string\n signal?: AbortSignal\n}\n\nexport interface HttpResponse {\n status: number\n headers: Headers\n /** Every `Set-Cookie` header, unfolded. */\n setCookies: string[]\n text: string\n}\n\n/** Sends one HTTP request. Must not follow redirects. */\nexport type Transport = (request: HttpRequest) => Promise<HttpResponse>\n\nexport const fetchTransport: Transport = async request => {\n const response = await fetch(request.url, {\n method: request.method,\n headers: request.headers,\n body: request.body,\n signal: request.signal,\n redirect: 'manual'\n })\n return {\n status: response.status,\n headers: response.headers,\n setCookies: response.headers.getSetCookie(),\n text: await response.text()\n }\n}\n\n/**\n * Transport for the local Riot Client API, which serves a self-signed certificate.\n * Certificate checks are disabled for this transport only, and it refuses any host but loopback.\n */\nexport const localTransport: Transport = async request => {\n const {request: httpsRequest} = await import('node:https')\n const url = new URL(request.url)\n if(url.hostname !== '127.0.0.1' && url.hostname !== 'localhost') {\n throw new Error(`localTransport only talks to loopback hosts, got ${url.hostname}`)\n }\n\n return new Promise<HttpResponse>((resolve, reject) => {\n const req = httpsRequest(url, {\n method: request.method,\n headers: request.headers,\n rejectUnauthorized: false,\n signal: request.signal\n }, res => {\n const chunks: Buffer[] = []\n res.on('data', (chunk: Buffer) => chunks.push(chunk))\n res.on('error', reject)\n res.on('end', () => {\n const headers = new Headers()\n for(const [name, value] of Object.entries(res.headers)) {\n if(Array.isArray(value)) value.forEach(v => headers.append(name, v))\n else if(value !== undefined) headers.set(name, value)\n }\n resolve({\n status: res.statusCode ?? 0,\n headers,\n setCookies: res.headers['set-cookie'] ?? [],\n text: Buffer.concat(chunks).toString('utf8')\n })\n })\n })\n req.on('error', reject)\n req.end(request.body)\n })\n}\n","import {ZodError, type SafeParseReturnType, type ZodType} from 'zod'\n\nexport function parseBody(text: string): unknown {\n if(text === '') return undefined\n try {\n return JSON.parse(text)\n } catch {\n return text\n }\n}\n\n/** `safeParse` that also catches errors thrown by schema transforms. */\nexport function safeParse(schema: ZodType, data: unknown): SafeParseReturnType<unknown, unknown> {\n try {\n return schema.safeParse(data)\n } catch(thrown) {\n if(thrown instanceof ZodError) return {success: false, error: thrown}\n const message = thrown instanceof Error ? thrown.message : String(thrown)\n return {success: false, error: new ZodError([{code: 'custom', path: [], message: `Schema transform threw: ${message}`}])}\n }\n}\n","import type {ValorantContext} from '../context'\n\n/** Stores the name and value of every `Set-Cookie` line in the context. Expired and empty cookies are removed. */\nexport function storeCookies(context: ValorantContext, setCookies: readonly string[]): void {\n for(const line of setCookies) {\n const [pair = '', ...attributes] = line.split(';').map(part => part.trim())\n const separator = pair.indexOf('=')\n if(separator <= 0) continue\n\n const name = pair.slice(0, separator)\n const value = pair.slice(separator + 1)\n const expired = value === '' || attributes.some(a => a.toLowerCase() === 'max-age=0')\n context.setCookie(name, expired ? undefined : value)\n }\n}\n","export interface RetryOptions {\n /** Extra attempts after the first one. Default 2. */\n retries?: number\n baseDelayMs?: number\n maxDelayMs?: number\n}\n\nconst RETRYABLE_STATUS = new Set([429, 500, 502, 503, 504])\nconst IDEMPOTENT = new Set(['GET', 'HEAD', 'PUT', 'DELETE'])\n\nexport function isIdempotent(method: string): boolean {\n return IDEMPOTENT.has(method)\n}\n\n/** 429 is always safe to retry because the server did not process the request. */\nexport function isRetryableStatus(status: number, method: string): boolean {\n return RETRYABLE_STATUS.has(status) && (status === 429 || isIdempotent(method))\n}\n\nexport function parseRetryAfter(value: string | null): number | undefined {\n if(value === null) return undefined\n const seconds = Number(value)\n if(Number.isFinite(seconds)) return seconds * 1000\n const date = Date.parse(value)\n return Number.isNaN(date) ? undefined : Math.max(0, date - Date.now())\n}\n\nexport function backoff(attempt: number, retry: RetryOptions | undefined): number {\n const base = retry?.baseDelayMs ?? 500\n const max = retry?.maxDelayMs ?? 8000\n return Math.min(max, base * 2 ** attempt) * (0.5 + Math.random() / 2)\n}\n\nexport function sleep(ms: number, signal?: AbortSignal): Promise<void> {\n return new Promise(resolve => {\n const timer = setTimeout(done, ms)\n signal?.addEventListener('abort', done, {once: true})\n\n function done() {\n clearTimeout(timer)\n signal?.removeEventListener('abort', done)\n resolve()\n }\n })\n}\n","import type {ValorantEndpoint} from 'valorant-api-types'\nimport {ValorantApiError, ValorantAuthError, ValorantRateLimitError} from '../errors'\nimport type {HttpRequest, HttpResponse} from '../http'\nimport {parseBody} from './body'\nimport {parseRetryAfter} from './retry'\n\n/** Maps a non-success response to the most specific error class. */\nexport function toApiError(endpoint: ValorantEndpoint, request: HttpRequest, response: HttpResponse): ValorantApiError {\n const body = parseBody(response.text)\n const args = [response.status, endpoint.name, request.url, body, response.headers] as const\n\n if(response.status === 429) return new ValorantRateLimitError(...args, parseRetryAfter(response.headers.get('retry-after')))\n\n const needsToken = endpoint.riotRequirements?.token === true\n const badClaims = typeof body === 'object' && body !== null && (body as {errorCode?: unknown}).errorCode === 'BAD_CLAIMS'\n if(needsToken && (response.status === 401 || (response.status === 400 && badClaims))) return new ValorantAuthError(...args)\n\n return new ValorantApiError(...args)\n}\n","import {z, type ZodType} from 'zod'\r\n\r\ntype AnyDef = Record<string, unknown> & {typeName?: string}\r\ntype Rebuild = (def: AnyDef, map: (schema: ZodType) => ZodType) => AnyDef\r\n\r\n/**\r\n * The published schemas require the platform type `\"PC\"`, while the game sends `\"pc\"`.\r\n * Walks a schema and makes every `z.literal('PC')` accept any casing. Parsed values are the upper case literal, like the types say.\r\n */\r\nconst cache = new WeakMap<ZodType, ZodType>()\r\n\r\nconst children: Record<string, Rebuild> = {\r\n ZodObject: (def, map) => {\r\n const shape = (def['shape'] as () => Record<string, ZodType>)()\r\n return {...def, shape: () => Object.fromEntries(Object.entries(shape).map(([key, value]) => [key, map(value)]))}\r\n },\r\n ZodArray: (def, map) => ({...def, type: map(def['type'] as ZodType)}),\r\n ZodOptional: (def, map) => ({...def, innerType: map(def['innerType'] as ZodType)}),\r\n ZodNullable: (def, map) => ({...def, innerType: map(def['innerType'] as ZodType)}),\r\n ZodDefault: (def, map) => ({...def, innerType: map(def['innerType'] as ZodType)}),\r\n ZodCatch: (def, map) => ({...def, innerType: map(def['innerType'] as ZodType)}),\r\n ZodReadonly: (def, map) => ({...def, innerType: map(def['innerType'] as ZodType)}),\r\n ZodBranded: (def, map) => ({...def, type: map(def['type'] as ZodType)}),\r\n ZodEffects: (def, map) => ({...def, schema: map(def['schema'] as ZodType)}),\r\n ZodUnion: (def, map) => ({...def, options: (def['options'] as ZodType[]).map(map)}),\r\n ZodIntersection: (def, map) => ({...def, left: map(def['left'] as ZodType), right: map(def['right'] as ZodType)}),\r\n ZodRecord: (def, map) => ({...def, keyType: map(def['keyType'] as ZodType), valueType: map(def['valueType'] as ZodType)}),\r\n ZodTuple: (def, map) => ({...def, items: (def['items'] as ZodType[]).map(map)}),\r\n ZodDiscriminatedUnion: (def, map) => {\r\n const optionsMap = new Map([...(def['optionsMap'] as Map<unknown, ZodType>)].map(([key, option]) => [key, map(option)]))\r\n return {...def, options: [...optionsMap.values()], optionsMap}\r\n }\r\n}\r\n\r\nfunction lenientPc(literal: ZodType): ZodType {\r\n return z.preprocess(value => (typeof value === 'string' ? value.toUpperCase() : value), literal)\r\n}\r\n\r\nexport function normalizePlatformLiterals<T extends ZodType>(schema: T): T {\r\n const known = cache.get(schema)\r\n if(known) return known as T\r\n\r\n const def = schema._def as AnyDef\r\n let result: ZodType = schema\r\n\r\n if(def.typeName === 'ZodLiteral' && def['value'] === 'PC') {\r\n result = lenientPc(schema)\r\n } else if(def.typeName === 'ZodLazy') {\r\n const getter = def['getter'] as () => ZodType\r\n result = new (schema.constructor as new (def: unknown) => ZodType)({...def, getter: () => normalizePlatformLiterals(getter())})\r\n } else if(def.typeName && children[def.typeName]) {\r\n const Type = schema.constructor as new (def: unknown) => ZodType\r\n result = new Type(children[def.typeName]!(def, normalizePlatformLiterals))\r\n }\r\n\r\n cache.set(schema, result)\r\n return result as T\r\n}\r\n","/** Teams of a custom game. Coach teams only accept players while the `tournamentMode` rule is on. */\nexport const CustomGameTeam = {\n Defenders: 'TeamOne',\n Attackers: 'TeamTwo',\n Spectators: 'TeamSpectate',\n DefenderCoaches: 'TeamOneCoaches',\n AttackerCoaches: 'TeamTwoCoaches'\n} as const\n\nexport type CustomGameTeam = (typeof CustomGameTeam)[keyof typeof CustomGameTeam]\n\n/** Key of each team in `CustomGameData.Membership`. */\nexport const MEMBERSHIP_KEY = {\n TeamOne: 'teamOne',\n TeamTwo: 'teamTwo',\n TeamSpectate: 'teamSpectate',\n TeamOneCoaches: 'teamOneCoaches',\n TeamTwoCoaches: 'teamTwoCoaches'\n} as const satisfies Record<CustomGameTeam, string>\n\n/** Maps of the Standard mode. Values are the paths the lobby settings use. */\nexport const CustomGameMap = {\n Ascent: '/Game/Maps/Ascent/Ascent',\n Split: '/Game/Maps/Bonsai/Bonsai',\n Fracture: '/Game/Maps/Canyon/Canyon',\n Bind: '/Game/Maps/Duality/Duality',\n Breeze: '/Game/Maps/Foxtrot/Foxtrot',\n Abyss: '/Game/Maps/Infinity/Infinity',\n Lotus: '/Game/Maps/Jam/Jam',\n Sunset: '/Game/Maps/Juliett/Juliett',\n Pearl: '/Game/Maps/Pitt/Pitt',\n Summit: '/Game/Maps/Plummet/Plummet',\n Icebox: '/Game/Maps/Port/Port',\n Corrode: '/Game/Maps/Rook/Rook',\n Haven: '/Game/Maps/Triad/Triad'\n} as const\n\nexport type CustomGameMap = (typeof CustomGameMap)[keyof typeof CustomGameMap]\n\n/** Game modes of a custom game. Skirmish picks its own map. */\nexport const CustomGameMode = {\n Standard: '/Game/GameModes/Bomb/BombGameMode.BombGameMode_C',\n SpikeRush: '/Game/GameModes/QuickBomb/QuickBombGameMode.QuickBombGameMode_C',\n Deathmatch: '/Game/GameModes/Deathmatch/DeathmatchGameMode.DeathmatchGameMode_C',\n Escalation: '/Game/GameModes/GunGame/GunGameTeamsGameMode.GunGameTeamsGameMode_C',\n Skirmish: '/Game/GameModes/Skirmish/SkirmishGameMode.SkirmishGameMode_C'\n} as const\n\nexport type CustomGameMode = (typeof CustomGameMode)[keyof typeof CustomGameMode]\n\n/** Rules of a custom game, as booleans. Each one maps to a game rule key. */\nexport interface CustomGameRules {\n allowGameModifiers?: boolean\n playOutAllRounds?: boolean\n skipMatchHistory?: boolean\n /** Needed for coaches. */\n tournamentMode?: boolean\n overtimeWinByTwo?: boolean\n}\n\nexport const RULE_KEY = {\n allowGameModifiers: 'AllowGameModifiers',\n playOutAllRounds: 'PlayOutAllRounds',\n skipMatchHistory: 'SkipMatchHistory',\n tournamentMode: 'TournamentMode',\n overtimeWinByTwo: 'IsOvertimeWinByTwo'\n} as const satisfies Record<keyof CustomGameRules, string>\n\nfunction reverse<T extends Record<string, string>>(table: T): Map<string, keyof T & string> {\n return new Map(Object.entries(table).map(([name, value]) => [value, name]))\n}\n\nconst mapNames = reverse(CustomGameMap)\nconst modeNames = reverse(CustomGameMode)\n\n/** `'/Game/Maps/Bonsai/Bonsai'` becomes `'Split'`. Undefined for a path outside the table. */\nexport function customGameMapName(path: string): keyof typeof CustomGameMap | undefined {\n return mapNames.get(path)\n}\n\n/** `'/Game/GameModes/Bomb/BombGameMode.BombGameMode_C'` becomes `'Standard'`. */\nexport function customGameModeName(path: string): keyof typeof CustomGameMode | undefined {\n return modeNames.get(path)\n}\n\n/** The team a player is on, from `CustomGameData.Membership`. */\nexport function teamOfPlayer(membership: Partial<Record<(typeof MEMBERSHIP_KEY)[CustomGameTeam], readonly {Subject: string}[]>>, puuid: string): CustomGameTeam | undefined {\n for(const team of Object.values(CustomGameTeam)) {\n if(membership[MEMBERSHIP_KEY[team]]?.some(member => member.Subject === puuid)) return team\n }\n return undefined\n}\n","import type {ValorantClient} from '../client'\r\nimport type {CustomGameParty} from '../endpoints/riot/party'\r\nimport {RULE_KEY, type CustomGameMap, type CustomGameMode, type CustomGameRules, type CustomGameTeam} from './mappings'\r\n\r\nexport interface LobbyTarget {\r\n /** Defaults to the party of the signed-in player. */\r\n partyId?: string\r\n}\r\n\r\nexport interface AssignOptions extends LobbyTarget {\r\n /** Defaults to the signed-in player. Only the party owner can move other players. */\r\n puuid?: string\r\n}\r\n\r\nexport interface LobbyOptions extends LobbyTarget {\r\n map?: CustomGameMap\r\n mode?: CustomGameMode\r\n gamePod?: string\r\n rules?: CustomGameRules\r\n}\r\n\r\nexport type CustomGameSettings = CustomGameParty['CustomGameData']['Settings']\r\n\r\n/** Helpers of `client.party` for custom games. */\r\nexport interface PartyFlows {\r\n /** Moves a player to a team, for example `CustomGameTeam.Attackers`. Resolves to the updated party. */\r\n assignToTeam(team: CustomGameTeam, options?: AssignOptions): Promise<CustomGameParty>\r\n /** Changes the lobby options. Options you leave out keep their current value. Resolves to the new settings. */\r\n configureLobby(options: LobbyOptions): Promise<CustomGameSettings>\r\n}\r\n\r\nconst DEFAULT_RULES = {\r\n AllowGameModifiers: 'false',\r\n PlayOutAllRounds: 'false',\r\n SkipMatchHistory: 'false',\r\n TournamentMode: 'false',\r\n IsOvertimeWinByTwo: 'false'\r\n} as const\r\n\r\ntype RuleValue = 'true' | 'false'\r\n\r\nfunction ruleStrings(rules: CustomGameRules | undefined): Partial<Record<(typeof RULE_KEY)[keyof typeof RULE_KEY], RuleValue>> {\r\n const out: Partial<Record<(typeof RULE_KEY)[keyof typeof RULE_KEY], RuleValue>> = {}\r\n for(const [name, key] of Object.entries(RULE_KEY) as [keyof CustomGameRules, (typeof RULE_KEY)[keyof CustomGameRules]][]) {\r\n const value = rules?.[name]\r\n if(value !== undefined) out[key] = value ? 'true' : 'false'\r\n }\r\n return out\r\n}\r\n\r\nfunction currentRules(gameRules: Record<string, string> | null): Partial<Record<keyof typeof DEFAULT_RULES, RuleValue>> {\r\n const out: Partial<Record<keyof typeof DEFAULT_RULES, RuleValue>> = {}\r\n for(const key of Object.keys(DEFAULT_RULES) as (keyof typeof DEFAULT_RULES)[]) {\r\n const value = gameRules?.[key]\r\n if(value === 'true' || value === 'false') out[key] = value\r\n }\r\n return out\r\n}\r\n\r\nexport function createPartyFlows(client: ValorantClient): PartyFlows {\r\n async function partyIdOf(target: LobbyTarget): Promise<string> {\r\n if(target.partyId !== undefined) return target.partyId\r\n return (await client.party.player({validation: 'off'})).CurrentPartyID\r\n }\r\n\r\n return {\r\n async assignToTeam(team, options = {}) {\r\n const partyId = await partyIdOf(options)\r\n const puuid = options.puuid ?? client.context.require('puuid')\r\n return client.party.setCustomGameTeam({params: {partyId, team}, body: {playerToPutOnTeam: puuid}})\r\n },\r\n\r\n async configureLobby(options) {\r\n const partyId = await partyIdOf(options)\r\n const {Settings: current} = (await client.party.getCustomGame({params: {partyId}, validation: 'off'})).CustomGameData\r\n\r\n await client.party.setCustomGameSettings({\r\n params: {partyId},\r\n validation: 'off',\r\n body: {\r\n Map: options.map ?? current.Map,\r\n Mode: options.mode ?? current.Mode,\r\n UseBots: current.UseBots,\r\n GamePod: options.gamePod ?? current.GamePod,\r\n GameRules: {...DEFAULT_RULES, ...currentRules(current.GameRules), ...ruleStrings(options.rules)}\r\n }\r\n })\r\n\r\n return (await client.party.getCustomGame({params: {partyId}})).CustomGameData.Settings\r\n }\r\n }\r\n}\r\n","const VERSION_LINE = /CI server version: (release-[\\w.]+-shipping-\\d+-\\d+)/\n\n/**\n * Client version of the installed game, read from its log. This is the exact value the game sends in `X-Riot-ClientVersion`,\n * and it can be newer than the one a public API reports. Returns `undefined` when the log is missing.\n */\nexport async function readInstalledClientVersion(logPath?: string): Promise<string | undefined> {\n const {readFile} = await import('node:fs/promises')\n const {join} = await import('node:path')\n const file = logPath ?? join(process.env['LOCALAPPDATA'] ?? '', 'VALORANT', 'Saved', 'Logs', 'ShooterGame.log')\n try {\n return VERSION_LINE.exec(await readFile(file, 'latin1'))?.[1]\n } catch {\n return undefined\n }\n}\n","import type {ValorantClient} from './client'\r\nimport type {ValorantContext} from './context'\r\nimport {isRegion, shardForRegion} from './context'\r\nimport {ValorantError} from './errors'\r\nimport {readInstalledClientVersion} from './internal/gamelog'\r\nimport {basicAuth} from './internal/base64'\r\n\r\nexport interface Lockfile {\r\n name: string\r\n pid: number\r\n port: number\r\n password: string\r\n protocol: string\r\n}\r\n\r\nexport interface LocalConnectOptions {\r\n /** Defaults to `%LOCALAPPDATA%\\Riot Games\\Riot Client\\Config\\lockfile`. */\r\n lockfilePath?: string\r\n /** Defaults to `%LOCALAPPDATA%\\VALORANT\\Saved\\Logs\\ShooterGame.log`, where the installed client version is read from. */\r\n gameLogPath?: string\r\n /** When the game log has no version, look it up on valorant-api.com. Default true. */\r\n fetchClientVersion?: boolean\r\n}\r\n\r\nexport interface LocalEvent {\r\n eventType: 'Create' | 'Update' | 'Delete'\r\n uri: string\r\n data: unknown\r\n}\r\n\r\n/** Live event stream of the local Riot Client (`wss://127.0.0.1:{port}`). Needs the optional `ws` package. */\r\nexport interface LocalEventStream {\r\n /** Receives every event of the subscribed names. Returns an unsubscribe function. */\r\n onEvent(listener: (name: string, event: LocalEvent) => void): () => void\r\n subscribe(eventName: string): void\r\n unsubscribe(eventName: string): void\r\n close(): void\r\n}\r\n\r\nexport interface LocalFlows {\r\n /** Reads the lockfile and fills the context: local port/password, tokens, puuid, region, shard and client version. */\r\n connect(options?: LocalConnectOptions): Promise<void>\r\n /** Opens the local websocket. Subscribe to `OnJsonApiEvent` for everything. */\r\n events(): Promise<LocalEventStream>\r\n}\r\n\r\nexport function parseLockfile(content: string): Lockfile {\r\n const [name, pid, port, password, protocol] = content.trim().split(':')\r\n if(!name || !pid || !port || !password || !protocol) throw new ValorantError('Malformed lockfile')\r\n return {name, pid: Number(pid), port: Number(port), password, protocol}\r\n}\r\n\r\nexport async function readLockfile(path?: string): Promise<Lockfile> {\r\n const {readFile} = await import('node:fs/promises')\r\n const {join} = await import('node:path')\r\n const file = path ?? join(process.env['LOCALAPPDATA'] ?? '', 'Riot Games', 'Riot Client', 'Config', 'lockfile')\r\n try {\r\n return parseLockfile(await readFile(file, 'utf8'))\r\n } catch(cause) {\r\n throw new ValorantError(`Could not read the Riot Client lockfile at \"${file}\". Is the Riot Client running?`, {cause})\r\n }\r\n}\r\n\r\nexport function createLocalFlows(client: ValorantClient): LocalFlows {\r\n const ctx = client.context\r\n\r\n return {\r\n async connect(options) {\r\n const lockfile = await readLockfile(options?.lockfilePath)\r\n ctx.update({localPort: lockfile.port, localPassword: lockfile.password})\r\n\r\n const tokens = await client.local.entitlementsToken()\r\n ctx.update({accessToken: tokens.accessToken, entitlementToken: tokens.token, puuid: tokens.subject})\r\n\r\n const sessions = await client.local.sessions()\r\n const valorant = Object.values(sessions).find(session => session.productId === 'valorant')\r\n if(valorant) {\r\n const region = launchArgument(valorant.launchConfiguration.arguments, 'ares-deployment')\r\n if(region !== undefined && isRegion(region)) ctx.update({region, shard: shardForRegion(region)})\r\n }\r\n\r\n // VALORANT is not running: fall back to the account affinity.\r\n if(!ctx.has('region')) {\r\n const info = await client.auth.playerInfo()\r\n const affinity = Object.values(info.affinity ?? {}).find(isRegion)\r\n if(affinity !== undefined) ctx.applyAffinity(affinity)\r\n }\r\n\r\n // The game log holds the installed version. The public version API is the fallback.\r\n const installed = await readInstalledClientVersion(options?.gameLogPath)\r\n if(installed !== undefined) ctx.set('clientVersion', installed)\r\n else if(options?.fetchClientVersion !== false) await client.auth.fetchClientVersion().catch(() => undefined)\r\n },\r\n\r\n async events() {\r\n return openEventStream(ctx)\r\n }\r\n }\r\n}\r\n\r\nfunction launchArgument(args: readonly string[], name: string): string | undefined {\r\n const prefix = `-${name}=`\r\n return args.find(arg => arg.startsWith(prefix))?.slice(prefix.length)\r\n}\r\n\r\nasync function openEventStream(ctx: ValorantContext): Promise<LocalEventStream> {\r\n let WebSocket: typeof import('ws').WebSocket\r\n try {\r\n WebSocket = (await import('ws')).WebSocket\r\n } catch(cause) {\r\n throw new ValorantError('The local event stream needs the optional \"ws\" package: npm install ws', {cause})\r\n }\r\n\r\n const socket = new WebSocket(`wss://127.0.0.1:${ctx.require('localPort')}`, {\r\n headers: {Authorization: basicAuth('riot', ctx.require('localPassword'))},\r\n rejectUnauthorized: false\r\n })\r\n const listeners = new Set<(name: string, event: LocalEvent) => void>()\r\n\r\n socket.on('message', raw => {\r\n const text = raw.toString()\r\n if(text === '') return\r\n const message = JSON.parse(text) as unknown\r\n if(!Array.isArray(message) || message[0] !== 8) return\r\n for(const listener of [...listeners]) listener(String(message[1]), message[2] as LocalEvent)\r\n })\r\n\r\n await new Promise<void>((resolve, reject) => {\r\n socket.once('open', resolve)\r\n socket.once('error', reject)\r\n })\r\n\r\n return {\r\n onEvent(listener) {\r\n listeners.add(listener)\r\n return () => void listeners.delete(listener)\r\n },\r\n subscribe: eventName => socket.send(JSON.stringify([5, eventName])),\r\n unsubscribe: eventName => socket.send(JSON.stringify([6, eventName])),\r\n close: () => socket.close()\r\n }\r\n}\r\n","import type {ValorantClient} from '../client'\r\nimport type {selectCharacterEndpoint} from '../endpoints/riot/agentSelect'\r\nimport type {EndpointResult} from '../types'\r\nimport type {Agent} from './agents'\r\n\r\nexport interface PickAgentOptions {\r\n /** Defaults to the agent select the signed-in player is in. */\r\n matchId?: string\r\n /** Lock the agent after selecting it. Locking is final, and the match loads once everyone has locked. Default false. */\r\n lock?: boolean\r\n}\r\n\r\nexport type AgentSelectState = EndpointResult<typeof selectCharacterEndpoint>\r\n\r\n/** Helpers of `client.pregame` for the agent select. */\r\nexport interface PregameFlows {\r\n /**\r\n * Picks an agent. Selecting shows your choice to the team and can still be changed, locking is final.\r\n * Resolves to the agent select after the last call.\r\n */\r\n pickAgent(agent: Agent, options?: PickAgentOptions): Promise<AgentSelectState>\r\n}\r\n\r\nexport function createPregameFlows(client: ValorantClient): PregameFlows {\r\n return {\r\n async pickAgent(agent, options = {}) {\r\n const preGameMatchId = options.matchId ?? (await client.pregame.player({validation: 'off'})).MatchID\r\n const params = {preGameMatchId, agentId: agent}\r\n\r\n const selected = await client.pregame.selectCharacter({params})\r\n return options.lock ? client.pregame.lockCharacter({params}) : selected\r\n }\r\n }\r\n}\r\n","import {typeToPrefix, type ValorantEndpoint} from 'valorant-api-types'\r\nimport type {ValorantContext} from './context'\r\nimport type {HttpRequest} from './http'\r\nimport {MissingParameterError} from './errors'\r\nimport {paramName, type CallOptions, type QueryInput} from './types'\r\nimport {basicAuth} from './internal/base64'\r\n\r\nexport interface RequestInput extends CallOptions {\r\n params?: Record<string, string | undefined>\r\n query?: QueryInput\r\n body?: unknown\r\n}\r\n\r\nconst AUTH_HOST = 'auth.riotgames.com'\r\n\r\n/** Endpoints whose documented URL hardcodes a value that belongs to the context. */\r\nfunction applyQuirks(path: string, ctx: ValorantContext): string {\r\n const hardcoded = '/leaderboards/affinity/na/'\r\n return path.includes(hardcoded) ? path.replace(hardcoded, `/leaderboards/affinity/${ctx.require('shard')}/`) : path\r\n}\r\n\r\nfunction resolvePath(endpoint: ValorantEndpoint, input: RequestInput, ctx: ValorantContext): string {\r\n const suffix = applyQuirks(endpoint.suffix, ctx)\r\n return suffix.replace(/\\{([^}]+)\\}/g, (_, variable: string) => {\r\n const name = paramName(variable)\r\n const value = input.params?.[name] ?? (name === 'puuid' || name === 'region' ? ctx.require(name) : undefined)\r\n if(value === undefined) throw new MissingParameterError(name, endpoint.name)\r\n return encodeURIComponent(value)\r\n })\r\n}\r\n\r\nfunction resolveBase(endpoint: ValorantEndpoint, ctx: ValorantContext): string {\r\n switch(endpoint.type) {\r\n case 'pd':\r\n case 'shared':\r\n return typeToPrefix({type: endpoint.type, shard: ctx.require('shard')})\r\n case 'glz':\r\n return typeToPrefix({type: 'glz', shard: ctx.require('shard'), region: ctx.require('region')})\r\n case 'local':\r\n return typeToPrefix({type: 'local', port: ctx.require('localPort')})\r\n case 'other':\r\n return ''\r\n }\r\n}\r\n\r\nfunction appendQuery(url: string, query: QueryInput | undefined): string {\r\n if(!query) return url\r\n const params = new URLSearchParams()\r\n for(const [key, value] of Object.entries(query)) {\r\n if(value !== undefined && value !== null) params.append(key, String(value))\r\n }\r\n const encoded = params.toString()\r\n if(encoded === '') return url\r\n return url + (url.includes('?') ? '&' : '?') + encoded\r\n}\r\n\r\nfunction resolveHeaders(endpoint: ValorantEndpoint, input: RequestInput, ctx: ValorantContext, url: string): Record<string, string> {\r\n const headers: Record<string, string> = {Accept: 'application/json'}\r\n const need = endpoint.riotRequirements ?? {}\r\n\r\n const userAgent = ctx.get('userAgent')\r\n if(userAgent) headers['User-Agent'] = userAgent\r\n if(need.token) headers['Authorization'] = `Bearer ${ctx.require('accessToken')}`\r\n if(need.localAuth) headers['Authorization'] = basicAuth('riot', ctx.require('localPassword'))\r\n if(need.entitlement) headers['X-Riot-Entitlements-JWT'] = ctx.require('entitlementToken')\r\n if(need.clientVersion) headers['X-Riot-ClientVersion'] = ctx.require('clientVersion')\r\n if(need.clientPlatform) headers['X-Riot-ClientPlatform'] = ctx.require('clientPlatform')\r\n\r\n for(const [name, value] of endpoint.headers ?? []) headers[name] = value\r\n if(input.body !== undefined && !Object.keys(headers).some(h => h.toLowerCase() === 'content-type')) {\r\n headers['Content-Type'] = 'application/json'\r\n }\r\n\r\n if(new URL(url).hostname === AUTH_HOST) {\r\n const cookie = ctx.cookieHeader()\r\n if(cookie) headers['Cookie'] = cookie\r\n }\r\n\r\n return {...headers, ...input.headers}\r\n}\r\n\r\nexport function isAuthHost(url: string): boolean {\r\n return new URL(url).hostname === AUTH_HOST\r\n}\r\n\r\nexport function buildRequest(endpoint: ValorantEndpoint, input: RequestInput, ctx: ValorantContext): HttpRequest {\r\n const path = resolvePath(endpoint, input, ctx)\r\n const base = resolveBase(endpoint, ctx)\r\n const url = appendQuery(base + (base === '' ? path : path.replace(/^\\/+/, '')), input.query)\r\n\r\n const method = endpoint.method ?? 'GET'\r\n const headers = resolveHeaders(endpoint, input, ctx, url)\r\n const declaresJson = [...(endpoint.headers?.keys() ?? [])].some(h => h.toLowerCase() === 'content-type')\r\n const body = input.body !== undefined ? JSON.stringify(input.body) : (method !== 'GET' && declaresJson ? '{}' : undefined)\r\n\r\n return {method, url, headers, body}\r\n}\r\n","import type {z, ZodType} from 'zod'\nimport type {ValorantEndpoint} from 'valorant-api-types'\n\nexport type ValidationMode =\n /** Validate request bodies and responses, throw on mismatch. */\n | 'strict'\n /** Validate responses, report mismatches to the logger and return the raw data. */\n | 'loose'\n /** Return raw data untouched. */\n | 'off'\n\n/** Path parameters that fall back to the context when omitted. */\ntype ContextParam = 'puuid' | 'region'\n\ntype Replace<S extends string, From extends string, To extends string> =\n S extends `${infer A}${From}${infer B}` ? `${A}${To}${Replace<B, From, To>}` : S\n\ntype CamelWords<S extends string> = S extends `${infer H} ${infer T}` ? `${H}${Capitalize<CamelWords<T>>}` : S\n\n/** `pre-game match id` -> `preGameMatchId` */\nexport type ParamName<V extends string> = Uncapitalize<CamelWords<Replace<V, '-', ' '>>>\n\ntype PathVars<S extends string> = S extends `${string}{${infer V}}${infer R}` ? V | PathVars<R> : never\n\ntype ParamNames<E extends ValorantEndpoint> = ParamName<PathVars<E['suffix']>>\n\ntype RequiredParams<E extends ValorantEndpoint> = Exclude<ParamNames<E>, ContextParam>\n\ntype ParamsOption<E extends ValorantEndpoint> = [RequiredParams<E>] extends [never]\n ? {params?: {[K in ParamNames<E>]?: string}}\n : {params: {[K in RequiredParams<E>]: string} & {[K in Extract<ParamNames<E>, ContextParam>]?: string}}\n\ntype BodyOption<E extends ValorantEndpoint> = E extends {body: infer B extends ZodType}\n ? {body: z.input<B>}\n : {body?: undefined}\n\nexport type QueryValue = string | number | boolean | null | undefined\nexport type QueryInput = Record<string, QueryValue>\n\nexport interface CallOptions {\n signal?: AbortSignal\n timeoutMs?: number\n /** Extra headers, applied last. */\n headers?: Record<string, string>\n validation?: ValidationMode\n}\n\nexport type EndpointCallOptions<E extends ValorantEndpoint> =\n CallOptions & {query?: QueryInput} & ParamsOption<E> & BodyOption<E>\n\ntype SuccessCode = '200' | '201' | '202' | '204'\n\n/** Parsed (schema output) type of the success response. `unknown` when the endpoint has no documented response. */\nexport type EndpointResult<E extends ValorantEndpoint> = E extends {responses: infer R extends Record<string, ZodType>}\n ? [keyof R & SuccessCode] extends [never]\n ? unknown\n : {[K in keyof R & SuccessCode]: z.output<R[K]>}[keyof R & SuccessCode]\n : unknown\n\ntype HasRequiredInput<E extends ValorantEndpoint> =\n [RequiredParams<E>] extends [never] ? (E extends {body: ZodType} ? true : false) : true\n\nexport type EndpointMethod<E extends ValorantEndpoint> = HasRequiredInput<E> extends true\n ? (options: EndpointCallOptions<E>) => Promise<EndpointResult<E>>\n : (options?: EndpointCallOptions<E>) => Promise<EndpointResult<E>>\n\nexport interface ValorantResponse<T> {\n status: number\n headers: Headers\n data: T\n}\n\n/** Runtime twin of {@link ParamName}. */\nexport function paramName(variable: string): string {\n const [first = '', ...rest] = variable.replaceAll('-', ' ').split(' ')\n return first.charAt(0).toLowerCase() + first.slice(1) + rest.map(w => w.charAt(0).toUpperCase() + w.slice(1)).join('')\n}\n","import type {ValorantEndpoint} from 'valorant-api-types'\r\nimport {registry} from './api/registry'\r\nimport type {ValorantApi} from './api/types'\r\nimport {createAuthFlows} from './auth'\r\nimport {ValorantContext, type ValorantState} from './context'\r\nimport {unwrapEnvelope} from './envelope'\r\nimport {ValorantAuthError, ValorantNetworkError, ValorantRateLimitError, ValorantValidationError} from './errors'\r\nimport {fetchTransport, localTransport, type HttpResponse, type Transport} from './http'\r\nimport {parseBody, safeParse} from './internal/body'\r\nimport {storeCookies} from './internal/cookies'\r\nimport {toApiError} from './internal/failure'\r\nimport {normalizePlatformLiterals} from './internal/normalize'\r\nimport {backoff, isIdempotent, isRetryableStatus, sleep, type RetryOptions} from './internal/retry'\r\nimport {createPartyFlows} from './lobby/flows'\r\nimport {createLocalFlows} from './local'\r\nimport {createPregameFlows} from './pregame/flows'\r\nimport {buildRequest, isAuthHost, type RequestInput} from './request'\r\nimport type {EndpointCallOptions, EndpointResult, ValidationMode, ValorantResponse} from './types'\r\n\r\nexport type {RetryOptions} from './internal/retry'\r\nexport type {ValorantApi} from './api/types'\r\n\r\nexport interface Logger {\r\n warn(message: string, meta?: unknown): void\r\n debug?(message: string, meta?: unknown): void\r\n}\r\n\r\nexport interface ValorantClientOptions {\r\n /** An existing context to share, or initial values for a new one. */\r\n context?: ValorantContext | Partial<ValorantState>\r\n /** Default validation mode. Default `loose`. */\r\n validation?: ValidationMode\r\n /** Per-attempt timeout. Default 15000. */\r\n timeoutMs?: number\r\n /** Set to `false` to disable retries. */\r\n retry?: RetryOptions | false\r\n /**\r\n * Called once (single-flight) when a request fails because the tokens are no longer valid.\r\n * Update the context inside, the request is then retried. Example: `client => client.auth.reauthenticate()`.\r\n */\r\n refreshTokens?: (client: ValorantClient) => Promise<unknown>\r\n /** Transport for remote hosts. Defaults to `fetch`. */\r\n transport?: Transport\r\n /** Transport for the local Riot Client API. Defaults to a node:https transport that accepts its self-signed certificate. */\r\n localTransport?: Transport\r\n logger?: Logger\r\n}\r\n\r\nexport class ValorantClient {\r\n readonly context: ValorantContext\r\n readonly #options: ValorantClientOptions\r\n readonly #warned = new Set<string>()\r\n #refreshing: Promise<unknown> | undefined\r\n\r\n constructor(options: ValorantClientOptions = {}) {\r\n this.#options = options\r\n this.context = options.context instanceof ValorantContext ? options.context : new ValorantContext(options.context)\r\n Object.assign(this, this.#createApi())\r\n }\r\n\r\n /** Sends a request and returns status, headers and the parsed body. */\r\n async send<E extends ValorantEndpoint>(\r\n endpoint: E,\r\n options: EndpointCallOptions<E> = {} as EndpointCallOptions<E>\r\n ): Promise<ValorantResponse<EndpointResult<E>>> {\r\n const input = options as RequestInput\r\n const validation = input.validation ?? this.#options.validation ?? 'loose'\r\n\r\n if(validation === 'strict' && endpoint.body !== undefined && input.body !== undefined) {\r\n const parsed = normalizePlatformLiterals(endpoint.body).safeParse(input.body)\r\n if(!parsed.success) throw new ValorantValidationError('request', endpoint.name, parsed.error, input.body)\r\n }\r\n\r\n const retry = this.#options.retry === false ? undefined : (this.#options.retry ?? {})\r\n const maxRetries = retry ? (retry.retries ?? 2) : 0\r\n let refreshed = false\r\n\r\n for(let attempt = 0; ; attempt++) {\r\n const request = buildRequest(endpoint, input, this.context)\r\n const canRetry = attempt < maxRetries && input.signal?.aborted !== true\r\n let response: HttpResponse\r\n\r\n try {\r\n response = await this.#transportFor(endpoint)({...request, signal: this.#signal(input)})\r\n } catch(cause) {\r\n if(canRetry && isIdempotent(request.method) && input.signal?.aborted !== true) {\r\n await sleep(backoff(attempt, retry), input.signal)\r\n continue\r\n }\r\n throw new ValorantNetworkError(`${endpoint.name} could not reach ${new URL(request.url).host}`, request.url, {cause})\r\n }\r\n\r\n if(isAuthHost(request.url)) storeCookies(this.context, response.setCookies)\r\n this.#options.logger?.debug?.(`${request.method} ${request.url} -> ${response.status}`)\r\n\r\n if(response.status < 400) {\r\n return {\r\n status: response.status,\r\n headers: response.headers,\r\n data: this.#parseResponse(endpoint, response, validation) as EndpointResult<E>\r\n }\r\n }\r\n\r\n const error = toApiError(endpoint, request, response)\r\n\r\n if(error instanceof ValorantAuthError && this.#options.refreshTokens && !refreshed) {\r\n refreshed = true\r\n await this.#refreshOnce()\r\n continue\r\n }\r\n\r\n if(canRetry && isRetryableStatus(response.status, request.method)) {\r\n const retryAfter = error instanceof ValorantRateLimitError ? error.retryAfterMs : undefined\r\n await sleep(retryAfter ?? backoff(attempt, retry), input.signal)\r\n continue\r\n }\r\n\r\n throw error\r\n }\r\n }\r\n\r\n #createApi(): Record<string, Record<string, unknown>> {\r\n const api: Record<string, Record<string, unknown>> = {}\r\n for(const [group, endpoints] of Object.entries(registry)) {\r\n api[group] = Object.fromEntries(Object.entries(endpoints).map(([name, endpoint]) => [\r\n name,\r\n async (options?: unknown) => (await this.send(endpoint as ValorantEndpoint, options as never)).data\r\n ]))\r\n }\r\n Object.assign(api['auth']!, createAuthFlows(this))\r\n Object.assign(api['local']!, createLocalFlows(this))\r\n Object.assign(api['party']!, createPartyFlows(this))\r\n Object.assign(api['pregame']!, createPregameFlows(this))\r\n return api\r\n }\r\n\r\n #transportFor(endpoint: ValorantEndpoint): Transport {\r\n if(endpoint.type === 'local') return this.#options.localTransport ?? localTransport\r\n return this.#options.transport ?? fetchTransport\r\n }\r\n\r\n /** Transport used for requests to arbitrary remote hosts. */\r\n get transport(): Transport {\r\n return this.#options.transport ?? fetchTransport\r\n }\r\n\r\n #signal(input: RequestInput): AbortSignal {\r\n const timeout = AbortSignal.timeout(input.timeoutMs ?? this.#options.timeoutMs ?? 15_000)\r\n return input.signal ? AbortSignal.any([input.signal, timeout]) : timeout\r\n }\r\n\r\n #parseResponse(endpoint: ValorantEndpoint, response: HttpResponse, validation: ValidationMode): unknown {\r\n const data = unwrapEnvelope(endpoint, parseBody(response.text))\r\n const published = endpoint.responses?.[String(response.status)]\r\n const schema = published && normalizePlatformLiterals(published)\r\n if(schema === undefined || validation === 'off') return data\r\n\r\n const parsed = safeParse(schema, data)\r\n if(parsed.success) return parsed.data\r\n if(validation === 'strict') throw new ValorantValidationError('response', endpoint.name, parsed.error, data)\r\n\r\n if(!this.#warned.has(endpoint.name)) {\r\n this.#warned.add(endpoint.name)\r\n this.#options.logger?.warn(`Response of \"${endpoint.name}\" does not match its schema, returning raw data`, parsed.error.issues.slice(0, 5))\r\n }\r\n return data\r\n }\r\n\r\n #refreshOnce(): Promise<unknown> {\r\n this.#refreshing ??= Promise.resolve(this.#options.refreshTokens!(this)).finally(() => {\r\n this.#refreshing = undefined\r\n })\r\n return this.#refreshing\r\n }\r\n}\r\n\r\nexport interface ValorantClient extends ValorantApi {}\r\n","/** Playable agents. Values are the agent ids of the agent select. */\nexport const Agent = {\n Astra: '41fb69c1-4189-7b37-f117-bcaf1e96f1bf',\n Breach: '5f8d3a7f-467b-97f3-062c-13acf203c006',\n Brimstone: '9f0d8ba9-4140-b941-57d3-a7ad57c6b417',\n Chamber: '22697a3d-45bf-8dd7-4fec-84a9e28c69d7',\n Clove: '1dbf2edd-4729-0984-3115-daa5eed44993',\n Cypher: '117ed9e3-49f3-6512-3ccf-0cada7e3823b',\n Deadlock: 'cc8b64c8-4b25-4ff9-6e7f-37b4da43d235',\n Fade: 'dade69b4-4f5a-8528-247b-219e5a1facd6',\n Gekko: 'e370fa57-4757-3604-3648-499e1f642d3f',\n Harbor: '95b78ed7-4637-86d9-7e41-71ba8c293152',\n Hush: 'ddd5a15c-4fbe-42fa-3789-11a55ca5ee04',\n Iso: '0e38b510-41a8-5780-5e8f-568b2a4f2d6c',\n Jett: 'add6443a-41bd-e414-f6ad-e58d267f4e95',\n KayO: '601dbbe7-43ce-be57-2a40-4abd24953621',\n Killjoy: '1e58de9c-4950-5125-93e9-a0aee9f98746',\n Miks: '7c8a4701-4de6-9355-b254-e09bc2a34b72',\n Neon: 'bb2a4828-46eb-8cd1-e765-15848195d751',\n Omen: '8e253930-4c05-31dd-1b6c-968525494517',\n Phoenix: 'eb93336a-449b-9c1b-0a54-a891f7921d69',\n Raze: 'f94c3b30-42be-e959-889c-5aa313dba261',\n Reyna: 'a3bfb853-43b2-7238-a4f1-ad90e9e46bcc',\n Sage: '569fdd95-4d10-43ab-ca70-79becc718b46',\n Skye: '6f2a04ca-43e0-be17-7f36-b3908627744d',\n Sova: '320b2a48-4d9b-a075-30f1-1f93a9b638fa',\n Tejo: 'b444168c-4e35-8076-db47-ef9bf368f384',\n Veto: '92eeef5d-43b5-1d4a-8d03-b3927a09034b',\n Viper: '707eab51-4836-f488-046a-cda6bf494859',\n Vyse: 'efba5359-4016-a1e5-7626-b1ae76895940',\n Waylay: 'df1cb487-4902-002e-5c17-d28e83e78588',\n Yoru: '7f94d92c-4234-0a36-9646-3a87eb8b5c89'\n} as const\n\nexport type Agent = (typeof Agent)[keyof typeof Agent]\n\nconst names = new Map<string, keyof typeof Agent>(Object.entries(Agent).map(([name, id]) => [id, name as keyof typeof Agent]))\n\n/** `'add6443a-41bd-e414-f6ad-e58d267f4e95'` becomes `'Jett'`. Undefined for an id outside the table. */\nexport function agentName(id: string): keyof typeof Agent | undefined {\n return names.get(id)\n}\n"],"mappings":"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","names":["import_valorant_api_types","endpoint","import_zod","e","import_valorant_api_types","import_zod","e","import_valorant_api_types","import_zod","e","import_valorant_api_types","import_zod","e","import_zod","import_zod","import_valorant_api_types","import_zod","e","import_valorant_api_types","import_zod","e","import_zod","import_valorant_api_types","import_zod","text","e","import_valorant_api_types","import_zod","e","import_zod","import_valorant_api_types","import_zod","e","import_zod","import_zod","e","import_valorant_api_types","e","import_valorant_api_types","e","import_valorant_api_types","e","import_valorant_api_types","e","import_valorant_api_types","e","import_valorant_api_types","e","import_valorant_api_types","e","import_valorant_api_types","e","import_zod","import_zod","endpoint","import_zod","contracts","import_valorant_api_types","endpoint","e","import_zod","text","endpoint","import_zod","text","import_valorant_api_types","endpoint","query","endpoint"]}