speedruncom.js 2.0.6 → 2.0.8

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/src/interfaces.ts CHANGED
@@ -8,7 +8,7 @@ export interface Category {
8
8
  /**
9
9
  * ID of the category.
10
10
  */
11
- readonly id: string;
11
+ id: string;
12
12
 
13
13
  /**
14
14
  * Name of the category.
@@ -20,17 +20,17 @@ export interface Category {
20
20
  * This is never actually used in site pages.
21
21
  * The URL is permanent and can never update, even when changing the category name.
22
22
  */
23
- readonly url: string;
23
+ url: string;
24
24
 
25
25
  /**
26
26
  * A global, site-wide position order number for the category.
27
27
  */
28
- readonly pos: number;
28
+ pos: number;
29
29
 
30
30
  /**
31
31
  * ID of the game the category is on.
32
32
  */
33
- readonly gameId: string;
33
+ gameId: string;
34
34
 
35
35
  /**
36
36
  * Whether or not the category is miscellaneous.
@@ -87,17 +87,17 @@ export interface ChallengeModerator {
87
87
  /**
88
88
  * ID of the challenge being moderated.
89
89
  */
90
- readonly challengeId: string;
90
+ challengeId: string;
91
91
 
92
92
  /**
93
93
  * ID of the user moderating.
94
94
  */
95
- readonly userId: string;
95
+ userId: string;
96
96
 
97
97
  /**
98
98
  * `GamePowerLevel` of the moderator.
99
99
  */
100
- readonly level: Enums.GamePowerLevel;
100
+ level: Enums.GamePowerLevel;
101
101
  }
102
102
 
103
103
  /**
@@ -108,32 +108,32 @@ export interface ChallengeStanding {
108
108
  /**
109
109
  * ID of the challenge.
110
110
  */
111
- readonly challengeId: string;
111
+ challengeId: string;
112
112
 
113
113
  /**
114
114
  * todo
115
115
  */
116
- readonly place: number;
116
+ place: number;
117
117
 
118
118
  /**
119
119
  * todo
120
120
  */
121
- readonly registeredPlayerIds: string[];
121
+ registeredPlayerIds: string[];
122
122
 
123
123
  /**
124
124
  * todo
125
125
  */
126
- readonly prizeAmount: number;
126
+ prizeAmount: number;
127
127
 
128
128
  /**
129
129
  * todo
130
130
  */
131
- readonly unregisteredPlayers: string[]
131
+ unregisteredPlayers: string[]
132
132
 
133
133
  /**
134
134
  * todo
135
135
  */
136
- readonly prizeCurrency: string;
136
+ prizeCurrency: string;
137
137
  }
138
138
 
139
139
  /**
@@ -144,12 +144,12 @@ export interface ChallengePrize {
144
144
  /**
145
145
  * The ranking in the challenge for the reward.
146
146
  */
147
- readonly place: number;
147
+ place: number;
148
148
 
149
149
  /**
150
150
  * The amount of money rewarded to the player in the `place`.
151
151
  */
152
- readonly amount: number;
152
+ amount: number;
153
153
  }
154
154
 
155
155
  /**
@@ -160,13 +160,13 @@ export interface ChallengePrizeConfig {
160
160
  /**
161
161
  * TODO
162
162
  */
163
- readonly prizePool: number;
163
+ prizePool: number;
164
164
 
165
165
  /**
166
166
  * TODO
167
167
  */
168
- readonly currency: string;
169
- readonly prizes: ChallengePrize[];
168
+ currency: string;
169
+ prizes: ChallengePrize[];
170
170
  }
171
171
 
172
172
  /**
@@ -177,33 +177,33 @@ export interface GlobalChallengeRanking {
177
177
  /**
178
178
  * ID of the user.
179
179
  */
180
- readonly userId: string;
180
+ userId: string;
181
181
 
182
182
  /**
183
183
  * The user's site-wide rank.
184
184
  */
185
- readonly rank: number;
186
- readonly totalEarnings: number;
185
+ rank: number;
186
+ totalEarnings: number;
187
187
 
188
188
  /**
189
189
  * The amount of first place ranks the user has achieved in challenges.
190
190
  */
191
- readonly firstPlaces: number;
191
+ firstPlaces: number;
192
192
 
193
193
  /**
194
194
  * The amount of second place ranks the user has achieved in challenges.
195
195
  */
196
- readonly secondPlaces: number;
196
+ secondPlaces: number;
197
197
 
198
198
  /**
199
199
  * The amount of third place ranks the user has achieved in challenges.
200
200
  */
201
- readonly thirdPlaces: number;
201
+ thirdPlaces: number;
202
202
 
203
203
  /**
204
204
  * The total amount of challenges the user has entered.
205
205
  */
206
- readonly challengesEntered: number;
206
+ challengesEntered: number;
207
207
  }
208
208
 
209
209
  /**
@@ -214,85 +214,85 @@ export interface Challenge {
214
214
  /**
215
215
  * ID of the challenge.
216
216
  */
217
- readonly id: string;
217
+ id: string;
218
218
 
219
219
  /**
220
220
  * Name of the challenge.
221
221
  */
222
- readonly name: string;
222
+ name: string;
223
223
 
224
224
  /**
225
225
  * todo
226
226
  */
227
- readonly announcement: string;
227
+ announcement: string;
228
228
 
229
229
  /**
230
230
  * Subpath URL of the challenge.
231
231
  */
232
- readonly url: string;
232
+ url: string;
233
233
 
234
234
  /**
235
235
  * ID of the game the challenge is based on.
236
236
  */
237
- readonly gameId: string;
237
+ gameId: string;
238
238
 
239
239
  /**
240
240
  * UNIX timestamp of when the challenge was created.
241
241
  */
242
- readonly createDate: number;
242
+ createDate: number;
243
243
 
244
244
  /**
245
245
  * UNIX timestamp of when the challenge settings were last updated.
246
246
  */
247
- readonly updateDate: number;
247
+ updateDate: number;
248
248
 
249
249
  /**
250
250
  * todo
251
251
  */
252
- readonly startDate: number;
252
+ startDate: number;
253
253
 
254
254
  /**
255
255
  * todo
256
256
  */
257
- readonly endDate: number;
257
+ endDate: number;
258
258
 
259
259
  /**
260
260
  * `ChallengeState` of the challenge.
261
261
  */
