speedruncom.js 2.0.5 → 2.0.7

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.
@@ -6,7 +6,7 @@ export interface Category {
6
6
  /**
7
7
  * ID of the category.
8
8
  */
9
- readonly id: string;
9
+ id: string;
10
10
  /**
11
11
  * Name of the category.
12
12
  */
@@ -16,15 +16,15 @@ export interface Category {
16
16
  * This is never actually used in site pages.
17
17
  * The URL is permanent and can never update, even when changing the category name.
18
18
  */
19
- readonly url: string;
19
+ url: string;
20
20
  /**
21
21
  * A global, site-wide position order number for the category.
22
22
  */
23
- readonly pos: number;
23
+ pos: number;
24
24
  /**
25
25
  * ID of the game the category is on.
26
26
  */
27
- readonly gameId: string;
27
+ gameId: string;
28
28
  /**
29
29
  * Whether or not the category is miscellaneous.
30
30
  */
@@ -70,15 +70,15 @@ export interface ChallengeModerator {
70
70
  /**
71
71
  * ID of the challenge being moderated.
72
72
  */
73
- readonly challengeId: string;
73
+ challengeId: string;
74
74
  /**
75
75
  * ID of the user moderating.
76
76
  */
77
- readonly userId: string;
77
+ userId: string;
78
78
  /**
79
79
  * `GamePowerLevel` of the moderator.
80
80
  */
81
- readonly level: Enums.GamePowerLevel;
81
+ level: Enums.GamePowerLevel;
82
82
  }
83
83
  /**
84
84
  * A current status of a challenge.
@@ -87,27 +87,27 @@ export interface ChallengeStanding {
87
87
  /**
88
88
  * ID of the challenge.
89
89
  */
90
- readonly challengeId: string;
90
+ challengeId: string;
91
91
  /**
92
92
  * todo
93
93
  */
94
- readonly place: number;
94
+ place: number;
95
95
  /**
96
96
  * todo
97
97
  */
98
- readonly registeredPlayerIds: string[];
98
+ registeredPlayerIds: string[];
99
99
  /**
100
100
  * todo
101
101
  */
102
- readonly prizeAmount: number;
102
+ prizeAmount: number;
103
103
  /**
104
104
  * todo
105
105
  */
106
- readonly unregisteredPlayers: string[];
106
+ unregisteredPlayers: string[];
107
107
  /**
108
108
  * todo
109
109
  */
110
- readonly prizeCurrency: string;
110
+ prizeCurrency: string;
111
111
  }
112
112
  /**
113
113
  * A currency reward for getting a certain ranking in a challenge.
@@ -116,11 +116,11 @@ export interface ChallengePrize {
116
116
  /**
117
117
  * The ranking in the challenge for the reward.
118
118
  */
119
- readonly place: number;
119
+ place: number;
120
120
  /**
121
121
  * The amount of money rewarded to the player in the `place`.
122
122
  */
123
- readonly amount: number;
123
+ amount: number;
124
124
  }
125
125
  /**
126
126
  * Configuration settings of a challenge.
@@ -129,12 +129,12 @@ export interface ChallengePrizeConfig {
129
129
  /**
130
130
  * TODO
131
131
  */
132
- readonly prizePool: number;
132
+ prizePool: number;
133
133
  /**
134
134
  * TODO
135
135
  */
136
- readonly currency: string;
137
- readonly prizes: ChallengePrize[];
136
+ currency: string;
137
+ prizes: ChallengePrize[];
138
138
  }
139
139
  /**
140
140
  * A single user's site-wide ranking details based on all challenges entered.
@@ -143,28 +143,28 @@ export interface GlobalChallengeRanking {
143
143
  /**
144
144
  * ID of the user.
145
145
  */
146
- readonly userId: string;
146
+ userId: string;
147
147
  /**
148
148
  * The user's site-wide rank.
149
149
  */
150
- readonly rank: number;
151
- readonly totalEarnings: number;
150
+ rank: number;
151
+ totalEarnings: number;
152
152
  /**
153
153
  * The amount of first place ranks the user has achieved in challenges.
154
154
  */
155
- readonly firstPlaces: number;
155
+ firstPlaces: number;
156
156
  /**
157
157
  * The amount of second place ranks the user has achieved in challenges.
158
158
  */
159
- readonly secondPlaces: number;
159
+ secondPlaces: number;
160
160
  /**
161
161
  * The amount of third place ranks the user has achieved in challenges.
162
162
  */
163
- readonly thirdPlaces: number;
163
+ thirdPlaces: number;
164
164
  /**
165
165
  * The total amount of challenges the user has entered.
166
166
  */
167
- readonly challengesEntered: number;
167
+ challengesEntered: number;
168
168
  }
169
169
  /**
170
170
  * A site challenge.
@@ -173,71 +173,71 @@ export interface Challenge {
173
173
  /**
174
174
  * ID of the challenge.
175
175
  */
176
- readonly id: string;
176
+ id: string;
177
177
  /**
178
178
  * Name of the challenge.
179
179
  */
180
- readonly name: string;
180
+ name: string;
181
181
  /**
182
182
  * todo
183
183
  */
184
- readonly announcement: string;
184
+ announcement: string;
185
185
  /**
186
186
  * Subpath URL of the challenge.
187
187
  */
188
- readonly url: string;
188
+ url: string;
189
189
  /**
190
190
  * ID of the game the challenge is based on.
191
191
  */
192
- readonly gameId: string;
192
+ gameId: string;
193
193
  /**
194
194
  * UNIX timestamp of when the challenge was created.
195
195
  */
196
- readonly createDate: number;
196
+ createDate: number;
197
197
  /**
198
198
  * UNIX timestamp of when the challenge settings were last updated.
199
199
  */
200
- readonly updateDate: number;
200
+ updateDate: number;
201
201
  /**
202
202
  * todo
203
203
  */
204
- readonly startDate: number;
204
+ startDate: number;
205
205
  /**
206
206
  * todo
207
207
  */
