@blizzard-api/hs 1.0.5 → 2.0.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.
package/dist/index.d.ts CHANGED
@@ -1,19 +1,12 @@
1
- import { Locales, Resource } from "@blizzard-api/core";
1
+ import { Locales, NameId, Resource } from "@blizzard-api/core";
2
2
 
3
- //#region src/base.d.ts
4
- type GameMode$1 = 'arena' | 'battlegrounds' | 'classic' | 'constructed' | 'duels' | 'mercenaries' | 'standard';
5
- type SearchSortOption = `${SortOptions}:${SortDirection}`;
6
- type SortDirection = 'asc' | 'desc';
7
- type SortOptions = 'attack' | 'class' | 'dataAdded' | 'groupByClass' | 'health' | 'manaCost' | 'name';
8
-
9
- //#endregion
10
3
  //#region src/card-backs/types.d.ts
11
4
  interface CardBackSearchParameters {
12
5
  cardBackCategory?: 'achieve' | 'base' | 'blizzard' | 'esports' | 'events' | 'fireside' | 'game_license' | 'golden' | 'heroes' | 'legend' | 'pre_purchase' | 'promotion' | 'season';
13
6
  locale?: Locales;
14
7
  page?: number;
15
8
  pageSize?: number;
16
- sort?: SearchSortOption;
9
+ sort?: `${SearchOptions}:${SortOptions}`;
17
10
  textFilter?: string;
18
11
  }