262
- readonly state: Enums.ChallengeState;
262
+ state: Enums.ChallengeState;
263
263
 
264
264
  /**
265
265
  * Description of the challenge.
266
266
  */
267
- readonly description: string;
267
+ description: string;
268
268
 
269
269
  /**
270
270
  * Rules of the challenge (not to be confused with `contestRules`).
271
271
  */
272
- readonly rules: string;
272
+ rules: string;
273
273
 
274
274
  /**
275
275
  *
276
276
  */
277
- readonly numPlayers: number;
278
- readonly exactPlayers: boolean;
279
- readonly playerMatchMode: Enums.PlayerMatchMode;
280
- readonly timeDirection: Enums.TimeDirection;
281
- readonly enforceMs: boolean;
277
+ numPlayers: number;
278
+ exactPlayers: boolean;
279
+ playerMatchMode: Enums.PlayerMatchMode;
280
+ timeDirection: Enums.TimeDirection;
281
+ enforceMs: boolean;
282
282
 
283
283
  /**
284
284
  * Subpath URL of the challenge's cover image.
285
285
  * check if opt todo
286
286
  */
287
- readonly coverImagePath: string;
288
- readonly contest: boolean;
289
- readonly contestRules: string;
290
- readonly runCommentsMode: Enums.ItemPermissionType;
287
+ coverImagePath: string;
288
+ contest: boolean;
289
+ contestRules: string;
290
+ runCommentsMode: Enums.ItemPermissionType;
291
291
 
292
292
  /**
293
293
  * `ChallengePrizeConfig` of the challenge.
294
294
  */
295
- readonly prizeConfig: ChallengePrizeConfig;
295
+ prizeConfig: ChallengePrizeConfig;
296
296
  }
297
297
 
298
298
  /**
@@ -303,22 +303,22 @@ export interface Title {
303
303
  /**
304
304
  * ID of the title.
305
305
  */
306
- readonly id: string;
306
+ id: string;
307
307
 
308
308
  /**
309
309
  * Title of the challenge.
310
310
  */
311
- readonly title: string;
311
+ title: string;
312
312
 
313
313
  /**
314
314
  * Description of how the challenge is rewarded to players.
315
315
  */
316
- readonly comment: string;
316
+ comment: string;
317
317
 
318
318
  /**
319
319
  * Subpath URL of the challenge that rewards the title.
320
320
  */
321
- readonly referenceUrl: string;
321
+ referenceUrl: string;
322
322
  }
323
323
 
324
324
  /**
@@ -329,66 +329,66 @@ export interface CommentPermissions {
329
329
  /**
330
330
  * Whether or not
331
331
  */
332
- readonly canManage: boolean;
332
+ canManage: boolean;
333
333
 
334
334
  /**
335
335
  * Whether or
336
336
  */
337
- readonly canViewComments: boolean;
338
- readonly canPostComments: boolean;
337
+ canViewComments: boolean;
338
+ canPostComments: boolean;
339
339
 
340
340
  /**
341
341
  * Whether or not editing comments is allowed.
342
342
  */
343
- readonly canEditComments: boolean;
343
+ canEditComments: boolean;
344
344
 
345
345
  /**
346
346
  * Whether or not deleting comments is allowsed.
347
347
  */
348
- readonly canDeleteComments: boolean;
348
+ canDeleteComments: boolean;
349
349
 
350
350
  /**
351
351
  * Reasons for not being able to not view a thread.
352
352
  */
353
- readonly cannotViewReasons: string[];
353
+ cannotViewReasons: string[];
354
354
 
355
355
  /**
356
356
  * Reasons for not being able to post a comment.
357
357
  */
358
- readonly cannotPostReasons: string[];
358
+ cannotPostReasons: string[];
359
359
  }
360
360
 
361
361
  export interface CommentableProperties {
362
- readonly disabled: boolean;
363
- readonly locked: boolean;
362
+ disabled: boolean;
363
+ locked: boolean;
364
364
  }
365
365
 
366
366
  export interface Commentable {
367
- readonly itemType: Enums.CommentableItemType;
368
- readonly itemId: string;
369
- readonly properties: CommentableProperties;
367
+ itemType: Enums.CommentableItemType;
368
+ itemId: string;
369
+ properties: CommentableProperties;
370
370
  /**Permissions of the logged in user. If not logged in; `canPostComments` is `false`.*/
371
- readonly permissions: CommentPermissions;
371
+ permissions: CommentPermissions;
372
372
  }
373
373
 
374
374
  export interface Comment {
375
- readonly id: string;
376
- readonly itemType: Enums.ItemType.Comment;
377
- readonly itemId: string;
378
- readonly date: number;
379
- readonly userId: string;
375
+ id: string;
376
+ itemType: Enums.ItemType.Comment;
377
+ itemId: string;
378
+ date: number;
379
+ userId: string;
380
380
  /**May be omitted on deleted comments.*/
381
- readonly text?: string;
382
- readonly parentId?: string;
383
- readonly deleted: boolean;
384
- readonly deletedUserId?: string;
381
+ text?: string;
382
+ parentId?: string;
383
+ deleted: boolean;
384
+ deletedUserId?: string;
385
385
  }
386
386
 
387
387
  export interface Like {
388
- readonly itemType: Enums.ItemType.Comment;
389
- readonly itemId: string;
390
- readonly userId: string;
391
- readonly date: number;
388
+ itemType: Enums.ItemType.Comment;
389
+ itemId: string;
390
+ userId: string;
391
+ date: number;
392
392
  }
393
393
 