208
- readonly endDate: number;
208
+ endDate: number;
209
209
  /**
210
210
  * `ChallengeState` of the challenge.
211
211
  */
212
- readonly state: Enums.ChallengeState;
212
+ state: Enums.ChallengeState;
213
213
  /**
214
214
  * Description of the challenge.
215
215
  */
216
- readonly description: string;
216
+ description: string;
217
217
  /**
218
218
  * Rules of the challenge (not to be confused with `contestRules`).
219
219
  */
220
- readonly rules: string;
220
+ rules: string;
221
221
  /**
222
222
  *
223
223
  */
224
- readonly numPlayers: number;
225
- readonly exactPlayers: boolean;
226
- readonly playerMatchMode: Enums.PlayerMatchMode;
227
- readonly timeDirection: Enums.TimeDirection;
228
- readonly enforceMs: boolean;
224
+ numPlayers: number;
225
+ exactPlayers: boolean;
226
+ playerMatchMode: Enums.PlayerMatchMode;
227
+ timeDirection: Enums.TimeDirection;
228
+ enforceMs: boolean;
229
229
  /**
230
230
  * Subpath URL of the challenge's cover image.
231
231
  * check if opt todo
232
232
  */
233
- readonly coverImagePath: string;
234
- readonly contest: boolean;
235
- readonly contestRules: string;
236
- readonly runCommentsMode: Enums.ItemPermissionType;
233
+ coverImagePath: string;
234
+ contest: boolean;
235
+ contestRules: string;
236
+ runCommentsMode: Enums.ItemPermissionType;
237
237
  /**
238
238
  * `ChallengePrizeConfig` of the challenge.
239
239
  */
240
- readonly prizeConfig: ChallengePrizeConfig;
240
+ prizeConfig: ChallengePrizeConfig;
241
241
  }
242
242
  /**
243
243
  * Player reward for completing a Challenge.
@@ -246,19 +246,19 @@ export interface Title {
246
246
  /**
247
247
  * ID of the title.
248
248
  */
249
- readonly id: string;
249
+ id: string;
250
250
  /**
251
251
  * Title of the challenge.
252
252
  */
253
- readonly title: string;
253
+ title: string;
254
254
  /**
255
255
  * Description of how the challenge is rewarded to players.
256
256
  */
257
- readonly comment: string;
257
+ comment: string;
258
258
  /**
259
259
  * Subpath URL of the challenge that rewards the title.
260
260
  */
261
- readonly referenceUrl: string;
261
+ referenceUrl: string;
262
262
  }
263
263
  /**
264
264
  * Permissions of a comment section.
@@ -267,101 +267,101 @@ export interface CommentPermissions {
267
267
  /**
268
268
  * Whether or not
269
269
  */
270
- readonly canManage: boolean;
270
+ canManage: boolean;
271
271
  /**
272
272
  * Whether or
273
273
  */
274
- readonly canViewComments: boolean;
275
- readonly canPostComments: boolean;
274
+ canViewComments: boolean;
275
+ canPostComments: boolean;
276
276
  /**
277
277
  * Whether or not editing comments is allowed.
278
278
  */
279
- readonly canEditComments: boolean;
279
+ canEditComments: boolean;
280
280
  /**
281
281
  * Whether or not deleting comments is allowsed.
282
282
  */
283
- readonly canDeleteComments: boolean;
283
+ canDeleteComments: boolean;
284
284
  /**
285
285
  * Reasons for not being able to not view a thread.
286
286
  */
287
- readonly cannotViewReasons: string[];
287
+ cannotViewReasons: string[];
288
288
  /**
289
289
  * Reasons for not being able to post a comment.
290
290
  */
291
- readonly cannotPostReasons: string[];
291
+ cannotPostReasons: string[];
292
292
  }
293
293
  export interface CommentableProperties {
294
- readonly disabled: boolean;
295
- readonly locked: boolean;
294
+ disabled: boolean;
295
+ locked: boolean;
296
296
  }
297
297
  export interface Commentable {
298
- readonly itemType: Enums.CommentableItemType;
299
- readonly itemId: string;
300
- readonly properties: CommentableProperties;
298
+ itemType: Enums.CommentableItemType;
299
+ itemId: string;
300
+ properties: CommentableProperties;
301
301
  /**Permissions of the logged in user. If not logged in; `canPostComments` is `false`.*/
302
- readonly permissions: CommentPermissions;
302
+ permissions: CommentPermissions;
303
303
  }
304
304
  export interface Comment {
305
- readonly id: string;
306
- readonly itemType: Enums.ItemType.Comment;
307
- readonly itemId: string;
308
- readonly date: number;
309
- readonly userId: string;
305
+ id: string;
306
+ itemType: Enums.ItemType.Comment;
307
+ itemId: string;
308
+ date: number;
309
+ userId: string;
310
310
  /**May be omitted on deleted comments.*/
311
- readonly text?: string;
312
- readonly parentId?: string;
313
- readonly deleted: boolean;
314
- readonly deletedUserId?: string;
311
+ text?: string;
312
+ parentId?: string;
313
+ deleted: boolean;
314
+ deletedUserId?: string;
315
315
  }
316
316
  export interface Like {
317
- readonly itemType: Enums.ItemType.Comment;
318
- readonly itemId: string;
319
- readonly userId: string;
320
- readonly date: number;
317
+ itemType: Enums.ItemType.Comment;
318
+ itemId: string;
319
+ userId: string;
320
+ date: number;
321
321
  }
