hive-bedrock-api 4.1.0 → 4.2.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.
@@ -0,0 +1,111 @@
1
+ import { Game, Timeframe } from "hive-bedrock-data";
2
+ import { MethodResponse } from "./utils.js";
3
+ import { ProcessedPlayerResponse } from "./processors/player.js";
4
+ import { ProcessedGlobalStatisticsResponse } from "./processors/global_statistics.js";
5
+ import { ProcessedMapResponse } from "./processors/map.js";
6
+ import { ProcessedGameMetadata } from "./processors/meta.js";
7
+ import { ProcessedPlayerSearchResponse } from "./processors/player_search.js";
8
+ import { AvailableLeaderboardResponse, ProcessedAllGamesResponse, ProcessedGame, ProcessedMonthlyGamesResponse } from "./processors/game.js";
9
+ interface Options {
10
+ resolveDynamicTitles?: boolean;
11
+ useModernLeaderboardSource?: boolean;
12
+ apiBaseEndpoint?: string;
13
+ requestInit?: RequestInit;
14
+ }
15
+ export default class HiveAPI {
16
+ options: Options;
17
+ constructor(options?: Options);
18
+ private _fetchAPI;
19
+ /**
20
+ * `/game/all/main/{identifier}` Gets information about a player
21
+ * @param identifier Username or UUID of the player
22
+ * @returns The player information
23
+ */
24
+ getPlayer(identifier: string): Promise<MethodResponse<ProcessedPlayerResponse>>;
25
+ /**
26
+ * `/player/search/{prefix}` Gets a list of players that match the prefix
27
+ * @param prefix The prefix to search for (must be at least 4 characters long)
28
+ * @returns A list of players that match the prefix
29
+ */
30
+ getPlayerSearch(prefix: string): Promise<MethodResponse<ProcessedPlayerSearchResponse>>;
31
+ /**
32
+ * Gets statistics for a player
33
+ * @param identifier Username or UUID of the player
34
+ * @param timeframe The timeframe to get the statistics for
35
+ * @param options Additional options including specific game, month, and year
36
+ * @returns The player statistics
37
+ */
38
+ getStatistics(identifier: string, timeframe: Timeframe.AllTime): Promise<MethodResponse<ProcessedAllGamesResponse>>;
39
+ getStatistics<G extends Game>(identifier: string, timeframe: Timeframe.AllTime, options: {
40
+ game: G;
41
+ }): Promise<MethodResponse<ProcessedGame<Timeframe.AllTime, false>[G]>>;
42
+ getStatistics(identifier: string, timeframe: Timeframe.Monthly, options?: {
43
+ month?: number;
44
+ year?: number;
45
+ }): Promise<MethodResponse<ProcessedMonthlyGamesResponse>>;
46
+ getStatistics<G extends Game>(identifier: string, timeframe: Timeframe.Monthly, options: {
47
+ game: G;
48
+ month?: number;
49
+ year?: number;
50
+ }): Promise<MethodResponse<ProcessedGame<Timeframe.Monthly, false>[G]>>;
51
+ getStatistics<G extends Game>(identifier: string, timeframe: Timeframe.Seasonal, options: {
52
+ game: G;
53
+ season: number;
54
+ }): Promise<MethodResponse<ProcessedMonthlyGamesResponse>>;
55
+ private _getStatisticsAllTime;
56
+ private _getStatisticsMonthly;
57
+ private _getStatisticsSeasonal;
58
+ getAvailableMonthlyLeaderboards<G extends Game>(game: G): Promise<MethodResponse<AvailableLeaderboardResponse>>;
59
+ /**
60
+ * `/game/season/player/{game}/{player}/{season}` Gets seasonal statistics for a player
61
+ * @param identifier Username or UUID of the player
62
+ * @param game The game to get the statistics for
63
+ * @param season The season to get the statistics for
64
+ * @returns The player's seasonal statistics
65
+ */
66
+ getSeasonalStatistics<G extends Game>(identifier: string, game: G, season?: number): Promise<MethodResponse<ProcessedMonthlyGamesResponse["statistics"][G] | null>>;
67
+ /**
68
+ * `/game/all/{game}` Gets statistics for a game
69
+ * @param timeframe The timeframe to get the statistics for
70
+ * @param game The game to get the statistics for
71
+ * @param options Additional options including specific month and year
72
+ */
73
+ getLeaderboard<G extends Game>(timeframe: Timeframe.AllTime, game: G): Promise<MethodResponse<ProcessedGame<Timeframe.AllTime, true>[G][] | null>>;
74
+ getLeaderboard<G extends Game>(timeframe: Timeframe.Monthly, game: G): Promise<MethodResponse<ProcessedGame<Timeframe.Monthly, true>[G][] | null>>;
75
+ getLeaderboard<G extends Game>(timeframe: Timeframe.Monthly, game: G, options: {
76
+ month?: number;
77
+ year?: number;
78
+ }): Promise<MethodResponse<ProcessedGame<Timeframe.Monthly, true>[G][] | null>>;
79
+ getLeaderboard<G extends Game>(timeframe: Timeframe.Seasonal, game: G, options: {
80
+ season: number;
81
+ }): Promise<MethodResponse<ProcessedGame<Timeframe.Seasonal, true>[G][] | null>>;
82
+ private _getLeaderboardAllTime;
83
+ private _getLeaderboardMonthly;
84
+ private _getLeaderboardSeasonal;
85
+ /**
86
+ * `/game/season/{game}/{season}` Gets seasonal statistics for a game
87
+ * @param game The game to get the statistics for
88
+ * @param season The season to get the statistics for
89
+ * @returns The seasonal statistics for the game
90
+ */
91
+ getSeasonalLeaderboard<G extends Game>(game: G, season?: number): Promise<MethodResponse<ProcessedGame<Timeframe.Monthly, true>[G][]>>;
92
+ /**
93
+ * `/global/statistics` Gets global statistics
94
+ * @returns The global statistics
95
+ */
96
+ getGlobalStatistics(): Promise<MethodResponse<ProcessedGlobalStatisticsResponse>>;
97
+ /**
98
+ * `/game/map/{game}` Gets information about the maps in a game
99
+ * @param game The game to get the maps for (fails for games without maps)
100
+ * @returns A list of maps in the game
101
+ */
102
+ getGameMaps(game: Game): Promise<MethodResponse<ProcessedMapResponse>>;
103
+ /**
104
+ * `/game/meta/{game}` Gets metadata about a game
105
+ * @param game The game to get the metadata for
106
+ * @returns The metadata for the game
107
+ */
108
+ getGameMetadata(game: Game): Promise<MethodResponse<ProcessedGameMetadata>>;
109
+ }
110
+ export {};
111
+ //# sourceMappingURL=HiveAPI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiveAPI.d.ts","sourceRoot":"","sources":["../src/HiveAPI.ts"],"names":[],"mappings":"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"}
package/lib/HiveAPI.js ADDED
@@ -0,0 +1,244 @@
1
+ import { API_BASE_ENDPOINT, Games, Timeframe } from "hive-bedrock-data";
2
+ import processPlayerInfo from "./processors/player.js";
3
+ import processPlayerSearch from "./processors/player_search.js";
4
+ import { processGame } from "./processors/game.js";
5
+ export default class HiveAPI {
6
+ options;
7
+ constructor(options = {}) {
8
+ this.options = options;
9
+ this.options = options;
10
+ this.options.apiBaseEndpoint = this.options.apiBaseEndpoint ?? API_BASE_ENDPOINT;
11
+ }
12
+ async _fetchAPI(endpoint) {
13
+ const url = this.options.apiBaseEndpoint + endpoint;
14
+ try {
15
+ const start = performance.now();
16
+ const request = await fetch(url, {
17
+ ...this.options.requestInit,
18
+ headers: {
19
+ "X-Hive-Resolve-Stat-Track": (this.options.resolveDynamicTitles ?? true).toString(),
20
+ "X-Hive-Leaderboard-Source": this.options.useModernLeaderboardSource ? "modern" : "legacy",
21
+ ...this.options.requestInit?.headers,
22
+ },
23
+ });
24
+ if (!request.ok)
25
+ return { data: null, error: { status: request.status } };
26
+ const meta = {
27
+ duration: Math.ceil(performance.now() - start),
28
+ ratelimit: {
29
+ limit: Number(request.headers.get("X-Ratelimit-Limit")),
30
+ remaining: Number(request.headers.get("X-Ratelimit-Remaining")),
31
+ reset: Number(request.headers.get("X-Ratelimit-Reset")),
32
+ },
33
+ retryAfter: Number(request.headers.get("Retry-After")),
34
+ };
35
+ const response = await request.json();
36
+ return { data: response, error: null, meta };
37
+ }
38
+ catch (err) {
39
+ return { data: null, error: { status: 500, message: err.message } };
40
+ }
41
+ }
42
+ /**
43
+ * `/game/all/main/{identifier}` Gets information about a player
44
+ * @param identifier Username or UUID of the player
45
+ * @returns The player information
46
+ */
47
+ async getPlayer(identifier) {
48
+ const { data: response, error, meta } = await this._fetchAPI(`/game/all/main/${identifier}`);
49
+ if (error)
50
+ return { data: null, error, meta };
51
+ const data = processPlayerInfo(response);
52
+ if (!data)
53
+ return { data: null, error: { status: 500, message: "Failed to process player data" }, meta };
54
+ return { data, error: null, meta };
55
+ }
56
+ /**
57
+ * `/player/search/{prefix}` Gets a list of players that match the prefix
58
+ * @param prefix The prefix to search for (must be at least 4 characters long)
59
+ * @returns A list of players that match the prefix
60
+ */
61
+ async getPlayerSearch(prefix) {
62
+ const { data: response, error, meta } = await this._fetchAPI(`/player/search/${prefix}`);
63
+ if (error)
64
+ return { data: null, error, meta };
65
+ const data = processPlayerSearch(response);
66
+ if (!data)
67
+ return { data: null, error: { status: 500, message: "Failed to process player search data" }, meta };
68
+ return { data, error: null, meta };
69
+ }
70
+ async getStatistics(identifier, timeframe, options) {
71
+ if (timeframe === Timeframe.AllTime) {
72
+ if (options?.game) {
73
+ if (!Games[options.game].statistics)
74
+ throw new Error(`Statistics are not available for the game: ${options.game}`);
75
+ return this._getStatisticsAllTime(identifier, options.game);
76
+ }
77
+ return this._getStatisticsAllTime(identifier);
78
+ }
79
+ else if (timeframe === Timeframe.Seasonal) {
80
+ if (!options?.game)
81
+ throw new Error("Game must be specified for seasonal statistics");
82
+ if (!Games[options.game].statistics)
83
+ throw new Error(`Statistics are not available for the game: ${options.game}`);
84
+ return this._getStatisticsSeasonal(identifier, options?.game, options?.season || 1);
85
+ }
86
+ if (options?.game)
87
+ return this._getStatisticsMonthly(identifier, options.game, options.month, options.year);
88
+ return this._getStatisticsMonthly(identifier, undefined, options?.month, options?.year);
89
+ }
90
+ async _getStatisticsAllTime(identifier, game) {
91
+ const { data: response, error, meta } = await this._fetchAPI(`/game/all/${game ?? "all"}/${identifier}`);
92
+ if (error)
93
+ return { data: null, error, meta };
94
+ if (game)
95
+ return { data: processGame(game, Timeframe.AllTime, false, response), error: null, meta };
96
+ let data = Object.fromEntries(Object.entries(response).map(([id, res]) => [id, id === "main" ? null : (processGame(id, Timeframe.AllTime, false, res) ?? null)]));
97
+ delete data.main;
98
+ return {
99
+ data: {
100
+ player: processPlayerInfo(response),
101
+ statistics: data,
102
+ },
103
+ error: null,
104
+ meta,
105
+ };
106
+ }
107
+ async _getStatisticsMonthly(identifier, game, month, year) {
108
+ if (game && !Games[game].statistics)
109
+ throw new Error(`Statistics are not available for the game: ${game}`);
110
+ const { data: response, error, meta, } = await this._fetchAPI(`/game/monthly/player/${game ?? "all"}/${identifier}/${year ?? new Date().getFullYear()}/${month ?? new Date().getMonth() + 1}`);
111
+ if (error)
112
+ return { data: null, error, meta };
113
+ if (game)
114
+ return { data: processGame(game, Timeframe.Monthly, false, response), error: null, meta };
115
+ let data = Object.fromEntries(Object.entries(response).map(([id, res]) => [id, id === "main" ? null : (processGame(id, Timeframe.Monthly, false, res) ?? null)]));
116
+ delete data.main;
117
+ return {
118
+ data: {
119
+ statistics: data,
120
+ },
121
+ error: null,
122
+ meta,
123
+ };
124
+ }
125
+ async _getStatisticsSeasonal(identifier, game, season) {
126
+ if (!Games[game].statistics)
127
+ throw new Error(`Statistics are not available for the game: ${game}`);
128
+ const { data: response, error, meta } = await this._fetchAPI(`/game/season/player/${game}/${identifier}/${season ?? 1}`);
129
+ if (error)
130
+ return { data: null, error, meta };
131
+ return { data: processGame(game, Timeframe.Seasonal, false, response), error: null, meta };
132
+ }
133
+ async getAvailableMonthlyLeaderboards(game) {
134
+ const { data: response, error, meta } = await this._fetchAPI(`/game/monthly/${game}/available`);
135
+ if (error)
136
+ return { data: null, error, meta };
137
+ return { data: response, error: null, meta };
138
+ }
139
+ /**
140
+ * `/game/season/player/{game}/{player}/{season}` Gets seasonal statistics for a player
141
+ * @param identifier Username or UUID of the player
142
+ * @param game The game to get the statistics for
143
+ * @param season The season to get the statistics for
144
+ * @returns The player's seasonal statistics
145
+ */
146
+ async getSeasonalStatistics(identifier, game, season = 1) {
147
+ if (game && !Games[game].statistics)
148
+ throw new Error(`Statistics are not available for the game: ${game}`);
149
+ const { data: response, error, meta } = await this._fetchAPI(`/game/season/player/${game}/${identifier}/${season}`);
150
+ if (error)
151
+ return { data: null, error, meta };
152
+ let data = processGame(game, Timeframe.Monthly, true, response);
153
+ return { data, error: null, meta };
154
+ }
155
+ async getLeaderboard(timeframe, game, options) {
156
+ if (game && !Games[game].statistics)
157
+ throw new Error(`Statistics are not available for the game: ${game}`);
158
+ if (timeframe === Timeframe.Monthly)
159
+ return this._getLeaderboardMonthly(game, options?.month || new Date().getMonth() + 1, options?.year || new Date().getFullYear());
160
+ if (timeframe === Timeframe.Seasonal)
161
+ return this._getLeaderboardSeasonal(game, options?.season || 1);
162
+ return this._getLeaderboardAllTime(game);
163
+ }
164
+ // /game/all/{game}
165
+ async _getLeaderboardAllTime(game) {
166
+ const { data: response, error, meta } = await this._fetchAPI(`/game/all/${game}`);
167
+ if (error)
168
+ return { data: null, error, meta };
169
+ let data = response.map((res) => processGame(game, Timeframe.AllTime, true, res));
170
+ return { data, error: null, meta };
171
+ }
172
+ // /game/monthly/{game}/{year}/{month}
173
+ async _getLeaderboardMonthly(game, month, year) {
174
+ if (game && !Games[game].statistics)
175
+ throw new Error(`Statistics are not available for the game: ${game}`);
176
+ const { data: response, error, meta } = await this._fetchAPI(`/game/monthly/${game}/${year}/${month}`);
177
+ if (error)
178
+ return { data: null, error, meta };
179
+ let data = response.map((res) => processGame(game, Timeframe.Monthly, true, res));
180
+ return { data, error: null, meta };
181
+ }
182
+ // /game/season/{game}/season
183
+ async _getLeaderboardSeasonal(game, season = 1) {
184
+ if (game && !Games[game].statistics)
185
+ throw new Error(`Statistics are not available for the game: ${game}`);
186
+ const { data: response, error, meta } = await this._fetchAPI(`/game/season/${game}/${season}`);
187
+ if (error)
188
+ return { data: null, error, meta };
189
+ let data = response.map((res) => processGame(game, Timeframe.Seasonal, true, res));
190
+ return { data, error: null, meta };
191
+ }
192
+ /**
193
+ * `/game/season/{game}/{season}` Gets seasonal statistics for a game
194
+ * @param game The game to get the statistics for
195
+ * @param season The season to get the statistics for
196
+ * @returns The seasonal statistics for the game
197
+ */
198
+ async getSeasonalLeaderboard(game, season = 1) {
199
+ if (game && !Games[game].statistics)
200
+ throw new Error(`Statistics are not available for the game: ${game}`);
201
+ const { data: response, error, meta } = await this._fetchAPI(`/game/season/${game}/${season ?? 1}`);
202
+ if (error)
203
+ return { data: null, error, meta };
204
+ let data = response.map((res) => processGame(game, Timeframe.Monthly, true, res));
205
+ return { data, error: null, meta };
206
+ }
207
+ /**
208
+ * `/global/statistics` Gets global statistics
209
+ * @returns The global statistics
210
+ */
211
+ async getGlobalStatistics() {
212
+ const { data: response, error, meta } = await this._fetchAPI("/global/statistics");
213
+ if (error)
214
+ return { data: null, error, meta };
215
+ return { data: response, error: null, meta };
216
+ }
217
+ /**
218
+ * `/game/map/{game}` Gets information about the maps in a game
219
+ * @param game The game to get the maps for (fails for games without maps)
220
+ * @returns A list of maps in the game
221
+ */
222
+ async getGameMaps(game) {
223
+ if (game && !Games[game].statistics)
224
+ throw new Error(`Statistics are not available for the game: ${game}`);
225
+ const { data: response, error, meta } = await this._fetchAPI(`/game/map/${game}`);
226
+ if (error)
227
+ return { data: null, error, meta };
228
+ return { data: response, error: null, meta };
229
+ }
230
+ /**
231
+ * `/game/meta/{game}` Gets metadata about a game
232
+ * @param game The game to get the metadata for
233
+ * @returns The metadata for the game
234
+ */
235
+ async getGameMetadata(game) {
236
+ if (game && !Games[game].statistics)
237
+ throw new Error(`Statistics are not available for the game: ${game}`);
238
+ const { data: response, error, meta } = await this._fetchAPI(`/game/meta/${game}`);
239
+ if (error)
240
+ return { data: null, error, meta };
241
+ return { data: response, error: null, meta };
242
+ }
243
+ }
244
+ //# sourceMappingURL=HiveAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiveAPI.js","sourceRoot":"","sources":["../src/HiveAPI.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,116 +1,10 @@
1
- import { Game, Timeframe } from "hive-bedrock-data";
2
- import { MethodResponse } from "./utils";
3
- import { ProcessedPlayerResponse } from "./processors/player";
4
- import { ProcessedGlobalStatisticsResponse } from "./processors/global_statistics";
5
- import { ProcessedMapResponse } from "./processors/map";
6
- import { ProcessedGameMetadata } from "./processors/meta";
7
- import { ProcessedPlayerSearchResponse } from "./processors/player_search";
8
- import { AvailableLeaderboardResponse, ProcessedAllGamesResponse, ProcessedGame, ProcessedMonthlyGamesResponse } from "./processors/game";
9
- interface Options {
10
- resolveDynamicTitles?: boolean;
11
- useModernLeaderboardSource?: boolean;
12
- apiBaseEndpoint?: string;
13
- requestInit?: RequestInit;
14
- }
15
- export * from "./processors/game";
16
- export * from "./processors/global_statistics";
17
- export * from "./processors/map";
18
- export * from "./processors/meta";
19
- export * from "./processors/player";
20
- export * from "./processors/player_search";
21
- export default class HiveAPI {
22
- options: Options;
23
- constructor(options?: Options);
24
- private _fetchAPI;
25
- /**
26
- * `/game/all/main/{identifier}` Gets information about a player
27
- * @param identifier Username or UUID of the player
28
- * @returns The player information
29
- */
30
- getPlayer(identifier: string): Promise<MethodResponse<ProcessedPlayerResponse>>;
31
- /**
32
- * `/player/search/{prefix}` Gets a list of players that match the prefix
33
- * @param prefix The prefix to search for (must be at least 4 characters long)
34
- * @returns A list of players that match the prefix
35
- */
36
- getPlayerSearch(prefix: string): Promise<MethodResponse<ProcessedPlayerSearchResponse>>;
37
- /**
38
- * Gets statistics for a player
39
- * @param identifier Username or UUID of the player
40
- * @param timeframe The timeframe to get the statistics for
41
- * @param options Additional options including specific game, month, and year
42
- * @returns The player statistics
43
- */
44
- getStatistics(identifier: string, timeframe: Timeframe.AllTime): Promise<MethodResponse<ProcessedAllGamesResponse>>;
45
- getStatistics<G extends Game>(identifier: string, timeframe: Timeframe.AllTime, options: {
46
- game: G;
47
- }): Promise<MethodResponse<ProcessedGame<Timeframe.AllTime, false>[G]>>;
48
- getStatistics(identifier: string, timeframe: Timeframe.Monthly, options?: {
49
- month?: number;
50
- year?: number;
51
- }): Promise<MethodResponse<ProcessedMonthlyGamesResponse>>;
52
- getStatistics<G extends Game>(identifier: string, timeframe: Timeframe.Monthly, options: {
53
- game: G;
54
- month?: number;
55
- year?: number;
56
- }): Promise<MethodResponse<ProcessedGame<Timeframe.Monthly, false>[G]>>;
57
- getStatistics<G extends Game>(identifier: string, timeframe: Timeframe.Seasonal, options: {
58
- game: G;
59
- season: number;
60
- }): Promise<MethodResponse<ProcessedMonthlyGamesResponse>>;
61
- private _getStatisticsAllTime;
62
- private _getStatisticsMonthly;
63
- private _getStatisticsSeasonal;
64
- getAvailableMonthlyLeaderboards<G extends Game>(game: G): Promise<MethodResponse<AvailableLeaderboardResponse>>;
65
- /**
66
- * `/game/season/player/{game}/{player}/{season}` Gets seasonal statistics for a player
67
- * @param identifier Username or UUID of the player
68
- * @param game The game to get the statistics for
69
- * @param season The season to get the statistics for
70
- * @returns The player's seasonal statistics
71
- */
72
- getSeasonalStatistics<G extends Game>(identifier: string, game: G, season?: number): Promise<MethodResponse<ProcessedMonthlyGamesResponse["statistics"][G] | null>>;
73
- /**
74
- * `/game/all/{game}` Gets statistics for a game
75
- * @param timeframe The timeframe to get the statistics for
76
- * @param game The game to get the statistics for
77
- * @param options Additional options including specific month and year
78
- */
79
- getLeaderboard<G extends Game>(timeframe: Timeframe.AllTime, game: G): Promise<MethodResponse<ProcessedGame<Timeframe.AllTime, true>[G][] | null>>;
80
- getLeaderboard<G extends Game>(timeframe: Timeframe.Monthly, game: G): Promise<MethodResponse<ProcessedGame<Timeframe.Monthly, true>[G][] | null>>;
81
- getLeaderboard<G extends Game>(timeframe: Timeframe.Monthly, game: G, options: {
82
- month?: number;
83
- year?: number;
84
- }): Promise<MethodResponse<ProcessedGame<Timeframe.Monthly, true>[G][] | null>>;
85
- getLeaderboard<G extends Game>(timeframe: Timeframe.Seasonal, game: G, options: {
86
- season: number;
87
- }): Promise<MethodResponse<ProcessedGame<Timeframe.Seasonal, true>[G][] | null>>;
88
- private _getLeaderboardAllTime;
89
- private _getLeaderboardMonthly;
90
- private _getLeaderboardSeasonal;
91
- /**
92
- * `/game/season/{game}/{season}` Gets seasonal statistics for a game
93
- * @param game The game to get the statistics for
94
- * @param season The season to get the statistics for
95
- * @returns The seasonal statistics for the game
96
- */
97
- getSeasonalLeaderboard<G extends Game>(game: G, season?: number): Promise<MethodResponse<ProcessedGame<Timeframe.Monthly, true>[G][]>>;
98
- /**
99
- * `/global/statistics` Gets global statistics
100
- * @returns The global statistics
101
- */
102
- getGlobalStatistics(): Promise<MethodResponse<ProcessedGlobalStatisticsResponse>>;
103
- /**
104
- * `/game/map/{game}` Gets information about the maps in a game
105
- * @param game The game to get the maps for (fails for games without maps)
106
- * @returns A list of maps in the game
107
- */
108
- getGameMaps(game: Game): Promise<MethodResponse<ProcessedMapResponse>>;
109
- /**
110
- * `/game/meta/{game}` Gets metadata about a game
111
- * @param game The game to get the metadata for
112
- * @returns The metadata for the game
113
- */
114
- getGameMetadata(game: Game): Promise<MethodResponse<ProcessedGameMetadata>>;
115
- }
1
+ import HiveAPI from "./HiveAPI.js";
2
+ export * from "./processors/game.js";
3
+ export * from "./processors/global_statistics.js";
4
+ export * from "./processors/map.js";
5
+ export * from "./processors/meta.js";
6
+ export * from "./processors/player.js";
7
+ export * from "./processors/player_search.js";
8
+ export { HiveAPI };
9
+ export default HiveAPI;
116
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mCAAmC,CAAC;AAClD,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,eAAe,OAAO,CAAC"}