guildwars2-ts 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +16 -16
- package/dist/index.d.mts +6 -5
- package/dist/index.d.ts +6 -5
- package/dist/index.js +17 -19
- package/dist/index.mjs +17 -19
- package/package.json +1 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/base/apiBase.ts","../src/base/apiParams.ts","../src/base/errors/apiNotFoundError.ts","../src/base/errors/apiRetryFailedError.ts","../src/base/errors/apiTokenError.ts","../src/base/errors/apiGenericError.ts","../src/base/errors/apiPermissionsError.ts","../src/base/errors/apiTimeoutError.ts","../src/base/logger.ts","../src/base/requestBase.ts","../src/models/account/account.dto.ts","../src/models/account/account.achievements.dto.ts","../src/models/account/account.bank.dto.ts","../src/models/account/account.buildStorage.dto.ts","../src/models/account/account.dailyCrafting.dto.ts","../src/models/account/account.dungeons.dto.ts","../src/models/account/account.dyes.dto.ts","../src/models/account/account.emotes.dto.ts","../src/models/account/account.finishers.dto.ts","../src/models/account/account.gliders.dto.ts","../src/models/account/account.home.nodes.dto.ts","../src/models/account/account.home.cats.dto.ts","../src/models/account/account.inventory.dto.ts","../src/models/account/account.jadebots.dto.ts","../src/models/account/account.legendaryArmory.dto.ts","../src/models/account/account.luck.dto.ts","../src/models/account/account.mailCarriers.dto.ts","../src/models/account/account.mapChests.dto.ts","../src/models/account/account.masteries.dto.ts","../src/models/account/account.mastery.points.dto.ts","../src/models/account/account.materials.dto.ts","../src/models/account/account.minis.dto.ts","../src/models/account/account.mounts.skins.dto.ts","../src/models/account/account.mounts.types.dto.ts","../src/models/account/account.novelties.dto.ts","../src/models/account/account.outfits.dto.ts","../src/models/account/account.progression.dto.ts","../src/models/account/account.pvp.heroes.dto.ts","../src/models/account/account.raids.dto.ts","../src/models/account/account.recipes.dto.ts","../src/models/account/account.skiffs.dto.ts","../src/models/account/account.skins.dto.ts","../src/models/account/account.titles.dto.ts","../src/models/account/account.wallet.dto.ts","../src/models/account/account.worldBosses.dto.ts","../src/models/achievements/achievements.categories.dto.ts","../src/models/achievements/achievements.groups.dto.ts","../src/models/backstory/backstory.answers.dto.ts","../src/models/backstory/backstory.questions.dto.ts","../src/models/characters/characters.dto.ts","../src/models/characters/characters.backstory.dto.ts","../src/models/characters/characters.buildtabs.dto.ts","../src/models/characters/characters.core.dto.ts","../src/models/characters/characters.crafting.dto.ts","../src/models/characters/characters.equipment.dto.ts","../src/models/characters/characters.equipmentTabs.dto.ts","../src/models/characters/characters.heroPoints.dto.ts","../src/models/characters/characters.inventory.dto.ts","../src/models/characters/characters.quests.dto.ts","../src/models/characters/characters.recipes.dto.ts","../src/models/characters/characters.sab.dto.ts","../src/models/characters/characters.skills.dto.ts","../src/models/characters/characters.specializations.dto.ts","../src/models/characters/characters.training.dto.ts","../src/models/commerce/commerce.delivery.dto.ts","../src/models/commerce/commerce.exchange.dto.ts","../src/models/commerce/commerce.listings.dto.ts","../src/models/commerce/commerce.prices.dto.ts","../src/models/commerce/commerce.transactions.dto.ts","../src/models/continents/continents.dto.ts","../src/models/guild/guild.dto.ts","../src/models/guild/guild.log.dto.ts","../src/models/guild/guild.members.dto.ts","../src/models/guild/guild.ranks.dto.ts","../src/models/guild/guild.stash.dto.ts","../src/models/guild/guild.storage.dto.ts","../src/models/guild/guild.teams.dto.ts","../src/models/guild/guild.treasury.dto.ts","../src/models/guild/guild.upgrades.dto.ts","../src/models/guild/guild.upgrades.info.dto.ts","../src/models/guild/guild.permissions.dto.ts","../src/models/guild/guild.search.dto.ts","../src/models/home/home.nodes.dto.ts","../src/models/home/home.cats.dto.ts","../src/models/misc/build.dto.ts","../src/models/misc/colors.dto.ts","../src/models/misc/emblem.dto.ts","../src/models/misc/emotes.dto.ts","../src/models/misc/currencies.dto.ts","../src/models/misc/dailyCrafting.dto.ts","../src/models/misc/dungeons.dto.ts","../src/models/misc/files.dto.ts","../src/models/misc/finishers.dto.ts","../src/models/misc/gliders.dto.ts","../src/models/misc/items.dto.ts","../src/models/misc/itemstats.dto.ts","../src/models/misc/jadebots.dto.ts","../src/models/misc/legendaryarmory.dto.ts","../src/models/misc/legends.dto.ts","../src/models/misc/mailCarriers.dto.ts","../src/models/misc/mapChests.dto.ts","../src/models/misc/maps.dto.ts","../src/models/misc/materials.dto.ts","../src/models/misc/masteries.dto.ts","../src/models/misc/minis.dto.ts","../src/models/misc/novelties.dto.ts","../src/models/misc/outfits.dto.ts","../src/models/misc/pets.dto.ts","../src/models/misc/professions.dto.ts","../src/models/misc/quaggans.dto.ts","../src/models/misc/quests.dto.ts","../src/models/misc/races.dto.ts","../src/models/misc/raids.dto.ts","../src/models/misc/recipes.dto.ts","../src/models/misc/skiffs.dto.ts","../src/models/misc/skills.dto.ts","../src/models/misc/skins.dto.ts","../src/models/misc/specializations.dto.ts","../src/models/misc/subtoken.dto.ts","../src/models/misc/titles.dto.ts","../src/models/misc/tokeninfo.dto.ts","../src/models/misc/traits.dto.ts","../src/models/misc/worlds.dto.ts","../src/models/mounts/mounts.skins.dto.ts","../src/models/mounts/mounts.types.dto.ts","../src/models/pvp/pvp.amulets.dto.ts","../src/models/pvp/pvp.games.dto.ts","../src/models/pvp/pvp.heroes.dto.ts","../src/models/pvp/pvp.ranks.dto.ts","../src/models/pvp/pvp.seasons.dto.ts","../src/models/pvp/pvp.seasons.leaderboards.dto.ts","../src/models/pvp/pvp.standings.dto.ts","../src/models/pvp/pvp.stats.dto.ts","../src/models/stories/stories.dto.ts","../src/models/stories/stories.seasons.dto.ts","../src/models/wvw/wvw.abilities.dto.ts","../src/models/wvw/wvw.matches.dto.ts","../src/models/wvw/wvw.matches.overview.dto.ts","../src/models/wvw/wvw.matches.scores.dto.ts","../src/models/wvw/wvw.matches.stats.dto.ts","../src/models/wvw/wvw.objectives.dto.ts","../src/models/wvw/wvw.ranks.dto.ts","../src/models/wvw/wvw.upgrades.dto.ts","../src/apis/endpoints.ts","../src/apis/account/account.ts","../src/apis/v2apiUtils.ts","../src/apis/achievements/achievements.ts","../src/apis/characters/characters.ts","../src/apis/commerce/commerce.ts","../src/apis/emblem/emblem.ts","../src/apis/guild/guild.ts","../src/apis/home/home.ts","../src/apis/misc/backstory.ts","../src/apis/misc/build.ts","../src/apis/misc/colors.ts","../src/apis/misc/continents.ts","../src/apis/misc/currencies.ts","../src/apis/misc/dailyCrafting.ts","../src/apis/misc/dungeons.ts","../src/apis/misc/emotes.ts","../src/apis/misc/files.ts","../src/apis/misc/finishers.ts","../src/apis/misc/gliders.ts","../src/apis/misc/items.ts","../src/apis/misc/itemstats.ts","../src/apis/misc/jadebots.ts","../src/apis/misc/legendaryarmory.ts","../src/apis/misc/legends.ts","../src/apis/misc/mailCarriers.ts","../src/apis/misc/mapChests.ts","../src/apis/misc/maps.ts","../src/apis/misc/masteries.ts","../src/apis/misc/materials.ts","../src/apis/misc/minis.ts","../src/apis/misc/mounts.ts","../src/apis/misc/novelties.ts","../src/apis/misc/outfits.ts","../src/apis/misc/pets.ts","../src/apis/misc/professions.ts","../src/apis/misc/quaggans.ts","../src/apis/misc/quests.ts","../src/apis/misc/races.ts","../src/apis/misc/raids.ts","../src/apis/misc/recipes.ts","../src/apis/misc/skiffs.ts","../src/apis/misc/skills.ts","../src/apis/misc/skins.ts","../src/apis/misc/specializations.ts","../src/apis/misc/stories.ts","../src/apis/misc/subtoken.ts","../src/apis/misc/titles.ts","../src/apis/misc/tokeninfo.ts","../src/apis/misc/traits.ts","../src/apis/misc/worldbosses.ts","../src/apis/misc/worlds.ts","../src/apis/pvp/pvp.ts","../src/apis/wvw/wvw.ts","../src/api.ts"],"names":["ApiLanguage","LogLevel","z","Specialization","Attribute","WeaponDetails","ArmorDetails","Facts","TraitedFacts","Skills"],"mappings":"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","sourcesContent":["import { AxiosError, AxiosHeaders, type AxiosResponse, type RawAxiosRequestConfig } from 'axios';\nimport { type z } from 'zod';\nimport type { Endpoint } from '../apis/endpoints';\nimport { ApiLanguage, type ApiParams, type UrlParams } from './apiParams';\nimport {\n\tApiGenericError,\n\tApiNotFoundError,\n\tApiPermissionsError,\n\tApiRetryFailedError,\n\tApiTimeoutError,\n\tApiTokenError\n} from './errors';\nimport { logger } from './logger';\nimport { enqueueRequest } from './requestBase';\n\n/**\n * Base Api object. Implements anything needed for the requests to all endpoints\n */\nexport class ApiBase {\n\tprivate readonly _baseUrl: string = 'https://api.guildwars2.com';\n\tprivate readonly _apiToken?: string;\n\tprivate readonly _language: ApiLanguage;\n\tprivate readonly _rateLimitRetry: boolean;\n\tprivate readonly _rateLimitRetryAttempts: number;\n\n\tconstructor(apiParams?: ApiParams) {\n\t\t// Set core Api parameters\n\t\tthis._apiToken = apiParams?.token;\n\t\tthis._language = apiParams?.language ?? ApiLanguage.English;\n\n\t\t// Set rate-limiting parameters\n\t\tthis._rateLimitRetry = apiParams?.rateLimit?.retry ?? true;\n\t\tthis._rateLimitRetryAttempts = apiParams?.rateLimit?.retry ? apiParams.rateLimit.attempts : 0;\n\t}\n\n\t/**\n\t * Parameters for the api response, at top level\n\t */\n\tprotected getParams(): ApiParams {\n\t\treturn {\n\t\t\ttoken: this._apiToken,\n\t\t\tlanguage: this._language,\n\t\t\trateLimit: {\n\t\t\t\tretry: this._rateLimitRetry,\n\t\t\t\tattempts: this._rateLimitRetryAttempts\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Generic request builder. Adds a finalized request to the concurrency queue\n\t *\n\t * @param endpoint - API Endpoint\n\t * @param apiParams - Query string\n\t * @param responseType - Type of the response\n\t */\n\tprotected async buildRequest<T extends z.ZodType>(\n\t\tendpoint: Endpoint,\n\t\tapiParams: UrlParams,\n\t\tresponseType: T\n\t): Promise<z.infer<T>> {\n\t\t// Check authentication. Most endpoints will not work without it\n\t\tconst { tokenRequired } = endpoint;\n\n\t\t// Build params for the specific endpoint\n\t\tconst url = this._getApiUrl(endpoint, apiParams);\n\t\tconst headers = new AxiosHeaders();\n\t\theaders['Accept-Language'] = this._language;\n\t\tif (tokenRequired) {\n\t\t\tif (!this._apiToken) throw new ApiTokenError();\n\t\t\theaders.Authorization = `Bearer ${this._apiToken}`;\n\t\t}\n\n\t\tconst options: RawAxiosRequestConfig = {\n\t\t\turl,\n\t\t\tmethod: 'GET',\n\t\t\theaders\n\t\t};\n\n\t\t// Make a request based on provided data\n\t\ttry {\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: <This will always be present>\n\t\t\tlogger.info(`Requesting ${options.url!}`);\n\t\t\tconst response = await enqueueRequest<AxiosResponse<T>>(options);\n\t\t\tconst { data } = response;\n\n\t\t\t// Validate the response\n\t\t\tconst parse = (responseType as z.ZodType<T>).safeParse(data);\n\t\t\tif (!parse.success) {\n\t\t\t\tlogger.warn(\n\t\t\t\t\t'The requested data failed to parse, when using the known schema. Data is still returned, but may be incorrectly typed'\n\t\t\t\t);\n\t\t\t\tlogger.warn('Please submit the following log to the developers:');\n\t\t\t\tlogger.warn(parse.error.errors);\n\t\t\t}\n\t\t\treturn data;\n\t\t} catch (error: unknown) {\n\t\t\treturn await this.retryRequest<T>(endpoint, options, responseType, apiParams, 0, error);\n\t\t}\n\t}\n\n\t/**\n\t * Retries failed requests\n\t *\n\t * @param endpoint - Endpoint to which a request was originally made\n\t * @param prevOptions - Axios request options\n\t * @param responseType - Originally requested schema\n\t * @param apiParams - Query string\n\t * @param rateLimitAttempt - Current rate-limit retry counter\n\t * @param prevError - Error that caused a retry\n\t */\n\tprotected async retryRequest<T extends z.ZodType>(\n\t\tendpoint: Endpoint,\n\t\tprevOptions: RawAxiosRequestConfig,\n\t\tresponseType: T,\n\t\tapiParams: UrlParams,\n\t\trateLimitAttempt = 0,\n\t\tprevError?: unknown\n\t): Promise<T> {\n\t\tif (prevError instanceof AxiosError && prevError.response) {\n\t\t\tconst { status } = prevError.response;\n\t\t\tswitch (true) {\n\t\t\t\tcase status === 401: {\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: <This will always be present>\n\t\t\t\t\tlogger.warn(`Request to ${prevOptions.url!} failed.`);\n\t\t\t\t\tthrow new ApiTokenError();\n\t\t\t\t}\n\t\t\t\tcase status === 403: {\n\t\t\t\t\t// Axios doesn't know what type this can be, but the api always returns the same object\n\t\t\t\t\tconst requiredScope: string =\n\t\t\t\t\t\tprevError.response.data.text.slice(0, 1).toUpperCase() + prevError.response.data.text.slice(1);\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: <This will always be present>\n\t\t\t\t\tlogger.warn(`Request to ${prevOptions.url!} failed. ${requiredScope}.`);\n\t\t\t\t\tthrow new ApiPermissionsError(requiredScope);\n\t\t\t\t}\n\t\t\t\tcase status === 404: {\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: <This will always be present>\n\t\t\t\t\tlogger.warn(`Request to ${prevOptions.url!} returned no data.`);\n\t\t\t\t\tthrow new ApiNotFoundError();\n\t\t\t\t}\n\t\t\t\tcase status === 429 && this._rateLimitRetry: {\n\t\t\t\t\tlogger.warn('Rate-limit has been reached. Request will be repeated soon.');\n\t\t\t\t\tif (rateLimitAttempt < 3) {\n\t\t\t\t\t\tsetTimeout(async () => {\n\t\t\t\t\t\t\treturn await this.retryRequest<T>(\n\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\tprevOptions,\n\t\t\t\t\t\t\t\tresponseType,\n\t\t\t\t\t\t\t\tapiParams,\n\t\t\t\t\t\t\t\trateLimitAttempt++,\n\t\t\t\t\t\t\t\tprevError\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}, 1000);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: <This will always be present>\n\t\t\t\t\t\tlogger.error(`Rate-limit retries failed. Aborting request to ${prevOptions.url!}`);\n\t\t\t\t\t\tthrow new ApiRetryFailedError();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcase status === 504: {\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: <This will always be present>\n\t\t\t\t\tlogger.warn(`Request to ${prevOptions.url!} timed out.`);\n\t\t\t\t\tthrow new ApiTimeoutError();\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: <This will always be present>\n\t\t\t\t\tlogger.warn(`Request to ${prevOptions.url!} failed. ${(prevError as Error).message}`);\n\t\t\t}\n\t\t}\n\t\t// TODO: Determine what actually happens. Probably something stupid in the request itself\n\t\tthrow new ApiGenericError();\n\t}\n\n\t/**\n\t * Builds final Api url from the endpoint and provided parameters\n\t *\n\t * @param endpoint - Api endpoint\n\t * @param urlParams - Parameters\n\t */\n\tprivate _getApiUrl(endpoint: Endpoint, urlParams: UrlParams) {\n\t\t// Build the endpoint base\n\t\tconst { path } = endpoint;\n\t\tconst regex = /\\$\\(([^)]+)?\\)/g;\n\t\tlet fullUrl = `${this._baseUrl}/${path}`;\n\n\t\t// Build any arguments needed for the endpoint\n\t\tlet match;\n\t\t// biome-ignore lint/suspicious/noAssignInExpressions: <explanation>\n\t\twhile ((match = regex.exec(fullUrl))) {\n\t\t\tconst [key, param] = match;\n\t\t\tif (!param) continue;\n\t\t\tconst value = encodeURI(String(urlParams[param]));\n\t\t\tfullUrl = fullUrl.replace(key, value);\n\t\t\tregex.lastIndex = 0;\n\t\t}\n\t\treturn fullUrl;\n\t}\n}\n","/**\n * Available language options\n */\nexport enum ApiLanguage {\n\tEnglish = 'en',\n\tFrench = 'fr',\n\tGerman = 'de',\n\tSpanish = 'es',\n\tChinese = 'zh'\n}\n\n/**\n * Parameters passed into the endpoint, to make a specific request\n */\nexport type UrlParams = Record<string, string | number | string[] | number[]>;\n\n/**\n * Parameters required by the Api for any call\n */\nexport interface ApiParams {\n\ttoken?: string;\n\tlanguage?: ApiLanguage;\n\trateLimit?: RatelimitParams;\n}\n\n/**\n * Ratelimiting parameters\n */\nexport type RatelimitParams =\n\t| {\n\t\t\tretry: true;\n\t\t\tattempts: number;\n\t }\n\t| {\n\t\t\tretry: false;\n\t };\n","/**\n * Api error thrown when a request fails to obtain any data.\n */\nexport class ApiNotFoundError extends Error {\n\tconstructor() {\n\t\tsuper('The Api did not return any data with the provided arguments');\n\t\tObject.setPrototypeOf(this, ApiNotFoundError.prototype);\n\t}\n}\n","/**\n * Api error thrown when a request retry fails, or is canceled\n */\nexport class ApiRetryFailedError extends Error {\n\tconstructor() {\n\t\tsuper('The Api failed to return data after several attempts');\n\t\tObject.setPrototypeOf(this, ApiRetryFailedError.prototype);\n\t}\n}\n","/**\n * Api token error. Thrown when the token is missing or incorrect\n */\nexport class ApiTokenError extends Error {\n\tconstructor() {\n\t\tsuper('Api token was required, but was either missing or incorrect');\n\t\tObject.setPrototypeOf(this, ApiTokenError.prototype);\n\t}\n}\n","/**\n * Api error thrown when an unhandled error occurs.\n */\nexport class ApiGenericError extends Error {\n\tconstructor() {\n\t\tsuper('The Api request failed with an unknown error');\n\t\tObject.setPrototypeOf(this, ApiGenericError.prototype);\n\t}\n}\n","/**\n * Token permission error. Thrown when the token is correct,\n * but does not have permissions required for the request.\n */\nexport class ApiPermissionsError extends Error {\n\tconstructor(scope: string) {\n\t\tsuper(`The Api token does not have sufficient permissions for this request. ${scope}`);\n\t\tObject.setPrototypeOf(this, ApiPermissionsError.prototype);\n\t}\n}\n","/**\n * Api error thrown when a request is timed out.\n */\nexport class ApiTimeoutError extends Error {\n\tconstructor() {\n\t\tsuper('The Api request timed out');\n\t\tObject.setPrototypeOf(this, ApiTimeoutError.prototype);\n\t}\n}\n","import { Logger } from 'tslog';\n\n/**\n * TSlog log level\n */\nexport enum LogLevel {\n\tsilly = 0,\n\ttrace = 1,\n\tdebug = 2,\n\tinfo = 3,\n\twarn = 4,\n\terror = 5,\n\tfatal = 6\n}\n\n/**\n * Global logger object\n */\nexport const logger = new Logger({\n\tminLevel: LogLevel.info,\n\thideLogPositionForProduction: true\n});\n\n/**\n * Set logger level\n *\n * @param minLevel - Minimum logging level\n */\nexport const setLogLevel = (minLevel: LogLevel): void => {\n\tlogger.settings.minLevel = minLevel;\n};\n\n/**\n * Set whether the logger will display file paths\n *\n * @param displayFilePath - Filepath status\n */\nexport const setPathLogging = (displayFilePath: boolean): void => {\n\tlogger.settings.hideLogPositionForProduction = !displayFilePath;\n};\n","import axios, { type AxiosRequestConfig } from 'axios';\nimport Queue from 'promise-queue';\nimport type { ApiResponseDTO } from '../models';\n\n/**\n * Global request queue\n */\nexport const queue: Queue = new Queue(Infinity, Infinity);\n\n/**\n * Adds a promise request to the global queue\n *\n * @param options - Axios request options\n */\nasync function sendRequest<T>(options: AxiosRequestConfig): Promise<ApiResponseDTO<T>> {\n\treturn await new Promise((resolve, reject) => {\n\t\taxios\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: <This will always be present>\n\t\t\t.get(options.url!, { ...options })\n\t\t\t.then(resolve)\n\t\t\t.catch(reject);\n\t});\n}\n\n/**\n * Enqueue incoming Axios request\n *\n * @param options - Axios request options\n */\nexport async function enqueueRequest<T>(options: AxiosRequestConfig): Promise<T> {\n\treturn await queue.add(async () => (await sendRequest(options)) as T);\n}\n","import { z } from 'zod';\n\n/**\n * /v2/account definition\n */\nexport const AccountDTO = z.object({\n\t/** Account id. */\n\tid: z.string(),\n\t/** Account age. */\n\tage: z.number(),\n\t/** Account name. */\n\tname: z.string(),\n\t/** Current account world. */\n\tworld: z.number(),\n\t/** Account memberships. */\n\tguilds: z.array(z.string()),\n\t/** Account leaderships. */\n\tguild_leader: z.array(z.string()),\n\t/** Account creation date. */\n\tcreated: z.string(),\n\t/** Account expansion access status. */\n\taccess: z.array(z.string()),\n\t/** Account commander tag. */\n\tcommander: z.boolean(),\n\t/** Account fractal level. */\n\tfractal_level: z.number(),\n\t/** Account daily achievement points. */\n\tdaily_ap: z.number(),\n\t/** Account monthly achievement points. */\n\tmonthly_ap: z.number(),\n\t/** Account World vs World rank. */\n\twvw_rank: z.number(),\n\t/** Last modification date. */\n\tlast_modified: z.string().optional(),\n\t/** Account build storage slots. */\n\tbuild_storage_slots: z.number().optional()\n});\n","import { z } from 'zod';\n\n/**\n * /v2/account/achievements definition\n */\nexport const AccountAchievementsDTO = z.array(\n\tz.object({\n\t\t/** Achievement id. */\n\t\tid: z.number(),\n\t\t/** Achievement bits. */\n\t\tbits: z.array(z.number()).optional(),\n\t\t/** Current achievement point count. */\n\t\tcurrent: z.number(),\n\t\t/** Maximum achievement point count. */\n\t\tmax: z.number().optional(),\n\t\t/** Achievement completion status. */\n\t\tdone: z.boolean(),\n\t\t/** Achievement repeatability. */\n\t\trepeated: z.number().optional(),\n\t\t/** Achievement unlock status. */\n\t\tunlocked: z.boolean().optional()\n\t})\n);\n","import { z } from 'zod';\n\nexport const ItemAttributesGeneric = z.object({\n\t/** Agony Resistance. */\n\tAgonyResistance: z.number().optional(),\n\t/** Boon Duration. */\n\tBoonDuration: z.number().optional(),\n\t/** Condition Damage. */\n\tConditionDamage: z.number().optional(),\n\t/** Condition Duration. */\n\tConditionDuration: z.number().optional(),\n\t/** Critical Damage. */\n\tCritDamage: z.number().optional(),\n\t/** Healing Power. */\n\tHealing: z.number().optional(),\n\t/** Power. */\n\tPower: z.number().optional(),\n\t/** Precision. */\n\tPrecision: z.number().optional(),\n\t/** Toughness. */\n\tToughness: z.number().optional(),\n\t/** Vitality. */\n\tVitality: z.number().optional()\n});\n\n/**\n * /v2/account/bank definition\n */\nexport const AccountBankDTO = z.array(\n\tz.union([\n\t\tz\n\t\t\t.object({\n\t\t\t\t/** The item's ID. */\n\t\t\t\tid: z.number(),\n\t\t\t\t/** The amount of items in the item stack. */\n\t\t\t\tcount: z.number(),\n\t\t\t\t/** The amount of charges remaining on the item. */\n\t\t\t\tcharges: z.number().optional(),\n\t\t\t\t/** The skin applied to the item, if it is different from its original. Can be resolved against /v2/skins. */\n\t\t\t\tskin: z.number().optional(),\n\t\t\t\t/** The IDs of the dyes applied to the item. Can be resolved against /v2/colors. */\n\t\t\t\tdyes: z.array(z.number()).optional(),\n\t\t\t\t/** The item IDs of the runes or sigils applied to the item. */\n\t\t\t\tupgrades: z.array(z.number()).optional(),\n\t\t\t\t/** The slot occupied by the upgrade at the corresponding position in upgrades. */\n\t\t\t\tupgrade_slot_indices: z.array(z.number()).optional(),\n\t\t\t\t/** An array of item IDs for each infusion applied to the item. */\n\t\t\t\tinfusions: z.array(z.number()).optional(),\n\t\t\t\t/** The stats of the item. */\n\t\t\t\tstats: z\n\t\t\t\t\t.object({\n\t\t\t\t\t\t/** The ID of the item's stats. Can be resolved against /v2/itemstats. */\n\t\t\t\t\t\tid: z.number(),\n\t\t\t\t\t\t/** The list of stats provided by this item. Can be empty object. */\n\t\t\t\t\t\tattributes: ItemAttributesGeneric\n\t\t\t\t\t})\n\t\t\t\t\t.optional()\n\t\t\t})\n\t\t\t.and(\n\t\t\t\tz.discriminatedUnion('binding', [\n\t\t\t\t\tz.object({\n\t\t\t\t\t\t/** The current binding of the item. Bound to the character */\n\t\t\t\t\t\tbinding: z.literal('Character'),\n\t\t\t\t\t\t/** Which character it is bound to. */\n\t\t\t\t\t\tbound_to: z.string()\n\t\t\t\t\t}),\n\t\t\t\t\tz.object({\n\t\t\t\t\t\t/** The current binding of the item. Bound to the account. */\n\t\t\t\t\t\tbinding: z.literal('Account'),\n\t\t\t\t\t\t/** This will never appear. */\n\t\t\t\t\t\tbound_to: z.undefined()\n\t\t\t\t\t}),\n\t\t\t\t\tz.object({\n\t\t\t\t\t\t/** If the item has no binding, this will never appear. */\n\t\t\t\t\t\tbinding: z.undefined(),\n\t\t\t\t\t\t/** This will never appear. */\n\t\t\t\t\t\tbound_to: z.undefined()\n\t\t\t\t\t})\n\t\t\t\t])\n\t\t\t),\n\t\t/** Bank slots can be null. */\n\t\tz.null()\n\t])\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/buildstorage definition\n */\nexport const AccountBuildStorageDTO = z.array(\n\tz.object({\n\t\t/** Name of the stored build. */\n\t\tname: z.string(),\n\t\t/** Profession of the stored build. */\n\t\tprofession: z.string(),\n\t\t/** Specializations of the stored build. */\n\t\tspecializations: z.array(\n\t\t\tz.object({\n\t\t\t\t/** Id of the specialization. */\n\t\t\t\tid: z.number(),\n\t\t\t\t/** Selected traits. */\n\t\t\t\ttraits: z.array(z.union([z.number(), z.null()]))\n\t\t\t})\n\t\t),\n\t\t/** Selected utility skills. */\n\t\tskills: z\n\t\t\t.object({\n\t\t\t\t/** Id of the heal skill. */\n\t\t\t\theal: z.union([z.number(), z.null()]),\n\t\t\t\t/** Ids of the utility skills. */\n\t\t\t\tutilities: z.array(z.union([z.number(), z.null()])),\n\t\t\t\t/** Id of the elite skill. */\n\t\t\t\telite: z.union([z.number(), z.null()])\n\t\t\t})\n\t\t\t.optional(),\n\t\t/** Selected aquatic utility skills. */\n\t\taquatic_skills: z\n\t\t\t.object({\n\t\t\t\t/** Id of the heal skill. */\n\t\t\t\theal: z.union([z.number(), z.null()]),\n\t\t\t\t/** Ids of the utility skills. */\n\t\t\t\tutilities: z.array(z.union([z.number(), z.null()])),\n\t\t\t\t/** Id of the elite skill. */\n\t\t\t\telite: z.union([z.number(), z.null()])\n\t\t\t})\n\t\t\t.optional(),\n\t\t/** Selected legends (revenant only). */\n\t\tlegends: z.array(z.union([z.string(), z.null()])).optional(),\n\t\t/** Selected aquatic legends (revenant only). */\n\t\taquatic_legends: z.array(z.union([z.string(), z.null()])).optional()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/dailycrafting definition\n * Can be resolved against /v2/dailycrafting\n */\nexport const AccountDailyCraftingDTO = z.array(\n\t/** Id of the crafted daily item. */\n\tz.string()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/dungeons definition\n * Can be resolved against /v2/dungeons\n */\nexport const AccountDungeonsDTO = z.array(\n\t/** Id of the completed dungeon. */\n\tz.string()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/dyes definition\n * Can be resolved against /v2/dyes\n */\nexport const AccountDyesDTO = z.array(\n\t/** Id of the dye. */\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/emotes definition\n * Can be resolved against /v2/emotes\n */\nexport const AccountEmotesDTO = z.array(\n\t/**\n\t * Id of the emote.\n\t */\n\tz.string()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/finishers definition\n */\nexport const AccountFinishersDTO = z.array(\n\tz.object({\n\t\t/** Id of the finisher. */\n\t\tid: z.number(),\n\t\t/** Indicated whether the finisher is permanent or temporary. */\n\t\tpermanent: z.boolean(),\n\t\t/** Indicates uses if the finisher is temporary. */\n\t\tquantity: z.number().optional()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/gliders definition\n * Can be resolved against /v2/gliders\n */\nexport const AccountGlidersDTO = z.array(\n\t/** Id of the glider. */\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/home/nodes definition\n */\nexport const AccountHomeNodesDTO = z.array(\n\t/** Ids of node unlocked in home instance. */\n\tz.string()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/home/cats definition\n */\nexport const AccountHomeCatsDTO = z.array(\n\t/** Ids of cat unlocked in home instance. */\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/inventory definition\n */\nexport const AccountInventoryDTO = z.array(\n\tz.union([\n\t\tz.null(),\n\t\tz.object({\n\t\t\t/** Item id. */\n\t\t\tid: z.number(),\n\t\t\t/** The amount of items in the stack. */\n\t\t\tcount: z.number(),\n\t\t\t/** The amount of charges remaining. */\n\t\t\tcharges: z.number().optional(),\n\t\t\t/** The skin applied to the item. */\n\t\t\tskin: z.number().optional(),\n\t\t\t/** Item ids for runes and signets applied to the item. */\n\t\t\tupgrades: z.array(z.number()).optional(),\n\t\t\t/** Item ids for infusions applied to the item. */\n\t\t\tinfusions: z.array(z.number()).optional(),\n\t\t\t/** Item binding. \"Account\" if available at all. */\n\t\t\tbinding: z.literal('Account').optional()\n\t\t})\n\t])\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/jadebots definition\n */\nexport const AccountJadebotsDTO = z.array(\n\t/** The jadebot id. Can be resolved against /v2/jadebots. */\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/legendaryarmory definition\n */\nexport const AccountLegendaryArmoryDTO = z.array(\n\tz.object({\n\t\t/** The id of the armory items. Can be resolved against /v2/items and /v2/legendaryarmory. */\n\t\tid: z.number(),\n\t\t/** The count of that item available for use in a single equipment template. */\n\t\tcount: z.number()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/luck definition\n */\nexport const AccountLuckDTO = z.array(\n\tz.object({\n\t\t/** Always the string \"luck\". */\n\t\tid: z.literal('luck'),\n\t\t/** The amount of luck consume. */\n\t\tvalue: z.number()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/mailcarriers definition\n * Can be resolved against /v2/mailcarriers.\n */\nexport const AccountMailCarriersDTO = z.array(\n\t/** Id of the mail carrier. */\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/mapchests definition\n * Can be resolved against /v2/mapchests.\n */\nexport const AccountMapChestsDTO = z.array(\n\t/** Id of the acquired daily hero choice chest. */\n\tz.string()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/masteries definition\n */\nexport const AccountMasteriesDTO = z.array(\n\tz.object({\n\t\t/** The id of the mastery resolvable against /v2/masteries. */\n\t\tid: z.number(),\n\t\t/**\n\t\t * Indicates the level at which the mastery is on the account.\n\t\t * Is a 0-indexed reference to the /v2/masteries.\n\t\t */\n\t\tlevel: z.number()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/mastery/points definition\n */\nexport const AccountMasteryPointsDTO = z.object({\n\t/** Mastery points redeemed per section. */\n\ttotals: z.array(\n\t\tz.object({\n\t\t\t/** Name of the region for the masteries. */\n\t\t\tregion: z.string(),\n\t\t\t/** Amount of masteries of this region spent in mastery tracks. */\n\t\t\tspent: z.number(),\n\t\t\t/** Amount of masteries of this region earned for the account. */\n\t\t\tearned: z.number()\n\t\t})\n\t),\n\t/** Array of unlocked mastery ids. */\n\tunlocked: z.array(z.number())\n});\n","import { z } from 'zod';\n\n/**\n * /v2/account/materials definition\n */\nexport const AccountMaterialsDTO = z.array(\n\tz.object({\n\t\t/** Item id of the material. */\n\t\tid: z.number(),\n\t\t/** Material category. Can be resolved against /v2/materials. */\n\t\tcategory: z.number(),\n\t\t/** Binding of the material. Either \"Account\" or undefined. */\n\t\tbinding: z.literal('Account').optional(),\n\t\t/** Material count in the account storage. */\n\t\tcount: z.number()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/minis definition\n * Can be resolved against /v2/minis\n */\nexport const AccountMinisDTO = z.array(\n\t/** Id of the mini. */\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/mounts/skins definition\n * Can be resolved against /v2/mounts/skins\n */\nexport const AccountMountSkinsDTO = z.array(\n\t/** Id of the skin. */\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/mounts/types definition\n * Can be resolved against /v2/mounts/types\n */\nexport const AccountMountTypesDTO = z.array(\n\t/** Type of the mount. */\n\tz.string()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/novelties definition\n * Can be resolved against /v2/novelties\n */\nexport const AccountNoveltiesDTO = z.array(\n\t/** Id of the novelty. */\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/outfits definition\n * Can be resolved against /v2/outfits\n */\nexport const AccountOutfitsDTO = z.array(\n\t/** Id of the outfit. */\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/progression definition\n */\nexport const AccountProgressionDTO = z.array(\n\tz.object({\n\t\t/** Progression name. */\n\t\tid: z.string(),\n\t\t/** Progression value. */\n\t\tvalue: z.number()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/pvp/heroes definition\n * Can be resolved against /v2/pvp/heroes\n */\nexport const AccountPvpHeroesDTO = z.array(\n\t/** Id of the hero.*/\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/raids definition\n * Can be resolved against /v2/raids\n */\nexport const AccountRaidsDTO = z.array(\n\t/** Id of the raid. */\n\tz.string()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/recipes definition\n * Can be resolved against /v2/recipes\n */\nexport const AccountRecipesDTO = z.array(\n\t/** Id of the recipe. */\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/skiffs definition\n */\nexport const AccountSkiffsDTO = z.array(\n\t/** The id of the skiff skin. Can be resolved against /v2/skiffs. */\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/skins definition\n * Can be resolved against /v2/skins\n */\nexport const AccountSkinsDTO = z.array(\n\t/** Id of the skin. */\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/titles definition\n * Can be resolved against /v2/titles\n */\nexport const AccountTitlesDTO = z.array(\n\t/** Id of the title. */\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/wallet definition\n */\nexport const AccountWalletDTO = z.array(\n\tz.object({\n\t\t/** Id of the currency. Can be resolved against /v2/currencies. */\n\t\tid: z.number(),\n\t\t/** The amount of this currency. */\n\t\tvalue: z.number()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/account/worldbosses definition\n * Can be resolved against /v2/worldbosses\n */\nexport const AccountWorldBossesDTO = z.array(\n\t/** Name of the world boss. */\n\tz.string()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/achievements/categories/:ids definition\n */\nexport const AchievementCategoriesDTO = z.array(\n\tz.object({\n\t\t/** Category id.. */\n\t\tid: z.number(),\n\t\t/** Category name.. */\n\t\tname: z.string(),\n\t\t/** Category description. */\n\t\tdescription: z.string(),\n\t\t/** A number describing where to sort this category among other the other\n\t\t * categories in its group. Lowest numbers go first, highest numbers go last. */\n\t\torder: z.number(),\n\t\t/** A URL to an image for the icon of the category. */\n\t\ticon: z.string(),\n\t\t/** Achievement ids in this category.\n\t\t * Can be resolved against /v2/achievements. */\n\t\tachievements: z.array(z.number())\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/achievements/groups definition\n */\nexport const AchievementGroupsDTO = z.object({\n\t/** The group's GUID. */\n\tid: z.string(),\n\t/** The group's name. */\n\tname: z.string(),\n\t/** The group's description. */\n\tdescription: z.string(),\n\t/**\n\t * A number describing where to sort this group among other groups.\n\t * Lowest numbers go first, highest numbers go last. */\n\torder: z.number(),\n\t/**\n\t * An array containing a number of category IDs that this group contains.\n\t * Can be resolved against /v2/achievements/categories. */\n\tcategories: z.array(z.number())\n});\n","import { z } from 'zod';\n\n/**\n * /v2/backstory/answers definition\n */\nexport const BackstoryAnswersDTO = z.array(\n\tz.object({\n\t\t/** The id of the answer. */\n\t\tid: z.string(),\n\t\t/** The title (or name) of the answer. */\n\t\ttitle: z.string(),\n\t\t/** The description of the answer; as displayed in-game when presented as an answer choice\n\t\t * to a question during the Biography portion of character creation. */\n\t\tdescription: z.string(),\n\t\t/** The Story Journal entry for the answer; as displayed in-game. */\n\t\tjournal: z.string(),\n\t\t/** The id of the Biography question that this answers; Can be resolved against v2/backstory/questions. */\n\t\tquestion: z.number(),\n\t\t/** When present, an array of professions that this answer is available as a choice for. */\n\t\tprofessions: z.array(z.string()).optional(),\n\t\t/** When present, an array of races that this answer is available as a choice for. */\n\t\traces: z.array(z.string()).optional()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/backstory/questions definition\n */\nexport const BackstoryQuestionsDTO = z.array(\n\tz.object({\n\t\t/** The id of the question. */\n\t\tid: z.number(),\n\t\t/** The title (or name) of the question. */\n\t\ttitle: z.string(),\n\t\t/** The description of the question; as displayed in-game when presented as a Biography choice during character creation. */\n\t\tdescription: z.string(),\n\t\t/** The order in which this question is displayed in-game while answering your characters' Biography questions during character creation. */\n\t\torder: z.number(),\n\t\t/** The list of answers for this question; Can be resolved against v2/backstory/answers. */\n\t\tanswers: z.array(z.string()),\n\t\t/** When present, an array of races that this question is presented to. */\n\t\traces: z.array(z.string()).optional(),\n\t\t/** When present, an array of professions that this question is presented to. */\n\t\tprofessions: z.array(z.string()).optional()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/characters definition\n */\nexport const CharactersDTO = z.array(\n\t/** Character name. */\n\tz.string()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/characters/backstory definition\n */\nexport const CharacterBackstoryDTO = z.object({\n\t/** Character backstory selections. Can be resolved against /v2/backstory/answers. */\n\tbackstory: z.array(z.string())\n});\n","import { z } from 'zod';\n\nconst Specialization = z.array(\n\tz.object({\n\t\t/* The specialization id or null if none is selected.\n\t\t * Can be resolved against /v2/specializations. */\n\t\tid: z.union([z.number(), z.null()]),\n\t\t/* Three trait ids or null in places where none is selected.\n\t\t * Can be resolved against /v2/traits. */\n\t\ttraits: z.array(z.union([z.number(), z.null()]))\n\t})\n);\n\nconst Skills = z.object({\n\t/** The id of the heal skill or null if none is selected. */\n\theal: z.union([z.number(), z.null()]),\n\t/** Three utility skill ids or null in places where none is selected. */\n\tutitilies: z.array(z.union([z.number(), z.null()])).optional(),\n\t/** The id of the elite skill or null if none is selected. */\n\telite: z.union([z.number(), z.null()])\n});\n\nconst Pets = z.object({\n\t/** Contains the two pet ids the ranger has equipped for terrestrial combat. */\n\tterrestrial: z.array(z.number()),\n\t/** Contains the two pet ids the ranger has equipped for aquatic combat. */\n\taquatic: z.array(z.number())\n});\n\nconst Build = z.object({\n\t/** Name given to the build */\n\tname: z.string(),\n\t/** The characters' profession. Can be resolved against /v2/professions. */\n\tprofession: z.string(),\n\t/** Three objects providing information about the characters selected specializations. */\n\tspecializations: Specialization,\n\t/* Contains information about the characters selected skills.\n\t * Can be resolved against /v2/skills. */\n\tskills: Skills,\n\t/* Contains information about the characters selected underwater skills.\n\t * Can be resolved against /v2/skills. */\n\taquatic_skills: Skills,\n\t/* Included for revenants only. Two legend ids or null in places where none is selected.\n\t * Can be resolved against /v2/legends. */\n\tlegends: z\n\t\t.array(z.union([z.string(), z.null()]))\n\t\t.length(2)\n\t\t.optional(),\n\t/** Included for revenants only. The structure is the same as the one of legends above. */\n\taquatic_legends: z\n\t\t.array(z.union([z.string(), z.null()]))\n\t\t.length(2)\n\t\t.optional(),\n\t/**\n\t * Included for rangers only. Containers information about the characters selected pets.\n\t * Can be resolved against /v2/pets.\n\t */\n\tpets: Pets.optional()\n});\n\n/**\n * /v2/characters/:id/buildtabs definition\n */\nexport const CharacterBuildTabsDTO = z.array(\n\tz.object({\n\t\t/** Tab position. */\n\t\ttab: z.number(),\n\t\t/** Whether this is the tab selected on the character currently. */\n\t\tis_active: z.boolean(),\n\t\t/** Detailed information about the build. */\n\t\tbuild: Build\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/characters/:id/core definition\n */\nexport const CharacterCoreDTO = z.object({\n\t/** Character name. */\n\tname: z.string(),\n\t/** Character race. */\n\trace: z.enum(['Asura', 'Charr', 'Human', 'Norn', 'Sylvari']),\n\t/** Character gender. */\n\tgender: z.enum(['Male', 'Female']),\n\t/** Character profession. */\n\tprofession: z.enum([\n\t\t'Elementalist',\n\t\t'Engineer',\n\t\t'Guardian',\n\t\t'Mesmer',\n\t\t'Necromancer',\n\t\t'Ranger',\n\t\t'Revenant',\n\t\t'Thief',\n\t\t'Warrior'\n\t]),\n\t/** Character level. */\n\tlevel: z.number(),\n\t/** Character guild. */\n\tguild: z.string().optional(),\n\t/** Character age. */\n\tage: z.number(),\n\t/** Character creation date. */\n\tcreated: z.string(),\n\t/** Character deaths. */\n\tdeaths: z.number(),\n\t/** Character title id. */\n\ttitle: z.number()\n});\n","import { z } from 'zod';\n\n/**\n * /v2/characters/:id/crafting definition\n */\nexport const CharacterCraftingDTO = z.object({\n\t/**\n\t * Crafting disciplines of a character\n\t */\n\tcrafting: z.array(\n\t\tz.object({\n\t\t\t/** An array containing an entry for each crafting discipline the character has unlocked. */\n\t\t\tdiscipline: z.enum([\n\t\t\t\t'Armorsmith',\n\t\t\t\t'Artificer',\n\t\t\t\t'Chef',\n\t\t\t\t'Huntsman',\n\t\t\t\t'Jeweler',\n\t\t\t\t'Leatherworker',\n\t\t\t\t'Scribe',\n\t\t\t\t'Tailor',\n\t\t\t\t'Weaponsmith'\n\t\t\t]),\n\t\t\t/** The name of the discipline. */\n\t\t\trating: z.number(),\n\t\t\t/** Describes if the given discipline is currently active or not on the character. */\n\t\t\tactive: z.boolean()\n\t\t})\n\t)\n});\n","import { z } from 'zod';\n\nexport const EquipmentStatsGeneric = z.object({\n\t/** Item stat id. Can be resolved against /v2/itemstats. */\n\tid: z.number(),\n\t/** Summary of the stats on the item. Only available if the item has selectable stats. */\n\tattributes: z.object({\n\t\t/** Power. */\n\t\tPower: z.number().optional(),\n\t\t/** Precision. */\n\t\tPrecision: z.number().optional(),\n\t\t/** Toughness. */\n\t\tToughness: z.number().optional(),\n\t\t/** Vitality. */\n\t\tVitality: z.number().optional(),\n\t\t/** Condition Damage. */\n\t\tConditionDamage: z.number().optional(),\n\t\t/** Condition Duration. */\n\t\tConditionDuration: z.number().optional(),\n\t\t/** Healing Power. */\n\t\tHealing: z.number().optional(),\n\t\t/** Boon Duration. */\n\t\tBoonDuration: z.number().optional()\n\t})\n});\n\nexport const EquipmentGeneric = z\n\t.object({\n\t\t/** Item id. Can be resolved against /v2/items. */\n\t\tid: z.number(),\n\t\t/** Equipment slot, in which the item is slotted. */\n\t\tslot: z\n\t\t\t.enum([\n\t\t\t\t'HelmAquatic',\n\t\t\t\t'Backpack',\n\t\t\t\t'Coat',\n\t\t\t\t'Boots',\n\t\t\t\t'Gloves',\n\t\t\t\t'Helm',\n\t\t\t\t'Leggings',\n\t\t\t\t'Shoulders',\n\t\t\t\t'Accessory1',\n\t\t\t\t'Accessory2',\n\t\t\t\t'Ring1',\n\t\t\t\t'Ring2',\n\t\t\t\t'Amulet',\n\t\t\t\t'Relic',\n\t\t\t\t'WeaponAquaticA',\n\t\t\t\t'WeaponAquaticB',\n\t\t\t\t'WeaponA1',\n\t\t\t\t'WeaponA2',\n\t\t\t\t'WeaponB1',\n\t\t\t\t'WeaponB2',\n\t\t\t\t'Sickle',\n\t\t\t\t'Axe',\n\t\t\t\t'Pick',\n\t\t\t\t'PowerCore',\n\t\t\t\t'FishingLure',\n\t\t\t\t'FishingBait',\n\t\t\t\t'FishingRod',\n\t\t\t\t'SensoryArray'\n\t\t\t])\n\t\t\t.optional(),\n\t\t/** Infusions Ids. Can be resolved against /v2/items. */\n\t\tinfusions: z.array(z.number()).optional(),\n\t\t/** Upgrade Ids. Can be resolved against /v2/items. */\n\t\tupgrades: z.array(z.number()).optional(),\n\t\t/** Skin id. Can be resolved against /v2/skins. */\n\t\tskin: z.number().optional(),\n\t\t/** Equipment stats, if the item offers a selection of prefixes. */\n\t\tstats: EquipmentStatsGeneric.optional(),\n\t\t/** Where item is stored. */\n\t\tlocation: z.enum(['Equipped', 'Armory', 'EquippedFromLegendaryArmory', 'LegendaryArmory']).optional(),\n\t\t/** Tabs where this item is used in. */\n\t\ttabs: z.array(z.number()).optional(),\n\t\t/** Amount of charges remaining. */\n\t\tcharges: z.number().optional(),\n\t\t/** Dyes selected for the equipment piece. Defaults to null. Can be resolved against /v2/colors. */\n\t\tdyes: z.array(z.union([z.number(), z.null()])).optional()\n\t})\n\t.and(\n\t\tz.discriminatedUnion('binding', [\n\t\t\tz.object({\n\t\t\t\t/** Equipment binding. */\n\t\t\t\tbinding: z.literal('Character'),\n\t\t\t\t/** Name of the character to which the item is bound. */\n\t\t\t\tbound_to: z.string()\n\t\t\t}),\n\t\t\tz.object({\n\t\t\t\t/** Equipment binding. */\n\t\t\t\tbinding: z.literal('Account'),\n\t\t\t\t/** Undefined, when binding is \"Account\" */\n\t\t\t\tbound_to: z.undefined()\n\t\t\t}),\n\t\t\tz.object({\n\t\t\t\t/** Not bound. */\n\t\t\t\tbinding: z.undefined(),\n\t\t\t\t/** Undefined, since not bound. */\n\t\t\t\tbound_to: z.undefined()\n\t\t\t})\n\t\t])\n\t);\n\n/**\n * /v2/characters/:id/equipment definition\n */\nexport const CharacterEquipmentDTO = z.object({\n\t/** Character equipment. */\n\tequipment: z.array(EquipmentGeneric)\n});\n","import { z } from 'zod';\nimport { EquipmentGeneric } from './characters.equipment.dto';\n\n/**\n * /v2/characters/:id/equipmenttabs definition\n */\nexport const CharacterEquipmentTabDTO = z.object({\n\t/** Equipment tab id. */\n\ttab: z.number(),\n\t/** Equipment tab name. */\n\tname: z.string(),\n\t/** Whether the equipment tab is active. */\n\tis_active: z.boolean(),\n\t/** Array of equipment objects in the equipment tab. */\n\tequipment: z.array(EquipmentGeneric),\n\t/** PvP equipment in the equipment tab */\n\tequipment_pvp: z.object({\n\t\t/** Amulet id. Can be resolved against /v2/pvp/amulets. */\n\t\tamulet: z.union([z.number(), z.null()]),\n\t\t/** Rune id. Can be resolved against /v2/items. */\n\t\trune: z.union([z.number(), z.null()]),\n\t\t/**\n\t\t * Sigil ids. Can be resolved against /v2/items.\n\t\t * Provided in the following order:\n\t\t * - Primary Weapon\n\t\t * - Primary Off-hand Weapon\n\t\t * - Secondary Weapon\n\t\t * - Secondary Off-hand Weapon\n\t\t */\n\t\tsigils: z.array(z.union([z.number(), z.null()]))\n\t})\n});\n\nexport const CharacterEquipmentTabsDTO = z.array(CharacterEquipmentTabDTO);\n","import { z } from 'zod';\n\n/**\n * /v2/characters/:id/heropoints definition\n *\n */\nexport const CharacterHeroPointsDTO = z.array(\n\t/** Hero point id. Can be resolved against \"skill_challenges\" /v2/continents. */\n\tz.string()\n);\n","import { z } from 'zod';\nimport { EquipmentStatsGeneric } from './characters.equipment.dto';\n\n/**\n * Inventory bag contents\n */\nconst BagInventory = z\n\t.object({\n\t\t/** Item id. Can be resolved against /v2/items */\n\t\tid: z.number(),\n\t\t/** Amount of the item in the stack. */\n\t\tcount: z.number(),\n\t\t/** Number of charges of the item */\n\t\tcharges: z.number().optional(),\n\t\t/** Infusion ids. Can be resolved against /v2/items. */\n\t\tinfusions: z.array(z.number()).optional(),\n\t\t/** Upgrade ids. Can be resolved against /v2/items. */\n\t\tupgrades: z.array(z.number()).optional(),\n\t\t/** Indices of the slots where upgrades are installed. */\n\t\tupgrade_slot_indices: z.array(z.number()).optional(),\n\t\t/** Skin id. Can be resolved against /v2/skins. */\n\t\tskin: z.number().optional(),\n\t\t/** Stat information of an item, if it has selectable prefixes. */\n\t\tstats: EquipmentStatsGeneric.optional(),\n\t\t/** Dye ids. Null if not assigned. Can be resolved against /v2/colors */\n\t\tdyes: z.array(z.union([z.null(), z.number()])).optional()\n\t})\n\t.and(\n\t\tz.discriminatedUnion('binding', [\n\t\t\tz.object({\n\t\t\t\t/** Equipment binding. */\n\t\t\t\tbinding: z.literal('Character'),\n\t\t\t\t/** Name of the character to which the item is bound. */\n\t\t\t\tbound_to: z.string()\n\t\t\t}),\n\t\t\tz.object({\n\t\t\t\t/** Equipment binding. */\n\t\t\t\tbinding: z.literal('Account'),\n\t\t\t\t/** Undefined, when binding is \"Account\" */\n\t\t\t\tbound_to: z.undefined()\n\t\t\t}),\n\t\t\tz.object({\n\t\t\t\t/** Not bound. */\n\t\t\t\tbinding: z.undefined(),\n\t\t\t\t/** Undefined, since not bound. */\n\t\t\t\tbound_to: z.undefined()\n\t\t\t})\n\t\t])\n\t);\n\n/**\n * /v2/characters/:id/inventory definition\n */\nexport const CharacterInventoryDTO = z.object({\n\t/** Array of bags in the character's inventory. */\n\tbags: z.array(\n\t\tz.union([\n\t\t\tz.object({\n\t\t\t\t/** Bag id. Can be resolved against /v2/items. */\n\t\t\t\tid: z.number(),\n\t\t\t\t/** Number of bag slots in this bag. */\n\t\t\t\tsize: z.number(),\n\t\t\t\t/** Bag contents structure, or null of there are no items in the bag. */\n\t\t\t\tinventory: z.array(z.union([z.null(), BagInventory]))\n\t\t\t}),\n\t\t\t/** The bag is missing, but the slot is unlocked */\n\t\t\tz.null()\n\t\t])\n\t)\n});\n","import { z } from 'zod';\n\n/**\n * /v2/characters/:id/quests definition\n */\nexport const CharacterQuestsDTO = z.array(\n\t/** Id of the quest, selected during story progression. */\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/characters/:id/recipes definition\n */\nexport const CharacterRecipesDTO = z.object({\n\t/** Array of recipe ids. Can be resolved against /v2/recipes. */\n\trecipes: z.array(z.number())\n});\n","import { z } from 'zod';\n\n/**\n * /v2/characters/:id/sab definition\n */\nexport const CharacterSuperAdventureBoxDTO = z.object({\n\t/** Super Adventure Box zones. */\n\tzones: z.array(\n\t\tz.object({\n\t\t\t/** Unique zone id. */\n\t\t\tid: z.number(),\n\t\t\t/** Mode used when completing this zone. */\n\t\t\tmode: z.enum(['infantile', 'normal', 'tribulation']),\n\t\t\t/** Which world the zone is in. */\n\t\t\tworld: z.number(),\n\t\t\t/** Zone number. */\n\t\t\tzone: z.number()\n\t\t})\n\t),\n\t/** Super Adventure Box unlocks. */\n\tunlocks: z.array(\n\t\tz.object({\n\t\t\t/** Unique unlock id. */\n\t\t\tid: z.number(),\n\t\t\t/** Unlocalized unlock description. */\n\t\t\tname: z.string().optional()\n\t\t})\n\t),\n\t/** Super Adventure box songs. */\n\tsongs: z.array(\n\t\tz.object({\n\t\t\t/** Unique song id. */\n\t\t\tid: z.number(),\n\t\t\t/** Unlocalized song description. */\n\t\t\tname: z.enum(['secret_song', 'gatekeeper_lullaby', 'shatter_serenade'])\n\t\t})\n\t)\n});\n","import { z } from 'zod';\n\n/**\n * Skill template\n */\nconst Skill = z.object({\n\t/** Id of the heal skill. Can be resolved against /v2/skills. */\n\theal: z.union([z.null(), z.number()]),\n\t/** Ids of the utilities, or null if it's not set. Can be resolved against /v2/skills */\n\tutilities: z.array(z.union([z.null(), z.number()])),\n\t/** Id of the elite skill. Can be resolved against /v2/skills. */\n\telite: z.union([z.null(), z.number()]),\n\t/** Ids of the legends. Revenant only. Can be resolved against /v2/legends. */\n\tlegends: z.array(z.union([z.null(), z.string()])).optional()\n});\n\n/**\n * /v2/characters/:id/skills definition\n */\nexport const CharacterSkillsDTO = z.object({\n\t/** PvE, PvP, and WvW skill layout of a character. */\n\tskills: z.object({\n\t\t/** PvE skills. */\n\t\tpve: Skill,\n\t\t/** PvP skills. */\n\t\tpvp: Skill,\n\t\t/** WvW skills. */\n\t\twvw: Skill\n\t})\n});\n","import { z } from 'zod';\n\n/**\n * Specialization details.\n */\nconst Specialization = z.object({\n\t/** Specialization id. Can be resolved against /v2/specializations. */\n\tid: z.number(),\n\t/** Trait ids. Can be resolved against /v2/traits. */\n\ttraits: z.array(z.number())\n});\n\n/**\n * /v2/characters/:id/specializations definition\n */\nexport const CharacterSpecializationsDTO = z.object({\n\t/** Contains PvE, PvP, and WvW specialization objects currently equipped. */\n\tspecializations: z.object({\n\t\t/** PvE specializations currently equipped. */\n\t\tpve: z.array(Specialization),\n\t\t/** PvP specializations currently equipped. */\n\t\tpvp: z.array(Specialization),\n\t\t/** WvW specializations currently equipped. */\n\t\twvw: z.array(Specialization)\n\t})\n});\n","import { z } from 'zod';\n\n/**\n * /v2/characters/:id/training definition\n */\nexport const CharacterTrainingDTO = z.object({\n\t/** Skill trained in each skill tree. */\n\ttraining: z.array(\n\t\tz.object({\n\t\t\t/** Skill tree id. Can be resolved against /v2/profession, in training section. */\n\t\t\tid: z.number(),\n\t\t\t/** How many points have been spent in this tree. */\n\t\t\tspent: z.number(),\n\t\t\t/** Whether the tree is fully trained. */\n\t\t\tdone: z.boolean()\n\t\t})\n\t)\n});\n","import { z } from 'zod';\n\n/**\n * /v2/commerce/delivery definition\n */\nexport const CommerceDeliveryDTO = z.object({\n\t/** Amount of coins ready for pickup */\n\tcoins: z.number(),\n\t/** Items ready for pickup */\n\titems: z.array(\n\t\tz.object({\n\t\t\t/** The item id. Can be resolved against /v2/items. */\n\t\t\tid: z.number(),\n\t\t\t/** Item count. */\n\t\t\tcount: z.number()\n\t\t})\n\t)\n});\n","import { z } from 'zod';\n\n/**\n * /v2/commerce/exchange/coins definition\n */\nexport const CommerceExchangeDTO = z.object({\n\t/** The number of coins you required for a single currency unit. */\n\tcoins_per_gem: z.number(),\n\t/** The number of gems you get for the specified quantity of currency. */\n\tquantity: z.number()\n});\n","import { z } from 'zod';\n\n/**\n * /v2/commerce/listings definition.\n */\nexport const CommerceListingsDTO = z.array(\n\tz.object({\n\t\t/** The item id. Can be resolved against /v2/items. */\n\t\tid: z.number(),\n\t\t/** List of all buy listings, descending from the highest buy order. */\n\t\tbuys: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The number of individual listings this object refers to. */\n\t\t\t\tlistings: z.number(),\n\t\t\t\t/** The sell offer or buy order price in coins. */\n\t\t\t\tunit_price: z.number(),\n\t\t\t\t/** The amount of items being sold/bought in this listing. */\n\t\t\t\tquantity: z.number()\n\t\t\t})\n\t\t),\n\t\t/** List of all sell listings, ascending from the lowest sell order. */\n\t\tsells: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The number of individual listings this object refers to. */\n\t\t\t\tlistings: z.number(),\n\t\t\t\t/** The sell offer or buy order price in coins. */\n\t\t\t\tunit_price: z.number(),\n\t\t\t\t/** The amount of items being sold/bought in this listing. */\n\t\t\t\tquantity: z.number()\n\t\t\t})\n\t\t)\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/commerce/prices definition.\n */\nexport const CommercePricesDTO = z.array(\n\tz.object({\n\t\t/** The item id. Can be resolved against /v2/items. */\n\t\tid: z.number(),\n\t\t/** Whether free to play accounts can purchase or sell this item. */\n\t\twhitelisted: z.boolean(),\n\t\t/** Buy information. */\n\t\tbuys: z.object({\n\t\t\t/** The highest buy order or lowest sell offer price in copper coins. */\n\t\t\tquantity: z.number(),\n\t\t\t/** The amount of items being sold/bought. */\n\t\t\tunit_price: z.number()\n\t\t}),\n\t\t/** Sell information. */\n\t\tsells: z.object({\n\t\t\t/** The highest buy order or lowest sell offer price in copper coins. */\n\t\t\tquantity: z.number(),\n\t\t\t/** The amount of items being sold/bought. */\n\t\t\tunit_price: z.number()\n\t\t})\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/commerce/transactions definition.\n */\nexport const CommerceTransactionDTO = z.array(\n\tz.object({\n\t\t/** Id of the transaction. */\n\t\tid: z.number(),\n\t\t/** The item id. Can be resolved against /v2/items. */\n\t\titem_id: z.number(),\n\t\t/** The price in coins. */\n\t\tprice: z.number(),\n\t\t/** The quantity of the item. */\n\t\tquantity: z.number(),\n\t\t/** The date of creation, using ISO-8601 standard. */\n\t\tcreated: z.string(),\n\t\t/** The date of purchase, using ISO-8601 standard. Not shown in current second-level endpoint. */\n\t\tpurchased: z.string().optional()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/continent/:id/floors/:id/regions/:id/maps/:id definition\n */\nconst ContinentsMaps = z.object({\n\t/** The map name. */\n\tname: z.string(),\n\t/** The minimum level of the map. */\n\tmin_level: z.number(),\n\t/** The maximum level of the map. */\n\tmax_level: z.number(),\n\t/** The default floor of the map. */\n\tdefault_floor: z.number(),\n\t/** The coordinates of the map label. */\n\tlabel_coord: z.array(z.number()).length(2).optional(), // TODO: The API is not telling us something correctly\n\t/** The dimensions of the map, given as the coordinates of the lower-left (SW) and upper-right (NE) corners. */\n\tmap_rect: z.array(z.array(z.number())),\n\t/**\n\t * The dimensions of the map within the continent coordinate system,\n\t * given as top-left (NW) and bottom-right (SE) corner coordinates.\n\t */\n\tcontinent_rect: z.array(z.array(z.number()).length(2)).length(2),\n\t/** A list of points of interest (landmarks, waypoints, vistas, etc). */\n\tpoints_of_interest: z.record(\n\t\tz.string(),\n\t\tz.object({\n\t\t\t/** The point of interest id. */\n\t\t\tid: z.number(),\n\t\t\t/** The name of the point of interest. */\n\t\t\tname: z.string().optional(), // TODO: A lot of POIs seemingly dont have a name\n\t\t\t/** Type of the point of interest. */\n\t\t\ttype: z.string(),\n\t\t\t/** The floor of this object. */\n\t\t\tfloor: z.number(),\n\t\t\t/** The coordinates of this object. */\n\t\t\tcoord: z.array(z.number()),\n\t\t\t/** The point of interest chat link. */\n\t\t\tchat_link: z.string(),\n\t\t\t/** PoI icon. Only available for unlock types */\n\t\t\ticon: z.string().optional()\n\t\t})\n\t),\n\t/** A list of renown hearts. */\n\ttasks: z.record(\n\t\tz.string(),\n\t\tz.object({\n\t\t\t/** The renown heart id. */\n\t\t\tid: z.number(),\n\t\t\t/** The objective or name of the heart. */\n\t\t\tobjective: z.string(),\n\t\t\t/** The level of the heart. */\n\t\t\tlevel: z.number(),\n\t\t\t/** The coordinates where it takes place. */\n\t\t\tcoord: z.array(z.number()),\n\t\t\t/** A list of coordinates marking the boundary of the heart. */\n\t\t\tbounds: z.array(z.array(z.number())),\n\t\t\t/** The renown heart chat link. */\n\t\t\tchat_link: z.string()\n\t\t})\n\t),\n\t/** A list of skill challenges. */\n\tskill_challenges: z.array(\n\t\tz.object({\n\t\t\t/**\n\t\t\t * The hero challenge id, formed of two numbers separated by a dash.\n\t\t\t * The first number represents the expansion (0 for Core Tyria, 1 for Heart of Thorns and 2 for Path of Fire),\n\t\t\t * and therefore could be used to change the hero challenge map marker icon.\n\t\t\t * If the first number and dash prefix is removed from the string,\n\t\t\t * the second number is no longer unique among other hero challenges.\n\t\t\t */\n\t\t\tid: z.string().optional(), // TODO: This is literally not returned by the api, anywhere\n\t\t\t/** The coordinates of this hero challenge. */\n\t\t\tcoord: z.array(z.number())\n\t\t})\n\t),\n\t/** A list of areas within the map. */\n\tsectors: z.record(\n\t\tz.string(),\n\t\tz.object({\n\t\t\t/** The area id. */\n\t\t\tid: z.number(),\n\t\t\t/** The name of the area. */\n\t\t\tname: z.string().optional(), // TODO: Same as POIs, a lot does not have a name?\n\t\t\t/** The level of the area. */\n\t\t\tlevel: z.number(),\n\t\t\t/** The coordinates of this area (this is usually the center position). */\n\t\t\tcoord: z.array(z.number()),\n\t\t\t/** A list of coordinates marking the boundary of the area. */\n\t\t\tbounds: z.array(z.array(z.number())),\n\t\t\t/** The area chat link. */\n\t\t\tchat_link: z.string()\n\t\t})\n\t),\n\t/** A list of adventures within the map. */\n\tadventures: z.array(\n\t\tz.object({\n\t\t\t/** The adventure guid (token length 8-4-4-4-12 with a dash between each group of digits). */\n\t\t\tid: z.string(),\n\t\t\t/** The coordinates of the start of the adventure. */\n\t\t\tcoord: z.array(z.number()),\n\t\t\t/** The name of the adventure. */\n\t\t\tname: z.string(),\n\t\t\t/** The description of the adventure. */\n\t\t\tdescription: z.string()\n\t\t})\n\t),\n\t/** A list of mastery insights within the map. */\n\tmastery_points: z.array(\n\t\tz.object({\n\t\t\t/** The mastery insight id. */\n\t\t\tid: z.number(),\n\t\t\t/** The region of the mastery insight, which determines its color. */\n\t\t\tregion: z.string(),\n\t\t\t/** The coordinates of the mastery insight. */\n\t\t\tcoord: z.array(z.number())\n\t\t})\n\t)\n});\nexport const ContinentsMapsDTO = z.array(ContinentsMaps);\n\n/**\n * /v2/continent/:id/floors/:id/regions/:id definition\n */\nconst ContinentsRegions = z.object({\n\t/** Id of the region. */\n\tid: z.number(),\n\t/** Name of the region. */\n\tname: z.string(),\n\t/** The coordinates of the region label. */\n\tlabel_coord: z.array(z.number()),\n\t/** The dimensions of the continent, expressed as top-left (NW) and bottom-right (SE) corner coordinates. */\n\tcontinent_rect: z.array(z.array(z.number()).length(2)).length(2),\n\t/** A mapping from the map id to an object. */\n\tmaps: z.record(z.string(), ContinentsMaps)\n});\nexport const ContinentsRegionsDTO = z.array(ContinentsRegions);\n\n/**\n * /v2/continents/:id/floors/:id definition.\n */\nconst ContinentsFloors = z.object({\n\t/** Floor id. */\n\tid: z.number(),\n\t/** Dimensions of the region texture. */\n\ttexture_dims: z.array(z.number()),\n\t/**\n\t * If present, represents a rectangle of textures.\n\t * Each tile coordinate outside this rectangle is not available on the server.\n\t */\n\tclamped_view: z.array(z.array(z.number()).length(2)).length(2).optional(), // TODO: Another instance of data missing\n\t/** Mapping from the region id to an object. */\n\tregions: z.record(z.string(), ContinentsRegions)\n});\nexport const ContinentsFloorsDTO = z.array(ContinentsFloors);\n\n/**\n * /v2/continents/:id definition.\n */\nconst Continents = z.object({\n\t/** Continent id. */\n\tid: z.number(),\n\t/** Continent name. */\n\tname: z.string(),\n\t/** Width and height dimensions of the continent. */\n\tcontinents_dims: z.array(z.number()).length(2).optional(),\n\t/** Minimal zoom level for use with this map tile. */\n\tmin_zoom: z.number(),\n\t/** Maximum zoom level for use with this map tile. */\n\tmax_zoom: z.number(),\n\t/** List of floor ids available for this continent. */\n\tfloors: z.array(z.number())\n});\nexport const ContinentsDTO = z.array(Continents);\n","import { z } from 'zod';\n\n/**\n * /v2/guild/:id definition.\n */\nexport const GuildDTO = z.object({\n\t/** The unique guild id. */\n\tid: z.string(),\n\t/** The guild name. */\n\tname: z.string(),\n\t/** The 2 to 4 letter guild tag. */\n\ttag: z.string(),\n\t/** The guild emblem. */\n\temblem: z.object({\n\t\t/** An array containing information of the background of the guild emblem. */\n\t\tbackground: z.object({\n\t\t\t/** The emblem id. */\n\t\t\tid: z.number(),\n\t\t\t/** Array of emblem color ids. */\n\t\t\tcolors: z.array(z.number())\n\t\t}),\n\t\t/** An array containing information of the foreground of the guild emblem. */\n\t\tforeground: z.object({\n\t\t\t/** The emblem id. */\n\t\t\tid: z.number(),\n\t\t\t/** Array of emblem color ids. */\n\t\t\tcolors: z.array(z.number())\n\t\t}),\n\t\t/** An array of manipulations applied to the logo. */\n\t\tflags: z.array(\n\t\t\tz.enum([\n\t\t\t\t'FlipBackgroundHorizontal',\n\t\t\t\t'FlipBackgroundVertical',\n\t\t\t\t'FlipForegroundHorizontal',\n\t\t\t\t'FlipForegroundVertical'\n\t\t\t])\n\t\t)\n\t}),\n\t/** The current guild level. Only available when the Api token has member or leader privileges. */\n\tlevel: z.number().optional(),\n\t/** The message of the day. Only available when the Api token has member or leader privileges. */\n\tmotd: z.string().optional(),\n\t/** The current guild influence. Only available when the Api token has member or leader privileges. */\n\tinfluence: z.number().optional(),\n\t/** The current aetherium level. Only available when the Api token has member or leader privileges. */\n\taetherium: z.string().optional(),\n\t/** The current level of guild favor. Only available when the Api token has member or leader privileges. */\n\tfavor: z.number().optional(),\n\t/** The current member count. Only available when the Api token has member or leader privileges. */\n\tmember_count: z.number().optional(),\n\t/** The maximum member count. Only available when the Api token has member or leader privileges. */\n\tmember_capacity: z.number().optional()\n});\n","import { z } from 'zod';\n\nconst GuildLogJoinedDTO = z.object({\n\t/** The type of log entry. */\n\ttype: z.literal('joined'),\n\t/** The account name of the guild member who generated this log entry. */\n\tuser: z.string()\n});\n\nconst GuildLogInvitedDTO = z.object({\n\t/** The type of log entry. */\n\ttype: z.literal('invited'),\n\t/** The account name of the guild member who generated this log entry. */\n\tuser: z.string(),\n\t/** Account name of the guild member which invited the player. */\n\tinvited_by: z.string()\n});\n\nconst GuildLogKickDTO = z.object({\n\t/** The type of log entry. */\n\ttype: z.literal('kick'),\n\t/** The account name of the guild member who generated this log entry. */\n\tuser: z.string(),\n\t/** Account name of the guild member which kicked the player. */\n\tkicked_by: z.string()\n});\n\nconst GuildLogRankChangeDTO = z.object({\n\t/** The type of log entry. */\n\ttype: z.literal('rank_change'),\n\t/** The account name of the guild member who generated this log entry. */\n\tuser: z.string(),\n\t/** Old rank name. */\n\told_rank: z.string(),\n\t/** New rank name. */\n\tnew_rank: z.string(),\n\t/** Account name of the guild member which changed the player rank. */\n\tchanged_by: z.string().optional()\n});\n\nconst GuildLogStashDTO = z.object({\n\t/** The type of log entry. */\n\ttype: z.literal('stash'),\n\t/** Stash operation type. */\n\toperation: z.enum(['deposit', 'withdraw', 'move']),\n\t/** The item ID that was deposited into the treasury. */\n\titem_id: z.number(),\n\t/** How many of the specified item was deposited. */\n\tcount: z.number(),\n\t/** How many coins (in copper) were deposited. */\n\tcoins: z.number()\n});\n\nconst GuildLogMotdDTO = z.object({\n\t/** The type of log entry. */\n\ttype: z.literal('motd'),\n\t/** The account name of the guild member who generated this log entry. */\n\tuser: z.string(),\n\t/** The new message of the day. */\n\tmotd: z.string()\n});\n\nconst GuildLogUpgradeDTO = z.object({\n\t/** The type of log entry. */\n\ttype: z.literal('upgrade'),\n\t/** The type of interaction had. */\n\taction: z.enum(['queued', 'cancelled', 'completed', 'sped_up']),\n\t/** If upgrade was completed, indicates how many upgrades were added. */\n\tcount: z.number().optional(),\n\t/** The id of the completed upgrade. */\n\tupgrade_id: z.number(),\n\t/** May be added if the upgrade was created through a scribe station by a scribe. */\n\trecipe_id: z.number().optional()\n});\n\n/**\n * /v2/guild/:id/log definition\n */\nexport const GuildLogDTO = z.array(\n\tz\n\t\t.object({\n\t\t\t/** An ID to uniquely identify the log entry within the scope of the guild. Not globally unique. */\n\t\t\tid: z.number(),\n\t\t\t/** ISO-8601 standard timestamp for when the log entry was created. */\n\t\t\ttime: z.string()\n\t\t})\n\t\t.and(\n\t\t\tz.discriminatedUnion('type', [\n\t\t\t\tGuildLogJoinedDTO,\n\t\t\t\tGuildLogInvitedDTO,\n\t\t\t\tGuildLogKickDTO,\n\t\t\t\tGuildLogRankChangeDTO,\n\t\t\t\tGuildLogStashDTO,\n\t\t\t\tGuildLogMotdDTO,\n\t\t\t\tGuildLogUpgradeDTO\n\t\t\t])\n\t\t)\n);\n","import { z } from 'zod';\n\n/**\n * /v2/guild/:id/members definition\n */\nexport const GuildMembersDTO = z.array(\n\tz.object({\n\t\t/** The account name of the member. */\n\t\tname: z.string(),\n\t\t/** The guild rank of the member. Can be resolved with /v2/guild/:id/ranks. */\n\t\trank: z.string(),\n\t\t/** The time and date the member joined the guild (ISO-8601 standard). Was not tracked before around March 19th, 2013. */\n\t\tjoined: z.union([z.string(), z.null()])\n\t})\n);\n","/**\n * /v2/guild/:id/ranks definition\n */\nimport { z } from 'zod';\n\nexport const GuildRanksDTO = z.array(\n\tz.object({\n\t\t/** The id and name of the rank. */\n\t\tid: z.string(),\n\t\t/** A number given to each rank to specify how they should be sorted, lowest being the first and highest being the last. */\n\t\torder: z.number(),\n\t\t/** An array of permission ids from /v2/guild/permissions that have been given to this rank. */\n\t\tpermissions: z.array(z.string()),\n\t\t/** The URL pointing to the image currently assigned to this rank. */\n\t\ticon: z.string()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/guild/:id/stash definition\n */\nexport const GuildStashDTO = z.array(\n\tz.object({\n\t\t/** ID of the guild upgrade that granted access to this section of the guild vault. */\n\t\tupgrade_id: z.number(),\n\t\t/** The number of slots in this section of the guild vault. */\n\t\tsize: z.number(),\n\t\t/** The number of coins deposited in this section of the guild vault. */\n\t\tcoins: z.number(),\n\t\t/** The description set for this section of the guild's vault. */\n\t\tnote: z.string(),\n\t\t/**\n\t\t * An array of objects describing the items in the guild stash of exactly size length.\n\t\t * Each object either contains the following properties if an item is present, or is null if the slot is empty.\n\t\t */\n\t\tinventory: z.array(\n\t\t\tz.union([\n\t\t\t\tz.null(),\n\t\t\t\tz.object({\n\t\t\t\t\t/** ID of the item in this slot. */\n\t\t\t\t\tid: z.number(),\n\t\t\t\t\t/** Amount of items in this slot. */\n\t\t\t\t\tcount: z.number()\n\t\t\t\t})\n\t\t\t])\n\t\t)\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/guild/:id/storage definition\n */\nexport const GuildStorageDTO = z.array(\n\tz.object({\n\t\t/** The id of the consumable. */\n\t\tid: z.number(),\n\t\t/** Amount of the consumable in storage. */\n\t\tcount: z.number()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * PvP stat aggregate\n * TODO: Move to /v2/pvp/stats\n */\nconst PvPAggregate = z.object({\n\t/** The wins for the category. */\n\twins: z.number(),\n\t/** The losses for the category. */\n\tlosses: z.number(),\n\t/** The desertions for the category. */\n\tdesertions: z.number(),\n\t/** The byes for the category. */\n\tbyes: z.number(),\n\t/** The forfeit for the category. */\n\tforfeits: z.number()\n});\n\n/**\n * PvP game object\n * TODO: Since this is identical to /v2/pvp/games but with professions omitted, figure out what to do\n */\nconst PvPGame = z.object({\n\t/** The game's UUID. */\n\tid: z.string(),\n\t/** The map the match was played on. Can be resolved against /v2/maps. */\n\tmap_id: z.string(),\n\t/** A timestamp of when the match started. */\n\tstarted: z.string(),\n\t/** A timestamp of when the match ended. */\n\tended: z.string(),\n\t/** The team the player was on during the match. */\n\tteam: z.string(),\n\t/** Team scores. */\n\tscores: z.object({\n\t\t/** The ending score of the red team. */\n\t\tred: z.number(),\n\t\t/** The ending score of the blue team. */\n\t\tblue: z.number()\n\t}),\n\t/** The type of game mode played. */\n\trating_type: z.enum(['Ranked', 'Unranked', 'None']),\n\t/** Change in rating as a result of the observed game. Note that number can be negative in the case of a loss. */\n\trating_change: z.number(),\n\t/** Season id. Can be resolved against /v2/pvp/season. */\n\tseason: z.string().optional()\n});\n\n/**\n * /v2/guild/:id/teams definition\n */\nexport const GuildTeamsDTO = z.array(\n\tz.object({\n\t\t/** the team ID, only unique within a guild. */\n\t\tid: z.number(),\n\t\t/** Array of members in the team. */\n\t\tmembers: z.array(\n\t\t\tz.object({\n\t\t\t\t/** Matching name from /v2/guild/members. */\n\t\t\t\tname: z.string(),\n\t\t\t\t/** Captain or member. */\n\t\t\t\trole: z.enum(['Member', 'Captain'])\n\t\t\t})\n\t\t),\n\t\t/** Team name. */\n\t\tname: z.string(),\n\t\t/** Team statistics aggregate. */\n\t\taggregate: PvPAggregate,\n\t\t/** Team ladder statistics aggregates. */\n\t\tladders: z.object({\n\t\t\t/** Ranked arena stats. */\n\t\t\tranked: PvPAggregate.optional(),\n\t\t\t/** Unranked arena stats. */\n\t\t\tunranked: PvPAggregate.optional()\n\t\t}),\n\t\t/** Team games. */\n\t\tgames: z.array(PvPGame),\n\t\t/** Team's seasonal participation. */\n\t\tseasons: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\t/** Season id. */\n\t\t\t\t\tid: z.string(),\n\t\t\t\t\t/** Win count. */\n\t\t\t\t\twins: z.number(),\n\t\t\t\t\t/** Loss count. */\n\t\t\t\t\tlosses: z.number(),\n\t\t\t\t\t/** Seasonal rating. */\n\t\t\t\t\trating: z.number()\n\t\t\t\t})\n\t\t\t)\n\t\t\t.optional()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/guild/:id/treasury definition\n */\nexport const GuildTreasuryDTO = z.array(\n\tz.object({\n\t\t/** The item id. */\n\t\titem_id: z.number(),\n\t\t/** How many items are currently in the treasury. */\n\t\tcount: z.number(),\n\t\t/** An array of objects describing which currently in-progress upgrades are needing this item. */\n\t\tneeded_by: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The ID of the upgrade needing this item. */\n\t\t\t\tupgrade_id: z.number(),\n\t\t\t\t/** The total amount the upgrade needs for this item. */\n\t\t\t\tcount: z.number()\n\t\t\t})\n\t\t)\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/guild/:id/upgrades definition\n * The endpoint will return an array of numbers resolved against /v2/guild/upgrades.\n */\nexport const GuildUpgradesDTO = z.array(\n\t/** The id of the upgrade. */\n\tz.number()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/guild/upgrades definition.\n */\nexport const GuildUpgradesInfoDTO = z.array(\n\tz\n\t\t.object({\n\t\t\t/** The upgrade id. */\n\t\t\tid: z.number(),\n\t\t\t/** The name of the upgrade. */\n\t\t\tname: z.string(),\n\t\t\t/** The guild upgrade description. */\n\t\t\tdescription: z.string(),\n\t\t\t/** A URL pointing to an icon for the upgrade. */\n\t\t\ticon: z.string(),\n\t\t\t/** The time it takes to build the upgrade. */\n\t\t\tbuild_time: z.number(),\n\t\t\t/** The prerequisite level the guild must be at to build the upgrade. */\n\t\t\trequired_level: z.number(),\n\t\t\t/** The amount of guild experience that will be awarded upon building the upgrade. */\n\t\t\texperience: z.number(),\n\t\t\t/** An array of upgrade IDs that must be completed before this can be built. */\n\t\t\tprerequisites: z.array(z.number()),\n\t\t\t/** An array of objects describing the upgrade's cost. */\n\t\t\tcosts: z.array(\n\t\t\t\tz.discriminatedUnion('type', [\n\t\t\t\t\tz.object({\n\t\t\t\t\t\t/** The type of cost. */\n\t\t\t\t\t\ttype: z.literal('Item'),\n\t\t\t\t\t\t/** The id of the item, if applicable, can be resoled against v2/items. */\n\t\t\t\t\t\titem_id: z.number().optional(),\n\t\t\t\t\t\t/** The name of the cost. */\n\t\t\t\t\t\tname: z.string(),\n\t\t\t\t\t\t/** The amount needed. */\n\t\t\t\t\t\tcount: z.number()\n\t\t\t\t\t}),\n\t\t\t\t\tz.object({\n\t\t\t\t\t\t/** The type of cost. */\n\t\t\t\t\t\ttype: z.literal('Collectible'),\n\t\t\t\t\t\t/** The id of the item, if applicable, can be resoled against v2/items. */\n\t\t\t\t\t\titem_id: z.number().optional(),\n\t\t\t\t\t\t/** The name of the cost. */\n\t\t\t\t\t\tname: z.string(),\n\t\t\t\t\t\t/** The amount needed. */\n\t\t\t\t\t\tcount: z.number()\n\t\t\t\t\t}),\n\t\t\t\t\tz.object({\n\t\t\t\t\t\t/** The type of cost. */\n\t\t\t\t\t\ttype: z.literal('Currency'),\n\t\t\t\t\t\t/** The name of the cost. */\n\t\t\t\t\t\tname: z.string(),\n\t\t\t\t\t\t/** The amount needed. */\n\t\t\t\t\t\tcount: z.number()\n\t\t\t\t\t}),\n\t\t\t\t\tz.object({\n\t\t\t\t\t\t/** The type of cost. */\n\t\t\t\t\t\ttype: z.literal('Coins'),\n\t\t\t\t\t\t/** The amount needed. */\n\t\t\t\t\t\tcount: z.number()\n\t\t\t\t\t})\n\t\t\t\t])\n\t\t\t)\n\t\t})\n\t\t.and(\n\t\t\tz.discriminatedUnion('type', [\n\t\t\t\tz.object({\n\t\t\t\t\t/** The upgrade type. */\n\t\t\t\t\ttype: z.literal('AccumulatingCurrency')\n\t\t\t\t}),\n\t\t\t\tz.object({\n\t\t\t\t\t/** The upgrade type. */\n\t\t\t\t\ttype: z.literal('Boost')\n\t\t\t\t}),\n\t\t\t\tz.object({\n\t\t\t\t\t/** The upgrade type. */\n\t\t\t\t\ttype: z.literal('Claimable')\n\t\t\t\t}),\n\t\t\t\tz.object({\n\t\t\t\t\t/** The upgrade type. */\n\t\t\t\t\ttype: z.literal('Consumable')\n\t\t\t\t}),\n\t\t\t\tz.object({\n\t\t\t\t\t/** The upgrade type. */\n\t\t\t\t\ttype: z.literal('Decoration')\n\t\t\t\t}),\n\t\t\t\tz.object({\n\t\t\t\t\t/** The upgrade type. */\n\t\t\t\t\ttype: z.literal('GuildHall')\n\t\t\t\t}),\n\t\t\t\tz.object({\n\t\t\t\t\t/** The upgrade type. */\n\t\t\t\t\ttype: z.literal('GuildHallExpedition')\n\t\t\t\t}),\n\t\t\t\tz.object({\n\t\t\t\t\t/** The upgrade type. */\n\t\t\t\t\ttype: z.literal('Hub')\n\t\t\t\t}),\n\t\t\t\tz.object({\n\t\t\t\t\t/** The upgrade type. */\n\t\t\t\t\ttype: z.literal('Queue')\n\t\t\t\t}),\n\t\t\t\tz.object({\n\t\t\t\t\t/** The upgrade type. */\n\t\t\t\t\ttype: z.literal('Unlock')\n\t\t\t\t}),\n\t\t\t\tz.object({\n\t\t\t\t\t/** The upgrade type. */\n\t\t\t\t\ttype: z.literal('BankBag'),\n\t\t\t\t\t/** The maximum item slots of the guild bank tab. */\n\t\t\t\t\tbag_max_items: z.number().optional(),\n\t\t\t\t\t/** The maximum amount of coins that can be stored in the bank tab. */\n\t\t\t\t\tbag_max_coins: z.number().optional()\n\t\t\t\t})\n\t\t\t])\n\t\t)\n);\n","import { z } from 'zod';\n\n/**\n * /v2/guild/permissions definition\n */\nexport const GuildPermissionsDTO = z.array(\n\tz.object({\n\t\t/** The permission id. */\n\t\tid: z.string(),\n\t\t/** The permission name. */\n\t\tname: z.string(),\n\t\t/** Description of the permission. */\n\t\tdescription: z.string()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/guild/search definition\n */\nexport const GuildSearchDTO = z.array(\n\t/** The id of the guild. */\n\tz.string()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/home/nodes definition\n */\nexport const HomeNodesDTO = z.array(\n\tz.object({\n\t\t/** Id of the node. */\n\t\tid: z.string()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/home/cats definition\n */\nexport const HomeCatsDTO = z.array(\n\tz.object({\n\t\t/** Id of the cat. */\n\t\tid: z.number(),\n\t\t/* A hint to identify what is needed for each cat. */\n\t\thint: z.string().optional()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/build definition\n */\nexport const BuildDTO = z.object({\n\t/** The id of the current game build. */\n\tid: z.number()\n});\n","import { z } from 'zod';\n\n/**\n * Detailed information on its appearance when applied on a specific material\n */\nconst MaterialColorData = z.object({\n\t/** Color brightness. */\n\tbrightness: z.number(),\n\t/** Color contrast. */\n\tcontrast: z.number(),\n\t/** Color hue. */\n\thue: z.number(),\n\t/** Color saturation. */\n\tsaturation: z.number(),\n\t/** Color lightness. */\n\tlightness: z.number(),\n\t/** Color RGB values. */\n\trgb: z.array(z.number()).length(3)\n});\n\n/**\n * Hue information of a color\n */\nconst Hue = z.enum(['Gray', 'Brown', 'Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Purple']);\n\n/**\n * Material information of a color\n */\nconst Material = z.enum(['Vibrant', 'Leather', 'Metal']);\n\n/**\n * Rarity information of a color\n */\nconst Rarity = z.enum(['Starter', 'Common', 'Uncommon', 'Rare', 'Exclusive']);\n\n/**\n * /v2/colors definition\n */\nexport const ColorsDTO = z.array(\n\tz.object({\n\t\t/** The color id. */\n\t\tid: z.number(),\n\t\t/** The color name. */\n\t\tname: z.string(),\n\t\t/** The base RGB values. */\n\t\tbase_rgb: z.array(z.number()).length(3),\n\t\t/** Detailed information on its appearance when applied on cloth armor. */\n\t\tcloth: MaterialColorData,\n\t\t/** Detailed information on its appearance when applied on leather armor. */\n\t\tleather: MaterialColorData,\n\t\t/** Detailed information on its appearance when applied on metal armor. */\n\t\tmetal: MaterialColorData,\n\t\t/** Detailed information on its appearance when applied on fur armor. */\n\t\tfur: MaterialColorData.optional(),\n\t\t/** ID of the dye item. */\n\t\titem: z.number().optional(),\n\t\t/** Color categories. */\n\t\tcategories: z.tuple([Hue, Material, Rarity]).optional()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/emblem/* Definition\n */\nexport const EmblemDTO = z.array(\n\tz.object({\n\t\t/** The emblem id. */\n\t\tid: z.number(),\n\t\t/** An array of URLs to images that make up the various parts of the emblem. */\n\t\tlayers: z.array(z.string())\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/emotes definition\n */\nexport const EmotesDTO = z.array(\n\tz.object({\n\t\t/** Id of the emote. */\n\t\tid: z.string(),\n\t\t/** List of all available commands for the emote. */\n\t\tcommands: z.array(z.string()),\n\t\t/** List of ids of the items. Can be resolved against /v2/items. */\n\t\tunlock_items: z.array(z.number())\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/currencies definition.\n */\nexport const CurrenciesDTO = z.array(\n\tz.object({\n\t\t/** Currency id. */\n\t\tid: z.number(),\n\t\t/** Currency name. */\n\t\tname: z.string(),\n\t\t/** Currency description. */\n\t\tdescription: z.string(),\n\t\t/** Order of the currency in the list. */\n\t\torder: z.number(),\n\t\t/** Currency icon url. */\n\t\ticon: z.string()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/dailycrafting definition\n */\nexport const DailyCraftingDTO = z.array(\n\t/** Name of the daily craftable item. */\n\tz.string()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/dungeons definition\n */\nexport const DungeonsDTO = z.array(\n\tz.object({\n\t\t/** The name of the dungeon.*/\n\t\tid: z.string(),\n\t\t/** The paths in the dungeon. */\n\t\tpaths: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The given name for the dungeon path. */\n\t\t\t\tid: z.string(),\n\t\t\t\t/** The type of the chosen path. */\n\t\t\t\ttype: z.enum(['Story', 'Explorable'])\n\t\t\t})\n\t\t)\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/files definition\n */\nexport const FilesDTO = z.array(\n\tz.object({\n\t\t/** The file identifier. */\n\t\tid: z.string(),\n\t\t/** The URL to the image. */\n\t\ticon: z.string()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/finishers definition\n */\nexport const FinishersDTO = z.array(\n\tz.object({\n\t\t/** The id of the finisher. */\n\t\tid: z.number(),\n\t\t/** A description explaining how to acquire the finisher. */\n\t\tunlock_details: z.string(),\n\t\t/** An array of item ids used to unlock the finisher. Can be resolved against v2/items */\n\t\tunlock_items: z.array(z.number()).optional(),\n\t\t/** The order in which the finisher appears in a list. */\n\t\torder: z.number(),\n\t\t/** The icon uri for the finisher. */\n\t\ticon: z.string(),\n\t\t/** The name of the finisher as it appears in-game. */\n\t\tname: z.string()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/gliders definition.\n */\nexport const GlidersDTO = z.array(\n\tz.object({\n\t\t/** The id of the glider. */\n\t\tid: z.number(),\n\t\t/** An array of item ids used to unlock the glider. Can be resolved against /v2/items. */\n\t\tunlock_items: z.array(z.number()).optional(),\n\t\t/** The order in which the glider appears in a list. The value is not unique. */\n\t\torder: z.number(),\n\t\t/** The icon URL for the glider. */\n\t\ticon: z.string(),\n\t\t/** The name of the glider as it appears in-game. */\n\t\tname: z.string(),\n\t\t/** The in-game glider description. */\n\t\tdescription: z.string(),\n\t\t/** List of dye ids. Can be resolved against /v2/colors. */\n\t\tdefault_dyes: z.array(z.number())\n\t})\n);\n","import { z } from 'zod';\n\nconst ItemType = z.enum([\n\t'Armor',\n\t'Back',\n\t'Bag',\n\t'Consumable',\n\t'Container',\n\t'CraftingMaterial',\n\t'Gathering',\n\t'Gizmo',\n\t'JadeTechModule',\n\t'Key',\n\t'MiniPet',\n\t'PowerCore',\n\t'Tool',\n\t'Trait',\n\t'Trinket',\n\t'Trophy',\n\t'UpgradeComponent',\n\t'Weapon'\n]);\n\nconst ItemRarity = z.enum(['Junk', 'Basic', 'Fine', 'Masterwork', 'Rare', 'Exotic', 'Ascended', 'Legendary']);\n\nconst ItemFlags = z.enum([\n\t'AccountBindOnUse',\n\t'AccountBound',\n\t'Attuned',\n\t'BulkConsume',\n\t'DeleteWarning',\n\t'HideSuffix',\n\t'Infused',\n\t'MonsterOnly',\n\t'NoMysticForge',\n\t'NoSalvage',\n\t'NoSell',\n\t'NotUpgradeable',\n\t'NoUnderwater',\n\t'SoulbindOnAcquire',\n\t'SoulBindOnUse',\n\t'Tonic',\n\t'Unique'\n]);\n\nconst ItemGameTypes = z.enum(['Activity', 'Dungeon', 'Pve', 'Pvp', 'Wvw', 'PvpLobby']);\n\nconst ItemRestrictions = z.enum([\n\t'Asura',\n\t'Charr',\n\t'Female',\n\t'Human',\n\t'Norn',\n\t'Sylvari',\n\t'Elementalist',\n\t'Engineer',\n\t'Guardian',\n\t'Mesmer',\n\t'Necromancer',\n\t'Ranger',\n\t'Thief',\n\t'Warrior'\n]);\n\nconst ItemUpgrade = z.object({\n\t/** Describes the method of upgrading. */\n\tupgrade: z.enum(['Attunement', 'Infusion']),\n\t/** The item ID that results from performing the upgrade. */\n\titem_id: z.number()\n});\n\nconst Attribute = z.object({\n\t/** Attribute this bonus applies to. */\n\tattribute: z.enum([\n\t\t'AgonyResistance',\n\t\t'BoonDuration',\n\t\t'ConditionDamage',\n\t\t'ConditionDuration',\n\t\t'CritDamage',\n\t\t'Healing',\n\t\t'Power',\n\t\t'Precision',\n\t\t'Toughness',\n\t\t'Vitality'\n\t]),\n\t/** The modifier value. */\n\tmodifier: z.number()\n});\n\nconst InfixUpgrade = z.object({\n\t/** The itemstat id. Can be resolved against /v2/itemstats.\n\t * The usual whitelist restrictions apply, and not all itemstats may be visible. */\n\tid: z.number(),\n\t/** List of attribute bonuses. */\n\tattributes: z.array(Attribute),\n\t/** Object containing an additional effect.\n\t * This is used for Boon Duration, Condition Duration,\n\t * or additional attribute bonuses for ascended trinkets or back items. */\n\tbuff: z\n\t\t.object({\n\t\t\t/** The skill id of the effect. */\n\t\t\tskill_id: z.number(),\n\t\t\t/** The effect's description. */\n\t\t\tdescription: z.string().optional()\n\t\t})\n\t\t.optional()\n});\n\nconst InfusionSlot = z.object({\n\t/**\n\t * Infusion slot type of infusion upgrades.\n\t * The array contains a maximum of one value\n\t */\n\tflags: z.array(z.enum(['Enrichment', 'Infusion'])).max(1),\n\t/**\n\t * The infusion upgrade already in the armor piece.\n\t */\n\titem_id: z.number().optional()\n});\n\nconst ArmorDetails = z.object({\n\t/** The armor slot type. */\n\ttype: z.enum(['Boots', 'Coat', 'Gloves', 'Helm', 'HelmAquatic', 'Leggings', 'Shoulders']),\n\t/** The weight class of the armor piece. */\n\tweight_class: z.enum(['Heavy', 'Medium', 'Light', 'Clothing']),\n\t/** The defense value of the armor piece. */\n\tdefense: z.number(),\n\t/** Infusion slots of the armor piece. */\n\tinfusion_slots: z.array(InfusionSlot),\n\t/** The value used to calculate attributes. See /v2/itemstats. */\n\tattribute_adjustments: z.number(),\n\t/** The infix upgrade. */\n\tinfix_upgrade: InfixUpgrade.optional()\n});\n\nconst BackItemDetails = z.object({\n\t/** Infusion slots of the back item. */\n\tinfusion_slots: z.array(InfusionSlot),\n\t/** The value used to calculate attributes. See /v2/itemstats. */\n\tattribute_adjustments: z.number().optional(),\n\t/** The infix upgrade. */\n\tinfix_upgrade: InfixUpgrade.optional(),\n\t/** The id of the item suffix. */\n\tsuffix_item_id: z.number().optional(),\n\t/** The secondary id of the item suffix. */\n\tsecondary_suffix_item_id: z.string(),\n\t/** Selectable stat ids. Can be resolved by /v2/itemstats */\n\tstat_choices: z.array(z.number()).optional()\n});\n\nconst BagDetails = z.object({\n\t/** The number of bag slots. */\n\tsize: z.number(),\n\t/** Whether the bag is invisible or safe. */\n\tno_sell_or_sort: z.boolean()\n});\n\nconst ConsumableType = z.enum([\n\t'AppearanceChange',\n\t'Booze',\n\t'ContractNpc',\n\t'Currency',\n\t'Food',\n\t'Generic',\n\t'Halloween',\n\t'Immediate',\n\t'MountRandomUnlock',\n\t'RandomUnlock',\n\t'Transmutation',\n\t'Unlock',\n\t'UpgradeRemoval',\n\t'Utility',\n\t'TeleportToFriend'\n]);\n\nconst UnlockType = z.enum([\n\t'BagSlot',\n\t'BankTab',\n\t'Champion',\n\t'CollectibleCapacity',\n\t'Content',\n\t'CraftingRecipe',\n\t'Dye',\n\t'GliderSkin',\n\t'Minipet',\n\t'Ms',\n\t'Outfit',\n\t'RandomUnlock',\n\t'SharedSlot'\n]);\n\nconst ConsumableDetails = z.object({\n\t/** Consumable type. */\n\ttype: ConsumableType,\n\t/** Effect description for consumables applying an effect. */\n\tdescription: z.string().optional(),\n\t/** Effect duration, in milliseconds. */\n\tduration_ms: z.number().optional(),\n\t/** Unlock type for unlock consumables */\n\tunlock_type: UnlockType.optional(),\n\t/** The dye id for dye unlocks. */\n\tcolor_id: z.number().optional(),\n\t/** The recipe id for recipe unlocks. */\n\trecipe_id: z.number().optional(),\n\t/** Additional recipe ids for recipe unlocks */\n\textra_recipe_ids: z.array(z.number()).optional(),\n\t/** The guild upgrade id for the item. Can be resolved by /v2/guild/upgrades. */\n\tguild_upgrade_id: z.number().optional(),\n\t/** The number of stacks of the effect applied by this item. */\n\tapply_count: z.number().optional(),\n\t/** The effect type name of the consumable. */\n\tname: z.string().optional(),\n\t/** The icon of the effect. */\n\ticon: z.string().optional(),\n\t/** A list of skin ids which this item unlocks. Can be resolved by /v2/skins. */\n\tskins: z.array(z.number()).optional()\n});\n\nconst ContainerDetails = z.object({\n\t/** Container type. */\n\ttype: z.enum(['Default', 'GiftBox', 'Immediate', 'OpenUI'])\n});\n\nconst GatheringDetails = z.object({\n\t/** Gathering utility type. */\n\ttype: z.enum(['Foraging', 'Logging', 'Mining', 'Bait', 'Lure'])\n});\n\nconst GizmoDetails = z.object({\n\t/** Gizmo type. */\n\ttype: z.enum(['Default', 'ContainerKey', 'RentableContractNpc', 'UnlimitedConsumable']),\n\t/** The id of the guild decoration, which can be deposited. Can be resolved by /v2/guild/upgrades. */\n\tguild_upgrade_id: z.number().optional(),\n\t/** Vendor ids of the gizmo. */\n\tvendor_ids: z.array(z.number()).optional()\n});\n\nconst MiniatureDetails = z.object({\n\t/** The miniature this item unlocks. Can be resolved by /v2/minis. */\n\tminipet_id: z.number()\n});\n\nconst SalvageKitDetails = z.object({\n\t/** The tool type. Always the same value. */\n\ttype: z.literal('Salvage'),\n\t/** Number of charges. */\n\tcharges: z.number()\n});\n\nconst TrinketDetails = z.object({\n\t/** The trinket type. */\n\ttype: z.enum(['Accessory', 'Amulet', 'Ring']),\n\t/** Infusion slots of the trinket. */\n\tinfusion_slots: z.array(InfusionSlot),\n\t/** The value used to calculate attributes. See /v2/itemstats */\n\tattribute_adjustments: z.number(),\n\t/** The infix upgrade. */\n\tinfix_upgrade: InfixUpgrade.optional(),\n\t/** The id of the item suffix. */\n\tsuffix_item_id: z.number().optional(),\n\t/** The secondary id of the item suffix. */\n\tsecondary_suffix_item_id: z.string(),\n\t/** Selectable stat ids. Can be resolved by /v2/itemstats */\n\tstat_choices: z.array(z.number()).optional()\n});\n\nconst UpgradeComponentFlags = z.enum([\n\t'Axe',\n\t'Dagger',\n\t'Focus',\n\t'Greatsword',\n\t'Hammer',\n\t'Harpoon',\n\t'LongBow',\n\t'Mace',\n\t'Pistol',\n\t'Rifle',\n\t'Scepter',\n\t'Shield',\n\t'ShortBow',\n\t'LongBow',\n\t'Speargun',\n\t'Staff',\n\t'Sword',\n\t'Torch',\n\t'Trident',\n\t'Warhorn',\n\t'HeavyArmor',\n\t'MediumArmor',\n\t'LightArmor',\n\t'Trinket'\n]);\n\nconst UpgradeComponentDetails = z.object({\n\t/** The upgrade component type. */\n\ttype: z.enum(['Default', 'Gem', 'Rune', 'Sigil']),\n\t/** The items that can be upgraded with the upgrade component. */\n\tflags: z.array(UpgradeComponentFlags),\n\t/** Applicable infusion slot for infusion upgrades. */\n\tinfusion_upgrade_flags: z.array(z.enum(['Enrichment', 'Infusion'])),\n\t/** The suffix appended to the item name when the component is applied. */\n\tsuffix: z.string().optional(),\n\t/** The infix upgrade object. */\n\tinfix_upgrade: InfixUpgrade,\n\t/** The bonuses from runes. */\n\tbonuses: z.array(z.string()).optional()\n});\n\nconst WeaponType = z.enum([\n\t'Axe',\n\t'Dagger',\n\t'Mace',\n\t'Pistol',\n\t'Scepter',\n\t'Sword',\n\t'Focus',\n\t'Shield',\n\t'Torch',\n\t'Warhorn',\n\t'Greatsword',\n\t'Hammer',\n\t'LongBow',\n\t'Rifle',\n\t'ShortBow',\n\t'Staff',\n\t'Harpoon',\n\t'Speargun',\n\t'Trident',\n\t'LargeBundle',\n\t'SmallBundle',\n\t'Toy',\n\t'ToyTwoHanded'\n]);\n\nconst WeaponDetails = z.object({\n\t/** The weapon type. */\n\ttype: WeaponType,\n\t/** The damage type. */\n\tdamage_type: z.enum(['Fire', 'Ice', 'Lightning', 'Physical', 'Choking']),\n\t/** Minimum weapon power. */\n\tmin_power: z.number(),\n\t/** Maximum weapon power; */\n\tmax_power: z.number(),\n\t/** The defense value of the weapon. */\n\tdefense: z.number(),\n\t/** Infusion slots of the trinket. */\n\tinfusion_slots: z.array(InfusionSlot),\n\t/** The value used to calculate attributes. See /v2/itemstats. */\n\tattribute_adjustments: z.number(),\n\t/** The infix upgrade. */\n\tinfix_upgrade: InfixUpgrade.optional(),\n\t/** The id of the item suffix. */\n\tsuffix_item_id: z.number().optional(),\n\t/** The secondary id of the item suffix. */\n\tsecondary_suffix_item_id: z.string(),\n\t/** Selectable stat ids. Can be resolved by /v2/itemstats */\n\tstat_choices: z.array(z.number()).optional()\n});\n\n/**\n * /v2/items definition\n */\nexport const ItemsDTO = z.array(\n\tz.object({\n\t\t/** The item id. */\n\t\tid: z.number(),\n\t\t/** The chat link. */\n\t\tchat_link: z.string(),\n\t\t/** The item name. */\n\t\tname: z.string(),\n\t\t/** The full icon url. */\n\t\ticon: z.string().optional(),\n\t\t/** The item description. */\n\t\tdescription: z.string().optional(),\n\t\t/** The item type. */\n\t\ttype: ItemType,\n\t\t/** The item rarity. */\n\t\trarity: ItemRarity,\n\t\t/** The required level. */\n\t\tlevel: z.number(),\n\t\t/** The value in coins when selling to a vendor.\n\t\t * Note: Can be non-zero even when the item has the NoSell flag. */\n\t\tvendor_value: z.number(),\n\t\t/** The default skin id. */\n\t\tdefault_skin: z.number().optional(),\n\t\t/** Flags applying to the item. */\n\t\tflags: z.array(ItemFlags),\n\t\t/** The game types in which the item is usable.\n\t\t * At least one game type is specified. */\n\t\tgame_types: z.array(ItemGameTypes),\n\t\t/** Restrictions applied to the item. */\n\t\trestrictions: z.array(ItemRestrictions),\n\t\t/** Lists what items this item can be upgraded into, and the method of upgrading. */\n\t\tupgrades_into: z.array(ItemUpgrade).optional(),\n\t\t/** Lists what items this item can be upgraded from, and the method of upgrading. */\n\t\tupgrades_from: z.array(ItemUpgrade).optional(),\n\t\t/** Additional item details, if applicable. */\n\t\tdetails: z.union([\n\t\t\tArmorDetails,\n\t\t\tBackItemDetails,\n\t\t\tBagDetails,\n\t\t\tConsumableDetails,\n\t\t\tContainerDetails,\n\t\t\tGatheringDetails,\n\t\t\tGizmoDetails,\n\t\t\tMiniatureDetails,\n\t\t\tSalvageKitDetails,\n\t\t\tTrinketDetails,\n\t\t\tUpgradeComponentDetails,\n\t\t\tWeaponDetails\n\t\t])\n\t})\n);\n","import { z } from 'zod';\n\nconst Attributes = z.enum([\n\t'AgonyResistance',\n\t'BoonDuration',\n\t'ConditionDamage',\n\t'ConditionDuration',\n\t'CritDamage',\n\t'Healing',\n\t'Power',\n\t'Precision',\n\t'Toughness',\n\t'Vitality'\n]);\n\nconst Attribute = z.object({\n\t/** The name of the attribute. */\n\tattribute: Attributes,\n\t/** The multiplier number for that attribute. */\n\tmultiplier: z.number(),\n\t/** The value number for that attribute. */\n\tvalue: z.number()\n});\n\n/**\n * /v2/itemstats definition\n */\nexport const ItemStatsDTO = z.array(\n\tz.object({\n\t\t/** The itemstat id. */\n\t\tid: z.number(),\n\t\t/** The name of the set of stats. */\n\t\tname: z.string(),\n\t\t/** The list of bonus attributes. */\n\t\tattributes: z.array(Attribute)\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/jadebots definition\n */\nexport const JadebotsDTO = z.array(\n\tz.object({\n\t\t/** The id of the jade bot skin. */\n\t\tid: z.number(),\n\t\t/** The name of the jade bot skin. */\n\t\tname: z.string(),\n\t\t/** A description of how to unlock the skin. */\n\t\tdescription: z.string(),\n\t\t/** The item which unlocks the skin. Can be resolved against /v2/items */\n\t\tunlock_item: z.number()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/legendaryarmory definition\n */\nexport const LegendaryArmoryDTO = z.array(\n\tz.object({\n\t\t/** The item id of the legendary armory item. */\n\t\tid: z.number(),\n\t\t/** The maximum quantity of the legendary armory item that can be stored on the account. */\n\t\tmax_count: z.union([z.literal(1), z.literal(2), z.literal(4), z.literal(7), z.literal(8)])\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/legends definition.\n */\nexport const LegendsDTO = z.array(\n\tz.object({\n\t\t/** Id of the legend. */\n\t\tid: z.string(),\n\t\t/** The legend code for a build template link. Available on schema version 2019-12-19T00:00:00.000Z or later. */\n\t\tcode: z.number().optional(),\n\t\t/** The id of the profession (swap Legend) skill. Can be resolved against /v2/skills. */\n\t\tswap: z.number(),\n\t\t/** The id of the heal skill. Can be resolved against /v2/skills. */\n\t\theal: z.number(),\n\t\t/** The id of the elite skill. Can be resolved against /v2/skills. */\n\t\telite: z.number(),\n\t\t/** The ids of the utility skills. Can be resolved against /v2/skills. */\n\t\tutilities: z.array(z.number())\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/mailcarriers definition.\n */\nexport const MailCarriersDTO = z.array(\n\tz.object({\n\t\t/** The id of the mail carrier. */\n\t\tid: z.number(),\n\t\t/** An array of item ids used to unlock the mailcarrier. Can be resolved against /v2/items. */\n\t\tunlock_items: z.array(z.number()),\n\t\t/** The order in which the mailcarrier appears in a list. */\n\t\torder: z.number(),\n\t\t/** The icon uri for the mail carrier. */\n\t\ticon: z.string(),\n\t\t/** The name of the mailcarrier as it appears in-game. */\n\t\tname: z.string(),\n\t\t/** Additional flags on the item, such as \"Default\" */\n\t\tflags: z.array(z.string())\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/mapchests definition.\n */\nexport const MapChestsDTO = z.array(\n\t/** The map chest id. */\n\tz.string()\n);\n","import { z } from 'zod';\n\n/**\n * /v2/maps definition\n */\nexport const MapsDTO = z.array(\n\tz.object({\n\t\t/** The map id. */\n\t\tid: z.number(),\n\t\t/** The map name. */\n\t\tname: z.string(),\n\t\t/** The minimal level for this map. */\n\t\tmin_level: z.number(),\n\t\t/** The maximum level for this map. */\n\t\tmax_level: z.number(),\n\t\t/** The default floor for this map. */\n\t\tdefault_floor: z.number(),\n\t\t/** The map type. */\n\t\ttype: z.enum([\n\t\t\t'BlueHome',\n\t\t\t'Center',\n\t\t\t'EdgeOfTheMists',\n\t\t\t'GreenHome',\n\t\t\t'Instance',\n\t\t\t'JumpPuzzle',\n\t\t\t'Public',\n\t\t\t'Pvp',\n\t\t\t'RedHome',\n\t\t\t'Tutorial',\n\t\t\t'Unknown'\n\t\t]),\n\t\t/** A list of available floors for this map. */\n\t\tfloors: z.array(z.number()),\n\t\t/** The id of the region this map belongs to. */\n\t\tregion_id: z.number().optional(),\n\t\t/** The name of the region this map belongs to. */\n\t\tregion_name: z.string().optional(),\n\t\t/** The id of the continent this map belongs to. */\n\t\tcontinent_id: z.number().optional(),\n\t\t/** The name of the continent this map belongs to. */\n\t\tcontinent_name: z.string().optional(),\n\t\t/** The dimensions of the map, given as the coordinates of the lower-left (SW) and upper-right (NE) corners. */\n\t\tmap_rect: z.array(z.array(z.number())),\n\t\t/** The dimensions of the map within the continent coordinate system, given as the coordinates of the upper-left (NW) and lower-right (SE) corners. */\n\t\tcontinent_rect: z.array(z.array(z.number()))\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/materials definition.\n */\nexport const MaterialsDTO = z.array(\n\tz.object({\n\t\t/** The category id. */\n\t\tid: z.number(),\n\t\t/** The category name. */\n\t\tname: z.string(),\n\t\t/** The ids of the items in this category. Can be resolved against /v2/items. */\n\t\titems: z.array(z.number()),\n\t\t/** The order in which the category appears in the material storage. */\n\t\torder: z.number()\n\t})\n);\n","import { z } from 'zod';\n\nconst Levels = z.object({\n\t/** The name for the given mastery. */\n\tname: z.string(),\n\t/** The in game description for the given mastery. */\n\tdescription: z.string(),\n\t/** The in game instructions for the given mastery. */\n\tinstruction: z.string(),\n\t/** The icon uri for the mastery. */\n\ticon: z.string(),\n\t/** The amount of mastery points required to unlock the mastery. */\n\tpoint_cost: z.number(),\n\t/** The total amount of experience needed to train the given mastery level. This total is non-cumulative between levels. */\n\texp_cost: z.number()\n});\n\n/**\n * /v2/masteries definition.\n */\nexport const MasteriesDTO = z.array(\n\tz.object({\n\t\t/** The id of the mastery. */\n\t\tid: z.number(),\n\t\t/** The name of the selected mastery. */\n\t\tname: z.string(),\n\t\t/** The written out requirements to unlock the mastery track. */\n\t\trequirement: z.string(),\n\t\t/** The order in which the mastery track appears in a list. */\n\t\torder: z.number(),\n\t\t/** The background uri for the mastery track. */\n\t\tbackground: z.string(),\n\t\t/** The in-game region in which the mastery track belongs. */\n\t\tregion: z.string(),\n\t\t/** An array containing the information of each mastery level. */\n\t\tlevels: z.array(Levels)\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/minis definition.\n */\nexport const MinisDTO = z.array(\n\tz.object({\n\t\t/** The mini id. */\n\t\tid: z.number(),\n\t\t/** The mini name. */\n\t\tname: z.string(),\n\t\t/** A description of how to unlock the mini (only present on a few entries). */\n\t\tunlock: z.string().optional(),\n\t\t/** The mini icon. */\n\t\ticon: z.string(),\n\t\t/** The sort order that is used for displaying the mini in-game. */\n\t\torder: z.number(),\n\t\t/** The item which unlocks the mini. Can be resolved against /v2/items. */\n\t\titem_id: z.number()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/novelties definition\n */\nexport const NoveltiesDTO = z.array(\n\tz.object({\n\t\t/** The id of the novelty. */\n\t\tid: z.number(),\n\t\t/** The name of the novelty as it appears in-game. */\n\t\tname: z.string(),\n\t\t/** The in-game novelty description. */\n\t\tdescription: z.string(),\n\t\t/** The icon url for the novelty. */\n\t\ticon: z.string(),\n\t\t/** The slot which the novelty appears in the UI for. */\n\t\tslot: z.enum(['Chair', 'Music', 'HeldItem', 'Miscellaneous', 'Tonic']),\n\t\t/** An array of item ids used to unlock the novelty. Can be resolved against /v2/items. */\n\t\tunlock_item: z.array(z.number())\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/outfits definition.\n */\nexport const OutfitsDTO = z.array(\n\tz.object({\n\t\t/** The id of the outfit. */\n\t\tid: z.number(),\n\t\t/** The name of the outfit (this is also the outfit displayed over a character in-game.) */\n\t\tname: z.string(),\n\t\t/** The icon for the selected outfit. */\n\t\ticon: z.string(),\n\t\t/** An array of item id which unlock this outfit; Can be resolved against v2/items. */\n\t\tunlock_items: z.array(z.number())\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/pets definition\n */\nexport const PetsDTO = z.array(\n\tz.object({\n\t\t/** The id of the pet. */\n\t\tid: z.number(),\n\t\t/** The name of the pet. */\n\t\tname: z.string(),\n\t\t/** The description of the pet. */\n\t\tdescription: z.string(),\n\t\t/** The icon uri for the pet. */\n\t\ticon: z.string(),\n\t\t/** List of skill ids. Can be resolved against /v2/skills. */\n\t\tskills: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The id of the skill. */\n\t\t\t\tid: z.number()\n\t\t\t})\n\t\t)\n\t})\n);\n","import { z } from 'zod';\n\nconst Weapon = z.enum([\n\t'Axe',\n\t'Dagger',\n\t'Mace',\n\t'Pistol',\n\t'Sword',\n\t'Scepter',\n\t'Focus',\n\t'Shield',\n\t'Torch',\n\t'Warhorn',\n\t'Greatsword',\n\t'Hammer',\n\t'Longbow',\n\t'Rifle',\n\t'Shortbow',\n\t'Staff',\n\t'Speargun',\n\t'Spear',\n\t'Trident'\n]);\n\n/**\n * /v2/professions definition\n */\nexport const ProfessionsDTO = z.array(\n\tz.object({\n\t\t/** The profession id. */\n\t\tid: z.string(),\n\t\t/** The name of the profession. */\n\t\tname: z.string(),\n\t\t/** The profession code for a build template link. */\n\t\tcode: z.number().optional(),\n\t\t/** The icon for the profession. */\n\t\ticon: z.string(),\n\t\t/** The large icon for the profession. */\n\t\ticon_big: z.string(),\n\t\t/** The specialization ids. Can be resolved against /v2/specializations. */\n\t\tspecializations: z.array(z.number()),\n\t\t/** List of training details. */\n\t\ttraining: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The id of the skill or specialization. Can be resolved against /v2/skills and /v2/specializations. */\n\t\t\t\tid: z.number(),\n\t\t\t\t/** The category for the training object. */\n\t\t\t\tcategory: z.enum(['Skills', 'Specializations', 'EliteSpecializations']),\n\t\t\t\t/** The name of the skill or specialization indicated by the category and id. */\n\t\t\t\tname: z.string(),\n\t\t\t\t/** List of skills and traits training details tracks objects. */\n\t\t\t\ttrack: z.array(\n\t\t\t\t\tz\n\t\t\t\t\t\t.object({\n\t\t\t\t\t\t\t/** The cost to train this skill or trait. */\n\t\t\t\t\t\t\tcost: z.number()\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.and(\n\t\t\t\t\t\t\tz.discriminatedUnion('type', [\n\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\t/** Whether this is a skill or trait. */\n\t\t\t\t\t\t\t\t\ttype: z.literal('Trait'),\n\t\t\t\t\t\t\t\t\t/** The trait id. Can be resolved against /v2/traits. */\n\t\t\t\t\t\t\t\t\ttrait_id: z.number()\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\t/** Whether this is a skill or trait. */\n\t\t\t\t\t\t\t\t\ttype: z.literal('Skill'),\n\t\t\t\t\t\t\t\t\t/** The skill id. Can be resolved against /v2/skills. */\n\t\t\t\t\t\t\t\t\tskill_id: z.number()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t])\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t})\n\t\t),\n\t\t// weapons (object) - The weapons available for this profession. The key indicates the weapon type, which is one of the following:\n\t\tweapons: z.record(\n\t\t\tWeapon,\n\t\t\tz.object({\n\t\t\t\t/** Weapon slot flag. */\n\t\t\t\tflag: z.array(z.enum(['Mainhand', 'Offhand', 'TwoHand', 'Aquatic'])).optional(),\n\t\t\t\t/** The specializations id of the required specialization to use this weapon.\n\t\t\t\t * Can be resolved against /v2/specializations. Only present if a specialization is required. */\n\t\t\t\tspecialization: z.number().optional(),\n\t\t\t\t/** The list of weapon skills objects. */\n\t\t\t\tskills: z.array(\n\t\t\t\t\tz.object({\n\t\t\t\t\t\t/** The skill id. Can be resolved against /v2/skills. */\n\t\t\t\t\t\tid: z.number(),\n\t\t\t\t\t\t/** The skill bar slot that this weapon skill can be used in. */\n\t\t\t\t\t\tslot: z.union([\n\t\t\t\t\t\t\tz.enum(['Profession_1', 'Utility', 'Heal', 'Elite']),\n\t\t\t\t\t\t\tz.custom<`Weapon_${number}`>(val =>\n\t\t\t\t\t\t\t\ttypeof val === 'string' ? /^Weapon_[1-5]$/.test(val) : false\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t]),\n\t\t\t\t\t\t/** The name of the offhand weapon this skill requires to be equipped. This field is usually only present for Thief skills. */\n\t\t\t\t\t\toffhand: z.string().optional(),\n\t\t\t\t\t\t/** The Elementalist attunement that this skill requires. This field is usually only present for Elementalist skills. */\n\t\t\t\t\t\tattunement: z.string().optional(),\n\t\t\t\t\t\t/** The name of the class the skill was stolen from. This only applies to thief stolen skills. */\n\t\t\t\t\t\tsource: z.string().optional()\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t})\n\t\t),\n\t\t/** Profession flags. */\n\t\tflags: z.array(z.enum(['NoRacialSkills', 'NoWeaponSwap'])),\n\t\t/** The first number is a skill palette ID obtained from a build template link, the second number is a skill ID.\n\t\t * Can be resolved against /v2/skills. */\n\t\tskills_by_palette: z.array(z.number()).length(2).optional()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/quaggans definition\n */\nexport const QuaggansDTO = z.array(\n\tz.object({\n\t\t/** The quaggan identifier. */\n\t\tid: z.string(),\n\t\t/** The URL to the quaggan image. */\n\t\turl: z.string()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/quests definition.\n */\nexport const QuestsDTO = z.array(\n\tz.object({\n\t\t/** The id of the quest. */\n\t\tid: z.number(),\n\t\t/** The name of the quest. */\n\t\tname: z.string(),\n\t\t/** The minimum level required for a character to begin this quest. */\n\t\tlevel: z.number(),\n\t\t/** The id for the story. Can be resolved against /v2/stories. */\n\t\tstory: z.number(),\n\t\t/** An array of goal objects providing details about the goals for this quest. */\n\t\tgoals: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The text displayed for the quest step if it is active. */\n\t\t\t\tactive: z.string(),\n\t\t\t\t/** The text displayed for the quest step if it is complete. */\n\t\t\t\tcomplete: z.string()\n\t\t\t})\n\t\t)\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/races definition\n */\nexport const RacesDTO = z.array(\n\tz.object({\n\t\t/** The id/name of the race. */\n\t\tid: z.string(),\n\t\t/** An array of skill ids. Can be resolved against v2/skills. */\n\t\tskills: z.array(z.number())\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/raids definition\n */\nexport const RaidsDTO = z.array(\n\tz.object({\n\t\t/** The name of the dungeon. */\n\t\tid: z.string(),\n\t\t/** An array of object containing the following: */\n\t\twings: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The given name for the dungeon path. */\n\t\t\t\tid: z.string(),\n\t\t\t\t/** List of events within the raid or dungeon. */\n\t\t\t\tevents: z.array(\n\t\t\t\t\tz.object({\n\t\t\t\t\t\t/** The event/encounter name. */\n\t\t\t\t\t\tid: z.string(),\n\t\t\t\t\t\t/** The type of events. */\n\t\t\t\t\t\ttype: z.enum(['Checkpoint', 'Boss'])\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t})\n\t\t)\n\t})\n);\n","import { z } from 'zod';\n\nconst WeaponRecipes = z.enum([\n\t'Axe',\n\t'Dagger',\n\t'Focus',\n\t'Greatsword',\n\t'Hammer',\n\t'Harpoon',\n\t'LongBow',\n\t'Mace',\n\t'Pistol',\n\t'Rifle',\n\t'Scepter',\n\t'Shield',\n\t'ShortBow',\n\t'Speargun',\n\t'Staff',\n\t'Sword',\n\t'Torch',\n\t'Trident',\n\t'Warhorn'\n]);\n\nconst ArmorRecipes = z.enum(['Boots', 'Coat', 'Gloves', 'Helm', 'Leggings', 'Shoulders']);\n\nconst TrinketRecipes = z.enum(['Amulet', 'Earring', 'Ring']);\n\nconst FoodRecipes = z.enum(['Dessert', 'Feast', 'IngredientCooking', 'Meal', 'Seasoning', 'Snack', 'Soup', 'Food']);\n\nconst CraftingComponentRecipes = z.enum(['Component', 'Inscription', 'Insignia', 'LegendaryComponent']);\n\nconst RefinementRecipes = z.enum(['Refinement', 'RefinementEctoplasm', 'RefinementObsidian']);\n\nconst GuildRecipes = z.enum(['GuildConsumable', 'GuildDecoration', 'GuildConsumableWvw']);\n\nconst OtherRecipes = z.enum(['Backpack', 'Bag', 'Bulk', 'Consumable', 'Dye', 'Food', 'Potion', 'UpgradeComponent']);\n\n/**\n * /v2/recipes definition\n */\nexport const RecipesDTO = z.array(\n\tz.object({\n\t\t/** The recipe id. */\n\t\tid: z.number(),\n\t\t/** The recipe type. */\n\t\ttype: z.union([\n\t\t\tWeaponRecipes,\n\t\t\tArmorRecipes,\n\t\t\tTrinketRecipes,\n\t\t\tFoodRecipes,\n\t\t\tCraftingComponentRecipes,\n\t\t\tRefinementRecipes,\n\t\t\tGuildRecipes,\n\t\t\tOtherRecipes\n\t\t]),\n\t\t/** The item id of the produced item. Can be resolved against /v2/items. */\n\t\toutput_item_id: z.number(),\n\t\t/** The amount of items produced. */\n\t\toutput_item_count: z.number(),\n\t\t/** The time in milliseconds it takes to craft the item. */\n\t\ttime_to_craft_ms: z.number(),\n\t\t/** The crafting disciplines that can use the recipe. */\n\t\tdisciplines: z.array(\n\t\t\tz.enum([\n\t\t\t\t'Artificer',\n\t\t\t\t'Armorsmith',\n\t\t\t\t'Chef',\n\t\t\t\t'Huntsman',\n\t\t\t\t'Jeweler',\n\t\t\t\t'Leatherworker',\n\t\t\t\t'Tailor',\n\t\t\t\t'Weaponsmith',\n\t\t\t\t'Scribe'\n\t\t\t])\n\t\t),\n\t\t/** The required rating to craft the recipe. */\n\t\tmin_rating: z.number(),\n\t\t/** Flags applying to the recipe. */\n\t\tflags: z.array(z.enum(['AutoLearned', 'LearnedFromItem'])),\n\t\t/** List of recipe ingredients */\n\t\tingredients: z.array(\n\t\t\tz.object({\n\t\t\t\t/** Type of ingredient. */\n\t\t\t\ttype: z.enum(['Currency', 'Item']),\n\t\t\t\t/** The ingredient's id. Can be resolved against /v2/items or /v2/currencies, depending on type */\n\t\t\t\tid: z.number(),\n\t\t\t\t/** The quantity of this ingredient. */\n\t\t\t\tcount: z.number()\n\t\t\t})\n\t\t),\n\t\t/** List of recipe ingredients that come from the guild such as decorations or schematics. */\n\t\tguild_ingredients: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\t/** The id of the used guild upgrade. Can be resolved against /v2/guild/upgrades. */\n\t\t\t\t\tupgrade_id: z.number(),\n\t\t\t\t\t/** The quantity of this guild ingredient. */\n\t\t\t\t\tcount: z.number()\n\t\t\t\t})\n\t\t\t)\n\t\t\t.optional(),\n\t\t/** The id of the produced guild upgrade. Can be resolved against /v2/guild/upgrades. */\n\t\toutput_upgrade_id: z.number().optional(),\n\t\t/** The chat code for the recipe. */\n\t\tchat_link: z.string()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/skiffs definition\n */\nexport const SkiffsDTO = z.array(\n\tz.object({\n\t\t/** The id of the skiff skin. */\n\t\tid: z.number(),\n\t\t/** The name of the skiff skin. */\n\t\tname: z.string(),\n\t\t/** The full icon URL. */\n\t\ticon: z.string(),\n\t\t/** An object containing information on the available dye slots and defaults. */\n\t\tdye_slots: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The id of the default color. Can be resolved against v2/colors. */\n\t\t\t\tcolor_id: z.number(),\n\t\t\t\t/** The type of material. */\n\t\t\t\tmaterial: z.enum(['metal', 'leather', 'cloth'])\n\t\t\t})\n\t\t)\n\t})\n);\n","import { z } from 'zod';\n\nexport const AttributeAdjust = z.object({\n\ttype: z.literal('AttributeAdjust'),\n\t/** The amount target gets adjusted, based on a level 80 character at base stats. */\n\tvalue: z.number(),\n\t/** The attribute this fact adjusts. Note that a value of Healing indicates the fact is a heal skill, and Ferocity is encoded at CritDamage. */\n\ttarget: z.string()\n});\n\nexport const Buff = z.object({\n\ttype: z.literal('Buff'),\n\t/** The boon, condition, or effect referred to by the fact. */\n\tstatus: z.string(),\n\t/** The description of the status effect. */\n\tdescription: z.string().optional(),\n\t/** The number of stacks applied. */\n\tapply_count: z.number().optional(),\n\t/** The duration of the effect in seconds. Note that some facts of this type are just used to display\n\t * the buff icon with text; in this case, duration is usually 0, or omitted entirely. */\n\tduration: z.number().optional()\n});\n\nexport const ComboField = z.object({\n\ttype: z.literal('ComboField'),\n\t/** The type of field. */\n\tfield_type: z.enum(['Air', 'Dark', 'Fire', 'Ice', 'Light', 'Lightning', 'Poison', 'Smoke', 'Ethereal', 'Water'])\n});\n\nexport const Finisher = z.object({\n\ttype: z.literal('ComboFinisher'),\n\t/** The type of finisher. */\n\tfinisher_type: z.enum(['Blast', 'Leap', 'Projectile', 'Whirl']),\n\t/** The percent chance that the finisher will trigger. */\n\tpercent: z.number()\n});\n\nexport const Damage = z.object({\n\ttype: z.literal('Damage'),\n\t/** The amount of times the damage hits. */\n\thit_count: z.number(),\n\t/** Indicates the damage multiplier value of that skill. */\n\tdmg_multiplier: z.number()\n});\n\nexport const Distance = z.object({\n\ttype: z.literal('Distance'),\n\t/** The distance value. */\n\tdistance: z.number()\n});\n\nconst Duration = z.object({\n\ttype: z.literal('Duration'),\n\t/** The duration in seconds. */\n\tduration: z.number()\n});\n\nconst Heal = z.object({\n\ttype: z.literal('Heal'),\n\t/** The number of times the heal skill is applied. */\n\thit_count: z.number()\n});\n\nconst HealingAdjust = z.object({\n\ttype: z.literal('HealingAdjust'),\n\t/** The number of times the heal value is applied. */\n\thit_count: z.number()\n});\n\nexport const NoData = z.object({\n\t/** This fact is usually used to display the Combat Only fact, but it can be used elsewhere. */\n\ttype: z.literal('NoData')\n});\n\nexport const NumberType = z.object({\n\ttype: z.literal('Number'),\n\t/** The number value as referenced by text. */\n\tvalue: z.number()\n});\n\nexport const Percent = z.object({\n\ttype: z.literal('Percent'),\n\t/** The percentage value as referenced by text. */\n\tpercent: z.number()\n});\n\nexport const PrefixedBuff = z.object({\n\ttype: z.literal('PrefixedBuff'),\n\t/** The boon, condition, or effect referred to by the fact. */\n\tstatus: z.string().optional(),\n\t/** The description of the status effect. */\n\tdescription: z.string().optional(),\n\t/** The number of stacks applied. */\n\tapply_count: z.number(),\n\t/** The duration of the effect in seconds. Note that some facts of this type are just used to display\n\t * the buff icon with text; in this case, duration is usually 0, or omitted entirely. */\n\tduration: z.number(),\n\t/** Buff prefix. */\n\tprefix: z.object({\n\t\ttext: z.string(),\n\t\ticon: z.string(),\n\t\tstatus: z.string().optional(),\n\t\tdescription: z.string().optional()\n\t})\n});\n\nexport const Radius = z.object({\n\ttype: z.literal('Radius'),\n\t/** The radius value. */\n\tdistance: z.number()\n});\n\nexport const Range = z.object({\n\ttype: z.literal('Range'),\n\t/** The range of the trait/skill. */\n\tvalue: z.number()\n});\n\nexport const Recharge = z.object({\n\ttype: z.literal('Recharge'),\n\t/** The recharge time in seconds. */\n\tvalue: z.number()\n});\n\nexport const StunBreak = z.object({\n\ttype: z.literal('StunBreak'),\n\t/** If present, always true. */\n\tvalue: z.literal(true)\n});\n\nexport const Time = z.object({\n\ttype: z.literal('Time'),\n\t/** The time value in seconds. */\n\tduration: z.number()\n});\n\nexport const Unblockable = z.object({\n\ttype: z.literal('Unblockable'),\n\t/** If present, always true. */\n\tvalue: z.literal(true)\n});\n\nconst Facts = z\n\t.object({\n\t\t/** An arbitrary localized string describing the fact. */\n\t\ttext: z.string(),\n\t\t/** A URL to the icon shown with the fact. Not included with all facts. */\n\t\ticon: z.string().optional()\n\t})\n\t.and(\n\t\tz.discriminatedUnion('type', [\n\t\t\tAttributeAdjust,\n\t\t\tBuff,\n\t\t\tComboField,\n\t\t\tFinisher,\n\t\t\tDamage,\n\t\t\tDistance,\n\t\t\tDuration,\n\t\t\tHeal,\n\t\t\tHealingAdjust,\n\t\t\tNoData,\n\t\t\tNumberType,\n\t\t\tPercent,\n\t\t\tPrefixedBuff,\n\t\t\tRadius,\n\t\t\tRange,\n\t\t\tRecharge,\n\t\t\tStunBreak,\n\t\t\tTime,\n\t\t\tUnblockable\n\t\t])\n\t);\n\nconst TraitedFacts = Facts.and(\n\tz.object({\n\t\t/** Specifies which trait has to be selected in order for this fact to take effect. */\n\t\trequires_trait: z.number(),\n\t\t/** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.\n\t\t * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */\n\t\toverrides: z.number().optional()\n\t})\n);\n\n/**\n * /v2/skills definition\n *\n * NOTE: This is mess, and there are a ton of optional fields.\n * A lot of optional types are impossible to define conditionally.\n * You're on your own.\n * Refer to this page for details: https://wiki.guildwars2.com/wiki/API:2/skills\n */\nexport const SkillsDTO = z.array(\n\tz.object({\n\t\t/** The skill id. */\n\t\tid: z.number(),\n\t\t/** The skill name. */\n\t\tname: z.string(),\n\t\t/** The skill description. */\n\t\tdescription: z.string(),\n\t\t/** A URL to an icon of the skill. */\n\t\ticon: z.string(),\n\t\t/** The chat link. */\n\t\tchat_link: z.string(),\n\t\t/** The skill type. */\n\t\ttype: z.enum([\n\t\t\t'Bundle',\n\t\t\t'Elite',\n\t\t\t'Heal',\n\t\t\t'Monster',\n\t\t\t'Pet',\n\t\t\t'Profession',\n\t\t\t'Toolbelt',\n\t\t\t'Transform',\n\t\t\t'Utility',\n\t\t\t'Weapon'\n\t\t]),\n\t\t/** Indicates what weapon the skill is on. Can also be None if not applicable. */\n\t\tweapon_type: z.string().or(z.literal('None')),\n\t\t/** An array of strings indicating which profession(s) can use this skill. */\n\t\tprofessions: z.array(z.string()),\n\t\t/** A string indicating where this skill fits into. */\n\t\t// optional\n\t\tslot: z.union([\n\t\t\tz.custom<`Downed_${number}`>(val => (typeof val === 'string' ? /^Downed_[1-4]$/.test(val) : false)),\n\t\t\tz.custom<`Profession_${number}`>(val => (typeof val === 'string' ? /^Profession_[1-5]$/.test(val) : false)),\n\t\t\tz.custom<`Weapon_${number}`>(val => (typeof val === 'string' ? /^Weapon_[1-5]$/.test(val) : false)),\n\t\t\tz.literal('Elite'),\n\t\t\tz.literal('Pet'),\n\t\t\tz.literal('Utility')\n\t\t]),\n\t\t/** An array of skill fact objects describing the skill's effect. */\n\t\tfacts: z.array(Facts).optional(),\n\t\t/** An array of skill fact objects that may apply to the skill, dependent on the player's trait choices. */\n\t\ttraited_facts: z.array(TraitedFacts).optional(),\n\t\t/** An array of categories the skill falls under. Mostly used for organizational purposes. */\n\t\tcategories: z.array(z.string()).optional(),\n\t\t/** Used for Elementalist weapon skills, indicates what attunement this skill falls under. */\n\t\tattunement: z.enum(['Fire', 'Water', 'Air', 'Earth']).optional(),\n\t\t/** Used for Revenant, Warrior, and Druid skills to indicate their energy cost. */\n\t\tcost: z.number().optional(),\n\t\t/** Indicates what off-hand must be equipped for this dual-wield skill to appear. */\n\t\tdual_wield: z.string().optional(),\n\t\t/** Used for skills that \"flip over\" into a new skill in the same slot to indicate what skill they flip to, such as Engineer toolkits or Herald facets. */\n\t\tflip_skill: z.number().optional(),\n\t\t/** Indicates the Initiative cost for thief skills. */\n\t\tinitiative: z.number().optional(),\n\t\t/** Indicates the next skill in the chain, if applicable. */\n\t\tnext_chain: z.number().optional(),\n\t\t/** Indicates the previous skill in the chain, if applicable. */\n\t\tprev_chain: z.number().optional(),\n\t\t/** Used to indicate that the skill will transform the player, replacing their skills with the skills listed in the array. */\n\t\ttransform_skills: z.array(z.unknown()).optional(),\n\t\t/** Used to indicate that the skill will replace the player's skills with the skills listed in the array. */\n\t\tbundle_skills: z.array(z.unknown()).optional(),\n\t\t/** Used for Engineer utility skills to indicate their associated toolbelt skill. */\n\t\ttoolbelt_skill: z.number().optional(),\n\t\t/** Used to indicate usage limitations, more than one value can be set. */\n\t\tflags: z.array(z.enum(['GroundTargeted', 'NoUnderwater']))\n\t})\n);\n","import { z } from 'zod';\n\nconst WeaponDetails = z.object({\n\t/** The weapon type. */\n\ttype: z.string(),\n\t/** The damage type. */\n\tdamage_type: z.enum(['Physical', 'Fire', 'Lightning', 'Ice', 'Choking'])\n});\n\nconst GatheringToolDetails = z.object({\n\t/** The tool type. */\n\ttype: z.enum(['Foraging', 'Logging', 'Mining'])\n});\n\nconst RaceGenderChoice = z.enum([\n\t'AsuraMale',\n\t'AsuraFemale',\n\t'CharrMale',\n\t'CharrFemale',\n\t'HumanMale',\n\t'HumanFemale',\n\t'NornMale',\n\t'NornFemale',\n\t'SylvariMale',\n\t'SylvariFemale'\n]);\n\nconst ArmorDetails = z.object({\n\t/** The armor type (slot). */\n\ttype: z.string(),\n\t/** The armor weight. */\n\tweight_class: z.enum(['Clothing', 'Light', 'Medium', 'Heavy']),\n\t/** An object containing information on default slots and skin overrides.\n\t * If the array item is null, this means dye cannot be applied to that\n\t * slot, except if otherwise overriden by non-null values in the overrides array. */\n\tdye_slots: z.object({\n\t\tdefault: z.array(\n\t\t\tz.union([\n\t\t\t\tz.null(),\n\t\t\t\tz.object({\n\t\t\t\t\t/** The id of the default color. Can be resolved against /v2/colors.*/\n\t\t\t\t\tcolor_id: z.number(),\n\t\t\t\t\t/** The type of material. */\n\t\t\t\t\tmaterial: z.enum(['cloth', 'leather', 'metal'])\n\t\t\t\t})\n\t\t\t])\n\t\t),\n\t\t/** Object of race/gender overrides. */\n\t\toverrides: z.record(\n\t\t\tRaceGenderChoice,\n\t\t\tz.object({\n\t\t\t\t/** The id of the default color. Can be resolved against /v2/colors. */\n\t\t\t\tcolor_id: z.number(),\n\t\t\t\t/** The type of material. */\n\t\t\t\tmaterial: z.enum(['cloth', 'leather', 'metal'])\n\t\t\t})\n\t\t)\n\t})\n});\n\n/**\n * /v2/skins definition\n */\nexport const SkinsDTO = z.array(\n\tz.object({\n\t\t/** The skin id. */\n\t\tid: z.number(),\n\t\t/** The name of the skin. */\n\t\tname: z.string(),\n\t\t/** The skin type, either Armor, Weapon, Back or Gathering. */\n\t\ttype: z.string(),\n\t\t/**\n\t\t * Additional skin flags. Options:\n\t\t * ShowInWardrobe – When displayed in the account wardrobe (set for all skins listed in the API).\n\t\t * NoCost – When applying the skin is free.\n\t\t * HideIfLocked – When the skin is hidden until it is unlocked.\n\t\t * OverrideRarity - When the skin overrides item rarity when applied\n\t\t */\n\t\tflags: z.array(z.enum(['ShowInWardrobe', 'NoCost', 'HideIfLocked', 'OverrideRarity'])),\n\t\t/** Race restrictions that apply to the skin, e.g. Human will be a listed restriction, if the skin can only be applied to human characters. */\n\t\trestrictions: z.array(z.string()),\n\t\t/** The full icon URL. */\n\t\ticon: z.string(),\n\t\t/** The rarity of the skin */\n\t\trarity: z.string(),\n\t\t/** Optional skin description. */\n\t\tdescription: z.string().optional(),\n\t\t/** Additional skin details if applicable, depending on the skin type */\n\t\tdetails: z.union([ArmorDetails, GatheringToolDetails, WeaponDetails]).optional()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/specializations definition\n */\nexport const SpecializationsDTO = z.array(\n\tz.object({\n\t\t/** The specialization's ID. */\n\t\tid: z.number(),\n\t\t/** The name of the specialization. */\n\t\tname: z.string(),\n\t\t/** The profession that this specialization belongs to. */\n\t\tprofession: z.string(),\n\t\t/** True if this specialization is an Elite specialization, false otherwise. */\n\t\telite: z.boolean(),\n\t\t/** A URL to an icon of the specialization. */\n\t\ticon: z.string(),\n\t\t/** A URL to the background image of the specialization. */\n\t\tbackground: z.string(),\n\t\t/** Contains a list of IDs specifying the minor traits in the specialization. */\n\t\tminor_traits: z.array(z.number()),\n\t\t/** Contains a list of IDs specifying the major traits in the specialization. */\n\t\tmajor_traits: z.array(z.number())\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/subtoken definition.\n */\nexport const SubtokenDTO = z.object({\n\t/** Account subtoken. */\n\tsubtoken: z.string()\n});\n","import { z } from 'zod';\n\n/**\n * /v2/titles definition\n */\nexport const TitlesDTO = z.array(\n\tz.object({\n\t\t/** The id of the title. */\n\t\tid: z.number(),\n\t\t/** The name of the title (this is also the title displayed over a character in-game.) */\n\t\tname: z.string(),\n\t\t/** The id of the achievement that grants this title. Can be resolved against /v2/achievements. */\n\t\tachievements: z.array(z.number()).optional(),\n\t\t/** The amount of AP required to have said title. */\n\t\tap_required: z.number().optional()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/tokeninfo definition\n */\nexport const TokenInfoDTO = z.object({\n\t/** The first half of the API key that was requested. */\n\tid: z.string(),\n\t/** The name given to the API key by the account owner.\n\t * NOTE: The value of this field is not escaped and may contain valid HTML, JavaScript, other code. */\n\tname: z.string(),\n\t/**\n\t * Array of strings describing which permissions the API key has. The array can contain any of:\n\t * account - Grants access to the /v2/account endpoint (This permission is required for all API keys).\n\t * builds - Grants access to view each character's equipped specializations and gear.\n\t * characters - Grants access to the /v2/characters endpoint.\n\t * guilds - Grants access to guild info under the /v2/guild/:id/ sub-endpoints.\n\t * inventories - Grants access to inventories in the /v2/characters, /v2/account/bank, and /v2/account/materials endpoints.\n\t * progression - Grants access to achievements, dungeon unlock status, mastery point assignments, and general PvE progress.\n\t * pvp - Grants access to the /v2/pvp sub-endpoints. (i.e. /v2/pvp/games, /v2/pvp/stats)\n\t * tradingpost - Grants access to the /v2/commerce/transactions endpoint.\n\t * unlocks - Grants access to the /v2/account/skins and /v2/account/dyes endpoints.\n\t * wallet - Grants access to the /v2/account/wallet endpoint.\n\t */\n\tpermissions: z.array(\n\t\tz.enum([\n\t\t\t'account',\n\t\t\t'builds',\n\t\t\t'characters',\n\t\t\t'guilds',\n\t\t\t'inventories',\n\t\t\t'progression',\n\t\t\t'pvp',\n\t\t\t'tradingpost',\n\t\t\t'unlocks',\n\t\t\t'wallet'\n\t\t])\n\t),\n\t/** The type of the access token given. Either Api key or Subtoken. */\n\ttype: z.string().optional(),\n\t/** If a subtoken is given, ISO8601 timestamp indicating when the given subtoken expires. */\n\texpires_at: z.string().optional(),\n\t/** If a subtoken is given, ISO8601 timestamp indicating when the given subtoken was created. */\n\tissued_at: z.string().optional(),\n\t/** If the given subtoken is restricted to a list of URLs, contains an array of strings describing what endpoints are available to this token. */\n\turls: z.array(z.string()).optional()\n});\n","import { z } from 'zod';\nimport {\n\tAttributeAdjust,\n\tBuff,\n\tComboField,\n\tDamage,\n\tDistance,\n\tFinisher,\n\tNoData,\n\tNumberType,\n\tPercent,\n\tPrefixedBuff,\n\tRadius,\n\tRange,\n\tRecharge,\n\tStunBreak,\n\tTime,\n\tUnblockable\n} from './skills.dto';\n\nconst BuffConversion = z.object({\n\ttype: z.literal('BuffConversion'),\n\t/** The attribute that is used to calculate the attribute gain. */\n\tsource: z.string(),\n\t/** How much of the source attribute is added to target. */\n\tpercent: z.number(),\n\t/** The attribute that gets added to. */\n\ttarget: z.string()\n});\n\nconst Facts = z\n\t.object({\n\t\t/** An arbitrary localized string describing the fact.*/\n\t\ttext: z.string().optional(),\n\t\t/** A URL to the icon shown with the fact. Not included with all facts.*/\n\t\ticon: z.string().optional()\n\t})\n\t.and(\n\t\tz.discriminatedUnion('type', [\n\t\t\tAttributeAdjust,\n\t\t\tBuff,\n\t\t\tBuffConversion,\n\t\t\tComboField,\n\t\t\tFinisher,\n\t\t\tDamage,\n\t\t\tDistance,\n\t\t\tNoData,\n\t\t\tNumberType,\n\t\t\tPercent,\n\t\t\tPrefixedBuff,\n\t\t\tRadius,\n\t\t\tRange,\n\t\t\tRecharge,\n\t\t\tStunBreak,\n\t\t\tTime,\n\t\t\tUnblockable,\n\t\t\t/** Life force cost specifically is missing a type field. */\n\t\t\tz.object({\n\t\t\t\ttype: z.undefined(),\n\t\t\t\t/** Cost per cast. Life Force ONLY. */\n\t\t\t\tpercent: z.number().optional()\n\t\t\t})\n\t\t])\n\t);\n\nconst TraitedFacts = Facts.and(\n\tz.object({\n\t\t/** Specifies which trait has to be selected in order for this fact to take effect. */\n\t\trequires_trait: z.number(),\n\t\t/** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.\n\t\t * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */\n\t\toverrides: z.number().optional()\n\t})\n);\n\nconst Skills = z.object({\n\t/** The ID of the skill. */\n\tid: z.number(),\n\t/** The name of the skill. */\n\tname: z.string(),\n\t/** The description of the skill. */\n\tdescription: z.string(),\n\t/** The URL for the icon of the skill. */\n\ticon: z.string(),\n\t/** A list of tooltip facts associated with the skill. */\n\tfacts: z.array(Facts).optional(),\n\t/** A list of additions or changes to tooltip facts where there is interplay between traits. */\n\ttraited_facts: z.array(TraitedFacts).optional()\n});\n\n/**\n * /v2/traits definition\n */\nexport const TraitsDTO = z.array(\n\tz.object({\n\t\t/** The trait id. */\n\t\tid: z.number(),\n\t\t/** The trait name. */\n\t\tname: z.string(),\n\t\t/** The trait's icon URL. */\n\t\ticon: z.string(),\n\t\t/** The trait description. */\n\t\tdescription: z.string().optional(),\n\t\t/** The trait order. */\n\t\torder: z.number().optional(),\n\t\t/** The id of the specialization this trait belongs to. */\n\t\tspecialization: z.number(),\n\t\t/** The trait's tier (Adept, Master, Grandmaster) as a value from 1-3.\n\t\t * Elite specializations also contain a tier 0 minor trait, describing which weapon the elite specialization gains access to. */\n\t\ttier: z.number(),\n\t\t/** Either Major or Minor depending on the trait's slot.\n\t\t * Minor traits are the ones given immediately when choosing a specialization. */\n\t\tslot: z.enum(['Major', 'Minor']),\n\t\t/** A list of tooltip facts associated with the trait itself. */\n\t\tfacts: z.array(Facts).optional(),\n\t\t/** A list of additions or changes to tooltip facts where there is interplay between traits. */\n\t\ttraited_facts: z.array(TraitedFacts).optional(),\n\t\t/** A list of skills which may be triggered by the trait. */\n\t\tskills: z.array(Skills).optional()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/worlds definition\n */\nexport const WorldsDTO = z.array(\n\tz.object({\n\t\t/** The world id.\n\t\t * The first digit of the id indicates the world's region. 1 is North America, 2 is Europe.\n\t\t * The second digit of the id currently correlates with the world's assigned language: 1 means French, 2 means German, and 3 means Spanish. */\n\t\tid: z.number(),\n\t\t/** The world name. */\n\t\tname: z.string(),\n\t\t/** The world population level. */\n\t\tpopulation: z.enum(['Low', 'Medium', 'High', 'VeryHigh', 'Full'])\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/mounts/skins definition.\n */\nexport const MountsSkinsDTO = z.array(\n\tz.object({\n\t\t/** The id of the mount skin. */\n\t\tid: z.number(),\n\t\t/** The name of the mount as it appears in-game. */\n\t\tname: z.string(),\n\t\t/** The full icon URL. */\n\t\ticon: z.string(),\n\t\t/** The mount type id for the given mount skin. Can be resolved against /v2/mounts/types */\n\t\tmount: z.string(),\n\t\t/** Each object contains a key-value pair for the dye. */\n\t\tdye_slots: z.array(\n\t\t\tz.object({\n\t\t\t\t/** Color id. Can be resolved against /v2/colors. */\n\t\t\t\tcolor_id: z.number(),\n\t\t\t\t/** Material description. */\n\t\t\t\tmaterial: z.string()\n\t\t\t})\n\t\t)\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/mounts/types definition.\n */\nexport const MountsTypesDTO = z.array(\n\tz.object({\n\t\t/** The id of the mount. */\n\t\tid: z.string(),\n\t\t/** The name of the mount type as it appears in-game. */\n\t\tname: z.string(),\n\t\t/** The mount skin a mount has when first obtained. Can be resolved against /v2/mounts/skins. */\n\t\tdefault_skin: z.number(),\n\t\t/** An array of mount skin ids. Can be resolved against /v2/mounts/skins. */\n\t\tskins: z.array(z.number()),\n\t\t/** Each object contains a key-value pair for the skill id and weapon slot. Can be resolved against /v2/skills. */\n\t\tskills: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The skill id. */\n\t\t\t\tid: z.number(),\n\t\t\t\t/** The skill slot. */\n\t\t\t\tslot: z.string()\n\t\t\t})\n\t\t)\n\t})\n);\n","import { z } from 'zod';\nimport { ItemAttributesGeneric } from '../account';\n\n/**\n * /v2/pvp/amulets definition.\n */\nexport const PvPAmuletsDTO = z.array(\n\tz.object({\n\t\t/** The id of the amulet. */\n\t\tid: z.number(),\n\t\t/** The name of the amulet. */\n\t\tname: z.string(),\n\t\t/** The icon uri for the amulet. */\n\t\ticon: z.string(),\n\t\t/** The list of stats provided by this PvP amulet. */\n\t\tattributes: ItemAttributesGeneric\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/pvp/games definition.\n */\nexport const PvPGamesDTO = z.array(\n\tz.object({\n\t\t/** The game's UUID. */\n\t\tid: z.string(),\n\t\t/** The map the match was played on, cross-referenced from /v2/maps. */\n\t\tmap_id: z.number(),\n\t\t/** A timestamp of when the match started. */\n\t\tstarted: z.string(),\n\t\t/** A timestamp of when the match ended. */\n\t\tended: z.string(),\n\t\t/** The result of the match. */\n\t\tresult: z.string(),\n\t\t/** The team the player was on during the match. */\n\t\tteam: z.string(),\n\t\t/** The profession the player was playing during the match. */\n\t\tprofession: z.string(),\n\t\t/** The ending scores for each team. */\n\t\tscores: z.object({\n\t\t\t/** Red team. */\n\t\t\tred: z.number(),\n\t\t\t/** Blue team. */\n\t\t\tblue: z.number()\n\t\t}),\n\t\t/** The type of game mode played. */\n\t\trating_type: z.enum(['Ranked', 'Unranked', 'None']),\n\t\t/** Change in rating as a result of the observed game. Note that number can be negative in the case of a loss. */\n\t\trating_change: z.number().optional(),\n\t\t/** Season id. Can be resolved against /v2/pvp/season. */\n\t\tseason: z.string().optional()\n\t})\n);\n","import { z } from 'zod';\n\nconst Skins = z.object({\n\t/** The skin id. */\n\tid: z.number(),\n\t/** The name of the skin. */\n\tname: z.string(),\n\t/** The icon url for the skin. */\n\ticon: z.string(),\n\t/** States if the skin is the default champion skin. */\n\tdefault: z.boolean(),\n\t/** Item ids which unlock the skin. Can be resolved against /v2/items. */\n\tunlock_items: z.array(z.number())\n});\n\n/**\n * /v2/pvp/heroes definition.\n */\nexport const PvPHeroesDTO = z.array(\n\tz.object({\n\t\t/** The id of the pvp heroes. */\n\t\tid: z.string(),\n\t\t/** The name of the pvp heroes. */\n\t\tname: z.string(),\n\t\t/** The flavor type describing the hero. */\n\t\ttype: z.string(),\n\t\t/** An object reflecting the champions stats under offense, defense, or speed. */\n\t\tstats: z.object({\n\t\t\t/** Offense. */\n\t\t\toffense: z.number(),\n\t\t\t/** Defense. */\n\t\t\tdefense: z.number(),\n\t\t\t/** Speed. */\n\t\t\tspeed: z.number()\n\t\t}),\n\t\t/** The overlay art url for that champion. */\n\t\toverlay: z.string(),\n\t\t/** The underlay art url for that champion. */\n\t\tunderlay: z.string(),\n\t\t/** The pvp hero skin. */\n\t\tskins: z.array(Skins)\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/pvp/ranks definition.\n */\nexport const PvPRanksDTO = z.array(\n\tz.object({\n\t\t/** The id of the pvp rank. */\n\t\tid: z.number(),\n\t\t/** The id of the unlocked finisher, can be resolved against /v2/finishers */\n\t\tfinisher_id: z.number(),\n\t\t/** The given name for the PvP rank. */\n\t\tname: z.string(),\n\t\t/** The icon uri for the Pvp rank. */\n\t\ticon: z.string(),\n\t\t/** The minimum PvP level required to be at this rank. */\n\t\tmin_rank: z.number(),\n\t\t/** The maximum PvP level required to be at this rank. */\n\t\tmax_rank: z.number(),\n\t\t/** The rank levels. */\n\t\tlevels: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The minimum PvP level required to be at this rank. */\n\t\t\t\tmin_rank: z.number(),\n\t\t\t\t/** The maximum PvP level required to be at this rank. */\n\t\t\t\tmax_rank: z.number(),\n\t\t\t\t/** The amount of PvP experience needed to go from the given minimum rank to maximum rank. */\n\t\t\t\tpoints: z.number()\n\t\t\t})\n\t\t)\n\t})\n);\n","import { z } from 'zod';\n\nconst Divisions = z.object({\n\t/** The division's name. */\n\tname: z.string(),\n\t/** Flags applying to the division. */\n\tflags: z.array(z.enum(['CanLosePoints', 'CanLoseTiers', 'Repeatable'])),\n\t/** Path to the large icon. */\n\tlarge_icon: z.string(),\n\t/** Path to the small icon. */\n\tsmall_icon: z.string(),\n\t/** Path to the pip icon. */\n\tpip_icon: z.string(),\n\t/** A list of tiers. */\n\ttiers: z.array(\n\t\tz.object({\n\t\t\t/** The number of pipes contained in each tier. */\n\t\t\tpoints: z.number()\n\t\t})\n\t)\n});\n\nconst Ranks = z.object({\n\t/** The rank's name. */\n\tname: z.string(),\n\t/** The rank's description. */\n\tdescription: z.string(),\n\t/** The full icon URL. */\n\ticon: z.string(),\n\t/** The full URL for the rank's overlay icon. */\n\toverlay: z.string(),\n\t/** The full URL for a small variant of the rank's overlay icon. */\n\toverlay_small: z.string(),\n\t/** The tiers of the rank. */\n\ttiers: z.array(\n\t\tz.object({\n\t\t\t/** The minimum PvP rating required for the tier. */\n\t\t\trating: z.number()\n\t\t})\n\t)\n});\n\nconst Settings = z.object({\n\t/** Setting name. NOTE: Broken, always empty. */\n\tname: z.string(),\n\t/** Duration setting. NOTE: Broken, always null. Supposed to be a number. */\n\tduration: z.null(),\n\t/** Indicates the primary scoring component. */\n\tscoring: z.string(),\n\t/** The ladder tiers. */\n\ttiers: z.array(\n\t\tz.object({\n\t\t\t/** Two numbers, a maximum, followed by minimum. */\n\t\t\trange: z.array(z.number()).length(2)\n\t\t})\n\t)\n});\n\nconst Scorings = z.object({\n\t/** The id for this scoring method, used as a reference in other endpoints. */\n\tid: z.string(),\n\t/** Which variable type the content is saved as. */\n\ttype: z.string(),\n\t/** Description of the scoring method (if any). */\n\tdescription: z.string(),\n\t/** Should represent the scoring method, such as \"wins\", \"losses\", and \"skill rating\". */\n\tname: z.string(),\n\t/** Will describe how the scoring is ordered. */\n\tordering: z.string()\n});\n\nconst Leaderboards = z.object({\n\t/** The leaderboard ladder. */\n\tladder: z\n\t\t.object({\n\t\t\t/** The ladder settings. */\n\t\t\tsettings: Settings,\n\t\t\t/** Array used as reference to select player/guild scoring method. */\n\t\t\tscorings: z.array(Scorings)\n\t\t})\n\t\t.optional()\n});\n\n/**\n * /v2/pvp/seasons definition.\n */\nexport const PvPSeasonDTO = z.array(\n\tz.object({\n\t\t/** The season's UUID. */\n\t\tid: z.string(),\n\t\t/** The season's name. */\n\t\tname: z.string(),\n\t\t/** ISO timestamp for season start. */\n\t\tstart: z.string(),\n\t\t/** ISO timestamp for season end. */\n\t\tend: z.string(),\n\t\t/** Whether the season is currently active. */\n\t\tactive: z.boolean(),\n\t\t/** A list of divisions. */\n\t\tdivisions: z.array(Divisions),\n\t\t/** Contains details about the season's ranks */\n\t\tranks: z.array(Ranks).optional(),\n\t\t/** Contains details on the current leaderboards. */\n\t\tleaderboards: Leaderboards\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/pvp/seasons/:id/leaderboards definition.\n */\nexport const PvPSeasonLeaderboardsDTO = z.array(\n\tz.object({\n\t\t/** Account name. */\n\t\tname: z.string(),\n\t\t/** Rank for the given player/guild. */\n\t\trank: z.number(),\n\t\t/** Guild id. NOTE: Almost never present. */\n\t\tid: z.string().optional(),\n\t\t/** (only for guild leaderboard) Name of the team. */\n\t\tteam: z.string().optional(),\n\t\t/** (only for guild leaderboard) Internal team id. */\n\t\tteam_id: z.number().optional(),\n\t\t/** Date at which the rank is reached. */\n\t\tdate: z.string(),\n\t\t/** Array of objects containing the id and values for scorings. */\n\t\tscores: z.array(\n\t\t\tz.object({\n\t\t\t\t/** Id for the scoring parameter. Can be compared to the values obtained from /v2/pvp/seasons/:id in the scorings array. */\n\t\t\t\tid: z.string(),\n\t\t\t\t/** Value for the given id. */\n\t\t\t\tvalue: z.number()\n\t\t\t})\n\t\t)\n\t})\n);\n\nexport const PvPSeasonLeaderboardRegionsDTO = z.array(\n\t/** The region id. */\n\tz.string()\n);\n","import { z } from 'zod';\n\nconst Current = z.object({\n\t/** Total points in the current ladder. */\n\ttotal_points: z.number(),\n\t/** 0-indexed and refers to the data returned by season ID. */\n\tdivision: z.number(),\n\t/** 0-indexed and refers to the data returned by season ID. */\n\ttier: z.number(),\n\t/** Current point count. */\n\tpoints: z.number(),\n\t/** The number of times the account has maxed out the \"Repeat\" division. */\n\trepeats: z.number(),\n\t/** The current rating level. For PvP season 5 and after only. */\n\trating: z.number().optional(),\n\t/** The current decay value. For PvP season 5 and after only. */\n\tdecay: z.number().optional()\n});\n\nconst Best = z.object({\n\t/** Total points in the current ladder. */\n\ttotal_points: z.number(),\n\t/** 0-indexed and refers to the data returned by season ID. */\n\tdivision: z.number(),\n\t/** 0-indexed and refers to the data returned by season ID. */\n\ttier: z.number(),\n\t/** Current point count. */\n\tpoints: z.number(),\n\t/** The number of times the account has maxed out the \"Repeat\" division. */\n\trepeats: z.number()\n});\n\n/**\n * /v2/pvp/standings definition.\n */\nexport const PvPStandingsDTO = z.array(\n\tz.object({\n\t\t/** Current standings. */\n\t\tcurrent: Current,\n\t\t/** Best standings. */\n\t\tbest: Best,\n\t\t/** The season ID. */\n\t\tseason_id: z.string()\n\t})\n);\n","import { z } from 'zod';\n\nconst WinLoss = z.object({\n\t/** The wins for the category. */\n\twins: z.number(),\n\t/** The losses for the category. */\n\tlosses: z.number(),\n\t/** The desertions for the category. */\n\tdesertions: z.number(),\n\t/** The byes for the category. */\n\tbyes: z.number(),\n\t/** The forfeit for the category. */\n\tforfeits: z.number()\n});\n\n/**\n * /v2/pvp/stats definition.\n */\nexport const PvPStatsDTO = z.object({\n\t/** The player's PvP rank. */\n\tpvp_rank: z.number(),\n\t/** The player's PvP rank points. */\n\tpvp_rank_points: z.number(),\n\t/** The number of times the player has levelled up since reaching rank 80. If they aren't rank 80 yet, it should be 0. */\n\tpvp_rank_rollovers: z.number(),\n\t/** A win/loss object (see below) containing stats from all matches ever played. */\n\taggregate: WinLoss,\n\t/** Contains a sub-object for each profession played in PvP, following the format of the win/loss object. */\n\tprofessions: z.record(z.string(), WinLoss),\n\t/** Contains a sub-object for each type of ladder (i.e. ranked, unranked), each containing a win/loss object. */\n\tladders: z.record(z.string(), WinLoss)\n});\n","import { z } from 'zod';\n\n/**\n * /v2/stories definition\n */\nexport const StoriesDTO = z.array(\n\tz.object({\n\t\t/** The id of the story. */\n\t\tid: z.number(),\n\t\t/**\n\t\t * The id for the story season.\n\t\t * Can be resolved against /v2/stories/seasons.\n\t\t */\n\t\tseason: z.string(),\n\t\t/** The name of the story. */\n\t\tname: z.string(),\n\t\t/** The description of the story. */\n\t\tdescription: z.string(),\n\t\t/** The (in-game, not real-world) date of the story. */\n\t\ttimeline: z.string(),\n\t\t/** The minimum level required for a character to begin this story. */\n\t\tlevel: z.number(),\n\t\t/** The order in which this story is displayed in the Story Journal. */\n\t\torder: z.number(),\n\t\t/** An array of chapter objects providing details about the chapters for this story. */\n\t\tchapters: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The name of the chapter. */\n\t\t\t\tname: z.string()\n\t\t\t})\n\t\t),\n\t\t/** When present, provides a list of races that are eligible to participate in this story. */\n\t\traces: z.array(z.string()).optional(),\n\t\t/** When present, provides a list of additional requirements for a character to participate in this story. */\n\t\tflags: z.array(z.string()).optional()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/stories/seasons definition\n */\nexport const StoriesSeasonsDTO = z.array(\n\tz.object({\n\t\t/** The id of the season. */\n\t\tid: z.string(),\n\t\t/** The name of the season. */\n\t\tname: z.string(),\n\t\t/** The order in which this season is displayed in the Story Journal. */\n\t\torder: z.number(),\n\t\t/** An array of story ids for the stories that belong to this season. */\n\t\tstories: z.array(z.number())\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/wvw/abilities definition\n */\nexport const WvWAbilitiesDTO = z.array(\n\tz.object({\n\t\t/** The id of the abilities.*/\n\t\tid: z.number(),\n\t\t/** The given name for the WvW ability.*/\n\t\tname: z.string(),\n\t\t/** The given description for the WvW ability.*/\n\t\tdescription: z.string(),\n\t\t/** The uri for the ability's icon.*/\n\t\ticon: z.string(),\n\t\t/** The WvW ranks.*/\n\t\tranks: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The cost in WvW experience points to purchase the ability.*/\n\t\t\t\tcost: z.number(),\n\t\t\t\t/** The effect given to players for obtaining the given ability rank.*/\n\t\t\t\teffect: z.string()\n\t\t\t})\n\t\t)\n\t})\n);\n","import { z } from 'zod';\n\nexport const Scores = z.object({\n\t/** Score of the red team. */\n\tred: z.number(),\n\t/** Score of the blue team. */\n\tblue: z.number(),\n\t/** Score of the green team. */\n\tgreen: z.number()\n});\n\n/**\n * /v2/wvw/matches definition\n */\nexport const WvWMatchesDTO = z.array(\n\tz.object({\n\t\t/** The WvW match id. */\n\t\tid: z.string(),\n\t\t/** The starting time of the matchup. (ISO-8601 Standard) */\n\t\tstart_time: z.string(),\n\t\t/** The ending time of the matchup. (ISO-8601 Standard) */\n\t\tend_time: z.string(),\n\t\t/** An object containing the score of the three servers. */\n\t\tscores: Scores,\n\t\t/** An object containing the IDs of the three primary matchup worlds. */\n\t\tworlds: Scores,\n\t\t/** n object containing an array of objects with the world IDs of the three servers. */\n\t\tall_worlds: z.record(z.string(), z.array(z.number())),\n\t\t/** An object containing the total deaths of the three servers. */\n\t\tdeaths: Scores,\n\t\t/** An object containing the total kills of the three servers. */\n\t\tkills: Scores,\n\t\t/** An object containing the victory points of the three server. */\n\t\tvictory_points: Scores,\n\t\t/** A list of objects containing detailed information about each of the four maps. */\n\t\tmaps: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The map id. */\n\t\t\t\tid: z.number(),\n\t\t\t\t/** The identifier for the map. Can be either RedHome, GreenHome or BlueHome for the borderlands or Center for Eternal Battlegrounds. */\n\t\t\t\ttype: z.string(),\n\t\t\t\t/** An object containing the score of the three servers for only the specified map. */\n\t\t\t\tscores: Scores,\n\t\t\t\t/** An object containing the total kills of the three servers for only the specified map. */\n\t\t\t\tkills: Scores,\n\t\t\t\t/** An object containing the total deaths of the three servers for only the specified map. */\n\t\t\t\tdeaths: Scores,\n\t\t\t\t/** A list of objective objects for this map. Each object contains the following properties: */\n\t\t\t\tobjectives: z.array(\n\t\t\t\t\tz.object({\n\t\t\t\t\t\t/** The objective id. */\n\t\t\t\t\t\tid: z.string(),\n\t\t\t\t\t\t/** The objective type. */\n\t\t\t\t\t\ttype: z.enum(['Spawn', 'Camp', 'Ruins', 'Tower', 'Keep', 'Castle', 'Mercenary']),\n\t\t\t\t\t\t/** The current owner of the objective. */\n\t\t\t\t\t\towner: z.enum(['Red', 'Green', 'Blue', 'Neutral']),\n\t\t\t\t\t\t/** The time at which this objective was last captured by a server. (ISO-8601 Standard) */\n\t\t\t\t\t\tlast_flipped: z.string(),\n\t\t\t\t\t\t/** The guild id of the guild currently claiming the objective, or null if not claimed. (Not present for unclaimable objectives.) */\n\t\t\t\t\t\tclaimed_by: z.union([z.string(), z.null()]).optional(),\n\t\t\t\t\t\t/** The time the objective was claimed by the claimed_by guild (ISO-8601 Standard), or null if not claimed. (Not present for unclaimable objectives.) */\n\t\t\t\t\t\tclaimed_at: z.union([z.string(), z.null()]).optional(),\n\t\t\t\t\t\t/** The amount of points per tick the given objective yields. */\n\t\t\t\t\t\tpoints_tick: z.number(),\n\t\t\t\t\t\t/** The amount of points awarded for capturing the objective. */\n\t\t\t\t\t\tpoints_capture: z.number(),\n\t\t\t\t\t\t/** An array of ids. Can be resolved against /v2/guild/upgrades, showing which guild upgrades are currently slotted. */\n\t\t\t\t\t\tguild_upgrades: z.array(z.number()).optional(),\n\t\t\t\t\t\t/** The total amount of yak shipments delivered to the objective. Not limited to the shipments within the current tier only. */\n\t\t\t\t\t\tyaks_delivered: z.number().optional()\n\t\t\t\t\t})\n\t\t\t\t),\n\t\t\t\t/**\n\t\t\t\t * A list of all bonuses being granted by this map.\n\t\t\t\t * If no player team owns a bonus from the map, this list is empty.\n\t\t\t\t */\n\t\t\t\tbonuses: z.array(\n\t\t\t\t\tz.object({\n\t\t\t\t\t\t/** A shorthand name for the bonus. */\n\t\t\t\t\t\ttype: z.literal('Bloodlust'),\n\t\t\t\t\t\t/** The color representing which world group owns the bloodlust. */\n\t\t\t\t\t\towner: z.string()\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t})\n\t\t),\n\t\t/** A list of skirmishes. */\n\t\tskirmishes: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The skirmish id . */\n\t\t\t\tid: z.number(),\n\t\t\t\t/** Object containing total scores for each team color. */\n\t\t\t\tscores: Scores,\n\t\t\t\t/** Contains the map specific scores for the specific skirmish. */\n\t\t\t\tmap_scores: z.array(\n\t\t\t\t\tz.object({\n\t\t\t\t\t\t/** Which map is being looked at. */\n\t\t\t\t\t\ttype: z.enum(['Center', 'RedHome', 'BlueHome', 'GreenHome']),\n\t\t\t\t\t\t/** Object containing total scores for each team color on the selected map. */\n\t\t\t\t\t\tscores: Scores\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t})\n\t\t)\n\t})\n);\n","import { z } from 'zod';\nimport { Scores } from './wvw.matches.dto';\n\n/**\n * /v2/wvw/matches/overview definition\n */\nexport const WvWMatchesOverviewDTO = z.object({\n\t/** The WvW match id. */\n\tid: z.string(),\n\t/** The starting time of the matchup. (ISO-8601 Standard) */\n\tworlds: Scores,\n\t/** The ending time of the matchup. (ISO-8601 Standard) */\n\tall_worlds: z.record(z.enum(['red', 'blue', 'green']), z.array(z.number())),\n\t/** An object containing the score of the three servers. */\n\tstart_time: z.string(),\n\t/** An object containing the IDs of the three primary matchup worlds. */\n\tend_time: z.string()\n});\n","import { z } from 'zod';\nimport { Scores } from './wvw.matches.dto';\n\n/**\n * /v2/wvw/matches/scores definition\n */\nexport const WvWMatchesScoresDTO = z.object({\n\t/** The WvW match id. */\n\tid: z.string(),\n\t/** An object containing the score of the three servers. */\n\tscores: Scores,\n\t/** A list of objects containing detailed information about each of the four maps. */\n\tmaps: z.array(\n\t\tz.object({\n\t\t\t/** The map id. */\n\t\t\tid: z.number(),\n\t\t\t/** The identifier for the map. Can be either RedHome, GreenHome or BlueHome for the borderlands or Center for Eternal Battlegrounds. */\n\t\t\ttype: z.string(),\n\t\t\t/** An object containing the score of the three servers for only the specified map. */\n\t\t\tscores: Scores\n\t\t})\n\t),\n\t/** A list of skirmishes. */\n\tskirmishes: z.array(\n\t\tz.object({\n\t\t\t/** The skirmish id . */\n\t\t\tid: z.number(),\n\t\t\t/** Object containing total scores for each team color. */\n\t\t\tscores: Scores,\n\t\t\t/** Contains the map specific scores for the specific skirmish. */\n\t\t\tmap_scores: z.array(\n\t\t\t\tz.object({\n\t\t\t\t\t/** Which map is being looked at. */\n\t\t\t\t\ttype: z.enum(['Center', 'RedHome', 'BlueHome', 'GreenHome']),\n\t\t\t\t\t/** Object containing total scores for each team color on the selected map. */\n\t\t\t\t\tscores: Scores\n\t\t\t\t})\n\t\t\t)\n\t\t})\n\t)\n});\n","import { z } from 'zod';\nimport { Scores } from './wvw.matches.dto';\n\n/**\n * /v2/wvw/matches/stats definition\n */\nexport const WvWMatchesStatsDTO = z.object({\n\t/** The WvW match id. */\n\tid: z.string(),\n\t/** An object containing the total deaths of the three servers. */\n\tdeaths: Scores,\n\t/** An object containing the total kills of the three servers. */\n\tkills: Scores,\n\t/** A list of objects containing detailed information about each of the four maps. */\n\tmaps: z.array(\n\t\tz.object({\n\t\t\t/** The map id. */\n\t\t\tid: z.number(),\n\t\t\t/** The identifier for the map. Can be either RedHome, GreenHome or BlueHome for the borderlands or Center for Eternal Battlegrounds. */\n\t\t\ttype: z.string(),\n\t\t\t/** An object containing the total deaths of the three servers for only the specified map. */\n\t\t\tdeaths: Scores\n\t\t})\n\t)\n});\n","import { z } from 'zod';\n\n/**\n * /v2/wvw/objectives definition\n */\nexport const WvWObjectivesDTO = z.array(\n\tz.object({\n\t\t/** The objective id. */\n\t\tid: z.string(),\n\t\t/** The name of the objective. */\n\t\tname: z.string(),\n\t\t/** The type of the objective. */\n\t\ttype: z.enum(['Camp', 'Castle', 'Keep', 'Mercenary', 'Tower', 'Ruins', 'Resource', 'Generic', 'Spawn']),\n\t\t/** The map sector the objective can be found in. Refer to /v2/continents. */\n\t\tsector_id: z.number(),\n\t\t/** The ID of the map that this objective can be found on. */\n\t\tmap_id: z.number(),\n\t\t/** The map that this objective can be found on. */\n\t\tmap_type: z.enum(['GreenHome', 'BlueHome', 'RedHome', 'Center', 'EdgeOfTheMist']),\n\t\t/** An array of three numbers representing the X, Y and Z coordinates of the objectives marker on the map. */\n\t\tcoord: z.array(z.number()).length(3),\n\t\t/** An array of two numbers representing the X and Y coordinates of the sector centroid. */\n\t\tlabel_coord: z.array(z.number()).length(2),\n\t\t/** The icon link. */\n\t\tmarker: z.string(),\n\t\t/** The chat code for the observed objective. */\n\t\tchat_link: z.string(),\n\t\t/** The upgrade id. Can be resolved against /v2/wvw/upgrades. */\n\t\tupgrade_id: z.number().optional()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/wvw/ranks definition\n */\nexport const WvWRanksDTO = z.array(\n\tz.object({\n\t\t/** The id of the rank. */\n\t\tid: z.number(),\n\t\t/** The given title for the WvW rank. */\n\t\ttitle: z.string(),\n\t\t/** The minimum WvW level required to be at this rank. */\n\t\tmin_rank: z.number()\n\t})\n);\n","import { z } from 'zod';\n\n/**\n * /v2/wvw/upgrades definition.\n */\nexport const WvWUpgradesDTO = z.array(\n\tz.object({\n\t\t/** The upgrade id. */\n\t\tid: z.number(),\n\t\t/** The upgrade tiers. */\n\t\ttiers: z.array(\n\t\t\tz.object({\n\t\t\t\t/** The name of the upgrade tier. */\n\t\t\t\tname: z.string(),\n\t\t\t\t/** The number of required yaks. */\n\t\t\t\tyaks_required: z.number(),\n\t\t\t\t/** The upgrades in each tier. */\n\t\t\t\tupgrades: z.array(\n\t\t\t\t\tz.object({\n\t\t\t\t\t\t/** The name of the upgrade tier. */\n\t\t\t\t\t\tname: z.string(),\n\t\t\t\t\t\t/** The given description for this upgrade. */\n\t\t\t\t\t\tdescription: z.string(),\n\t\t\t\t\t\t/** The url/image link for the upgrade's icon. */\n\t\t\t\t\t\ticon: z.string()\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t})\n\t\t)\n\t})\n);\n","export interface Endpoint {\n\tpath: `v2/${string}`;\n\ttokenRequired: boolean;\n}\n\ntype SubEndpoint = Record<string, Endpoint>;\n\nexport const endpoints = {\n\taccount: {\n\t\tbase: {\n\t\t\tpath: 'v2/account',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tachievements: {\n\t\t\tpath: 'v2/account/achievements',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tbank: {\n\t\t\tpath: 'v2/account/bank',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tbuildStorage: {\n\t\t\tpath: 'v2/account/buildstorage?ids=all',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tdailyCrafting: {\n\t\t\tpath: 'v2/account/dailycrafting',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tdungeons: {\n\t\t\tpath: 'v2/account/dungeons',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tdyes: {\n\t\t\tpath: 'v2/account/dyes',\n\t\t\ttokenRequired: true\n\t\t},\n\t\temotes: {\n\t\t\tpath: 'v2/account/emotes',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tfinishers: {\n\t\t\tpath: 'v2/account/finishers',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tgliders: {\n\t\t\tpath: 'v2/account/gliders',\n\t\t\ttokenRequired: true\n\t\t},\n\t\thomeCats: {\n\t\t\tpath: 'v2/account/home/cats',\n\t\t\ttokenRequired: true\n\t\t},\n\t\thomeNodes: {\n\t\t\tpath: 'v2/account/home/nodes',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tinventory: {\n\t\t\tpath: 'v2/account/inventory',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tjadebots: {\n\t\t\tpath: 'v2/account/jadebots',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tlegendaryArmory: {\n\t\t\tpath: 'v2/account/legendaryarmory',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tluck: {\n\t\t\tpath: 'v2/account/luck',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tmailCarriers: {\n\t\t\tpath: 'v2/account/mailcarriers',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tmapChests: {\n\t\t\tpath: 'v2/account/mapchests',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tmasteries: {\n\t\t\tpath: 'v2/account/masteries',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tmasteryPoints: {\n\t\t\tpath: 'v2/account/mastery/points',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tmaterials: {\n\t\t\tpath: 'v2/account/materials',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tminis: {\n\t\t\tpath: 'v2/account/minis',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tmountsSkins: {\n\t\t\tpath: 'v2/account/mounts/skins',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tmountsTypes: {\n\t\t\tpath: 'v2/account/mounts/types',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tnovelties: {\n\t\t\tpath: 'v2/account/novelties',\n\t\t\ttokenRequired: true\n\t\t},\n\t\toutfits: {\n\t\t\tpath: 'v2/account/outfits',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tprogression: {\n\t\t\tpath: 'v2/account/progression',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tpvpHeroes: {\n\t\t\tpath: 'v2/account/pvp/heroes',\n\t\t\ttokenRequired: true\n\t\t},\n\t\traids: {\n\t\t\tpath: 'v2/account/raids',\n\t\t\ttokenRequired: true\n\t\t},\n\t\trecipes: {\n\t\t\tpath: 'v2/account/recipes',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tskiffs: {\n\t\t\tpath: 'v2/account/skiffs',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tskins: {\n\t\t\tpath: 'v2/account/skins',\n\t\t\ttokenRequired: true\n\t\t},\n\t\ttitles: {\n\t\t\tpath: 'v2/account/titles',\n\t\t\ttokenRequired: true\n\t\t},\n\t\twallet: {\n\t\t\tpath: 'v2/account/wallet',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tworldBosses: {\n\t\t\tpath: 'v2/account/worldbosses',\n\t\t\ttokenRequired: true\n\t\t}\n\t},\n\tachievements: {\n\t\tcategoryIds: {\n\t\t\tpath: 'v2/achievements/categories',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tcategories: {\n\t\t\tpath: 'v2/achievements/categories?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tgroupsAll: {\n\t\t\tpath: 'v2/achievements/groups',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tgroupsById: {\n\t\t\tpath: 'v2/achievements/groups/$(id)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tbackstory: {\n\t\tanswersAll: {\n\t\t\tpath: 'v2/backstory/answers',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tanswersById: {\n\t\t\tpath: 'v2/backstory/answers?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tquestionsAll: {\n\t\t\tpath: 'v2/backstory/questions',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tquestionsById: {\n\t\t\tpath: 'v2/backstory/questions?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tbuild: {\n\t\tpath: 'v2/build',\n\t\ttokenRequired: false\n\t},\n\tcharacters: {\n\t\tbase: {\n\t\t\tpath: 'v2/characters',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tbackstory: {\n\t\t\tpath: 'v2/characters/$(id)/backstory',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tbuildTabs: {\n\t\t\tpath: 'v2/characters/$(id)/buildtabs?tabs=$(tabs)',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tcore: {\n\t\t\tpath: 'v2/characters/$(id)/core',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tcrafting: {\n\t\t\tpath: 'v2/characters/$(id)/crafting',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tequipment: {\n\t\t\tpath: 'v2/characters/$(id)/equipment',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tequipmentTabsById: {\n\t\t\tpath: 'v2/characters/$(id)/equipmenttabs?tabs=$(tabs)',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tequipmentTabActive: {\n\t\t\tpath: 'v2/characters/$(id)/equipmenttabs/active',\n\t\t\ttokenRequired: true\n\t\t},\n\t\theroPoints: {\n\t\t\tpath: 'v2/characters/$(id)/heropoints',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tinventory: {\n\t\t\tpath: 'v2/characters/$(id)/inventory',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tquests: {\n\t\t\tpath: 'v2/characters/$(id)/quests',\n\t\t\ttokenRequired: true\n\t\t},\n\t\trecipes: {\n\t\t\tpath: 'v2/characters/$(id)/recipes',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tsab: {\n\t\t\tpath: 'v2/characters/$(id)/sab',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tskills: {\n\t\t\tpath: 'v2/characters/$(id)/skills',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tspecializations: {\n\t\t\tpath: 'v2/characters/$(id)/specializations',\n\t\t\ttokenRequired: true\n\t\t},\n\t\ttraining: {\n\t\t\tpath: 'v2/characters/$(id)/training',\n\t\t\ttokenRequired: true\n\t\t}\n\t},\n\tcolors: {\n\t\tall: {\n\t\t\tpath: 'v2/colors',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/colors?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tcommerce: {\n\t\tdelivery: {\n\t\t\tpath: 'v2/commerce/delivery',\n\t\t\ttokenRequired: true\n\t\t},\n\t\texchange: {\n\t\t\tpath: 'v2/commerce/exchange/$(type)?quantity=$(quantity)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tlistings: {\n\t\t\tpath: 'v2/commerce/listings?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tprices: {\n\t\t\tpath: 'v2/commerce/prices?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\ttransactions: {\n\t\t\tpath: 'v2/commerce/transactions/$(status)/$(type)',\n\t\t\ttokenRequired: true\n\t\t}\n\t},\n\tcontinents: {\n\t\tcore: {\n\t\t\tpath: 'v2/continents',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tcontinents: {\n\t\t\tpath: 'v2/continents?ids=$(continents)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tfloors: {\n\t\t\tpath: 'v2/continents/$(continents)/floors?ids=$(floors)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tregions: {\n\t\t\tpath: 'v2/continents/$(continents)/floors/$(floors)/regions?ids=$(regions)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tmaps: {\n\t\t\tpath: 'v2/continents/$(continents)/floors/$(floors)/regions/$(regions)/maps?ids=$(maps)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tcreateSubtoken: {\n\t\tnoUrl: {\n\t\t\tpath: 'v2/createsubtoken?expire=$(expire)&permissions=$(permissions)',\n\t\t\ttokenRequired: true\n\t\t},\n\t\turl: {\n\t\t\tpath: 'v2/createsubtoken?expire=$(expire)&permissions=$(permissions)&urls=$(urls)',\n\t\t\ttokenRequired: true\n\t\t}\n\t},\n\tcurrencies: {\n\t\tall: {\n\t\t\tpath: 'v2/currencies',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/currencies?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tdailyCrafting: {\n\t\tpath: 'v2/dailycrafting',\n\t\ttokenRequired: false\n\t},\n\tdungeons: {\n\t\tall: {\n\t\t\tpath: 'v2/dungeons',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/dungeons?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\temblem: {\n\t\tpath: 'v2/emblem/$(type)?ids=$(ids)',\n\t\ttokenRequired: false\n\t},\n\temotes: {\n\t\tall: {\n\t\t\tpath: 'v2/emotes',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/emotes?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tfiles: {\n\t\tall: {\n\t\t\tpath: 'v2/files',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/files?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tfinishers: {\n\t\tall: {\n\t\t\tpath: 'v2/finishers',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/finishers?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tgliders: {\n\t\tall: {\n\t\t\tpath: 'v2/gliders',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/gliders?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tpaginated: {\n\t\t\tpath: 'v2/gliders?ids=$(ids)&page=$(page)&page_size=$(page_size)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tguild: {\n\t\tcore: {\n\t\t\tpath: 'v2/guild/$(id)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tlog: {\n\t\t\tpath: 'v2/guild/$(id)/log?since=$(since)',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tmembers: {\n\t\t\tpath: 'v2/guild/$(id)/members',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tranks: {\n\t\t\tpath: 'v2/guild/$(id)/ranks',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tstash: {\n\t\t\tpath: 'v2/guild/$(id)/stash',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tstorage: {\n\t\t\tpath: 'v2/guild/$(id)/storage',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tteams: {\n\t\t\tpath: 'v2/guild/$(id)/teams',\n\t\t\ttokenRequired: true\n\t\t},\n\t\ttreasury: {\n\t\t\tpath: 'v2/guild/$(id)/treasury',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tupgrades: {\n\t\t\tpath: 'v2/guild/$(id)/upgrades',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tupgradesInfo: {\n\t\t\tpath: 'v2/guild/upgrades?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tpermissionsAll: {\n\t\t\tpath: 'v2/guild/permissions',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tpermissionsById: {\n\t\t\tpath: 'v2/guild/permissions?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tsearch: {\n\t\t\tpath: 'v2/guild/search?name=$(name)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\thome: {\n\t\tcats: {\n\t\t\tpath: 'v2/home/cats?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tnodes: {\n\t\t\tpath: 'v2/home/nodes?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\titems: {\n\t\tall: {\n\t\t\tpath: 'v2/items',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/items?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\titemstats: {\n\t\tall: {\n\t\t\tpath: 'v2/itemstats',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/itemstats?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tjadebots: {\n\t\tall: {\n\t\t\tpath: 'v2/jadebots',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/jadebots?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tlegendaryArmory: {\n\t\tall: {\n\t\t\tpath: 'v2/legendaryarmory',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/legendaryarmory?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tlegends: {\n\t\tall: {\n\t\t\tpath: 'v2/legends',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/legends?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tmailCarriers: {\n\t\tall: {\n\t\t\tpath: 'v2/mailcarriers',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/mailcarriers?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tmapChests: {\n\t\tpath: 'v2/mapchests',\n\t\ttokenRequired: false\n\t},\n\tmaps: {\n\t\tall: {\n\t\t\tpath: 'v2/maps',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/maps?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tmasteries: {\n\t\tall: {\n\t\t\tpath: 'v2/masteries',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/masteries?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tmaterials: {\n\t\tall: {\n\t\t\tpath: 'v2/materials',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/materials?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tminis: {\n\t\tall: {\n\t\t\tpath: 'v2/minis',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/minis?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tmountsSkins: {\n\t\tall: {\n\t\t\tpath: 'v2/mounts/skins',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/mounts/skins?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tmountsTypes: {\n\t\tall: {\n\t\t\tpath: 'v2/mounts/types',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/mounts/types?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tnovelties: {\n\t\tall: {\n\t\t\tpath: 'v2/novelties',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/novelties?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\toutfits: {\n\t\tall: {\n\t\t\tpath: 'v2/outfits',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/outfits?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tpets: {\n\t\tall: {\n\t\t\tpath: 'v2/pets',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/pets?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tprofessions: {\n\t\tall: {\n\t\t\tpath: 'v2/professions',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/professions?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tpvp: {\n\t\tamuletsAll: {\n\t\t\tpath: 'v2/pvp/amulets',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tamuletsById: {\n\t\t\tpath: 'v2/pvp/amulets?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tgamesAll: {\n\t\t\tpath: 'v2/pvp/games',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tgamesById: {\n\t\t\tpath: 'v2/pvp/games?ids=$(ids)',\n\t\t\ttokenRequired: true\n\t\t},\n\t\theroesAll: {\n\t\t\tpath: 'v2/pvp/heroes',\n\t\t\ttokenRequired: false\n\t\t},\n\t\theroesById: {\n\t\t\tpath: 'v2/pvp/heroes?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tranksAll: {\n\t\t\tpath: 'v2/pvp/ranks',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tranksById: {\n\t\t\tpath: 'v2/pvp/ranks?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tseasonsAll: {\n\t\t\tpath: 'v2/pvp/seasons',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tseasonsById: {\n\t\t\tpath: 'v2/pvp/seasons?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tleaderboards: {\n\t\t\tpath: 'v2/pvp/seasons/$(id)/leaderboards/$(type)/$(region)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tleaderboardsNoType: {\n\t\t\tpath: 'v2/pvp/seasons/$(id)/leaderboards',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tstandings: {\n\t\t\tpath: 'v2/pvp/standings',\n\t\t\ttokenRequired: true\n\t\t},\n\t\tstats: {\n\t\t\tpath: 'v2/pvp/stats',\n\t\t\ttokenRequired: true\n\t\t}\n\t},\n\tquaggans: {\n\t\tall: {\n\t\t\tpath: 'v2/quaggans',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/quaggans?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tquests: {\n\t\tall: {\n\t\t\tpath: 'v2/quests',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/quests?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\traces: {\n\t\tall: {\n\t\t\tpath: 'v2/races',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/races?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\traids: {\n\t\tall: {\n\t\t\tpath: 'v2/raids',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/raids?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\trecipes: {\n\t\tbyId: {\n\t\t\t/**\n\t\t\t * TODO: The hardcoded schema could use some work\n\t\t\t */\n\t\t\tpath: 'v2/recipes?ids=$(ids)&v=2022-03-09T02:00:00.000Z',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tall: {\n\t\t\tpath: 'v2/recipes',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tsearch: {\n\t\t\tpath: 'v2/recipes/search?$(type)=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tskiffs: {\n\t\tall: {\n\t\t\tpath: 'v2/skiffs',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/skiffs?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tskills: {\n\t\tpath: 'v2/skills?ids=$(ids)',\n\t\ttokenRequired: false\n\t},\n\tskins: {\n\t\tall: {\n\t\t\tpath: 'v2/skins',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/skins?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tspecializations: {\n\t\tall: {\n\t\t\tpath: 'v2/specializations',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/specializations?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tstories: {\n\t\tall: {\n\t\t\tpath: 'v2/stories',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/stories?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tseasons: {\n\t\tall: {\n\t\t\tpath: 'v2/stories/seasons',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/stories/seasons?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\ttitles: {\n\t\tall: {\n\t\t\tpath: 'v2/titles',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/titles?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\ttokenInfo: {\n\t\tpath: 'v2/tokeninfo',\n\t\ttokenRequired: true\n\t},\n\ttraits: {\n\t\tall: {\n\t\t\tpath: 'v2/traits',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/traits?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\tworldBosses: {\n\t\tpath: 'v2/worldbosses',\n\t\ttokenRequired: false\n\t},\n\tworlds: {\n\t\tall: {\n\t\t\tpath: 'v2/worlds',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tbyId: {\n\t\t\tpath: 'v2/worlds?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t}\n\t},\n\twvw: {\n\t\tabilities: {\n\t\t\tpath: 'v2/wvw/abilities',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tabilitiesById: {\n\t\t\tpath: 'v2/wvw/abilities?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tmatches: {\n\t\t\tpath: 'v2/wvw/matches',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tmatchesById: {\n\t\t\tpath: 'v2/wvw/matches?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tmatchesByWorld: {\n\t\t\tpath: 'v2/wvw/matches/$(type)?world=$(world)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tobjectives: {\n\t\t\tpath: 'v2/wvw/objectives',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tobjectivesById: {\n\t\t\tpath: 'v2/wvw/objectives?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tranks: {\n\t\t\tpath: 'v2/wvw/ranks',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tranksById: {\n\t\t\tpath: 'v2/wvw/ranks?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tupgradesById: {\n\t\t\tpath: 'v2/wvw/upgrades?ids=$(ids)',\n\t\t\ttokenRequired: false\n\t\t},\n\t\tupgradesAll: {\n\t\t\tpath: 'v2/wvw/upgrades',\n\t\t\ttokenRequired: false\n\t\t}\n\t}\n} satisfies Record<string, Endpoint | SubEndpoint>;\n","import { ApiBase } from '../../base/apiBase';\nimport {\n\tAccountAchievementsDTO,\n\tAccountBankDTO,\n\tAccountBuildStorageDTO,\n\tAccountDTO,\n\tAccountDailyCraftingDTO,\n\tAccountDungeonsDTO,\n\tAccountDyesDTO,\n\tAccountEmotesDTO,\n\tAccountFinishersDTO,\n\tAccountGlidersDTO,\n\tAccountHomeCatsDTO,\n\tAccountHomeNodesDTO,\n\tAccountInventoryDTO,\n\tAccountJadebotsDTO,\n\tAccountLegendaryArmoryDTO,\n\tAccountLuckDTO,\n\tAccountMailCarriersDTO,\n\tAccountMapChestsDTO,\n\tAccountMasteriesDTO,\n\tAccountMasteryPointsDTO,\n\tAccountMaterialsDTO,\n\tAccountMinisDTO,\n\tAccountMountSkinsDTO,\n\tAccountMountTypesDTO,\n\tAccountNoveltiesDTO,\n\tAccountOutfitsDTO,\n\tAccountProgressionDTO,\n\tAccountPvpHeroesDTO,\n\tAccountRaidsDTO,\n\tAccountRecipesDTO,\n\tAccountSkiffsDTO,\n\tAccountSkinsDTO,\n\tAccountTitlesDTO,\n\tAccountWalletDTO,\n\tAccountWorldBossesDTO\n} from '../../models';\nimport { endpoints } from '../endpoints';\n\n/**\n * /v2/account Api\n */\nexport class AccountApi extends ApiBase {\n\t/**\n\t * Returns information about player accounts.\n\t */\n\tasync get() {\n\t\treturn await this.buildRequest<typeof AccountDTO>(endpoints.account.base, {}, AccountDTO);\n\t}\n\n\t/**\n\t * Returns an account's progress towards all their achievements.\n\t */\n\tasync getAchievements() {\n\t\treturn await this.buildRequest<typeof AccountAchievementsDTO>(\n\t\t\tendpoints.account.achievements,\n\t\t\t{},\n\t\t\tAccountAchievementsDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns the items stored in a player's vault (not including material storage).\n\t * If null, the slot is empty.\n\t */\n\tasync getBank() {\n\t\treturn await this.buildRequest<typeof AccountBankDTO>(endpoints.account.bank, {}, AccountBankDTO);\n\t}\n\n\t/**\n\t * Returns the templates stored in a player's build storage.\n\t */\n\tasync getBuildStorage() {\n\t\treturn await this.buildRequest<typeof AccountBuildStorageDTO>(\n\t\t\tendpoints.account.buildStorage,\n\t\t\t{},\n\t\t\tAccountBuildStorageDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about time-gated recipes that have been crafted by the account since daily-reset.\n\t */\n\tasync getDailyCrafts() {\n\t\treturn await this.buildRequest<typeof AccountDailyCraftingDTO>(\n\t\t\tendpoints.account.dailyCrafting,\n\t\t\t{},\n\t\t\tAccountDailyCraftingDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns the dungeons completed since daily dungeon reset.\n\t */\n\tasync getDungeons() {\n\t\treturn await this.buildRequest<typeof AccountDungeonsDTO>(endpoints.account.dungeons, {}, AccountDungeonsDTO);\n\t}\n\n\t/**\n\t * Returns the unlocked dyes of the account.\n\t */\n\tasync getDyes() {\n\t\treturn await this.buildRequest<typeof AccountDyesDTO>(endpoints.account.dyes, {}, AccountDyesDTO);\n\t}\n\n\t/**\n\t * Returns the player's unlocked emotes.\n\t */\n\tasync getEmotes() {\n\t\treturn await this.buildRequest<typeof AccountEmotesDTO>(endpoints.account.emotes, {}, AccountEmotesDTO);\n\t}\n\n\t/**\n\t * Returns information about finishers that are unlocked for an account.\n\t */\n\tasync getFinishers() {\n\t\treturn await this.buildRequest<typeof AccountFinishersDTO>(\n\t\t\tendpoints.account.finishers,\n\t\t\t{},\n\t\t\tAccountFinishersDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about gliders that are unlocked for an account.\n\t */\n\tasync getGliders() {\n\t\treturn await this.buildRequest<typeof AccountGlidersDTO>(endpoints.account.gliders, {}, AccountGlidersDTO);\n\t}\n\n\t/**\n\t * Returns information about unlocked home instance nodes.\n\t */\n\tasync getHomeNodes() {\n\t\treturn await this.buildRequest<typeof AccountHomeNodesDTO>(\n\t\t\tendpoints.account.homeNodes,\n\t\t\t{},\n\t\t\tAccountHomeNodesDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about unlocked home instance cats.\n\t */\n\tasync getHomeCats() {\n\t\treturn await this.buildRequest<typeof AccountHomeCatsDTO>(endpoints.account.homeCats, {}, AccountHomeCatsDTO);\n\t}\n\n\t/**\n\t * Returns the shared inventory slots in an account.\n\t * If null, the slot is empty\n\t */\n\tasync getInventory() {\n\t\treturn await this.buildRequest<typeof AccountInventoryDTO>(\n\t\t\tendpoints.account.inventory,\n\t\t\t{},\n\t\t\tAccountInventoryDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns the unlocked Jade Bot skins of the account.\n\t */\n\tasync getJadebots() {\n\t\treturn await this.buildRequest<typeof AccountJadebotsDTO>(endpoints.account.jadebots, {}, AccountJadebotsDTO);\n\t}\n\n\t/**\n\t * Returns information about the Legendary Armory items that are unlocked for an account.\n\t */\n\tasync getLegendaryArmory() {\n\t\treturn await this.buildRequest<typeof AccountLegendaryArmoryDTO>(\n\t\t\tendpoints.account.legendaryArmory,\n\t\t\t{},\n\t\t\tAccountLegendaryArmoryDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns the total amount of luck consumed on an account.\n\t */\n\tasync getLuck() {\n\t\treturn await this.buildRequest<typeof AccountLuckDTO>(endpoints.account.luck, {}, AccountLuckDTO);\n\t}\n\n\t/**\n\t * Returns information about mail carriers that are unlocked for an account.\n\t */\n\tasync getMailCarriers() {\n\t\treturn await this.buildRequest<typeof AccountMailCarriersDTO>(\n\t\t\tendpoints.account.mailCarriers,\n\t\t\t{},\n\t\t\tAccountMailCarriersDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about Hero's Choice Chests acquired by the account since daily-reset.\n\t */\n\tasync getMapChests() {\n\t\treturn await this.buildRequest<typeof AccountMapChestsDTO>(\n\t\t\tendpoints.account.mapChests,\n\t\t\t{},\n\t\t\tAccountMapChestsDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about masteries that are unlocked for an account.\n\t * A tallied up total of the account's mastery points can be found at /v2/account/mastery/points.\n\t */\n\tasync getMasteries() {\n\t\treturn await this.buildRequest<typeof AccountMasteriesDTO>(\n\t\t\tendpoints.account.masteries,\n\t\t\t{},\n\t\t\tAccountMasteriesDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about the total amount of mastery points that are unlocked for an account.\n\t * A detailed mastery track completion break down is available at /v2/account/masteries.\n\t */\n\tasync getMasteryPoints() {\n\t\treturn await this.buildRequest<typeof AccountMasteryPointsDTO>(\n\t\t\tendpoints.account.masteryPoints,\n\t\t\t{},\n\t\t\tAccountMasteryPointsDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns the materials stored in a player's vault.\n\t */\n\tasync getMaterials() {\n\t\treturn await this.buildRequest<typeof AccountMaterialsDTO>(\n\t\t\tendpoints.account.materials,\n\t\t\t{},\n\t\t\tAccountMaterialsDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns the unlocked miniatures of the account.\n\t */\n\tasync getMinis() {\n\t\treturn await this.buildRequest<typeof AccountMinisDTO>(endpoints.account.minis, {}, AccountMinisDTO);\n\t}\n\n\t/**\n\t * Returns the unlocked mount skins of the account.\n\t */\n\tasync getMountSkins() {\n\t\treturn await this.buildRequest<typeof AccountMountSkinsDTO>(\n\t\t\tendpoints.account.mountsSkins,\n\t\t\t{},\n\t\t\tAccountMountSkinsDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns the unlocked mounts of the account.\n\t */\n\tasync getMountTypes() {\n\t\treturn await this.buildRequest<typeof AccountMountTypesDTO>(\n\t\t\tendpoints.account.mountsTypes,\n\t\t\t{},\n\t\t\tAccountMountTypesDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about novelties that are unlocked for an account.\n\t */\n\tasync getNovelties() {\n\t\treturn await this.buildRequest<typeof AccountNoveltiesDTO>(\n\t\t\tendpoints.account.novelties,\n\t\t\t{},\n\t\t\tAccountNoveltiesDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about outfits that are unlocked for an account.\n\t */\n\tasync getOutfits() {\n\t\treturn await this.buildRequest<typeof AccountOutfitsDTO>(endpoints.account.outfits, {}, AccountOutfitsDTO);\n\t}\n\n\t/**\n\t * Returns account-wide progression for Fractals's Account Augmentation and Luck.\n\t */\n\tasync getProgression() {\n\t\treturn await this.buildRequest<typeof AccountProgressionDTO>(\n\t\t\tendpoints.account.progression,\n\t\t\t{},\n\t\t\tAccountProgressionDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about pvp heroes that are unlocked for an account.\n\t */\n\tasync getPvpHeroes() {\n\t\treturn await this.buildRequest<typeof AccountPvpHeroesDTO>(\n\t\t\tendpoints.account.pvpHeroes,\n\t\t\t{},\n\t\t\tAccountPvpHeroesDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns the completed raid encounters since weekly raid reset.\n\t */\n\tasync getRaids() {\n\t\treturn await this.buildRequest<typeof AccountRaidsDTO>(endpoints.account.raids, {}, AccountRaidsDTO);\n\t}\n\n\t/**\n\t * Returns information about recipes that are unlocked for an account.\n\t */\n\tasync getRecipes() {\n\t\treturn await this.buildRequest<typeof AccountRecipesDTO>(endpoints.account.recipes, {}, AccountRecipesDTO);\n\t}\n\n\t/**\n\t * Returns the unlocked Skiff skins of the account.\n\t */\n\tasync getSkiffs() {\n\t\treturn await this.buildRequest<typeof AccountSkiffsDTO>(endpoints.account.skiffs, {}, AccountSkiffsDTO);\n\t}\n\n\t/**\n\t * Returns the unlocked skins of the account.\n\t */\n\tasync getSkins() {\n\t\treturn await this.buildRequest<typeof AccountSkinsDTO>(endpoints.account.skins, {}, AccountSkinsDTO);\n\t}\n\n\t/**\n\t * Returns information about titles that are unlocked for an account.\n\t */\n\tasync getTitles() {\n\t\treturn await this.buildRequest<typeof AccountTitlesDTO>(endpoints.account.titles, {}, AccountTitlesDTO);\n\t}\n\n\t/**\n\t * Returns the currencies of the account\n\t */\n\tasync getWallet() {\n\t\treturn await this.buildRequest<typeof AccountWalletDTO>(endpoints.account.wallet, {}, AccountWalletDTO);\n\t}\n\n\t/**\n\t * Returns information about which world bosses have been killed by the account since daily-reset.\n\t */\n\tasync getWorldBosses() {\n\t\treturn await this.buildRequest<typeof AccountWorldBossesDTO>(\n\t\t\tendpoints.account.worldBosses,\n\t\t\t{},\n\t\t\tAccountWorldBossesDTO\n\t\t);\n\t}\n}\n","import { z } from 'zod';\n\nexport type ApiPermissions =\n\t| 'account'\n\t| 'builds'\n\t| 'characters'\n\t| 'guilds'\n\t| 'inventories'\n\t| 'pvp'\n\t| 'tradingpost'\n\t| 'unlocks'\n\t| 'wallet';\n\nexport type EndpointUrls =\n\t| '/v2/account'\n\t| '/v2/achievements'\n\t| '/v2/backstory'\n\t| '/v2/build'\n\t| '/v2/characters'\n\t| '/v2/colors'\n\t| '/v2/commerce'\n\t| '/v2/continents'\n\t| '/v2/createsubtoken'\n\t| '/v2/currencies'\n\t| '/v2/dailycrafting'\n\t| '/v2/dungeons'\n\t| '/v2/emblem'\n\t| '/v2/emotes'\n\t| '/v2/files'\n\t| '/v2/finishers'\n\t| '/v2/gliders'\n\t| '/v2/guild'\n\t| '/v2/home/cats'\n\t| '/v2/home/nodes'\n\t| '/v2/items'\n\t| '/v2/itemstats'\n\t| '/v2/legendaryarmory'\n\t| '/v2/legends'\n\t| '/v2/mailcarriers'\n\t| '/v2/mapchests'\n\t| '/v2/maps'\n\t| '/v2/masteries'\n\t| '/v2/materials'\n\t| '/v2/minis'\n\t| '/v2/mounts'\n\t| '/v2/novelties'\n\t| '/v2/outfits'\n\t| '/v2/pets'\n\t| '/v2/professions'\n\t| '/v2/pvp'\n\t| '/v2/quaggans'\n\t| '/v2/quests'\n\t| '/v2/races'\n\t| '/v2/raids'\n\t| '/v2/recipes'\n\t| '/v2/skills'\n\t| '/v2/skins'\n\t| '/v2/specializations'\n\t| '/v2/stories'\n\t| '/v2/titles'\n\t| '/v2/tokeninfo'\n\t| '/v2/traits'\n\t| '/v2/worldbosses'\n\t| '/v2/worlds'\n\t| '/v2/wvw';\n\nexport const stringArrayType = z.array(z.string());\nexport const numberArrayType = z.array(z.number());\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { AchievementCategoriesDTO, AchievementGroupsDTO } from '../../models/';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType, stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/achievements api\n */\nexport class AchievementsApi extends ApiBase {\n\t/**\n\t * Returns all the categories for achievements.\n\t */\n\tasync getCategories(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns all the categories for achievements.\n\t *\n\t * @param ids - (optional) List of category ids, or \"all\".\n\t */\n\tasync getCategories(ids: number[] | 'all'): Promise<z.infer<typeof AchievementCategoriesDTO>>;\n\tasync getCategories(ids?: number[] | 'all') {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof AchievementCategoriesDTO>(\n\t\t\t\tendpoints.achievements.categories,\n\t\t\t\t{ ids },\n\t\t\t\tAchievementCategoriesDTO\n\t\t\t);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.achievements.categoryIds, {}, numberArrayType);\n\t}\n\n\t/**\n\t * Returns all the top-level groups for achievements.\n\t */\n\tasync getGroups(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns all the top-level groups for achievements.\n\t *\n\t * @param id - (optional) Group id.\n\t */\n\tasync getGroups(id: string): Promise<z.infer<typeof AchievementGroupsDTO>>;\n\tasync getGroups(id?: string) {\n\t\tif (id)\n\t\t\treturn await this.buildRequest<typeof AchievementGroupsDTO>(\n\t\t\t\tendpoints.achievements.groupsById,\n\t\t\t\t{ id },\n\t\t\t\tAchievementGroupsDTO\n\t\t\t);\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.achievements.groupsAll, {}, stringArrayType);\n\t}\n}\n","import { ApiBase } from '../../base/apiBase';\nimport { logger } from '../../base/logger';\nimport {\n\tCharacterBackstoryDTO,\n\tCharacterBuildTabsDTO,\n\tCharacterCoreDTO,\n\tCharacterCraftingDTO,\n\tCharacterEquipmentDTO,\n\tCharacterEquipmentTabDTO,\n\tCharacterEquipmentTabsDTO,\n\tCharacterHeroPointsDTO,\n\tCharacterInventoryDTO,\n\tCharacterQuestsDTO,\n\tCharacterRecipesDTO,\n\tCharacterSkillsDTO,\n\tCharacterSpecializationsDTO,\n\tCharacterSuperAdventureBoxDTO,\n\tCharacterTrainingDTO,\n\tCharactersDTO\n} from '../../models';\nimport { endpoints } from '../endpoints';\n\n/**\n * /v2/characters Api\n */\nexport class CharactersApi extends ApiBase {\n\t/**\n\t * Returns information about characters attached to a specific account.\n\t */\n\tasync get() {\n\t\treturn await this.buildRequest<typeof CharactersDTO>(endpoints.characters.base, {}, CharactersDTO);\n\t}\n\n\t/**\n\t * Returns information about the backstory of a character attached to a specific account.\n\t *\n\t * @param id - Character name\n\t */\n\tasync getBackstory(id: string) {\n\t\treturn await this.buildRequest<typeof CharacterBackstoryDTO>(\n\t\t\tendpoints.characters.backstory,\n\t\t\t{ id },\n\t\t\tCharacterBackstoryDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about the build template tabs of a character.\n\t *\n\t * @param id - Character name\n\t * @param tabs - Optional tab index. If the index is invalid, all tabs will be returned\n\t */\n\tasync getBuildTabs(id: string, tabs: number[] | 'all' = 'all') {\n\t\tif (Array.isArray(tabs)) {\n\t\t\tfor (const tab of tabs) {\n\t\t\t\tif (tab < 1 || tab > 8) {\n\t\t\t\t\tlogger.warn('Build tab ids must be between 1 and 8. Returning all tabs');\n\t\t\t\t\ttabs = 'all';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn await this.buildRequest<typeof CharacterBuildTabsDTO>(\n\t\t\tendpoints.characters.buildTabs,\n\t\t\t{\n\t\t\t\tid,\n\t\t\t\ttabs\n\t\t\t},\n\t\t\tCharacterBuildTabsDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns core information about a character attached to a specific account.\n\t *\n\t * @param id - Character name\n\t */\n\tasync getCore(id: string) {\n\t\treturn await this.buildRequest<typeof CharacterCoreDTO>(endpoints.characters.core, { id }, CharacterCoreDTO);\n\t}\n\n\t/**\n\t * Returns information about the crafting disciplines available to a character attached to a specific account.\n\t *\n\t * @param id - Character name\n\t */\n\tasync getCrafting(id: string) {\n\t\treturn await this.buildRequest<typeof CharacterCraftingDTO>(\n\t\t\tendpoints.characters.crafting,\n\t\t\t{ id },\n\t\t\tCharacterCraftingDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns equipment of a character attached to a specific account.\n\t *\n\t * @param id - Character name\n\t */\n\tasync getEquipment(id: string) {\n\t\treturn await this.buildRequest<typeof CharacterEquipmentDTO>(\n\t\t\tendpoints.characters.equipment,\n\t\t\t{ id },\n\t\t\tCharacterEquipmentDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about an accounts equipment template tabs.\n\t *\n\t * @param id - Character name\n\t * @param tabs - Optional equipment tab number.\n\t */\n\tasync getEquipmentTabs(id: string, tabs: number[] | 'all' = 'all') {\n\t\tif (Array.isArray(tabs)) {\n\t\t\tfor (const tab of tabs) {\n\t\t\t\tif (tab < 1 || tab > 8) {\n\t\t\t\t\tlogger.warn('Equipment tab ids must be between 1 and 8. Returning all tabs.');\n\t\t\t\t\ttabs = 'all';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn await this.buildRequest<typeof CharacterEquipmentTabsDTO>(\n\t\t\tendpoints.characters.equipmentTabsById,\n\t\t\t{\n\t\t\t\tid,\n\t\t\t\ttabs\n\t\t\t},\n\t\t\tCharacterEquipmentTabsDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns the active equipment tab of a character attached to a specific account.\n\t *\n\t * @param id - Character name\n\t */\n\tasync getActiveEquipmentTab(id: string) {\n\t\treturn await this.buildRequest<typeof CharacterEquipmentTabDTO>(\n\t\t\tendpoints.characters.equipmentTabActive,\n\t\t\t{ id },\n\t\t\tCharacterEquipmentTabDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about the hero points obtained by a character attached to a specific account.\n\t * NOTE: This api does not currently return a lot of hero point values.\n\t * Check the list here for details https://wiki.guildwars2.com/wiki/API:2/characters/:id/heropoints#Notes\n\t *\n\t * @param id - Character name\n\t */\n\tasync getHeroPoints(id: string) {\n\t\treturn await this.buildRequest<typeof CharacterHeroPointsDTO>(\n\t\t\tendpoints.characters.heroPoints,\n\t\t\t{ id },\n\t\t\tCharacterHeroPointsDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns inventory of a character attached to a specific account.\n\t *\n\t * @param id - Character name\n\t */\n\tasync getInventory(id: string) {\n\t\treturn await this.buildRequest<typeof CharacterInventoryDTO>(\n\t\t\tendpoints.characters.inventory,\n\t\t\t{ id },\n\t\t\tCharacterInventoryDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about the quests selected that by a character attached to a specific account.\n\t *\n\t * @param id - Character name\n\t */\n\tasync getQuests(id: string) {\n\t\treturn await this.buildRequest<typeof CharacterQuestsDTO>(\n\t\t\tendpoints.characters.quests,\n\t\t\t{ id },\n\t\t\tCharacterQuestsDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about recipes that the given character can use.\n\t *\n\t * @param id - Character name\n\t */\n\tasync getRecipes(id: string) {\n\t\treturn await this.buildRequest<typeof CharacterRecipesDTO>(\n\t\t\tendpoints.characters.recipes,\n\t\t\t{ id },\n\t\t\tCharacterRecipesDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about Super Adventure Box on a character attached to a specific account.\n\t *\n\t * @param id - Character name\n\t */\n\tasync getSAB(id: string) {\n\t\treturn await this.buildRequest<typeof CharacterSuperAdventureBoxDTO>(\n\t\t\tendpoints.characters.sab,\n\t\t\t{ id },\n\t\t\tCharacterSuperAdventureBoxDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about the skills equipped on a character attached to a specific account.\n\t *\n\t * @param id - Character name\n\t */\n\tasync getSkills(id: string) {\n\t\treturn await this.buildRequest<typeof CharacterSkillsDTO>(\n\t\t\tendpoints.characters.skills,\n\t\t\t{ id },\n\t\t\tCharacterSkillsDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about the specializations equipped on a character attached to a specific account.\n\t *\n\t * @param id - Character name\n\t */\n\tasync getSpecializations(id: string) {\n\t\treturn await this.buildRequest<typeof CharacterSpecializationsDTO>(\n\t\t\tendpoints.characters.specializations,\n\t\t\t{\n\t\t\t\tid\n\t\t\t},\n\t\t\tCharacterSpecializationsDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about the training of a character attached to a specific account.\n\t *\n\t * @param id - Character name\n\t */\n\tasync getTraining(id: string) {\n\t\treturn await this.buildRequest<typeof CharacterTrainingDTO>(\n\t\t\tendpoints.characters.training,\n\t\t\t{ id },\n\t\t\tCharacterTrainingDTO\n\t\t);\n\t}\n}\n","import { ApiBase } from '../../base/apiBase';\nimport {\n\tCommerceDeliveryDTO,\n\tCommerceExchangeDTO,\n\tCommerceListingsDTO,\n\tCommercePricesDTO,\n\tCommerceTransactionDTO\n} from '../../models';\nimport { endpoints } from '../endpoints';\n\n/**\n * /v2/commerce Api\n */\nexport class CommerceApi extends ApiBase {\n\t/**\n\t * Provides access to the current items and coins available for pickup on this account.\n\t */\n\tasync getDeliveries() {\n\t\treturn await this.buildRequest<typeof CommerceDeliveryDTO>(\n\t\t\tendpoints.commerce.delivery,\n\t\t\t{},\n\t\t\tCommerceDeliveryDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns the current coins to gems exchange rate, or vice versa.\n\t *\n\t * @param type - Gems to coins, or vice versa\n\t * @param quantity - Quantity of coins to be exchanged (in copper coins)\n\t */\n\tasync getExchange(type: 'gems' | 'coins', quantity: number) {\n\t\treturn await this.buildRequest<typeof CommerceExchangeDTO>(\n\t\t\tendpoints.commerce.exchange,\n\t\t\t{ type, quantity },\n\t\t\tCommerceExchangeDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns current buy and sell listings from the trading post.\n\t * TODO: Functionality to return a complete list of every listing is currently unsupported\n\t *\n\t * @param ids - Listing ids\n\t */\n\tasync getListings(ids: number[]) {\n\t\treturn await this.buildRequest<typeof CommerceListingsDTO>(\n\t\t\tendpoints.commerce.listings,\n\t\t\t{ ids },\n\t\t\tCommerceListingsDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns current aggregated buy and sell listing information from the trading post.\n\t * TODO: Functionality to return a complete list of every listing is currently unsupported\n\t *\n\t * @param ids - Item ids\n\t */\n\tasync getPrices(ids: number[]) {\n\t\treturn await this.buildRequest<typeof CommercePricesDTO>(endpoints.commerce.prices, { ids }, CommercePricesDTO);\n\t}\n\n\t/**\n\t * Provides access to the current and historical transactions of a player.\n\t * Results are cached for 5 minutes.\n\t *\n\t * @param status - Current or historical transactions\n\t * @param type - Buy or sell transactions\n\t */\n\tasync getTransactions(status: 'current' | 'history', type: 'buys' | 'sells') {\n\t\treturn await this.buildRequest<typeof CommerceTransactionDTO>(\n\t\t\tendpoints.commerce.transactions,\n\t\t\t{ status, type },\n\t\t\tCommerceTransactionDTO\n\t\t);\n\t}\n}\n","import { ApiBase } from '../../base/apiBase';\nimport { EmblemDTO } from '../../models';\nimport { endpoints } from '../endpoints';\n\n/**\n * /v2/emblem Api\n */\nexport class EmblemApi extends ApiBase {\n\t/**\n\t * Returns image resources that are needed to render the guild emblems.\n\t *\n\t * @param type - Background or foreground\n\t * @param ids - List of emblem ids, or \"all\"\n\t */\n\tasync get(type: 'foregrounds' | 'backgrounds', ids: number[] | 'all' = 'all') {\n\t\treturn await this.buildRequest<typeof EmblemDTO>(\n\t\t\tendpoints.emblem,\n\t\t\t{\n\t\t\t\ttype,\n\t\t\t\tids\n\t\t\t},\n\t\t\tEmblemDTO\n\t\t);\n\t}\n}\n","import { ApiBase } from '../../base/apiBase';\nimport {\n\tGuildDTO,\n\tGuildLogDTO,\n\tGuildMembersDTO,\n\tGuildPermissionsDTO,\n\tGuildRanksDTO,\n\tGuildSearchDTO,\n\tGuildStashDTO,\n\tGuildStorageDTO,\n\tGuildTeamsDTO,\n\tGuildTreasuryDTO,\n\tGuildUpgradesDTO,\n\tGuildUpgradesInfoDTO\n} from '../../models';\nimport { endpoints } from '../endpoints';\nimport { stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/guild Api\n */\nexport class GuildApi extends ApiBase {\n\t/**\n\t * Returns core details about a given guild.\n\t * The end point will include more or less fields depend on whether an API Key of a Leader or\n\t * Member of the Guild with the guilds scope is included in the request.\n\t *\n\t * @param id - The guild id\n\t */\n\tasync get(id: string) {\n\t\treturn await this.buildRequest<typeof GuildDTO>(endpoints.guild.core, { id }, GuildDTO);\n\t}\n\n\t/**\n\t * Returns information about certain events in a guild's log.\n\t * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.\n\t *\n\t * @param id - Unique guild id\n\t * @param since - Starting point for the log, by log id\n\t */\n\tasync getLog(id: string, since = 0) {\n\t\treturn await this.buildRequest<typeof GuildLogDTO>(endpoints.guild.log, { id, since }, GuildLogDTO);\n\t}\n\n\t/**\n\t * Returns information about the members of a specified guild.\n\t * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.\n\t *\n\t * @param id - Unique guild id\n\t */\n\tasync getMembers(id: string) {\n\t\treturn await this.buildRequest<typeof GuildMembersDTO>(endpoints.guild.members, { id }, GuildMembersDTO);\n\t}\n\n\t/**\n\t * Returns information about the ranks of a specified guild.\n\t * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.\n\t *\n\t * @param id - Unique guild id\n\t */\n\tasync getRanks(id: string) {\n\t\treturn await this.buildRequest<typeof GuildRanksDTO>(endpoints.guild.ranks, { id }, GuildRanksDTO);\n\t}\n\n\t/**\n\t * Returns information about the items in a guild's vault.\n\t * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.\n\t *\n\t * @param id - Unique guild id\n\t */\n\tasync getStash(id: string) {\n\t\treturn await this.buildRequest<typeof GuildStashDTO>(endpoints.guild.stash, { id }, GuildStashDTO);\n\t}\n\n\t/**\n\t * Returns information about the items in a guild's storage.\n\t * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.\n\t *\n\t * @param id - Unique guild id\n\t */\n\tasync getStorage(id: string) {\n\t\treturn await this.buildRequest<typeof GuildStorageDTO>(endpoints.guild.storage, { id }, GuildStorageDTO);\n\t}\n\n\t/**\n\t * Returns information about the teams in a guild.\n\t * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.\n\t *\n\t * @param id - Unique guild id\n\t */\n\tasync getTeams(id: string) {\n\t\treturn await this.buildRequest<typeof GuildTeamsDTO>(endpoints.guild.teams, { id }, GuildTeamsDTO);\n\t}\n\n\t/**\n\t * Returns information about the items in a guild's treasury.\n\t * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.\n\t *\n\t * @param id - Unique guild id\n\t */\n\tasync getTreasury(id: string) {\n\t\treturn await this.buildRequest<typeof GuildTreasuryDTO>(endpoints.guild.treasury, { id }, GuildTreasuryDTO);\n\t}\n\n\t/**\n\t * Returns information about the guild's upgrades.\n\t * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.\n\t *\n\t * @param id - Unique guild id\n\t */\n\tasync getUpgrades(id: string) {\n\t\treturn await this.buildRequest<typeof GuildUpgradesDTO>(endpoints.guild.upgrades, { id }, GuildUpgradesDTO);\n\t}\n\n\t/**\n\t * Returns information about all guild permissions.\n\t *\n\t * @param ids - Permission ids\n\t */\n\tasync getPermissions(ids?: string[]) {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof GuildPermissionsDTO>(\n\t\t\t\tendpoints.guild.permissionsById,\n\t\t\t\t{ ids },\n\t\t\t\tGuildPermissionsDTO\n\t\t\t);\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.guild.permissionsAll, {}, stringArrayType);\n\t}\n\n\t/**\n\t * Returns information on guild ids to be used for other API queries.\n\t *\n\t * @param name - Guild name\n\t */\n\tasync find(name: string) {\n\t\treturn await this.buildRequest<typeof GuildSearchDTO>(endpoints.guild.search, { name }, GuildSearchDTO);\n\t}\n\n\t/**\n\t * Returns information about all available Guild Hall upgrades, including scribe decorations.\n\t *\n\t * @param ids - Guild upgrade ids\n\t */\n\tasync upgradeInfo(ids: number[]) {\n\t\treturn await this.buildRequest<typeof GuildUpgradesInfoDTO>(\n\t\t\tendpoints.guild.upgradesInfo,\n\t\t\t{ ids },\n\t\t\tGuildUpgradesInfoDTO\n\t\t);\n\t}\n}\n","import { ApiBase } from '../../base/apiBase';\nimport { HomeCatsDTO, HomeNodesDTO } from '../../models';\nimport { endpoints } from '../endpoints';\n\n/**\n * /v2/home Api\n */\nexport class HomeApi extends ApiBase {\n\t/**\n\t * Returns information about cats.\n\t * Identical to /v2/cats\n\t *\n\t * @param ids - List of cat ids, or \"all\"\n\t */\n\tasync getCats(ids: number[] | 'all' = 'all') {\n\t\treturn await this.buildRequest<typeof HomeCatsDTO>(endpoints.home.cats, { ids }, HomeCatsDTO);\n\t}\n\n\t/**\n\t * Returns a list of all currently available home instance nodes.\n\t * Can be resolved against /v2/account/home/nodes to identify an account's unlocked nodes.\n\t *\n\t * @param ids - List of node ids, or \"all\"\n\t */\n\tasync getNodes(ids: string[] | 'all' = 'all') {\n\t\treturn await this.buildRequest<typeof HomeNodesDTO>(\n\t\t\tendpoints.home.nodes,\n\t\t\t{\n\t\t\t\tids\n\t\t\t},\n\t\t\tHomeNodesDTO\n\t\t);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { BackstoryAnswersDTO, BackstoryQuestionsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType, stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/backstory Api\n */\nexport class BackstoryApi extends ApiBase {\n\t/**\n\t * Returns information about the Biography answers that are in the game.\n\t */\n\tasync getAnswers(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns information about the Biography answers that are in the game.\n\t *\n\t * @param ids - List of answer ids, or \"all\"\n\t */\n\tasync getAnswers(ids: Array<`${number}-${number}`> | 'all'): Promise<z.infer<typeof BackstoryAnswersDTO>>;\n\tasync getAnswers(ids?: Array<`${number}-${number}`> | 'all') {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof BackstoryAnswersDTO>(\n\t\t\t\tendpoints.backstory.answersById,\n\t\t\t\t{ ids },\n\t\t\t\tBackstoryAnswersDTO\n\t\t\t);\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.backstory.answersAll, {}, stringArrayType);\n\t}\n\n\t/**\n\t * Returns information about the Biography questions that are in the game.\n\t */\n\tasync getQuestions(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about the Biography questions that are in the game.\n\t *\n\t * @param ids - List of question ids, or \"all\"\n\t */\n\tasync getQuestions(ids: number[] | 'all'): Promise<z.infer<typeof BackstoryQuestionsDTO>>;\n\tasync getQuestions(ids?: number[] | 'all') {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof BackstoryQuestionsDTO>(\n\t\t\t\tendpoints.backstory.questionsById,\n\t\t\t\t{ ids },\n\t\t\t\tBackstoryQuestionsDTO\n\t\t\t);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.backstory.questionsAll, {}, numberArrayType);\n\t}\n}\n","import { ApiBase } from '../../base/apiBase';\nimport { BuildDTO } from '../../models';\nimport { endpoints } from '../endpoints';\n\n/**\n * /v2/build Api\n */\nexport class BuildApi extends ApiBase {\n\t/**\n\t * Returns the current build id of the game.\n\t * NOTE: This endpoint is broken, and after a certain timestamp, seems to be returning the exact same value.\n\t */\n\tasync get() {\n\t\treturn await this.buildRequest<typeof BuildDTO>(endpoints.build, {}, BuildDTO);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { ColorsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/colors Api\n */\nexport class ColorsApi extends ApiBase {\n\t/**\n\t * Returns all dye colors in the game, including localized names and their color component information.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns all dye colors in the game, including localized names and their color component information.\n\t *\n\t * @param ids - Ids of the requested colors, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof ColorsDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof ColorsDTO>(endpoints.colors.byId, { ids }, ColorsDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.colors.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { ContinentsDTO, ContinentsFloorsDTO, ContinentsMapsDTO, ContinentsRegionsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/continents api\n */\nexport class ContinentsApi extends ApiBase {\n\t/**\n\t * Returns information about continents, their floors, regions, and maps.\n\t *\n\t * NOTE: Refer to the function overload types for usage.\n\t * Endpoint priority is as follows -> maps > regions > floors > continents > none\n\t * As such, for example, maps is present, all previous arguments must be of type number\n\t */\n\tasync getContinents(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about continents, their floors, regions, and maps.\n\t *\n\t * @param continents - Continent ids, or \"all\"\n\t */\n\tasync getContinents(continents: number[] | 'all'): Promise<z.infer<typeof ContinentsDTO>>;\n\t/**\n\t * Returns information about continents, their floors, regions, and maps.\n\t *\n\t * @param continents - Continent id.\n\t * @param floors - Floor ids, or \"all\".\n\t */\n\tasync getContinents(continents: number, floors: number[] | 'all'): Promise<z.infer<typeof ContinentsFloorsDTO>>;\n\t/**\n\t * Returns information about continents, their floors, regions, and maps.\n\t *\n\t * @param continents - Continent id.\n\t * @param floors - Floor id.\n\t * @param regions - Region ids, or \"all\".\n\t */\n\tasync getContinents(\n\t\tcontinents: number,\n\t\tfloors: number,\n\t\tregions: number[] | 'all'\n\t): Promise<z.infer<typeof ContinentsRegionsDTO>>;\n\t/**\n\t * Returns information about continents, their floors, regions, and maps.\n\t *\n\t * @param continents - Continent id.\n\t * @param floors - Floor id.\n\t * @param regions - Region id.\n\t * @param maps - Map ids, or \"all\".\n\t */\n\tasync getContinents(\n\t\tcontinents: number,\n\t\tfloors: number,\n\t\tregions: number,\n\t\tmaps: number[] | 'all'\n\t): Promise<z.infer<typeof ContinentsMapsDTO>>;\n\tasync getContinents(\n\t\tcontinents?: number[] | number | 'all',\n\t\tfloors?: number[] | number | 'all',\n\t\tregions?: number[] | number | 'all',\n\t\tmaps?: number[] | 'all'\n\t) {\n\t\tif (typeof continents === 'number') {\n\t\t\tif (typeof floors === 'number') {\n\t\t\t\tif (typeof regions === 'number') {\n\t\t\t\t\tif (maps) {\n\t\t\t\t\t\treturn await this.buildRequest<typeof ContinentsMapsDTO>(\n\t\t\t\t\t\t\tendpoints.continents.maps,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcontinents,\n\t\t\t\t\t\t\t\tfloors,\n\t\t\t\t\t\t\t\tregions,\n\t\t\t\t\t\t\t\tmaps\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tContinentsMapsDTO\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else if (Array.isArray(regions) || regions === 'all') {\n\t\t\t\t\treturn await this.buildRequest<typeof ContinentsRegionsDTO>(\n\t\t\t\t\t\tendpoints.continents.regions,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontinents,\n\t\t\t\t\t\t\tfloors,\n\t\t\t\t\t\t\tregions\n\t\t\t\t\t\t},\n\t\t\t\t\t\tContinentsRegionsDTO\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else if (Array.isArray(floors) || floors === 'all') {\n\t\t\t\treturn await this.buildRequest<typeof ContinentsFloorsDTO>(\n\t\t\t\t\tendpoints.continents.floors,\n\t\t\t\t\t{\n\t\t\t\t\t\tcontinents,\n\t\t\t\t\t\tfloors\n\t\t\t\t\t},\n\t\t\t\t\tContinentsFloorsDTO\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (Array.isArray(continents) || continents === 'all') {\n\t\t\treturn await this.buildRequest<typeof ContinentsDTO>(\n\t\t\t\tendpoints.continents.continents,\n\t\t\t\t{\n\t\t\t\t\tcontinents\n\t\t\t\t},\n\t\t\t\tContinentsDTO\n\t\t\t);\n\t\t}\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.continents.core, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { CurrenciesDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/currencies Api\n */\nexport class CurrenciesApi extends ApiBase {\n\t/**\n\t * Returns a list of the currencies contained in the account wallet.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns a list of the currencies contained in the account wallet.\n\t *\n\t * @param ids - Currency ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof CurrenciesDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof CurrenciesDTO>(endpoints.currencies.byId, { ids }, CurrenciesDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.currencies.all, {}, numberArrayType);\n\t}\n}\n","import { ApiBase } from '../../base/apiBase';\nimport { endpoints } from '../endpoints';\nimport { stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/dailycrafting Api\n */\nexport class DailyCraftingApi extends ApiBase {\n\t/**\n\t * Returns information about time-gated recipes that can be crafted in-game.\n\t */\n\tasync get() {\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.dailyCrafting, {}, stringArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { DungeonsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/dungeons Api\n */\nexport class DungeonsApi extends ApiBase {\n\t/**\n\t * Returns details about each dungeon, and it's associated paths.\n\t */\n\tasync get(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns details about each dungeon, and it's associated paths.\n\t *\n\t * @param ids - List of dungeon ids, or \"all\"\n\t */\n\tasync get(ids: string[] | 'all'): Promise<z.infer<typeof DungeonsDTO>>;\n\tasync get(ids?: string[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof DungeonsDTO>(endpoints.dungeons.byId, { ids }, DungeonsDTO);\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.dungeons.all, {}, stringArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { EmotesDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/emotes Api\n */\nexport class EmotesApi extends ApiBase {\n\t/**\n\t * Returns information about unlockable emotes.\n\t */\n\tasync get(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns information about unlockable emotes.\n\t *\n\t * @param ids - Emote names, or \"all\"\n\t */\n\tasync get(ids: string[] | 'all'): Promise<z.infer<typeof EmotesDTO>>;\n\tasync get(ids?: string[] | 'all') {\n\t\tif (ids && Array.isArray(ids)) {\n\t\t\t// For some reason, emote names are case-sensitive, and only some of them are capitalized =_=\n\t\t\tids = ids.map((id: string) => {\n\t\t\t\tif (['shiverplus', 'stretch'].includes(id.toLocaleLowerCase()))\n\t\t\t\t\treturn id[0]?.toLocaleUpperCase() + id.substring(1);\n\t\t\t\treturn id.toLocaleLowerCase();\n\t\t\t});\n\t\t\treturn await this.buildRequest<typeof EmotesDTO>(endpoints.emotes.byId, { ids }, EmotesDTO);\n\t\t}\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.emotes.all, {}, stringArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { FilesDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/files Api\n */\nexport class FilesApi extends ApiBase {\n\t/**\n\t * Returns commonly requested in-game assets that may be used to enhance API-derived applications.\n\t */\n\tasync get(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns commonly requested in-game assets that may be used to enhance API-derived applications.\n\t *\n\t * @param ids - List of file ids, or \"all\"\n\t */\n\tasync get(ids: string[] | 'all'): Promise<z.infer<typeof FilesDTO>>;\n\tasync get(ids?: string[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof FilesDTO>(endpoints.files.byId, { ids }, FilesDTO);\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.files.all, {}, stringArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { FinishersDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/finishers Api\n */\nexport class FinishersApi extends ApiBase {\n\t/**\n\t * Returns information about finishers that are available in-game.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about finishers that are available in-game.\n\t *\n\t * @param ids - List of finisher ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof FinishersDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof FinishersDTO>(endpoints.finishers.byId, { ids }, FinishersDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.finishers.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { GlidersDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/gliders Api.\n */\nexport class GlidersApi extends ApiBase {\n\t/**\n\t * Returns information about gliders that are available in-game.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about gliders that are available in-game.\n\t *\n\t * @param ids - List of glider ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof GlidersDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof GlidersDTO>(endpoints.gliders.byId, { ids }, GlidersDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.gliders.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { ItemsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/items Api\n */\nexport class ItemsApi extends ApiBase {\n\t/**\n\t * Returns information about items that were discovered by players in the game.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about items that were discovered by players in the game.\n\t *\n\t * @param ids - List of item ids\n\t */\n\tasync get(ids: number[]): Promise<z.infer<typeof ItemsDTO>>;\n\tasync get(ids?: number[]) {\n\t\tif (ids) return await this.buildRequest<typeof ItemsDTO>(endpoints.items.byId, { ids }, ItemsDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.items.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { ItemStatsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/itemstats Api\n */\nexport class ItemStatsApi extends ApiBase {\n\t/**\n\t * Returns information about itemstats for items that are in the game.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about itemstats for items that are in the game.\n\t *\n\t * @param ids - List of itemstat ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof ItemStatsDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof ItemStatsDTO>(endpoints.itemstats.byId, { ids }, ItemStatsDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.itemstats.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { JadebotsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/jadebots Api\n */\nexport class JadebotsApi extends ApiBase {\n\t/**\n\t * Returns all Jade Bot skins in the game.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns all Jade Bot skins in the game.\n\t *\n\t * @param ids - Jade bot ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof JadebotsDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof JadebotsDTO>(endpoints.jadebots.byId, { ids }, JadebotsDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.jadebots.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { LegendaryArmoryDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/legendaryarmory Api\n */\nexport class LegendaryArmoryApi extends ApiBase {\n\t/**\n\t * Returns information about Legendary Armory items that are available in-game\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about Legendary Armory items that are available in-game\n\t *\n\t * @param ids - List of legendary armory item ids\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof LegendaryArmoryDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof LegendaryArmoryDTO>(\n\t\t\t\tendpoints.legendaryArmory.byId,\n\t\t\t\t{ ids },\n\t\t\t\tLegendaryArmoryDTO\n\t\t\t);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.legendaryArmory.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { LegendsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/legends Api\n */\nexport class LegendsApi extends ApiBase {\n\t/**\n\t * Returns information about the Revenant Legends that are in the game.\n\t */\n\tasync get(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns information about the Revenant Legends that are in the game.\n\t *\n\t * @param ids - List of legend ids, or \"all\"\n\t */\n\tasync get(ids: string[] | 'all'): Promise<z.infer<typeof LegendsDTO>>;\n\tasync get(ids?: string[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof LegendsDTO>(endpoints.legends.byId, { ids }, LegendsDTO);\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.legends.all, {}, stringArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { MailCarriersDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/mailcarriers Api\n */\nexport class MailCarriersApi extends ApiBase {\n\t/**\n\t * Returns information about the mail carriers that are in the game.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about the mail carriers that are in the game.\n\t *\n\t * @param ids - List of mail carrier ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof MailCarriersDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof MailCarriersDTO>(\n\t\t\t\tendpoints.mailCarriers.byId,\n\t\t\t\t{ ids },\n\t\t\t\tMailCarriersDTO\n\t\t\t);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.mailCarriers.all, {}, numberArrayType);\n\t}\n}\n","import { ApiBase } from '../../base/apiBase';\nimport { MapChestsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\n\n/**\n * /v2/mapchests Api\n */\nexport class MapChestsApi extends ApiBase {\n\t/**\n\t * Returns information about Hero's Choice Chests that can be acquired once a day in-game.\n\t * NOTE: This endpoint is known to have missing data.\n\t */\n\tasync get() {\n\t\treturn await this.buildRequest<typeof MapChestsDTO>(endpoints.mapChests, {}, MapChestsDTO);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { MapsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/maps Api\n *\n * NOTE: This endpoint is frequently out of sync.\n * Visit https://wiki.guildwars2.com/wiki/API:2/maps for more info\n */\nexport class MapsApi extends ApiBase {\n\t/**\n\t * Returns details about maps in the game, including details about floor and translation\n\t * data on how to translate between world coordinates and map coordinates.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns details about maps in the game, including details about floor and translation\n\t * data on how to translate between world coordinates and map coordinates.\n\t *\n\t * @param ids - List of map ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof MapsDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof MapsDTO>(endpoints.maps.byId, { ids }, MapsDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.maps.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { MasteriesDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/masteries Api\n * NOTE: This endpoint is known to have missing or incomplete data\n */\nexport class MasteriesApi extends ApiBase {\n\t/**\n\t * Returns information about masteries that are available in-game.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about masteries that are available in-game.\n\t *\n\t * @param ids - List of mastery ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof MasteriesDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof MasteriesDTO>(endpoints.masteries.byId, { ids }, MasteriesDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.masteries.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { MaterialsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/materials Api.\n */\nexport class MaterialsApi extends ApiBase {\n\t/**\n\t * Returns information about the categories in material storage.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about the categories in material storage.\n\t *\n\t * @param ids - List of material ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof MaterialsDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof MaterialsDTO>(endpoints.materials.byId, { ids }, MaterialsDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.materials.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { MinisDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/minis Api\n */\nexport class MinisApi extends ApiBase {\n\t/**\n\t * Returns details about minis in the game.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns details about minis in the game.\n\t *\n\t * @param ids - List of mini ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof MinisDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof MinisDTO>(endpoints.minis.byId, { ids }, MinisDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.minis.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { MountsSkinsDTO, MountsTypesDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType, stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/mounts Api\n */\nexport class MountsApi extends ApiBase {\n\t/**\n\t * Returns information about mount skins that are available in-game.\n\t */\n\tasync getSkins(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about mount skins that are available in-game.\n\t *\n\t * @param ids - List of mount skin ids, or \"all\"\n\t */\n\tasync getSkins(ids: number[] | 'all'): Promise<z.infer<typeof MountsSkinsDTO>>;\n\tasync getSkins(ids?: number[] | 'all') {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof MountsSkinsDTO>(endpoints.mountsSkins.byId, { ids }, MountsSkinsDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.mountsSkins.all, {}, numberArrayType);\n\t}\n\n\t/**\n\t * Returns information about mount types that are available in-game.\n\t */\n\tasync getTypes(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns information about mount types that are available in-game.\n\t *\n\t * @param ids - List of mount type ids, or \"all\"\n\t */\n\tasync getTypes(ids: string[] | 'all'): Promise<z.infer<typeof MountsTypesDTO>>;\n\tasync getTypes(ids?: string[] | 'all') {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof MountsTypesDTO>(endpoints.mountsTypes.byId, { ids }, MountsTypesDTO);\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.mountsTypes.all, {}, stringArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { NoveltiesDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/novelties Api\n */\nexport class NoveltiesApi extends ApiBase {\n\t/**\n\t * Returns information about novelties that are available in-game.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about novelties that are available in-game.\n\t *\n\t * @param ids - List of novelty ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof NoveltiesDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof NoveltiesDTO>(endpoints.novelties.byId, { ids }, NoveltiesDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.novelties.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { OutfitsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/outfits Api\n */\nexport class OutfitsApi extends ApiBase {\n\t/**\n\t * Returns information about the outfits that are in the game.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about the outfits that are in the game.\n\t *\n\t * @param ids - List of outfit ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof OutfitsDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof OutfitsDTO>(endpoints.outfits.byId, { ids }, OutfitsDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.outfits.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { PetsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/pets Api\n */\nexport class PetsApi extends ApiBase {\n\t/**\n\t * Returns information about the Ranger pets that are in the game.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about the Ranger pets that are in the game.\n\t *\n\t * @param ids - List of pet ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof PetsDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof PetsDTO>(endpoints.pets.byId, { ids }, PetsDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.pets.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { ProfessionsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/professions Api\n */\nexport class ProfessionsApi extends ApiBase {\n\t/**\n\t * Returns information about professions that are in the game.\n\t */\n\tasync get(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns information about professions that are in the game.\n\t *\n\t * @param ids - List of profession ids, or \"all\"\n\t */\n\tasync get(ids: string[] | 'all'): Promise<z.infer<typeof ProfessionsDTO>>;\n\tasync get(ids?: string[] | 'all') {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof ProfessionsDTO>(endpoints.professions.byId, { ids }, ProfessionsDTO);\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.professions.all, {}, stringArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { QuaggansDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/quaggans Api\n */\nexport class QuaggansApi extends ApiBase {\n\t/**\n\t * Returns quaggan images.\n\t */\n\tasync get(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns quaggan images.\n\t *\n\t * @param ids - List of quaggan ids, or \"all\"\n\t */\n\tasync get(ids: string[] | 'all'): Promise<z.infer<typeof QuaggansDTO>>;\n\tasync get(ids?: string[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof QuaggansDTO>(endpoints.quaggans.byId, { ids }, QuaggansDTO);\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.quaggans.all, {}, stringArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { QuestsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/quests Api\n */\nexport class QuestsApi extends ApiBase {\n\t/**\n\t * Returns information about Story Journal missions within the personal story and Living World.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about Story Journal missions within the personal story and Living World.\n\t *\n\t * @param ids - List of quest ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof QuestsDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof QuestsDTO>(endpoints.quests.byId, { ids }, QuestsDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.quests.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { RacesDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/races Api\n */\nexport class RacesApi extends ApiBase {\n\t/**\n\t * Returns information on in-game playable races.\n\t */\n\tasync get(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns information on in-game playable races.\n\t *\n\t * @param ids - List of race ids, or \"all\"\n\t */\n\tasync get(ids: string[] | 'all'): Promise<z.infer<typeof RacesDTO>>;\n\tasync get(ids?: string[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof RacesDTO>(endpoints.races.byId, { ids }, RacesDTO);\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.races.all, {}, stringArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { RaidsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/raids Api\n */\nexport class RaidsApi extends ApiBase {\n\t/**\n\t * Returns information on in-game raids.\n\t */\n\tasync get(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns information on in-game raids.\n\t *\n\t * @param ids - Raid ids, or \"all\"\n\t */\n\tasync get(ids: string[] | 'all'): Promise<z.infer<typeof RaidsDTO>>;\n\tasync get(ids?: string[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof RaidsDTO>(endpoints.raids.byId, { ids }, RaidsDTO);\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.raids.all, {}, stringArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { RecipesDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/recipes Api\n */\nexport class RecipesApi extends ApiBase {\n\t/**\n\t * Returns information about recipes that were discovered by players in the game.\n\t * NOTE: The Api sometimes returns incorrect item ids in \"output_id\" fields\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about recipes that were discovered by players in the game.\n\t * NOTE: The Api sometimes returns incorrect item ids in \"output_id\" fields\n\t *\n\t * @param ids - List of recipe ids, or \"all\"\n\t */\n\tasync get(ids: number[]): Promise<z.infer<typeof RecipesDTO>>;\n\tasync get(ids?: number[]) {\n\t\tif (ids) return await this.buildRequest<typeof RecipesDTO>(endpoints.recipes.byId, { ids }, RecipesDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.recipes.all, {}, numberArrayType);\n\t}\n\n\t/**\n\t * Allows searching for recipe.\n\t *\n\t * @param type - Either \"input\" or \"output\"\n\t * @param ids - List of item ids\n\t */\n\tasync search(type: 'input' | 'output', ids: number[]) {\n\t\treturn await this.buildRequest<typeof numberArrayType>(\n\t\t\tendpoints.recipes.search,\n\t\t\t{ type, ids },\n\t\t\tnumberArrayType\n\t\t);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { SkiffsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/skiffs Api\n */\nexport class SkiffsApi extends ApiBase {\n\t/**\n\t * Returns all Skiff skins in the game.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns all Skiff skins in the game.\n\t *\n\t * @param ids - List of skiff ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof SkiffsDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof SkiffsDTO>(endpoints.skiffs.byId, { ids }, SkiffsDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.skiffs.all, {}, numberArrayType);\n\t}\n}\n","import { ApiBase } from '../../base/apiBase';\nimport { SkillsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\n\n/**\n * /v2/skills Api\n */\nexport class SkillsApi extends ApiBase {\n\t/**\n\t * Returns information about skills usable by players in the game.\n\t *\n\t * @param ids - List of skill ids\n\t */\n\tasync get(ids: number[]) {\n\t\treturn await this.buildRequest<typeof SkillsDTO>(endpoints.skills, { ids }, SkillsDTO);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { SkinsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/skins Api\n */\nexport class SkinsApi extends ApiBase {\n\t/**\n\t * Returns information about skins that were discovered by players in the game.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about skins that were discovered by players in the game.\n\t *\n\t * @param ids - List of skin ids\n\t */\n\tasync get(ids: number[]): Promise<z.infer<typeof SkinsDTO>>;\n\tasync get(ids?: number[]) {\n\t\tif (ids) return await this.buildRequest<typeof SkinsDTO>(endpoints.skins.byId, { ids }, SkinsDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.skins.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { SpecializationsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/specializations Api\n */\nexport class SpecializationsApi extends ApiBase {\n\t/**\n\t * Returns information on currently released specializations.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information on currently released specializations.\n\t *\n\t * @param ids - List of specialization ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof SpecializationsDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof SpecializationsDTO>(\n\t\t\t\tendpoints.specializations.byId,\n\t\t\t\t{ ids },\n\t\t\t\tSpecializationsDTO\n\t\t\t);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.specializations.all, {}, numberArrayType);\n\t}\n}\n","import { z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { StoriesDTO, StoriesSeasonsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\n\nconst storiesCore = z.array(z.number());\nconst seasonsCore = z.array(z.string());\n\nexport class StoriesApi extends ApiBase {\n\t/**\n\t * Returns information about the Story Journal stories; including the personal story and Living World.\n\t */\n\tasync getStories(): Promise<z.infer<typeof storiesCore>>;\n\t/**\n\t * Returns information about the Story Journal stories; including the personal story and Living World.\n\t *\n\t * @param ids - List of story ids, or \"all\"\n\t */\n\tasync getStories(ids: number[] | 'all'): Promise<z.infer<typeof StoriesDTO>>;\n\tasync getStories(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof StoriesDTO>(endpoints.stories.byId, { ids }, StoriesDTO);\n\t\treturn await this.buildRequest<typeof storiesCore>(endpoints.stories.all, {}, storiesCore);\n\t}\n\n\t/**\n\t * Returns information about the Story Journal story seasons; including the personal story and Living World.\n\t */\n\tasync getSeasons(): Promise<string[]>;\n\t/**\n\t * Returns information about the Story Journal story seasons; including the personal story and Living World.\n\t *\n\t * @param ids - List of season ids, or \"all\"\n\t */\n\tasync getSeasons(ids: string[] | 'all'): Promise<z.infer<typeof StoriesSeasonsDTO>>;\n\tasync getSeasons(ids?: string[] | 'all') {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof StoriesSeasonsDTO>(\n\t\t\t\tendpoints.seasons.byId,\n\t\t\t\t{ ids },\n\t\t\t\tStoriesSeasonsDTO\n\t\t\t);\n\t\treturn await this.buildRequest<typeof seasonsCore>(endpoints.seasons.all, {}, seasonsCore);\n\t}\n}\n","import { ApiBase } from '../../base/apiBase';\nimport { logger } from '../../base/logger';\nimport { SubtokenDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport type { ApiPermissions, EndpointUrls } from '../v2apiUtils';\n\n/**\n * /v2/createsubtoken Api\n */\nexport class SubtokenApi extends ApiBase {\n\t/**\n\t * Creates a subtoken, or an Api key with limited permissions.\n\t *\n\t * @param expire - Expiration date. Either valid date format, or ISO-8601\n\t * @param permissions - Api token permissions\n\t * @param urls - Specific /v2/ api urls to allow access to\n\t */\n\tasync get(expire: string, permissions: ApiPermissions[], urls?: EndpointUrls[]) {\n\t\ttry {\n\t\t\texpire = new Date(expire).toISOString();\n\t\t} catch (e: unknown) {\n\t\t\tif (e instanceof RangeError) {\n\t\t\t\tlogger.error('Date must be of valid, or of ISO-8601 format.');\n\t\t\t\tthrow new RangeError();\n\t\t\t}\n\t\t}\n\n\t\tif (urls) {\n\t\t\treturn await this.buildRequest<typeof SubtokenDTO>(\n\t\t\t\tendpoints.createSubtoken.url,\n\t\t\t\t{\n\t\t\t\t\texpire,\n\t\t\t\t\tpermissions,\n\t\t\t\t\turls\n\t\t\t\t},\n\t\t\t\tSubtokenDTO\n\t\t\t);\n\t\t}\n\t\treturn await this.buildRequest<typeof SubtokenDTO>(\n\t\t\tendpoints.createSubtoken.noUrl,\n\t\t\t{\n\t\t\t\texpire,\n\t\t\t\tpermissions\n\t\t\t},\n\t\t\tSubtokenDTO\n\t\t);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { TitlesDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\nexport class TitlesApi extends ApiBase {\n\t/**\n\t * Returns information about the titles that are in the game.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about the titles that are in the game.\n\t *\n\t * @param ids - List of title ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof TitlesDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof TitlesDTO>(endpoints.titles.byId, { ids }, TitlesDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.titles.all, {}, numberArrayType);\n\t}\n}\n","import { ApiBase } from '../../base/apiBase';\nimport { TokenInfoDTO } from '../../models';\nimport { endpoints } from '../endpoints';\n\n/**\n * /v2/tokeninfo Api\n */\nexport class TokenInfoApi extends ApiBase {\n\t/**\n\t * Returns information about the supplied API key.\n\t */\n\tasync get() {\n\t\treturn await this.buildRequest<typeof TokenInfoDTO>(endpoints.tokenInfo, {}, TokenInfoDTO);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { TraitsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/traits Api\n */\nexport class TraitsApi extends ApiBase {\n\t/**\n\t * Returns information about specific traits which are contained within specializations.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about specific traits which are contained within specializations.\n\t *\n\t * @param ids - List of trait ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof TraitsDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof TraitsDTO>(endpoints.traits.byId, { ids }, TraitsDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.traits.all, {}, numberArrayType);\n\t}\n}\n","import { ApiBase } from '../../base/apiBase';\nimport { endpoints } from '../endpoints';\nimport { stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/worldbosses Api\n */\nexport class WorldBossesApi extends ApiBase {\n\t/**\n\t * Returns information about scheduled World bosses in Core Tyria that reward boss chests that can be be opened once a day in-game.\n\t */\n\tasync get() {\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.worldBosses, {}, stringArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport { WorldsDTO } from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType } from '../v2apiUtils';\n\n/**\n * /v2/worlds Api\n */\nexport class WorldsApi extends ApiBase {\n\t/**\n\t * Returns information about the available worlds, or servers.\n\t */\n\tasync get(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about the available worlds, or servers.\n\t *\n\t * @param ids - List of realm ids, or \"all\"\n\t */\n\tasync get(ids: number[] | 'all'): Promise<z.infer<typeof WorldsDTO>>;\n\tasync get(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof WorldsDTO>(endpoints.worlds.byId, { ids }, WorldsDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.worlds.all, {}, numberArrayType);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport {\n\tPvPAmuletsDTO,\n\tPvPGamesDTO,\n\tPvPHeroesDTO,\n\tPvPRanksDTO,\n\tPvPSeasonDTO,\n\tPvPSeasonLeaderboardRegionsDTO,\n\tPvPSeasonLeaderboardsDTO,\n\tPvPStandingsDTO,\n\tPvPStatsDTO\n} from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType, stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/pvp Api\n */\nexport class PvPApi extends ApiBase {\n\t/**\n\t * Returns information about the PvP amulets that are in the game.\n\t */\n\tasync getAmulets(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about the PvP amulets that are in the game.\n\t *\n\t * @param ids - List of amulet ids, or \"all\"\n\t */\n\tasync getAmulets(ids: number[] | 'all'): Promise<z.infer<typeof PvPAmuletsDTO>>;\n\tasync getAmulets(ids?: number[] | 'all') {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof PvPAmuletsDTO>(endpoints.pvp.amuletsById, { ids }, PvPAmuletsDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.pvp.amuletsAll, {}, numberArrayType);\n\t}\n\n\t/**\n\t * Returns information about past PvP matches the player has participated in.\n\t */\n\tasync getGames(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns information about past PvP matches the player has participated in.\n\t *\n\t * @param ids - List of game ids, or \"all\"\n\t */\n\tasync getGames(ids: string[] | 'all'): Promise<z.infer<typeof PvPGamesDTO>>;\n\tasync getGames(ids?: string[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof PvPGamesDTO>(endpoints.pvp.gamesById, { ids }, PvPGamesDTO);\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.pvp.gamesAll, {}, stringArrayType);\n\t}\n\n\t/**\n\t * Returns information about pvp heroes that are available in-game.\n\t */\n\tasync getHeroes(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns information about pvp heroes that are available in-game.\n\t *\n\t * @param ids - List of hero ids, or \"all\"\n\t */\n\tasync getHeroes(ids: string[] | 'all'): Promise<z.infer<typeof PvPHeroesDTO>>;\n\tasync getHeroes(ids?: string[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof PvPHeroesDTO>(endpoints.pvp.heroesById, { ids }, PvPHeroesDTO);\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.pvp.heroesAll, {}, stringArrayType);\n\t}\n\n\t/**\n\t * Returns information about the available ranks in the Player versus Player game mode.\n\t */\n\tasync getRanks(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about the available ranks in the Player versus Player game mode.\n\t *\n\t * @param ids - List of rank ids, or \"all\"\n\t */\n\tasync getRanks(ids: number[] | 'all'): Promise<z.infer<typeof PvPRanksDTO>>;\n\tasync getRanks(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof PvPRanksDTO>(endpoints.pvp.ranksById, { ids }, PvPRanksDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.pvp.ranksAll, {}, numberArrayType);\n\t}\n\n\t/**\n\t * Returns information about League seasons.\n\t */\n\tasync getSeasons(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns information about League seasons.\n\t *\n\t * @param ids - Season ids, or \"all\"\n\t */\n\tasync getSeasons(ids: string[] | 'all'): Promise<z.infer<typeof PvPSeasonDTO>>;\n\tasync getSeasons(ids?: string[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof PvPSeasonDTO>(endpoints.pvp.seasonsById, { ids }, PvPSeasonDTO);\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.pvp.seasonsAll, {}, stringArrayType);\n\t}\n\n\t/**\n\t * Returns information about League season leaderboards for either NA or EU.\n\t *\n\t * @param id - PvP season id\n\t */\n\tasync getLeaderboards(id: string): Promise<z.infer<typeof PvPSeasonLeaderboardRegionsDTO>>;\n\t/**\n\t * Returns information about League season leaderboards for either NA or EU.\n\t *\n\t * @param id - PvP season id\n\t * @param region - EU or NA region\n\t * @param type - For season 1-4, legendary or guild type. For season 5+, \"ladder\"\n\t */\n\tasync getLeaderboards(\n\t\tid: string,\n\t\tregion: 'na' | 'eu',\n\t\ttype: 'legendary' | 'guild' | 'ladder'\n\t): Promise<z.infer<typeof PvPSeasonLeaderboardsDTO>>;\n\tasync getLeaderboards(id: string, region?: 'na' | 'eu', type?: 'legendary' | 'guild' | 'ladder') {\n\t\tif (type && region)\n\t\t\treturn await this.buildRequest<typeof PvPSeasonLeaderboardsDTO>(\n\t\t\t\tendpoints.pvp.leaderboards,\n\t\t\t\t{ id, type, region },\n\t\t\t\tPvPSeasonLeaderboardsDTO\n\t\t\t);\n\t\treturn await this.buildRequest<typeof PvPSeasonLeaderboardRegionsDTO>(\n\t\t\tendpoints.pvp.leaderboardsNoType,\n\t\t\t{ id },\n\t\t\tPvPSeasonLeaderboardRegionsDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns information about player pips.\n\t */\n\tasync getStandings() {\n\t\treturn await this.buildRequest<typeof PvPStandingsDTO>(endpoints.pvp.standings, {}, PvPStandingsDTO);\n\t}\n\n\t/**\n\t * Resource returns information about wins and losses in the account's PvP matches.\n\t */\n\tasync getStats() {\n\t\treturn await this.buildRequest<typeof PvPStatsDTO>(endpoints.pvp.stats, {}, PvPStatsDTO);\n\t}\n}\n","import { type z } from 'zod';\nimport { ApiBase } from '../../base/apiBase';\nimport {\n\tWvWAbilitiesDTO,\n\tWvWMatchesDTO,\n\tWvWMatchesOverviewDTO,\n\tWvWMatchesScoresDTO,\n\tWvWMatchesStatsDTO,\n\tWvWObjectivesDTO,\n\tWvWRanksDTO,\n\tWvWUpgradesDTO\n} from '../../models';\nimport { endpoints } from '../endpoints';\nimport { numberArrayType, stringArrayType } from '../v2apiUtils';\n\n/**\n * /v2/wvw Api\n */\nexport class WorldVsWorldApi extends ApiBase {\n\t/**\n\t * Returns information about the available abilities in the World versus World game mode.\n\t */\n\tasync getAbilities(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about the available abilities in the World versus World game mode.\n\t *\n\t * @param ids - List of WvW ability ids\n\t */\n\tasync getAbilities(ids: number[] | 'all'): Promise<z.infer<typeof WvWAbilitiesDTO>>;\n\tasync getAbilities(ids?: number[] | 'all') {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof WvWAbilitiesDTO>(\n\t\t\t\tendpoints.wvw.abilitiesById,\n\t\t\t\t{ ids },\n\t\t\t\tWvWAbilitiesDTO\n\t\t\t);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.wvw.abilities, {}, numberArrayType);\n\t}\n\n\t/**\n\t * Returns further details about the specified match, including the total score, kills and deaths, and further details for each map.\n\t */\n\tasync getMatches(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns further details about the specified match, including the total score, kills and deaths, and further details for each map.\n\t *\n\t * @param ids - List of match ids, or \"all\"\n\t */\n\tasync getMatches(ids: Array<`${number}-${number}`> | 'all'): Promise<z.infer<typeof WvWMatchesDTO>>;\n\tasync getMatches(ids?: Array<`${number}-${number}`> | 'all') {\n\t\tif (ids) {\n\t\t\treturn await this.buildRequest<typeof WvWMatchesDTO>(endpoints.wvw.matchesById, { ids }, WvWMatchesDTO);\n\t\t}\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.wvw.matches, {}, stringArrayType);\n\t}\n\n\t/**\n\t * Returns further details about the specified match, including the total score, kills and deaths, and further details for each map.\n\t * The same information as {@link WorldVsWorldApi#getMatches}, however more limited.\n\t *\n\t * @param type - Overview, Scores, or Stats for the matches\n\t * @param world - World id\n\t */\n\tasync getMatchesByWorld(type: 'overview' | 'scores' | 'stats', world: number) {\n\t\tif (type === 'overview') {\n\t\t\treturn await this.buildRequest<typeof WvWMatchesOverviewDTO>(\n\t\t\t\tendpoints.wvw.matchesByWorld,\n\t\t\t\t{\n\t\t\t\t\ttype,\n\t\t\t\t\tworld\n\t\t\t\t},\n\t\t\t\tWvWMatchesOverviewDTO\n\t\t\t);\n\t\t}\n\t\tif (type === 'scores') {\n\t\t\treturn await this.buildRequest<typeof WvWMatchesScoresDTO>(\n\t\t\t\tendpoints.wvw.matchesByWorld,\n\t\t\t\t{\n\t\t\t\t\ttype,\n\t\t\t\t\tworld\n\t\t\t\t},\n\t\t\t\tWvWMatchesScoresDTO\n\t\t\t);\n\t\t}\n\t\treturn await this.buildRequest<typeof WvWMatchesStatsDTO>(\n\t\t\tendpoints.wvw.matchesByWorld,\n\t\t\t{\n\t\t\t\ttype,\n\t\t\t\tworld\n\t\t\t},\n\t\t\tWvWMatchesStatsDTO\n\t\t);\n\t}\n\n\t/**\n\t * Returns details about World vs. World objectives such as camps, towers, and keeps.\n\t */\n\tasync getObjectives(): Promise<z.infer<typeof stringArrayType>>;\n\t/**\n\t * Returns details about World vs. World objectives such as camps, towers, and keeps.\n\t *\n\t * @param ids - Objective ids, or \"all\"\n\t */\n\tasync getObjectives(ids: Array<`${number}-${number}`>): Promise<z.infer<typeof WvWObjectivesDTO>>;\n\tasync getObjectives(ids?: Array<`${number}-${number}`>) {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof WvWObjectivesDTO>(\n\t\t\t\tendpoints.wvw.objectivesById,\n\t\t\t\t{ ids },\n\t\t\t\tWvWObjectivesDTO\n\t\t\t);\n\t\treturn await this.buildRequest<typeof stringArrayType>(endpoints.wvw.objectives, {}, stringArrayType);\n\t}\n\n\t/**\n\t * Returns information about the available ranks in the World versus World game mode.\n\t */\n\tasync getRanks(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns information about the available ranks in the World versus World game mode.\n\t *\n\t * @param ids - List of WvW rank ids, or \"all\"\n\t */\n\tasync getRanks(ids: number[] | 'all'): Promise<z.infer<typeof WvWRanksDTO>>;\n\tasync getRanks(ids?: number[] | 'all') {\n\t\tif (ids) return await this.buildRequest<typeof WvWRanksDTO>(endpoints.wvw.ranksById, { ids }, WvWRanksDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.wvw.ranks, {}, numberArrayType);\n\t}\n\n\t/**\n\t * Returns details about available World vs. World upgrades for objectives such as camps, towers, and keeps.\n\t */\n\tasync getUpgrades(): Promise<z.infer<typeof numberArrayType>>;\n\t/**\n\t * Returns details about available World vs. World upgrades for objectives such as camps, towers, and keeps.\n\t *\n\t * @param ids - List of WvW upgrades, or \"all\"\n\t */\n\tasync getUpgrades(ids: number[] | 'all'): Promise<z.infer<typeof WvWUpgradesDTO>>;\n\tasync getUpgrades(ids?: number[] | 'all') {\n\t\tif (ids)\n\t\t\treturn await this.buildRequest<typeof WvWUpgradesDTO>(endpoints.wvw.upgradesById, { ids }, WvWUpgradesDTO);\n\t\treturn await this.buildRequest<typeof numberArrayType>(endpoints.wvw.upgradesAll, {}, numberArrayType);\n\t}\n}\n","import {\n\tAccountApi,\n\tAchievementsApi,\n\tBackstoryApi,\n\tBuildApi,\n\tCharactersApi,\n\tColorsApi,\n\tCommerceApi,\n\tContinentsApi,\n\tCurrenciesApi,\n\tDailyCraftingApi,\n\tDungeonsApi,\n\tEmblemApi,\n\tEmotesApi,\n\tFilesApi,\n\tFinishersApi,\n\tGlidersApi,\n\tGuildApi,\n\tHomeApi,\n\tItemStatsApi,\n\tItemsApi,\n\tJadebotsApi,\n\tLegendaryArmoryApi,\n\tLegendsApi,\n\tMailCarriersApi,\n\tMapChestsApi,\n\tMapsApi,\n\tMasteriesApi,\n\tMaterialsApi,\n\tMinisApi,\n\tMountsApi,\n\tNoveltiesApi,\n\tOutfitsApi,\n\tPetsApi,\n\tProfessionsApi,\n\tPvPApi,\n\tQuaggansApi,\n\tQuestsApi,\n\tRacesApi,\n\tRaidsApi,\n\tRecipesApi,\n\tSkiffsApi,\n\tSkillsApi,\n\tSkinsApi,\n\tSpecializationsApi,\n\tStoriesApi,\n\tSubtokenApi,\n\tTitlesApi,\n\tTokenInfoApi,\n\tTraitsApi,\n\tWorldBossesApi,\n\tWorldVsWorldApi,\n\tWorldsApi\n} from './apis';\nimport { ApiBase } from './base/apiBase';\n\nexport class GW2Api extends ApiBase {\n\t/** /v2/account Api */\n\treadonly account = new AccountApi(this.getParams());\n\n\t/** /v2/achievements Api */\n\treadonly achievements = new AchievementsApi(this.getParams());\n\n\t/** /v2/backstory Api */\n\treadonly backstory = new BackstoryApi(this.getParams());\n\n\t/** /v2/build Api */\n\treadonly build = new BuildApi(this.getParams());\n\n\t/** /v2/characters Api */\n\treadonly characters = new CharactersApi(this.getParams());\n\n\t/** /v2/colors Api */\n\treadonly colors = new ColorsApi(this.getParams());\n\n\t/** /v2/commerce Api */\n\treadonly commerce = new CommerceApi(this.getParams());\n\n\t/** /v2/continents Api */\n\treadonly continents = new ContinentsApi(this.getParams());\n\n\t/** /v2/currencies Api */\n\treadonly currencies = new CurrenciesApi(this.getParams());\n\n\t/** /v2/dailycrafting Api */\n\treadonly dailyCrafting = new DailyCraftingApi(this.getParams());\n\n\t/** /v2/dungeons Api */\n\treadonly dungeons = new DungeonsApi(this.getParams());\n\n\t/** /v2/emblem Api */\n\treadonly emblem = new EmblemApi(this.getParams());\n\n\t/** /v2/emotes Api */\n\treadonly emotes = new EmotesApi(this.getParams());\n\n\t/** /v2/files Api */\n\treadonly files = new FilesApi(this.getParams());\n\n\t/** /v2/finishers Api */\n\treadonly finishers = new FinishersApi(this.getParams());\n\n\t/** /v2/gliders Api */\n\treadonly gliders = new GlidersApi(this.getParams());\n\n\t/** /v2/guild Api */\n\treadonly guild = new GuildApi(this.getParams());\n\n\t/** /v2/home Api */\n\treadonly home = new HomeApi(this.getParams());\n\n\t/** /v2/items Api */\n\treadonly items = new ItemsApi(this.getParams());\n\n\t/** /v2/itemstats Api */\n\treadonly itemstats = new ItemStatsApi(this.getParams());\n\n\t/** /v2/jadebots Api */\n\treadonly jadebots = new JadebotsApi(this.getParams());\n\n\t/** /v2/legendaryarmory Api */\n\treadonly legendaryArmory = new LegendaryArmoryApi(this.getParams());\n\n\t/** /v2/legends Api */\n\treadonly legends = new LegendsApi(this.getParams());\n\n\t/** /v2/mailcarriers Api */\n\treadonly mailCarriers = new MailCarriersApi(this.getParams());\n\n\t/** /v2/mapchests Api */\n\treadonly mapChests = new MapChestsApi(this.getParams());\n\n\t/** /v2/maps Api */\n\treadonly maps = new MapsApi(this.getParams());\n\n\t/** /v2/masteries Api */\n\treadonly masteries = new MasteriesApi(this.getParams());\n\n\t/** /v2/materials Api */\n\treadonly materials = new MaterialsApi(this.getParams());\n\n\t/** /v2/minis Api */\n\treadonly minis = new MinisApi(this.getParams());\n\n\t/** /v2/mounts Api */\n\treadonly mounts = new MountsApi(this.getParams());\n\n\t/** /v2/novelties Api */\n\treadonly novelties = new NoveltiesApi(this.getParams());\n\n\t/** /v2/outfits Api */\n\treadonly outfits = new OutfitsApi(this.getParams());\n\n\t/** /v2/pets Api */\n\treadonly pets = new PetsApi(this.getParams());\n\n\t/** /v2/professions Api */\n\treadonly professions = new ProfessionsApi(this.getParams());\n\n\t/** /v2/pvp Api */\n\treadonly pvp = new PvPApi(this.getParams());\n\n\t/** /v2/quaggans Api */\n\treadonly quaggans = new QuaggansApi(this.getParams());\n\n\t/** /v2/quests Api */\n\treadonly quests = new QuestsApi(this.getParams());\n\n\t/** /v2/races Api */\n\treadonly races = new RacesApi(this.getParams());\n\n\t/** /v2/raids Api */\n\treadonly raids = new RaidsApi(this.getParams());\n\n\t/** /v2/recipes Api */\n\treadonly recipes = new RecipesApi(this.getParams());\n\n\t/** /v2/skiffs Api */\n\treadonly skiffs = new SkiffsApi(this.getParams());\n\n\t/** /v2/skills Api */\n\treadonly skills = new SkillsApi(this.getParams());\n\n\t/** /v2/skins Api */\n\treadonly skins = new SkinsApi(this.getParams());\n\n\t/** /v2/specializations Api */\n\treadonly specializations = new SpecializationsApi(this.getParams());\n\n\t/** /v2/stories Api */\n\treadonly stories = new StoriesApi(this.getParams());\n\n\t/** /v2/subtoken Api */\n\treadonly subtoken = new SubtokenApi(this.getParams());\n\n\t/** /v2/titles Api */\n\treadonly titles = new TitlesApi(this.getParams());\n\n\t/** /v2/tokeninfo Api */\n\treadonly tokenInfo = new TokenInfoApi(this.getParams());\n\n\t/** /v2/traits Api */\n\treadonly traits = new TraitsApi(this.getParams());\n\n\t/** /v2/worldbosses Api */\n\treadonly worldBosses = new WorldBossesApi(this.getParams());\n\n\t/** /v2/worlds Api */\n\treadonly worlds = new WorldsApi(this.getParams());\n\n\t/** /v2/wvw Api */\n\treadonly wvw = new WorldVsWorldApi(this.getParams());\n}\n"]}
|