322
322
  export interface SocialNetwork {
323
323
  /**
324
324
  * `SocialConnection` of the social network.
325
325
  */
326
- readonly id: Enums.SocialConnection;
326
+ id: Enums.SocialConnection;
327
327
  /**
328
328
  * Name of the social network.
329
329
  */
330
- readonly name: string;
330
+ name: string;
331
331
  /**
332
332
  * Arbitrary and unknown determination of if the platform is popular.
333
333
  *
334
334
  * This does not have to do with if the platform is depricated or not.
335
335
  */
336
- readonly major: boolean;
336
+ major: boolean;
337
337
  /**
338
338
  * Site-wide ordering method of the platform.
339
339
  */
340
- readonly pos: number;
340
+ pos: number;
341
341
  /**
342
342
  * 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.
343
343
  *
344
344
  * Example: `https://www.youtube.com/user/[id]`
345
345
  */
346
- readonly pattern: string;
346
+ pattern: string;
347
347
  }
348
348
  export interface Area {
349
- readonly id: string;
350
- readonly name: string;
351
- readonly fullName: string;
352
- readonly label: string;
353
- readonly flagIcon: string;
354
- readonly lbFlagIcon: string;
355
- readonly lbName: string;
349
+ id: string;
350
+ name: string;
351
+ fullName: string;
352
+ label: string;
353
+ flagIcon: string;
354
+ lbFlagIcon: string;
355
+ lbName: string;
356
356
  }
357
357
  export interface Color {
358
- readonly id: string;
359
- readonly name: string;
360
- readonly darkColor: string;
358
+ id: string;
359
+ name: string;
360
+ darkColor: string;
361
361
  /**@deprecated `darkColor` is always used on the site*/
362
- readonly lightColor: string;
362
+ lightColor: string;
363
363
  /**@deprecated colors now seem to be sorted by their name's ascending alphabetical order (A-Z)*/
364
- readonly pos: number;
364
+ pos: number;
365
365
  }
366
366
  /**
367
367
  * A 'category' of threads, being site-wide such as *The Site* and *Supporter* or representing the forum section that every game has.
@@ -370,83 +370,83 @@ export interface Forum {
370
370
  /**
371
371
  * `id` of this forum section.
372
372
  */
373
- readonly id: string;
373
+ id: string;
374
374
  /**
375
375
  * Name of the forum. If this is the game's forum, it is the game name.
376
376
  */
377
- readonly name: string;
377
+ name: string;
378
378
  /**
379
379
  * Page URL of the forum. If this is the game's forum, it is the game's page URL.
380
380
  */
381
- readonly url: string;
381
+ url: string;
382
382
  /**
383
383
  * A description used to describe site-wide forums.
384
384
  */
385
- readonly description?: string;
385
+ description?: string;
386
386
  /**
387
387
  * The `ForumType` the forum is.
388
388
  */
389
- readonly type: Enums.ForumType;
389
+ type: Enums.ForumType;
390
390
  /**
391
391
  * The amount of threads inside of a forum.
392
392
  */
393
- readonly threadCount: number;
393
+ threadCount: number;
394
394
  /**
395
395
  * The amont of combined posts of every thread in the forum.
396
396
  */
397
- readonly postCount: number;
397
+ postCount: number;
398
398
  /**
399
399
  * The ID of the latest post in any thread in the forum.
400
400
  */
401
- readonly lastPostId: string;
401
+ lastPostId: string;
402
402
  /**
403
403
  * The `userId` of the latest post in any thread in the forum.
404
404
  */
405
- readonly lastPostUserId: string;
405
+ lastPostUserId: string;
406
406
  /**
407
407
  * The UNIX timestamp of when the latest post in any thread in the forum was posted.
408
408
  */
409
- readonly lastPostDate: number;
409
+ lastPostDate: number;
410
410
  /**
411
411
  *
412
412
  */
413
- readonly touchDate: number;
413
+ touchDate: number;
414
414
  }
415
415
  export interface Thread {
416
- readonly id: string;
417
- readonly name: string;
418
- readonly gameId: string;
419
- readonly forumId: string;
420
- readonly userId: string;
421
- readonly replies: number;
422
- readonly created: number;
423
- readonly lastCommentId: string;
424
- readonly lastCommentUserId: string;
425
- readonly lastCommentDate: number;
426
- readonly sticky: boolean;
427
- readonly locked: boolean;
416
+ id: string;
417
+ name: string;
418
+ gameId: string;
419
+ forumId: string;
420
+ userId: string;
421
+ replies: number;
422
+ created: number;
423
+ lastCommentId: string;
424
+ lastCommentUserId: string;
425
+ lastCommentDate: number;
426
+ sticky: boolean;
427
+ locked: boolean;
428
428
  }
429
429
  export interface ForumReadStatus {
430
- readonly forumId: string;
431
- readonly date: number;
430
+ forumId: string;
431
+ date: number;
432
432
  }
433
433
  export interface Datatype {
434
- readonly threadId: string;
435
- readonly date: number;
434
+ threadId: string;
435
+ date: number;
436
436
  }
437
437
  export interface Leaderboard {
438
- readonly category: Category;
439
- readonly game: Game;
440
- readonly pagination: Pagination;
441
- readonly platforms: Platform[];
438
+ category: Category;
439
+ game: Game;
440
+ pagination: Pagination;
441
+ platforms: Platform[];
442
442
  /**
443
443
  * Every Player with a run in a game.
444
444
  */
445
- readonly players: Player[];
446
- readonly regions: Region[];
447
- readonly runs: GameRun[];
448
- readonly values: VariableValue[];
449
- readonly variables: Variable[];
445
+ players: Player[];
446
+ regions: Region[];
447
+ runs: GameRun[];
448
+ values: VariableValue[];
449
+ variables: Variable[];
450
450
  }
