@pinta365/blizzard_api 0.7.0 → 0.8.0

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.
Files changed (62) hide show
  1. package/README.md +40 -4
  2. package/esm/mod.d.ts +4 -2
  3. package/esm/mod.js +2 -0
  4. package/esm/src/client.d.ts +9 -1
  5. package/esm/src/client.js +2 -0
  6. package/esm/src/generated/wow_forever_api.d.ts +939 -0
  7. package/esm/src/generated/wow_forever_api.js +2 -0
  8. package/esm/src/shared/context.d.ts +13 -2
  9. package/esm/src/shared/context.js +24 -9
  10. package/esm/src/shared/types.d.ts +1 -1
  11. package/esm/src/wow/game_data/achievement.d.ts +4 -0
  12. package/esm/src/wow/game_data/item.d.ts +29 -6
  13. package/esm/src/wow/game_data/mount.d.ts +2 -1
  14. package/esm/src/wow/game_data/reputations.d.ts +7 -1
  15. package/esm/src/wow/game_data/talent.d.ts +6 -2
  16. package/esm/src/wow/profile/account_profile.d.ts +2 -1
  17. package/esm/src/wow/profile/character_statistics.d.ts +4 -0
  18. package/esm/src/wow_forever/account.d.ts +42 -0
  19. package/esm/src/wow_forever/account.js +24 -0
  20. package/esm/src/wow_forever/character.d.ts +336 -0
  21. package/esm/src/wow_forever/character.js +269 -0
  22. package/esm/src/wow_forever/game_data.d.ts +196 -0
  23. package/esm/src/wow_forever/game_data.js +166 -0
  24. package/esm/src/wow_forever/guild.d.ts +88 -0
  25. package/esm/src/wow_forever/guild.js +57 -0
  26. package/esm/src/wow_forever/index.d.ts +39 -0
  27. package/esm/src/wow_forever/index.js +45 -0
  28. package/esm/src/wow_forever/ruleset.d.ts +32 -0
  29. package/esm/src/wow_forever/ruleset.js +30 -0
  30. package/esm/src/wow_forever/types.d.ts +5 -0
  31. package/esm/src/wow_forever/types.js +1 -0
  32. package/package.json +5 -1
  33. package/script/mod.d.ts +4 -2
  34. package/script/mod.js +3 -1
  35. package/script/src/client.d.ts +9 -1
  36. package/script/src/client.js +2 -0
  37. package/script/src/generated/wow_forever_api.d.ts +939 -0
  38. package/script/src/generated/wow_forever_api.js +3 -0
  39. package/script/src/shared/context.d.ts +13 -2
  40. package/script/src/shared/context.js +24 -9
  41. package/script/src/shared/types.d.ts +1 -1
  42. package/script/src/wow/game_data/achievement.d.ts +4 -0
  43. package/script/src/wow/game_data/item.d.ts +29 -6
  44. package/script/src/wow/game_data/mount.d.ts +2 -1
  45. package/script/src/wow/game_data/reputations.d.ts +7 -1
  46. package/script/src/wow/game_data/talent.d.ts +6 -2
  47. package/script/src/wow/profile/account_profile.d.ts +2 -1
  48. package/script/src/wow/profile/character_statistics.d.ts +4 -0
  49. package/script/src/wow_forever/account.d.ts +42 -0
  50. package/script/src/wow_forever/account.js +28 -0
  51. package/script/src/wow_forever/character.d.ts +336 -0
  52. package/script/src/wow_forever/character.js +296 -0
  53. package/script/src/wow_forever/game_data.d.ts +196 -0
  54. package/script/src/wow_forever/game_data.js +185 -0
  55. package/script/src/wow_forever/guild.d.ts +88 -0
  56. package/script/src/wow_forever/guild.js +63 -0
  57. package/script/src/wow_forever/index.d.ts +39 -0
  58. package/script/src/wow_forever/index.js +180 -0
  59. package/script/src/wow_forever/ruleset.d.ts +32 -0
  60. package/script/src/wow_forever/ruleset.js +34 -0
  61. package/script/src/wow_forever/types.d.ts +5 -0
  62. package/script/src/wow_forever/types.js +2 -0
