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.
@@ -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.versusTrophies = data.versusTrophies ?? null;
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;
@@ -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] ?? 0;
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] ?? 0;
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] ?? 0;
49
- this.upgradeTime = rawUnit.upgrade.time[this.level - 1] ?? 0;
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')
@@ -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';
@@ -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);
@@ -43,9 +43,13 @@ export interface APIClan {
43
43
  badgeUrls: APIBadge;
44
44
  clanLevel: number;
45
45
  clanPoints: number;
46
- clanVersusPoints: number;
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
- versusTrophies?: number;
254
- bestVersusTrophies?: number;
259
+ builderBaseTrophies?: number;
260
+ bestBuilderBaseTrophies?: number;
261
+ /** @deprecated */
255
262
  versusBattleWins?: number;
256
- versusBattleWinCount?: number;
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
- previousVersusSeason?: APISeason;
275
- bestVersusSeason?: APISeason;
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-versus */
355
- export interface APIClanVersusRankingList {
356
- items: APIClanVersusRanking[];
366
+ /** /locations/{locationId}/rankings/clans-builder-base */
367
+ export interface APIClanBuilderBaseRankingList {
368
+ items: APIClanBuilderBaseRanking[];
357
369
  paging: APIPaging;
358
370
  }
359
- export interface APIClanVersusRanking {
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
- clanVersusPoints: number;
380
+ clanBuilderBasePoints: number;
381
+ /** @deprecated */
382
+ clanVersusPoints?: number;
369
383
  }
370
- /** /locations/{locationId}/rankings/players-versus */
371
- export interface APIPlayerVersusRankingList {
372
- items: APIPlayerVersusRanking[];
384
+ /** /locations/{locationId}/rankings/players-builder-base */
385
+ export interface APIPlayerBuilderBaseRankingList {
386
+ items: APIPlayerBuilderBaseRanking[];
373
387
  paging: APIPaging;
374
388
  }
375
- export interface APIPlayerVersusRanking {
389
+ export interface APIPlayerBuilderBaseRanking {
376
390
  tag: string;
377
391
  name: string;
378
392
  expLevel: number;
379
- versusTrophies: number;
380
- versusBattleWins: number;
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;
@@ -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. */
@@ -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: "warLoopEnd";
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
  })[];
@@ -137,7 +137,7 @@ exports.PollingEvents = {
137
137
  ClanLoopEnd: 'clanLoopEnd',
138
138
  PlayerLoopStart: 'playerLoopStart',
139
139
  PlayerLoopEnd: 'playerLoopEnd',
140
- WarLoopStart: 'warLoopEnd',
140
+ WarLoopStart: 'warLoopStart',
141
141
  WarLoopEnd: 'warLoopEnd',
142
142
  NewSeasonStart: 'newSeasonStart',
143
143
  MaintenanceStart: 'maintenanceStart',