451
451
  /**
452
452
  * Paramaters for filtering a leaderboard.
@@ -505,159 +505,159 @@ export interface LeaderboardParams {
505
505
  video?: Enums.VideoFilter;
506
506
  }
507
507
  export interface RunCount {
508
- readonly gameId: string;
509
- readonly categoryId: string;
510
- readonly levelId?: string;
511
- readonly variableId?: string;
512
- readonly valueId?: string;
513
- readonly count: number;
508
+ gameId: string;
509
+ categoryId: string;
510
+ levelId?: string;
511
+ variableId?: string;
512
+ valueId?: string;
513
+ count: number;
514
514
  }
515
515
  export interface Platform {
516
- readonly id: string;
517
- readonly name: string;
518
- readonly url: string;
519
- readonly year: number;
516
+ id: string;
517
+ name: string;
518
+ url: string;
519
+ year: number;
520
520
  }
521
521
  export interface Article {
522
- readonly id: string;
523
- readonly slug: string;
524
- readonly title: string;
525
- readonly summary: string;
526
- readonly body: string;
527
- readonly createDate: number;
528
- readonly updateDate: number;
529
- readonly publishDate?: number;
530
- readonly rejectDate?: number;
531
- readonly publishTarget: string;
532
- readonly publishTags: string[];
533
- readonly coverImagePath?: string;
534
- readonly commentsCount: number;
535
- readonly community?: boolean;
536
- readonly gameId?: string;
537
- readonly userId?: string;
538
- readonly editorId?: string;
522
+ id: string;
523
+ slug: string;
524
+ title: string;
525
+ summary: string;
526
+ body: string;
527
+ createDate: number;
528
+ updateDate: number;
529
+ publishDate?: number;
530
+ rejectDate?: number;
531
+ publishTarget: string;
532
+ publishTags: string[];
533
+ coverImagePath?: string;
534
+ commentsCount: number;
535
+ community?: boolean;
536
+ gameId?: string;
537
+ userId?: string;
538
+ editorId?: string;
539
539
  /**day it was pinned */
540
- readonly stickyDate?: number;
540
+ stickyDate?: number;
541
541
  }
542
542
  export interface Region {
543
- readonly id: string;
544
- readonly name: string;
545
- readonly url: string;
546
- readonly flag: string;
543
+ id: string;
544
+ name: string;
545
+ url: string;
546
+ flag: string;
547
547
  }
548
548
  export interface Pagination {
549
- readonly count: number;
550
- readonly page: number;
551
- readonly pages: number;
552
- readonly per: number;
549
+ count: number;
550
+ page: number;
551
+ pages: number;
552
+ per: number;
553
553
  }
554
554
  export interface Guide {
555
- readonly id: string;
556
- readonly name: string;
557
- readonly text: string;
558
- readonly date: number;
559
- readonly userId: string;
560
- readonly gameId: string;
555
+ id: string;
556
+ name: string;
557
+ text: string;
558
+ date: number;
559
+ userId: string;
560
+ gameId: string;
561
561
  }
562
562
  export interface Resource {
563
- readonly id: string;
564
- readonly type: Enums.ResourceType;
565
- readonly name: string;
566
- readonly description: string;
567
- readonly date: number;
568
- readonly userId: string;
569
- readonly gameId: string;
570
- readonly path?: string;
571
- readonly link?: string;
572
- readonly fileName?: string;
573
- readonly authorNames: string;
563
+ id: string;
564
+ type: Enums.ResourceType;
565
+ name: string;
566
+ description: string;
567
+ date: number;
568
+ userId: string;
569
+ gameId: string;
570
+ path?: string;
571
+ link?: string;
572
+ fileName?: string;
573
+ authorNames: string;
574
574
  }
575
575
  export interface Stream {
576
- readonly id: string;
577
- readonly gameId?: string;
578
- readonly userId?: string;
579
- readonly areaId?: string;
580
- readonly url: string;
581
- readonly title: string;
582
- readonly previewUrl: string;
583
- readonly channelName: string;
584
- readonly viewers: number;
576
+ id: string;
577
+ gameId?: string;
578
+ userId?: string;
579
+ areaId?: string;
580
+ url: string;
581
+ title: string;
582
+ previewUrl: string;
583
+ channelName: string;
584
+ viewers: number;
585
585
  /**If the stream has a PB on SRC (and has their account linked) TODO: check*/
586
- readonly hasPb: boolean;
586
+ hasPb: boolean;
587
587
  }
588
588
  export interface AuditLogEntry {
589
- readonly id: string;
590
- readonly date: number;
591
- readonly eventType: Enums.EventType;
592
- readonly actorId: string;
593
- readonly gameId: string;
589
+ id: string;
590
+ date: number;
591
+ eventType: Enums.EventType;
592
+ actorId: string;
593
+ gameId: string;
594
594
  /**A json dict of extra context based on eventType.*/
595
- readonly context: string;
596
- readonly userId?: string;
595
+ context: string;
596
+ userId?: string;
597
597
  }
598
598
  export interface Session {
599
- readonly signedIn: boolean;
600
- readonly showAds: boolean;
601
- readonly user?: User;
602
- readonly theme?: Theme;
603
- readonly powerLevel: Enums.SitePowerLevel;
604
- readonly dateFormat: Enums.DateFormat;
605
- readonly timeFormat: Enums.TimeFormat;
606
- readonly timeReference: Enums.TimeReference;
607
- readonly timeUnits: Enums.TimeDisplayUnits;
608
- readonly homepageStream: Enums.HomepageStreamType;
609
- readonly disableThemes: boolean;
610
- readonly csrfToken: string;
611
- readonly networkToken?: string;
612
- readonly gameList: Game[];
613
- readonly gameFollowerList: GameFollower[];
614
- readonly gameModeratorList: GameModerator[];
615
- readonly gameRunnerList: GameRunner[];
616
- readonly seriesList: Series[];
617
- readonly seriesModeratorList: SeriesModerator[];
618
- readonly boostAvailableTokens?: number;
619
- readonly boostNextTokenDate: number;
620
- readonly boostNextTokenAmount: number;
621
- readonly userFollowerList: UserFollower[];
622
- readonly enabledExperimentIds: string[];
623
- readonly challengeModeratorList: ChallengeModerator[];
599
+ signedIn: boolean;
600
+ showAds: boolean;
601
+ user?: User;
602
+ theme?: Theme;
603
+ powerLevel: Enums.SitePowerLevel;
604
+ dateFormat: Enums.DateFormat;
605
+ timeFormat: Enums.TimeFormat;
606
+ timeReference: Enums.TimeReference;
607
+ timeUnits: Enums.TimeDisplayUnits;
608
+ homepageStream: Enums.HomepageStreamType;
609
+ disableThemes: boolean;
610
+ csrfToken: string;
611
+ networkToken?: string;
612
+ gameList: Game[];
613
+ gameFollowerList: GameFollower[];
614
+ gameModeratorList: GameModerator[];
615
+ gameRunnerList: GameRunner[];
616
+ seriesList: Series[];
617
+ seriesModeratorList: SeriesModerator[];
618
+ boostAvailableTokens?: number;
619
+ boostNextTokenDate: number;
620
+ boostNextTokenAmount: number;
621
+ userFollowerList: UserFollower[];
622
+ enabledExperimentIds: string[];
623
+ challengeModeratorList: ChallengeModerator[];
624
624
  }