@@ -0,0 +1,336 @@
1
+ /**
2
+ * WoW: Forever character profile endpoints. Forever is realmless: a character is identified by its two-part name
3
+ * (`name` and `surname`, unique per region), and the URL is `/profile/wow/character/{name}-{surname}`.
4
+ * Characters are only served once they reach level 10; below that the API returns 404.
5
+ * Verified against the live API (EU) on 2026-11-05.
6
+ */
7
+ import type { ApiContext, Href, KeyNameId, LocalizedString, TypeName } from "../shared/index.js";
8
+ import type { CharacterAchievementStatistics, CharacterAchievementSummary } from "../wow/profile/character_achievements.js";
9
+ import type { CharacterAppearanceSummary } from "../wow/profile/character_appearance.js";
10
+ import type { CharacterCollectionHeirlooms, CharacterCollectionMounts, CharacterCollectionPets, CharacterCollectionToys, CharacterCollectionTransmogs, CharacterCollectionTypes } from "../wow/profile/character_collections.js";
11
+ import type { CharacterEncounterDungeons, CharacterEncounterRaids, CharacterEncounters } from "../wow/profile/character_encounters.js";
12
+ import type { characterEquipments as CharacterEquipments } from "../wow/profile/character_equipment.js";
13
+ import type { CharacterMedia } from "../wow/profile/character_media.js";
14
+ import type { CharacterMythicKeystoneProfile } from "../wow/profile/character_mythic_keystone_profile.js";
15
+ import type { CharacterProfessions } from "../wow/profile/character_professions.js";
16
+ import type { CharacterProfile, CharacterProfileStatus } from "../wow/profile/character_profile.js";
17
+ import type { CharacterCompletedQuests, CharacterQuests } from "../wow/profile/character_quests.js";
18
+ import type { CharacterReputations } from "../wow/profile/character_reputations.js";
19
+ import type { CharacterStatistics } from "../wow/profile/character_statistics.js";
20
+ import type { CharacterTitles } from "../wow/profile/character_titles.js";
21
+ /** A reference to a Forever character, as found in the `character` field of the character endpoints. */
22
+ export interface ForeverCharacterRef {
23
+ key: Href;
24
+ name: string;
25
+ id: number;
26
+ /** The second part of the character's name. */
27
+ surname: string;
28
+ /** The character's URL slug, `{name}-{surname}` in lowercase. */
29
+ slug: string;
30
+ }
31
+ /** A Retail character response with the realm-based `character` reference replaced by the Forever one. */
32
+ export type WithForeverCharacter<T extends {
33
+ character: unknown;
34
+ }> = Omit<T, "character"> & {
35
+ character: ForeverCharacterRef;
36
+ };
37
+ /** Character profile summary as returned for Forever. */
38
+ export interface ForeverCharacterProfile extends Omit<CharacterProfile, "realm" | "guild" | "covenant_progress"> {
39
+ /** The second part of the character's name. */
40
+ surname: string;
41
+ /** The character's ruleset (Normal, PvP, Roleplay, Roleplay PvP). */
42
+ ruleset: KeyNameId;
43
+ /** Absent when the character is not in a guild. Forever guilds are realmless. */
44
+ guild?: {
45
+ key: Href;
46
+ name: LocalizedString;
47
+ id: number;
48
+ faction: TypeName;
49
+ slug: string;
50
+ };
51
+ }
52
+ type WithOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
53
+ /** A talent in a Forever talent tree. */
54
+ export interface ForeverCharacterTalent {
55
+ talent: {
56
+ name: string;
57
+ id: number;
58
+ };
59
+ spell_tooltip: {
60
+ spell: {
61
+ name: string;
62
+ id: number;
63
+ };
64
+ description: LocalizedString;
65
+ cast_time: LocalizedString;
66
+ power_cost?: LocalizedString | null;
67
+ range?: LocalizedString;
68
+ cooldown?: LocalizedString;
69
+ };
70
+ talent_rank: number;
71
+ }
72
+ /**
73
+ * Character specializations as returned for Forever: talent trees with points spent per tree, grouped per talent
74
+ * group (like Classic Era), instead of Retail's loadouts.
75
+ */
76
+ export interface ForeverCharacterSpecializations {
77
+ _links: {
78
+ self: Href;
79
+ };
80
+ character: ForeverCharacterRef;
81
+ specialization_groups: {
82
+ is_active: boolean;
83
+ /** Absent while no talent points are spent in the group. */
84
+ specializations?: {
85
+ specialization: KeyNameId;
86
+ specialization_name: string;
87
+ spent_points: number;
88
+ talents: ForeverCharacterTalent[];
89
+ }[];
90
+ }[];
91
+ }
92
+ /** Character PvP summary as returned for Forever: a Classic-style `pvp_rank`, no honor level or brackets. */
93
+ export interface ForeverCharacterPvpSummary {
94
+ _links: {
95
+ self: Href;
96
+ };
97
+ character: ForeverCharacterRef;
98
+ honorable_kills: number;
99
+ pvp_rank: number;
100
+ }
101
+ export type ForeverCharacterProfileStatus = CharacterProfileStatus;
102
+ /** `category_progress` and `recent_events` are absent while the character has no achievement points. */
103
+ export interface ForeverCharacterAchievementSummary extends WithOptional<WithForeverCharacter<CharacterAchievementSummary>, "category_progress" | "recent_events"> {
104
+ }
105
+ export type ForeverCharacterAchievementStatistics = WithForeverCharacter<CharacterAchievementStatistics>;
106
+ export type ForeverCharacterAppearanceSummary = WithForeverCharacter<CharacterAppearanceSummary>;
107
+ export type ForeverCharacterCollectionTypes = WithForeverCharacter<CharacterCollectionTypes>;
108
+ export type ForeverCharacterCollectionMounts = CharacterCollectionMounts;
109
+ export type ForeverCharacterCollectionPets = CharacterCollectionPets;
110
+ export type ForeverCharacterCollectionToys = CharacterCollectionToys;
111
+ export type ForeverCharacterCollectionHeirlooms = CharacterCollectionHeirlooms;
112
+ /** `appearance_sets` is absent when the character has collected no appearance sets. */
113
+ export interface ForeverCharacterCollectionTransmogs extends WithOptional<CharacterCollectionTransmogs, "appearance_sets"> {
114
+ }
115
+ export type ForeverCharacterEncounters = WithForeverCharacter<CharacterEncounters>;
116
+ /** `expansions` is absent when the character has completed no dungeons. */
117
+ export interface ForeverCharacterEncounterDungeons extends WithOptional<CharacterEncounterDungeons, "expansions"> {
118
+ }
119
+ /** `expansions` is absent when the character has completed no raids. */
120
+ export interface ForeverCharacterEncounterRaids extends WithOptional<WithForeverCharacter<CharacterEncounterRaids>, "expansions"> {
121
+ }
122
+ export type ForeverCharacterEquipment = WithForeverCharacter<CharacterEquipments>;
123
+ export type ForeverCharacterMedia = WithForeverCharacter<CharacterMedia>;
124
+ /** `seasons` is absent when the character has no Mythic Keystone seasons. */
125
+ export interface ForeverCharacterMythicKeystoneProfile extends WithOptional<WithForeverCharacter<CharacterMythicKeystoneProfile>, "seasons"> {
126
+ }
127
+ export type ForeverCharacterProfessions = WithForeverCharacter<CharacterProfessions>;
128
+ export type ForeverCharacterQuests = WithForeverCharacter<CharacterQuests>;
129
+ export type ForeverCharacterCompletedQuests = WithForeverCharacter<CharacterCompletedQuests>;
130
+ export type ForeverCharacterReputations = WithForeverCharacter<CharacterReputations>;
131
+ export type ForeverCharacterStatistics = WithForeverCharacter<CharacterStatistics>;
132
+ /** `titles` is absent when the character has no titles. */
133
+ export interface ForeverCharacterTitles extends WithOptional<WithForeverCharacter<CharacterTitles>, "titles"> {
134
+ }
135
+ /**
136
+ * Returns a profile summary for a character.
137
+ *
138
+ * @param name - The character's name (first part), e.g. "Anduin". Case-insensitive.
139
+ * @param surname - The character's surname (second part), e.g. "Wrynn". Case-insensitive.
140
+ * @returns A promise that resolves to an object representing a profile summary.
141
+ */
142
+ export declare function characterProfile(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterProfile>;
143
+ /**
144
+ * Returns the status and a unique ID for a character. Use the ID to check whether a character with the same name is
145
+ * still the same character.
146
+ *
147
+ * @param name - The character's name (first part). Case-insensitive.
148
+ * @param surname - The character's surname (second part). Case-insensitive.
149
+ * @returns A promise that resolves to an object representing the character's status.
150
+ */
151
+ export declare function characterProfileStatus(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterProfileStatus>;
152
+ /**
153
+ * Returns a summary of the achievements a character has completed.
154
+ *
155
+ * @param name - The character's name (first part). Case-insensitive.
156
+ * @param surname - The character's surname (second part). Case-insensitive.
157
+ * @returns A promise that resolves to an object representing the achievement summary.
158
+ */
159
+ export declare function characterAchievementSummary(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterAchievementSummary>;
160
+ /**
161
+ * Returns a character's statistics as they pertain to achievements.
162
+ *
163
+ * @param name - The character's name (first part). Case-insensitive.
164
+ * @param surname - The character's surname (second part). Case-insensitive.
165
+ * @returns A promise that resolves to an object representing the achievement statistics.
166
+ */
167
+ export declare function characterAchievementStatistics(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterAchievementStatistics>;
168
+ /**
169
+ * Returns a summary of a character's appearance settings.
170
+ *
171
+ * @param name - The character's name (first part). Case-insensitive.
172
+ * @param surname - The character's surname (second part). Case-insensitive.
173
+ * @returns A promise that resolves to an object representing the appearance summary.
174
+ */
175
+ export declare function characterAppearanceSummary(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterAppearanceSummary>;
176
+ /**
177
+ * Returns an index of collection types for a character.
178
+ *
179
+ * @param name - The character's name (first part). Case-insensitive.
180
+ * @param surname - The character's surname (second part). Case-insensitive.
181
+ * @returns A promise that resolves to an object representing the collection index.
182
+ */
183
+ export declare function characterCollectionTypes(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterCollectionTypes>;
184
+ /**
185
+ * Returns the mounts a character has collected.
186
+ *
187
+ * @param name - The character's name (first part). Case-insensitive.
188
+ * @param surname - The character's surname (second part). Case-insensitive.
189
+ * @returns A promise that resolves to an object representing the collected mounts.
190
+ */
191
+ export declare function characterCollectionMounts(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterCollectionMounts>;
192
+ /**
193
+ * Returns the battle pets a character has collected.
194
+ *
195
+ * @param name - The character's name (first part). Case-insensitive.
196
+ * @param surname - The character's surname (second part). Case-insensitive.
197
+ * @returns A promise that resolves to an object representing the collected pets.
198
+ */
199
+ export declare function characterCollectionPets(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterCollectionPets>;
200
+ /**
201
+ * Returns the toys a character has collected.
202
+ *
203
+ * @param name - The character's name (first part). Case-insensitive.
204
+ * @param surname - The character's surname (second part). Case-insensitive.
205
+ * @returns A promise that resolves to an object representing the collected toys.
206
+ */
207
+ export declare function characterCollectionToys(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterCollectionToys>;
208
+ /**
209
+ * Returns the heirlooms a character has collected.
210
+ *
211
+ * @param name - The character's name (first part). Case-insensitive.
212
+ * @param surname - The character's surname (second part). Case-insensitive.
213
+ * @returns A promise that resolves to an object representing the collected heirlooms.
214
+ */
215
+ export declare function characterCollectionHeirlooms(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterCollectionHeirlooms>;
216
+ /**
217
+ * Returns the transmog appearances a character has collected.
218
+ *
219
+ * @param name - The character's name (first part). Case-insensitive.
220
+ * @param surname - The character's surname (second part). Case-insensitive.
221
+ * @returns A promise that resolves to an object representing the collected transmogs.
222
+ */
223
+ export declare function characterCollectionTransmogs(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterCollectionTransmogs>;
224
+ /**
225
+ * Returns a summary of a character's encounters.
226
+ *
227
+ * @param name - The character's name (first part). Case-insensitive.
228
+ * @param surname - The character's surname (second part). Case-insensitive.
229
+ * @returns A promise that resolves to an object representing the encounter summary.
230
+ */
231
+ export declare function characterEncounters(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterEncounters>;
232
+ /**
233
+ * Returns a summary of a character's completed dungeons.
234
+ *
235
+ * @param name - The character's name (first part). Case-insensitive.
236
+ * @param surname - The character's surname (second part). Case-insensitive.
237
+ * @returns A promise that resolves to an object representing the completed dungeons.
238
+ */
239
+ export declare function characterEncounterDungeons(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterEncounterDungeons>;
240
+ /**
241
+ * Returns a summary of a character's completed raids.
242
+ *
243
+ * @param name - The character's name (first part). Case-insensitive.
244
+ * @param surname - The character's surname (second part). Case-insensitive.
245
+ * @returns A promise that resolves to an object representing the completed raids.
246
+ */
247
+ export declare function characterEncounterRaids(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterEncounterRaids>;
248
+ /**
249
+ * Returns a summary of the items equipped by a character.
250
+ *
251
+ * @param name - The character's name (first part). Case-insensitive.
252
+ * @param surname - The character's surname (second part). Case-insensitive.
253
+ * @returns A promise that resolves to an object representing the equipped items.
254
+ */
255
+ export declare function characterEquipments(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterEquipment>;
256
+ /**
257
+ * Returns a summary of the media assets available for a character (such as an avatar render).
258
+ *
259
+ * @param name - The character's name (first part). Case-insensitive.
260
+ * @param surname - The character's surname (second part). Case-insensitive.
261
+ * @returns A promise that resolves to an object representing the character's media assets.
262
+ */
263
+ export declare function characterMedia(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterMedia>;
264
+ /**
265
+ * Returns the Mythic Keystone profile index for a character.
266
+ *
267
+ * @param name - The character's name (first part). Case-insensitive.
268
+ * @param surname - The character's surname (second part). Case-insensitive.
269
+ * @returns A promise that resolves to an object representing the Mythic Keystone profile.
270
+ */
271
+ export declare function characterMythicKeystoneProfile(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterMythicKeystoneProfile>;
272
+ /**
273
+ * Returns a summary of a character's professions.
274
+ *
275
+ * @param name - The character's name (first part). Case-insensitive.
276
+ * @param surname - The character's surname (second part). Case-insensitive.
277
+ * @returns A promise that resolves to an object representing the professions.
278
+ */
279
+ export declare function characterProfessions(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterProfessions>;
280
+ /**
281
+ * Returns a PvP summary for a character.
282
+ *
283
+ * @param name - The character's name (first part). Case-insensitive.
284
+ * @param surname - The character's surname (second part). Case-insensitive.
285
+ * @returns A promise that resolves to an object representing the PvP summary.
286
+ */
287
+ export declare function characterPvpSummary(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterPvpSummary>;
288
+ /**
289
+ * Returns a character's active quests and links to its completed quests.
290
+ *
291
+ * @param name - The character's name (first part). Case-insensitive.
292
+ * @param surname - The character's surname (second part). Case-insensitive.
293
+ * @returns A promise that resolves to an object representing the quests.
294
+ */
295
+ export declare function characterQuests(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterQuests>;
296
+ /**
297
+ * Returns the quests a character has completed.
298
+ *
299
+ * @param name - The character's name (first part). Case-insensitive.
300
+ * @param surname - The character's surname (second part). Case-insensitive.
301
+ * @returns A promise that resolves to an object representing the completed quests.
302
+ */
303
+ export declare function characterCompletedQuests(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterCompletedQuests>;
304
+ /**
305
+ * Returns a summary of a character's reputations.
306
+ *
307
+ * @param name - The character's name (first part). Case-insensitive.
308
+ * @param surname - The character's surname (second part). Case-insensitive.
309
+ * @returns A promise that resolves to an object representing the reputations.
310
+ */
311
+ export declare function characterReputations(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterReputations>;
312
+ /**
313
+ * Returns a summary of a character's specializations.
314
+ *
315
+ * @param name - The character's name (first part). Case-insensitive.
316
+ * @param surname - The character's surname (second part). Case-insensitive.
317
+ * @returns A promise that resolves to an object representing the specializations.
318
+ */
319
+ export declare function characterSpecializations(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterSpecializations>;
320
+ /**
321
+ * Returns a statistics summary for a character.
322
+ *
323
+ * @param name - The character's name (first part). Case-insensitive.
324
+ * @param surname - The character's surname (second part). Case-insensitive.
325
+ * @returns A promise that resolves to an object representing the statistics.
326
+ */
327
+ export declare function characterStatistics(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterStatistics>;
328
+ /**
329
+ * Returns a summary of the titles a character has obtained.
330
+ *
331
+ * @param name - The character's name (first part). Case-insensitive.
332
+ * @param surname - The character's surname (second part). Case-insensitive.
333
+ * @returns A promise that resolves to an object representing the titles.
334
+ */
335
+ export declare function characterTitles(ctx: ApiContext, name: string, surname: string): Promise<ForeverCharacterTitles>;
336
+ export {};
@@ -0,0 +1,269 @@
1
+ /**
2
+ * WoW: Forever character profile endpoints. Forever is realmless: a character is identified by its two-part name
3
+ * (`name` and `surname`, unique per region), and the URL is `/profile/wow/character/{name}-{surname}`.
4
+ * Characters are only served once they reach level 10; below that the API returns 404.
5
+ * Verified against the live API (EU) on 2026-11-05.
6
+ */
7
+ /** Builds the realmless character path, `/profile/wow/character/{name}-{surname}`. */
8
+ function characterPath(name, surname, path = "") {
9
+ // The request layer encodes the URL, so non-ASCII names (e.g. "Pröudmoore") are passed as they are.
10
+ return `/profile/wow/character/${`${name}-${surname}`.toLowerCase()}${path}`;
11
+ }
12
+ async function request(ctx, name, surname, path = "") {
13
+ return await ctx.request({
14
+ method: "GET",
15
+ url: characterPath(name, surname, path),
16
+ namespace: "profile",
17
+ });
18
+ }
19
+ /**
20
+ * Returns a profile summary for a character.
21
+ *
22
+ * @param name - The character's name (first part), e.g. "Anduin". Case-insensitive.
23
+ * @param surname - The character's surname (second part), e.g. "Wrynn". Case-insensitive.
24
+ * @returns A promise that resolves to an object representing a profile summary.
25
+ */
26
+ export async function characterProfile(ctx, name, surname) {
27
+ return await request(ctx, name, surname);
28
+ }
29
+ /**
30
+ * Returns the status and a unique ID for a character. Use the ID to check whether a character with the same name is
31
+ * still the same character.
32
+ *
33
+ * @param name - The character's name (first part). Case-insensitive.
34
+ * @param surname - The character's surname (second part). Case-insensitive.
35
+ * @returns A promise that resolves to an object representing the character's status.
36
+ */
37
+ export async function characterProfileStatus(ctx, name, surname) {
38
+ return await request(ctx, name, surname, "/status");
39
+ }
40
+ /**
41
+ * Returns a summary of the achievements a character has completed.
42
+ *
43
+ * @param name - The character's name (first part). Case-insensitive.
44
+ * @param surname - The character's surname (second part). Case-insensitive.
45
+ * @returns A promise that resolves to an object representing the achievement summary.
46
+ */
47
+ export async function characterAchievementSummary(ctx, name, surname) {
48
+ return await request(ctx, name, surname, "/achievements");
49
+ }
50
+ /**
51
+ * Returns a character's statistics as they pertain to achievements.
52
+ *
53
+ * @param name - The character's name (first part). Case-insensitive.
54
+ * @param surname - The character's surname (second part). Case-insensitive.
55
+ * @returns A promise that resolves to an object representing the achievement statistics.
56
+ */
57
+ export async function characterAchievementStatistics(ctx, name, surname) {
58
+ return await request(ctx, name, surname, "/achievements/statistics");
59
+ }
60
+ /**
61
+ * Returns a summary of a character's appearance settings.
62
+ *
63
+ * @param name - The character's name (first part). Case-insensitive.
64
+ * @param surname - The character's surname (second part). Case-insensitive.
65
+ * @returns A promise that resolves to an object representing the appearance summary.
66
+ */
67
+ export async function characterAppearanceSummary(ctx, name, surname) {
68
+ return await request(ctx, name, surname, "/appearance");
69
+ }
70
+ /**
71
+ * Returns an index of collection types for a character.
72
+ *
73
+ * @param name - The character's name (first part). Case-insensitive.
74
+ * @param surname - The character's surname (second part). Case-insensitive.
75
+ * @returns A promise that resolves to an object representing the collection index.
76
+ */
77
+ export async function characterCollectionTypes(ctx, name, surname) {
78
+ return await request(ctx, name, surname, "/collections");
79
+ }
80
+ /**
81
+ * Returns the mounts a character has collected.
82
+ *
83
+ * @param name - The character's name (first part). Case-insensitive.
84
+ * @param surname - The character's surname (second part). Case-insensitive.
85
+ * @returns A promise that resolves to an object representing the collected mounts.
86
+ */
87
+ export async function characterCollectionMounts(ctx, name, surname) {
88
+ return await request(ctx, name, surname, "/collections/mounts");
89
+ }
90
+ /**
91
+ * Returns the battle pets a character has collected.
92
+ *
93
+ * @param name - The character's name (first part). Case-insensitive.
94
+ * @param surname - The character's surname (second part). Case-insensitive.
95
+ * @returns A promise that resolves to an object representing the collected pets.
96
+ */
97
+ export async function characterCollectionPets(ctx, name, surname) {
98
+ return await request(ctx, name, surname, "/collections/pets");
99
+ }
100
+ /**
101
+ * Returns the toys a character has collected.
102
+ *
103
+ * @param name - The character's name (first part). Case-insensitive.
104
+ * @param surname - The character's surname (second part). Case-insensitive.
105
+ * @returns A promise that resolves to an object representing the collected toys.
106
+ */
107
+ export async function characterCollectionToys(ctx, name, surname) {
108
+ return await request(ctx, name, surname, "/collections/toys");
109
+ }
110
+ /**
111
+ * Returns the heirlooms a character has collected.
112
+ *
113
+ * @param name - The character's name (first part). Case-insensitive.
114
+ * @param surname - The character's surname (second part). Case-insensitive.
115
+ * @returns A promise that resolves to an object representing the collected heirlooms.
116
+ */
117
+ export async function characterCollectionHeirlooms(ctx, name, surname) {
118
+ return await request(ctx, name, surname, "/collections/heirlooms");
119
+ }
120
+ /**
121
+ * Returns the transmog appearances a character has collected.
122
+ *
123
+ * @param name - The character's name (first part). Case-insensitive.
124
+ * @param surname - The character's surname (second part). Case-insensitive.
125
+ * @returns A promise that resolves to an object representing the collected transmogs.
126
+ */
127
+ export async function characterCollectionTransmogs(ctx, name, surname) {
128
+ return await request(ctx, name, surname, "/collections/transmogs");
129
+ }
130
+ /**
131
+ * Returns a summary of a character's encounters.
132
+ *
133
+ * @param name - The character's name (first part). Case-insensitive.
134
+ * @param surname - The character's surname (second part). Case-insensitive.
135
+ * @returns A promise that resolves to an object representing the encounter summary.
136
+ */
137
+ export async function characterEncounters(ctx, name, surname) {
138
+ return await request(ctx, name, surname, "/encounters");
139
+ }
140
+ /**
141
+ * Returns a summary of a character's completed dungeons.
142
+ *
143
+ * @param name - The character's name (first part). Case-insensitive.
144
+ * @param surname - The character's surname (second part). Case-insensitive.
145
+ * @returns A promise that resolves to an object representing the completed dungeons.
146
+ */
147
+ export async function characterEncounterDungeons(ctx, name, surname) {
148
+ return await request(ctx, name, surname, "/encounters/dungeons");
149
+ }
150
+ /**
151
+ * Returns a summary of a character's completed raids.
152
+ *
153
+ * @param name - The character's name (first part). Case-insensitive.
154
+ * @param surname - The character's surname (second part). Case-insensitive.
155
+ * @returns A promise that resolves to an object representing the completed raids.
156
+ */
157
+ export async function characterEncounterRaids(ctx, name, surname) {
158
+ return await request(ctx, name, surname, "/encounters/raids");
159
+ }
160
+ /**
161
+ * Returns a summary of the items equipped by a character.
162
+ *
163
+ * @param name - The character's name (first part). Case-insensitive.
164
+ * @param surname - The character's surname (second part). Case-insensitive.
165
+ * @returns A promise that resolves to an object representing the equipped items.
166
+ */
167
+ export async function characterEquipments(ctx, name, surname) {
168
+ return await request(ctx, name, surname, "/equipment");
169
+ }
170
+ /**
171
+ * Returns a summary of the media assets available for a character (such as an avatar render).
172
+ *
173
+ * @param name - The character's name (first part). Case-insensitive.
174
+ * @param surname - The character's surname (second part). Case-insensitive.
175
+ * @returns A promise that resolves to an object representing the character's media assets.
176
+ */
177
+ export async function characterMedia(ctx, name, surname) {
178
+ return await request(ctx, name, surname, "/character-media");
179
+ }
180
+ /**
181
+ * Returns the Mythic Keystone profile index for a character.
182
+ *
183
+ * @param name - The character's name (first part). Case-insensitive.
184
+ * @param surname - The character's surname (second part). Case-insensitive.
185
+ * @returns A promise that resolves to an object representing the Mythic Keystone profile.
186
+ */
187
+ export async function characterMythicKeystoneProfile(ctx, name, surname) {
188
+ return await request(ctx, name, surname, "/mythic-keystone-profile");
189
+ }
190
+ /**
191
+ * Returns a summary of a character's professions.
192
+ *
193
+ * @param name - The character's name (first part). Case-insensitive.
194
+ * @param surname - The character's surname (second part). Case-insensitive.
195
+ * @returns A promise that resolves to an object representing the professions.
196
+ */
197
+ export async function characterProfessions(ctx, name, surname) {
198
+ return await request(ctx, name, surname, "/professions");
199
+ }
200
+ /**
201
+ * Returns a PvP summary for a character.
202
+ *
203
+ * @param name - The character's name (first part). Case-insensitive.
204
+ * @param surname - The character's surname (second part). Case-insensitive.
205
+ * @returns A promise that resolves to an object representing the PvP summary.
206
+ */
207
+ export async function characterPvpSummary(ctx, name, surname) {
208
+ return await request(ctx, name, surname, "/pvp-summary");
209
+ }
210
+ /**
211
+ * Returns a character's active quests and links to its completed quests.
212
+ *
213
+ * @param name - The character's name (first part). Case-insensitive.
214
+ * @param surname - The character's surname (second part). Case-insensitive.
215
+ * @returns A promise that resolves to an object representing the quests.
216
+ */
217
+ export async function characterQuests(ctx, name, surname) {
218
+ return await request(ctx, name, surname, "/quests");
219
+ }
220
+ /**
221
+ * Returns the quests a character has completed.
222
+ *
223
+ * @param name - The character's name (first part). Case-insensitive.
224
+ * @param surname - The character's surname (second part). Case-insensitive.
225
+ * @returns A promise that resolves to an object representing the completed quests.
226
+ */
227
+ export async function characterCompletedQuests(ctx, name, surname) {
228
+ return await request(ctx, name, surname, "/quests/completed");
229
+ }
230
+ /**
231
+ * Returns a summary of a character's reputations.
232
+ *
233
+ * @param name - The character's name (first part). Case-insensitive.
234
+ * @param surname - The character's surname (second part). Case-insensitive.
235
+ * @returns A promise that resolves to an object representing the reputations.
236
+ */
237
+ export async function characterReputations(ctx, name, surname) {
238
+ return await request(ctx, name, surname, "/reputations");
239
+ }
240
+ /**
241
+ * Returns a summary of a character's specializations.
242
+ *
243
+ * @param name - The character's name (first part). Case-insensitive.
244
+ * @param surname - The character's surname (second part). Case-insensitive.
245
+ * @returns A promise that resolves to an object representing the specializations.
246
+ */
247
+ export async function characterSpecializations(ctx, name, surname) {
248
+ return await request(ctx, name, surname, "/specializations");
249
+ }
250
+ /**
251
+ * Returns a statistics summary for a character.
252
+ *
253
+ * @param name - The character's name (first part). Case-insensitive.
254
+ * @param surname - The character's surname (second part). Case-insensitive.
255
+ * @returns A promise that resolves to an object representing the statistics.
256
+ */
257
+ export async function characterStatistics(ctx, name, surname) {
258
+ return await request(ctx, name, surname, "/statistics");
259
+ }
260
+ /**
261
+ * Returns a summary of the titles a character has obtained.
262
+ *
263
+ * @param name - The character's name (first part). Case-insensitive.
264
+ * @param surname - The character's surname (second part). Case-insensitive.
265
+ * @returns A promise that resolves to an object representing the titles.
266
+ */
267
+ export async function characterTitles(ctx, name, surname) {
268
+ return await request(ctx, name, surname, "/titles");
269
+ }