19
12
  interface CardBackSearchResponse {
@@ -22,6 +15,7 @@ interface CardBackSearchResponse {
22
15
  page: number;
23
16
  pageCount: number;
24
17
  }
18
+ type SearchOptions = 'attack' | 'class' | 'dataAdded' | 'groupByClass' | 'health' | 'manaCost' | 'name';
25
19
  interface SingleCardBackSearchResponse {
26
20
  id: number;
27
21
  image: string;
@@ -30,7 +24,7 @@ interface SingleCardBackSearchResponse {
30
24
  sortCategory: number;
31
25
  text: Record<Locales, string> | string;
32
26
  }
33
-
27
+ type SortOptions = 'asc' | 'desc';
34
28
  //#endregion
35
29
  //#region src/card-backs/card-backs.d.ts
36
30
  /**
@@ -48,7 +42,6 @@ declare function cardBackSearch(options: CardBackSearchParameters): Resource<Car
48
42
  declare function fetchOneCardBack(id: string, locale?: Locales): Resource<SingleCardBackSearchResponse, {
49
43
  locale?: Locales;
50
44
  }>;
51
-
52
45
  //#endregion
53
46
  //#region src/cards/types.d.ts
54
47
  interface BlizzardCardSearchParameters extends BaseSearchParameters {
@@ -92,8 +85,9 @@ interface FetchOneCardResponse {
92
85
  slug: string;
93
86
  text: Record<Locales, string> | string;
94
87
  }
88
+ type GameMode = 'arena' | 'battlegrounds' | 'classic' | 'constructed' | 'duels' | 'mercenaries' | 'standard';
95
89
  interface BaseSearchParameters {
96
- gameMode?: GameMode$1;
90
+ gameMode?: GameMode;
97
91
  locale?: Locales;
98
92
  mercenaryRole?: string;
99
93
  minionType?: string;
@@ -142,7 +136,6 @@ interface StatsByLevel {
142
136
  attack: number;
143
137
  health: number;
144
138
  }
145
-
146
139
  //#endregion
147
140
  //#region src/cards/cards.d.ts
148
141
  /**
@@ -160,13 +153,12 @@ declare function cardSearch(options: CardSearchParameters): Resource<CardSearchR
160
153
  * @returns The card resource. See {@link FetchOneCardResponse}.
161
154
  */
162
155
  declare function fetchOneCard(id: string, options?: {
163
- gameMode?: GameMode$1;
156
+ gameMode?: GameMode;
164
157
  locale?: Locales;
165
158
  }): Resource<FetchOneCardResponse, {
166
- gameMode?: GameMode$1;
159
+ gameMode?: GameMode;
167
160
  locale?: Locales;
168
161
  }>;
169
-
170
162
  //#endregion
171
163
  //#region src/decks/types.d.ts
172
164
  interface DeckResponse {
@@ -240,7 +232,6 @@ interface Hero {
240
232
  slug: string;
241
233
  text: string;
242
234
  }
243
-
244
235
  //#endregion
245
236
  //#region src/decks/decks.d.ts
246
237
  /**
@@ -254,39 +245,25 @@ declare function getDeck(options: {
254
245
  hero?: string;
255
246
  ids: Array<string>;
256
247
  }): Resource<DeckResponse, DeckSearchParameters>;
257
-
258
- //#endregion
259
- //#region ../wow/src/base.d.ts
260
- /**
261
- * Base record interface containing name and id properties that often appear together in Blizzard API responses.
262
- */
263
- interface NameId {
264
- id: number;
265
- name: string;
266
- }
267
-
268
248
  //#endregion
269
249
  //#region src/metadata/types.d.ts
270
- /**
271
- * Base record containing both {@link KeyBase} and {@link NameId} interfaces.
272
- */
273
250
  interface AllMetadataResponse {
274
251
  arenaIds: Array<number>;
275
- bgGameModes: Array<GameMode>;
276
- cardBackCategories: Array<GameMode>;
252
+ bgGameModes: Array<GameMode$1>;
253
+ cardBackCategories: Array<GameMode$1>;
277
254
  classes: Array<Class>;
278
255
  filterableFields: Array<string>;
279
- gameModes: Array<GameMode>;
256
+ gameModes: Array<GameMode$1>;
280
257
  keywords: Array<Keyword>;
281
- mercenaryFactions: Array<GameMode>;
282
- mercenaryRoles: Array<GameMode>;
283
- minionTypes: Array<GameMode>;
258
+ mercenaryFactions: Array<GameMode$1>;
259
+ mercenaryRoles: Array<GameMode$1>;
260
+ minionTypes: Array<GameMode$1>;
284
261
  numericFields: Array<string>;
285
262
  rarities: Array<Rarity>;
286
263
  setGroups: Array<SetGroup>;
287
264
  sets: Array<Set>;
288
- spellSchools: Array<GameMode>;
289
- types: Array<GameMode>;
265
+ spellSchools: Array<GameMode$1>;
266
+ types: Array<GameMode$1>;
290
267
  }
291
268
  interface SpecificMetadataResponse extends NameId {
292
269
  aliasSetIds?: Array<number>;
@@ -306,7 +283,7 @@ interface Class {
306
283
  name: string;
307
284
  slug: string;
308
285
  }
309
- interface GameMode extends NameId {
286
+ interface GameMode$1 extends NameId {
310
287
  gameModes?: Array<number>;
311
288
  slug: string;
312
289
  }
@@ -342,7 +319,6 @@ interface SetGroup {
342
319
  yearRange?: string;
343
320
  }
344
321
  type SetType = '' | 'adventure' | 'base' | 'expansion';
345
-
346
322
  //#endregion
347
323
  //#region src/metadata/metadata.d.ts
348
324
  /**
@@ -356,7 +332,6 @@ declare function allMetadata(): Resource<AllMetadataResponse>;
356
332
  * @returns The specific metadata resource. See {@link SpecificMetadataResponse}.
357
333
  */
358
334
  declare function specificMetadata(type: 'classes' | 'keywords' | 'minionTypes' | 'rarities' | 'setGroups' | 'sets' | 'types'): Resource<SpecificMetadataResponse>;
359
-
360
335
  //#endregion
361
336
  //#region src/index.d.ts
362
337
  declare const hs: {
@@ -368,7 +343,6 @@ declare const hs: {
368
343
  allMetadata: typeof allMetadata;
369
344
  specificMetadata: typeof specificMetadata;
370
345
  };
371
-
372
346
  //#endregion
373
- export { AllMetadataResponse, BlizzardCardSearchParameters, CardBackSearchParameters, CardBackSearchResponse, CardSearchParameters, CardSearchResponse, DeckResponse, DeckSearchParameters, FetchOneCardResponse, SingleCardBackSearchResponse, SpecificMetadataResponse, allMetadata, cardBackSearch, cardSearch, hs as default, fetchOneCard, fetchOneCardBack, getDeck, hs, specificMetadata };
347
+ export { AllMetadataResponse, BlizzardCardSearchParameters, CardBackSearchParameters, CardBackSearchResponse, CardSearchParameters, CardSearchResponse, DeckResponse, DeckSearchParameters, FetchOneCardResponse, GameMode, SearchOptions, SingleCardBackSearchResponse, SortOptions, SpecificMetadataResponse, allMetadata, cardBackSearch, cardSearch, hs as default, hs, fetchOneCard, fetchOneCardBack, getDeck, specificMetadata };
374
348
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,12 +1,8 @@
1
1
  //#region src/card-backs/card-backs.ts
2
2
  /**
3
-
4
3
  * Returns a list of card backs based on the search parameters provided.
5
-
6
4
  * @param options The options for fetching card backs. See {@link CardBackSearchParameters}.
7
-
8
5
  * @returns The card back search resource. See {@link CardBackSearchResponse}.
9
-
10
6
  */
11
7
  function cardBackSearch(options) {
12
8
  return {
@@ -15,15 +11,10 @@ function cardBackSearch(options) {
15
11
  };
16
12
  }
17
13
  /**
18
-
19
14
  * Returns a single card back based on the ID provided.
20
-
21
15
  * @param id The card back ID
22
-
23
16
  * @param locale The locale to use for fetching the card back (optional).
24
-
25
17
  * @returns The card back resource. See {@link SingleCardBackSearchResponse}.
26
-
27
18
  */
28
19
  function fetchOneCardBack(id, locale) {
29
20
  return {
@@ -35,13 +26,9 @@ function fetchOneCardBack(id, locale) {
35
26
  //#endregion
36
27
  //#region src/cards/cards.ts
37
28
  /**
38
-
39
29
  * Returns a list of cards based on the search parameters provided.
40
-
41
30
  * @param options The options for fetching cards. See {@link CardSearchParameters}.
42
-
43
31
  * @returns The card search resource. See {@link CardSearchResponse}.
44
-
45
32
  */
46
33
  function cardSearch(options) {
47
34
  let attack = void 0;
@@ -64,19 +51,12 @@ function cardSearch(options) {
64
51
  };
65
52
  }
66
53
  /**
67
-
68
54
  * Returns a single card based on the ID provided.
69
-
70
55
  * @param id The card ID
71
-
72
56
  * @param options The options for fetching a card.
73
-
74
57
  * @param options.gameMode The game mode to use for fetching the card (optional).
75
-
76
58
  * @param options.locale The locale to use for fetching the card (optional).
77
-
78
59
  * @returns The card resource. See {@link FetchOneCardResponse}.
79
-
80
60
  */
81
61
  function fetchOneCard(id, options) {
82
62
  const { gameMode = "constructed", locale } = options ?? {};
@@ -92,13 +72,9 @@ function fetchOneCard(id, options) {
92
72
  //#endregion
93
73
  //#region src/decks/decks.ts
94
74
  /**
95
-
96
75
  * Returns a deck based on the code provided.
97
-
98
76
  * @param options The options for fetching a deck.
99
-
100
77
  * @returns The deck resource. See {@link DeckResponse}.
101
-
102
78
  */
103
79
  function getDeck(options) {
104
80
  if ("code" in options) return {
@@ -117,23 +93,16 @@ function getDeck(options) {
117
93
  //#endregion
118
94
  //#region src/metadata/metadata.ts
119
95
  /**
120
-
121
96
  * Returns all metadata
122
-
123
97
  * @returns The all metadata resource. See {@link AllMetadataResponse}.
124
-
125
98
  */
126
99
  function allMetadata() {
127
100
  return { path: "hearthstone/metadata" };
128
101
  }
129
102
  /**
130
-
131
103
  * Returns specific metadata based on the type requested.
132
-
133
104
  * @param type The type of metadata to retrieve.
134
-
135
105
  * @returns The specific metadata resource. See {@link SpecificMetadataResponse}.
136
-
137
106
  */
138
107
  function specificMetadata(type) {
139
108
  return { path: `hearthstone/metadata/${type}` };
@@ -150,8 +119,7 @@ const hs = {
150
119
  allMetadata,
151
120
  specificMetadata
152
121
  };
153
- var src_default = hs;
154
122
 
155
123
  //#endregion
156
- export { allMetadata, cardBackSearch, cardSearch, src_default as default, fetchOneCard, fetchOneCardBack, getDeck, hs, specificMetadata };
124
+ export { allMetadata, cardBackSearch, cardSearch, hs as default, hs, fetchOneCard, fetchOneCardBack, getDeck, specificMetadata };
157
125
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["options: CardBackSearchParameters","id: string","locale?: Locales","options: CardSearchParameters","attack: string | undefined","defaultMercenary: string | undefined","health: string | undefined","mercenaryId: string | undefined","id: string","options?: {\r\n gameMode?: GameMode;\r\n locale?: Locales;\r\n }","options: { code: string } | { hero?: string; ids: Array<string> }","type: 'classes' | 'keywords' | 'minionTypes' | 'rarities' | 'setGroups' | 'sets' | 'types'"],"sources":["../src/card-backs/card-backs.ts","../src/cards/cards.ts","../src/decks/decks.ts","../src/metadata/metadata.ts","../src/index.ts"],"sourcesContent":["import type { Locales, Resource } from '@blizzard-api/core';\r\nimport type { CardBackSearchParameters, CardBackSearchResponse, SingleCardBackSearchResponse } from './types';\r\n\r\n/**\r\n * Returns a list of card backs based on the search parameters provided.\r\n * @param options The options for fetching card backs. See {@link CardBackSearchParameters}.\r\n * @returns The card back search resource. See {@link CardBackSearchResponse}.\r\n */\r\nexport function cardBackSearch(\r\n options: CardBackSearchParameters,\r\n): Resource<CardBackSearchResponse, CardBackSearchParameters> {\r\n return {\r\n parameters: options,\r\n path: 'hearthstone/cardbacks',\r\n };\r\n}\r\n\r\n/**\r\n * Returns a single card back based on the ID provided.\r\n * @param id The card back ID\r\n * @param locale The locale to use for fetching the card back (optional).\r\n * @returns The card back resource. See {@link SingleCardBackSearchResponse}.\r\n */\r\nexport function fetchOneCardBack(\r\n id: string,\r\n locale?: Locales,\r\n): Resource<SingleCardBackSearchResponse, { locale?: Locales }> {\r\n return {\r\n parameters: { locale },\r\n path: `hearthstone/cardbacks/${id}`,\r\n };\r\n}\r\n","import type { Locales, Resource } from '@blizzard-api/core';\r\nimport type { GameMode } from '../base';\r\nimport type {\r\n BlizzardCardSearchParameters,\r\n CardSearchParameters,\r\n CardSearchResponse,\r\n FetchOneCardResponse,\r\n} from './types';\r\n\r\n/**\r\n * Returns a list of cards based on the search parameters provided.\r\n * @param options The options for fetching cards. See {@link CardSearchParameters}.\r\n * @returns The card search resource. See {@link CardSearchResponse}.\r\n */\r\nexport function cardSearch(options: CardSearchParameters): Resource<CardSearchResponse, BlizzardCardSearchParameters> {\r\n let attack: string | undefined = undefined;\r\n let defaultMercenary: string | undefined = undefined;\r\n let health: string | undefined = undefined;\r\n let mercenaryId: string | undefined = undefined;\r\n\r\n if (options.attack) {\r\n attack = Array.isArray(options.attack) ? options.attack.join(',') : `${options.attack}`;\r\n }\r\n if (options.defaultMercenary) {\r\n defaultMercenary = Array.isArray(options.defaultMercenary)\r\n ? options.defaultMercenary.join(',')\r\n : `${options.defaultMercenary}`;\r\n }\r\n if (options.health) {\r\n health = Array.isArray(options.health) ? options.health.join(',') : `${options.health}`;\r\n }\r\n if (options.mercenaryId) {\r\n mercenaryId = Array.isArray(options.mercenaryId) ? options.mercenaryId.join(',') : `${options.mercenaryId}`;\r\n }\r\n\r\n return {\r\n parameters: {\r\n ...options,\r\n attack,\r\n defaultMercenary,\r\n health,\r\n mercenaryId,\r\n },\r\n path: 'hearthstone/cards',\r\n };\r\n}\r\n\r\n/**\r\n * Returns a single card based on the ID provided.\r\n * @param id The card ID\r\n * @param options The options for fetching a card.\r\n * @param options.gameMode The game mode to use for fetching the card (optional).\r\n * @param options.locale The locale to use for fetching the card (optional).\r\n * @returns The card resource. See {@link FetchOneCardResponse}.\r\n */\r\nexport function fetchOneCard(\r\n id: string,\r\n options?: {\r\n gameMode?: GameMode;\r\n locale?: Locales;\r\n },\r\n): Resource<FetchOneCardResponse, { gameMode?: GameMode; locale?: Locales }> {\r\n const { gameMode = 'constructed', locale } = options ?? {};\r\n return {\r\n parameters: { gameMode, locale },\r\n path: `hearthstone/cards/${id}`,\r\n };\r\n}\r\n","import type { Resource } from '@blizzard-api/core';\r\nimport type { DeckResponse, DeckSearchParameters } from './types';\r\n\r\n/**\r\n * Returns a deck based on the code provided.\r\n * @param options The options for fetching a deck.\r\n * @returns The deck resource. See {@link DeckResponse}.\r\n */\r\nexport function getDeck(\r\n options: { code: string } | { hero?: string; ids: Array<string> },\r\n): Resource<DeckResponse, DeckSearchParameters> {\r\n if ('code' in options) {\r\n return {\r\n parameters: {\r\n code: encodeURI(options.code),\r\n },\r\n path: 'hearthstone/deck',\r\n };\r\n }\r\n\r\n return {\r\n parameters: {\r\n hero: options.hero,\r\n ids: options.ids?.join(','),\r\n },\r\n path: 'hearthstone/deck',\r\n };\r\n}\r\n","import type { Resource } from '@blizzard-api/core';\r\nimport type { AllMetadataResponse, SpecificMetadataResponse } from './types';\r\n\r\n/**\r\n * Returns all metadata\r\n * @returns The all metadata resource. See {@link AllMetadataResponse}.\r\n */\r\nexport function allMetadata(): Resource<AllMetadataResponse> {\r\n return {\r\n path: 'hearthstone/metadata',\r\n };\r\n}\r\n\r\n/**\r\n * Returns specific metadata based on the type requested.\r\n * @param type The type of metadata to retrieve.\r\n * @returns The specific metadata resource. See {@link SpecificMetadataResponse}.\r\n */\r\nexport function specificMetadata(\r\n type: 'classes' | 'keywords' | 'minionTypes' | 'rarities' | 'setGroups' | 'sets' | 'types',\r\n): Resource<SpecificMetadataResponse> {\r\n return {\r\n path: `hearthstone/metadata/${type}`,\r\n };\r\n}\r\n","import { cardBackSearch, fetchOneCardBack } from './card-backs/card-backs';\r\nimport { cardSearch, fetchOneCard } from './cards/cards';\r\nimport { getDeck } from './decks/decks';\r\nimport { allMetadata, specificMetadata } from './metadata/metadata';\r\n\r\nconst hs = {\r\n //Card Backs\r\n cardBackSearch,\r\n fetchOneCardBack,\r\n //Cards\r\n cardSearch,\r\n fetchOneCard,\r\n //Decks\r\n getDeck,\r\n //Metadata\r\n allMetadata,\r\n specificMetadata,\r\n};\r\nexport default hs;\r\nexport { hs };\r\n\r\n//Card Backs\r\nexport * from './card-backs/card-backs';\r\nexport type * from './card-backs/types';\r\n//Cards\r\nexport * from './cards/cards';\r\nexport type * from './cards/types';\r\n//Decks\r\nexport * from './decks/decks';\r\nexport type * from './decks/types';\r\n//Metadata\r\nexport * from './metadata/metadata';\r\nexport type * from './metadata/types';\r\n"],"mappings":";;;;;;;;;;AAQA,SAAgB,eACdA,SAC4D;AAC5D,QAAO;EACL,YAAY;EACZ,MAAM;CACP;AACF;;;;;;;;;;;;AAQD,SAAgB,iBACdC,IACAC,QAC8D;AAC9D,QAAO;EACL,YAAY,EAAE,OAAQ;EACtB,OAAO,wBAAwB,GAAG;CACnC;AACF;;;;;;;;;;;;;ACjBD,SAAgB,WAAWC,SAA2F;CACpH,IAAIC;CACJ,IAAIC;CACJ,IAAIC;CACJ,IAAIC;AAEJ,KAAI,QAAQ,OACV,UAAS,MAAM,QAAQ,QAAQ,OAAO,GAAG,QAAQ,OAAO,KAAK,IAAI,IAAI,EAAE,QAAQ,OAAO;AAExF,KAAI,QAAQ,iBACV,oBAAmB,MAAM,QAAQ,QAAQ,iBAAiB,GACtD,QAAQ,iBAAiB,KAAK,IAAI,IACjC,EAAE,QAAQ,iBAAiB;AAElC,KAAI,QAAQ,OACV,UAAS,MAAM,QAAQ,QAAQ,OAAO,GAAG,QAAQ,OAAO,KAAK,IAAI,IAAI,EAAE,QAAQ,OAAO;AAExF,KAAI,QAAQ,YACV,eAAc,MAAM,QAAQ,QAAQ,YAAY,GAAG,QAAQ,YAAY,KAAK,IAAI,IAAI,EAAE,QAAQ,YAAY;AAG5G,QAAO;EACL,YAAY;GACV,GAAG;GACH;GACA;GACA;GACA;EACD;EACD,MAAM;CACP;AACF;;;;;;;;;;;;;;;;AAUD,SAAgB,aACdC,IACAC,SAI2E;CAC3E,MAAM,EAAE,WAAW,eAAe,QAAQ,GAAG,WAAW,CAAE;AAC1D,QAAO;EACL,YAAY;GAAE;GAAU;EAAQ;EAChC,OAAO,oBAAoB,GAAG;CAC/B;AACF;;;;;;;;;;;;;AC3DD,SAAgB,QACdC,SAC8C;AAC9C,KAAI,UAAU,QACZ,QAAO;EACL,YAAY,EACV,MAAM,UAAU,QAAQ,KAAK,CAC9B;EACD,MAAM;CACP;AAGH,QAAO;EACL,YAAY;GACV,MAAM,QAAQ;GACd,KAAK,QAAQ,KAAK,KAAK,IAAI;EAC5B;EACD,MAAM;CACP;AACF;;;;;;;;;;;ACpBD,SAAgB,cAA6C;AAC3D,QAAO,EACL,MAAM,uBACP;AACF;;;;;;;;;;AAOD,SAAgB,iBACdC,MACoC;AACpC,QAAO,EACL,OAAO,uBAAuB,KAAK,EACpC;AACF;;;;ACnBD,MAAM,KAAK;CAET;CACA;CAEA;CACA;CAEA;CAEA;CACA;AACD;AACD,kBAAe"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/card-backs/card-backs.ts","../src/cards/cards.ts","../src/decks/decks.ts","../src/metadata/metadata.ts","../src/index.ts"],"sourcesContent":["import type { Locales, Resource } from '@blizzard-api/core';\r\nimport type { CardBackSearchParameters, CardBackSearchResponse, SingleCardBackSearchResponse } from './types';\r\n\r\n/**\r\n * Returns a list of card backs based on the search parameters provided.\r\n * @param options The options for fetching card backs. See {@link CardBackSearchParameters}.\r\n * @returns The card back search resource. See {@link CardBackSearchResponse}.\r\n */\r\nexport function cardBackSearch(\r\n options: CardBackSearchParameters,\r\n): Resource<CardBackSearchResponse, CardBackSearchParameters> {\r\n return {\r\n parameters: options,\r\n path: 'hearthstone/cardbacks',\r\n };\r\n}\r\n\r\n/**\r\n * Returns a single card back based on the ID provided.\r\n * @param id The card back ID\r\n * @param locale The locale to use for fetching the card back (optional).\r\n * @returns The card back resource. See {@link SingleCardBackSearchResponse}.\r\n */\r\nexport function fetchOneCardBack(\r\n id: string,\r\n locale?: Locales,\r\n): Resource<SingleCardBackSearchResponse, { locale?: Locales }> {\r\n return {\r\n parameters: { locale },\r\n path: `hearthstone/cardbacks/${id}`,\r\n };\r\n}\r\n","import type { Locales, Resource } from '@blizzard-api/core';\r\nimport type {\r\n BlizzardCardSearchParameters,\r\n CardSearchParameters,\r\n CardSearchResponse,\r\n FetchOneCardResponse,\r\n GameMode,\r\n} from './types';\r\n\r\n/**\r\n * Returns a list of cards based on the search parameters provided.\r\n * @param options The options for fetching cards. See {@link CardSearchParameters}.\r\n * @returns The card search resource. See {@link CardSearchResponse}.\r\n */\r\nexport function cardSearch(options: CardSearchParameters): Resource<CardSearchResponse, BlizzardCardSearchParameters> {\r\n let attack: string | undefined = undefined;\r\n let defaultMercenary: string | undefined = undefined;\r\n let health: string | undefined = undefined;\r\n let mercenaryId: string | undefined = undefined;\r\n\r\n if (options.attack) {\r\n attack = Array.isArray(options.attack) ? options.attack.join(',') : `${options.attack}`;\r\n }\r\n if (options.defaultMercenary) {\r\n defaultMercenary = Array.isArray(options.defaultMercenary)\r\n ? options.defaultMercenary.join(',')\r\n : `${options.defaultMercenary}`;\r\n }\r\n if (options.health) {\r\n health = Array.isArray(options.health) ? options.health.join(',') : `${options.health}`;\r\n }\r\n if (options.mercenaryId) {\r\n mercenaryId = Array.isArray(options.mercenaryId) ? options.mercenaryId.join(',') : `${options.mercenaryId}`;\r\n }\r\n\r\n return {\r\n parameters: {\r\n ...options,\r\n attack,\r\n defaultMercenary,\r\n health,\r\n mercenaryId,\r\n },\r\n path: 'hearthstone/cards',\r\n };\r\n}\r\n\r\n/**\r\n * Returns a single card based on the ID provided.\r\n * @param id The card ID\r\n * @param options The options for fetching a card.\r\n * @param options.gameMode The game mode to use for fetching the card (optional).\r\n * @param options.locale The locale to use for fetching the card (optional).\r\n * @returns The card resource. See {@link FetchOneCardResponse}.\r\n */\r\nexport function fetchOneCard(\r\n id: string,\r\n options?: {\r\n gameMode?: GameMode;\r\n locale?: Locales;\r\n },\r\n): Resource<FetchOneCardResponse, { gameMode?: GameMode; locale?: Locales }> {\r\n const { gameMode = 'constructed', locale } = options ?? {};\r\n return {\r\n parameters: { gameMode, locale },\r\n path: `hearthstone/cards/${id}`,\r\n };\r\n}\r\n","import type { Resource } from '@blizzard-api/core';\r\nimport type { DeckResponse, DeckSearchParameters } from './types';\r\n\r\n/**\r\n * Returns a deck based on the code provided.\r\n * @param options The options for fetching a deck.\r\n * @returns The deck resource. See {@link DeckResponse}.\r\n */\r\nexport function getDeck(\r\n options: { code: string } | { hero?: string; ids: Array<string> },\r\n): Resource<DeckResponse, DeckSearchParameters> {\r\n if ('code' in options) {\r\n return {\r\n parameters: {\r\n code: encodeURI(options.code),\r\n },\r\n path: 'hearthstone/deck',\r\n };\r\n }\r\n\r\n return {\r\n parameters: {\r\n hero: options.hero,\r\n ids: options.ids?.join(','),\r\n },\r\n path: 'hearthstone/deck',\r\n };\r\n}\r\n","import type { Resource } from '@blizzard-api/core';\r\nimport type { AllMetadataResponse, SpecificMetadataResponse } from './types';\r\n\r\n/**\r\n * Returns all metadata\r\n * @returns The all metadata resource. See {@link AllMetadataResponse}.\r\n */\r\nexport function allMetadata(): Resource<AllMetadataResponse> {\r\n return {\r\n path: 'hearthstone/metadata',\r\n };\r\n}\r\n\r\n/**\r\n * Returns specific metadata based on the type requested.\r\n * @param type The type of metadata to retrieve.\r\n * @returns The specific metadata resource. See {@link SpecificMetadataResponse}.\r\n */\r\nexport function specificMetadata(\r\n type: 'classes' | 'keywords' | 'minionTypes' | 'rarities' | 'setGroups' | 'sets' | 'types',\r\n): Resource<SpecificMetadataResponse> {\r\n return {\r\n path: `hearthstone/metadata/${type}`,\r\n };\r\n}\r\n","import { cardBackSearch, fetchOneCardBack } from './card-backs/card-backs';\r\nimport { cardSearch, fetchOneCard } from './cards/cards';\r\nimport { getDeck } from './decks/decks';\r\nimport { allMetadata, specificMetadata } from './metadata/metadata';\r\n\r\nconst hs = {\r\n //Card Backs\r\n cardBackSearch,\r\n fetchOneCardBack,\r\n //Cards\r\n cardSearch,\r\n fetchOneCard,\r\n //Decks\r\n getDeck,\r\n //Metadata\r\n allMetadata,\r\n specificMetadata,\r\n};\r\nexport default hs;\r\nexport { hs };\r\n\r\n//Card Backs\r\nexport * from './card-backs/card-backs';\r\nexport type * from './card-backs/types';\r\n//Cards\r\nexport * from './cards/cards';\r\nexport type * from './cards/types';\r\n//Decks\r\nexport * from './decks/decks';\r\nexport type * from './decks/types';\r\n//Metadata\r\nexport * from './metadata/metadata';\r\nexport type * from './metadata/types';\r\n"],"mappings":";;;;;;AAQA,SAAgB,eACd,SAC4D;AAC5D,QAAO;EACL,YAAY;EACZ,MAAM;EACP;;;;;;;;AASH,SAAgB,iBACd,IACA,QAC8D;AAC9D,QAAO;EACL,YAAY,EAAE,QAAQ;EACtB,MAAM,yBAAyB;EAChC;;;;;;;;;;AChBH,SAAgB,WAAW,SAA2F;CACpH,IAAI,SAA6B;CACjC,IAAI,mBAAuC;CAC3C,IAAI,SAA6B;CACjC,IAAI,cAAkC;AAEtC,KAAI,QAAQ,OACV,UAAS,MAAM,QAAQ,QAAQ,OAAO,GAAG,QAAQ,OAAO,KAAK,IAAI,GAAG,GAAG,QAAQ;AAEjF,KAAI,QAAQ,iBACV,oBAAmB,MAAM,QAAQ,QAAQ,iBAAiB,GACtD,QAAQ,iBAAiB,KAAK,IAAI,GAClC,GAAG,QAAQ;AAEjB,KAAI,QAAQ,OACV,UAAS,MAAM,QAAQ,QAAQ,OAAO,GAAG,QAAQ,OAAO,KAAK,IAAI,GAAG,GAAG,QAAQ;AAEjF,KAAI,QAAQ,YACV,eAAc,MAAM,QAAQ,QAAQ,YAAY,GAAG,QAAQ,YAAY,KAAK,IAAI,GAAG,GAAG,QAAQ;AAGhG,QAAO;EACL,YAAY;GACV,GAAG;GACH;GACA;GACA;GACA;GACD;EACD,MAAM;EACP;;;;;;;;;;AAWH,SAAgB,aACd,IACA,SAI2E;CAC3E,MAAM,EAAE,WAAW,eAAe,WAAW,WAAW,EAAE;AAC1D,QAAO;EACL,YAAY;GAAE;GAAU;GAAQ;EAChC,MAAM,qBAAqB;EAC5B;;;;;;;;;;AC1DH,SAAgB,QACd,SAC8C;AAC9C,KAAI,UAAU,QACZ,QAAO;EACL,YAAY,EACV,MAAM,UAAU,QAAQ,KAAK,EAC9B;EACD,MAAM;EACP;AAGH,QAAO;EACL,YAAY;GACV,MAAM,QAAQ;GACd,KAAK,QAAQ,KAAK,KAAK,IAAI;GAC5B;EACD,MAAM;EACP;;;;;;;;;ACnBH,SAAgB,cAA6C;AAC3D,QAAO,EACL,MAAM,wBACP;;;;;;;AAQH,SAAgB,iBACd,MACoC;AACpC,QAAO,EACL,MAAM,wBAAwB,QAC/B;;;;;AClBH,MAAM,KAAK;CAET;CACA;CAEA;CACA;CAEA;CAEA;CACA;CACD"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@blizzard-api/hs",
3
- "version": "1.0.5",
3
+ "version": "2.0.0",
4
4
  "license": "MIT",
5
5
  "author": "Putro",
6
6
  "description": "A series of helpers to interact with the Hearthstone Blizzard API",
7
7
  "repository": "https://github.com/Pewtro/blizzard-api/tree/main/packages/hs",
8
8
  "type": "module",
9
9
  "engines": {
10
- "node": "^18.18 || >=20.9"
10
+ "node": "^20.19.0 || ^22.13.0 || >=24"
11
11
  },
12
12
  "module": "./dist/index.js",
13
13
  "types": "./dist/index.d.ts",
@@ -32,10 +32,10 @@
32
32
  ],
33
33
  "dependencies": {},
34
34
  "peerDependencies": {
35
- "@blizzard-api/core": "2.1.1"
35
+ "@blizzard-api/core": "3.0.0"
36
36
  },
37
37
  "devDependencies": {
38
- "@blizzard-api/core": "2.1.1"
38
+ "@blizzard-api/core": "3.0.0"
39
39
  },
40
40
  "scripts": {
41
41
  "build": "tsdown",