394
394
  export interface SocialNetwork {
@@ -396,51 +396,51 @@ export interface SocialNetwork {
396
396
  /**
397
397
  * `SocialConnection` of the social network.
398
398
  */
399
- readonly id: Enums.SocialConnection;
399
+ id: Enums.SocialConnection;
400
400
 
401
401
  /**
402
402
  * Name of the social network.
403
403
  */
404
- readonly name: string;
404
+ name: string;
405
405
 
406
406
  /**
407
407
  * Arbitrary and unknown determination of if the platform is popular.
408
408
  *
409
409
  * This does not have to do with if the platform is depricated or not.
410
410
  */
411
- readonly major: boolean;
411
+ major: boolean;
412
412
 
413
413
  /**
414
414
  * Site-wide ordering method of the platform.
415
415
  */
416
- readonly pos: number;
416
+ pos: number;
417
417
 
418
418
  /**
419
419
  * Either a URL with a `[id]` placeholder of where the entered value would be stored, `popup` when there is complex authentication of the social network, or an empty string when the value you enter is exactly what the end result will be.
420
420
  *
421
421
  * Example: `https://www.youtube.com/user/[id]`
422
422
  */
423
- readonly pattern: string;
423
+ pattern: string;
424
424
  }
425
425
 
426
426
  export interface Area {
427
- readonly id: string;
428
- readonly name: string;
429
- readonly fullName: string;
430
- readonly label: string;
431
- readonly flagIcon: string;
432
- readonly lbFlagIcon: string;
433
- readonly lbName: string;
427
+ id: string;
428
+ name: string;
429
+ fullName: string;
430
+ label: string;
431
+ flagIcon: string;
432
+ lbFlagIcon: string;
433
+ lbName: string;
434
434
  }
435
435
 
436
436
  export interface Color {
437
- readonly id: string;
438
- readonly name: string;
439
- readonly darkColor: string;
437
+ id: string;
438
+ name: string;
439
+ darkColor: string;
440
440
  /**@deprecated `darkColor` is always used on the site*/
441
- readonly lightColor: string;
441
+ lightColor: string;
442
442
  /**@deprecated colors now seem to be sorted by their name's ascending alphabetical order (A-Z)*/
443
- readonly pos: number;
443
+ pos: number;
444
444
  }
445
445
 
446
446
  /**
@@ -451,98 +451,98 @@ export interface Forum {
451
451
  /**
452
452
  * `id` of this forum section.
453
453
  */
454
- readonly id: string;
454
+ id: string;
455
455
 
456
456
  /**
457
457
  * Name of the forum. If this is the game's forum, it is the game name.
458
458
  */
459
- readonly name: string;
459
+ name: string;
460
460
 
461
461
  /**
462
462
  * Page URL of the forum. If this is the game's forum, it is the game's page URL.
463
463
  */
464
- readonly url: string;
464
+ url: string;
465
465
 
466
466
  /**
467
467
  * A description used to describe site-wide forums.
468
468
  */
469
- readonly description?: string;
469
+ description?: string;
470
470
 
471
471
  /**
472
472
  * The `ForumType` the forum is.
473
473
  */
474
- readonly type: Enums.ForumType;
474
+ type: Enums.ForumType;
475
475
 
476
476
  /**
477
477
  * The amount of threads inside of a forum.
478
478
  */
479
- readonly threadCount: number;
479
+ threadCount: number;
480
480
 
481
481
  /**
482
482
  * The amont of combined posts of every thread in the forum.
483
483
  */
484
- readonly postCount: number;
484
+ postCount: number;
485
485
 
486
486
  /**
487
487
  * The ID of the latest post in any thread in the forum.
488
488
  */
489
- readonly lastPostId: string;
489
+ lastPostId: string;
490
490
 
491
491
  /**
492
492
  * The `userId` of the latest post in any thread in the forum.
493
493
  */
494
- readonly lastPostUserId: string;
494
+ lastPostUserId: string;
495
495
 
496
496
  /**
497
497
  * The UNIX timestamp of when the latest post in any thread in the forum was posted.
498
498
  */
499
- readonly lastPostDate: number;
499
+ lastPostDate: number;
500
500
 
501
501
  /**
502
502
  *
503
503
  */
504
- readonly touchDate: number;
504
+ touchDate: number;
505
505
  }
506
506
 
507
507
  export interface Thread {
508
- readonly id: string;
509
- readonly name: string;
510
- readonly gameId: string;
511
- readonly forumId: string;
512
- readonly userId: string;
513
- readonly replies: number;
514
- readonly created: number;
515
- readonly lastCommentId: string;
516
- readonly lastCommentUserId: string;
517
- readonly lastCommentDate: number;
518
- readonly sticky: boolean;
519
- readonly locked: boolean;
508
+ id: string;
509
+ name: string;
510
+ gameId: string;
511
+ forumId: string;
512
+ userId: string;
513
+ replies: number;
514
+ created: number;
515
+ lastCommentId: string;
516
+ lastCommentUserId: string;
517
+ lastCommentDate: number;
518
+ sticky: boolean;
519
+ locked: boolean;
520
520
  }
521
521
 
522
522
  export interface ForumReadStatus {
523
- readonly forumId: string;
524
- readonly date: number;
523
+ forumId: string;
524
+ date: number;
525
525
  }
526
526
 
527
527
  export interface Datatype {
528
- readonly threadId: string;
529
- readonly date: number;
528
+ threadId: string;
529
+ date: number;
530
530
  }
531
531
 
532
532
  export interface Leaderboard {
533
- readonly category: Category;
534
- readonly game: Game;
535
- readonly pagination: Pagination;
536
- readonly platforms: Platform[];
533
+ category: Category;
534
+ game: Game;
535
+ pagination: Pagination;
536
+ platforms: Platform[];
537
537
 
538
538
  /**
539
539
  * Every Player with a run in a game.
540
540
  */
541
- readonly players: Player[];
542
- readonly regions: Region[];
543
- readonly runs: GameRun[];
544
- readonly values: VariableValue[];
545
- readonly variables: Variable[];
541
+ players: Player[];
542
+ regions: Region[];
543
+ runs: GameRun[];
544
+ values: VariableValue[];
545
+ variables: Variable[];
546
546
  }
547
547
 