625
625
  export interface Conversation {
626
- readonly id: string;
627
- readonly participantUserIds: string[];
628
- readonly lastMessageId: string;
629
- readonly lastMessageUser: string;
630
- readonly lastMessageText: string;
631
- readonly lastMessageDate: number;
632
- readonly readDate: number;
626
+ id: string;
627
+ participantUserIds: string[];
628
+ lastMessageId: string;
629
+ lastMessageUser: string;
630
+ lastMessageText: string;
631
+ lastMessageDate: number;
632
+ readDate: number;
633
633
  }
634
634
  export interface ConversationLightweight {
635
- readonly id: string;
635
+ id: string;
636
636
  /**TODO check if empty */
637
- readonly participantUserIds: string[];
638
- readonly lastMessageId: string;
639
- readonly lastMessageDate: number;
637
+ participantUserIds: string[];
638
+ lastMessageId: string;
639
+ lastMessageDate: number;
640
640
  }
641
641
  export interface ConversationParticipant {
642
- readonly conversationId: string;
643
- readonly userId: string;
644
- readonly joinedDate: number;
642
+ conversationId: string;
643
+ userId: string;
644
+ joinedDate: number;
645
645
  /**TODO check if optional*/
646
- readonly leftDate: number;
646
+ leftDate: number;
647
647
  }
648
648
  export interface ConversationMessage {
649
- readonly id: string;
650
- readonly conversationId: string;
651
- readonly userId: string;
652
- readonly text: string;
653
- readonly date: number;
649
+ id: string;
650
+ conversationId: string;
651
+ userId: string;
652
+ text: string;
653
+ date: number;
654
654
  }
655
655
  export interface SystemMessage {
656
- readonly id: string;
657
- readonly userId: string;
658
- readonly text: string;
659
- readonly date: number;
660
- readonly read: boolean;
656
+ id: string;
657
+ userId: string;
658
+ text: string;
659
+ date: number;
660
+ read: boolean;
661
661
  }
662
662
  /**
663
663
  * The basic data of a game.
@@ -666,106 +666,106 @@ export interface Game {
666
666
  /**
667
667
  * ID of the game.
668
668
  */
669
- readonly id: string;
669
+ id: string;
670
670
  /**
671
671
  * Name of the game.
672
672
  */
673
- readonly name: string;
673
+ name: string;
674
674
  /**
675
675
  * Page URL of the game.
676
676
  */
677
- readonly url: string;
677
+ url: string;
678
678
  /**
679
679
  * Unused enum that is always `1`. todo check if gameType is this
680
680
  */
681
- readonly type: 1;
681
+ type: 1;
682
682
  /**
683
683
  * Whether or not a game has Load Removed Time (LRT) as a timing method.
684
684
  */
685
- readonly loadtimes: boolean;
685
+ loadtimes: boolean;
686
686
  /**
687
687
  * Whether or not the game supports entering milliseconds when entering a time into a run.
688
688
  */
689
- readonly milliseconds: boolean;
689
+ milliseconds: boolean;
690
690
  /**
691
691
  * Whether or not a game has In Game Time (IGT) as a timing method.
692
692
  */
693
- readonly igt: boolean;
693
+ igt: boolean;
694
694
  /**
695
695
  * Whether or not runs require moderators to verify them.
696
696
  */
697
- readonly verification: boolean;
697
+ verification: boolean;
698
698
  /**
699
699
  * Whether or not the default option for 'Automatically Verify Run' is true.
700
700
  */
701
- readonly autoVerify?: boolean;
701
+ autoVerify?: boolean;
702
702
  /**
703
703
  * Whether or not videos are required for submission.
704
704
  */
705
- readonly requireVideo: boolean;
705
+ requireVideo: boolean;
706
706
  /**
707
707
  * Emulator allowability in a game.
708
708
  */
709
- readonly emulator: Enums.EmulatorType;
709
+ emulator: Enums.EmulatorType;
710
710
  /**
711
711
  * Default timing method of the game.
712
712
  */
