clashofclans.js 1.5.4 → 2.0.0-dev.2c5b083

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.
Files changed (69) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +2 -1
  3. package/README.md +39 -110
  4. package/dist/client/Client.d.ts +177 -0
  5. package/dist/client/Client.js +237 -0
  6. package/dist/client/EventManager.d.ts +86 -0
  7. package/dist/client/EventManager.js +279 -0
  8. package/dist/index.d.ts +9 -0
  9. package/dist/index.js +21 -0
  10. package/dist/rest/HTTPError.d.ts +24 -0
  11. package/dist/rest/HTTPError.js +42 -0
  12. package/dist/rest/RESTManager.d.ts +56 -0
  13. package/dist/rest/RESTManager.js +123 -0
  14. package/dist/rest/RequestHandler.d.ts +162 -0
  15. package/dist/rest/RequestHandler.js +198 -0
  16. package/dist/rest/Throttler.d.ts +31 -0
  17. package/dist/rest/Throttler.js +86 -0
  18. package/dist/struct/Achievement.d.ts +25 -0
  19. package/dist/struct/Achievement.js +28 -0
  20. package/dist/struct/Badge.d.ts +16 -0
  21. package/dist/struct/Badge.js +27 -0
  22. package/dist/struct/ChatLanguage.d.ts +11 -0
  23. package/dist/struct/ChatLanguage.js +12 -0
  24. package/dist/struct/Clan.d.ts +64 -0
  25. package/dist/struct/Clan.js +44 -0
  26. package/dist/struct/ClanMember.d.ts +32 -0
  27. package/dist/struct/ClanMember.js +28 -0
  28. package/dist/struct/ClanWar.d.ts +137 -0
  29. package/dist/struct/ClanWar.js +198 -0
  30. package/dist/struct/ClanWarLeagueGroup.d.ts +63 -0
  31. package/dist/struct/ClanWarLeagueGroup.js +85 -0
  32. package/dist/struct/ClanWarLog.d.ts +54 -0
  33. package/dist/struct/ClanWarLog.js +46 -0
  34. package/dist/struct/Icon.d.ts +16 -0
  35. package/dist/struct/Icon.js +27 -0
  36. package/dist/struct/Label.d.ts +12 -0
  37. package/dist/struct/Label.js +13 -0
  38. package/dist/struct/League.d.ts +14 -0
  39. package/dist/struct/League.js +18 -0
  40. package/dist/struct/LegendStatistics.d.ts +18 -0
  41. package/dist/struct/LegendStatistics.js +17 -0
  42. package/dist/struct/Location.d.ts +15 -0
  43. package/dist/struct/Location.js +14 -0
  44. package/dist/struct/Player.d.ts +78 -0
  45. package/dist/struct/Player.js +72 -0
  46. package/dist/struct/PlayerClan.d.ts +19 -0
  47. package/dist/struct/PlayerClan.js +19 -0
  48. package/dist/struct/Ranking.d.ts +58 -0
  49. package/dist/struct/Ranking.js +50 -0
  50. package/dist/struct/Season.d.ts +19 -0
  51. package/dist/struct/Season.js +21 -0
  52. package/dist/struct/Unit.d.ts +68 -0
  53. package/dist/struct/Unit.js +90 -0
  54. package/dist/struct/WarLeague.d.ts +11 -0
  55. package/dist/struct/WarLeague.js +16 -0
  56. package/dist/struct/index.d.ts +19 -0
  57. package/dist/struct/index.js +31 -0
  58. package/dist/types/index.d.ts +350 -0
  59. package/dist/types/index.js +2 -0
  60. package/dist/util/Constants.d.ts +41 -0
  61. package/dist/util/Constants.js +122 -0
  62. package/dist/util/Util.d.ts +18 -0
  63. package/dist/util/Util.js +53 -0
  64. package/dist/util/raw.json +1 -0
  65. package/package.json +109 -36
  66. package/src/index.d.ts +0 -811
  67. package/src/index.js +0 -5
  68. package/src/struct/Client.js +0 -481
  69. package/src/util/Extension.js +0 -130