548
548
  /**
@@ -615,173 +615,173 @@ export interface LeaderboardParams {
615
615
  }
616
616
 
617
617
  export interface RunCount {
618
- readonly gameId: string;
619
- readonly categoryId: string;
620
- readonly levelId?: string;
621
- readonly variableId?: string;
622
- readonly valueId?: string;
623
- readonly count: number;
618
+ gameId: string;
619
+ categoryId: string;
620
+ levelId?: string;
621
+ variableId?: string;
622
+ valueId?: string;
623
+ count: number;
624
624
  }
625
625
 
626
626
  export interface Platform {
627
- readonly id: string;
628
- readonly name: string;
629
- readonly url: string;
630
- readonly year: number;
627
+ id: string;
628
+ name: string;
629
+ url: string;
630
+ year: number;
631
631
  }
632
632
 
633
633
  export interface Article {
634
- readonly id: string;
635
- readonly slug: string;
636
- readonly title: string;
637
- readonly summary: string;
638
- readonly body: string;
639
- readonly createDate: number;
640
- readonly updateDate: number;
641
- readonly publishDate?: number;
642
- readonly rejectDate?: number;
643
- readonly publishTarget: string;
644
- readonly publishTags: string[];
645
- readonly coverImagePath?: string;
646
- readonly commentsCount: number;
647
- readonly community?: boolean;
648
- readonly gameId?: string;
649
- readonly userId?: string;
650
- readonly editorId?: string;
634
+ id: string;
635
+ slug: string;
636
+ title: string;
637
+ summary: string;
638
+ body: string;
639
+ createDate: number;
640
+ updateDate: number;
641
+ publishDate?: number;
642
+ rejectDate?: number;
643
+ publishTarget: string;
644
+ publishTags: string[];
645
+ coverImagePath?: string;
646
+ commentsCount: number;
647
+ community?: boolean;
648
+ gameId?: string;
649
+ userId?: string;
650
+ editorId?: string;
651
651
  /**day it was pinned */
652
- readonly stickyDate?: number;
652
+ stickyDate?: number;
653
653
  }
654
654
 
655
655
  export interface Region {
656
- readonly id: string;
657
- readonly name: string;
658
- readonly url: string;
659
- readonly flag: string;
656
+ id: string;
657
+ name: string;
658
+ url: string;
659
+ flag: string;
660
660
  }
661
661
 
662
662
  export interface Pagination {
663
- readonly count: number;
664
- readonly page: number;
665
- readonly pages: number;
666
- readonly per: number;
663
+ count: number;
664
+ page: number;
665
+ pages: number;
666
+ per: number;
667
667
  }
668
668
 
669
669
  export interface Guide {
670
- readonly id: string;
671
- readonly name: string;
672
- readonly text: string;
673
- readonly date: number;
674
- readonly userId: string;
675
- readonly gameId: string;
670
+ id: string;
671
+ name: string;
672
+ text: string;
673
+ date: number;
674
+ userId: string;
675
+ gameId: string;
676
676
  }
677
677
 
678
678
  export interface Resource {
679
- readonly id: string;
680
- readonly type: Enums.ResourceType;
681
- readonly name: string;
682
- readonly description: string;
683
- readonly date: number;
684
- readonly userId: string;
685
- readonly gameId: string;
686
- readonly path?: string;
687
- readonly link?: string;
688
- readonly fileName?: string;
689
- readonly authorNames: string; // TODO: exhaustive check for lists AND CHECK THAT UCHI ARTICLE WITH META??
679
+ id: string;
680
+ type: Enums.ResourceType;
681
+ name: string;
682
+ description: string;
683
+ date: number;
684
+ userId: string;
685
+ gameId: string;
686
+ path?: string;
687
+ link?: string;
688
+ fileName?: string;
689
+ authorNames: string; // TODO: exhaustive check for lists AND CHECK THAT UCHI ARTICLE WITH META??
690
690
  }
691
691
 
692
692
  export interface Stream {
693
- readonly id: string;
694
- readonly gameId?: string;
695
- readonly userId?: string;
696
- readonly areaId?: string;
697
- readonly url: string;
698
- readonly title: string;
699
- readonly previewUrl: string;
700
- readonly channelName: string;
701
- readonly viewers: number;
693
+ id: string;
694
+ gameId?: string;
695
+ userId?: string;
696
+ areaId?: string;
697
+ url: string;
698
+ title: string;
699
+ previewUrl: string;
700
+ channelName: string;
701
+ viewers: number;
702
702
  /**If the stream has a PB on SRC (and has their account linked) TODO: check*/
703
- readonly hasPb: boolean;
703
+ hasPb: boolean;
704
704
  }
705
705
 
706
706
  export interface AuditLogEntry {
707
- readonly id: string;
708
- readonly date: number;
709
- readonly eventType: Enums.EventType
710
- readonly actorId: string;
711
- readonly gameId: string; // TODO check if optional, prolly is
707
+ id: string;
708
+ date: number;
709
+ eventType: Enums.EventType
710
+ actorId: string;
711
+ gameId: string; // TODO check if optional, prolly is
712
712
  /**A json dict of extra context based on eventType.*/
713
- readonly context: string;
714
- readonly userId?: string;
713
+ context: string;
714
+ userId?: string;
715
715
  }
716
716
 
717
717
  export interface Session {
718
- readonly signedIn: boolean;
719
- readonly showAds: boolean;
720
- readonly user?: User;
721
- readonly theme?: Theme;
722
- readonly powerLevel: Enums.SitePowerLevel;
723
- readonly dateFormat: Enums.DateFormat;
724
- readonly timeFormat: Enums.TimeFormat;
725
- readonly timeReference: Enums.TimeReference;
726
- readonly timeUnits: Enums.TimeDisplayUnits;
727
- readonly homepageStream: Enums.HomepageStreamType;
728
- readonly disableThemes: boolean;
729
- readonly csrfToken: string;
730
- readonly networkToken?: string;
731
- readonly gameList: Game[];
732
- readonly gameFollowerList: GameFollower[];
733
- readonly gameModeratorList: GameModerator[];
734
- readonly gameRunnerList: GameRunner[];
735
- readonly seriesList: Series[];
736
- readonly seriesModeratorList: SeriesModerator[];
737
- readonly boostAvailableTokens?: number;
738
- readonly boostNextTokenDate: number;
739
- readonly boostNextTokenAmount: number;
740
- readonly userFollowerList: UserFollower[];
741
- readonly enabledExperimentIds: string[]; // TODO: check
742
- readonly challengeModeratorList: ChallengeModerator[]; // TODO: check
718
+ signedIn: boolean;
719
+ showAds: boolean;
720
+ user?: User;
721
+ theme?: Theme;
722
+ powerLevel: Enums.SitePowerLevel;
723
+ dateFormat: Enums.DateFormat;
724
+ timeFormat: Enums.TimeFormat;
725
+ timeReference: Enums.TimeReference;
726
+ timeUnits: Enums.TimeDisplayUnits;
727
+ homepageStream: Enums.HomepageStreamType;
728
+ disableThemes: boolean;
729
+ csrfToken: string;
730
+ networkToken?: string;
731
+ gameList: Game[];
732
+ gameFollowerList: GameFollower[];
733
+ gameModeratorList: GameModerator[];
734
+ gameRunnerList: GameRunner[];
735
+ seriesList: Series[];
736
+ seriesModeratorList: SeriesModerator[];
737
+ boostAvailableTokens?: number;
738
+ boostNextTokenDate: number;
739
+ boostNextTokenAmount: number;
740
+ userFollowerList: UserFollower[];
741
+ enabledExperimentIds: string[]; // TODO: check
742
+ challengeModeratorList: ChallengeModerator[]; // TODO: check
743
743
  }
