{"version":3,"sources":["../../../utilities/guards.ts","../../../utilities/parseBulbapediaUrl.ts","../../../utilities/pokemonEnumToSpecies.ts","../../../utilities/resolveBulbapediaUrl.ts","../../../utilities/resolveColor.ts","../../../utilities/resolveSerebiiUrl.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["import { PokemonEnum, type Pokemon } from '../codegen/graphql-pokemon';\n\n/**\n * Checks if the given Pokemon is MissingNo.\n *\n * This uses the Pokemon's key, rather than the number.\n * To check if it's either MissingNo or M00, use {@link isMissingNoOrM00}.\n *\n * @param pokemon - The Pokemon object to check.\n * @returns `true` if the Pokemon is MissingNo, `false` otherwise.\n */\nexport function isMissingNo(pokemon: Pokemon) {\n  return pokemon.key === PokemonEnum.Missingno;\n}\n\n/**\n * Checks if the given Pokemon is M00.\n *\n * This uses the Pokemon's key, rather than the number.\n * To check if it's either MissingNo or M00, use {@link isMissingNoOrM00}.\n *\n * @param pokemon - The Pokemon to check.\n * @returns `true` if the Pokemon is M00, `false` otherwise.\n */\nexport function isM00(pokemon: Pokemon) {\n  return pokemon.key === PokemonEnum.M00;\n}\n\n/**\n * Checks if the given Pokemon is either MissingNo or M00.\n *\n * This uses the Pokemon's key, rather than the number.\n * This performs both {@link isMissingNo} and {@link isM00}.\n *\n * @param pokemon - The Pokemon to check.\n * @returns `true` if the Pokemon is MissingNo or M00, `false` otherwise.\n */\nexport function isMissingNoOrM00(pokemon: Pokemon) {\n  return isMissingNo(pokemon) || isM00(pokemon);\n}\n\n/**\n * Checks if a Pokemon is a Cap Pokemon by checking if the number is below (not equal to) 0.\n *\n * MissingNo and M00 are not considered Cap Pokemon,\n * to check if the Pokémon is either of those, use {@link isMissingNoOrM00}.\n *\n * @param pokemon - The details of the Pokemon.\n * @returns `true` if the Pokemon is a Cap Pokemon, `false` otherwise.\n */\nexport function isCapPokemon(pokemon: Pokemon) {\n  return pokemon.num < 0;\n}\n\n/**\n * Checks if a given Pokemon is a not a CAP Pokémon nor MissingNo nor M00.\n * This checks if the number is above (not equal to) 0.\n *\n * @param pokemon - The details of the Pokemon.\n * @returns `true` if the Pokemon is regular, `false` otherwise.\n */\nexport function isRegularPokemon(pokemon: Pokemon) {\n  return pokemon.num > 0;\n}\n","/**\n * Parses a Bulbapedia-like URL to be properly embeddable on Discord\n *\n * What this essentially does is replace spaces with underscores\n * and parentheses with their URL-encoded counterparts\n *\n * @param url - The URL to be parsed.\n * @returns The parsed URL with spaces replaced by underscores and parentheses encoded.\n *\n * @example\n * ```typescript\n * const url = 'https://bulbapedia.org/wiki/Pikachu_(Pokémon)';\n * const parsedUrl = parseBulbapediaURL(url);\n * console.log(parsedUrl);\n * // Output: 'https://bulbapedia.org/wiki/Pikachu_%28Pokémon%29'\n * ```\n */\nexport function parseBulbapediaURL(url: string) {\n  return url.replace(/[ ]/g, '_').replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n}\n","import { PokemonEnum } from '../codegen/graphql-pokemon';\n\nconst megaRegex = /^(?<name>[a-z]+)(?:mega)$/;\nconst gmaxRegex = /^(?<name>[a-z]+)(?:gmax)$/;\nconst alolanTotemRegex = /^(?<name>[a-z]+)(?:alolatotem)$/;\nconst alolanRegex = /^(?<name>[a-z]+)(?:alola)$/;\nconst hisuianRegex = /^(?<name>[a-z]+)(?:hisui)$/;\nconst paldeanRegex = /^(?<name>[a-z]+)(?:paldea)$/;\nconst galarianRegex = /^(?<name>[a-z]+)(?:galar)$/;\nconst totemRegex = /^(?<name>[a-z]+)(?:totem)$/;\nconst typeLikeRegex = /^(?<name>(?:arceus|silvally|genesect))(?<type>[a-z]+)?$/;\nconst pumpkinRegex = /^(?<name>(?:pumpkaboo|gourgeist))(?<size>(?:small|large|super))$/g;\n\n/**\n * Converts a {@link PokemonEnum} value to its corresponding species name in a human-readable format.\n *\n * This can be useful when you want to display the name to the user, for example on a web dashboard or\n * in your application.\n *\n * If `undefined`, `null` or an empty string is passed in, the function will return the same value.\n *\n * @param pokemon - The {@link PokemonEnum} value to convert.\n * @returns The species name of the Pokemon in human-readable format\n */\nexport function pokemonEnumToSpecies(pokemon: PokemonEnum): string {\n  if (!pokemon) {\n    return pokemon;\n  }\n\n  switch (pokemon) {\n    // Some exclusions that cannot be handled easily by the regex\n    case PokemonEnum.Missingno:\n      return 'MissingNo.';\n    case PokemonEnum.M00:\n      return \"'M (00)\";\n\n    case PokemonEnum.Yanmega:\n      return 'Yanmega';\n\n    // The double forme Mega Pokemon\n    case PokemonEnum.Charizardmegax:\n      return 'Mega Charizard X';\n    case PokemonEnum.Charizardmegay:\n      return 'Mega Charizard Y';\n\n    case PokemonEnum.Raichumegax:\n      return 'Mega Raichu X';\n    case PokemonEnum.Raichumegay:\n      return 'Mega Raichu Y';\n\n    case PokemonEnum.Mewtwomegax:\n      return 'Mega Mewtwo X';\n    case PokemonEnum.Mewtwomegay:\n      return 'Mega Mewtwo Y';\n\n    case PokemonEnum.Venomiconepilogue:\n      return 'Venomicon Epilogue';\n\n    // The Z Formes of Mega Pokemon\n    case PokemonEnum.Absolmegaz:\n      return 'Mega Absol Z';\n    case PokemonEnum.Garchompmegaz:\n      return 'Mega Garchomp Z';\n    case PokemonEnum.Lucariomegaz:\n      return 'Mega Lucario Z';\n\n    // The mimes\n    case PokemonEnum.Mimejr:\n      return 'Mime Jr.';\n    case PokemonEnum.Mrmime:\n      return 'Mr. Mime';\n    case PokemonEnum.Mrmimegalar:\n      return 'Galarian Mr. Mime';\n    case PokemonEnum.Mrrime:\n      return 'Mr. Rime';\n\n    // The bird that had to have a hyphen in its name\n    case PokemonEnum.Hooh:\n      return 'Ho-Oh';\n\n    // Castform\n    case PokemonEnum.Castformrainy:\n      return 'Castform Rainy';\n    case PokemonEnum.Castformsunny:\n      return 'Castform Sunny';\n    case PokemonEnum.Castformsnowy:\n      return 'Castform Snowy';\n\n    // Primals\n    case PokemonEnum.Kyogreprimal:\n      return 'Primal Kyogre';\n    case PokemonEnum.Groudonprimal:\n      return 'Primal Groudon';\n\n    // Deoxys\n    case PokemonEnum.Deoxysattack:\n      return 'Deoxys Attack';\n    case PokemonEnum.Deoxysdefense:\n      return 'Deoxys Defense';\n    case PokemonEnum.Deoxysspeed:\n      return 'Deoxys Speed';\n\n    // Wormadam\n    case PokemonEnum.Wormadamsandy:\n      return 'Wormadam Sandy';\n    case PokemonEnum.Wormadamtrash:\n      return 'Wormadam Trash';\n\n    // Cherrim\n    case PokemonEnum.Cherrimsunshine:\n      return 'Cherrim Sunshine';\n\n    // Porygon hyphen z\n    case PokemonEnum.Porygonz:\n      return 'Porygon-Z';\n\n    // Rotom forms\n    case PokemonEnum.Rotomheat:\n      return 'Rotom Heat';\n    case PokemonEnum.Rotomwash:\n      return 'Rotom Wash';\n    case PokemonEnum.Rotomfrost:\n      return 'Rotom Frost';\n    case PokemonEnum.Rotomfan:\n      return 'Rotom Fan';\n    case PokemonEnum.Rotommow:\n      return 'Rotom Mow';\n\n    // Origin forms\n    case PokemonEnum.Giratinaorigin:\n      return 'Giratina Origin';\n    case PokemonEnum.Dialgaorigin:\n      return 'Dialga Origin';\n    case PokemonEnum.Palkiaorigin:\n      return 'Palkia Origin';\n\n    // Shaymin\n    case PokemonEnum.Shayminsky:\n      return 'Shaymin Sky';\n\n    // The Basculins\n    case PokemonEnum.Basculinbluestriped:\n      return 'Basculin Blue-Striped';\n    case PokemonEnum.Basculegionf:\n      return 'basculegion (Female)';\n\n    // The Darmanitans\n    case PokemonEnum.Darmanitanzen:\n      return 'Darmanitan Zen';\n    case PokemonEnum.Darmanitangalarzen:\n      return 'Galarian Darmanitan Zen';\n\n    // The Frillishes\n    case PokemonEnum.Frillishfemale:\n      return 'Frillish (Female)';\n    case PokemonEnum.Jellicentfemale:\n      return 'Jellicent (Female)';\n\n    case PokemonEnum.Tornadustherian:\n      return 'Tornadus Therian';\n    case PokemonEnum.Thundurustherian:\n      return 'Thundurus Therian';\n    case PokemonEnum.Landorustherian:\n      return 'Landorus Therian';\n\n    case PokemonEnum.Kyuremblack:\n      return 'Black Kyurem';\n    case PokemonEnum.Kyuremwhite:\n      return 'White Kyurem';\n\n    case PokemonEnum.Keldeoresolute:\n      return 'Keldeo Resolute Form';\n\n    case PokemonEnum.Meloettapirouette:\n      return 'Meloetta Pirouette Forme';\n\n    case PokemonEnum.Greninjaash:\n      return 'Ash Greninja';\n\n    case PokemonEnum.Vivillonfancy:\n      return 'Fancy Vivillon';\n    case PokemonEnum.Vivillonpokeball:\n      return 'Pokeball Vivillon';\n\n    case PokemonEnum.Floetteeternal:\n      return 'Eternal Flower Floette';\n\n    case PokemonEnum.Meowsticf:\n      return 'Meowstic (Female)';\n\n    case PokemonEnum.Aegislashblade:\n      return 'Aegislash Blade Forme';\n\n    case PokemonEnum.Xerneasneutral:\n      return 'Xerneas Neutral';\n\n    case PokemonEnum.Zygarde10:\n      return 'Zygarde 10%';\n    case PokemonEnum.Zygardecomplete:\n      return 'Zygarde Complete';\n\n    case PokemonEnum.Hoopaunbound:\n      return 'Hoopa Unbound';\n\n    case PokemonEnum.Oricoriopompom:\n      return 'Oricorio Pompom';\n    case PokemonEnum.Oricoriosensu:\n      return 'Oricorio Sensu';\n    case PokemonEnum.Oricoriopau:\n      return \"Oricorio Pa'u\";\n\n    case PokemonEnum.Lycanrocmidnight:\n      return 'Midnight Lycanroc';\n    case PokemonEnum.Lycanrocdusk:\n      return 'Dusk Lycanroc';\n\n    case PokemonEnum.Wishiwashischool:\n      return 'Wishiwashi School';\n\n    case PokemonEnum.Typenull:\n      return 'Type: Null';\n\n    case PokemonEnum.Miniormeteor:\n      return 'Minior Meteor';\n\n    case PokemonEnum.Mimikyubusted:\n      return 'Mimikyu Busted';\n    case PokemonEnum.Mimikyubustedtotem:\n      return 'Totem Mimikyu Busted';\n\n    case PokemonEnum.Jangmoo:\n      return 'Jangmo-o';\n    case PokemonEnum.Hakamoo:\n      return 'Hakamo-o';\n    case PokemonEnum.Kommoo:\n      return 'Kommo-o';\n    case PokemonEnum.Kommoototem:\n      return 'Totem Kommo-o';\n\n    case PokemonEnum.Tapukoko:\n      return 'Tapu Koko';\n    case PokemonEnum.Tapulele:\n      return 'Tapu Lele';\n    case PokemonEnum.Tapubulu:\n      return 'Tapu Bulu';\n    case PokemonEnum.Tapufini:\n      return 'Tapu Fini';\n\n    case PokemonEnum.Necrozmaduskmane:\n      return 'Duskmane Necrozma';\n    case PokemonEnum.Necrozmadawnwings:\n      return 'Dawnwings Necrozma';\n    case PokemonEnum.Necrozmaultra:\n      return 'Ultra Necrozma';\n\n    case PokemonEnum.Magearnaoriginal:\n      return 'Magearna Original';\n\n    case PokemonEnum.Cramorantgulping:\n      return 'Gulping Cramorant';\n    case PokemonEnum.Cramorantgorging:\n      return 'Gorging Cramorant';\n\n    case PokemonEnum.Toxtricitylowkey:\n      return 'Low Key Toxtricity';\n    case PokemonEnum.Toxtricitylowkeygmax:\n      return 'G-Max Low Key Toxtricity';\n\n    case PokemonEnum.Sinisteaantique:\n      return 'Antique Sinistea';\n    case PokemonEnum.Polteageistantique:\n      return 'Antique Polteageist';\n\n    case PokemonEnum.Eiscuenoice:\n      return 'Eiscue Noice';\n\n    case PokemonEnum.Indeedeef:\n      return 'Indeedee (Female)';\n\n    case PokemonEnum.Morpekohangry:\n      return 'Hangry Morpeko';\n\n    case PokemonEnum.Zaciancrowned:\n      return 'Zacian Crowned';\n    case PokemonEnum.Zamazentacrowned:\n      return 'Zamazenta Crowned';\n    case PokemonEnum.Eternatuseternamax:\n      return 'Eternatus Eternamax';\n\n    case PokemonEnum.Urshifurapidstrike:\n      return 'Rapid-Strike Urshifu';\n    case PokemonEnum.Urshifurapidstrikegmax:\n      return 'G-Max Rapid-Strike Urshifu';\n\n    case PokemonEnum.Zarudedada:\n      return 'Zarude Dada';\n\n    case PokemonEnum.Calyrexice:\n      return 'Calyrex Ice';\n    case PokemonEnum.Calyrexshadow:\n      return 'Calyrex Shadow';\n\n    // All the PokeStar Pokémon\n    case PokemonEnum.Pokestarsmeargle:\n      return 'PokéStar Smeargle';\n    case PokemonEnum.Pokestarufo:\n      return 'PokéStar UFO';\n    case PokemonEnum.Pokestarufo2:\n      return 'PokéStar UFO-2';\n    case PokemonEnum.Pokestarbrycenman:\n      return 'PokéStar Brycen-Man';\n    case PokemonEnum.Pokestarmt:\n      return 'PokéStar MT';\n    case PokemonEnum.Pokestarmt2:\n      return 'PokéStar MT2';\n    case PokemonEnum.Pokestartransport:\n      return 'PokéStar Transport';\n    case PokemonEnum.Pokestargiant:\n      return 'PokéStar Giant';\n    case PokemonEnum.Pokestarhumanoid:\n      return 'PokéStar Humanoid';\n    case PokemonEnum.Pokestarmonster:\n      return 'PokéStar Monster';\n    case PokemonEnum.Pokestarf00:\n      return 'PokéStar F-00';\n    case PokemonEnum.Pokestarf002:\n      return 'PokéStar F-002';\n    case PokemonEnum.Pokestarspirit:\n      return 'PokéStar Spirit';\n    case PokemonEnum.Pokestarblackdoor:\n      return 'PokéStar Black Door';\n    case PokemonEnum.Pokestarwhitedoor:\n      return 'PokéStar White Door';\n    case PokemonEnum.Pokestarblackbelt:\n      return 'PokéStar Black Belt';\n    case PokemonEnum.Pokestarufopropu2:\n      return 'PokéStar UFO-PropU2';\n\n    // All the Pikachu's\n    case PokemonEnum.Pikachucosplay:\n      return 'Pikachu Cosplay';\n    case PokemonEnum.Pikachurockstar:\n      return 'Pikachu Rock Star';\n    case PokemonEnum.Pikachubelle:\n      return 'Pikachu Belle';\n    case PokemonEnum.Pikachupopstar:\n      return 'Pikachu Pop Star';\n    case PokemonEnum.Pikachuphd:\n      return 'Pikachu PhD';\n    case PokemonEnum.Pikachulibre:\n      return 'Pikachu Libre';\n    case PokemonEnum.Pikachuoriginal:\n      return 'Pikachu Kanto Cap';\n    case PokemonEnum.Pikachuhoenn:\n      return 'Pikachu Honey Cap';\n    case PokemonEnum.Pikachusinnoh:\n      return 'Pikachu Sinnoh Cap';\n    case PokemonEnum.Pikachuunova:\n      return 'Pikachu Novae Cap';\n    case PokemonEnum.Pikachukalos:\n      return 'Pikachu Kalos Cap';\n    case PokemonEnum.Pikachualola:\n      return 'Pikachu Alola Cap';\n    case PokemonEnum.Pikachupartner:\n      return 'Pikachu (I Choose You)';\n    case PokemonEnum.Pikachustarter:\n      return \"Pikachu (Let's Go)\";\n    case PokemonEnum.Pikachuworld:\n      return 'Pikachu (Journeys)';\n    case PokemonEnum.Pichuspikyeared:\n      return 'Spiky Eared Pichu';\n    case PokemonEnum.Eeveestarter:\n      return \"Eevee (Let's Go)\";\n\n    // All the Paradox Pokémon\n    case PokemonEnum.Greattusk:\n      return 'Great Tusk';\n    case PokemonEnum.Screamtail:\n      return 'Scream Tail';\n    case PokemonEnum.Brutebonnet:\n      return 'Brute Bonnet';\n    case PokemonEnum.Fluttermane:\n      return 'Flutter Mane';\n    case PokemonEnum.Slitherwing:\n      return 'Slither Wing';\n    case PokemonEnum.Sandyshocks:\n      return 'Sandy Shocks';\n    case PokemonEnum.Irontreads:\n      return 'Iron Treads';\n    case PokemonEnum.Ironbundle:\n      return 'Iron Bundle';\n    case PokemonEnum.Ironhands:\n      return 'Iron Hands';\n    case PokemonEnum.Ironjugulis:\n      return 'Iron Jugulis';\n    case PokemonEnum.Ironmoth:\n      return 'Iron Moth';\n    case PokemonEnum.Ironthorns:\n      return 'Iron Thorns';\n    case PokemonEnum.Roaringmoon:\n      return 'Roaring Moon';\n    case PokemonEnum.Ironvaliant:\n      return 'Iron Valiant';\n    case PokemonEnum.Walkingwake:\n      return 'Walking Wake';\n    case PokemonEnum.Ironleaves:\n      return 'Iron Leaves';\n\n    // The Ruination Pokémon\n    case PokemonEnum.Wochien:\n      return 'Wo-Chien';\n    case PokemonEnum.Chienpao:\n      return 'Chien-Pao';\n    case PokemonEnum.Tinglu:\n      return 'Ting-Lu';\n    case PokemonEnum.Chiyu:\n      return 'Chi-Yu';\n\n    // Special Paldean Forms\n    case PokemonEnum.Taurospaldeacombat:\n      return 'Paldean Tauros (Combat Breed)';\n    case PokemonEnum.Taurospaldeaaqua:\n      return 'Paldean Tauros (Aqua Breed)';\n    case PokemonEnum.Taurospaldeablaze:\n      return 'Paldean Tauros (Blaze Breed)';\n\n    // Ogerpon\n    case PokemonEnum.Ogerpon:\n      return 'Ogerpon (Teal Mask)';\n    case PokemonEnum.Ogerpontealtera:\n      return 'Ogerpon (Teal Mask - Tera)';\n    case PokemonEnum.Ogerponcornerstone:\n      return 'Ogerpon (Cornerstone Mask)';\n    case PokemonEnum.Ogerponcornerstonetera:\n      return 'Ogerpon (Cornerstone Mask - Tera)';\n    case PokemonEnum.Ogerponhearthflame:\n      return 'Ogerpon (Hearthflame Mask)';\n    case PokemonEnum.Ogerponhearthflametera:\n      return 'Ogerpon (Hearthflame Mask - Tera)';\n    case PokemonEnum.Ogerponwellspring:\n      return 'Ogerpon (Wellspring Mask)';\n    case PokemonEnum.Ogerponwellspringtera:\n      return 'Ogerpon (Wellspring Mask - Tera)';\n\n    // Other gen 9 special cases\n    case PokemonEnum.Ursalunabloodmoon:\n      return 'Ursaluna Bloodmoion';\n    case PokemonEnum.Poltchageistartisan:\n      return 'Poltchageist Artisan';\n    case PokemonEnum.Sinistchamasterpiece:\n      return 'Sinistcha Masterpiece';\n\n    // All other cases\n    default: {\n      const megaResult = megaRegex.exec(pokemon);\n\n      if (megaResult && megaResult.groups?.name) {\n        return `Mega ${toTitleCase(megaResult.groups.name)}`;\n      }\n\n      const gmaxResult = gmaxRegex.exec(pokemon);\n\n      if (gmaxResult && gmaxResult.groups?.name) {\n        return `G-Max ${toTitleCase(gmaxResult.groups.name)}`;\n      }\n\n      const alolanTotemResult = alolanTotemRegex.exec(pokemon);\n\n      if (alolanTotemResult && alolanTotemResult.groups?.name) {\n        return `Alolan Totem ${toTitleCase(alolanTotemResult.groups.name)}`;\n      }\n\n      const totemResult = totemRegex.exec(pokemon);\n\n      if (totemResult && totemResult.groups?.name) {\n        return `Totem ${toTitleCase(totemResult.groups.name)}`;\n      }\n\n      const alolanResult = alolanRegex.exec(pokemon);\n\n      if (alolanResult && alolanResult.groups?.name) {\n        return `Alolan ${toTitleCase(alolanResult.groups.name)}`;\n      }\n\n      const galarianResult = galarianRegex.exec(pokemon);\n\n      if (galarianResult && galarianResult.groups?.name) {\n        return `Galarian ${toTitleCase(galarianResult.groups.name)}`;\n      }\n\n      const hisuianResult = hisuianRegex.exec(pokemon);\n\n      if (hisuianResult && hisuianResult.groups?.name) {\n        return `Hisuian ${toTitleCase(hisuianResult.groups.name)}`;\n      }\n\n      const paldeanResult = paldeanRegex.exec(pokemon);\n\n      if (paldeanResult && paldeanResult.groups?.name) {\n        return `Paldean ${toTitleCase(paldeanResult.groups.name)}`;\n      }\n\n      const typeLikeResult = typeLikeRegex.exec(pokemon);\n\n      if (typeLikeResult && typeLikeResult.groups?.name && typeLikeResult.groups?.type) {\n        return `${toTitleCase(typeLikeResult.groups.name)} ${toTitleCase(typeLikeResult.groups.type)}`;\n      }\n\n      const pumpkinResult = pumpkinRegex.exec(pokemon);\n\n      if (pumpkinResult && pumpkinResult.groups?.name && pumpkinResult.groups?.size) {\n        return `${toTitleCase(pumpkinResult.groups.name)} ${toTitleCase(pumpkinResult.groups.size)}`;\n      }\n\n      return toTitleCase(pokemon);\n    }\n  }\n}\n\nconst TO_TITLE_CASE = /[A-Za-zÀ-ÖØ-öø-ÿ]\\S*/g;\nfunction toTitleCase(str: string) {\n  return str.replace(TO_TITLE_CASE, (txt) => {\n    return txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase();\n  });\n}\n","import type { Pokemon } from '../codegen/graphql-pokemon';\nimport { isCapPokemon, isM00, isMissingNo } from './guards';\nimport { parseBulbapediaURL } from './parseBulbapediaUrl';\n\n/**\n * Transforms the Bulbapedia URL for a given Pokemon.\n *\n * This function takes in the details of a Pokemon and returns the corresponding Bulbapedia URL\n * - If the Pokemon is MissingNo, it returns the URL for MissingNo on Bulbapedia.\n * - If the Pokemon is M00, it returns the URL for M00 on Bulbapedia.\n *\n * @param pokemon - The details of the Pokemon.\n * @returns The resolved Bulbapedia embedded URL.\n *\n * @throws This function will not work for CAP or PokéStar Pokémon as they do not have Bulbapedia pages.\n * This function will throw a {@link RangeError} when a Pokémon with {@link Pokemon.num} < 0 is passed in.\n *\n * @example\n * ```typescript\n * const pokeDetails: Pokemon = {\n *   name: \"Pikachu\",\n *   type: \"Electric\",\n *   level: 25\n * };\n *\n * const url = resolveBulbapediaURL(pokeDetails);\n * // Returns: \"[Bulbapedia](<https://bulbapedia.bulbagarden.net/wiki/Pikachu>)\"\n * ```\n */\nexport function resolveBulbapediaURL(pokemon: Pokemon) {\n  if (isCapPokemon(pokemon)) throw new RangeError('This function does not work for CAP or PokéStar Pokémon.');\n\n  return isMissingNo(pokemon)\n    ? 'https://bulbapedia.bulbagarden.net/wiki/MissingNo.'\n    : isM00(pokemon)\n      ? \"https://bulbapedia.bulbagarden.net/wiki/'M_(00)\"\n      : parseBulbapediaURL(pokemon.bulbapediaPage);\n}\n","import type { Pokemon } from '../codegen/graphql-pokemon';\n\n/**\n * Parses PokéDex colors to Discord MessageEmbed colors\n * @param color - The color to parse\n *\n * @remarks The various colours that can be generated are:\n *\n * - Black: ![Black](https://cdn.favware.tech/img/graphql-pokemon-colours/323232.png)\n * - Blue: ![Blue](https://cdn.favware.tech/img/graphql-pokemon-colours/257cff.png)\n * - Brown: ![Brown](https://cdn.favware.tech/img/graphql-pokemon-colours/a3501a.png)\n * - Gray: ![Gray](https://cdn.favware.tech/img/graphql-pokemon-colours/969696.png)\n * - Green: ![Green](https://cdn.favware.tech/img/graphql-pokemon-colours/3eff4e.png)\n * - Pink: ![Pink](https://cdn.favware.tech/img/graphql-pokemon-colours/ff65a5.png)\n * - Purple: ![Purple](https://cdn.favware.tech/img/graphql-pokemon-colours/a63de8.png)\n * - Red: ![Red](https://cdn.favware.tech/img/graphql-pokemon-colours/ff3232.png)\n * - White: ![White](https://cdn.favware.tech/img/graphql-pokemon-colours/e1e1e1.png)\n * - Yellow: ![Yellow](https://cdn.favware.tech/img/graphql-pokemon-colours/fff359.png)\n * - Unknown: ![Unknown](https://cdn.favware.tech/img/graphql-pokemon-colours/000000.png)\n *\n * @returns The color as a hexadecimal color code that can be used for\n * a {@linkplain https://discord.js.org/docs/packages/discord.js/14.14.1/Embed:Class DiscordJS Embed}\n */\nexport function resolveColor(color: string): number;\n/**\n * Parses PokéDex colors to Discord MessageEmbed colors\n * @param pokemon - The Pokemon data, with a color field, to parse\n *\n * @remarks The various colours that can be generated are:\n *\n * - Black: ![Black](https://cdn.favware.tech/img/graphql-pokemon-colours/323232.png)\n * - Blue: ![Blue](https://cdn.favware.tech/img/graphql-pokemon-colours/257cff.png)\n * - Brown: ![Brown](https://cdn.favware.tech/img/graphql-pokemon-colours/a3501a.png)\n * - Gray: ![Gray](https://cdn.favware.tech/img/graphql-pokemon-colours/969696.png)\n * - Green: ![Green](https://cdn.favware.tech/img/graphql-pokemon-colours/3eff4e.png)\n * - Pink: ![Pink](https://cdn.favware.tech/img/graphql-pokemon-colours/ff65a5.png)\n * - Purple: ![Purple](https://cdn.favware.tech/img/graphql-pokemon-colours/a63de8.png)\n * - Red: ![Red](https://cdn.favware.tech/img/graphql-pokemon-colours/ff3232.png)\n * - White: ![White](https://cdn.favware.tech/img/graphql-pokemon-colours/e1e1e1.png)\n * - Yellow: ![Yellow](https://cdn.favware.tech/img/graphql-pokemon-colours/fff359.png)\n * - Unknown: ![Unknown](https://cdn.favware.tech/img/graphql-pokemon-colours/000000.png)\n *\n * @returns The color as a hexadecimal color code that can be used for\n * a {@linkplain https://discord.js.org/docs/packages/discord.js/14.14.1/Embed:Class DiscordJS Embed}\n */\nexport function resolveColor(pokemon: Pokemon): number;\n/**\n * Parses PokéDex colors to Discord MessageEmbed colors\n * @param colorOrPokemon - Either the The Pokemon data, with a color field, to parse, or the color to parse\n *\n * @remarks The various colours that can be generated are:\n *\n * - Black: ![Black](https://cdn.favware.tech/img/graphql-pokemon-colours/323232.png)\n * - Blue: ![Blue](https://cdn.favware.tech/img/graphql-pokemon-colours/257cff.png)\n * - Brown: ![Brown](https://cdn.favware.tech/img/graphql-pokemon-colours/a3501a.png)\n * - Gray: ![Gray](https://cdn.favware.tech/img/graphql-pokemon-colours/969696.png)\n * - Green: ![Green](https://cdn.favware.tech/img/graphql-pokemon-colours/3eff4e.png)\n * - Pink: ![Pink](https://cdn.favware.tech/img/graphql-pokemon-colours/ff65a5.png)\n * - Purple: ![Purple](https://cdn.favware.tech/img/graphql-pokemon-colours/a63de8.png)\n * - Red: ![Red](https://cdn.favware.tech/img/graphql-pokemon-colours/ff3232.png)\n * - White: ![White](https://cdn.favware.tech/img/graphql-pokemon-colours/e1e1e1.png)\n * - Yellow: ![Yellow](https://cdn.favware.tech/img/graphql-pokemon-colours/fff359.png)\n * - Unknown: ![Unknown](https://cdn.favware.tech/img/graphql-pokemon-colours/000000.png)\n *\n * @returns The color as a hexadecimal color code that can be used for\n * a {@linkplain https://discord.js.org/docs/packages/discord.js/14.14.1/Embed:Class DiscordJS Embed}\n */\nexport function resolveColor(colorOrPokemon: string | Omit<Pokemon, '__typename'>): number {\n  if (typeof colorOrPokemon !== 'string') colorOrPokemon = colorOrPokemon.color;\n\n  switch (colorOrPokemon) {\n    case 'Black':\n      return 0x323232;\n    case 'Blue':\n      return 0x257cff;\n    case 'Brown':\n      return 0xa3501a;\n    case 'Gray':\n      return 0x969696;\n    case 'Green':\n      return 0x3eff4e;\n    case 'Pink':\n      return 0xff65a5;\n    case 'Purple':\n      return 0xa63de8;\n    case 'Red':\n      return 0xff3232;\n    case 'White':\n      return 0xe1e1e1;\n    case 'Yellow':\n      return 0xfff359;\n    default:\n      return 0x000000;\n  }\n}\n","import type { Pokemon } from '../codegen/graphql-pokemon';\nimport { isCapPokemon, isMissingNoOrM00 } from './guards';\n\n/**\n * Resolves the Serebii URL for a given Pokemon.\n * If the Pokemon is MissingNo or M00, it returns the URL for MissingNo's Serebii page.\n * Otherwise, it returns the URL specified in the `serebiiPage` property of the Pokemon object.\n *\n * @param pokemon The details of the Pokemon.\n * @returns The Serebii URL for the Pokemon.\n *\n * @throws This function will not work for CAP or PokéStar Pokémon as they do not have Serebii pages.\n * This function will throw a {@link RangeError} when a Pokémon with {@link Pokemon.num} < 0 is passed in.\n *\n * @example\n * ```typescript\n * const pokeDetails: Pokemon = {\n *   name: \"Pikachu\",\n *   type: \"Electric\",\n *   level: 25\n * };\n *\n * const url = resolveSerebiiUrl(pokeDetails);\n * // Returns: \"https://www.serebii.net/pokedex/025.shtml\"\n * ```\n */\nexport function resolveSerebiiUrl(pokemon: Pokemon) {\n  if (isCapPokemon(pokemon)) throw new RangeError('This function does not work for CAP or PokéStar Pokémon.');\n\n  return isMissingNoOrM00(pokemon) ? 'https://www.serebii.net/pokedex/000.shtml' : pokemon.serebiiPage;\n}\n"]}