713
- readonly defaultTimer: Enums.TimingMethod;
714
- readonly validTimers: Enums.TimingMethod[];
715
- readonly releaseDate?: number;
716
- readonly addedDate: number;
717
- readonly touchDate: number;
718
- readonly baseGameId?: string;
719
- readonly coverPath: string;
720
- readonly trophy1stPath?: string;
721
- readonly trophy2ndPath?: string;
722
- readonly trophy3rdPath?: string;
723
- readonly trophy4thPath?: string;
724
- readonly runCommentsMode: Enums.ItemPermissionType;
725
- readonly runCount: number;
726
- readonly activePlayerCount: number;
727
- readonly totalPlayerCount: number;
728
- readonly boostReceivedCount: number;
729
- readonly boostDistinctDonorsCount: number;
730
- readonly rules?: string;
731
- readonly viewPowerLevel: Enums.SitePowerLevel;
732
- readonly platformIds: string[];
733
- readonly regionIds: string[];
734
- readonly gameTypeIds: Enums.GameType[];
735
- readonly websiteUrl?: string;
736
- readonly discordUrl?: string;
737
- readonly defaultView: Enums.DefaultViewType;
738
- readonly guidePermissionType: Enums.ItemPermissionType;
739
- readonly resourcePermissionType: Enums.ItemPermissionType;
740
- readonly staticAssets: StaticAsset[];
741
- readonly embargoDate?: number;
742
- readonly embargoText?: string;
713
+ defaultTimer: Enums.TimingMethod;
714
+ validTimers: Enums.TimingMethod[];
715
+ releaseDate?: number;
716
+ addedDate: number;
717
+ touchDate: number;
718
+ baseGameId?: string;
719
+ coverPath: string;
720
+ trophy1stPath?: string;
721
+ trophy2ndPath?: string;
722
+ trophy3rdPath?: string;
723
+ trophy4thPath?: string;
724
+ runCommentsMode: Enums.ItemPermissionType;
725
+ runCount: number;
726
+ activePlayerCount: number;
727
+ totalPlayerCount: number;
728
+ boostReceivedCount: number;
729
+ boostDistinctDonorsCount: number;
730
+ rules?: string;
731
+ viewPowerLevel: Enums.SitePowerLevel;
732
+ platformIds: string[];
733
+ regionIds: string[];
734
+ gameTypeIds: Enums.GameType[];
735
+ websiteUrl?: string;
736
+ discordUrl?: string;
737
+ defaultView: Enums.DefaultViewType;
738
+ guidePermissionType: Enums.ItemPermissionType;
739
+ resourcePermissionType: Enums.ItemPermissionType;
740
+ staticAssets: StaticAsset[];
741
+ embargoDate?: number;
742
+ embargoText?: string;
743
743
  }
744
744
  export interface GameStats {
745
- readonly gameId: string;
746
- readonly totalRuns: number;
747
- readonly totalRunsFG: number;
748
- readonly totalRunsIL: number;
749
- readonly totalRunTime: number;
750
- readonly recentRuns: number;
751
- readonly recentRunsFG: number;
752
- readonly recentRunsIL: number;
753
- readonly totalPlayers: number;
754
- readonly activePlayers: number;
755
- readonly followers: number;
756
- readonly guides: number;
757
- readonly resources: number;
745
+ gameId: string;
746
+ totalRuns: number;
747
+ totalRunsFG: number;
748
+ totalRunsIL: number;
749
+ totalRunTime: number;
750
+ recentRuns: number;
751
+ recentRunsFG: number;
752
+ recentRunsIL: number;
753
+ totalPlayers: number;
754
+ activePlayers: number;
755
+ followers: number;
756
+ guides: number;
757
+ resources: number;
758
758
  }
759
759
  export interface GameNews {
760
- readonly id: string;
761
- readonly gameId: string;
762
- readonly userId: string;
763
- readonly title: string;
760
+ id: string;
761
+ gameId: string;
762
+ userId: string;
763
+ title: string;
764
764
  /**
765
765
  * Omitted for all but the first item in `GetGameSummary.newsList[]`.
766
766
  */
767
- readonly body?: string;
768
- readonly dateSubmitted: number;
767
+ body?: string;
768
+ dateSubmitted: number;
769
769
  }