package/src/index.d.ts DELETED
@@ -1,811 +0,0 @@
1
- declare module 'clashofclans.js' {
2
- export interface ClientOptions {
3
- keys?: string[];
4
- timeout?: number;
5
- baseURL?: string;
6
- /** @deprecated The `token` field is considered deprecated, use `keys` instead. */
7
- token?: string | string[];
8
- }
9
-
10
- export interface ClanSearchOptions {
11
- name?: string;
12
- warFrequency?: string;
13
- locationId?: string;
14
- minMembers?: number;
15
- maxMembers?: number;
16
- minClanPoints?: number;
17
- minClanLevel?: number;
18
- limit?: number;
19
- after?: string;
20
- before?: string;
21
- labelIds?: string;
22
- }
23
-
24
- export interface ExtensionOptions {
25
- email: string;
26
- password: string;
27
- keyCount?: number;
28
- keyName?: string;
29
- keyDescription?: string;
30
- baseURL?: string;
31
- }
32
-
33
- export interface SearchOptions {
34
- limit?: number;
35
- after?: string;
36
- before?: string;
37
- }
38
-
39
- export class Extension {
40
- constructor(options: ExtensionOptions);
41
-
42
- public email: string;
43
- public password: string;
44
- public keyCount?: number;
45
- public keyName?: string;
46
- public baseURL?: string;
47
- public keyDescription?: string;
48
-
49
- public get keys(): string;
50
-
51
- public login(): Promise<void>;
52
- }
53
-
54
- export class Client {
55
- constructor(options?: ClientOptions);
56
-
57
- readonly _tokenIndex: number;
58
- readonly _tokens: string[];
59
- readonly _token: string;
60
-
61
- public keys?: string[];
62
- public timeout?: number;
63
- public baseURL?: string;
64
-
65
- public init(options: ExtensionOptions): Promise<string[]>;
66
-
67
- public fetch(path: string): Promise<any>;
68
-
69
- public parseTag(tag: string): string;
70
-
71
- public encodeTag(tag: string): string;
72
-
73
- public clans(options: ClanSearchOptions): Promise<ClanList>;
74
-
75
- public clan(clanTag: string): Promise<Clan>;
76
-
77
- public clanMembers(clanTag: string, options?: SearchOptions): Promise<ClanMemberList>;
78
-
79
- public detailedClanMembers(members: { tag: string }[]): Promise<Player[]>;
80
-
81
- public clanWarLog(clanTag: string, options?: SearchOptions): Promise<ClanWarLog>;
82
-
83
- public currentClanWar(clanTag: string, options?: SearchOptions): Promise<ClanWar>;
84
-
85
- public clanWarLeague(clanTag: string): Promise<ClanWarLeagueGroup>;
86
-
87
- public clanWarLeagueWar(warTag: string): Promise<ClanWar>;
88
-
89
- public player(playerTag: string): Promise<Player>;
90
-
91
- public verifyPlayerToken(playerTag: string, token: string): Promise<VerifyToken>;
92
-
93
- public leagues(options?: SearchOptions): Promise<LeagueList>;
94
-
95
- public league(leagueId: string): Promise<League>;
96
-
97
- public leagueSeason(leagueId: string, options?: SearchOptions): Promise<LeagueSeasonList>;
98
-
99
- public leagueRanking(leagueId: string, seasonId: string, options?: SearchOptions): Promise<PlayerSeasonRankingList>;
100
-
101
- public warLeagues(options?: SearchOptions): Promise<WarLeagueList>;
102
-
103
- public warLeague(leagueId: string): Promise<WarLeague>;
104
-
105
- public locations(options?: SearchOptions): Promise<LocationList>;
106
-
107
- public location(locationId: string): Promise<Location>;
108
-
109
- public clanRanks(locationId: string, options?: SearchOptions): Promise<ClanRankingList>;
110
-
111
- public playerRanks(locationId: string, options?: SearchOptions): Promise<PlayerRankingList>;
112
-
113
- public versusClanRanks(locationId: string, options?: SearchOptions): Promise<ClanVersusRankingList>;
114
-
115
- public versusPlayerRanks(locationId: string, options?: SearchOptions): Promise<PlayerVersusRankingList>;
116
-
117
- public clanLabels(options?: SearchOptions): Promise<LabelList>;
118
-
119
- public playerLabels(options?: SearchOptions): Promise<LabelList>;
120
-
121
- public goldPassSeason(): Promise<GoldPassSeason>;
122
- }
123
-
124
- // **************** CLANS **************** //
125
-
126
- /**
127
- * /clans?name={name}&limit={limit}
128
- */
129
- export interface ClanList {
130
- items: (Omit<Clan, 'memberList'>)[],
131
- paging: {
132
- cursors: {
133
- after?: string;
134
- before?: string;
135
- };
136
- };
137
-
138
- ok: boolean;
139
- maxAge: number;
140
- reason?: string;
141
- message?: string;
142
- statusCode: number;
143
- }
144
-
145
- /**
146
- * /clans/{clanTag}
147
- */
148
- export interface Clan {
149
- tag: string;
150
- name: string;
151
- type: string;
152
- description: string;
153
- location?: Location;
154
- chatLanguage?: {
155
- name: string;
156
- id: number;
157
- languageCode: string;
158
- }
159
- badgeUrls: {
160
- small: string;
161
- large: string;
162
- medium: string;
163
- };
164
- clanLevel: number;
165
- clanPoints: number;
166
- clanVersusPoints: number;
167
- requiredTrophies: number;
168
- requiredTownhallLevel?: number;
169
- warFrequency: string;
170
- warWinStreak: number;
171
- warWins: number;
172
- warTies?: number;
173
- warLosses?: number;
174
- isWarLogPublic: boolean;
175
- warLeague?: {
176
- name: string;
177
- id: number;
178
- };
179
- members: number;
180
- labels: Label[];
181
- memberList: ClanMember[];
182
-
183
- ok: boolean;
184
- maxAge: number;
185
- reason?: string;
186
- message?: string;
187
- statusCode: number;
188
- }
189
-
190
- export interface ClanMember {
191
- name: string;
192
- tag: string;
193
- role: 'member' | 'admin' | 'coLeader' | 'leader';
194
- expLevel: number;
195
- league: {
196
- id: number;
197
- name: string;
198
- iconUrls: {
199
- small: string;
200
- tiny: string;
201
- medium: string;
202
- };
203
- };
204
- trophies: number;
205
- versusTrophies: number;
206
- clanRank: number;
207
- previousClanRank: number;
208
- donations: number;
209
- donationsReceived: number;
210
- }
211
-
212
- /**
213
- * /clans/{clanTag}/members
214
- */
215
- export interface ClanMemberList {
216
- items: ClanMember[],
217
- paging: {
218
- cursors: {
219
- after?: string;
220
- before?: string;
221
- };
222
- };
223
-
224
- ok: boolean;
225
- maxAge: number;
226
- reason?: string;
227
- message?: string;
228
- statusCode: number;
229
- }
230
-
231
- /**
232
- * /clans/{clanTag}/currentwar
233
- */
234
- export interface ClanWar {
235
- state: 'notInWar' | 'preparation' | 'inWar' | 'warEnded';
236
- teamSize: number;
237
- startTime: string;
238
- preparationStartTime: string;
239
- endTime: string;
240
- clan: WarClan;
241
- opponent: WarClan;
242
- attacksPerMember: number;
243
-
244
- ok: boolean;
245
- maxAge: number;
246
- reason?: string;
247
- message?: string;
248
- statusCode: number;
249
- }
250
-
251
- export interface WarClan {
252
- tag: string;
253
- name: string;
254
- badgeUrls: {
255
- small: string;
256
- large: string;
257
- medium: string;
258
- };
259
- clanLevel: number;
260
- attacks: number;
261
- stars: number;
262
- destructionPercentage: number;
263
- expEarned?: number;
264
- members: ClanWarMember[];
265
- }
266
-
267
- export interface ClanWarMember {
268
- tag: string;
269
- name: string;
270
- mapPosition: number;
271
- townhallLevel: number;
272
- opponentAttacks: number;
273
- bestOpponentAttack?: ClanWarAttack;
274
- attacks?: ClanWarAttack[];
275
- }
276
-
277
- export interface ClanWarAttack {
278
- order: number;
279
- attackerTag: string;
280
- defenderTag: string;
281
- stars: number;
282
- duration: number;
283
- destructionPercentage: number;
284
- }
285
-
286
- /**
287
- * /clans/{clanTag}/warlog
288
- */
289
- export interface ClanWarLog {
290
- items: {
291
- result: 'win' | 'lose' | 'tie' | null;
292
- endTime: string;
293
- teamSize: number;
294
- attacksPerMember?: number;
295
- clan: Omit<WarClan, 'members'>;
296
- opponent: Omit<WarClan, 'members' | 'attacks' | 'expEarned'>;
297
- }[];
298
- paging: {
299
- cursors: {
300
- after?: string;
301
- before?: string;
302
- };
303
- };
304
-
305
- ok: boolean;
306
- maxAge: number;
307
- reason?: string;
308
- message?: string;
309
- statusCode: number;
310
- }
311
-
312
- /**
313
- * /clans/{clanTag}/currentwar/leaguegroup
314
- */
315
- export interface ClanWarLeagueGroup {
316
- state: 'notInWar' | 'preparation' | 'inWar' | 'warEnded';
317
- season: string;
318
- clans: ClanWarLeagueClan[];
319
- rounds: ClanWarLeagueRound[];
320
-
321
- ok: boolean;
322
- maxAge: number;
323
- reason?: string;
324
- message?: string;
325
- statusCode: number;
326
- }
327
-
328
- export interface ClanWarLeagueClan {
329
- name: string;
330
- tag: string;
331
- clanLevel: number;
332
- badgeUrls: {
333
- small: string;
334
- large: string;
335
- medium: string;
336
- };
337
- members: ClanWarLeagueClanMember[];
338
- }
339
-
340
- export interface ClanWarLeagueClanMember {
341
- name: string;
342
- tag: string;
343
- townHallLevel: number;
344
- }
345
-
346
- export interface ClanWarLeagueRound {
347
- warTags: string[]
348
- }
349
-
350
- // /clanwarleagues/wars/{warTag}
351
- // Same as {ClanWar}
352
-
353
- // *************** PLAYERS *************** //
354
-
355
- /**
356
- * /players/{playerTag}
357
- */
358
- export interface Player {
359
- name: string;
360
- tag: string;
361
- townHallLevel: number;
362
- townHallWeaponLevel?: number;
363
- expLevel: number;
364
- trophies: number;
365
- bestTrophies: number;
366
- warStars: number;
367
- attackWins: number;
368
- defenseWins: number;
369
- builderHallLevel?: number;
370
- versusTrophies?: number;
371
- bestVersusTrophies?: number;
372
- versusBattleWins?: number;
373
- donations: number;
374
- donationsReceived: number;
375
- role?: string;
376
- warPreference?: 'in' | 'out'
377
- clan?: {
378
- tag: string;
379
- name: string;
380
- clanLevel: number;
381
- badgeUrls: {
382
- small: string;
383
- large: string;
384
- medium: string;
385
- };
386
- };
387
- league?: {
388
- id: number;
389
- name: string;
390
- iconUrls: {
391
- small: string;
392
- tiny: string;
393
- medium: string;
394
- };
395
- };
396
- legendStatistics?: {
397
- legendTrophies: number;
398
- bestSeason: {
399
- id: string;
400
- rank: number;
401
- trophies: number;
402
- };
403
- currentSeason: {
404
- trophies: number;
405
- }
406
- };
407
- achievements: PlayerAchievement[];
408
- troops: PlayerItem[];
409
- heroes: PlayerItem[];
410
- spells: PlayerItem[];
411
- labels: {
412
- id: number;
413
- name: string;
414
- iconUrls: {
415
- small: string;
416
- medium: string;
417
- };
418
- }[];
419
-
420
- ok: boolean;
421
- maxAge: number;
422
- reason?: string;
423
- message?: string;
424
- statusCode: number;
425
- }
426
-
427
- export interface PlayerAchievement {
428
- name: string;
429
- stars: number;
430
- value: number;
431
- target: number;
432
- info: string;
433
- completionInfo: string | null;
434
- village: 'home' | 'builderBase';
435
- }
436
-
437
- export interface PlayerItem {
438
- name: string;
439
- level: number;
440
- maxLevel: number;
441
- superTroopIsActive?: boolean;
442
- village: 'home' | 'builderBase';
443
- }
444
-
445
- /**
446
- * /players/{playerTag}/verifytoken
447
- */
448
- export interface VerifyToken {
449
- tag: string;
450
- token: string;
451
- status: 'ok' | 'invalid';
452
-
453
- ok: boolean;
454
- maxAge: number;
455
- reason?: string;
456
- message?: string;
457
- statusCode: number;
458
- }
459
-
460
- // ************* LOCATIONS ************* //
461
-
462
- /**
463
- * /locations
464
- */
465
- export interface LocationList {
466
- items: Location[];
467
- paging: {
468
- cursors: {
469
- after?: string;
470
- before?: string;
471
- };
472
- };
473
-
474
- ok: boolean;
475
- maxAge: number;
476
- reason?: string;
477
- message?: string;
478
- statusCode: number;
479
- }
480
-
481
- /**
482
- * /locations/{loacationId}
483
- */
484
- export interface Location {
485
- localizedName: string;
486
- id: number;
487
- name: string;
488
- isCountry: boolean;
489
- countryCode: string;
490
-
491
- ok: boolean;
492
- maxAge: number;
493
- reason?: string;
494
- message?: string;
495
- statusCode: number;
496
- }
497
-
498
- /**
499
- * /locations/{locationId}/rankings/clans
500
- */
501
- export interface ClanRankingList {
502
- items: ClanRanking[];
503
- paging: {
504
- cursors: {
505
- after?: string;
506
- before?: string;
507
- };
508
- };
509
-
510
- ok: boolean;
511
- maxAge: number;
512
- reason?: string;
513
- message?: string;
514
- statusCode: number;
515
- }
516
-
517
- export interface ClanRanking {
518
- clanLevel: number;
519
- clanPoints: number;
520
- location: Location;
521
- members: number;
522
- tag: string;
523
- name: string;
524
- rank: number;
525
- previousRank: number
526
- badgeUrls: {
527
- small: string;
528
- large: string;
529
- medium: string;
530
- }
531
- }
532
-
533
- /**
534
- * /locations/{locationId}/rankings/players
535
- */
536
- export interface PlayerRankingList {
537
- items: PlayerRanking[];
538
- paging: {
539
- cursors: {
540
- after?: string;
541
- before?: string;
542
- };
543
- };
544
-
545
- ok: boolean;
546
- maxAge: number;
547
- reason?: string;
548
- message?: string;
549
- statusCode: number;
550
- }
551
-
552
- export interface PlayerRanking {
553
- tag: string;
554
- name: string;
555
- expLevel: number;
556
- trophies: number;
557
- attackWins: number;
558
- defenseWins: number;
559
- rank: number;
560
- clan: {
561
- tag: string;
562
- name: string;
563
- badgeUrls: {
564
- small: string;
565
- large: string;
566
- medium: string;
567
- }
568
- };
569
- league: {
570
- id: number;
571
- name: string;
572
- iconUrls: {
573
- small: string;
574
- tiny: string;
575
- medium: string;
576
- };
577
- }
578
- }
579
-
580
- /**
581
- * /locations/{locationId}/rankings/clans-versus
582
- */
583
- export interface ClanVersusRankingList {
584
- items: ClanVersusRanking[];
585
- paging: {
586
- cursors: {
587
- after?: string;
588
- before?: string;
589
- };
590
- };
591
-
592
- ok: boolean;
593
- maxAge: number;
594
- reason?: string;
595
- message?: string;
596
- statusCode: number;
597
- }
598
-
599
- export interface ClanVersusRanking {
600
- clanLevel: number;
601
- location: Location;
602
- members: number;
603
- tag: string;
604
- name: string;
605
- rank: number;
606
- previousRank: number
607
- badgeUrls: {
608
- small: string;
609
- large: string;
610
- medium: string;
611
- }
612
- clanVersusPoints: number;
613
- }
614
-
615
- /**
616
- * /locations/{locationId}/rankings/clans-versus
617
- */
618
- export interface PlayerVersusRankingList {
619
- items: ClanVersusRanking[];
620
- paging: {
621
- cursors: {
622
- after?: string;
623
- before?: string;
624
- };
625
- };
626
-
627
- ok: boolean;
628
- maxAge: number;
629
- reason?: string;
630
- message?: string;
631
- statusCode: number;
632
- }
633
-
634
- export interface PlayerVersusRanking {
635
- tag: string;
636
- name: string;
637
- expLevel: number;
638
- versusTrophies: number;
639
- versusBattleWins: number;
640
- rank: number;
641
- clan: {
642
- tag: string;
643
- name: string;
644
- badgeUrls: {
645
- small: string;
646
- large: string;
647
- medium: string;
648
- }
649
- };
650
- }
651
-
652
- // *************** LEAGUES *************** //
653
-
654
- /**
655
- * /leagues
656
- */
657
- export interface LeagueList {
658
- items: League[];
659
- paging: {
660
- cursors: {
661
- after?: string;
662
- before?: string;
663
- };
664
- };
665
-
666
- ok: boolean;
667
- maxAge: number;
668
- reason?: string;
669
- message?: string;
670
- statusCode: number;
671
- }
672
-
673
- /**
674
- * /leagues/{leagueId}
675
- */
676
- export interface League {
677
- id: string;
678
- name: string;
679
- iconUrls: {
680
- tiny: string;
681
- small: string;
682
- }
683
-
684
- ok: boolean;
685
- maxAge: number;
686
- reason?: string;
687
- message?: string;
688
- statusCode: number;
689
- }
690
-
691
- /**
692
- * /leagues/{leagueId}/seasons/{seasonId}
693
- */
694
- export interface PlayerSeasonRankingList {
695
- items: (Omit<PlayerRanking, 'league'>)[];
696
- paging: {
697
- cursors: {
698
- after?: string;
699
- before?: string;
700
- };
701
- };
702
-
703
- ok: boolean;
704
- maxAge: number;
705
- reason?: string;
706
- message?: string;
707
- statusCode: number;
708
- }
709
-
710
- /**
711
- * /leagues/{leagueId}/seasons
712
- */
713
- export interface LeagueSeasonList {
714
- items: {
715
- id: string;
716
- }[]
717
- paging: {
718
- cursors: {
719
- after?: string;
720
- before?: string;
721
- };
722
- };
723
-
724
- ok: boolean;
725
- maxAge: number;
726
- reason?: string;
727
- message?: string;
728
- statusCode: number;
729
- }
730
-
731
- /**
732
- * /warleagues
733
- */
734
- export interface WarLeagueList {
735
- items: WarLeague[];
736
- paging: {
737
- cursors: {
738
- after?: string;
739
- before?: string;
740
- };
741
- };
742
-
743
- ok: boolean;
744
- maxAge: number;
745
- reason?: string;
746
- message?: string;
747
- statusCode: number;
748
- }
749
-
750
- /**
751
- * /warleagues/{leagueId}
752
- */
753
- export interface WarLeague {
754
- id: string;
755
- name: string;
756
-
757
- ok: boolean;
758
- maxAge: number;
759
- reason?: string;
760
- message?: string;
761
- statusCode: number;
762
- }
763
-
764
- // ************** LABELS ************** //
765
-
766
- /**
767
- * /labels/players
768
- *
769
- * /labels/clans
770
- */
771
- export interface LabelList {
772
- items: Label[];
773
- paging: {
774
- cursors: {
775
- after?: string;
776
- before?: string;
777
- };
778
- };
779
-
780
- ok: boolean;
781
- maxAge: number;
782
- reason?: string;
783
- message?: string;
784
- statusCode: number;
785
- }
786
-
787
- export interface Label {
788
- id: number;
789
- name: string;
790
- iconUrls: {
791
- small: string;
792
- medium: string;
793
- }
794
- }
795
-
796
- // *********** GOLD PASS *********** //
797
-
798
- /**
799
- * /goldpass/seasons/current
800
- */
801
- export interface GoldPassSeason {
802
- startTime: string;
803
- endTime: string;
804
-
805
- ok: boolean;
806
- maxAge: number;
807
- reason?: string;
808
- message?: string;
809
- statusCode: number;
810
- }
811
- }