744
744
 
745
745
  export interface Conversation {
746
- readonly id: string;
747
- readonly participantUserIds: string[];
748
- readonly lastMessageId: string;
749
- readonly lastMessageUser: string;
750
- readonly lastMessageText: string;
751
- readonly lastMessageDate: number;
752
- readonly readDate: number;
746
+ id: string;
747
+ participantUserIds: string[];
748
+ lastMessageId: string;
749
+ lastMessageUser: string;
750
+ lastMessageText: string;
751
+ lastMessageDate: number;
752
+ readDate: number;
753
753
  }
754
754
 
755
755
  export interface ConversationLightweight {
756
- readonly id: string;
756
+ id: string;
757
757
  /**TODO check if empty */
758
- readonly participantUserIds: string[];
759
- readonly lastMessageId: string;
760
- readonly lastMessageDate: number;
758
+ participantUserIds: string[];
759
+ lastMessageId: string;
760
+ lastMessageDate: number;
761
761
  }
762
762
 
763
763
  export interface ConversationParticipant {
764
- readonly conversationId: string;
765
- readonly userId: string;
766
- readonly joinedDate: number;
764
+ conversationId: string;
765
+ userId: string;
766
+ joinedDate: number;
767
767
  /**TODO check if optional*/
768
- readonly leftDate: number;
768
+ leftDate: number;
769
769
  }
770
770
 
771
771
  export interface ConversationMessage {
772
- readonly id: string;
773
- readonly conversationId: string;
774
- readonly userId: string;
775
- readonly text: string;
776
- readonly date: number;
772
+ id: string;
773
+ conversationId: string;
774
+ userId: string;
775
+ text: string;
776
+ date: number;
777
777
  }
778
778
 
779
779
  export interface SystemMessage {
780
- readonly id: string;
781
- readonly userId: string;
782
- readonly text: string;
783
- readonly date: number;
784
- readonly read: boolean;
780
+ id: string;
781
+ userId: string;
782
+ text: string;
783
+ date: number;
784
+ read: boolean;
785
785
  }
786
786
 
787
787
  /**
@@ -792,119 +792,119 @@ export interface Game {
792
792
  /**
793
793
  * ID of the game.
794
794
  */
795
- readonly id: string;
795
+ id: string;
796
796
 
797
797
  /**
798
798
  * Name of the game.
799
799
  */
800
- readonly name: string;
800
+ name: string;
801
801
 
802
802
  /**
803
803
  * Page URL of the game.
804
804
  */
805
- readonly url: string;
805
+ url: string;
806
806
 
807
807
  /**
808
808
  * Unused enum that is always `1`. todo check if gameType is this
809
809
  */
810
- readonly type: 1;
810
+ type: 1;
811
811
 
812
812
  /**
813
813
  * Whether or not a game has Load Removed Time (LRT) as a timing method.
814
814
  */
815
- readonly loadtimes: boolean;
815
+ loadtimes: boolean;
816
816
 
817
817
  /**
818
818
  * Whether or not the game supports entering milliseconds when entering a time into a run.
819
819
  */
820
- readonly milliseconds: boolean;
820
+ milliseconds: boolean;
821
821
 
822
822
  /**
823
823
  * Whether or not a game has In Game Time (IGT) as a timing method.
824
824
  */
825
- readonly igt: boolean;
825
+ igt: boolean;
826
826
 
827
827
  /**
828
828
  * Whether or not runs require moderators to verify them.
829
829
  */
830
- readonly verification: boolean;
830
+ verification: boolean;
831
831
 
832
832
  /**
833
833
  * Whether or not the default option for 'Automatically Verify Run' is true.
834
834
  */
835
- readonly autoVerify?: boolean;
835
+ autoVerify?: boolean;
836
836
 
837
837
  /**
838
838
  * Whether or not videos are required for submission.
839
839
  */
840
- readonly requireVideo: boolean;
840
+ requireVideo: boolean;
841
841
 
842
842
  /**
843
843
  * Emulator allowability in a game.
844
844
  */
845
- readonly emulator: Enums.EmulatorType;
845
+ emulator: Enums.EmulatorType;
846
846
 
847
847
  /**
848
848
  * Default timing method of the game.
849
849
  */
850
- readonly defaultTimer: Enums.TimingMethod;
851
- readonly validTimers: Enums.TimingMethod[];
852
- readonly releaseDate?: number;
853
- readonly addedDate: number;
854
- readonly touchDate: number;
855
- readonly baseGameId?: string;
856
- readonly coverPath: string; //check if opt
857
- readonly trophy1stPath?: string;
858
- readonly trophy2ndPath?: string;
859
- readonly trophy3rdPath?: string;
860
- readonly trophy4thPath?: string;
861
- readonly runCommentsMode: Enums.ItemPermissionType;
862
- readonly runCount: number;
863
- readonly activePlayerCount: number;
864
- readonly totalPlayerCount: number;
865
- readonly boostReceivedCount: number;
866
- readonly boostDistinctDonorsCount: number;
867
- readonly rules?: string;
868
- readonly viewPowerLevel: Enums.SitePowerLevel;
869
- readonly platformIds: string[];
870
- readonly regionIds: string[];
871
- readonly gameTypeIds: Enums.GameType[];
872
- readonly websiteUrl?: string;
873
- readonly discordUrl?: string;
874
- readonly defaultView: Enums.DefaultViewType
875
- readonly guidePermissionType: Enums.ItemPermissionType;
876
- readonly resourcePermissionType: Enums.ItemPermissionType;
877
- readonly staticAssets: StaticAsset[];
878
- readonly embargoDate?: number;
879
- readonly embargoText?: string;
850
+ defaultTimer: Enums.TimingMethod;
851
+ validTimers: Enums.TimingMethod[];
852
+ releaseDate?: number;
853
+ addedDate: number;
854
+ touchDate: number;
855
+ baseGameId?: string;
856
+ coverPath?: string;
857
+ trophy1stPath?: string;
858
+ trophy2ndPath?: string;
859
+ trophy3rdPath?: string;
860
+ trophy4thPath?: string;
861
+ runCommentsMode: Enums.ItemPermissionType;
862
+ runCount: number;
863
+ activePlayerCount: number;
864
+ totalPlayerCount: number;
865
+ boostReceivedCount: number;
866
+ boostDistinctDonorsCount: number;
867
+ rules?: string;
868
+ viewPowerLevel: Enums.SitePowerLevel;
869
+ platformIds: string[];
870
+ regionIds: string[];
871
+ gameTypeIds: Enums.GameType[];
872
+ websiteUrl?: string;
873
+ discordUrl?: string;
874
+ defaultView: Enums.DefaultViewType
875
+ guidePermissionType: Enums.ItemPermissionType;
876
+ resourcePermissionType: Enums.ItemPermissionType;
877
+ staticAssets: StaticAsset[];
878
+ embargoDate?: number;
879
+ embargoText?: string;
880
880
  }
