{"version":3,"file":"index.mjs","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":[],"mappings":"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"}