@barbarbar338/bhapi 1.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/LICENSE +7 -0
- package/README.md +1 -0
- package/dist/brawlhalla.d.ts +13 -0
- package/dist/brawlhalla.d.ts.map +1 -0
- package/dist/brawlhalla.js +106 -0
- package/dist/brawlhalla.js.map +1 -0
- package/dist/client.d.ts +19 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +66 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/steam.d.ts +12 -0
- package/dist/steam.d.ts.map +1 -0
- package/dist/steam.js +90 -0
- package/dist/steam.js.map +1 -0
- package/dist/types.d.ts +184 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +48 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Copyright 2025 Barış DEMİRCİ <hi@338.rocks>
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
|
+
|
|
5
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
6
|
+
|
|
7
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# BHAPI wrapper
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AxiosResponse } from "axios";
|
|
2
|
+
import { Clan, GloryData, PlayerRanked, PlayerStats, RankingResponse, RankingsOptions, RankingTypes, StaticAllLegends, StaticLegend } from "./types";
|
|
3
|
+
export declare const getBHIDFromName: (name: string) => Promise<number>;
|
|
4
|
+
export declare const getStatsByBHID: (brawlhallaId: number) => Promise<AxiosResponse<PlayerStats>>;
|
|
5
|
+
export declare const getStatsByName: (name: string) => Promise<AxiosResponse<PlayerStats, any>>;
|
|
6
|
+
export declare const getRankedByBHID: (brawlhallaId: number) => Promise<AxiosResponse<PlayerRanked>>;
|
|
7
|
+
export declare const getClanByID: (clanID: number) => Promise<AxiosResponse<Clan>>;
|
|
8
|
+
export declare const getAllLegends: () => Promise<AxiosResponse<StaticAllLegends[]>>;
|
|
9
|
+
export declare const getLegendByID: (legendID: number) => Promise<AxiosResponse<StaticLegend>>;
|
|
10
|
+
export declare const getLegendByName: (name: string) => Promise<AxiosResponse<StaticLegend>>;
|
|
11
|
+
export declare const getGloryByBHID: (brawlhallaId: number) => Promise<GloryData>;
|
|
12
|
+
export declare const getRankings: <T extends RankingTypes>({ page, region, type, }: RankingsOptions<T>) => Promise<AxiosResponse<RankingResponse<T>>>;
|
|
13
|
+
//# sourceMappingURL=brawlhalla.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brawlhalla.d.ts","sourceRoot":"","sources":["../src/brawlhalla.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EACN,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,MAAM,SAAS,CAAC;AAmDjB,eAAO,MAAM,eAAe,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,CAWlE,CAAC;AAEF,eAAO,MAAM,cAAc,GAC1B,cAAc,MAAM,KAClB,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CACoB,CAAC;AAE1D,eAAO,MAAM,cAAc,GAAU,MAAM,MAAM,6CAIhD,CAAC;AAEF,eAAO,MAAM,eAAe,GAC3B,cAAc,MAAM,KAClB,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CACqB,CAAC;AAE5D,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CACpC,CAAC;AAErC,eAAO,MAAM,aAAa,QAAa,OAAO,CAC7C,aAAa,CAAC,gBAAgB,EAAE,CAAC,CACiB,CAAC;AAEpD,eAAO,MAAM,aAAa,GACzB,UAAU,MAAM,KACd,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CACW,CAAC;AAElD,eAAO,MAAM,eAAe,GAC3B,MAAM,MAAM,KACV,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAarC,CAAC;AAEF,eAAO,MAAM,cAAc,GAC1B,cAAc,MAAM,KAClB,OAAO,CAAC,SAAS,CAgCnB,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,CAAC,SAAS,YAAY,EAAE,yBAIvD,eAAe,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CACK,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRankings = exports.getGloryByBHID = exports.getLegendByName = exports.getLegendByID = exports.getAllLegends = exports.getClanByID = exports.getRankedByBHID = exports.getStatsByName = exports.getStatsByBHID = exports.getBHIDFromName = void 0;
|
|
4
|
+
const client_1 = require("./client");
|
|
5
|
+
const bestRating = (rank) => {
|
|
6
|
+
let ratings = [rank, ...rank.legends];
|
|
7
|
+
if (rank["2v2"] && rank["2v2"].length > 0)
|
|
8
|
+
ratings = [...ratings, ...rank["2v2"]];
|
|
9
|
+
const peak = ratings.map((r) => r.peak_rating);
|
|
10
|
+
return Math.max(...peak);
|
|
11
|
+
};
|
|
12
|
+
const gloryFromWins = (totalwins) => {
|
|
13
|
+
if (totalwins <= 150)
|
|
14
|
+
return 20 * totalwins;
|
|
15
|
+
return Math.floor(10 * (45 * Math.pow(Math.log10(totalwins * 2), 2)) + 245);
|
|
16
|
+
};
|
|
17
|
+
const gloryFromBestRating = (bestrating) => {
|
|
18
|
+
let retval = 0;
|
|
19
|
+
if (bestrating < 1200)
|
|
20
|
+
retval = 250;
|
|
21
|
+
if (bestrating >= 1200 && bestrating < 1286)
|
|
22
|
+
retval = 10 * (25 + 0.872093023 * (86 - (1286 - bestrating)));
|
|
23
|
+
if (bestrating >= 1286 && bestrating < 1390)
|
|
24
|
+
retval = 10 * (100 + 0.721153846 * (104 - (1390 - bestrating)));
|
|
25
|
+
if (bestrating >= 1390 && bestrating < 1680)
|
|
26
|
+
retval = 10 * (187 + 0.389655172 * (290 - (1680 - bestrating)));
|
|
27
|
+
if (bestrating >= 1680 && bestrating < 2000)
|
|
28
|
+
retval = 10 * (300 + 0.428125 * (320 - (2000 - bestrating)));
|
|
29
|
+
if (bestrating >= 2000 && bestrating < 2300)
|
|
30
|
+
retval = 10 * (437 + 0.143333333 * (300 - (2300 - bestrating)));
|
|
31
|
+
if (bestrating >= 2300)
|
|
32
|
+
retval = 10 * (480 + 0.05 * (400 - (2700 - bestrating)));
|
|
33
|
+
return Math.floor(retval);
|
|
34
|
+
};
|
|
35
|
+
const newEloFromOldElo = (elo) => {
|
|
36
|
+
if (elo >= 1400)
|
|
37
|
+
return Math.floor(1400 + (elo - 1400) / (3 - (3000 - elo) / 800));
|
|
38
|
+
return elo;
|
|
39
|
+
};
|
|
40
|
+
const getBHIDFromName = async (name) => {
|
|
41
|
+
const res = await client_1.request.get("rankings/1v1/all/1", {
|
|
42
|
+
params: {
|
|
43
|
+
name,
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
if (res.data.length === 0)
|
|
47
|
+
throw new Error(`Player with name "${name}" not found.`);
|
|
48
|
+
return res.data[0].brawlhalla_id;
|
|
49
|
+
};
|
|
50
|
+
exports.getBHIDFromName = getBHIDFromName;
|
|
51
|
+
const getStatsByBHID = (brawlhallaId) => client_1.request.get(`player/${brawlhallaId}/stats`);
|
|
52
|
+
exports.getStatsByBHID = getStatsByBHID;
|
|
53
|
+
const getStatsByName = async (name) => {
|
|
54
|
+
const brawlhallaId = await (0, exports.getBHIDFromName)(name);
|
|
55
|
+
return (0, exports.getStatsByBHID)(brawlhallaId);
|
|
56
|
+
};
|
|
57
|
+
exports.getStatsByName = getStatsByName;
|
|
58
|
+
const getRankedByBHID = (brawlhallaId) => client_1.request.get(`player/${brawlhallaId}/ranked`);
|
|
59
|
+
exports.getRankedByBHID = getRankedByBHID;
|
|
60
|
+
const getClanByID = (clanID) => client_1.request.get(`clan/${clanID}`);
|
|
61
|
+
exports.getClanByID = getClanByID;
|
|
62
|
+
const getAllLegends = async () => client_1.request.get("legends/all");
|
|
63
|
+
exports.getAllLegends = getAllLegends;
|
|
64
|
+
const getLegendByID = async (legendID) => client_1.request.get(`legends/${legendID}`);
|
|
65
|
+
exports.getLegendByID = getLegendByID;
|
|
66
|
+
const getLegendByName = async (name) => {
|
|
67
|
+
const getAllLegendsResponse = await (0, exports.getAllLegends)();
|
|
68
|
+
const legends = getAllLegendsResponse.data;
|
|
69
|
+
if (!legends || !legends.length)
|
|
70
|
+
throw new Error("No legends found.");
|
|
71
|
+
const legend = legends.find((legend) => legend.legend_name_key.toLowerCase() === name.toLowerCase());
|
|
72
|
+
if (!legend)
|
|
73
|
+
throw new Error(`Legend with name "${name}" not found.`);
|
|
74
|
+
return (0, exports.getLegendByID)(legend.legend_id);
|
|
75
|
+
};
|
|
76
|
+
exports.getLegendByName = getLegendByName;
|
|
77
|
+
const getGloryByBHID = async (brawlhallaId) => {
|
|
78
|
+
const res = await (0, exports.getRankedByBHID)(brawlhallaId);
|
|
79
|
+
if (!res || !res.data)
|
|
80
|
+
throw new Error(`No ranked data found for Brawlhalla ID: ${brawlhallaId}`);
|
|
81
|
+
let { games, wins } = res.data;
|
|
82
|
+
if (res.data["2v2"] && res.data["2v2"].length > 0)
|
|
83
|
+
res.data["2v2"].forEach((data) => {
|
|
84
|
+
wins += data.wins;
|
|
85
|
+
games += data.games;
|
|
86
|
+
});
|
|
87
|
+
const bestElo = bestRating(res.data);
|
|
88
|
+
const glory = games < 10
|
|
89
|
+
? { wins: 0, rating: 0 }
|
|
90
|
+
: {
|
|
91
|
+
wins: gloryFromWins(wins),
|
|
92
|
+
rating: gloryFromBestRating(bestElo),
|
|
93
|
+
};
|
|
94
|
+
const eloReset = newEloFromOldElo(res.data.rating);
|
|
95
|
+
return {
|
|
96
|
+
brawlhalla_id: res.data.brawlhalla_id,
|
|
97
|
+
name: res.data.name,
|
|
98
|
+
bestElo,
|
|
99
|
+
eloReset,
|
|
100
|
+
glory,
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
exports.getGloryByBHID = getGloryByBHID;
|
|
104
|
+
const getRankings = async ({ page, region, type, }) => client_1.request.get(`rankings/${type}/${region}/${page}`);
|
|
105
|
+
exports.getRankings = getRankings;
|
|
106
|
+
//# sourceMappingURL=brawlhalla.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brawlhalla.js","sourceRoot":"","sources":["../src/brawlhalla.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AxiosRequestConfig, AxiosResponse } from "axios";
|
|
2
|
+
export type QueueItem = {
|
|
3
|
+
config: AxiosRequestConfig;
|
|
4
|
+
path: string;
|
|
5
|
+
resolve: (value: AxiosResponse) => void;
|
|
6
|
+
reject: (reason?: any) => void;
|
|
7
|
+
};
|
|
8
|
+
export type CustomError = Error & {
|
|
9
|
+
retryAfterMs: number;
|
|
10
|
+
isRateLimitError: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare function setApiKey(key: string): string;
|
|
13
|
+
export declare const request: {
|
|
14
|
+
get: <T>(path: string, config?: AxiosRequestConfig) => Promise<AxiosResponse<T>>;
|
|
15
|
+
post: <T>(path: string, data?: any, config?: AxiosRequestConfig) => Promise<AxiosResponse<T>>;
|
|
16
|
+
put: <T>(path: string, data?: any, config?: AxiosRequestConfig) => Promise<AxiosResponse<T>>;
|
|
17
|
+
delete: <T>(path: string, config?: AxiosRequestConfig) => Promise<AxiosResponse<T>>;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAc,EAGb,kBAAkB,EAClB,aAAa,EACb,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;CAC1B,CAAC;AA+EF,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,UAIpC;AAED,eAAO,MAAM,OAAO;UACb,CAAC,QAAQ,MAAM,WAAW,kBAAkB,KACI,OAAO,CAC3D,aAAa,CAAC,CAAC,CAAC,CAChB;WAEK,CAAC,QAAQ,MAAM,SAAS,GAAG,WAAW,kBAAkB,KACF,OAAO,CAClE,aAAa,CAAC,CAAC,CAAC,CAChB;UAEI,CAAC,QAAQ,MAAM,SAAS,GAAG,WAAW,kBAAkB,KACF,OAAO,CACjE,aAAa,CAAC,CAAC,CAAC,CAChB;aAEO,CAAC,QAAQ,MAAM,WAAW,kBAAkB,KACI,OAAO,CAC9D,aAAa,CAAC,CAAC,CAAC,CAChB;CACF,CAAC"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.request = void 0;
|
|
4
|
+
exports.setApiKey = setApiKey;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
7
|
+
let API_KEY = null;
|
|
8
|
+
const MAX_CALLS_PER_SECOND = 10;
|
|
9
|
+
let requestQueue = [];
|
|
10
|
+
let activeRequests = 0;
|
|
11
|
+
const apiClient = axios_1.default.create({
|
|
12
|
+
baseURL: "https://api.brawlhalla.com/",
|
|
13
|
+
timeout: 10000,
|
|
14
|
+
headers: {
|
|
15
|
+
"Content-Type": "application/json",
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
apiClient.interceptors.request.use((config) => {
|
|
19
|
+
if (!API_KEY) {
|
|
20
|
+
throw new Error('API key not set. Call setApiKey("YOUR_KEY") before making requests.');
|
|
21
|
+
}
|
|
22
|
+
config.params = {
|
|
23
|
+
...config.params,
|
|
24
|
+
api_key: API_KEY,
|
|
25
|
+
};
|
|
26
|
+
return config;
|
|
27
|
+
});
|
|
28
|
+
apiClient.interceptors.response.use((response) => response, (error) => {
|
|
29
|
+
if (error.response?.status === 429) {
|
|
30
|
+
const retryAfter = parseInt(error.response.headers["retry-after"] || "1", 10);
|
|
31
|
+
const retryAfterMs = retryAfter * 1000;
|
|
32
|
+
const customError = new Error(`Rate limit exceeded. Retry after ${retryAfter} seconds`);
|
|
33
|
+
customError.retryAfterMs = retryAfterMs;
|
|
34
|
+
customError.isRateLimitError = true;
|
|
35
|
+
return Promise.reject(customError);
|
|
36
|
+
}
|
|
37
|
+
return Promise.reject(error);
|
|
38
|
+
});
|
|
39
|
+
setInterval(() => {
|
|
40
|
+
while (activeRequests < MAX_CALLS_PER_SECOND && requestQueue.length > 0) {
|
|
41
|
+
const item = requestQueue.shift();
|
|
42
|
+
if (item) {
|
|
43
|
+
activeRequests++;
|
|
44
|
+
apiClient(item.path, item.config)
|
|
45
|
+
.then((response) => item.resolve(response))
|
|
46
|
+
.catch((error) => item.reject(error))
|
|
47
|
+
.finally(() => {
|
|
48
|
+
activeRequests--;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}, 100);
|
|
53
|
+
const queuedRequest = (path, config) => new Promise((resolve, reject) => {
|
|
54
|
+
requestQueue.push({ config, path, resolve, reject });
|
|
55
|
+
});
|
|
56
|
+
function setApiKey(key) {
|
|
57
|
+
API_KEY = key;
|
|
58
|
+
return key;
|
|
59
|
+
}
|
|
60
|
+
exports.request = {
|
|
61
|
+
get: (path, config) => queuedRequest(path, { method: "get", ...config }),
|
|
62
|
+
post: (path, data, config) => queuedRequest(path, { method: "post", data, ...config }),
|
|
63
|
+
put: (path, data, config) => queuedRequest(path, { method: "put", data, ...config }),
|
|
64
|
+
delete: (path, config) => queuedRequest(path, { method: "delete", ...config }),
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAgGA,8BAIC;;AApGD,0DAKe;AAcf,IAAI,OAAO,GAAkB,IAAI,CAAC;AAClC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,IAAI,YAAY,GAAgB,EAAE,CAAC;AACnC,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,MAAM,SAAS,GAAkB,eAAK,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,6BAA6B;IACtC,OAAO,EAAE,KAAK;IACd,OAAO,EAAE;QACR,cAAc,EAAE,kBAAkB;KAClC;CACD,CAAC,CAAC;AAEH,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;IAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACd,qEAAqE,CACrE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,MAAM,GAAG;QACf,GAAG,MAAM,CAAC,MAAM;QAChB,OAAO,EAAE,OAAO;KAChB,CAAC;IAEF,OAAO,MAAM,CAAC;AACf,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAClC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,CAAC,KAAiB,EAAE,EAAE;IACrB,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,QAAQ,CAC1B,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,GAAG,EAC5C,EAAE,CACF,CAAC;QACF,MAAM,YAAY,GAAG,UAAU,GAAG,IAAI,CAAC;QAEvC,MAAM,WAAW,GAAG,IAAI,KAAK,CAC5B,oCAAoC,UAAU,UAAU,CACzC,CAAC;QAEjB,WAAW,CAAC,YAAY,GAAG,YAAY,CAAC;QACxC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAEpC,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC,CACD,CAAC;AAEF,WAAW,CAAC,GAAG,EAAE;IAChB,OAAO,cAAc,GAAG,oBAAoB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,IAAI,EAAE,CAAC;YACV,cAAc,EAAE,CAAC;YAEjB,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;iBAC/B,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;iBAC1C,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACpC,OAAO,CAAC,GAAG,EAAE;gBACb,cAAc,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;IACF,CAAC;AACF,CAAC,EAAE,GAAG,CAAC,CAAC;AAER,MAAM,aAAa,GAAG,CACrB,IAAY,EACZ,MAA0B,EACD,EAAE,CAC3B,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC/B,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEJ,SAAgB,SAAS,CAAC,GAAW;IACpC,OAAO,GAAG,GAAG,CAAC;IAEd,OAAO,GAAG,CAAC;AACZ,CAAC;AAEY,QAAA,OAAO,GAAG;IACtB,GAAG,EAAE,CAAI,IAAY,EAAE,MAA2B,EAAE,EAAE,CACrD,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAE/C;IAEF,IAAI,EAAE,CAAI,IAAY,EAAE,IAAU,EAAE,MAA2B,EAAE,EAAE,CAClE,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAEtD;IAEF,GAAG,EAAE,CAAI,IAAY,EAAE,IAAU,EAAE,MAA2B,EAAE,EAAE,CACjE,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAErD;IAEF,MAAM,EAAE,CAAI,IAAY,EAAE,MAA2B,EAAE,EAAE,CACxD,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAElD;CACF,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./brawlhalla"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./client"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./steam"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B;AAC7B,mDAAyB;AACzB,kDAAwB;AACxB,kDAAwB"}
|
package/dist/steam.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PlayerStats, SteamData } from "./types";
|
|
2
|
+
export declare const getSteamDataByURL: (steamProfileURL: string) => Promise<SteamData>;
|
|
3
|
+
export declare const getSteamDataBySteamID: (steamID: string) => Promise<SteamData>;
|
|
4
|
+
export declare const getBHIDFromSteamID: (steamID: string) => Promise<number>;
|
|
5
|
+
export declare const getBHIDFromSteamURL: (steamProfileURL: string) => Promise<number>;
|
|
6
|
+
export declare const getStatsBySteamID: (steamID: string) => Promise<import("axios").AxiosResponse<PlayerStats, any>>;
|
|
7
|
+
export declare const getStatsBySteamURL: (steamProfileURL: string) => Promise<import("axios").AxiosResponse<PlayerStats, any>>;
|
|
8
|
+
export declare const getRankedBySteamID: (steamID: string) => Promise<import("axios").AxiosResponse<import("./types").PlayerRanked, any>>;
|
|
9
|
+
export declare const getRankedBySteamURL: (steamProfileURL: string) => Promise<import("axios").AxiosResponse<import("./types").PlayerRanked, any>>;
|
|
10
|
+
export declare const getGloryFromSteamID: (steamID: string) => Promise<import("./types").GloryData>;
|
|
11
|
+
export declare const getGloryFromSteamURL: (steamProfileURL: string) => Promise<import("./types").GloryData>;
|
|
12
|
+
//# sourceMappingURL=steam.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steam.d.ts","sourceRoot":"","sources":["../src/steam.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AA2CjD,eAAO,MAAM,iBAAiB,GAC7B,iBAAiB,MAAM,KACrB,OAAO,CAAC,SAAS,CAAkC,CAAC;AAEvD,eAAO,MAAM,qBAAqB,GACjC,SAAS,MAAM,KACb,OAAO,CAAC,SAAS,CAC2C,CAAC;AAEhE,eAAO,MAAM,kBAAkB,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAWxE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC/B,iBAAiB,MAAM,KACrB,OAAO,CAAC,MAAM,CAIhB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,SAAS,MAAM,6DAItD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,iBAAiB,MAAM,6DAI/D,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,SAAS,MAAM,gFAIvD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,iBAAiB,MAAM,gFAIhE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,SAAS,MAAM,yCAIxD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,iBAAiB,MAAM,yCAIjE,CAAC"}
|
package/dist/steam.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getGloryFromSteamURL = exports.getGloryFromSteamID = exports.getRankedBySteamURL = exports.getRankedBySteamID = exports.getStatsBySteamURL = exports.getStatsBySteamID = exports.getBHIDFromSteamURL = exports.getBHIDFromSteamID = exports.getSteamDataBySteamID = exports.getSteamDataByURL = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
|
+
const xml2js_1 = require("xml2js");
|
|
7
|
+
const brawlhalla_1 = require("./brawlhalla");
|
|
8
|
+
const client_1 = require("./client");
|
|
9
|
+
const steamURLRegex = /^https?:\/\/steamcommunity\.com\/(id|profiles)\/[a-zA-Z0-9_-]+\/?$/;
|
|
10
|
+
const validateURL = (url) => steamURLRegex.test(url);
|
|
11
|
+
const getSteamData = async (url) => {
|
|
12
|
+
if (!validateURL(url))
|
|
13
|
+
throw new Error("Not a valid Steam profile URL: " + url);
|
|
14
|
+
const xml = await axios_1.default
|
|
15
|
+
.get(url, {
|
|
16
|
+
params: { xml: 1 },
|
|
17
|
+
})
|
|
18
|
+
.then((r) => {
|
|
19
|
+
if (r.status > 199 && r.status < 300)
|
|
20
|
+
return r.data;
|
|
21
|
+
else
|
|
22
|
+
throw new Error("Not a valid Steam profile URL: " + url);
|
|
23
|
+
})
|
|
24
|
+
.catch(() => {
|
|
25
|
+
throw new Error("Not a valid Steam profile URL: " + url);
|
|
26
|
+
});
|
|
27
|
+
const result = (await (0, xml2js_1.parseStringPromise)(xml).catch(() => {
|
|
28
|
+
throw new Error("Not a valid Steam profile URL: " + url);
|
|
29
|
+
}));
|
|
30
|
+
if (result.profile && result.profile.steamID64)
|
|
31
|
+
return {
|
|
32
|
+
name: result.profile.steamID[0],
|
|
33
|
+
steam_id: result.profile.steamID64[0],
|
|
34
|
+
steam_url: "https://steamcommunity.com/profiles/" +
|
|
35
|
+
result.profile.steamID64[0],
|
|
36
|
+
};
|
|
37
|
+
else
|
|
38
|
+
throw new Error("Not a valid Steam profile URL: " + url);
|
|
39
|
+
};
|
|
40
|
+
const getSteamDataByURL = async (steamProfileURL) => getSteamData(steamProfileURL);
|
|
41
|
+
exports.getSteamDataByURL = getSteamDataByURL;
|
|
42
|
+
const getSteamDataBySteamID = async (steamID) => getSteamData("https://steamcommunity.com/profiles/" + steamID);
|
|
43
|
+
exports.getSteamDataBySteamID = getSteamDataBySteamID;
|
|
44
|
+
const getBHIDFromSteamID = async (steamID) => {
|
|
45
|
+
const { data } = await client_1.request.get("search", {
|
|
46
|
+
params: {
|
|
47
|
+
steamid: steamID,
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
if (!data || data.length === 0)
|
|
51
|
+
throw new Error("No player found with this Steam ID: " + steamID);
|
|
52
|
+
return data[0].brawlhalla_id;
|
|
53
|
+
};
|
|
54
|
+
exports.getBHIDFromSteamID = getBHIDFromSteamID;
|
|
55
|
+
const getBHIDFromSteamURL = async (steamProfileURL) => {
|
|
56
|
+
const steamData = await (0, exports.getSteamDataByURL)(steamProfileURL);
|
|
57
|
+
return (0, exports.getBHIDFromSteamID)(steamData.steam_id);
|
|
58
|
+
};
|
|
59
|
+
exports.getBHIDFromSteamURL = getBHIDFromSteamURL;
|
|
60
|
+
const getStatsBySteamID = async (steamID) => {
|
|
61
|
+
const brawlhallaId = await (0, exports.getBHIDFromSteamID)(steamID);
|
|
62
|
+
return (0, brawlhalla_1.getStatsByBHID)(brawlhallaId);
|
|
63
|
+
};
|
|
64
|
+
exports.getStatsBySteamID = getStatsBySteamID;
|
|
65
|
+
const getStatsBySteamURL = async (steamProfileURL) => {
|
|
66
|
+
const brawlhallaId = await (0, exports.getBHIDFromSteamURL)(steamProfileURL);
|
|
67
|
+
return (0, brawlhalla_1.getStatsByBHID)(brawlhallaId);
|
|
68
|
+
};
|
|
69
|
+
exports.getStatsBySteamURL = getStatsBySteamURL;
|
|
70
|
+
const getRankedBySteamID = async (steamID) => {
|
|
71
|
+
const brawlhallaId = await (0, exports.getBHIDFromSteamID)(steamID);
|
|
72
|
+
return (0, brawlhalla_1.getRankedByBHID)(brawlhallaId);
|
|
73
|
+
};
|
|
74
|
+
exports.getRankedBySteamID = getRankedBySteamID;
|
|
75
|
+
const getRankedBySteamURL = async (steamProfileURL) => {
|
|
76
|
+
const brawlhallaId = await (0, exports.getBHIDFromSteamURL)(steamProfileURL);
|
|
77
|
+
return (0, brawlhalla_1.getRankedByBHID)(brawlhallaId);
|
|
78
|
+
};
|
|
79
|
+
exports.getRankedBySteamURL = getRankedBySteamURL;
|
|
80
|
+
const getGloryFromSteamID = async (steamID) => {
|
|
81
|
+
const brawlhallaId = await (0, exports.getBHIDFromSteamID)(steamID);
|
|
82
|
+
return (0, brawlhalla_1.getGloryByBHID)(brawlhallaId);
|
|
83
|
+
};
|
|
84
|
+
exports.getGloryFromSteamID = getGloryFromSteamID;
|
|
85
|
+
const getGloryFromSteamURL = async (steamProfileURL) => {
|
|
86
|
+
const brawlhallaId = await (0, exports.getBHIDFromSteamURL)(steamProfileURL);
|
|
87
|
+
return (0, brawlhalla_1.getGloryByBHID)(brawlhallaId);
|
|
88
|
+
};
|
|
89
|
+
exports.getGloryFromSteamURL = getGloryFromSteamURL;
|
|
90
|
+
//# sourceMappingURL=steam.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steam.js","sourceRoot":"","sources":["../src/steam.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
export type SteamData = {
|
|
2
|
+
name: string;
|
|
3
|
+
steam_id: string;
|
|
4
|
+
steam_url: string;
|
|
5
|
+
};
|
|
6
|
+
export type BHIDFromSteamID = {
|
|
7
|
+
name: string;
|
|
8
|
+
brawlhalla_id: number;
|
|
9
|
+
};
|
|
10
|
+
export type GloryData = {
|
|
11
|
+
brawlhalla_id: number;
|
|
12
|
+
name: string;
|
|
13
|
+
bestElo: number;
|
|
14
|
+
eloReset: number;
|
|
15
|
+
glory: {
|
|
16
|
+
wins: number;
|
|
17
|
+
rating: number;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export type RankingsOptions<T extends RankingTypes = "1v1"> = {
|
|
21
|
+
type: T;
|
|
22
|
+
region: RankedRegion;
|
|
23
|
+
page: string | number;
|
|
24
|
+
};
|
|
25
|
+
export type RankingResponse<T extends RankingTypes = "1v1"> = T extends "1v1" ? Ranking1v1[] : T extends "2v2" ? Ranking2v2[] : T extends "seasonal" ? RankingSeasonal[] : never;
|
|
26
|
+
export type PlayerStats = {
|
|
27
|
+
brawlhalla_id: number;
|
|
28
|
+
name: string;
|
|
29
|
+
xp: number;
|
|
30
|
+
level: number;
|
|
31
|
+
xp_percentage: number;
|
|
32
|
+
games: number;
|
|
33
|
+
wins: number;
|
|
34
|
+
damagebomb: string;
|
|
35
|
+
damagemine: string;
|
|
36
|
+
damagespikeball: string;
|
|
37
|
+
damagesidekick: string;
|
|
38
|
+
hitsnowball: number;
|
|
39
|
+
kobomb: number;
|
|
40
|
+
komine: number;
|
|
41
|
+
kospikeball: number;
|
|
42
|
+
kosidekick: number;
|
|
43
|
+
kosnowball: number;
|
|
44
|
+
legends: LegendStats[];
|
|
45
|
+
clan: PlayerClan | undefined;
|
|
46
|
+
};
|
|
47
|
+
export type LegendStats = {
|
|
48
|
+
legend_id: number;
|
|
49
|
+
legend_name_key: string;
|
|
50
|
+
damagedealt: string;
|
|
51
|
+
damagetaken: string;
|
|
52
|
+
kos: number;
|
|
53
|
+
falls: number;
|
|
54
|
+
suicides: number;
|
|
55
|
+
teamkos: number;
|
|
56
|
+
matchtime: number;
|
|
57
|
+
games: number;
|
|
58
|
+
wins: number;
|
|
59
|
+
damageunarmed: string;
|
|
60
|
+
damagethrownitem: string;
|
|
61
|
+
damageweaponone: string;
|
|
62
|
+
damageweapontwo: string;
|
|
63
|
+
damagegadgets: string;
|
|
64
|
+
kounarmed: number;
|
|
65
|
+
kothrownitem: number;
|
|
66
|
+
koweaponone: number;
|
|
67
|
+
koweapontwo: number;
|
|
68
|
+
kogadgets: number;
|
|
69
|
+
timeheldweaponone: number;
|
|
70
|
+
timeheldweapontwo: number;
|
|
71
|
+
xp: number;
|
|
72
|
+
level: number;
|
|
73
|
+
xp_percentage: number;
|
|
74
|
+
};
|
|
75
|
+
export type PlayerClan = {
|
|
76
|
+
clan_name: string;
|
|
77
|
+
clan_id: number;
|
|
78
|
+
clan_xp: string;
|
|
79
|
+
personal_xp: number;
|
|
80
|
+
};
|
|
81
|
+
export type PlayerRanked = PlayerSeason & {
|
|
82
|
+
name: string;
|
|
83
|
+
brawlhalla_id: number;
|
|
84
|
+
global_rank: number;
|
|
85
|
+
region_rank: number;
|
|
86
|
+
legends: LegendRanked[];
|
|
87
|
+
"2v2": T2v2Team[];
|
|
88
|
+
};
|
|
89
|
+
export type PlayerSeason = {
|
|
90
|
+
rating: number;
|
|
91
|
+
peak_rating: number;
|
|
92
|
+
tier: RankedTier;
|
|
93
|
+
wins: number;
|
|
94
|
+
games: number;
|
|
95
|
+
region: RankedRegion;
|
|
96
|
+
};
|
|
97
|
+
export type LegendRanked = {
|
|
98
|
+
legend_id: number;
|
|
99
|
+
legend_name_key: string;
|
|
100
|
+
rating: number;
|
|
101
|
+
peak_rating: number;
|
|
102
|
+
tier: RankedTier;
|
|
103
|
+
wins: number;
|
|
104
|
+
games: number;
|
|
105
|
+
};
|
|
106
|
+
export type T2v2Team = {
|
|
107
|
+
brawlhalla_id_one: number;
|
|
108
|
+
brawlhalla_id_two: number;
|
|
109
|
+
rating: number;
|
|
110
|
+
peak_rating: number;
|
|
111
|
+
tier: RankedTier;
|
|
112
|
+
wins: number;
|
|
113
|
+
games: number;
|
|
114
|
+
teamname: string;
|
|
115
|
+
region: RankedRegion;
|
|
116
|
+
global_rank: number;
|
|
117
|
+
};
|
|
118
|
+
export type Clan = {
|
|
119
|
+
clan_id: number;
|
|
120
|
+
clan_name: string;
|
|
121
|
+
clan_create_date: number;
|
|
122
|
+
clan_xp: string;
|
|
123
|
+
clan: ClanMember[];
|
|
124
|
+
};
|
|
125
|
+
export type ClanMember = {
|
|
126
|
+
brawlhalla_id: number;
|
|
127
|
+
name: string;
|
|
128
|
+
rank: ClanRank;
|
|
129
|
+
join_date: number;
|
|
130
|
+
xp: number;
|
|
131
|
+
};
|
|
132
|
+
export type Ranking = {
|
|
133
|
+
rank: number;
|
|
134
|
+
rating: number;
|
|
135
|
+
tier: RankedTier;
|
|
136
|
+
games: number;
|
|
137
|
+
wins: number;
|
|
138
|
+
region: RankedRegion;
|
|
139
|
+
peak_rating: number;
|
|
140
|
+
};
|
|
141
|
+
export type Ranking1v1 = Ranking & {
|
|
142
|
+
name: string;
|
|
143
|
+
brawlhalla_id: number;
|
|
144
|
+
best_legend: number;
|
|
145
|
+
best_legend_games: number;
|
|
146
|
+
best_legend_wins: number;
|
|
147
|
+
twitch_name?: string;
|
|
148
|
+
};
|
|
149
|
+
export type Ranking2v2 = Ranking & {
|
|
150
|
+
teamname: string;
|
|
151
|
+
brawlhalla_id_one: number;
|
|
152
|
+
brawlhalla_id_two: number;
|
|
153
|
+
twitch_name_one?: string;
|
|
154
|
+
twitch_name_two?: string;
|
|
155
|
+
};
|
|
156
|
+
export type RankingSeasonal = Ranking & {
|
|
157
|
+
name: string;
|
|
158
|
+
brawlhalla_id: number;
|
|
159
|
+
};
|
|
160
|
+
export type StaticAllLegends = {
|
|
161
|
+
legend_id: number;
|
|
162
|
+
legend_name_key: string;
|
|
163
|
+
bio_name: string;
|
|
164
|
+
bio_aka: string;
|
|
165
|
+
weapon_one: string;
|
|
166
|
+
weapon_two: string;
|
|
167
|
+
strength: string;
|
|
168
|
+
dexterity: string;
|
|
169
|
+
defense: string;
|
|
170
|
+
speed: string;
|
|
171
|
+
};
|
|
172
|
+
export type StaticLegend = StaticAllLegends & {
|
|
173
|
+
bio_quote: string;
|
|
174
|
+
bio_quote_about_attrib: string;
|
|
175
|
+
bio_quote_from: string;
|
|
176
|
+
bio_quote_from_attrib: string;
|
|
177
|
+
bio_text: string;
|
|
178
|
+
bot_name: string;
|
|
179
|
+
};
|
|
180
|
+
export type ClanRank = "Leader" | "Officer" | "Member" | "Recruit";
|
|
181
|
+
export type RankedTier = "Diamond" | "Platinum 5" | "Platinum 4" | "Platinum 3" | "Platinum 2" | "Platinum 1" | "Gold 5" | "Gold 4" | "Gold 3" | "Gold 2" | "Gold 1" | "Gold 0" | "Silver 5" | "Silver 4" | "Silver 3" | "Silver 2" | "Silver 1" | "Silver 0" | "Bronze 5" | "Bronze 4" | "Bronze 3" | "Bronze 2" | "Bronze 1" | "Bronze 0" | "Tin 5" | "Tin 4" | "Tin 3" | "Tin 2" | "Tin 1" | "Tin 0";
|
|
182
|
+
export type RankedRegion = "all" | "ALL" | "us-e" | "US-E" | "eu" | "EU" | "sea" | "SEA" | "brz" | "BRZ" | "aus" | "AUS" | "us-w" | "US-W" | "jpn" | "JPN";
|
|
183
|
+
export type RankingTypes = "1v1" | "2v2" | "seasonal";
|
|
184
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"author": {
|
|
3
|
+
"email": "hi@338.rocks",
|
|
4
|
+
"name": "Barış DEMİRCİ",
|
|
5
|
+
"url": "https://338.rocks"
|
|
6
|
+
},
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"axios": "^1.11.0",
|
|
9
|
+
"xml2js": "^0.6.2"
|
|
10
|
+
},
|
|
11
|
+
"description": "Brawlhalla API wrapper for NodeJS and web",
|
|
12
|
+
"devDependencies": {
|
|
13
|
+
"@types/node": "^24.1.0",
|
|
14
|
+
"@types/xml2js": "^0.4.14",
|
|
15
|
+
"prettier": "^3.6.2",
|
|
16
|
+
"rimraf": "^6.0.1",
|
|
17
|
+
"taze": "^19.1.0",
|
|
18
|
+
"ts-node": "^10.9.2",
|
|
19
|
+
"tslib": "^2.8.1",
|
|
20
|
+
"typescript": "^5.8.3"
|
|
21
|
+
},
|
|
22
|
+
"keywords": [
|
|
23
|
+
"rest",
|
|
24
|
+
"api",
|
|
25
|
+
"wrapper",
|
|
26
|
+
"brawlhalla",
|
|
27
|
+
"bh",
|
|
28
|
+
"bhapi",
|
|
29
|
+
"brawl"
|
|
30
|
+
],
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"main": "dist",
|
|
33
|
+
"name": "@barbarbar338/bhapi",
|
|
34
|
+
"private": false,
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "git+https://github.com/barbarbar338/bhapi.git"
|
|
38
|
+
},
|
|
39
|
+
"scripts": {
|
|
40
|
+
"build": "tsc",
|
|
41
|
+
"format": "prettier -w .",
|
|
42
|
+
"prebuild": "rimraf dist",
|
|
43
|
+
"start": "ts-node src",
|
|
44
|
+
"update": "taze latest -w"
|
|
45
|
+
},
|
|
46
|
+
"types": "dist",
|
|
47
|
+
"version": "1.0.0"
|
|
48
|
+
}
|