@voxary/valorant-client 0.0.0-stage → 0.2.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.
- package/LICENSE +21 -0
- package/README.md +122 -3
- package/dist/index.cjs +2625 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +11856 -0
- package/dist/index.d.ts +11856 -0
- package/dist/index.js +2569 -0
- package/dist/index.js.map +1 -0
- package/package.json +67 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../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","../src/index.ts"],"sourcesContent":["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","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"],"mappings":"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","names":["z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","e","e","e","e","e","e","e","e","e","e","e","e","z","z","endpoint","z","z","z","contracts","e","endpoint","e","text","endpoint","text","endpoint","query","endpoint"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,69 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voxary/valorant-client",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Typed TypeScript client for the unofficial Valorant API: PVP, party, store, pre-game, in-game, local client and Riot auth.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"sideEffects": false,
|
|
8
|
+
"engines": {
|
|
9
|
+
"node": ">=20.3"
|
|
10
|
+
},
|
|
11
|
+
"main": "./dist/index.cjs",
|
|
12
|
+
"module": "./dist/index.js",
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"import": {
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"default": "./dist/index.js"
|
|
19
|
+
},
|
|
20
|
+
"require": {
|
|
21
|
+
"types": "./dist/index.d.cts",
|
|
22
|
+
"default": "./dist/index.cjs"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"dist"
|
|
28
|
+
],
|
|
29
|
+
"scripts": {
|
|
30
|
+
"build": "tsup",
|
|
31
|
+
"typecheck": "tsc --noEmit",
|
|
32
|
+
"test": "vitest run",
|
|
33
|
+
"prepublishOnly": "npm run typecheck && npm test && npm run build",
|
|
34
|
+
"docs:api": "npm run build && node scripts/generate-docs.mjs"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"valorant-api-types": "0.10.1",
|
|
38
|
+
"zod": "^3.23.8"
|
|
39
|
+
},
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"ws": "^8.0.0"
|
|
42
|
+
},
|
|
43
|
+
"peerDependenciesMeta": {
|
|
44
|
+
"ws": {
|
|
45
|
+
"optional": true
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/node": "^22.0.0",
|
|
50
|
+
"@types/ws": "^8.5.12",
|
|
51
|
+
"tsup": "^8.3.0",
|
|
52
|
+
"typescript": "^5.6.0",
|
|
53
|
+
"vitest": "^2.1.0",
|
|
54
|
+
"ws": "^8.18.0"
|
|
55
|
+
},
|
|
56
|
+
"keywords": [
|
|
57
|
+
"valorant",
|
|
58
|
+
"riot",
|
|
59
|
+
"riot-games",
|
|
60
|
+
"api",
|
|
61
|
+
"typescript",
|
|
62
|
+
"client",
|
|
63
|
+
"zod",
|
|
64
|
+
"valorant-api"
|
|
65
|
+
],
|
|
66
|
+
"publishConfig": {
|
|
67
|
+
"access": "public"
|
|
68
|
+
}
|
|
69
|
+
}
|