clashofclans.js 3.0.2 → 3.1.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/client/Client.d.ts +11 -9
- package/dist/client/Client.js +23 -14
- package/dist/client/PollingClient.d.ts +3 -2
- package/dist/client/PollingClient.js +8 -4
- package/dist/index.mjs +0 -4
- package/dist/rest/RESTManager.d.ts +10 -6
- package/dist/rest/RESTManager.js +15 -6
- package/dist/rest/RequestHandler.js +6 -6
- package/dist/struct/Clan.d.ts +12 -11
- package/dist/struct/Clan.js +6 -7
- package/dist/struct/ClanMember.d.ts +4 -2
- package/dist/struct/ClanMember.js +1 -0
- package/dist/struct/LegendStatistics.d.ts +4 -4
- package/dist/struct/LegendStatistics.js +2 -2
- package/dist/struct/Player.d.ts +7 -5
- package/dist/struct/Player.js +3 -2
- package/dist/struct/Ranking.d.ts +17 -13
- package/dist/struct/Ranking.js +5 -1
- package/dist/struct/Unit.js +7 -4
- package/dist/struct/index.d.ts +0 -4
- package/dist/struct/index.js +0 -4
- package/dist/types/api.d.ts +46 -17
- package/dist/types/lib.d.ts +3 -0
- package/dist/util/Constants.d.ts +85 -1
- package/dist/util/Constants.js +1 -1
- package/dist/util/raw.json +1 -1
- package/package.json +1 -1
package/dist/struct/Ranking.js
CHANGED
|
@@ -38,9 +38,11 @@ class RankedPlayer {
|
|
|
38
38
|
// @ts-expect-error
|
|
39
39
|
this.defenseWins = data.defenseWins ?? null;
|
|
40
40
|
// @ts-expect-error
|
|
41
|
-
this.
|
|
41
|
+
this.builderBaseTrophies = data.builderBaseTrophies ?? null;
|
|
42
42
|
// @ts-expect-error
|
|
43
43
|
this.versusBattleWins = data.versusBattleWins ?? null;
|
|
44
|
+
// @ts-expect-error
|
|
45
|
+
this.versusTrophies = data.versusTrophies ?? null;
|
|
44
46
|
this.rank = data.rank;
|
|
45
47
|
this.previousRank = data.previousRank ?? null; // eslint-disable-line
|
|
46
48
|
// @ts-expect-error
|
|
@@ -63,6 +65,8 @@ class RankedClan {
|
|
|
63
65
|
// @ts-expect-error
|
|
64
66
|
this.points = data.clanPoints ?? null;
|
|
65
67
|
// @ts-expect-error
|
|
68
|
+
this.builderBasePoints = data.clanBuilderBasePoints ?? null;
|
|
69
|
+
// @ts-expect-error
|
|
66
70
|
this.versusPoints = data.clanVersusPoints ?? null;
|
|
67
71
|
this.location = new Location_1.Location(data.location);
|
|
68
72
|
this.memberCount = data.members;
|
package/dist/struct/Unit.js
CHANGED
|
@@ -30,12 +30,15 @@ class Unit {
|
|
|
30
30
|
this.level = origin.level;
|
|
31
31
|
this.maxLevel = origin.maxLevel;
|
|
32
32
|
this.boostable = data.townHallLevel >= 11 && origin.level >= rawSuperUnit.minOriginalLevel;
|
|
33
|
-
this.upgradeCost = original.upgrade.cost[origin.level - 1]
|
|
33
|
+
this.upgradeCost = original.upgrade.cost[origin.level - 1] || 0;
|
|
34
34
|
this.upgradeResource = original.upgrade.resource;
|
|
35
|
-
this.upgradeTime = original.upgrade.time[origin.level - 1]
|
|
35
|
+
this.upgradeTime = original.upgrade.time[origin.level - 1] || 0;
|
|
36
36
|
this.hallMaxLevel = original.levels[data.townHallLevel - 1];
|
|
37
37
|
}
|
|
38
38
|
else if (rawUnit) {
|
|
39
|
+
// special case for the builder base
|
|
40
|
+
this.level = this.level === 0 ? 0 : Math.max(this.level, rawUnit.minLevel ?? this.level);
|
|
41
|
+
this.maxLevel = Math.max(rawUnit.levels[rawUnit.levels.length - 1], this.maxLevel);
|
|
39
42
|
this.id = rawUnit.id;
|
|
40
43
|
this.housingSpace = rawUnit.housingSpace;
|
|
41
44
|
this.unlockCost = rawUnit.unlock.cost;
|
|
@@ -45,8 +48,8 @@ class Unit {
|
|
|
45
48
|
this.unlockHallLevel = rawUnit.unlock.hall;
|
|
46
49
|
this.unlockBuildingLevel = rawUnit.unlock.buildingLevel;
|
|
47
50
|
this.upgradeResource = rawUnit.upgrade.resource;
|
|
48
|
-
this.upgradeCost = rawUnit.upgrade.cost[this.level - 1]
|
|
49
|
-
this.upgradeTime = rawUnit.upgrade.time[this.level - 1]
|
|
51
|
+
this.upgradeCost = rawUnit.upgrade.cost[this.level - 1] || 0;
|
|
52
|
+
this.upgradeTime = rawUnit.upgrade.time[this.level - 1] || 0;
|
|
50
53
|
this.dps = rawUnit.dps[this.level - 1];
|
|
51
54
|
this.trainingTime = Number(rawUnit.trainingTime);
|
|
52
55
|
if (rawUnit.category === 'hero')
|
package/dist/struct/index.d.ts
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
export * from './Achievement';
|
|
2
2
|
export * from './Badge';
|
|
3
|
-
export * from './ChatLanguage';
|
|
4
3
|
export * from './Clan';
|
|
5
4
|
export * from './ClanMember';
|
|
6
5
|
export * from './ClanWar';
|
|
7
6
|
export * from './ClanWarLog';
|
|
8
7
|
export * from './ClanWarLeagueGroup';
|
|
9
8
|
export * from './Icon';
|
|
10
|
-
export * from './Label';
|
|
11
|
-
export * from './League';
|
|
12
9
|
export * from './LegendStatistics';
|
|
13
10
|
export * from './Location';
|
|
14
11
|
export * from './Player';
|
|
@@ -16,6 +13,5 @@ export * from './PlayerClan';
|
|
|
16
13
|
export * from './Ranking';
|
|
17
14
|
export * from './Season';
|
|
18
15
|
export * from './Unit';
|
|
19
|
-
export * from './WarLeague';
|
|
20
16
|
export * from './ClanCapital';
|
|
21
17
|
export * from './CapitalRaidSeason';
|
package/dist/struct/index.js
CHANGED
|
@@ -16,15 +16,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./Achievement"), exports);
|
|
18
18
|
__exportStar(require("./Badge"), exports);
|
|
19
|
-
__exportStar(require("./ChatLanguage"), exports);
|
|
20
19
|
__exportStar(require("./Clan"), exports);
|
|
21
20
|
__exportStar(require("./ClanMember"), exports);
|
|
22
21
|
__exportStar(require("./ClanWar"), exports);
|
|
23
22
|
__exportStar(require("./ClanWarLog"), exports);
|
|
24
23
|
__exportStar(require("./ClanWarLeagueGroup"), exports);
|
|
25
24
|
__exportStar(require("./Icon"), exports);
|
|
26
|
-
__exportStar(require("./Label"), exports);
|
|
27
|
-
__exportStar(require("./League"), exports);
|
|
28
25
|
__exportStar(require("./LegendStatistics"), exports);
|
|
29
26
|
__exportStar(require("./Location"), exports);
|
|
30
27
|
__exportStar(require("./Player"), exports);
|
|
@@ -32,6 +29,5 @@ __exportStar(require("./PlayerClan"), exports);
|
|
|
32
29
|
__exportStar(require("./Ranking"), exports);
|
|
33
30
|
__exportStar(require("./Season"), exports);
|
|
34
31
|
__exportStar(require("./Unit"), exports);
|
|
35
|
-
__exportStar(require("./WarLeague"), exports);
|
|
36
32
|
__exportStar(require("./ClanCapital"), exports);
|
|
37
33
|
__exportStar(require("./CapitalRaidSeason"), exports);
|
package/dist/types/api.d.ts
CHANGED
|
@@ -43,9 +43,13 @@ export interface APIClan {
|
|
|
43
43
|
badgeUrls: APIBadge;
|
|
44
44
|
clanLevel: number;
|
|
45
45
|
clanPoints: number;
|
|
46
|
-
|
|
46
|
+
clanBuilderBasePoints: number;
|
|
47
|
+
/** @deprecated */
|
|
48
|
+
clanVersusPoints?: number;
|
|
47
49
|
requiredTrophies: number;
|
|
48
50
|
requiredTownhallLevel?: number;
|
|
51
|
+
requiredBuilderBaseTrophies?: number;
|
|
52
|
+
/** @deprecated */
|
|
49
53
|
requiredVersusTrophies?: number;
|
|
50
54
|
warFrequency: 'always' | 'moreThanOncePerWeek' | 'oncePerWeek' | 'lessThanOncePerWeek' | 'never' | 'unknown';
|
|
51
55
|
warWinStreak: number;
|
|
@@ -69,6 +73,8 @@ export interface APIClanMember {
|
|
|
69
73
|
expLevel: number;
|
|
70
74
|
league: APILeague;
|
|
71
75
|
trophies: number;
|
|
76
|
+
builderBaseTrophies?: number;
|
|
77
|
+
/** @deprecated */
|
|
72
78
|
versusTrophies?: number;
|
|
73
79
|
clanRank: number;
|
|
74
80
|
previousClanRank: number;
|
|
@@ -250,10 +256,12 @@ export interface APIPlayer {
|
|
|
250
256
|
attackWins: number;
|
|
251
257
|
defenseWins: number;
|
|
252
258
|
builderHallLevel?: number;
|
|
253
|
-
|
|
254
|
-
|
|
259
|
+
builderBaseTrophies?: number;
|
|
260
|
+
bestBuilderBaseTrophies?: number;
|
|
261
|
+
/** @deprecated */
|
|
255
262
|
versusBattleWins?: number;
|
|
256
|
-
|
|
263
|
+
/** @deprecated */
|
|
264
|
+
versusTrophies?: number;
|
|
257
265
|
donations: number;
|
|
258
266
|
donationsReceived: number;
|
|
259
267
|
clanCapitalContributions: number;
|
|
@@ -261,6 +269,10 @@ export interface APIPlayer {
|
|
|
261
269
|
warPreference?: 'in' | 'out';
|
|
262
270
|
clan?: APIPlayerClan;
|
|
263
271
|
league?: APILeague;
|
|
272
|
+
builderBaseLeague?: {
|
|
273
|
+
id: number;
|
|
274
|
+
name: string;
|
|
275
|
+
};
|
|
264
276
|
legendStatistics?: APILegendStatistics;
|
|
265
277
|
achievements: APIPlayerAchievement[];
|
|
266
278
|
troops: APIPlayerItem[];
|
|
@@ -271,8 +283,8 @@ export interface APIPlayer {
|
|
|
271
283
|
}
|
|
272
284
|
export interface APILegendStatistics {
|
|
273
285
|
previousSeason?: APISeason;
|
|
274
|
-
|
|
275
|
-
|
|
286
|
+
previousBuilderBaseSeason?: APISeason;
|
|
287
|
+
bestBuilderBaseSeason?: APISeason;
|
|
276
288
|
currentSeason?: APISeason;
|
|
277
289
|
bestSeason?: APISeason;
|
|
278
290
|
legendTrophies: number;
|
|
@@ -351,12 +363,12 @@ export interface APIPlayerRanking {
|
|
|
351
363
|
clan?: Omit<APIPlayerClan, 'clanLevel'>;
|
|
352
364
|
league: APILeague;
|
|
353
365
|
}
|
|
354
|
-
/** /locations/{locationId}/rankings/clans-
|
|
355
|
-
export interface
|
|
356
|
-
items:
|
|
366
|
+
/** /locations/{locationId}/rankings/clans-builder-base */
|
|
367
|
+
export interface APIClanBuilderBaseRankingList {
|
|
368
|
+
items: APIClanBuilderBaseRanking[];
|
|
357
369
|
paging: APIPaging;
|
|
358
370
|
}
|
|
359
|
-
export interface
|
|
371
|
+
export interface APIClanBuilderBaseRanking {
|
|
360
372
|
clanLevel: number;
|
|
361
373
|
location: APILocation;
|
|
362
374
|
members: number;
|
|
@@ -365,22 +377,31 @@ export interface APIClanVersusRanking {
|
|
|
365
377
|
rank: number;
|
|
366
378
|
previousRank: number;
|
|
367
379
|
badgeUrls: APIBadge;
|
|
368
|
-
|
|
380
|
+
clanBuilderBasePoints: number;
|
|
381
|
+
/** @deprecated */
|
|
382
|
+
clanVersusPoints?: number;
|
|
369
383
|
}
|
|
370
|
-
/** /locations/{locationId}/rankings/players-
|
|
371
|
-
export interface
|
|
372
|
-
items:
|
|
384
|
+
/** /locations/{locationId}/rankings/players-builder-base */
|
|
385
|
+
export interface APIPlayerBuilderBaseRankingList {
|
|
386
|
+
items: APIPlayerBuilderBaseRanking[];
|
|
373
387
|
paging: APIPaging;
|
|
374
388
|
}
|
|
375
|
-
export interface
|
|
389
|
+
export interface APIPlayerBuilderBaseRanking {
|
|
376
390
|
tag: string;
|
|
377
391
|
name: string;
|
|
378
392
|
expLevel: number;
|
|
379
|
-
|
|
380
|
-
|
|
393
|
+
builderBaseTrophies: number;
|
|
394
|
+
/** @deprecated */
|
|
395
|
+
versusBattleWins?: number;
|
|
396
|
+
/** @deprecated */
|
|
397
|
+
versusTrophies?: number;
|
|
381
398
|
rank: number;
|
|
382
399
|
previousRank: number;
|
|
383
400
|
clan?: APIPlayerClan;
|
|
401
|
+
builderBaseLeague?: {
|
|
402
|
+
id: number;
|
|
403
|
+
name: string;
|
|
404
|
+
};
|
|
384
405
|
}
|
|
385
406
|
export interface APIClanCapitalRanking {
|
|
386
407
|
clanLevel: number;
|
|
@@ -403,6 +424,14 @@ export interface APILeagueList {
|
|
|
403
424
|
items: APILeague[];
|
|
404
425
|
paging: APIPaging;
|
|
405
426
|
}
|
|
427
|
+
export interface APIBuilderBaseLeagueList {
|
|
428
|
+
items: APIBuilderBaseLeague[];
|
|
429
|
+
paging: APIPaging;
|
|
430
|
+
}
|
|
431
|
+
export interface APIBuilderBaseLeague {
|
|
432
|
+
id: number;
|
|
433
|
+
name: string;
|
|
434
|
+
}
|
|
406
435
|
/** /leagues/{leagueId} */
|
|
407
436
|
export interface APILeague {
|
|
408
437
|
id: number;
|
package/dist/types/lib.d.ts
CHANGED
|
@@ -43,6 +43,9 @@ export interface RESTOptions extends ClientOptions {
|
|
|
43
43
|
/** Set this `false` to use `res.ok` property. */
|
|
44
44
|
rejectIfNotValid?: boolean;
|
|
45
45
|
}
|
|
46
|
+
export interface PollingClientOptions extends ClientOptions {
|
|
47
|
+
pollingInterval?: number;
|
|
48
|
+
}
|
|
46
49
|
/** Options for a {@link RequestHandler} */
|
|
47
50
|
export interface RequestHandlerOptions extends ClientOptions {
|
|
48
51
|
/** Set this `false` to use `res.ok` property. */
|
package/dist/util/Constants.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export declare const PollingEvents: {
|
|
|
28
28
|
readonly ClanLoopEnd: "clanLoopEnd";
|
|
29
29
|
readonly PlayerLoopStart: "playerLoopStart";
|
|
30
30
|
readonly PlayerLoopEnd: "playerLoopEnd";
|
|
31
|
-
readonly WarLoopStart: "
|
|
31
|
+
readonly WarLoopStart: "warLoopStart";
|
|
32
32
|
readonly WarLoopEnd: "warLoopEnd";
|
|
33
33
|
readonly NewSeasonStart: "newSeasonStart";
|
|
34
34
|
readonly MaintenanceStart: "maintenanceStart";
|
|
@@ -74,6 +74,7 @@ export declare const RawData: {
|
|
|
74
74
|
time: number[];
|
|
75
75
|
resource: string;
|
|
76
76
|
};
|
|
77
|
+
minLevel: number;
|
|
77
78
|
seasonal: boolean;
|
|
78
79
|
levels: number[];
|
|
79
80
|
resourceType?: undefined;
|
|
@@ -100,9 +101,64 @@ export declare const RawData: {
|
|
|
100
101
|
time: number[];
|
|
101
102
|
resource: string;
|
|
102
103
|
};
|
|
104
|
+
minLevel: number;
|
|
103
105
|
seasonal: boolean;
|
|
104
106
|
levels: number[];
|
|
105
107
|
resourceType?: undefined;
|
|
108
|
+
} | {
|
|
109
|
+
id: number;
|
|
110
|
+
name: string;
|
|
111
|
+
housingSpace: number;
|
|
112
|
+
village: string;
|
|
113
|
+
category: string;
|
|
114
|
+
subCategory: string;
|
|
115
|
+
unlock: {
|
|
116
|
+
hall: number;
|
|
117
|
+
cost: number;
|
|
118
|
+
time: number;
|
|
119
|
+
resource: string;
|
|
120
|
+
building: string;
|
|
121
|
+
buildingLevel: number;
|
|
122
|
+
};
|
|
123
|
+
trainingTime: number;
|
|
124
|
+
regenerationTimes: never[];
|
|
125
|
+
dps: never[];
|
|
126
|
+
upgrade: {
|
|
127
|
+
cost: number[];
|
|
128
|
+
time: number[];
|
|
129
|
+
resource: string;
|
|
130
|
+
};
|
|
131
|
+
minLevel: null;
|
|
132
|
+
seasonal: boolean;
|
|
133
|
+
levels: number[];
|
|
134
|
+
resourceType?: undefined;
|
|
135
|
+
} | {
|
|
136
|
+
id: number;
|
|
137
|
+
name: string;
|
|
138
|
+
housingSpace: number;
|
|
139
|
+
village: string;
|
|
140
|
+
category: string;
|
|
141
|
+
subCategory: string;
|
|
142
|
+
unlock: {
|
|
143
|
+
hall: number;
|
|
144
|
+
cost: number;
|
|
145
|
+
time: number;
|
|
146
|
+
resource: string;
|
|
147
|
+
building: string;
|
|
148
|
+
buildingLevel: number;
|
|
149
|
+
};
|
|
150
|
+
trainingTime: number;
|
|
151
|
+
regenerationTimes: never[];
|
|
152
|
+
dps: never[];
|
|
153
|
+
upgrade: {
|
|
154
|
+
cost: never[];
|
|
155
|
+
time: never[];
|
|
156
|
+
resource: string;
|
|
157
|
+
};
|
|
158
|
+
seasonal: boolean;
|
|
159
|
+
levels: number[];
|
|
160
|
+
minLevel?: undefined;
|
|
161
|
+
resourceType?: undefined;
|
|
106
162
|
} | {
|
|
107
163
|
id: number;
|
|
108
164
|
name: string;
|
|
@@ -127,6 +183,34 @@ export declare const RawData: {
|
|
|
127
183
|
time: number[];
|
|
128
184
|
resource: string;
|
|
129
185
|
};
|
|
186
|
+
minLevel: number;
|
|
187
|
+
seasonal: boolean;
|
|
188
|
+
levels: number[];
|
|
189
|
+
} | {
|
|
190
|
+
id: number;
|
|
191
|
+
name: string;
|
|
192
|
+
housingSpace: number;
|
|
193
|
+
village: string;
|
|
194
|
+
category: string;
|
|
195
|
+
subCategory: string;
|
|
196
|
+
unlock: {
|
|
197
|
+
hall: number;
|
|
198
|
+
cost: number;
|
|
199
|
+
time: number;
|
|
200
|
+
resource: string;
|
|
201
|
+
building: string;
|
|
202
|
+
buildingLevel: number;
|
|
203
|
+
};
|
|
204
|
+
resourceType: string;
|
|
205
|
+
trainingTime: number;
|
|
206
|
+
regenerationTimes: never[];
|
|
207
|
+
dps: number[];
|
|
208
|
+
upgrade: {
|
|
209
|
+
cost: number[];
|
|
210
|
+
time: number[];
|
|
211
|
+
resource: string;
|
|
212
|
+
};
|
|
213
|
+
minLevel: null;
|
|
130
214
|
seasonal: boolean;
|
|
131
215
|
levels: number[];
|
|
132
216
|
})[];
|
package/dist/util/Constants.js
CHANGED
|
@@ -137,7 +137,7 @@ exports.PollingEvents = {
|
|
|
137
137
|
ClanLoopEnd: 'clanLoopEnd',
|
|
138
138
|
PlayerLoopStart: 'playerLoopStart',
|
|
139
139
|
PlayerLoopEnd: 'playerLoopEnd',
|
|
140
|
-
WarLoopStart: '
|
|
140
|
+
WarLoopStart: 'warLoopStart',
|
|
141
141
|
WarLoopEnd: 'warLoopEnd',
|
|
142
142
|
NewSeasonStart: 'newSeasonStart',
|
|
143
143
|
MaintenanceStart: 'maintenanceStart',
|