881
881
 
882
882
  export interface GameStats {
883
- readonly gameId: string;
884
- readonly totalRuns: number;
885
- readonly totalRunsFG: number;
886
- readonly totalRunsIL: number;
887
- readonly totalRunTime: number;
888
- readonly recentRuns: number;
889
- readonly recentRunsFG: number;
890
- readonly recentRunsIL: number;
891
- readonly totalPlayers: number;
892
- readonly activePlayers: number;
893
- readonly followers: number;
894
- readonly guides: number;
895
- readonly resources: number;
883
+ gameId: string;
884
+ totalRuns: number;
885
+ totalRunsFG: number;
886
+ totalRunsIL: number;
887
+ totalRunTime: number;
888
+ recentRuns: number;
889
+ recentRunsFG: number;
890
+ recentRunsIL: number;
891
+ totalPlayers: number;
892
+ activePlayers: number;
893
+ followers: number;
894
+ guides: number;
895
+ resources: number;
896
896
  }
897
897
 
898
898
  export interface GameNews {
899
- readonly id: string;
900
- readonly gameId: string;
901
- readonly userId: string;
902
- readonly title: string;
899
+ id: string;
900
+ gameId: string;
901
+ userId: string;
902
+ title: string;
903
903
  /**
904
904
  * Omitted for all but the first item in `GetGameSummary.newsList[]`.
905
905
  */
906
- readonly body?: string;
907
- readonly dateSubmitted: number;
906
+ body?: string;
907
+ dateSubmitted: number;
908
908
  }
909
909
 
