UNPKG

rivalsjs

Version:

<h1 align="center"> Rivals JS </h1>

1 lines 31.8 kB
{"version":3,"file":"index.cjs","sources":["../../src/v1/transformers/achievements.ts","../../src/v1/transformers/battlepass.ts","../../src/v1/transformers/heroes.ts","../../src/v1/transformers/maps.ts","../../src/v1/transformers/match.ts","../../src/v1/transformers/player.ts","../../src/v1/transformers/index.ts","../../src/v1/api/achievements.ts","../../src/v1/api/battlepass.ts","../../src/v1/api/heroes.ts","../../src/v1/api/maps.ts","../../src/v1/api/match.ts","../../src/v1/api/player.ts","../../src/v1/api/index.ts","../../src/v1/index.ts"],"sourcesContent":["import type { AchievementResponse, AllAchievementsResponse } from \"types/v1\";\nimport { convertToAssetUrl } from \"utils\";\n\nexport function transformAllAchievementsResponse(\n data: AllAchievementsResponse,\n): AllAchievementsResponse {\n const transformedData = {\n ...data,\n achievements: data.achievements.map((achievement) => ({\n ...achievement,\n icon: convertToAssetUrl(achievement.icon),\n })),\n };\n\n return transformedData;\n}\n\nexport function transformAchievementResponse(\n data: AchievementResponse,\n): AchievementResponse {\n return {\n ...data,\n icon: convertToAssetUrl(data.icon),\n };\n}\n","import type { BattlepassResponse } from \"types/v1\";\nimport { convertToAssetUrl } from \"utils\";\n\nexport function transformBattlepassResponse(\n data: BattlepassResponse,\n): BattlepassResponse {\n const transformedData = {\n ...data,\n };\n\n if (transformedData.items.length > 0) {\n transformedData.items = transformedData.items.map((item) => ({\n ...item,\n image: convertToAssetUrl(item.image),\n }));\n }\n\n return transformedData;\n}\n","import type {\n AllHeroesResponse,\n Hero,\n HeroLeaderboardEntry,\n HeroLeaderboardResponse,\n} from \"types/v1\";\nimport { convertToAssetUrl } from \"utils\";\n\nexport function transformAllHeroesResponse(\n data: AllHeroesResponse,\n): AllHeroesResponse {\n return data.map((hero) => transformHeroResponse(hero));\n}\n\nexport function transformHeroResponse(data: Hero): Hero {\n return {\n ...data,\n imageUrl: convertToAssetUrl(data.imageUrl),\n\n transformations: data.transformations.map((transformation) => ({\n ...transformation,\n icon: convertToAssetUrl(transformation.icon),\n })),\n\n costumes: data.costumes.map((costume) => ({\n ...costume,\n icon: convertToAssetUrl(costume.icon),\n })),\n\n abilities: data.abilities.map((ability) => ({\n ...ability,\n icon: convertToAssetUrl(ability.icon),\n })),\n };\n}\n\nexport function transformHeroLeaderboardResponse(data: {\n players: HeroLeaderboardResponse;\n}): HeroLeaderboardResponse {\n return data.players.map((entry) => transformHeroLeaderboardEntry(entry));\n}\n\nexport function transformHeroLeaderboardEntry(\n data: HeroLeaderboardEntry,\n): HeroLeaderboardEntry {\n return {\n ...data,\n info: {\n ...data.info,\n icon: {\n ...data.info.icon,\n playerIcon: convertToAssetUrl(data.info.icon.playerIcon),\n },\n },\n };\n}\n","import type { AllMapsResponse } from \"types/v1\";\nimport { convertToAssetUrl } from \"utils\";\n\nexport function transformAllMapsResponse(data: AllMapsResponse) {\n const transformedData = {\n ...data,\n maps: data.maps.map((map) => ({\n ...map,\n images: map.images.map((image) => convertToAssetUrl(image)),\n subMap: map.subMap\n ? {\n ...map.subMap,\n thumbnail: map.subMap.thumbnail\n ? convertToAssetUrl(map.subMap.thumbnail)\n : null,\n }\n : null,\n })),\n };\n\n return transformedData;\n}\n","import type { MatchResponse } from \"types/v1\";\nimport { convertToAssetUrl } from \"utils\";\n\nexport function transformMatchResponse(\n data: MatchResponse,\n): MatchResponse[\"matchDetails\"] {\n const transformedData: MatchResponse[\"matchDetails\"] = {\n ...data.matchDetails,\n\n matchPlayers: data.matchDetails.matchPlayers.map((player) => ({\n ...player,\n curHeroIcon: convertToAssetUrl(player.curHeroIcon),\n playerHeroes: player.playerHeroes.map((hero) => ({\n ...hero,\n heroIcon: convertToAssetUrl(hero.heroIcon),\n })),\n badges: player.badges\n ? player.badges.map((badge) => ({\n ...badge,\n image: badge.image ? convertToAssetUrl(badge.image) : null,\n }))\n : null,\n })),\n };\n\n return transformedData;\n}\n","import type {\n APIUpdatePlayerErrorResponse,\n APIUpdatePlayerSuccessResponse,\n FindPlayerResponse,\n PlayerMatchHistoryEntry,\n PlayerResponse,\n UpdatePlayerResponse,\n} from \"types/v1\";\nimport { convertToAssetUrl } from \"utils\";\n\nexport function transformFindPlayerResponse(\n data: FindPlayerResponse,\n): FindPlayerResponse {\n return data;\n}\n\nexport function transformUpdatePlayerResponse(\n data: APIUpdatePlayerSuccessResponse | APIUpdatePlayerErrorResponse,\n): UpdatePlayerResponse {\n if (\"error\" in data) {\n return {\n success: false,\n message: data.message,\n status: data.status ?? 500,\n };\n }\n\n return {\n success: data.success,\n message: data.message,\n status: 200,\n };\n}\n\nexport function transformGetPlayerResponse(\n data: PlayerResponse,\n): PlayerResponse {\n const transformedData: PlayerResponse = {\n ...data,\n player: {\n ...data.player,\n icon: {\n ...data.player.icon,\n playerIcon: convertToAssetUrl(data.player.icon.playerIcon),\n },\n rank: {\n ...data.player.rank,\n image: convertToAssetUrl(data.player.rank.image),\n },\n },\n matchHistory: data.matchHistory.map((match) => ({\n ...match,\n mapThumbnail: convertToAssetUrl(match.mapThumbnail),\n playerPerformance: {\n ...match.playerPerformance,\n heroType: convertToAssetUrl(match.playerPerformance.heroType),\n },\n })),\n heroMatchups: data.heroMatchups.map((matchup) => ({\n ...matchup,\n heroThumbnail: convertToAssetUrl(matchup.heroThumbnail),\n })),\n teamMates: data.teamMates.map((teammate) => ({\n ...teammate,\n })),\n heroesRanked: data.heroesRanked.map((hero) => ({\n ...hero,\n heroThumbnail: convertToAssetUrl(hero.heroThumbnail),\n })),\n heroesUnranked: data.heroesUnranked.map((hero) => ({\n ...hero,\n heroThumbnail: convertToAssetUrl(hero.heroThumbnail),\n })),\n maps: data.maps.map((map) => ({\n ...map,\n mapThumbnail: convertToAssetUrl(map.mapThumbnail),\n })),\n };\n\n return transformedData;\n}\n\nexport function transformPlayerMatchHistoryResponse(data: {\n matchHistory: PlayerMatchHistoryEntry[];\n}): PlayerMatchHistoryEntry[] {\n return data.matchHistory.map((entry) => ({\n ...entry,\n mapThumbnail: convertToAssetUrl(entry.mapThumbnail),\n matchPlayer: {\n ...entry.matchPlayer,\n playerHero: {\n ...entry.matchPlayer.playerHero,\n heroType: convertToAssetUrl(entry.matchPlayer.playerHero.heroType),\n },\n },\n }));\n}\n","import type { HealthCheckResponse } from \"types/v1\";\n\nexport function transformHealthCheckResponse(\n data: HealthCheckResponse,\n): HealthCheckResponse {\n return data;\n}\n\nexport * from \"./achievements\";\nexport * from \"./battlepass\";\nexport * from \"./heroes\";\nexport * from \"./maps\";\nexport * from \"./match\";\nexport * from \"./player\";\n","import type { Client } from \"index\";\nimport { fromPromise, type Result } from \"neverthrow\";\nimport type { AchievementResponse, AllAchievementsResponse } from \"types/v1\";\nimport { routes } from \"v1\";\nimport {\n transformAchievementResponse,\n transformAllAchievementsResponse,\n} from \"v1/transformers\";\n\n/**\n * Retrieves a list of achievements. You can apply pagination.\n *\n * @export\n * @async\n * @param {Client} client\n * @param {number} [page=1]\n * @param {number} [perPage=10]\n * @returns {{Promise<Result<AllAchievementsResponse, string>>}}\n */\nexport async function getAllAchievements(\n client: Client,\n page: number = 1,\n perPage: number = 10,\n): Promise<Result<AllAchievementsResponse, string>> {\n return fromPromise(\n client.get(routes.allAchievements(page, perPage)),\n (error) => String(error),\n ).map((response) => transformAllAchievementsResponse(response.data));\n}\n\n/**\n * Allows searching for a specific achievement either by its unique ID or its name.\n *\n * @export\n * @async\n * @param {Client} client\n * @param {string} name\n * @returns {Promise<Result<AchievementResponse, string>>}\n */\nexport async function getAchievement(\n client: Client,\n name: string,\n): Promise<Result<AchievementResponse, string>> {\n return fromPromise(client.get(routes.achievement(name)), (error) =>\n String(error),\n ).map((response) => transformAchievementResponse(response.data));\n}\n","import type { Client } from \"index\";\nimport { fromPromise, type Result } from \"neverthrow\";\nimport type { BattlepassResponse } from \"types/v1\";\nimport { routes } from \"v1\";\nimport { transformBattlepassResponse } from \"v1/transformers\";\n\n/**\n * Retrieves the battlepass data for a given season, including season details\n * and the list of items available for the selected season.\n *\n * @export\n * @async\n * @param {Client} client\n * @param {?number} [season] Defaults to the current season if not provided.\n * @returns {Promise<Result<BattlepassResponse, string>>}\n */\nexport async function getBattlepass(\n client: Client,\n season?: number,\n): Promise<Result<BattlepassResponse, string>> {\n return fromPromise(client.get(routes.battlepass(season)), (error) =>\n String(error),\n ).map((response) => transformBattlepassResponse(response.data));\n}\n","import type { Client } from \"index\";\nimport { fromPromise, type Result } from \"neverthrow\";\nimport type { Hero, HeroLeaderboardResponse } from \"types/v1\";\nimport { routes } from \"v1\";\nimport {\n transformAllHeroesResponse,\n transformHeroLeaderboardResponse,\n transformHeroResponse,\n} from \"v1/transformers\";\n\n/**\n * Retrieves a list of all available heroes with their details.\n *\n * @export\n * @async\n * @param {Client} client\n * @returns {Promise<Result<Hero[], string>>}\n */\nexport async function getAllHeroes(\n client: Client,\n): Promise<Result<Hero[], string>> {\n return fromPromise(client.get(routes.allHeroes()), (error) =>\n String(error),\n ).map((response) => transformAllHeroesResponse(response.data));\n}\n\n/**\n * Detailed information about a hero. You can either provide the hero's name or ID to retrieve their stats, abilities, and other relevant details.\n *\n * @export\n * @async\n * @param {Client} client\n * @param {string} name\n * @returns {Promise<Result<Hero, string>>}\n */\nexport async function getHero(\n client: Client,\n name: string,\n): Promise<Result<Hero, string>> {\n return fromPromise(client.get(routes.hero(name)), (error) =>\n String(error),\n ).map((response) => transformHeroResponse(response.data));\n}\n\n/**\n * Retrieves the leaderboard for a specific hero based on their name or ID.\n * The leaderboard data is fetched from an external API and processed for easy consumption.\n *\n * @export\n * @async\n * @param {Client} client\n * @param {string} name\n * @returns {Promise<Result<HeroLeaderboardResponse, string>>}\n */\nexport async function getHeroLeaderboard(\n client: Client,\n name: string,\n): Promise<Result<HeroLeaderboardResponse, string>> {\n return fromPromise(client.get(routes.heroLeaderboard(name)), (error) =>\n String(error),\n ).map((response) => transformHeroLeaderboardResponse(response.data));\n}\n","import type { Client } from \"index\";\nimport { fromPromise, type Result } from \"neverthrow\";\nimport type { AllMapsResponse } from \"types/v1\";\nimport { routes } from \"v1\";\nimport { transformAllMapsResponse } from \"v1/transformers\";\n\n/**\n * Retrieves all available maps with optional pagination to control the number of results per page.\n *\n * @export\n * @async\n * @param {Client} client\n * @param {number} [page=1]\n * @param {number} [perPage=10]\n * @returns {Promise<Result<AllMapsResponse, string>>}\n */\nexport async function getAllMaps(\n client: Client,\n page: number = 1,\n perPage: number = 10,\n): Promise<Result<AllMapsResponse, string>> {\n return fromPromise(client.get(routes.allMaps(page, perPage)), (error) =>\n String(error),\n ).map((response) => transformAllMapsResponse(response.data));\n}\n","import type { Client } from \"index\";\nimport { fromPromise } from \"neverthrow\";\nimport { routes } from \"v1\";\nimport { transformMatchResponse } from \"v1/transformers\";\n\n/**\n * Retrieve match data for a specific match identified by the matchId. It processes the match details and player stats.\n *\n * @export\n * @async\n * @param {Client} client\n * @param {string} matchId\n * @returns {unknown}\n */\nexport async function getMatch(client: Client, matchId: string) {\n return fromPromise(client.get(routes.singleMatch(matchId)), (error) =>\n String(error),\n ).map((response) => transformMatchResponse(response.data));\n}\n","import type { Client } from \"index\";\nimport { fromPromise, type Result } from \"neverthrow\";\nimport type {\n FindPlayerResponse,\n PlayerMatchHistoryEntry,\n PlayerResponse,\n UpdatePlayerResponse,\n} from \"types/v1\";\nimport { routes } from \"v1\";\nimport {\n transformFindPlayerResponse,\n transformGetPlayerResponse,\n transformPlayerMatchHistoryResponse,\n transformUpdatePlayerResponse,\n} from \"v1/transformers\";\n\n/**\n * Retrieves player uid for a specific player identified by their username. It returns basic player information such as name and unique identifier (UID).\n *\n * @export\n * @async\n * @param {Client} client\n * @param {string} username\n * @returns {Promise<Result<FindPlayerResponse, string>>}\n */\nexport async function searchPlayer(\n client: Client,\n username: string,\n): Promise<Result<FindPlayerResponse, string>> {\n return fromPromise(client.get(routes.searchPlayer(username)), (error) =>\n String(error),\n ).map((response) => transformFindPlayerResponse(response.data));\n}\n\n/**\n * Player data for a specific player identified by uid or username. It processes player statistics and related data, such as match history, rank history, heroes, and maps.\n *\n * IMPORTANT: Searching player stats by username is a new feature and is not always reliable. Searching player stats by player uid is more stable.\n *\n * @export\n * @async\n * @param {Client} client\n * @param {string} player This can be either a player uid or username.\n * @param {?number} [season]\n * @returns {Promise<Result<PlayerResponse, string>>}\n */\nexport async function getPlayer(\n client: Client,\n player: string,\n season?: number,\n): Promise<Result<PlayerResponse, string>> {\n return fromPromise(client.get(routes.player(player, season)), (error) =>\n String(error),\n ).map((response) => transformGetPlayerResponse(response.data));\n}\n\n/**\n * Triggers an update of player data identified by the uid or username. It performs the necessary updates and returns a success or failure response.\n *\n * IMPORTANT\n * The update player endpoint is a QUEUE & TIME & USER sensitive/locked endpoint at a set time of 30 minutes what this means is it can only be used every 30 minutes on 1 specific player.\n * For more information, please refer to the [API documentation](https://docs.marvelrivalsapi.com/endpoints/player-stats/update-player).\n *\n * @export\n * @async\n * @param {Client} client\n * @param {string} player\n * @returns {Promise<Result<UpdatePlayerResponse, string>>}\n */\nexport async function updatePlayer(\n client: Client,\n player: string,\n): Promise<Result<UpdatePlayerResponse, string>> {\n return fromPromise(client.get(routes.updatePlayer(player)), (error) =>\n String(error),\n ).map((response) => transformUpdatePlayerResponse(response.data));\n}\n\n/**\n * Retrieves the match history of a player based on their unique identifier (UID) or username. It allows filtering by season, skip value, and game mode.\n *\n * @export\n * @async\n * @param {Client} client\n * @param {string} uid Player unique identifier (UID) or username.\n * @param {?number} [season] The season to retrieve match history for. Defaults to current season\n * @param {?number} [skip] The number of matches to skip (pagination). Defaults to 20.\n * @param {?number} [gameMode] The game mode to filter matches by. Defaults to 0.\n * @param {?number} [timestamp] Filter matches by timestamp. Only includes matches after the given timestamp.\n * @returns {Promise<Result<PlayerMatchHistoryEntry[], string>>}\n */\nexport async function getPlayerMatchHistory(\n client: Client,\n uid: string,\n season?: number,\n skip?: number,\n gameMode?: number,\n timestamp?: number,\n): Promise<Result<PlayerMatchHistoryEntry[], string>> {\n return fromPromise(\n client.get(\n routes.getPlayerMatchHistory(uid, season, skip, gameMode, timestamp),\n ),\n (error) => String(error),\n ).map((response) => transformPlayerMatchHistoryResponse(response.data));\n}\n","import type { Client } from \"index\";\nimport { fromPromise, type Result } from \"neverthrow\";\nimport type { HealthCheckResponse } from \"types/v1\";\nimport { routes } from \"v1\";\nimport { transformHealthCheckResponse } from \"v1/transformers\";\n\n/**\n * API health check.\n *\n * @export\n * @async\n * @param {Client} client\n * @returns {Promise<Result<HealthCheckResponse, string>>}\n */\nexport async function getHealthCheck(\n client: Client,\n): Promise<Result<HealthCheckResponse, string>> {\n return fromPromise(client.get(routes.healthCheck()), (error) =>\n String(error),\n ).map((response) => transformHealthCheckResponse(response.data));\n}\n\nexport * from \"./achievements\";\nexport * from \"./battlepass\";\nexport * from \"./heroes\";\nexport * from \"./maps\";\nexport * from \"./match\";\nexport * from \"./player\";\n","import { buildQueryString } from \"../utils\";\n\nexport const routes = {\n healthCheck() {\n return \"/v1\";\n },\n\n battlepass(season?: number) {\n const url = \"/v1/battlepass\";\n\n return buildQueryString(url, {\n season: season ?? undefined,\n });\n },\n\n allAchievements(page = 1, perPage = 10) {\n const url = \"/v1/achievements\";\n\n return buildQueryString(url, {\n page: page > 0 ? page : 1,\n perPage: perPage > 0 ? perPage : 10,\n });\n },\n\n achievement(name: string) {\n if (!name) {\n throw new Error(\"Achievement name is required\");\n }\n\n return `/v1/achievement/${encodeURIComponent(name)}`;\n },\n\n allMaps(page = 1, perPage = 10) {\n const url = \"/v1/maps\";\n\n return buildQueryString(url, {\n page: page > 0 ? page : 1,\n limit: perPage > 0 ? perPage : 10,\n });\n },\n\n searchPlayer(username: string) {\n if (!username) {\n throw new Error(\"Username is required\");\n }\n\n return `/v1/find-player/${encodeURIComponent(username)}`;\n },\n\n player(player: string, season?: number) {\n if (!player) {\n throw new Error(\"Player identifier is required\");\n }\n\n return buildQueryString(`/v1/player/${encodeURIComponent(player)}`, {\n season: season ?? undefined,\n });\n },\n\n updatePlayer(player: string) {\n if (!player) {\n throw new Error(\"Player identifier is required\");\n }\n\n return `/v1/player/${encodeURIComponent(player)}/update`;\n },\n\n getPlayerMatchHistory(\n uid: string,\n season?: number,\n skip?: number,\n gameMode?: number,\n timestamp?: number,\n ) {\n if (!uid) {\n throw new Error(\"Player UID is required\");\n }\n\n const url = `/v1/player/${encodeURIComponent(uid)}/match-history`;\n\n return buildQueryString(url, {\n season: season ?? undefined,\n skip: skip ?? undefined,\n game_mode: gameMode ?? undefined,\n timestamp: timestamp ?? undefined,\n });\n },\n\n allHeroes() {\n return \"/v1/heroes\";\n },\n\n hero(name: string) {\n return `/v1/heroes/hero/${encodeURIComponent(name)}`;\n },\n\n heroLeaderboard(name: string) {\n return `/v1/heroes/leaderboard/${encodeURIComponent(name)}`;\n },\n\n singleMatch(matchId: string) {\n return `/v1/match/${encodeURIComponent(matchId)}`;\n },\n};\n\nexport * from \"./api\";\n"],"names":["convertToAssetUrl","fromPromise","buildQueryString"],"mappings":"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"}