@blizzard-api/hs 1.0.0 → 1.0.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/dist/index.d.ts CHANGED
@@ -1,10 +1,18 @@
1
1
  import { Locales, Resource } from '@blizzard-api/core';
2
2
 
3
+ type GameMode$1 = 'arena' | 'battlegrounds' | 'classic' | 'constructed' | 'duels' | 'mercenaries' | 'standard';
4
+ type SearchSortOption = `${SortOptions}:${SortDirection}`;
3
5
  type SortDirection = 'asc' | 'desc';
4
6
  type SortOptions = 'attack' | 'class' | 'dataAdded' | 'groupByClass' | 'health' | 'manaCost' | 'name';
5
- type SearchSortOption = `${SortOptions}:${SortDirection}`;
6
- type GameMode$1 = 'arena' | 'battlegrounds' | 'classic' | 'constructed' | 'duels' | 'mercenaries' | 'standard';
7
7
 
8
+ interface CardBackSearchParameters {
9
+ cardBackCategory?: 'achieve' | 'base' | 'blizzard' | 'esports' | 'events' | 'fireside' | 'game_license' | 'golden' | 'heroes' | 'legend' | 'pre_purchase' | 'promotion' | 'season';
10
+ locale?: Locales;
11
+ page?: number;
12
+ pageSize?: number;
13
+ sort?: SearchSortOption;
14
+ textFilter?: string;
15
+ }
8
16
  interface CardBackSearchResponse {
9
17
  cardBacks: Array<SingleCardBackSearchResponse>;
10
18
  cardCount: number;
@@ -19,26 +27,75 @@ interface SingleCardBackSearchResponse {
19
27
  sortCategory: number;
20
28
  text: Record<Locales, string> | string;
21
29
  }
22
- interface CardBackSearchParameters {
23
- cardBackCategory?: 'achieve' | 'base' | 'blizzard' | 'esports' | 'events' | 'fireside' | 'game_license' | 'golden' | 'heroes' | 'legend' | 'pre_purchase' | 'promotion' | 'season';
24
- locale?: Locales;
25
- page?: number;
26
- pageSize?: number;
27
- sort?: SearchSortOption;
28
- textFilter?: string;
29
- }
30
30
 
31
+ /**
32
+ * Returns a list of card backs based on the search parameters provided.
33
+ * @param options The options for fetching card backs. See {@link CardBackSearchParameters}.
34
+ * @returns The card back search resource. See {@link CardBackSearchResponse}.
35
+ */
31
36
  declare function cardBackSearch(options: CardBackSearchParameters): Resource<CardBackSearchResponse, CardBackSearchParameters>;
37
+ /**
38
+ * Returns a single card back based on the ID provided.
39
+ * @param id The card back ID
40
+ * @param locale The locale to use for fetching the card back (optional).
41
+ * @returns The card back resource. See {@link SingleCardBackSearchResponse}.
42
+ */
32
43
  declare function fetchOneCardBack(id: string, locale?: Locales): Resource<SingleCardBackSearchResponse, {
33
44
  locale?: Locales;
34
45
  }>;
35
46
 
47
+ interface BlizzardCardSearchParameters extends BaseSearchParameters {
48
+ attack?: string;
49
+ defaultMercenary?: string;
50
+ health?: string;
51
+ mercenaryId?: string;
52
+ }
53
+ interface CardSearchParameters extends BaseSearchParameters {
54
+ attack?: Array<number> | number;
55
+ defaultMercenary?: Array<number> | number;
56
+ health?: Array<number> | number;
57
+ mercenaryId?: Array<number> | number;
58
+ }
36
59
  interface CardSearchResponse {
37
60
  cardCount: number;
38
61
  cards: Array<Card$1>;
39
62
  page: number;
40
63
  pageCount: number;
41
64
  }
65
+ interface FetchOneCardResponse {
66
+ artistName: string;
67
+ attack: number;
68
+ cardSetId: number;
69
+ cardTypeId: number;
70
+ classId: number;
71
+ collectible: number;
72
+ cropImage: string;
73
+ flavorText: Record<Locales, string> | string;
74
+ health: number;
75
+ id: number;
76
+ image: Record<Locales, string> | string;
77
+ imageGold: Record<Locales, string> | string;
78
+ isZilliaxCosmeticModule: boolean;
79
+ isZilliaxFunctionalModule: boolean;
80
+ keywordIds: Array<number>;
81
+ manaCost: number;
82
+ multiClassIds: Array<number>;
83
+ name: Record<Locales, string> | string;
84
+ rarityId: number;
85
+ slug: string;
86
+ text: Record<Locales, string> | string;
87
+ }
88
+ interface BaseSearchParameters {
89
+ gameMode?: GameMode$1;
90
+ locale?: Locales;
91
+ mercenaryRole?: string;
92
+ minionType?: string;
93
+ page?: number;
94
+ pageSize?: number;
95
+ sort?: 'attack:asc' | 'attack:desc' | 'health:asc' | 'health:desc' | 'name:asc' | 'name:desc' | 'tier:asc' | 'tier:desc';
96
+ textFilter?: string;
97
+ tier?: 1 | 2 | 3 | 4 | 5 | 6 | 'hero';
98
+ }
42
99
  interface Card$1 {
43
100
  artistName: null | string;
44
101
  attack: number;
@@ -78,54 +135,21 @@ interface StatsByLevel {
78
135
  attack: number;
79
136
  health: number;
80
137
  }
81
- interface CardSearchParameters extends BaseSearchParameters {
82
- attack?: Array<number> | number;
83
- defaultMercenary?: Array<number> | number;
84
- health?: Array<number> | number;
85
- mercenaryId?: Array<number> | number;
86
- }
87
- interface BlizzardCardSearchParameters extends BaseSearchParameters {
88
- attack?: string;
89
- defaultMercenary?: string;
90
- health?: string;
91
- mercenaryId?: string;
92
- }
93
- interface BaseSearchParameters {
94
- gameMode?: GameMode$1;
95
- locale?: Locales;
96
- mercenaryRole?: string;
97
- minionType?: string;
98
- page?: number;
99
- pageSize?: number;
100
- sort?: 'attack:asc' | 'attack:desc' | 'health:asc' | 'health:desc' | 'name:asc' | 'name:desc' | 'tier:asc' | 'tier:desc';
101
- textFilter?: string;
102
- tier?: 'hero' | 1 | 2 | 3 | 4 | 5 | 6;
103
- }
104
- interface FetchOneCardResponse {
105
- artistName: string;
106
- attack: number;
107
- cardSetId: number;
108
- cardTypeId: number;
109
- classId: number;
110
- collectible: number;
111
- cropImage: string;
112
- flavorText: Record<Locales, string> | string;
113
- health: number;
114
- id: number;
115
- image: Record<Locales, string> | string;
116
- imageGold: Record<Locales, string> | string;
117
- isZilliaxCosmeticModule: boolean;
118
- isZilliaxFunctionalModule: boolean;
119
- keywordIds: Array<number>;
120
- manaCost: number;
121
- multiClassIds: Array<number>;
122
- name: Record<Locales, string> | string;
123
- rarityId: number;
124
- slug: string;
125
- text: Record<Locales, string> | string;
126
- }
127
138
 
139
+ /**
140
+ * Returns a list of cards based on the search parameters provided.
141
+ * @param options The options for fetching cards. See {@link CardSearchParameters}.
142
+ * @returns The card search resource. See {@link CardSearchResponse}.
143
+ */
128
144
  declare function cardSearch(options: CardSearchParameters): Resource<CardSearchResponse, BlizzardCardSearchParameters>;
145
+ /**
146
+ * Returns a single card based on the ID provided.
147
+ * @param id The card ID
148
+ * @param options The options for fetching a card.
149
+ * @param options.gameMode The game mode to use for fetching the card (optional).
150
+ * @param options.locale The locale to use for fetching the card (optional).
151
+ * @returns The card resource. See {@link FetchOneCardResponse}.
152
+ */
129
153
  declare function fetchOneCard(id: string, options?: {
130
154
  gameMode?: GameMode$1;
131
155
  locale?: Locales;
@@ -134,12 +158,6 @@ declare function fetchOneCard(id: string, options?: {
134
158
  locale?: Locales;
135
159
  }>;
136
160
 
137
- type DeckSearchParameters = {
138
- code: string;
139
- } | {
140
- hero?: string;
141
- ids: string;
142
- };
143
161
  interface DeckResponse {
144
162
  cardCount: number;
145
163
  cards: Array<Card>;
@@ -150,6 +168,12 @@ interface DeckResponse {
150
168
  heroPower: Hero;
151
169
  version: number;
152
170
  }
171
+ type DeckSearchParameters = {
172
+ code: string;
173
+ } | {
174
+ hero?: string;
175
+ ids: string;
176
+ };
153
177
  interface Card {
154
178
  armor?: number;
155
179
  artistName: string;
@@ -206,6 +230,11 @@ interface Hero {
206
230
  text: string;
207
231
  }
208
232
 
233
+ /**
234
+ * Returns a deck based on the code provided.
235
+ * @param options The options for fetching a deck.
236
+ * @returns The deck resource. See {@link DeckResponse}.
237
+ */
209
238
  declare function getDeck(options: {
210
239
  code: string;
211
240
  } | {
@@ -239,9 +268,15 @@ interface AllMetadataResponse {
239
268
  spellSchools: Array<GameMode>;
240
269
  types: Array<GameMode>;
241
270
  }
242
- interface GameMode extends NameId {
243
- gameModes?: Array<number>;
271
+ interface SpecificMetadataResponse extends NameId {
272
+ aliasSetIds?: Array<number>;
273
+ collectibleCount: number;
274
+ collectibleRevealedCount: number;
275
+ hyped: boolean;
276
+ nonCollectibleCount: number;
277
+ nonCollectibleRevealedCount: number;
244
278
  slug: string;
279
+ type: SetType;
245
280
  }
246
281
  interface Class {
247
282
  alternateHeroCardIds?: Array<number>;
@@ -251,6 +286,10 @@ interface Class {
251
286
  name: string;
252
287
  slug: string;
253
288
  }
289
+ interface GameMode extends NameId {
290
+ gameModes?: Array<number>;
291
+ slug: string;
292
+ }
254
293
  interface Keyword extends NameId {
255
294
  gameModes: Array<number>;
256
295
  refText: string;
@@ -262,17 +301,6 @@ interface Rarity extends NameId {
262
301
  dustValue: Array<null | number>;
263
302
  slug: string;
264
303
  }
265
- interface SetGroup {
266
- cardSets: Array<string>;
267
- icon?: string;
268
- name: string;
269
- slug: string;
270
- standard?: boolean;
271
- svg?: null | string;
272
- year?: number;
273
- yearRange?: string;
274
- }
275
- type SetType = '' | 'adventure' | 'base' | 'expansion';
276
304
  interface Set extends NameId {
277
305
  aliasSetIds?: Array<number>;
278
306
  collectibleCount: number;
@@ -283,18 +311,28 @@ interface Set extends NameId {
283
311
  slug: string;
284
312
  type: SetType;
285
313
  }
286
- interface SpecificMetadataResponse extends NameId {
287
- aliasSetIds?: Array<number>;
288
- collectibleCount: number;
289
- collectibleRevealedCount: number;
290
- hyped: boolean;
291
- nonCollectibleCount: number;
292
- nonCollectibleRevealedCount: number;
314
+ interface SetGroup {
315
+ cardSets: Array<string>;
316
+ icon?: string;
317
+ name: string;
293
318
  slug: string;
294
- type: SetType;
319
+ standard?: boolean;
320
+ svg?: null | string;
321
+ year?: number;
322
+ yearRange?: string;
295
323
  }
324
+ type SetType = '' | 'adventure' | 'base' | 'expansion';
296
325
 
326
+ /**
327
+ * Returns all metadata
328
+ * @returns The all metadata resource. See {@link AllMetadataResponse}.
329
+ */
297
330
  declare function allMetadata(): Resource<AllMetadataResponse>;
331
+ /**
332
+ * Returns specific metadata based on the type requested.
333
+ * @param type The type of metadata to retrieve.
334
+ * @returns The specific metadata resource. See {@link SpecificMetadataResponse}.
335
+ */
298
336
  declare function specificMetadata(type: 'classes' | 'keywords' | 'minionTypes' | 'rarities' | 'setGroups' | 'sets' | 'types'): Resource<SpecificMetadataResponse>;
299
337
 
300
338
  declare const hs: {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/card-backs/card-backs.ts","../src/cards/cards.ts","../src/decks/decks.ts","../src/metadata/metadata.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { Locales, Resource } from '@blizzard-api/core';\r\nimport type { CardBackSearchParameters, CardBackSearchResponse, SingleCardBackSearchResponse } from './types';\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\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\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\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\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\nexport function allMetadata(): Resource<AllMetadataResponse> {\r\n return {\r\n path: 'hearthstone/metadata',\r\n };\r\n}\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 { hs as default, 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"]}
1
+ {"version":3,"sources":["../src/card-backs/card-backs.ts","../src/cards/cards.ts","../src/decks/decks.ts","../src/metadata/metadata.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.js","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 { hs as default, 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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blizzard-api/hs",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "license": "MIT",
5
5
  "author": "Putro",
6
6
  "description": "A series of helpers to interact with the Hearthstone Blizzard API",
@@ -32,10 +32,10 @@
32
32
  ],
33
33
  "dependencies": {},
34
34
  "peerDependencies": {
35
- "@blizzard-api/core": "2.0.0"
35
+ "@blizzard-api/core": "2.0.2"
36
36
  },
37
37
  "devDependencies": {
38
- "@blizzard-api/core": "2.0.0"
38
+ "@blizzard-api/core": "2.0.2"
39
39
  },
40
40
  "scripts": {
41
41
  "build": "tsup",