910
910
  export interface GameModerator {
@@ -914,26 +914,26 @@ export interface GameModerator {
914
914
  }
915
915
 
916
916
  export interface GameBoost {
917
- readonly id: string;
918
- readonly createdAt: number;
919
- readonly updatedAt: number;
920
- readonly gameId: string;
921
- readonly donorUserId: string;
922
- readonly anonymous: boolean;
923
- readonly recipientUserIds: [];
917
+ id: string;
918
+ createdAt: number;
919
+ updatedAt: number;
920
+ gameId: string;
921
+ donorUserId: string;
922
+ anonymous: boolean;
923
+ recipientUserIds: [];
924
924
  }
925
925
 
926
926
  export interface GameTypeDetails {
927
- readonly id: Enums.GameType
928
- readonly name: string;
929
- readonly url: string;
930
- readonly description: string;
931
- readonly allowBaseGame: boolean;
927
+ id: Enums.GameType
928
+ name: string;
929
+ url: string;
930
+ description: string;
931
+ allowBaseGame: boolean;
932
932
  }
933
933
 
934
934
  /**TODO: Check for optional properties*/
935
935
  export interface GameSettings {
936
- readonly id: string;
936
+ id: string;
937
937
  name: string;
938
938
  url: string;
939
939
  twitchName: string;
@@ -971,65 +971,65 @@ export interface GameSettings {
971
971
  }
972
972
 
973
973
  export interface GameModerationStats {
974
- readonly gameId: string;
974
+ gameId: string;
975
975
  /**enum? appears to always be 0*/
976
- readonly state: number;
977
- readonly count: number;
978
- readonly minDate?: number;
979
- readonly maxDate?: number;
976
+ state: number;
977
+ count: number;
978
+ minDate?: number;
979
+ maxDate?: number;
980
980
  }
981
981
 
982
982
  export interface GameFollower {
983
- readonly gameId: string;
984
- readonly followerId: string;
985
- readonly pos?: number;
986
- readonly accessCount: number;
987
- readonly lastAccessDate: number;
983
+ gameId: string;
984
+ followerId: string;
985
+ pos?: number;
986
+ accessCount: number;
987
+ lastAccessDate: number;
988
988
  }
989
989
 
990
990
  export interface GameRunner {
991
- readonly gameId: string;
992
- readonly userId: string;
993
- readonly runCount: number;
991
+ gameId: string;
992
+ userId: string;
993
+ runCount: number;
994
994
  }
995
995
 
996
996
  export interface NewLevel {
997
- readonly gameId: string;
997
+ gameId: string;
998
998
  name: string;
999
999
  rules?: string;
1000
1000
  archived: boolean;
1001
1001
  }
1002
1002
 
1003
1003
  export interface Level extends NewLevel {
1004
- readonly id: string;
1005
- readonly url: string;
1006
- readonly pos: number;
1004
+ id: string;
1005
+ url: string;
1006
+ pos: number;
1007
1007
  }
1008
1008
 
1009
1009
  export interface Notification {
1010
- readonly id: string;
1011
- readonly date: number;
1012
- readonly title: string;
1013
- readonly path: string;
1014
- readonly read: boolean;
1010
+ id: string;
1011
+ date: number;
1012
+ title: string;
1013
+ path: string;
1014
+ read: boolean;
1015
1015
  }
1016
1016
 
1017
1017
  export interface NotificationSetting {
1018
- readonly type: number; //# enum??
1019
- readonly gameId?: string;
1020
- readonly site: boolean;
1021
- readonly email: boolean;
1018
+ type: number; //# enum??
1019
+ gameId?: string;
1020
+ site: boolean;
1021
+ email: boolean;
1022
1022
  }
1023
1023
 
1024
1024
  /**A different type of notification are returned by `GetStaticData` than in other areas.*/
1025
1025
  export interface NotificationSettingStaticData {
1026
- readonly id: number;
1027
- readonly group: string;
1028
- readonly title: string;
1029
- readonly pos: number;
1030
- readonly gameSpecific: boolean;
1031
- readonly siteDefault: number;
1032
- readonly emailDefault: boolean;
1026
+ id: number;
1027
+ group: string;
1028
+ title: string;
1029
+ pos: number;
1030
+ gameSpecific: boolean;
1031
+ siteDefault: number;
1032
+ emailDefault: boolean;
1033
1033
  }
1034
1034
 
1035
1035
  export interface GameOrderGroup {
@@ -1042,121 +1042,121 @@ export interface GameOrderGroup {
1042
1042
  }
1043
1043
 
1044
1044
  export interface GameOrdering {
1045
- readonly defaultGroups: GameOrderGroup[];
1046
- readonly supporterGroups: GameOrderGroup[];
1045
+ defaultGroups: GameOrderGroup[];
1046
+ supporterGroups: GameOrderGroup[];
1047
1047
  }
1048
1048
 
1049
1049
  interface Run_Base {
1050
1050
  /**
1051
1051
  * Unique identification characters of a run.
1052
1052
  */
1053
- readonly id: string;
1053
+ id: string;
1054
1054
  /**
1055
1055
  * Unique identification characters of the run's game.
1056
1056
  */
1057
- readonly gameId: string;
1057
+ gameId: string;
1058
1058
 
1059
1059
  /**
1060
1060
  * Timing of the run, in seconds. If the run has an *LRT* (Load Removed Time) **and** an *RTA* (Real Time Attack) time, this property will be the LRT. If there is an RTA and not an LRT, this will be the RTA.
1061
1061
  */
1062
- readonly time?: number;
1062
+ time?: number;
1063
1063
 
1064
1064
  /**
1065
1065
  * Timing of the run, in seconds. If the run has an *LRT* (Load Removed Time) **and** an *RTA* (Real Time Attack) time, this property will be the RTA. If there is an LRT and not an RTA, this will be the LRT.
1066
1066
  */
1067
- readonly timeWithLoads?: number;
1067
+ timeWithLoads?: number;
1068
1068
 
1069
1069
  /**
1070
1070
  * In Game Time* of the run, in seconds.
1071
1071
  */
1072
- readonly igt?: number;
1072
+ igt?: number;
1073
1073
 
1074
1074
  /**
1075
1075
  * Unique identification characters of a platform. Platforms can be accessed with `GetPlatformList`.
1076
1076
  */
1077
- readonly platformId?: string;
1077
+ platformId?: string;
1078
1078
 
1079
1079
  /**
1080
1080
  * Whether or not an emulator was used in the run.
1081
1081
  */
1082
- readonly emulator: boolean;
1082
+ emulator: boolean;
1083
1083
 
1084
1084
  /**
1085
1085
  * Unique identification characters of a region. Found in older games that vary based on regions.
1086
1086
  */
1087
- readonly regionId?: string;
1087
+ regionId?: string;
1088
1088
 
1089
1089
  /**
1090
1090
  * Everything in the 'Video URL' box.
1091
1091
  */
1092
- readonly video?: string;
1092
+ video?: string;
1093
1093
 
1094
1094
  /**
1095
1095
  * Description of a run.
1096
1096
  */
1097
- readonly comment?: string;
1097
+ comment?: string;
1098
1098
 
1099
1099
  /**
1100
1100
  * Unique user identification of the run submitter. Absent if the submitter is deleted.
1101
1101
  */
1102
- readonly submittedById?: string;
1102
+ submittedById?: string;
1103
1103
 
1104
1104
  /**
1105
1105
  * A run's verification status.
1106
1106
  */
1107
- readonly verified: Enums.RunStatus;
1107
+ verified: Enums.RunStatus;
1108
1108
 
1109
1109
  /**
1110
1110
  * Unique user identification characters of the run resolver.
1111
1111
  *
1112
1112
  * Absent if the resolver is deleted.
1113
1113
  */
1114
- readonly verifiedById?: string;
1114
+ verifiedById?: string;
1115
1115
 
1116
1116
  /**
1117
1117
  * Run rejection reason if it was rejected.
1118
1118
  */
1119
- readonly reason?: string;
1119
+ reason?: string;
1120
1120
 
1121
1121
  /**
1122
1122
  * UNIX timestamp of a run's (changeable) date.
1123
1123
  */
1124
- readonly date: number;
1124
+ date: number;
1125
1125
 
1126
1126
  /**
1127
1127
  * UNIX timestamp of when the run was submitted.
1128
1128
  */
1129
- readonly dateSubmitted?: number;
1129
+ dateSubmitted?: number;
1130
1130
 
1131
1131
  /**
1132
1132
  * UNIX timestamp of when the run was resolved.
1133
1133
  */
1134
- readonly dateVerified?: number;
1134
+ dateVerified?: number;
1135
1135
 
1136
1136
  /**
1137
1137
  * Whether the run is obsolete or not - absent when false.
1138
1138
  */
1139
- readonly obsolete?: boolean;
1139
+ obsolete?: boolean;
1140
1140
 
1141
1141
  /**
1142
1142
  * Leaderboard rank of the run. Absent when obsolete.
1143
1143
  */
1144
- readonly place?: number;
1144
+ place?: number;
1145
1145
 
1146
1146
  /**
1147
1147
  * Unique identification characters of players in the run.
1148
1148
  */
1149
- readonly playerIds: string[];
1149
+ playerIds: string[];
1150
1150
 
1151
1151
  /**
1152
1152
  * Unused property that used to store reports of bad data for a run.
1153
1153
  */
1154
- readonly issues: null;
1154
+ issues: null;
1155
1155
 
1156
1156
  /**
1157
1157
  * Availibility and 'status' of the video of a run.
1158
1158
  */
1159
- readonly videoState: Enums.VideoState;
1159
+ videoState: Enums.VideoState;
1160
1160
  }
1161
1161
 
1162
1162
  /**
@@ -1167,35 +1167,35 @@ export interface GameRun extends Run_Base {
1167
1167
  /**
1168
1168
  * Unique identification characters of the run's category.
1169
1169
  */
1170
- readonly categoryId: string;
1170
+ categoryId: string;
1171
1171
 
1172
1172
  /**
1173
1173
  * Unique identification characters of the run's level, if the run is on an individual level (IL).
1174
1174
  */
1175
- readonly levelId?: string;
1175
+ levelId?: string;
1176
1176
 
1177
1177
  /**
1178
1178
  * Whether the run has *splits.io* splits. Splits.io has been shut down; this is `false` on all new runs.
1179
1179
  */
1180
- readonly hasSplits: boolean;
1180
+ hasSplits: boolean;
1181
1181
 
1182
1182
  /**
1183
1183
  * Unique identification characters of values (subcategories and annotations) in the run.
1184
1184
  */
1185
- readonly valueIds: string[];
1185
+ valueIds: string[];
1186
1186
 
1187
1187
  /**
1188
1188
  * Whether or not the run's category or subcategories were archived - absent when false.
1189
1189
  */
1190
- readonly orphaned?: boolean;
1190
+ orphaned?: boolean;
1191
1191
  }
1192
1192
 
1193
1193
  export interface ChallengeRun extends Run_Base {
1194
- readonly challengeId: string;
1195
- readonly screened: boolean;
1196
- readonly screenedById?: string;
1197
- readonly dateScreened?: number;
1198
- readonly commentsCount: number;
1194
+ challengeId: string;
1195
+ screened: boolean;
1196
+ screenedById?: string;
1197
+ dateScreened?: number;
1198
+ commentsCount: number;
1199
1199
  }
1200
1200
 
1201
1201
  export interface ModerationRun extends GameRun {
@@ -1205,7 +1205,7 @@ export interface ModerationRun extends GameRun {
1205
1205
  *
1206
1206
  * Missing when false.
1207
1207
  */
1208
- readonly estimated?: true;
1208
+ estimated?: true;
1209
1209
  }
1210
1210
 
1211
1211
  export interface RunTime {
@@ -1220,7 +1220,7 @@ export interface RunSettings {
1220
1220
  /**
1221
1221
  * Omitted when submitting a new run.
1222
1222
  */
1223
- readonly runId?: string;
1223
+ runId?: string;
1224
1224
  gameId: string;
1225
1225
  categoryId: string;
1226
1226
  playerNames: string[];
@@ -1240,18 +1240,18 @@ export interface RunSettings {
1240
1240
  }
1241
1241
 
1242
1242
  export interface Series {
1243
- readonly id: string;
1244
- readonly name: string;
1245
- readonly url: string;
1246
- readonly addedDate: number;
1247
- readonly touchDate: number;
1248
- readonly websiteUrl?: string;
1249
- readonly discordUrl?: string;
1250
- readonly runCount: number;
1251
- readonly activePlayerCount: number;
1252
- readonly totalPlayerCount: number;
1253
- readonly officialGameCount: number;
1254
- readonly staticAssets: StaticAsset[];
1243
+ id: string;
1244
+ name: string;
1245
+ url: string;
1246
+ addedDate: number;
1247
+ touchDate: number;
1248
+ websiteUrl?: string;
1249
+ discordUrl?: string;
1250
+ runCount: number;
1251
+ activePlayerCount: number;
1252
+ totalPlayerCount: number;
1253
+ officialGameCount: number;
1254
+ staticAssets: StaticAsset[];
1255
1255
  }
1256
1256
 
1257
1257
  export interface SeriesModerator {
@@ -1283,45 +1283,45 @@ export interface StaticAssetUpdate {
1283
1283
  }
1284
1284
 
1285
1285
  export interface SupporterCredit {
1286
- readonly id: string;
1287
- readonly userId: string;
1288
- readonly providerId: number; // enum
1289
- readonly createdAt: number;
1290
- readonly updatedAt: number;
1291
- readonly creditType: number; // enum
1292
- readonly amount: number;
1293
- readonly currency: string;
1294
- readonly receivedAt: number;
1295
- readonly subscriptionId: string;
1296
- readonly periodStartsAt: number;
1297
- readonly periodEndsAt: number;
1298
- readonly providerItemId: string;
1286
+ id: string;
1287
+ userId: string;
1288
+ providerId: number; // enum
1289
+ createdAt: number;
1290
+ updatedAt: number;
1291
+ creditType: number; // enum
1292
+ amount: number;
1293
+ currency: string;
1294
+ receivedAt: number;
1295
+ subscriptionId: string;
1296
+ periodStartsAt: number;
1297
+ periodEndsAt: number;
1298
+ providerItemId: string;
1299
1299
  }
1300
1300
 
1301
1301
  export interface SupporterCode {
1302
- readonly id: string;
1303
- readonly code: string;
1304
- readonly description: string;
1305
- readonly duration: number;
1306
- readonly userId: string;
1307
- readonly createdAt: number;
1308
- readonly updatedAt: number;
1302
+ id: string;
1303
+ code: string;
1304
+ description: string;
1305
+ duration: number;
1306
+ userId: string;
1307
+ createdAt: number;
1308
+ updatedAt: number;
1309
1309
  }
1310
1310
 
1311
1311
  export interface SupporterSubscription {
1312
- readonly id: string;
1313
- readonly userId: string;
1314
- readonly providerId: number; // enum
1315
- readonly createdAt: number;
1316
- readonly updatedAt: number;
1317
- readonly expiresAt: number;
1318
- readonly planId: number; // enum
1319
- readonly nextPeriodPlanId: number; // enum
1320
- readonly status: number; // enum
1312
+ id: string;
1313
+ userId: string;
1314
+ providerId: number; // enum
1315
+ createdAt: number;
1316
+ updatedAt: number;
1317
+ expiresAt: number;
1318
+ planId: number; // enum
1319
+ nextPeriodPlanId: number; // enum
1320
+ status: number; // enum
1321
1321
  /**Default 0, undocumented but assume timestamp otherwise TODO*/
1322
- readonly trialEndsAt: number;
1323
- readonly cancelAtPeriodEnd: boolean;
1324
- readonly canceledAt: number; // TODO assume timestamp
1322
+ trialEndsAt: number;
1323
+ cancelAtPeriodEnd: boolean;
1324
+ canceledAt: number; // TODO assume timestamp
1325
1325
  }
1326
1326
 
1327
1327
  export interface Theme {