nintendo-switch-eshop
Version:
Unofficial API lib for Nintendo Switch eShop game listing and pricing information.
1 lines • 51.6 kB
Source Map (JSON)
{"version":3,"sources":["../../src/lib/utils/constants.ts","../../src/lib/utils/makeURLSearchParams.ts","../../src/lib/utils/usa-constants.ts","../../src/lib/utils/utils.ts","../../src/lib/getGames/getGamesAmerica.ts","../../src/lib/utils/brazilian-constants.ts","../../src/lib/getGames/getGamesBrazil.ts","../../src/lib/getGames/getGamesEurope.ts","../../src/lib/getGames/getGamesJapan.ts","../../src/lib/getGames/getQueriedGamesAmerica.ts","../../src/lib/getGames/getQueriedGamesBrazil.ts","../../src/lib/other/getPrices.ts","../../src/lib/other/getShopByCountryCode.ts","../../src/lib/getShops/getShopsAmerica.ts","../../src/lib/getShops/getShopsAsia.ts","../../src/lib/getShops/getShopsEurope.ts","../../src/lib/getShops/getActiveShops.ts","../../src/lib/other/parseGameCode.ts","../../src/lib/other/parseNSUID.ts"],"names":["Region","Result","fetch","FetchResultTypes","XMLParser","countries","regions"],"mappings":"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","file":"index.cjs","sourcesContent":["/* eslint-disable prefer-named-capture-group */\n/**\n * Algolia ID for getting US games\n */\nexport const US_ALGOLIA_ID = 'U3B6GR4UA3';\n\n/**\n * Algolia Key for getting US games\n */\nexport const US_ALGOLIA_KEY = 'c4da8be7fd29f0f5bfa42920b0a99dc7';\n\n/**\n * Algolia key for getting US games with a query\n */\nexport const QUERIED_US_ALGOLIA_KEY_NEW = 'a29c6927638bfd8cee23993e51e721c9';\n\n/**\n * Algolia key for getting US games with a query\n */\nexport const QUERIED_US_ALGOLIA_KEY_OLD = '6efbfb0f8f80defc44895018caf77504';\n\n/**\n * URL for getting US Games\n */\nexport const US_GET_GAMES_URL = `https://${US_ALGOLIA_ID}-dsn.algolia.net/1/indexes/*/queries`;\n\n/**\n * New URL for getting Queried US Games\n */\nexport const QUERIED_US_GET_GAMES_URL_NEW = `https://${US_ALGOLIA_ID}-dsn.algolia.net/1/indexes/store_all_products_en_us/query`;\n\n/**\n * Old URL for getting Queried US games, this still exists and has additional properties which get merged with those from the new URL\n */\nexport const QUERIED_US_GET_GAMES_URL_OLD = `https://${US_ALGOLIA_ID}-dsn.algolia.net/1/indexes/ncom_game_en_us/query`;\n\n/**\n * Sample game code for US store\n *\n * @internal\n */\nexport const US_GAME_CHECK_CODE = '70010000000185';\n\n/**\n * Regex for US game codes\n *\n * @internal\n */\nexport const US_GAME_CODE_REGEX = /HAC\\w(\\w{4})/;\n\n/**\n * Request headers for US games\n *\n * @internal\n */\nexport const US_ALGOLIA_HEADERS = {\n\t'Content-Type': 'application/json',\n\t'X-Algolia-API-Key': US_ALGOLIA_KEY,\n\t'X-Algolia-Application-Id': US_ALGOLIA_ID\n};\n\n/**\n * Options used for getting EU games\n *\n * @internal\n */\nexport const EU_GET_GAMES_OPTIONS = {\n\tfq: 'type:GAME AND system_type:nintendoswitch* AND product_code_txt:*',\n\t// eslint-disable-next-line id-length\n\tq: '*',\n\tsort: 'sorting_title asc',\n\tstart: '0',\n\twt: 'json'\n};\n\n/**\n * URL for getting EU Games\n */\nexport const EU_GET_GAMES_URL = 'https://search.nintendo-europe.com/{locale}/select';\n\n/**\n * Sample game code for EU store\n *\n * @internal\n */\nexport const EU_GAME_CHECK_CODE = '70010000000184';\n\n/**\n * Regex for EU game codes\n *\n * @internal\n */\nexport const EU_GAME_CODE_REGEX = /HAC\\w(\\w{4})/;\n\n/**\n * Default locale when getting EU games - defaults to `en`\n *\n * @internal\n */\nexport const EU_DEFAULT_LOCALE = 'en';\n\n/**\n * Default limit used when getting EU games - defaults to `1000`\n *\n * @internal\n */\nexport const EU_GAME_LIST_LIMIT = 1_000;\n\n/**\n * URL for getting JP Games\n */\nexport const JP_GET_GAMES_URL = 'https://www.nintendo.co.jp/data/software/xml/switch.xml';\n\n/**\n * Sample game code for JP store\n *\n * @internal\n */\nexport const JP_GAME_CHECK_CODE = '70010000000039';\n\n/**\n * Regex for JP game codes\n *\n * @internal\n */\nexport const JP_GAME_CODE_REGEX = /HAC(\\w{4})/;\n\n/**\n * Regex for JP NSUID\n *\n * @internal\n */\nexport const JP_NSUID_REGEX = /\\d{14}/;\n\n/**\n * Algolia ID for getting BR games\n */\nexport const BR_ALGOLIA_ID = 'U3B6GR4UA3';\n\n/**\n * Algolia Key for getting US games\n */\nexport const BR_ALGOLIA_KEY = 'c4da8be7fd29f0f5bfa42920b0a99dc7';\n\n/**\n * Algolia key for getting BR games with a query\n */\nexport const QUERIED_BR_ALGOLIA_KEY = 'c4da8be7fd29f0f5bfa42920b0a99dc7';\n\n/**\n * URL for getting BR Games\n */\nexport const BR_GET_GAMES_URL = `https://${BR_ALGOLIA_ID}-dsn.algolia.net/1/indexes/*/queries`;\n\n/**\n * URL for getting Queried BR Games\n */\nexport const QUERIED_BR_GET_GAMES_URL = `https://${BR_ALGOLIA_ID}-dsn.algolia.net/1/indexes/ncom_game_pt_br/query`;\n\n/**\n * Request headers for BR games\n *\n * @internal\n */\nexport const BR_ALGOLIA_HEADERS = {\n\t'Content-Type': 'application/json',\n\t'X-Algolia-API-Key': BR_ALGOLIA_KEY,\n\t'X-Algolia-Application-Id': BR_ALGOLIA_ID\n};\n\n/**\n * URL for getting game prices\n */\nexport const PRICE_GET_URL = 'https://api.ec.nintendo.com/v1/price';\n\n/**\n * Options for getting Price data\n *\n * @internal\n */\nexport const PRICE_GET_OPTIONS = { lang: 'en' };\n\n/**\n * Default limit used when getting price data - defaults to `50`\n *\n * @internal\n */\nexport const PRICE_LIST_LIMIT = 50;\n\n/**\n * Predefined options for the unit system\n */\nexport const enum Region {\n\tAMERICAS = 1,\n\tEUROPE = 2,\n\tASIA = 3\n}\n","/**\n * Serializes a value to a string, or returns null if it cannot be serialized.\n *\n * @param value - The value to serialize\n * @returns The serialized value, or null if it cannot be serialized\n * Retrieved on 2024-04-27 from https://github.com/discordjs/discord.js/blob/4ad285804bfd72b157139dde61c3fd8ac2544322/packages/rest/src/lib/utils/utils.ts#L8-L47\n */\nfunction serializeSearchParam(value: unknown): string | null {\n\t// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n\tswitch (typeof value) {\n\t\tcase 'string':\n\t\t\treturn value;\n\t\tcase 'number':\n\t\tcase 'bigint':\n\t\tcase 'boolean':\n\t\t\treturn value.toString();\n\t\tcase 'object':\n\t\t\tif (value === null) return null;\n\t\t\tif (value instanceof Date) {\n\t\t\t\treturn Number.isNaN(value.getTime()) ? null : value.toISOString();\n\t\t\t}\n\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-base-to-string\n\t\t\tif (typeof value.toString === 'function' && value.toString !== Object.prototype.toString) return value.toString();\n\t\t\treturn null;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\n/**\n * Creates and populates an URLSearchParams instance from an object, stripping\n * out null and undefined values, while also coercing non-strings to strings.\n *\n * @param options - The options to use\n * @returns A populated URLSearchParams instance\n * Retrieved on 2024-04-27 from https://github.com/discordjs/discord.js/blob/4ad285804bfd72b157139dde61c3fd8ac2544322/packages/rest/src/lib/utils/utils.ts#L8-L47\n */\nexport function makeURLSearchParams<OptionsType extends object>(options?: Readonly<OptionsType>) {\n\tconst params = new URLSearchParams();\n\tif (!options) return params;\n\n\tfor (const [key, value] of Object.entries(options)) {\n\t\tconst serialized = serializeSearchParam(value);\n\t\tif (serialized !== null) params.append(key, serialized);\n\t}\n\n\treturn params;\n}\n","/**\n * The maximum number of entries that Nintendo lets us get in 1 request for US games\n *\n * @internal\n */\nexport const US_GAME_LIST_LIMIT = 1_000;\n\n/**\n * Index names for querying all games by ascending title\n *\n * @internal\n */\nexport const US_INDEX_TITLE_ASC = 'ncom_game_en_us_title_asc';\n\n/**\n * Index names for querying all games by descending title\n *\n * @internal\n */\nexport const US_INDEX_TITLE_DESC = 'ncom_game_en_us_title_des';\n\n/**\n * Static query parameters for facets/filters in US Algolia calls\n *\n * @internal\n */\nexport const US_FACETS = JSON.stringify([\n\t'generalFilters',\n\t'platform',\n\t'availability',\n\t'genres',\n\t'howToShop',\n\t'virtualConsole',\n\t'franchises',\n\t'priceRange',\n\t'esrbRating',\n\t'playerFilters'\n]);\n\n/**\n * @internal\n */\nexport const US_PLATFORM_FACET_FILTER = 'platform:Nintendo Switch';\n\n/**\n * ESRB options for querying all games in one request\n *\n * @internal\n */\nexport const US_ESRB_RATINGS_FILTERS = ['esrbRating:Everyone', 'esrbRating:Everyone 10+', 'esrbRating:Teen', 'esrbRating:Mature'];\n\n/**\n * Availability filters for querying all games in one request\n *\n * @internal\n */\nexport const US_AVAILABILITY_FILTER = ['availability:Pre-order', 'availability:Coming soon', 'availability:Available now'];\n\n/**\n * Common franchises for querying all games in one request\n *\n * @internal\n */\nexport const US_COMMON_GAME_FRANCHISES = ['franchises:Mario', 'franchises:Zelda', 'franchises:Pokémon', 'franchises:Kirby'];\n","/**\n * Removed duplicates from an array\n *\n * @param array - The input array\n * @param property - The property to check\n */\nexport const arrayRemoveDuplicates = (array: any[], property: string) => {\n\tconst index: any[] = [];\n\n\treturn array.filter((item) => {\n\t\tconst key = property ? item[property] : item;\n\n\t\treturn index.includes(key) ? false : index.push(key);\n\t});\n};\n\n/**\n * Class representing an error in the nintendo-switch-eshop library\n */\nexport class EshopError extends Error {\n\t/**\n\t * Create an EshopError\n\t *\n\t * @param message - The message the error should show\n\t */\n\tpublic constructor(message: string) {\n\t\tsuper(message);\n\t\tthis.message = message;\n\t\tthis.name = 'EshopError';\n\t}\n}\n","import { fetch, FetchResultTypes } from '@sapphire/fetch';\nimport { Result } from '@sapphire/result';\nimport { US_ALGOLIA_HEADERS, US_GET_GAMES_URL } from '../utils/constants.js';\nimport type { AlgoliaResponse, GameUS } from '../utils/interfaces.js';\nimport { makeURLSearchParams } from '../utils/makeURLSearchParams.js';\nimport {\n\tUS_AVAILABILITY_FILTER,\n\tUS_COMMON_GAME_FRANCHISES,\n\tUS_ESRB_RATINGS_FILTERS,\n\tUS_FACETS,\n\tUS_GAME_LIST_LIMIT,\n\tUS_INDEX_TITLE_ASC,\n\tUS_INDEX_TITLE_DESC,\n\tUS_PLATFORM_FACET_FILTER\n} from '../utils/usa-constants.js';\nimport { arrayRemoveDuplicates, EshopError } from '../utils/utils.js';\n\n/**\n * Fetches all games on american e-shops\n *\n * Currently ONLY returns all games in the e-shop\n *\n * @returns Promise containing all the games\n */\nexport async function getGamesAmerica(): Promise<GameUS[]> {\n\tconst page = 0;\n\n\tconst baseParameters: Omit<ParamsObject, 'facetFilters'> = {\n\t\thitsPerPage: US_GAME_LIST_LIMIT,\n\t\tpage,\n\t\tanalytics: false,\n\t\tfacets: US_FACETS\n\t};\n\n\tconst requests: Request[] = [];\n\n\tfor (const rating of US_ESRB_RATINGS_FILTERS) {\n\t\trequests.push(\n\t\t\t{\n\t\t\t\tindexName: US_INDEX_TITLE_ASC,\n\t\t\t\tparams: makeURLSearchParams({ ...baseParameters, facetFilters: `[[\"${rating}\"],[\"${US_PLATFORM_FACET_FILTER}\"]]` }).toString()\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexName: US_INDEX_TITLE_DESC,\n\t\t\t\tparams: makeURLSearchParams({ ...baseParameters, facetFilters: `[[\"${rating}\"],[\"${US_PLATFORM_FACET_FILTER}\"]]` }).toString()\n\t\t\t}\n\t\t);\n\t}\n\n\tfor (const rating of US_AVAILABILITY_FILTER) {\n\t\trequests.push(\n\t\t\t{\n\t\t\t\tindexName: US_INDEX_TITLE_ASC,\n\t\t\t\tparams: makeURLSearchParams({ ...baseParameters, facetFilters: `[[\"${rating}\"],[\"${US_PLATFORM_FACET_FILTER}\"]]` }).toString()\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexName: US_INDEX_TITLE_DESC,\n\t\t\t\tparams: makeURLSearchParams({ ...baseParameters, facetFilters: `[[\"${rating}\"],[\"${US_PLATFORM_FACET_FILTER}\"]]` }).toString()\n\t\t\t}\n\t\t);\n\t}\n\n\tfor (const rating of US_COMMON_GAME_FRANCHISES) {\n\t\trequests.push(\n\t\t\t{\n\t\t\t\tindexName: US_INDEX_TITLE_ASC,\n\t\t\t\tparams: makeURLSearchParams({ ...baseParameters, facetFilters: `[[\"${rating}\"],[\"${US_PLATFORM_FACET_FILTER}\"]]` }).toString()\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexName: US_INDEX_TITLE_DESC,\n\t\t\t\tparams: makeURLSearchParams({ ...baseParameters, facetFilters: `[[\"${rating}\"],[\"${US_PLATFORM_FACET_FILTER}\"]]` }).toString()\n\t\t\t}\n\t\t);\n\t}\n\n\tconst requestOptions = {\n\t\tbody: JSON.stringify({\n\t\t\trequests\n\t\t}),\n\t\tmethod: 'POST',\n\t\theaders: US_ALGOLIA_HEADERS\n\t};\n\n\tconst gamesResponse = await Result.fromAsync(fetch<AlgoliaResponse>(US_GET_GAMES_URL, requestOptions, FetchResultTypes.JSON));\n\n\tif (gamesResponse.isErr()) {\n\t\tthrow new EshopError('Fetching of US Games failed');\n\t}\n\n\tlet allGames: any[] | PromiseLike<GameUS[]> = [];\n\tfor (const results of gamesResponse.unwrap().results) {\n\t\tallGames = allGames.concat(results.hits);\n\t}\n\n\tallGames = arrayRemoveDuplicates(allGames, 'slug');\n\treturn allGames;\n}\n\ninterface Request {\n\tindexName: string;\n\tparams: string;\n}\n\ninterface ParamsObject {\n\tanalytics: boolean;\n\tfacetFilters: string;\n\tfacets: string;\n\thitsPerPage: number;\n\tpage: number;\n}\n","/**\n * The maximum number of entries that Nintendo lets us get in 1 request for US games\n *\n * @internal\n */\nexport const BR_GAME_LIST_LIMIT = 499;\n\n/**\n * Index names for querying all games by ascending title\n *\n * @internal\n */\nexport const BR_INDEX_TITLE_ASC = 'ncom_game_pt_br_title_asc';\n\n/**\n * Index names for querying all games by descending title\n *\n * @internal\n */\nexport const BR_INDEX_TITLE_DESC = 'ncom_game_pt_br_title_des';\n\n/**\n * Static query parameters for facets/filters in US Algolia calls\n *\n * @internal\n */\nexport const BR_FACETS = JSON.stringify([\n\t'generalFilters',\n\t'platform',\n\t'availability',\n\t'genres',\n\t'howToShop',\n\t'virtualConsole',\n\t'franchises',\n\t'priceRange',\n\t'esrbRating',\n\t'playerFilters'\n]);\n\n/**\n * @internal\n */\nexport const BR_PLATFORM_FACET_FILTER = 'platform:Nintendo Switch';\n\n/**\n * ESRB options for querying all games in one request\n *\n * @internal\n */\nexport const BR_ESRB_RATINGS_FILTERS = [\n\t'esrbRating:Livre',\n\t'esrbRating:10',\n\t'esrbRating:12',\n\t'esrbRating:14',\n\t'esrbRating:16',\n\t'esrbRating:18',\n\t'esrbRating:Check the rating',\n\t'esrbRating:L'\n];\n\n/**\n * Availability filters for querying all games in one request\n *\n * @internal\n */\nexport const BR_AVAILABILITY_FILTER = [\n\t'availability:Pre-order',\n\t'availability:Coming soon',\n\t'availability:Available now',\n\t'availability:New releases'\n];\n\n/**\n * Common franchises for querying all games in one request\n *\n * @internal\n */\nexport const BR_COMMON_GAME_FRANCHISES = ['franchises:Mario', 'franchises:Zelda', 'franchises:Pokémon', 'franchises:Kirby'];\n","import { fetch, FetchResultTypes } from '@sapphire/fetch';\nimport { Result } from '@sapphire/result';\nimport {\n\tBR_AVAILABILITY_FILTER,\n\tBR_COMMON_GAME_FRANCHISES,\n\tBR_ESRB_RATINGS_FILTERS,\n\tBR_FACETS,\n\tBR_GAME_LIST_LIMIT,\n\tBR_INDEX_TITLE_ASC,\n\tBR_INDEX_TITLE_DESC,\n\tBR_PLATFORM_FACET_FILTER\n} from '../utils/brazilian-constants.js';\nimport { BR_ALGOLIA_HEADERS, BR_GET_GAMES_URL } from '../utils/constants.js';\nimport type { AlgoliaResponse, GameUS } from '../utils/interfaces.js';\nimport { makeURLSearchParams } from '../utils/makeURLSearchParams.js';\nimport { arrayRemoveDuplicates, EshopError } from '../utils/utils.js';\n\n/**\n * Fetches all games on brazilian e-shop\n *\n * Currently ONLY returns all games in the e-shop\n *\n * @returns Promise containing all the games\n */\nexport async function getGamesBrazil(): Promise<GameUS[]> {\n\tconst page = 0;\n\n\tconst baseParameters: Omit<ParamsObject, 'facetFilters'> = {\n\t\thitsPerPage: BR_GAME_LIST_LIMIT,\n\t\tpage,\n\t\tanalytics: false,\n\t\tfacets: BR_FACETS\n\t};\n\n\tconst requests: Request[] = [];\n\n\tfor (const rating of BR_ESRB_RATINGS_FILTERS) {\n\t\trequests.push(\n\t\t\t{\n\t\t\t\tindexName: BR_INDEX_TITLE_ASC,\n\t\t\t\tparams: makeURLSearchParams({ ...baseParameters, facetFilters: `[[\"${rating}\"],[\"${BR_PLATFORM_FACET_FILTER}\"]]` }).toString()\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexName: BR_INDEX_TITLE_DESC,\n\t\t\t\tparams: makeURLSearchParams({ ...baseParameters, facetFilters: `[[\"${rating}\"],[\"${BR_PLATFORM_FACET_FILTER}\"]]` }).toString()\n\t\t\t}\n\t\t);\n\t}\n\n\tfor (const rating of BR_AVAILABILITY_FILTER) {\n\t\trequests.push(\n\t\t\t{\n\t\t\t\tindexName: BR_INDEX_TITLE_ASC,\n\t\t\t\tparams: makeURLSearchParams({ ...baseParameters, facetFilters: `[[\"${rating}\"],[\"${BR_PLATFORM_FACET_FILTER}\"]]` }).toString()\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexName: BR_INDEX_TITLE_DESC,\n\t\t\t\tparams: makeURLSearchParams({ ...baseParameters, facetFilters: `[[\"${rating}\"],[\"${BR_PLATFORM_FACET_FILTER}\"]]` }).toString()\n\t\t\t}\n\t\t);\n\t}\n\n\tfor (const rating of BR_COMMON_GAME_FRANCHISES) {\n\t\trequests.push(\n\t\t\t{\n\t\t\t\tindexName: BR_INDEX_TITLE_ASC,\n\t\t\t\tparams: makeURLSearchParams({ ...baseParameters, facetFilters: `[[\"${rating}\"],[\"${BR_PLATFORM_FACET_FILTER}\"]]` }).toString()\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexName: BR_INDEX_TITLE_DESC,\n\t\t\t\tparams: makeURLSearchParams({ ...baseParameters, facetFilters: `[[\"${rating}\"],[\"${BR_PLATFORM_FACET_FILTER}\"]]` }).toString()\n\t\t\t}\n\t\t);\n\t}\n\n\tconst requestOptions = {\n\t\tbody: JSON.stringify({\n\t\t\trequests\n\t\t}),\n\t\tmethod: 'POST',\n\t\theaders: BR_ALGOLIA_HEADERS\n\t};\n\n\tconst gamesResponse = await Result.fromAsync(fetch<AlgoliaResponse>(BR_GET_GAMES_URL, requestOptions, FetchResultTypes.JSON));\n\n\tif (gamesResponse.isErr()) {\n\t\tthrow new EshopError('Fetching of BR Games failed');\n\t}\n\n\tlet allGames: any[] | PromiseLike<GameUS[]> = [];\n\tfor (const results of gamesResponse.unwrap().results) {\n\t\tallGames = allGames.concat(results.hits);\n\t}\n\n\tallGames = arrayRemoveDuplicates(allGames, 'slug');\n\treturn allGames;\n}\n\ninterface Request {\n\tindexName: string;\n\tparams: string;\n}\n\ninterface ParamsObject {\n\tanalytics: boolean;\n\tfacetFilters: string;\n\tfacets: string;\n\thitsPerPage: number;\n\tpage: number;\n}\n","import { fetch, FetchResultTypes } from '@sapphire/fetch';\nimport { Result } from '@sapphire/result';\nimport { EU_DEFAULT_LOCALE, EU_GAME_LIST_LIMIT, EU_GET_GAMES_OPTIONS, EU_GET_GAMES_URL } from '../utils/constants.js';\nimport type { EURequestOptions, GameEU } from '../utils/interfaces.js';\nimport { makeURLSearchParams } from '../utils/makeURLSearchParams.js';\nimport { EshopError } from '../utils/utils.js';\n\n/**\n * Fetches all games on the European, Australian or New Zealand eShops\n *\n * @remarks\n * Games from Australia / New Zealand can be limited. They are included only as much as that Nintendo assigns them properly to the PAL region\n * @param options - Request options to pass to the eShop request {@link EURequestOptions | See EURequestOptions for details}\n * @returns Promise containing all requested EU/PAL games\n */\n// eslint-disable-next-line unicorn/no-object-as-default-parameter\nexport async function getGamesEurope(options: EURequestOptions = { limit: EU_GAME_LIST_LIMIT, locale: EU_DEFAULT_LOCALE }): Promise<GameEU[]> {\n\toptions.limit ??= EU_GAME_LIST_LIMIT;\n\toptions.locale ??= EU_DEFAULT_LOCALE;\n\n\tconst url = new URL(EU_GET_GAMES_URL.replace('{locale}', options.locale));\n\turl.search = makeURLSearchParams({\n\t\trows: options.limit,\n\t\t...EU_GET_GAMES_OPTIONS\n\t}).toString();\n\n\tconst gamesData = await Result.fromAsync(fetch<{ response: { docs: GameEU[] } }>(url, FetchResultTypes.JSON));\n\n\tif (gamesData.isErr()) {\n\t\tthrow new EshopError('Fetching of EU Games failed');\n\t}\n\n\treturn gamesData.unwrap().response.docs;\n}\n","import { fetch, FetchResultTypes } from '@sapphire/fetch';\nimport { Result } from '@sapphire/result';\nimport { XMLParser } from 'fast-xml-parser';\nimport { JP_GET_GAMES_URL } from '../utils/constants.js';\nimport type { GameJP } from '../utils/interfaces.js';\nimport { EshopError } from '../utils/utils.js';\n\nconst parser = new XMLParser();\n\n/**\n * Fetches all games on japanese eShops\n *\n * @returns Promise containing all the games\n */\nexport async function getGamesJapan(): Promise<GameJP[]> {\n\tconst response = await Result.fromAsync(fetch(JP_GET_GAMES_URL, FetchResultTypes.Text));\n\n\tif (response.isErr()) {\n\t\tthrow new EshopError('Fetching of JP Games failed');\n\t}\n\n\tconst gamesJP = Result.from(() => parser.parse(response.unwrap()));\n\n\tif (gamesJP.isErr()) {\n\t\tthrow new EshopError('Parsing of JP Games failed');\n\t}\n\n\treturn gamesJP.unwrap().TitleInfoList.TitleInfo as GameJP[];\n}\n","/* eslint-disable jsdoc/check-param-names */\nimport { fetch, FetchResultTypes } from '@sapphire/fetch';\nimport { Result } from '@sapphire/result';\nimport {\n\tQUERIED_US_ALGOLIA_KEY_NEW,\n\tQUERIED_US_ALGOLIA_KEY_OLD,\n\tQUERIED_US_GET_GAMES_URL_NEW,\n\tQUERIED_US_GET_GAMES_URL_OLD,\n\tUS_ALGOLIA_HEADERS\n} from '../utils/constants.js';\nimport type { QueriedGameResult, QueriedGamesAmericaOptions, QueriedGameUS } from '../utils/interfaces.js';\nimport { EshopError } from '../utils/utils.js';\n\n/**\n * Fetches a subset of games from the American e-shops as based on a given query\n *\n * @param query - The query to search for\n * @param options - Additional options for the {@link getQueriedGamesAmerica} call. Defaults to `{ hitsPerPage: 200, page: 0 }`\n * @returns Promise containing the first `hitsPerPage` games that match your query\n */\nexport async function getQueriedGamesAmerica(\n\tquery: string,\n\t// eslint-disable-next-line unicorn/no-object-as-default-parameter\n\t{ hitsPerPage = 200, page = 0 }: QueriedGamesAmericaOptions = { hitsPerPage: 200, page: 0 }\n): Promise<QueriedGameUS[]> {\n\tconst newGamesResult = await Result.fromAsync(\n\t\tfetch<QueriedGameResult>(\n\t\t\tQUERIED_US_GET_GAMES_URL_NEW,\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t...US_ALGOLIA_HEADERS,\n\t\t\t\t\t'X-Algolia-API-Key': QUERIED_US_ALGOLIA_KEY_NEW\n\t\t\t\t},\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\thitsPerPage,\n\t\t\t\t\tpage,\n\t\t\t\t\tquery\n\t\t\t\t})\n\t\t\t},\n\t\t\tFetchResultTypes.JSON\n\t\t)\n\t);\n\n\tif (newGamesResult.isErr() || newGamesResult.isOkAnd((gameResult) => gameResult.hits.length === 0)) {\n\t\tthrow new EshopError(`No game results for the query \"${query}\"`);\n\t}\n\n\tconst oldGamesResult = await Result.fromAsync(\n\t\tfetch<QueriedGameResult>(\n\t\t\tQUERIED_US_GET_GAMES_URL_OLD,\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t...US_ALGOLIA_HEADERS,\n\t\t\t\t\t'X-Algolia-API-Key': QUERIED_US_ALGOLIA_KEY_OLD\n\t\t\t\t},\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\thitsPerPage,\n\t\t\t\t\tpage,\n\t\t\t\t\tquery\n\t\t\t\t})\n\t\t\t},\n\t\t\tFetchResultTypes.JSON\n\t\t)\n\t);\n\n\tif (oldGamesResult.isErr() || oldGamesResult.isOkAnd((gameResult) => gameResult.hits.length === 0)) {\n\t\tthrow new EshopError(`No game results for the query \"${query}\"`);\n\t}\n\n\treturn enrichNewHitsWithOldHitData(newGamesResult.unwrap().hits, oldGamesResult.unwrap().hits);\n}\n\nfunction enrichNewHitsWithOldHitData(newHits: QueriedGameUS[], oldHits: QueriedGameUS[]) {\n\tfor (const newHit of newHits) {\n\t\tconst oldHitWithSameNsuid = oldHits.find((oldHit) => oldHit.nsuid === newHit.nsuid);\n\n\t\tif (!oldHitWithSameNsuid) continue;\n\n\t\tnewHit.boxart = oldHitWithSameNsuid.boxart;\n\t\tnewHit.developers = oldHitWithSameNsuid.developers;\n\t\tnewHit.freeToStart = oldHitWithSameNsuid.freeToStart;\n\t\tnewHit.generalFilters = oldHitWithSameNsuid.generalFilters;\n\t\tnewHit.horizontalHeaderImage = oldHitWithSameNsuid.horizontalHeaderImage;\n\t\tnewHit.howToShop = oldHitWithSameNsuid.howToShop;\n\t\tnewHit.lowestPrice = oldHitWithSameNsuid.lowestPrice;\n\t\tnewHit.msrp = oldHitWithSameNsuid.msrp ?? newHit.price?.regPrice;\n\t\tnewHit.salePrice = oldHitWithSameNsuid.salePrice ?? newHit.price?.salePrice;\n\t\tnewHit.featured = oldHitWithSameNsuid.featured ?? newHit.featuredProduct;\n\t\tnewHit.lastModified = oldHitWithSameNsuid.lastModified ?? newHit.updatedAt;\n\t\tnewHit.numOfPlayers = oldHitWithSameNsuid.numOfPlayers;\n\t\tnewHit.playerFilters = oldHitWithSameNsuid.playerFilters;\n\t\tnewHit._distinctSeqID = oldHitWithSameNsuid._distinctSeqID;\n\t}\n\n\treturn newHits;\n}\n","/* eslint-disable jsdoc/check-param-names */\nimport { fetch, FetchResultTypes } from '@sapphire/fetch';\nimport { Result } from '@sapphire/result';\nimport { BR_ALGOLIA_HEADERS, QUERIED_BR_ALGOLIA_KEY, QUERIED_BR_GET_GAMES_URL } from '../utils/constants.js';\nimport type { QueriedGameResult, QueriedGamesAmericaOptions, QueriedGameUS } from '../utils/interfaces.js';\nimport { makeURLSearchParams } from '../utils/makeURLSearchParams.js';\nimport { EshopError } from '../utils/utils.js';\n\n/**\n * Fetches a subset of games from the Brazilian e-shop as based on a given query\n *\n * @param query - The query to search for\n * @param options - Additional options for the {@link getQueriedGamesBrazil} call. Defaults to `{ hitsPerPage: 200, page: 0 }`\n * @returns Promise containing the first `hitsPerPage` games that match your query\n */\nexport async function getQueriedGamesBrazil(\n\tquery: string,\n\t// eslint-disable-next-line unicorn/no-object-as-default-parameter\n\t{ hitsPerPage = 200, page = 0 }: QueriedGamesAmericaOptions = { hitsPerPage: 200, page: 0 }\n): Promise<QueriedGameUS[]> {\n\tconst gamesResult = await Result.fromAsync(\n\t\tfetch<QueriedGameResult>(\n\t\t\tQUERIED_BR_GET_GAMES_URL,\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t...BR_ALGOLIA_HEADERS,\n\t\t\t\t\t'X-Algolia-API-Key': QUERIED_BR_ALGOLIA_KEY\n\t\t\t\t},\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\tparams: makeURLSearchParams({\n\t\t\t\t\t\thitsPerPage,\n\t\t\t\t\t\tpage,\n\t\t\t\t\t\tquery\n\t\t\t\t\t}).toString()\n\t\t\t\t})\n\t\t\t},\n\t\t\tFetchResultTypes.JSON\n\t\t)\n\t);\n\n\tif (gamesResult.isErr() || gamesResult.isOkAnd((gameQueryResult) => gameQueryResult.hits.length === 0)) {\n\t\tthrow new EshopError(`No game results for the query \"${query}\"`);\n\t}\n\n\treturn gamesResult.unwrap().hits;\n}\n","import { fetch, FetchResultTypes } from '@sapphire/fetch';\nimport { Result } from '@sapphire/result';\nimport { PRICE_GET_OPTIONS, PRICE_GET_URL, PRICE_LIST_LIMIT } from '../utils/constants.js';\nimport type { PriceResponse, TitleData } from '../utils/interfaces.js';\nimport { makeURLSearchParams } from '../utils/makeURLSearchParams.js';\nimport { EshopError } from '../utils/utils.js';\n\n/**\n * Gets pricing information for the requested games. Paginates every 50 games.\n *\n * @param country - A two digit country code. (ISO 3166-1 alpha-2 country code)\n * @param gameIds - One or more NSUID of the corresponding games.\n * @param offset - _(Optional)_ The offset to start at\n * @param prices - _(Optional)_ An array of {@link TitleData}\n * @returns A promise containing the pricing information.\n */\nexport async function getPrices(country: string, gameIds: string[] | string, offset = 0, prices: TitleData[] = []): Promise<PriceResponse> {\n\tconst filteredIds = gameIds.slice(offset, offset + PRICE_LIST_LIMIT);\n\n\tconst url = new URL(PRICE_GET_URL);\n\turl.search = makeURLSearchParams({\n\t\tcountry,\n\t\tids: filteredIds,\n\t\tlimit: PRICE_LIST_LIMIT,\n\t\t...PRICE_GET_OPTIONS\n\t}).toString();\n\tconst response = await Result.fromAsync(fetch<PriceResponse>(url, FetchResultTypes.JSON));\n\n\tif (response.isErr()) {\n\t\tthrow new EshopError('Fetching of eShop prices failed');\n\t}\n\n\tconst unwrappedResponse = response.unwrap();\n\n\tif (unwrappedResponse.prices && unwrappedResponse.prices.length + offset < gameIds.length) {\n\t\tconst accumulatedPrices = prices.concat(unwrappedResponse.prices);\n\n\t\treturn getPrices(country, gameIds, offset + PRICE_LIST_LIMIT, accumulatedPrices);\n\t} else if (unwrappedResponse.prices) {\n\t\tunwrappedResponse.prices = unwrappedResponse.prices.concat(prices);\n\n\t\treturn unwrappedResponse;\n\t}\n\n\treturn unwrappedResponse;\n}\n","import { Result } from '@sapphire/result';\nimport { countries, type Country } from 'country-data';\nimport type { Region } from '../utils/constants.js';\nimport type { EShop, PriceResponse } from '../utils/interfaces.js';\nimport { getPrices } from './getPrices.js';\n\n/**\n * Gets all active eShops given a list of countries.\n *\n * @param countryCodes - A list of 2 digit country codes for every country eShop to lookup. (ISO 3166-1 alpha-2 country codes)\n * @param gameCode - A 14 digits game NSUID from the desired region.\n * @param region - A region id that will be appended in the final shop object for filtering purposes.\n * @returns A list of shop objects with country code, name and default currency.\n */\nexport async function getShopsByCountryCodes(countryCodes: string[], gameCode: string, region: Region): Promise<EShop[]> {\n\tconst countryList: (Country | undefined)[] = countryCodes.map((code: string) =>\n\t\tcountries.all.find((country: Country) => country.alpha2 === code)\n\t);\n\tconst shops: PriceResponse[] = [];\n\n\tfor (const country of countryList) {\n\t\tif (!country) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst response = await Result.fromAsync(getPrices(country.alpha2, gameCode));\n\n\t\tif (response.isErr()) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst unwrappedResponse = response.unwrap();\n\t\tunwrappedResponse.country = country;\n\t\tshops.push(unwrappedResponse);\n\t}\n\n\tconst activeShops = shops.filter((shop: PriceResponse) => shop?.prices?.length && shop.prices[0].regular_price);\n\tconst eShops = activeShops.map((shop: PriceResponse) => ({\n\t\tcode: shop.country.alpha2,\n\t\tcountry: shop.country.name,\n\t\tcurrency: shop.prices[0].regular_price.currency,\n\t\tregion\n\t}));\n\n\tif (!eShops.length) throw new Error('ACTIVE_SHOPS_Rate_Limit');\n\n\treturn eShops;\n}\n","import { regions } from 'country-data';\nimport { getShopsByCountryCodes } from '../other/getShopByCountryCode.js';\nimport { Region, US_GAME_CHECK_CODE } from '../utils/constants.js';\nimport type { EShop } from '../utils/interfaces.js';\n\n/**\n * Gets all active eShops on American countries.\n *\n * @remarks\n * This method will launch several requests at nintendo web services, so don't abuse it.\n * @returns A list of shop objects with country code, name and default currency.\n */\nexport async function getShopsAmerica(): Promise<EShop[]> {\n\treturn getShopsByCountryCodes(\n\t\tregions.southAmerica.countries.concat(regions.centralAfrica.countries, regions.northernAmerica.countries),\n\t\tUS_GAME_CHECK_CODE,\n\t\tRegion.AMERICAS\n\t);\n}\n","import { regions } from 'country-data';\nimport { getShopsByCountryCodes } from '../other/getShopByCountryCode.js';\nimport { JP_GAME_CHECK_CODE, Region } from '../utils/constants.js';\nimport type { EShop } from '../utils/interfaces.js';\n\n/**\n * Gets all active eShops on Asian countries\n *\n * @remarks\n * This method will launch several requests at nintendo web services, so don't abuse it.\n * @returns A list of shop objects with country code, name and default currency.\n */\nexport async function getShopsAsia(): Promise<EShop[]> {\n\treturn getShopsByCountryCodes(\n\t\tregions.southernAsia.countries.concat(\n\t\t\tregions.southernAsia.countries,\n\t\t\tregions.southeastAsia.countries,\n\t\t\tregions.eastAsia.countries,\n\t\t\tregions.westernAsia.countries\n\t\t),\n\t\tJP_GAME_CHECK_CODE,\n\t\tRegion.ASIA\n\t);\n}\n","import { regions } from 'country-data';\nimport { getShopsByCountryCodes } from '../other/getShopByCountryCode.js';\nimport { EU_GAME_CHECK_CODE, Region } from '../utils/constants.js';\nimport type { EShop } from '../utils/interfaces.js';\n\n/**\n * Gets all active eShops on European countries.\n *\n * @remarks\n * This method will launch several requests at nintendo web services, so don't abuse it.\n * @returns A list of shop objects with country code, name and default currency.\n */\nexport async function getShopsEurope(): Promise<EShop[]> {\n\treturn getShopsByCountryCodes(\n\t\tregions.northernEurope.countries.concat(\n\t\t\tregions.southernEurope.countries,\n\t\t\tregions.easternEurope.countries,\n\t\t\tregions.westernEurope.countries,\n\t\t\tregions.australia.countries,\n\t\t\tregions.southernAfrica.countries\n\t\t),\n\t\tEU_GAME_CHECK_CODE,\n\t\tRegion.EUROPE\n\t);\n}\n","import type { EShop } from '../utils/interfaces.js';\nimport { getShopsAmerica } from './getShopsAmerica.js';\nimport { getShopsAsia } from './getShopsAsia.js';\nimport { getShopsEurope } from './getShopsEurope.js';\n\n/**\n * Gets all active eShops.\n *\n * @remarks\n * This method will launch several requests at nintendo web services, so don't abuse it.\n * @returns A list of shop objects with country code, name and default currency.\n */\nexport async function getActiveShops(): Promise<EShop[]> {\n\tconst shopsAmerica = await getShopsAmerica();\n\tconst shopsAsia = await getShopsAsia();\n\tconst shopsEurope = await getShopsEurope();\n\n\treturn shopsAmerica.concat(shopsAsia, shopsEurope);\n}\n","import { EU_GAME_CODE_REGEX, JP_GAME_CODE_REGEX, Region } from '../utils/constants.js';\nimport type { GameEU, GameJP, GameUS } from '../utils/interfaces.js';\nimport { EshopError } from '../utils/utils.js';\n\n/**\n * Parses the game code to extract the cross-region portion.\n *\n * @param game - The game object returned from one of the other methods.\n * @param region - Region code\n * @returns The 4-digit result