770
770
  export interface GameModerator {
771
771
  gameId: string;
@@ -773,24 +773,24 @@ export interface GameModerator {
773
773
  level: Enums.GamePowerLevel;
774
774
  }
775
775
  export interface GameBoost {
776
- readonly id: string;
777
- readonly createdAt: number;
778
- readonly updatedAt: number;
779
- readonly gameId: string;
780
- readonly donorUserId: string;
781
- readonly anonymous: boolean;
782
- readonly recipientUserIds: [];
776
+ id: string;
777
+ createdAt: number;
778
+ updatedAt: number;
779
+ gameId: string;
780
+ donorUserId: string;
781
+ anonymous: boolean;
782
+ recipientUserIds: [];
783
783
  }
784
784
  export interface GameTypeDetails {
785
- readonly id: Enums.GameType;
786
- readonly name: string;
787
- readonly url: string;
788
- readonly description: string;
789
- readonly allowBaseGame: boolean;
785
+ id: Enums.GameType;
786
+ name: string;
787
+ url: string;
788
+ description: string;
789
+ allowBaseGame: boolean;
790
790
  }
791
791
  /**TODO: Check for optional properties*/
792
792
  export interface GameSettings {
793
- readonly id: string;
793
+ id: string;
794
794
  name: string;
795
795
  url: string;
796
796
  twitchName: string;
@@ -827,58 +827,58 @@ export interface GameSettings {
827
827
  staticAssetUpdates: StaticAssetUpdate[];
828
828
  }
829
829
  export interface GameModerationStats {
830
- readonly gameId: string;
830
+ gameId: string;
831
831
  /**enum? appears to always be 0*/
832
- readonly state: number;
833
- readonly count: number;
834
- readonly minDate?: number;
835
- readonly maxDate?: number;
832
+ state: number;
833
+ count: number;
834
+ minDate?: number;
835
+ maxDate?: number;
836
836
  }
837
837
  export interface GameFollower {
838
- readonly gameId: string;
839
- readonly followerId: string;
840
- readonly pos?: number;
841
- readonly accessCount: number;
842
- readonly lastAccessDate: number;
838
+ gameId: string;
839
+ followerId: string;
840
+ pos?: number;
841
+ accessCount: number;
842
+ lastAccessDate: number;
843
843
  }
844
844
  export interface GameRunner {
845
- readonly gameId: string;
846
- readonly userId: string;
847
- readonly runCount: number;
845
+ gameId: string;
846
+ userId: string;
847
+ runCount: number;
848
848
  }
849
849
  export interface NewLevel {
850
- readonly gameId: string;
850
+ gameId: string;
851
851
  name: string;
852
852
  rules?: string;
853
853
  archived: boolean;
854
854
  }
855
855
  export interface Level extends NewLevel {
856
- readonly id: string;
857
- readonly url: string;
858
- readonly pos: number;
856
+ id: string;
857
+ url: string;
858
+ pos: number;
859
859
  }
860
860
  export interface Notification {
861
- readonly id: string;
862
- readonly date: number;
863
- readonly title: string;
864
- readonly path: string;
865
- readonly read: boolean;
861
+ id: string;
862
+ date: number;
863
+ title: string;
864
+ path: string;
865
+ read: boolean;
866
866
  }
867
867
  export interface NotificationSetting {
868
- readonly type: number;
869
- readonly gameId?: string;
870
- readonly site: boolean;
871
- readonly email: boolean;
868
+ type: number;
869
+ gameId?: string;
870
+ site: boolean;
871
+ email: boolean;
872
872
  }
873
873
  /**A different type of notification are returned by `GetStaticData` than in other areas.*/
874
874
  export interface NotificationSettingStaticData {
875
- readonly id: number;
876
- readonly group: string;
877
- readonly title: string;
878
- readonly pos: number;
879
- readonly gameSpecific: boolean;
880
- readonly siteDefault: number;
881
- readonly emailDefault: boolean;
875
+ id: number;
876
+ group: string;
877
+ title: string;
878
+ pos: number;
879
+ gameSpecific: boolean;
880
+ siteDefault: number;
881
+ emailDefault: boolean;
882
882
  }
883
883
  export interface GameOrderGroup {
884
884
  id: string;
@@ -889,100 +889,100 @@ export interface GameOrderGroup {
889
889
  editing?: boolean;
890
890
  }
891
891
  export interface GameOrdering {
892
- readonly defaultGroups: GameOrderGroup[];
893
- readonly supporterGroups: GameOrderGroup[];
892
+ defaultGroups: GameOrderGroup[];
893
+ supporterGroups: GameOrderGroup[];
894
894
  }
895
895
  interface Run_Base {
896
896
  /**
897
897
  * Unique identification characters of a run.
898
898
  */
899
- readonly id: string;
899
+ id: string;
900
900
  /**
901
901
  * Unique identification characters of the run's game.
902
902
  */
903
- readonly gameId: string;
903
+ gameId: string;
904
904
  /**
905
905
  * 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.
906
906
  */
907
- readonly time?: number;
907
+ time?: number;
908
908
  /**
909
909
  * 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.
910
910
  */
911
- readonly timeWithLoads?: number;
911
+ timeWithLoads?: number;
912
912
  /**
913
913
  * In Game Time* of the run, in seconds.
914
914
  */
915
- readonly igt?: number;
915
+ igt?: number;
916
916
  /**
917
917
  * Unique identification characters of a platform. Platforms can be accessed with `GetPlatformList`.
918
918
  */
919
- readonly platformId?: string;
919
+ platformId?: string;
920
920
  /**
921
921
  * Whether or not an emulator was used in the run.
922
922
  */
923
- readonly emulator: boolean;
923
+ emulator: boolean;
924
924
  /**
925
925
  * Unique identification characters of a region. Found in older games that vary based on regions.
926
926
  */
927
- readonly regionId?: string;
927
+ regionId?: string;
928
928
  /**
929
929
  * Everything in the 'Video URL' box.
930
930
  */
931
- readonly video?: string;
931
+ video?: string;
932
932
  /**
933
933
  * Description of a run.
934
934
  */
935
- readonly comment?: string;
935
+ comment?: string;
936
936
  /**
937
937
  * Unique user identification of the run submitter. Absent if the submitter is deleted.
938
938
  */
939
- readonly submittedById?: string;
939
+ submittedById?: string;
940
940
  /**
941
941
  * A run's verification status.
942
942
  */
943
- readonly verified: Enums.RunStatus;
943
+ verified: Enums.RunStatus;
944
944
  /**
945
945
  * Unique user identification characters of the run resolver.
946
946
  *
947
947
  * Absent if the resolver is deleted.
948
948
  */
949
- readonly verifiedById?: string;
949
+ verifiedById?: string;
950
950
  /**
951
951
  * Run rejection reason if it was rejected.
952
952
  */
953
- readonly reason?: string;
953
+ reason?: string;
954
954
  /**
955
955
  * UNIX timestamp of a run's (changeable) date.
956
956
  */
957
- readonly date: number;
957
+ date: number;
958
958
  /**
959
959
  * UNIX timestamp of when the run was submitted.
960
960
  */
961
- readonly dateSubmitted?: number;
961
+ dateSubmitted?: number;
962
962
  /**
963
963
  * UNIX timestamp of when the run was resolved.
964
964
  */
965
- readonly dateVerified?: number;
965
+ dateVerified?: number;
966
966
  /**
967
967
  * Whether the run is obsolete or not - absent when false.
968
968
  */
969
- readonly obsolete?: boolean;
969
+ obsolete?: boolean;
970
970
  /**
971
971
  * Leaderboard rank of the run. Absent when obsolete.
972
972
  */
973
- readonly place?: number;
973
+ place?: number;
974
974
  /**
975
975
  * Unique identification characters of players in the run.
976
976
  */
977
- readonly playerIds: string[];
977
+ playerIds: string[];
978
978
  /**
979
979
  * Unused property that used to store reports of bad data for a run.
980
980
  */
981
- readonly issues: null;
981
+ issues: null;
982
982
  /**
983
983
  * Availibility and 'status' of the video of a run.
984
984
  */
985
- readonly videoState: Enums.VideoState;
985
+ videoState: Enums.VideoState;
986
986
  }
987
987
  /**
988
988
  * A game speedrun's public data.
@@ -991,30 +991,30 @@ export interface GameRun extends Run_Base {
991
991
  /**
992
992
  * Unique identification characters of the run's category.
993
993
  */
994
- readonly categoryId: string;
994
+ categoryId: string;
995
995
  /**
996
996
  * Unique identification characters of the run's level, if the run is on an individual level (IL).
997
997
  */
998
- readonly levelId?: string;
998
+ levelId?: string;
999
999
  /**
1000
1000
  * Whether the run has *splits.io* splits. Splits.io has been shut down; this is `false` on all new runs.
1001
1001
  */
1002
- readonly hasSplits: boolean;
1002
+ hasSplits: boolean;
1003
1003
  /**
1004
1004
  * Unique identification characters of values (subcategories and annotations) in the run.
1005
1005
  */
1006
- readonly valueIds: string[];
1006
+ valueIds: string[];
1007
1007
  /**
1008
1008
  * Whether or not the run's category or subcategories were archived - absent when false.
1009
1009
  */
1010
- readonly orphaned?: boolean;
1010
+ orphaned?: boolean;
1011
1011
  }
1012
1012
  export interface ChallengeRun extends Run_Base {
1013
- readonly challengeId: string;
1014
- readonly screened: boolean;
1015
- readonly screenedById?: string;
1016
- readonly dateScreened?: number;
1017
- readonly commentsCount: number;
1013
+ challengeId: string;
1014
+ screened: boolean;
1015
+ screenedById?: string;
1016
+ dateScreened?: number;
1017
+ commentsCount: number;
1018
1018
  }
1019
1019
  export interface ModerationRun extends GameRun {
1020
1020
  /**
@@ -1022,7 +1022,7 @@ export interface ModerationRun extends GameRun {
1022
1022
  *
1023
1023
  * Missing when false.
1024
1024
  */
1025
- readonly estimated?: true;
1025
+ estimated?: true;
1026
1026
  }
1027
1027
  export interface RunTime {
1028
1028
  hour: number;
@@ -1034,7 +1034,7 @@ export interface RunSettings {
1034
1034
  /**
1035
1035
  * Omitted when submitting a new run.
1036
1036
  */
1037
- readonly runId?: string;
1037
+ runId?: string;
1038
1038
  gameId: string;
1039
1039
  categoryId: string;
1040
1040
  playerNames: string[];
@@ -1052,18 +1052,18 @@ export interface RunSettings {
1052
1052
  values?: VariableValue[];
1053
1053
  }
1054
1054
  export interface Series {
1055
- readonly id: string;
1056
- readonly name: string;
1057
- readonly url: string;
1058
- readonly addedDate: number;
1059
- readonly touchDate: number;
1060
- readonly websiteUrl?: string;
1061
- readonly discordUrl?: string;
1062
- readonly runCount: number;
1063
- readonly activePlayerCount: number;
1064
- readonly totalPlayerCount: number;
1065
- readonly officialGameCount: number;
1066
- readonly staticAssets: StaticAsset[];
1055
+ id: string;
1056
+ name: string;
1057
+ url: string;
1058
+ addedDate: number;
1059
+ touchDate: number;
1060
+ websiteUrl?: string;
1061
+ discordUrl?: string;
1062
+ runCount: number;
1063
+ activePlayerCount: number;
1064
+ totalPlayerCount: number;
1065
+ officialGameCount: number;
1066
+ staticAssets: StaticAsset[];
1067
1067
  }
1068
1068
  export interface SeriesModerator {
1069
1069
  seriesId: string;
@@ -1090,43 +1090,43 @@ export interface StaticAssetUpdate {
1090
1090
  deleteContent?: boolean;
1091
1091
  }
1092
1092
  export interface SupporterCredit {
1093
- readonly id: string;
1094
- readonly userId: string;
1095
- readonly providerId: number;
1096
- readonly createdAt: number;
1097
- readonly updatedAt: number;
1098
- readonly creditType: number;
1099
- readonly amount: number;
1100
- readonly currency: string;
1101
- readonly receivedAt: number;
1102
- readonly subscriptionId: string;
1103
- readonly periodStartsAt: number;
1104
- readonly periodEndsAt: number;
1105
- readonly providerItemId: string;
1093
+ id: string;
1094
+ userId: string;
1095
+ providerId: number;
1096
+ createdAt: number;
1097
+ updatedAt: number;
1098
+ creditType: number;
1099
+ amount: number;
1100
+ currency: string;
1101
+ receivedAt: number;
1102
+ subscriptionId: string;
1103
+ periodStartsAt: number;
1104
+ periodEndsAt: number;
1105
+ providerItemId: string;
1106
1106
  }
1107
1107
  export interface SupporterCode {
1108
- readonly id: string;
1109
- readonly code: string;
1110
- readonly description: string;
1111
- readonly duration: number;
1112
- readonly userId: string;
1113
- readonly createdAt: number;
1114
- readonly updatedAt: number;
1108
+ id: string;
1109
+ code: string;
1110
+ description: string;
1111
+ duration: number;
1112
+ userId: string;
1113
+ createdAt: number;
1114
+ updatedAt: number;
1115
1115
  }
1116
1116
  export interface SupporterSubscription {
1117
- readonly id: string;
1118
- readonly userId: string;
1119
- readonly providerId: number;
1120
- readonly createdAt: number;
1121
- readonly updatedAt: number;
1122
- readonly expiresAt: number;
1123
- readonly planId: number;
1124
- readonly nextPeriodPlanId: number;
1125
- readonly status: number;
1117
+ id: string;
1118
+ userId: string;
1119
+ providerId: number;
1120
+ createdAt: number;
1121
+ updatedAt: number;
1122
+ expiresAt: number;
1123
+ planId: number;
1124
+ nextPeriodPlanId: number;
1125
+ status: number;
1126
1126
  /**Default 0, undocumented but assume timestamp otherwise TODO*/
1127
- readonly trialEndsAt: number;
1128
- readonly cancelAtPeriodEnd: boolean;
1129
- readonly canceledAt: number;
1127
+ trialEndsAt: number;
1128
+ cancelAtPeriodEnd: boolean;
1129
+ canceledAt: number;
1130
1130
  }
1131
1131
  export interface Theme {
1132
1132
  id: string;