rhythia-api 233.0.0 → 235.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/.codex +0 -0
  2. package/.env +1 -12
  3. package/README.md +4 -4
  4. package/api/acceptInvite.ts +1 -1
  5. package/api/addCollectionMap.ts +1 -1
  6. package/api/chartPublicStats.ts +1 -1
  7. package/api/checkQualified.ts +93 -93
  8. package/api/createBeatmap.ts +53 -62
  9. package/api/createBeatmapPage.ts +1 -1
  10. package/api/createClan.ts +1 -1
  11. package/api/createCollection.ts +1 -1
  12. package/api/createInvite.ts +1 -1
  13. package/api/createSupporter.ts +1 -1
  14. package/api/deleteBeatmapPage.ts +2 -5
  15. package/api/deleteCollection.ts +1 -1
  16. package/api/deleteCollectionMap.ts +1 -1
  17. package/api/editAboutMe.ts +1 -1
  18. package/api/editClan.ts +1 -1
  19. package/api/editCollection.ts +1 -2
  20. package/api/editProfile.ts +1 -1
  21. package/api/enhancedSearch.ts +113 -113
  22. package/api/executeAdminOperation.ts +1 -22
  23. package/api/getAvatarUploadUrl.ts +1 -1
  24. package/api/getBadgeLeaders.ts +1 -1
  25. package/api/getBadgedUsers.ts +1 -1
  26. package/api/getBeatmapComments.ts +1 -1
  27. package/api/getBeatmapPage.ts +74 -106
  28. package/api/getBeatmapPageById.ts +70 -109
  29. package/api/getBeatmapStarRating.ts +1 -1
  30. package/api/getBeatmaps.ts +123 -93
  31. package/api/getClan.ts +1 -1
  32. package/api/getClans.ts +1 -1
  33. package/api/getCollection.ts +1 -1
  34. package/api/getCollections.ts +1 -1
  35. package/api/getInventory.ts +1 -1
  36. package/api/getLeaderboard.ts +1 -1
  37. package/api/getMapUploadUrl.ts +2 -2
  38. package/api/getOnlinePlayers.ts +1 -1
  39. package/api/getPassToken.ts +1 -1
  40. package/api/getProfile.ts +51 -31
  41. package/api/getPublicStats.ts +5 -5
  42. package/api/getRawStarRating.ts +1 -1
  43. package/api/getScore.ts +1 -1
  44. package/api/getStoryBeatmaps.ts +1 -1
  45. package/api/getTimestamp.ts +1 -1
  46. package/api/getUserScores.ts +19 -19
  47. package/api/getVerified.ts +1 -1
  48. package/api/getVideoUploadUrl.ts +1 -1
  49. package/api/postBeatmapComment.ts +1 -1
  50. package/api/qualifyMap.ts +97 -92
  51. package/api/rankMapsArchive.ts +20 -20
  52. package/api/searchUsers.ts +1 -1
  53. package/api/setPasskey.ts +1 -1
  54. package/api/submitScore.ts +1 -6
  55. package/api/submitScoreInternal.ts +461 -449
  56. package/api/updateBeatmapPage.ts +1 -1
  57. package/api/vetoMap.ts +101 -101
  58. package/index.ts +180 -167
  59. package/package.json +7 -12
  60. package/queries/admin_delete_user.sql +39 -39
  61. package/queries/admin_exclude_user.sql +21 -21
  62. package/queries/admin_invalidate_ranked_scores.sql +18 -18
  63. package/queries/admin_log_action.sql +10 -10
  64. package/queries/admin_profanity_clear.sql +29 -29
  65. package/queries/admin_remove_all_scores.sql +29 -29
  66. package/queries/admin_restrict_user.sql +21 -21
  67. package/queries/admin_search_users.sql +24 -24
  68. package/queries/admin_silence_user.sql +21 -21
  69. package/queries/admin_unban_user.sql +21 -21
  70. package/queries/enhanced_search.sql +217 -217
  71. package/queries/get_badge_leaderboard.sql +50 -50
  72. package/queries/get_clan_leaderboard.sql +68 -68
  73. package/queries/get_collections_v4.sql +109 -109
  74. package/queries/get_top_scores_for_beatmap.sql +44 -44
  75. package/queries/get_top_scores_for_beatmap3.sql +38 -0
  76. package/queries/get_user_by_email.sql +32 -32
  77. package/queries/get_user_scores_lastday.sql +47 -47
  78. package/queries/get_user_scores_reign.sql +31 -31
  79. package/queries/get_user_scores_top_and_stats.sql +84 -84
  80. package/queries/grant_special_badges.sql +69 -69
  81. package/types/database.ts +1288 -1248
  82. package/utils/beatmapTopScores.ts +84 -0
  83. package/utils/mapLifecycleWebhook.ts +287 -277
  84. package/utils/requestGeo.ts +13 -0
  85. package/utils/requestUtils.ts +127 -127
  86. package/utils/response.ts +11 -0
  87. package/worker.ts +189 -0
  88. package/wrangler.jsonc +10 -0
  89. package/index.html +0 -3
  90. package/vercel.json +0 -13
package/types/database.ts CHANGED
@@ -1,1248 +1,1288 @@
1
- export type Json =
2
- | string
3
- | number
4
- | boolean
5
- | null
6
- | { [key: string]: Json | undefined }
7
- | Json[]
8
-
9
- export type Database = {
10
- // Allows to automatically instantiate createClient with right options
11
- // instead of createClient<Database, { PostgrestVersion: 'XX' }>(URL, KEY)
12
- __InternalSupabase: {
13
- PostgrestVersion: "13.0.4"
14
- }
15
- public: {
16
- Tables: {
17
- admin_actions: {
18
- Row: {
19
- action_type: string
20
- admin_id: number
21
- created_at: string | null
22
- details: Json | null
23
- id: number
24
- target_id: number | null
25
- }
26
- Insert: {
27
- action_type: string
28
- admin_id: number
29
- created_at?: string | null
30
- details?: Json | null
31
- id?: number
32
- target_id?: number | null
33
- }
34
- Update: {
35
- action_type?: string
36
- admin_id?: number
37
- created_at?: string | null
38
- details?: Json | null
39
- id?: number
40
- target_id?: number | null
41
- }
42
- Relationships: []
43
- }
44
- admin_operations: {
45
- Row: {
46
- action_type: string | null
47
- details: Json
48
- id: number
49
- target_id: string | null
50
- }
51
- Insert: {
52
- action_type?: string | null
53
- details: Json
54
- id?: number
55
- target_id?: string | null
56
- }
57
- Update: {
58
- action_type?: string | null
59
- details?: Json
60
- id?: number
61
- target_id?: string | null
62
- }
63
- Relationships: [
64
- {
65
- foreignKeyName: "admin_operations_id_fkey"
66
- columns: ["id"]
67
- isOneToOne: true
68
- referencedRelation: "profiles"
69
- referencedColumns: ["id"]
70
- },
71
- ]
72
- }
73
- beatmapCollections: {
74
- Row: {
75
- created_at: string
76
- description: string
77
- id: number
78
- is_list: boolean
79
- owner: number
80
- title: string
81
- }
82
- Insert: {
83
- created_at?: string
84
- description: string
85
- id?: number
86
- is_list?: boolean
87
- owner: number
88
- title: string
89
- }
90
- Update: {
91
- created_at?: string
92
- description?: string
93
- id?: number
94
- is_list?: boolean
95
- owner?: number
96
- title?: string
97
- }
98
- Relationships: [
99
- {
100
- foreignKeyName: "beatmapCollections_owner_fkey"
101
- columns: ["owner"]
102
- isOneToOne: false
103
- referencedRelation: "profiles"
104
- referencedColumns: ["id"]
105
- },
106
- ]
107
- }
108
- beatmapPageComments: {
109
- Row: {
110
- beatmapPage: number
111
- content: string | null
112
- created_at: string
113
- id: number
114
- owner: number
115
- }
116
- Insert: {
117
- beatmapPage: number
118
- content?: string | null
119
- created_at?: string
120
- id?: number
121
- owner: number
122
- }
123
- Update: {
124
- beatmapPage?: number
125
- content?: string | null
126
- created_at?: string
127
- id?: number
128
- owner?: number
129
- }
130
- Relationships: [
131
- {
132
- foreignKeyName: "beatmapPageComments_beatmapPage_fkey"
133
- columns: ["beatmapPage"]
134
- isOneToOne: false
135
- referencedRelation: "beatmapPages"
136
- referencedColumns: ["id"]
137
- },
138
- {
139
- foreignKeyName: "beatmapPageComments_owner_fkey"
140
- columns: ["owner"]
141
- isOneToOne: false
142
- referencedRelation: "profiles"
143
- referencedColumns: ["id"]
144
- },
145
- ]
146
- }
147
- beatmapPages: {
148
- Row: {
149
- created_at: string
150
- description: string
151
- genre: string | null
152
- id: number
153
- latestBeatmapHash: string | null
154
- nominations: Json | null
155
- owner: number | null
156
- qualified: boolean
157
- qualifiedAt: string | null
158
- ranked_at: number
159
- status: string | null
160
- tags: string
161
- title: string | null
162
- updated_at: number | null
163
- video_url: string | null
164
- }
165
- Insert: {
166
- created_at?: string
167
- description?: string
168
- genre?: string | null
169
- id?: number
170
- latestBeatmapHash?: string | null
171
- nominations?: Json | null
172
- owner?: number | null
173
- qualified?: boolean
174
- qualifiedAt?: string | null
175
- ranked_at?: number
176
- status?: string | null
177
- tags?: string
178
- title?: string | null
179
- updated_at?: number | null
180
- video_url?: string | null
181
- }
182
- Update: {
183
- created_at?: string
184
- description?: string
185
- genre?: string | null
186
- id?: number
187
- latestBeatmapHash?: string | null
188
- nominations?: Json | null
189
- owner?: number | null
190
- qualified?: boolean
191
- qualifiedAt?: string | null
192
- ranked_at?: number
193
- status?: string | null
194
- tags?: string
195
- title?: string | null
196
- updated_at?: number | null
197
- video_url?: string | null
198
- }
199
- Relationships: [
200
- {
201
- foreignKeyName: "beatmapPages_latestBeatmapHash_fkey"
202
- columns: ["latestBeatmapHash"]
203
- isOneToOne: false
204
- referencedRelation: "beatmaps"
205
- referencedColumns: ["beatmapHash"]
206
- },
207
- {
208
- foreignKeyName: "beatmapPages_owner_fkey"
209
- columns: ["owner"]
210
- isOneToOne: false
211
- referencedRelation: "profiles"
212
- referencedColumns: ["id"]
213
- },
214
- ]
215
- }
216
- beatmaps: {
217
- Row: {
218
- beatmapFile: string | null
219
- beatmapHash: string
220
- created_at: string
221
- difficulty: number | null
222
- image: string | null
223
- imageLarge: string | null
224
- length: number | null
225
- noteCount: number | null
226
- playcount: number | null
227
- ranked: boolean | null
228
- starRating: number | null
229
- title: string | null
230
- }
231
- Insert: {
232
- beatmapFile?: string | null
233
- beatmapHash: string
234
- created_at?: string
235
- difficulty?: number | null
236
- image?: string | null
237
- imageLarge?: string | null
238
- length?: number | null
239
- noteCount?: number | null
240
- playcount?: number | null
241
- ranked?: boolean | null
242
- starRating?: number | null
243
- title?: string | null
244
- }
245
- Update: {
246
- beatmapFile?: string | null
247
- beatmapHash?: string
248
- created_at?: string
249
- difficulty?: number | null
250
- image?: string | null
251
- imageLarge?: string | null
252
- length?: number | null
253
- noteCount?: number | null
254
- playcount?: number | null
255
- ranked?: boolean | null
256
- starRating?: number | null
257
- title?: string | null
258
- }
259
- Relationships: []
260
- }
261
- cache: {
262
- Row: {
263
- key: string
264
- value: Json
265
- }
266
- Insert: {
267
- key: string
268
- value: Json
269
- }
270
- Update: {
271
- key?: string
272
- value?: Json
273
- }
274
- Relationships: []
275
- }
276
- chartedValues: {
277
- Row: {
278
- created_at: string
279
- id: number
280
- type: string | null
281
- value: number | null
282
- }
283
- Insert: {
284
- created_at?: string
285
- id?: number
286
- type?: string | null
287
- value?: number | null
288
- }
289
- Update: {
290
- created_at?: string
291
- id?: number
292
- type?: string | null
293
- value?: number | null
294
- }
295
- Relationships: []
296
- }
297
- clans: {
298
- Row: {
299
- acronym: string | null
300
- allowed_users: Json
301
- avatar_url: string | null
302
- created_at: string
303
- description: string | null
304
- id: number
305
- name: string
306
- owner: number | null
307
- }
308
- Insert: {
309
- acronym?: string | null
310
- allowed_users?: Json
311
- avatar_url?: string | null
312
- created_at?: string
313
- description?: string | null
314
- id?: number
315
- name?: string
316
- owner?: number | null
317
- }
318
- Update: {
319
- acronym?: string | null
320
- allowed_users?: Json
321
- avatar_url?: string | null
322
- created_at?: string
323
- description?: string | null
324
- id?: number
325
- name?: string
326
- owner?: number | null
327
- }
328
- Relationships: [
329
- {
330
- foreignKeyName: "clans_owner_fkey"
331
- columns: ["owner"]
332
- isOneToOne: false
333
- referencedRelation: "profiles"
334
- referencedColumns: ["id"]
335
- },
336
- ]
337
- }
338
- collectionRelations: {
339
- Row: {
340
- beatmapPage: number | null
341
- collection: number
342
- created_at: string
343
- id: number
344
- sort: number
345
- }
346
- Insert: {
347
- beatmapPage?: number | null
348
- collection: number
349
- created_at?: string
350
- id?: number
351
- sort?: number
352
- }
353
- Update: {
354
- beatmapPage?: number | null
355
- collection?: number
356
- created_at?: string
357
- id?: number
358
- sort?: number
359
- }
360
- Relationships: [
361
- {
362
- foreignKeyName: "collectionRelations_beatmapPage_fkey"
363
- columns: ["beatmapPage"]
364
- isOneToOne: false
365
- referencedRelation: "beatmapPages"
366
- referencedColumns: ["id"]
367
- },
368
- {
369
- foreignKeyName: "collectionRelations_collection_fkey"
370
- columns: ["collection"]
371
- isOneToOne: false
372
- referencedRelation: "beatmapCollections"
373
- referencedColumns: ["id"]
374
- },
375
- ]
376
- }
377
- discordWebhooks: {
378
- Row: {
379
- id: number
380
- type: Database["public"]["Enums"]["discordWebhookType"] | null
381
- webhook_link: string
382
- }
383
- Insert: {
384
- id?: number
385
- type?: Database["public"]["Enums"]["discordWebhookType"] | null
386
- webhook_link?: string
387
- }
388
- Update: {
389
- id?: number
390
- type?: Database["public"]["Enums"]["discordWebhookType"] | null
391
- webhook_link?: string
392
- }
393
- Relationships: []
394
- }
395
- inventories: {
396
- Row: {
397
- contents: Json
398
- id: number
399
- }
400
- Insert: {
401
- contents?: Json
402
- id?: number
403
- }
404
- Update: {
405
- contents?: Json
406
- id?: number
407
- }
408
- Relationships: [
409
- {
410
- foreignKeyName: "inventory_id_fkey"
411
- columns: ["id"]
412
- isOneToOne: true
413
- referencedRelation: "profiles"
414
- referencedColumns: ["id"]
415
- },
416
- ]
417
- }
418
- invites: {
419
- Row: {
420
- code: string
421
- created_at: string
422
- id: number
423
- resourceId: string
424
- type: string
425
- used: boolean
426
- }
427
- Insert: {
428
- code: string
429
- created_at?: string
430
- id?: number
431
- resourceId: string
432
- type: string
433
- used?: boolean
434
- }
435
- Update: {
436
- code?: string
437
- created_at?: string
438
- id?: number
439
- resourceId?: string
440
- type?: string
441
- used?: boolean
442
- }
443
- Relationships: []
444
- }
445
- levers: {
446
- Row: {
447
- disable_scores: boolean
448
- id: number
449
- }
450
- Insert: {
451
- disable_scores?: boolean
452
- id?: number
453
- }
454
- Update: {
455
- disable_scores?: boolean
456
- id?: number
457
- }
458
- Relationships: []
459
- }
460
- passkeys: {
461
- Row: {
462
- email: string
463
- id: number
464
- passkey: string
465
- }
466
- Insert: {
467
- email: string
468
- id: number
469
- passkey: string
470
- }
471
- Update: {
472
- email?: string
473
- id?: number
474
- passkey?: string
475
- }
476
- Relationships: [
477
- {
478
- foreignKeyName: "passkeys_id_fkey"
479
- columns: ["id"]
480
- isOneToOne: true
481
- referencedRelation: "profiles"
482
- referencedColumns: ["id"]
483
- },
484
- ]
485
- }
486
- profileActivities: {
487
- Row: {
488
- last_activity: number | null
489
- uid: string
490
- }
491
- Insert: {
492
- last_activity?: number | null
493
- uid: string
494
- }
495
- Update: {
496
- last_activity?: number | null
497
- uid?: string
498
- }
499
- Relationships: []
500
- }
501
- profiles: {
502
- Row: {
503
- about_me: string | null
504
- avatar_url: string | null
505
- badges: Json | null
506
- ban: Database["public"]["Enums"]["banTypes"] | null
507
- bannedAt: number | null
508
- clan: number | null
509
- computedUsername: string | null
510
- created_at: number | null
511
- flag: string | null
512
- id: number
513
- mu_rank: number
514
- play_count: number | null
515
- profile_image: string | null
516
- sigma_rank: number | null
517
- skill_points: number | null
518
- spin_skill_points: number
519
- squares_hit: number | null
520
- total_score: number | null
521
- uid: string | null
522
- username: string | null
523
- verificationDeadline: number
524
- verified: boolean | null
525
- }
526
- Insert: {
527
- about_me?: string | null
528
- avatar_url?: string | null
529
- badges?: Json | null
530
- ban?: Database["public"]["Enums"]["banTypes"] | null
531
- bannedAt?: number | null
532
- clan?: number | null
533
- computedUsername?: string | null
534
- created_at?: number | null
535
- flag?: string | null
536
- id?: number
537
- mu_rank?: number
538
- play_count?: number | null
539
- profile_image?: string | null
540
- sigma_rank?: number | null
541
- skill_points?: number | null
542
- spin_skill_points?: number
543
- squares_hit?: number | null
544
- total_score?: number | null
545
- uid?: string | null
546
- username?: string | null
547
- verificationDeadline?: number
548
- verified?: boolean | null
549
- }
550
- Update: {
551
- about_me?: string | null
552
- avatar_url?: string | null
553
- badges?: Json | null
554
- ban?: Database["public"]["Enums"]["banTypes"] | null
555
- bannedAt?: number | null
556
- clan?: number | null
557
- computedUsername?: string | null
558
- created_at?: number | null
559
- flag?: string | null
560
- id?: number
561
- mu_rank?: number
562
- play_count?: number | null
563
- profile_image?: string | null
564
- sigma_rank?: number | null
565
- skill_points?: number | null
566
- spin_skill_points?: number
567
- squares_hit?: number | null
568
- total_score?: number | null
569
- uid?: string | null
570
- username?: string | null
571
- verificationDeadline?: number
572
- verified?: boolean | null
573
- }
574
- Relationships: [
575
- {
576
- foreignKeyName: "profiles_clan_fkey"
577
- columns: ["clan"]
578
- isOneToOne: false
579
- referencedRelation: "clans"
580
- referencedColumns: ["id"]
581
- },
582
- ]
583
- }
584
- scores: {
585
- Row: {
586
- additional_data: Json
587
- awarded_sp: number | null
588
- beatmapHash: string | null
589
- created_at: string
590
- id: number
591
- misses: number | null
592
- mods: Json
593
- passed: boolean | null
594
- replay_url: string | null
595
- replayHwid: string | null
596
- songId: string | null
597
- speed: number | null
598
- spin: boolean
599
- token: number | null
600
- userId: number | null
601
- }
602
- Insert: {
603
- additional_data?: Json
604
- awarded_sp?: number | null
605
- beatmapHash?: string | null
606
- created_at?: string
607
- id?: number
608
- misses?: number | null
609
- mods?: Json
610
- passed?: boolean | null
611
- replay_url?: string | null
612
- replayHwid?: string | null
613
- songId?: string | null
614
- speed?: number | null
615
- spin?: boolean
616
- token?: number | null
617
- userId?: number | null
618
- }
619
- Update: {
620
- additional_data?: Json
621
- awarded_sp?: number | null
622
- beatmapHash?: string | null
623
- created_at?: string
624
- id?: number
625
- misses?: number | null
626
- mods?: Json
627
- passed?: boolean | null
628
- replay_url?: string | null
629
- replayHwid?: string | null
630
- songId?: string | null
631
- speed?: number | null
632
- spin?: boolean
633
- token?: number | null
634
- userId?: number | null
635
- }
636
- Relationships: [
637
- {
638
- foreignKeyName: "scores_beatmapHash_fkey"
639
- columns: ["beatmapHash"]
640
- isOneToOne: false
641
- referencedRelation: "beatmaps"
642
- referencedColumns: ["beatmapHash"]
643
- },
644
- {
645
- foreignKeyName: "scores_token_fkey"
646
- columns: ["token"]
647
- isOneToOne: false
648
- referencedRelation: "tokens"
649
- referencedColumns: ["id"]
650
- },
651
- {
652
- foreignKeyName: "scores_userId_fkey"
653
- columns: ["userId"]
654
- isOneToOne: false
655
- referencedRelation: "profiles"
656
- referencedColumns: ["id"]
657
- },
658
- ]
659
- }
660
- tokens: {
661
- Row: {
662
- created_at: string
663
- id: number
664
- processed: Json | null
665
- raw: string | null
666
- }
667
- Insert: {
668
- created_at?: string
669
- id?: number
670
- processed?: Json | null
671
- raw?: string | null
672
- }
673
- Update: {
674
- created_at?: string
675
- id?: number
676
- processed?: Json | null
677
- raw?: string | null
678
- }
679
- Relationships: []
680
- }
681
- vetos: {
682
- Row: {
683
- beatmapPage: number
684
- created_at: string
685
- id: number
686
- user: number
687
- veto_reason: string
688
- }
689
- Insert: {
690
- beatmapPage: number
691
- created_at?: string
692
- id?: number
693
- user: number
694
- veto_reason: string
695
- }
696
- Update: {
697
- beatmapPage?: number
698
- created_at?: string
699
- id?: number
700
- user?: number
701
- veto_reason?: string
702
- }
703
- Relationships: [
704
- {
705
- foreignKeyName: "vetos_beatmapPage_fkey"
706
- columns: ["beatmapPage"]
707
- isOneToOne: false
708
- referencedRelation: "beatmapPages"
709
- referencedColumns: ["id"]
710
- },
711
- {
712
- foreignKeyName: "vetos_user_fkey"
713
- columns: ["user"]
714
- isOneToOne: false
715
- referencedRelation: "profiles"
716
- referencedColumns: ["id"]
717
- },
718
- ]
719
- }
720
- }
721
- Views: {
722
- [_ in never]: never
723
- }
724
- Functions: {
725
- admin_delete_user: { Args: { user_id: number }; Returns: boolean }
726
- admin_exclude_user: { Args: { user_id: number }; Returns: boolean }
727
- admin_invalidate_ranked_scores: {
728
- Args: { user_id: number }
729
- Returns: number
730
- }
731
- admin_log_action:
732
- | {
733
- Args: {
734
- action_type: string
735
- admin_id: number
736
- details?: Json
737
- target_id: number
738
- }
739
- Returns: undefined
740
- }
741
- | {
742
- Args: {
743
- action_type: string
744
- admin_id: number
745
- details?: Json
746
- target_id: string
747
- }
748
- Returns: undefined
749
- }
750
- admin_profanity_clear: { Args: { user_id: number }; Returns: boolean }
751
- admin_remove_all_scores: { Args: { user_id: number }; Returns: number }
752
- admin_restrict_user: { Args: { user_id: number }; Returns: boolean }
753
- admin_search_users: {
754
- Args: { search_text: string }
755
- Returns: {
756
- about_me: string | null
757
- avatar_url: string | null
758
- badges: Json | null
759
- ban: Database["public"]["Enums"]["banTypes"] | null
760
- bannedAt: number | null
761
- clan: number | null
762
- computedUsername: string | null
763
- created_at: number | null
764
- flag: string | null
765
- id: number
766
- mu_rank: number
767
- play_count: number | null
768
- profile_image: string | null
769
- sigma_rank: number | null
770
- skill_points: number | null
771
- spin_skill_points: number
772
- squares_hit: number | null
773
- total_score: number | null
774
- uid: string | null
775
- username: string | null
776
- verificationDeadline: number
777
- verified: boolean | null
778
- }[]
779
- SetofOptions: {
780
- from: "*"
781
- to: "profiles"
782
- isOneToOne: false
783
- isSetofReturn: true
784
- }
785
- }
786
- admin_silence_user: { Args: { user_id: number }; Returns: boolean }
787
- admin_unban_user: { Args: { user_id: number }; Returns: boolean }
788
- enhanced_search: {
789
- Args: { result_limit?: number; search_text: string }
790
- Returns: {
791
- beatmap_description: string | null
792
- beatmap_image: string | null
793
- beatmap_length: number | null
794
- beatmap_map_id: string | null
795
- beatmap_owner: number | null
796
- beatmap_owner_avatar: string | null
797
- beatmap_owner_username: string | null
798
- beatmap_page_id: number | null
799
- beatmap_star_rating: number | null
800
- beatmap_status: string | null
801
- beatmap_tags: string | null
802
- beatmap_title: string | null
803
- relevance: number | null
804
- result_type: string | null
805
- user_about_me: string | null
806
- user_avatar_url: string | null
807
- user_flag: string | null
808
- user_id: number | null
809
- user_username: string | null
810
- }[]
811
- }
812
- get_badge_leaderboard: {
813
- Args: { p_limit?: number }
814
- Returns: {
815
- avatar_url: string
816
- display_name: string
817
- id: number
818
- special_badge_count: number
819
- }[]
820
- }
821
- get_clan_leaderboard: {
822
- Args: { items_per_page?: number; page_number?: number }
823
- Returns: {
824
- acronym: string
825
- avatar_url: string
826
- description: string
827
- id: number
828
- member_count: number
829
- name: string
830
- total_pages: number
831
- total_skill_points: number
832
- }[]
833
- }
834
- get_collections_v1: {
835
- Args: { items_per_page?: number; page_number?: number }
836
- Returns: {
837
- beatmap_count: number
838
- created_at: string
839
- description: string
840
- id: number
841
- owner: number
842
- star1: number
843
- star10: number
844
- star11: number
845
- star12: number
846
- star13: number
847
- star14: number
848
- star15: number
849
- star16: number
850
- star17: number
851
- star18: number
852
- star2: number
853
- star3: number
854
- star4: number
855
- star5: number
856
- star6: number
857
- star7: number
858
- star8: number
859
- star9: number
860
- title: string
861
- total_pages: number
862
- }[]
863
- }
864
- get_collections_v2:
865
- | {
866
- Args: { items_per_page?: number; page_number?: number }
867
- Returns: {
868
- beatmap_count: number
869
- created_at: string
870
- description: string
871
- id: number
872
- owner: number
873
- owner_avatar_url: string
874
- owner_username: string
875
- star1: number
876
- star10: number
877
- star11: number
878
- star12: number
879
- star13: number
880
- star14: number
881
- star15: number
882
- star16: number
883
- star17: number
884
- star18: number
885
- star2: number
886
- star3: number
887
- star4: number
888
- star5: number
889
- star6: number
890
- star7: number
891
- star8: number
892
- star9: number
893
- title: string
894
- total_pages: number
895
- }[]
896
- }
897
- | {
898
- Args: {
899
- items_per_page?: number
900
- owner_filter?: number
901
- page_number?: number
902
- }
903
- Returns: {
904
- beatmap_count: number
905
- created_at: string
906
- description: string
907
- id: number
908
- owner: number
909
- owner_avatar_url: string
910
- owner_username: string
911
- star1: number
912
- star10: number
913
- star11: number
914
- star12: number
915
- star13: number
916
- star14: number
917
- star15: number
918
- star16: number
919
- star17: number
920
- star18: number
921
- star2: number
922
- star3: number
923
- star4: number
924
- star5: number
925
- star6: number
926
- star7: number
927
- star8: number
928
- star9: number
929
- title: string
930
- total_pages: number
931
- }[]
932
- }
933
- get_collections_v3: {
934
- Args: {
935
- items_per_page?: number
936
- owner_filter?: number
937
- page_number?: number
938
- }
939
- Returns: {
940
- beatmap_count: number
941
- created_at: string
942
- description: string
943
- id: number
944
- owner: number
945
- owner_avatar_url: string
946
- owner_username: string
947
- star1: number
948
- star10: number
949
- star11: number
950
- star12: number
951
- star13: number
952
- star14: number
953
- star15: number
954
- star16: number
955
- star17: number
956
- star18: number
957
- star2: number
958
- star3: number
959
- star4: number
960
- star5: number
961
- star6: number
962
- star7: number
963
- star8: number
964
- star9: number
965
- title: string
966
- total_pages: number
967
- }[]
968
- }
969
- get_collections_v4: {
970
- Args: {
971
- author_filter?: string
972
- items_per_page?: number
973
- min_beatmaps?: number
974
- owner_filter?: number
975
- page_number?: number
976
- search_query?: string
977
- }
978
- Returns: {
979
- beatmap_count: number
980
- created_at: string
981
- description: string
982
- id: number
983
- owner: number
984
- owner_avatar_url: string
985
- owner_username: string
986
- star1: number
987
- star10: number
988
- star11: number
989
- star12: number
990
- star13: number
991
- star14: number
992
- star15: number
993
- star16: number
994
- star17: number
995
- star18: number
996
- star2: number
997
- star3: number
998
- star4: number
999
- star5: number
1000
- star6: number
1001
- star7: number
1002
- star8: number
1003
- star9: number
1004
- title: string
1005
- total_pages: number
1006
- }[]
1007
- }
1008
- get_top_scores_for_beatmap: {
1009
- Args: { beatmap_hash: string }
1010
- Returns: {
1011
- accuracy: number
1012
- avatar_url: string
1013
- awarded_sp: number
1014
- created_at: string
1015
- id: number
1016
- misses: number
1017
- mods: Json
1018
- passed: boolean
1019
- replayhwid: string
1020
- songid: string
1021
- speed: number
1022
- spin: boolean
1023
- userid: number
1024
- username: string
1025
- }[]
1026
- }
1027
- get_top_scores_for_beatmap2: {
1028
- Args: { beatmap_hash: string }
1029
- Returns: {
1030
- accuracy: number
1031
- avatar_url: string
1032
- awarded_sp: number
1033
- created_at: string
1034
- id: number
1035
- misses: number
1036
- mods: Json
1037
- passed: boolean
1038
- replayhwid: string
1039
- songid: string
1040
- speed: number
1041
- spin: boolean
1042
- userid: number
1043
- username: string
1044
- }[]
1045
- }
1046
- get_user_activity: {
1047
- Args: { score_limit?: number; user_id: number }
1048
- Returns: Json
1049
- }
1050
- get_user_by_email: { Args: { email_address: string }; Returns: Json }
1051
- get_user_reigning_scores:
1052
- | {
1053
- Args: { userid: number }
1054
- Returns: {
1055
- awarded_sp: number
1056
- beatmaphash: string
1057
- created_at: string
1058
- id: number
1059
- misses: number
1060
- mods: Json
1061
- passed: boolean
1062
- replayhwid: string
1063
- songid: string
1064
- speed: number
1065
- spin: boolean
1066
- }[]
1067
- }
1068
- | {
1069
- Args: { page_size: number; userid: number }
1070
- Returns: {
1071
- awarded_sp: number
1072
- beatmaphash: string
1073
- beatmaptitle: string
1074
- created_at: string
1075
- difficulty: number
1076
- id: number
1077
- misses: number
1078
- mods: Json
1079
- notes: number
1080
- passed: boolean
1081
- replayhwid: string
1082
- songid: string
1083
- speed: number
1084
- spin: boolean
1085
- }[]
1086
- }
1087
- get_user_scores_lastday: {
1088
- Args: { limit_param: number; userid: number }
1089
- Returns: Json
1090
- }
1091
- get_user_scores_payload: {
1092
- Args: { limit_param: number; userid: number }
1093
- Returns: Json
1094
- }
1095
- get_user_scores_reign: { Args: { userid: number }; Returns: Json }
1096
- get_user_scores_summary: {
1097
- Args: { limit_param?: number; userid: number }
1098
- Returns: Json
1099
- }
1100
- get_user_scores_top_and_stats: {
1101
- Args: { limit_param: number; userid: number }
1102
- Returns: Json
1103
- }
1104
- grant_special_badges: {
1105
- Args: {
1106
- p_beatmap_id: number
1107
- p_passed?: boolean
1108
- p_spin?: boolean
1109
- p_user_id: number
1110
- }
1111
- Returns: Json
1112
- }
1113
- }
1114
- Enums: {
1115
- banTypes: "cool" | "silenced" | "restricted" | "excluded"
1116
- discordWebhookType: "maps" | "scores"
1117
- }
1118
- CompositeTypes: {
1119
- [_ in never]: never
1120
- }
1121
- }
1122
- }
1123
-
1124
- type DatabaseWithoutInternals = Omit<Database, "__InternalSupabase">
1125
-
1126
- type DefaultSchema = DatabaseWithoutInternals[Extract<keyof Database, "public">]
1127
-
1128
- export type Tables<
1129
- DefaultSchemaTableNameOrOptions extends
1130
- | keyof (DefaultSchema["Tables"] & DefaultSchema["Views"])
1131
- | { schema: keyof DatabaseWithoutInternals },
1132
- TableName extends DefaultSchemaTableNameOrOptions extends {
1133
- schema: keyof DatabaseWithoutInternals
1134
- }
1135
- ? keyof (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
1136
- DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])
1137
- : never = never,
1138
- > = DefaultSchemaTableNameOrOptions extends {
1139
- schema: keyof DatabaseWithoutInternals
1140
- }
1141
- ? (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
1142
- DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])[TableName] extends {
1143
- Row: infer R
1144
- }
1145
- ? R
1146
- : never
1147
- : DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema["Tables"] &
1148
- DefaultSchema["Views"])
1149
- ? (DefaultSchema["Tables"] &
1150
- DefaultSchema["Views"])[DefaultSchemaTableNameOrOptions] extends {
1151
- Row: infer R
1152
- }
1153
- ? R
1154
- : never
1155
- : never
1156
-
1157
- export type TablesInsert<
1158
- DefaultSchemaTableNameOrOptions extends
1159
- | keyof DefaultSchema["Tables"]
1160
- | { schema: keyof DatabaseWithoutInternals },
1161
- TableName extends DefaultSchemaTableNameOrOptions extends {
1162
- schema: keyof DatabaseWithoutInternals
1163
- }
1164
- ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
1165
- : never = never,
1166
- > = DefaultSchemaTableNameOrOptions extends {
1167
- schema: keyof DatabaseWithoutInternals
1168
- }
1169
- ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
1170
- Insert: infer I
1171
- }
1172
- ? I
1173
- : never
1174
- : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"]
1175
- ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
1176
- Insert: infer I
1177
- }
1178
- ? I
1179
- : never
1180
- : never
1181
-
1182
- export type TablesUpdate<
1183
- DefaultSchemaTableNameOrOptions extends
1184
- | keyof DefaultSchema["Tables"]
1185
- | { schema: keyof DatabaseWithoutInternals },
1186
- TableName extends DefaultSchemaTableNameOrOptions extends {
1187
- schema: keyof DatabaseWithoutInternals
1188
- }
1189
- ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
1190
- : never = never,
1191
- > = DefaultSchemaTableNameOrOptions extends {
1192
- schema: keyof DatabaseWithoutInternals
1193
- }
1194
- ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
1195
- Update: infer U
1196
- }
1197
- ? U
1198
- : never
1199
- : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"]
1200
- ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
1201
- Update: infer U
1202
- }
1203
- ? U
1204
- : never
1205
- : never
1206
-
1207
- export type Enums<
1208
- DefaultSchemaEnumNameOrOptions extends
1209
- | keyof DefaultSchema["Enums"]
1210
- | { schema: keyof DatabaseWithoutInternals },
1211
- EnumName extends DefaultSchemaEnumNameOrOptions extends {
1212
- schema: keyof DatabaseWithoutInternals
1213
- }
1214
- ? keyof DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"]
1215
- : never = never,
1216
- > = DefaultSchemaEnumNameOrOptions extends {
1217
- schema: keyof DatabaseWithoutInternals
1218
- }
1219
- ? DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName]
1220
- : DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"]
1221
- ? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions]
1222
- : never
1223
-
1224
- export type CompositeTypes<
1225
- PublicCompositeTypeNameOrOptions extends
1226
- | keyof DefaultSchema["CompositeTypes"]
1227
- | { schema: keyof DatabaseWithoutInternals },
1228
- CompositeTypeName extends PublicCompositeTypeNameOrOptions extends {
1229
- schema: keyof DatabaseWithoutInternals
1230
- }
1231
- ? keyof DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"]
1232
- : never = never,
1233
- > = PublicCompositeTypeNameOrOptions extends {
1234
- schema: keyof DatabaseWithoutInternals
1235
- }
1236
- ? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName]
1237
- : PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"]
1238
- ? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions]
1239
- : never
1240
-
1241
- export const Constants = {
1242
- public: {
1243
- Enums: {
1244
- banTypes: ["cool", "silenced", "restricted", "excluded"],
1245
- discordWebhookType: ["maps", "scores"],
1246
- },
1247
- },
1248
- } as const
1
+ export type Json =
2
+ | string
3
+ | number
4
+ | boolean
5
+ | null
6
+ | { [key: string]: Json | undefined }
7
+ | Json[]
8
+
9
+ export type Database = {
10
+ // Allows to automatically instantiate createClient with right options
11
+ // instead of createClient<Database, { PostgrestVersion: 'XX' }>(URL, KEY)
12
+ __InternalSupabase: {
13
+ PostgrestVersion: "13.0.4"
14
+ }
15
+ public: {
16
+ Tables: {
17
+ admin_actions: {
18
+ Row: {
19
+ action_type: string
20
+ admin_id: number
21
+ created_at: string | null
22
+ details: Json | null
23
+ id: number
24
+ target_id: number | null
25
+ }
26
+ Insert: {
27
+ action_type: string
28
+ admin_id: number
29
+ created_at?: string | null
30
+ details?: Json | null
31
+ id?: number
32
+ target_id?: number | null
33
+ }
34
+ Update: {
35
+ action_type?: string
36
+ admin_id?: number
37
+ created_at?: string | null
38
+ details?: Json | null
39
+ id?: number
40
+ target_id?: number | null
41
+ }
42
+ Relationships: []
43
+ }
44
+ admin_operations: {
45
+ Row: {
46
+ action_type: string | null
47
+ details: Json
48
+ id: number
49
+ target_id: string | null
50
+ }
51
+ Insert: {
52
+ action_type?: string | null
53
+ details: Json
54
+ id?: number
55
+ target_id?: string | null
56
+ }
57
+ Update: {
58
+ action_type?: string | null
59
+ details?: Json
60
+ id?: number
61
+ target_id?: string | null
62
+ }
63
+ Relationships: [
64
+ {
65
+ foreignKeyName: "admin_operations_id_fkey"
66
+ columns: ["id"]
67
+ isOneToOne: true
68
+ referencedRelation: "profiles"
69
+ referencedColumns: ["id"]
70
+ },
71
+ ]
72
+ }
73
+ beatmapCollections: {
74
+ Row: {
75
+ created_at: string
76
+ description: string
77
+ id: number
78
+ is_list: boolean
79
+ owner: number
80
+ title: string
81
+ }
82
+ Insert: {
83
+ created_at?: string
84
+ description: string
85
+ id?: number
86
+ is_list?: boolean
87
+ owner: number
88
+ title: string
89
+ }
90
+ Update: {
91
+ created_at?: string
92
+ description?: string
93
+ id?: number
94
+ is_list?: boolean
95
+ owner?: number
96
+ title?: string
97
+ }
98
+ Relationships: [
99
+ {
100
+ foreignKeyName: "beatmapCollections_owner_fkey"
101
+ columns: ["owner"]
102
+ isOneToOne: false
103
+ referencedRelation: "profiles"
104
+ referencedColumns: ["id"]
105
+ },
106
+ ]
107
+ }
108
+ beatmapPageComments: {
109
+ Row: {
110
+ beatmapPage: number
111
+ content: string | null
112
+ created_at: string
113
+ id: number
114
+ owner: number
115
+ }
116
+ Insert: {
117
+ beatmapPage: number
118
+ content?: string | null
119
+ created_at?: string
120
+ id?: number
121
+ owner: number
122
+ }
123
+ Update: {
124
+ beatmapPage?: number
125
+ content?: string | null
126
+ created_at?: string
127
+ id?: number
128
+ owner?: number
129
+ }
130
+ Relationships: [
131
+ {
132
+ foreignKeyName: "beatmapPageComments_beatmapPage_fkey"
133
+ columns: ["beatmapPage"]
134
+ isOneToOne: false
135
+ referencedRelation: "beatmapPages"
136
+ referencedColumns: ["id"]
137
+ },
138
+ {
139
+ foreignKeyName: "beatmapPageComments_owner_fkey"
140
+ columns: ["owner"]
141
+ isOneToOne: false
142
+ referencedRelation: "profiles"
143
+ referencedColumns: ["id"]
144
+ },
145
+ ]
146
+ }
147
+ beatmapPages: {
148
+ Row: {
149
+ created_at: string
150
+ description: string
151
+ genre: string | null
152
+ id: number
153
+ latestBeatmapHash: string | null
154
+ nominations: Json | null
155
+ owner: number | null
156
+ qualified: boolean
157
+ qualifiedAt: string | null
158
+ ranked_at: number
159
+ status: string | null
160
+ tags: string
161
+ title: string | null
162
+ updated_at: number | null
163
+ video_url: string | null
164
+ }
165
+ Insert: {
166
+ created_at?: string
167
+ description?: string
168
+ genre?: string | null
169
+ id?: number
170
+ latestBeatmapHash?: string | null
171
+ nominations?: Json | null
172
+ owner?: number | null
173
+ qualified?: boolean
174
+ qualifiedAt?: string | null
175
+ ranked_at?: number
176
+ status?: string | null
177
+ tags?: string
178
+ title?: string | null
179
+ updated_at?: number | null
180
+ video_url?: string | null
181
+ }
182
+ Update: {
183
+ created_at?: string
184
+ description?: string
185
+ genre?: string | null
186
+ id?: number
187
+ latestBeatmapHash?: string | null
188
+ nominations?: Json | null
189
+ owner?: number | null
190
+ qualified?: boolean
191
+ qualifiedAt?: string | null
192
+ ranked_at?: number
193
+ status?: string | null
194
+ tags?: string
195
+ title?: string | null
196
+ updated_at?: number | null
197
+ video_url?: string | null
198
+ }
199
+ Relationships: [
200
+ {
201
+ foreignKeyName: "beatmapPages_latestBeatmapHash_fkey"
202
+ columns: ["latestBeatmapHash"]
203
+ isOneToOne: false
204
+ referencedRelation: "beatmaps"
205
+ referencedColumns: ["beatmapHash"]
206
+ },
207
+ {
208
+ foreignKeyName: "beatmapPages_owner_fkey"
209
+ columns: ["owner"]
210
+ isOneToOne: false
211
+ referencedRelation: "profiles"
212
+ referencedColumns: ["id"]
213
+ },
214
+ ]
215
+ }
216
+ beatmaps: {
217
+ Row: {
218
+ beatmapFile: string | null
219
+ beatmapHash: string
220
+ created_at: string
221
+ difficulty: number | null
222
+ image: string | null
223
+ imageLarge: string | null
224
+ length: number | null
225
+ noteCount: number | null
226
+ playcount: number | null
227
+ ranked: boolean | null
228
+ starRating: number | null
229
+ title: string | null
230
+ }
231
+ Insert: {
232
+ beatmapFile?: string | null
233
+ beatmapHash: string
234
+ created_at?: string
235
+ difficulty?: number | null
236
+ image?: string | null
237
+ imageLarge?: string | null
238
+ length?: number | null
239
+ noteCount?: number | null
240
+ playcount?: number | null
241
+ ranked?: boolean | null
242
+ starRating?: number | null
243
+ title?: string | null
244
+ }
245
+ Update: {
246
+ beatmapFile?: string | null
247
+ beatmapHash?: string
248
+ created_at?: string
249
+ difficulty?: number | null
250
+ image?: string | null
251
+ imageLarge?: string | null
252
+ length?: number | null
253
+ noteCount?: number | null
254
+ playcount?: number | null
255
+ ranked?: boolean | null
256
+ starRating?: number | null
257
+ title?: string | null
258
+ }
259
+ Relationships: []
260
+ }
261
+ cache: {
262
+ Row: {
263
+ key: string
264
+ value: Json
265
+ }
266
+ Insert: {
267
+ key: string
268
+ value: Json
269
+ }
270
+ Update: {
271
+ key?: string
272
+ value?: Json
273
+ }
274
+ Relationships: []
275
+ }
276
+ chartedValues: {
277
+ Row: {
278
+ created_at: string
279
+ id: number
280
+ type: string | null
281
+ value: number | null
282
+ }
283
+ Insert: {
284
+ created_at?: string
285
+ id?: number
286
+ type?: string | null
287
+ value?: number | null
288
+ }
289
+ Update: {
290
+ created_at?: string
291
+ id?: number
292
+ type?: string | null
293
+ value?: number | null
294
+ }
295
+ Relationships: []
296
+ }
297
+ clans: {
298
+ Row: {
299
+ acronym: string | null
300
+ allowed_users: Json
301
+ avatar_url: string | null
302
+ created_at: string
303
+ description: string | null
304
+ id: number
305
+ name: string
306
+ owner: number | null
307
+ }
308
+ Insert: {
309
+ acronym?: string | null
310
+ allowed_users?: Json
311
+ avatar_url?: string | null
312
+ created_at?: string
313
+ description?: string | null
314
+ id?: number
315
+ name?: string
316
+ owner?: number | null
317
+ }
318
+ Update: {
319
+ acronym?: string | null
320
+ allowed_users?: Json
321
+ avatar_url?: string | null
322
+ created_at?: string
323
+ description?: string | null
324
+ id?: number
325
+ name?: string
326
+ owner?: number | null
327
+ }
328
+ Relationships: [
329
+ {
330
+ foreignKeyName: "clans_owner_fkey"
331
+ columns: ["owner"]
332
+ isOneToOne: false
333
+ referencedRelation: "profiles"
334
+ referencedColumns: ["id"]
335
+ },
336
+ ]
337
+ }
338
+ collectionRelations: {
339
+ Row: {
340
+ beatmapPage: number | null
341
+ collection: number
342
+ created_at: string
343
+ id: number
344
+ sort: number
345
+ }
346
+ Insert: {
347
+ beatmapPage?: number | null
348
+ collection: number
349
+ created_at?: string
350
+ id?: number
351
+ sort?: number
352
+ }
353
+ Update: {
354
+ beatmapPage?: number | null
355
+ collection?: number
356
+ created_at?: string
357
+ id?: number
358
+ sort?: number
359
+ }
360
+ Relationships: [
361
+ {
362
+ foreignKeyName: "collectionRelations_beatmapPage_fkey"
363
+ columns: ["beatmapPage"]
364
+ isOneToOne: false
365
+ referencedRelation: "beatmapPages"
366
+ referencedColumns: ["id"]
367
+ },
368
+ {
369
+ foreignKeyName: "collectionRelations_collection_fkey"
370
+ columns: ["collection"]
371
+ isOneToOne: false
372
+ referencedRelation: "beatmapCollections"
373
+ referencedColumns: ["id"]
374
+ },
375
+ ]
376
+ }
377
+ discordWebhooks: {
378
+ Row: {
379
+ id: number
380
+ type: Database["public"]["Enums"]["discordWebhookType"] | null
381
+ webhook_link: string
382
+ }
383
+ Insert: {
384
+ id?: number
385
+ type?: Database["public"]["Enums"]["discordWebhookType"] | null
386
+ webhook_link?: string
387
+ }
388
+ Update: {
389
+ id?: number
390
+ type?: Database["public"]["Enums"]["discordWebhookType"] | null
391
+ webhook_link?: string
392
+ }
393
+ Relationships: []
394
+ }
395
+ inventories: {
396
+ Row: {
397
+ contents: Json
398
+ id: number
399
+ }
400
+ Insert: {
401
+ contents?: Json
402
+ id?: number
403
+ }
404
+ Update: {
405
+ contents?: Json
406
+ id?: number
407
+ }
408
+ Relationships: [
409
+ {
410
+ foreignKeyName: "inventory_id_fkey"
411
+ columns: ["id"]
412
+ isOneToOne: true
413
+ referencedRelation: "profiles"
414
+ referencedColumns: ["id"]
415
+ },
416
+ ]
417
+ }
418
+ invites: {
419
+ Row: {
420
+ code: string
421
+ created_at: string
422
+ id: number
423
+ resourceId: string
424
+ type: string
425
+ used: boolean
426
+ }
427
+ Insert: {
428
+ code: string
429
+ created_at?: string
430
+ id?: number
431
+ resourceId: string
432
+ type: string
433
+ used?: boolean
434
+ }
435
+ Update: {
436
+ code?: string
437
+ created_at?: string
438
+ id?: number
439
+ resourceId?: string
440
+ type?: string
441
+ used?: boolean
442
+ }
443
+ Relationships: []
444
+ }
445
+ leaderboard_map_user: {
446
+ Row: {
447
+ beatmapHash: string
448
+ best_score_id: number | null
449
+ best_sp: number | null
450
+ userId: number
451
+ }
452
+ Insert: {
453
+ beatmapHash: string
454
+ best_score_id?: number | null
455
+ best_sp?: number | null
456
+ userId: number
457
+ }
458
+ Update: {
459
+ beatmapHash?: string
460
+ best_score_id?: number | null
461
+ best_sp?: number | null
462
+ userId?: number
463
+ }
464
+ Relationships: []
465
+ }
466
+ levers: {
467
+ Row: {
468
+ disable_scores: boolean
469
+ id: number
470
+ }
471
+ Insert: {
472
+ disable_scores?: boolean
473
+ id?: number
474
+ }
475
+ Update: {
476
+ disable_scores?: boolean
477
+ id?: number
478
+ }
479
+ Relationships: []
480
+ }
481
+ passkeys: {
482
+ Row: {
483
+ email: string
484
+ id: number
485
+ passkey: string
486
+ }
487
+ Insert: {
488
+ email: string
489
+ id: number
490
+ passkey: string
491
+ }
492
+ Update: {
493
+ email?: string
494
+ id?: number
495
+ passkey?: string
496
+ }
497
+ Relationships: [
498
+ {
499
+ foreignKeyName: "passkeys_id_fkey"
500
+ columns: ["id"]
501
+ isOneToOne: true
502
+ referencedRelation: "profiles"
503
+ referencedColumns: ["id"]
504
+ },
505
+ ]
506
+ }
507
+ profileActivities: {
508
+ Row: {
509
+ last_activity: number | null
510
+ uid: string
511
+ }
512
+ Insert: {
513
+ last_activity?: number | null
514
+ uid: string
515
+ }
516
+ Update: {
517
+ last_activity?: number | null
518
+ uid?: string
519
+ }
520
+ Relationships: []
521
+ }
522
+ profiles: {
523
+ Row: {
524
+ about_me: string | null
525
+ avatar_url: string | null
526
+ badges: Json | null
527
+ ban: Database["public"]["Enums"]["banTypes"] | null
528
+ bannedAt: number | null
529
+ clan: number | null
530
+ computedUsername: string | null
531
+ created_at: number | null
532
+ flag: string | null
533
+ id: number
534
+ mu_rank: number
535
+ play_count: number | null
536
+ profile_image: string | null
537
+ sigma_rank: number | null
538
+ skill_points: number | null
539
+ spin_skill_points: number
540
+ squares_hit: number | null
541
+ total_score: number | null
542
+ uid: string | null
543
+ username: string | null
544
+ verificationDeadline: number
545
+ verified: boolean | null
546
+ }
547
+ Insert: {
548
+ about_me?: string | null
549
+ avatar_url?: string | null
550
+ badges?: Json | null
551
+ ban?: Database["public"]["Enums"]["banTypes"] | null
552
+ bannedAt?: number | null
553
+ clan?: number | null
554
+ computedUsername?: string | null
555
+ created_at?: number | null
556
+ flag?: string | null
557
+ id?: number
558
+ mu_rank?: number
559
+ play_count?: number | null
560
+ profile_image?: string | null
561
+ sigma_rank?: number | null
562
+ skill_points?: number | null
563
+ spin_skill_points?: number
564
+ squares_hit?: number | null
565
+ total_score?: number | null
566
+ uid?: string | null
567
+ username?: string | null
568
+ verificationDeadline?: number
569
+ verified?: boolean | null
570
+ }
571
+ Update: {
572
+ about_me?: string | null
573
+ avatar_url?: string | null
574
+ badges?: Json | null
575
+ ban?: Database["public"]["Enums"]["banTypes"] | null
576
+ bannedAt?: number | null
577
+ clan?: number | null
578
+ computedUsername?: string | null
579
+ created_at?: number | null
580
+ flag?: string | null
581
+ id?: number
582
+ mu_rank?: number
583
+ play_count?: number | null
584
+ profile_image?: string | null
585
+ sigma_rank?: number | null
586
+ skill_points?: number | null
587
+ spin_skill_points?: number
588
+ squares_hit?: number | null
589
+ total_score?: number | null
590
+ uid?: string | null
591
+ username?: string | null
592
+ verificationDeadline?: number
593
+ verified?: boolean | null
594
+ }
595
+ Relationships: [
596
+ {
597
+ foreignKeyName: "profiles_clan_fkey"
598
+ columns: ["clan"]
599
+ isOneToOne: false
600
+ referencedRelation: "clans"
601
+ referencedColumns: ["id"]
602
+ },
603
+ ]
604
+ }
605
+ scores: {
606
+ Row: {
607
+ additional_data: Json
608
+ awarded_sp: number | null
609
+ beatmapHash: string | null
610
+ created_at: string
611
+ id: number
612
+ misses: number | null
613
+ mods: Json
614
+ passed: boolean | null
615
+ replay_url: string | null
616
+ replayHwid: string | null
617
+ songId: string | null
618
+ speed: number | null
619
+ spin: boolean
620
+ token: number | null
621
+ userId: number | null
622
+ }
623
+ Insert: {
624
+ additional_data?: Json
625
+ awarded_sp?: number | null
626
+ beatmapHash?: string | null
627
+ created_at?: string
628
+ id?: number
629
+ misses?: number | null
630
+ mods?: Json
631
+ passed?: boolean | null
632
+ replay_url?: string | null
633
+ replayHwid?: string | null
634
+ songId?: string | null
635
+ speed?: number | null
636
+ spin?: boolean
637
+ token?: number | null
638
+ userId?: number | null
639
+ }
640
+ Update: {
641
+ additional_data?: Json
642
+ awarded_sp?: number | null
643
+ beatmapHash?: string | null
644
+ created_at?: string
645
+ id?: number
646
+ misses?: number | null
647
+ mods?: Json
648
+ passed?: boolean | null
649
+ replay_url?: string | null
650
+ replayHwid?: string | null
651
+ songId?: string | null
652
+ speed?: number | null
653
+ spin?: boolean
654
+ token?: number | null
655
+ userId?: number | null
656
+ }
657
+ Relationships: [
658
+ {
659
+ foreignKeyName: "scores_beatmapHash_fkey"
660
+ columns: ["beatmapHash"]
661
+ isOneToOne: false
662
+ referencedRelation: "beatmaps"
663
+ referencedColumns: ["beatmapHash"]
664
+ },
665
+ {
666
+ foreignKeyName: "scores_token_fkey"
667
+ columns: ["token"]
668
+ isOneToOne: false
669
+ referencedRelation: "tokens"
670
+ referencedColumns: ["id"]
671
+ },
672
+ {
673
+ foreignKeyName: "scores_userId_fkey"
674
+ columns: ["userId"]
675
+ isOneToOne: false
676
+ referencedRelation: "profiles"
677
+ referencedColumns: ["id"]
678
+ },
679
+ ]
680
+ }
681
+ tokens: {
682
+ Row: {
683
+ created_at: string
684
+ id: number
685
+ processed: Json | null
686
+ raw: string | null
687
+ }
688
+ Insert: {
689
+ created_at?: string
690
+ id?: number
691
+ processed?: Json | null
692
+ raw?: string | null
693
+ }
694
+ Update: {
695
+ created_at?: string
696
+ id?: number
697
+ processed?: Json | null
698
+ raw?: string | null
699
+ }
700
+ Relationships: []
701
+ }
702
+ vetos: {
703
+ Row: {
704
+ beatmapPage: number
705
+ created_at: string
706
+ id: number
707
+ user: number
708
+ veto_reason: string
709
+ }
710
+ Insert: {
711
+ beatmapPage: number
712
+ created_at?: string
713
+ id?: number
714
+ user: number
715
+ veto_reason: string
716
+ }
717
+ Update: {
718
+ beatmapPage?: number
719
+ created_at?: string
720
+ id?: number
721
+ user?: number
722
+ veto_reason?: string
723
+ }
724
+ Relationships: [
725
+ {
726
+ foreignKeyName: "vetos_beatmapPage_fkey"
727
+ columns: ["beatmapPage"]
728
+ isOneToOne: false
729
+ referencedRelation: "beatmapPages"
730
+ referencedColumns: ["id"]
731
+ },
732
+ {
733
+ foreignKeyName: "vetos_user_fkey"
734
+ columns: ["user"]
735
+ isOneToOne: false
736
+ referencedRelation: "profiles"
737
+ referencedColumns: ["id"]
738
+ },
739
+ ]
740
+ }
741
+ }
742
+ Views: {
743
+ [_ in never]: never
744
+ }
745
+ Functions: {
746
+ admin_delete_user: { Args: { user_id: number }; Returns: boolean }
747
+ admin_exclude_user: { Args: { user_id: number }; Returns: boolean }
748
+ admin_invalidate_ranked_scores: {
749
+ Args: { user_id: number }
750
+ Returns: number
751
+ }
752
+ admin_log_action:
753
+ | {
754
+ Args: {
755
+ action_type: string
756
+ admin_id: number
757
+ details?: Json
758
+ target_id: number
759
+ }
760
+ Returns: undefined
761
+ }
762
+ | {
763
+ Args: {
764
+ action_type: string
765
+ admin_id: number
766
+ details?: Json
767
+ target_id: string
768
+ }
769
+ Returns: undefined
770
+ }
771
+ admin_profanity_clear: { Args: { user_id: number }; Returns: boolean }
772
+ admin_remove_all_scores: { Args: { user_id: number }; Returns: number }
773
+ admin_restrict_user: { Args: { user_id: number }; Returns: boolean }
774
+ admin_search_users: {
775
+ Args: { search_text: string }
776
+ Returns: {
777
+ about_me: string | null
778
+ avatar_url: string | null
779
+ badges: Json | null
780
+ ban: Database["public"]["Enums"]["banTypes"] | null
781
+ bannedAt: number | null
782
+ clan: number | null
783
+ computedUsername: string | null
784
+ created_at: number | null
785
+ flag: string | null
786
+ id: number
787
+ mu_rank: number
788
+ play_count: number | null
789
+ profile_image: string | null
790
+ sigma_rank: number | null
791
+ skill_points: number | null
792
+ spin_skill_points: number
793
+ squares_hit: number | null
794
+ total_score: number | null
795
+ uid: string | null
796
+ username: string | null
797
+ verificationDeadline: number
798
+ verified: boolean | null
799
+ }[]
800
+ SetofOptions: {
801
+ from: "*"
802
+ to: "profiles"
803
+ isOneToOne: false
804
+ isSetofReturn: true
805
+ }
806
+ }
807
+ admin_silence_user: { Args: { user_id: number }; Returns: boolean }
808
+ admin_unban_user: { Args: { user_id: number }; Returns: boolean }
809
+ enhanced_search: {
810
+ Args: { result_limit?: number; search_text: string }
811
+ Returns: {
812
+ beatmap_description: string
813
+ beatmap_image: string
814
+ beatmap_length: number
815
+ beatmap_map_id: string
816
+ beatmap_owner: number
817
+ beatmap_owner_avatar: string
818
+ beatmap_owner_username: string
819
+ beatmap_page_id: number
820
+ beatmap_star_rating: number
821
+ beatmap_status: string
822
+ beatmap_tags: string
823
+ beatmap_title: string
824
+ relevance: number
825
+ result_type: string
826
+ user_about_me: string
827
+ user_avatar_url: string
828
+ user_flag: string
829
+ user_id: number
830
+ user_username: string
831
+ }[]
832
+ }
833
+ get_badge_leaderboard: {
834
+ Args: { p_limit?: number }
835
+ Returns: {
836
+ avatar_url: string
837
+ display_name: string
838
+ id: number
839
+ special_badge_count: number
840
+ }[]
841
+ }
842
+ get_clan_leaderboard: {
843
+ Args: { items_per_page?: number; page_number?: number }
844
+ Returns: {
845
+ acronym: string
846
+ avatar_url: string
847
+ description: string
848
+ id: number
849
+ member_count: number
850
+ name: string
851
+ total_pages: number
852
+ total_skill_points: number
853
+ }[]
854
+ }
855
+ get_collections_v1: {
856
+ Args: { items_per_page?: number; page_number?: number }
857
+ Returns: {
858
+ beatmap_count: number
859
+ created_at: string
860
+ description: string
861
+ id: number
862
+ owner: number
863
+ star1: number
864
+ star10: number
865
+ star11: number
866
+ star12: number
867
+ star13: number
868
+ star14: number
869
+ star15: number
870
+ star16: number
871
+ star17: number
872
+ star18: number
873
+ star2: number
874
+ star3: number
875
+ star4: number
876
+ star5: number
877
+ star6: number
878
+ star7: number
879
+ star8: number
880
+ star9: number
881
+ title: string
882
+ total_pages: number
883
+ }[]
884
+ }
885
+ get_collections_v2:
886
+ | {
887
+ Args: { items_per_page?: number; page_number?: number }
888
+ Returns: {
889
+ beatmap_count: number
890
+ created_at: string
891
+ description: string
892
+ id: number
893
+ owner: number
894
+ owner_avatar_url: string
895
+ owner_username: string
896
+ star1: number
897
+ star10: number
898
+ star11: number
899
+ star12: number
900
+ star13: number
901
+ star14: number
902
+ star15: number
903
+ star16: number
904
+ star17: number
905
+ star18: number
906
+ star2: number
907
+ star3: number
908
+ star4: number
909
+ star5: number
910
+ star6: number
911
+ star7: number
912
+ star8: number
913
+ star9: number
914
+ title: string
915
+ total_pages: number
916
+ }[]
917
+ }
918
+ | {
919
+ Args: {
920
+ items_per_page?: number
921
+ owner_filter?: number
922
+ page_number?: number
923
+ }
924
+ Returns: {
925
+ beatmap_count: number
926
+ created_at: string
927
+ description: string
928
+ id: number
929
+ owner: number
930
+ owner_avatar_url: string
931
+ owner_username: string
932
+ star1: number
933
+ star10: number
934
+ star11: number
935
+ star12: number
936
+ star13: number
937
+ star14: number
938
+ star15: number
939
+ star16: number
940
+ star17: number
941
+ star18: number
942
+ star2: number
943
+ star3: number
944
+ star4: number
945
+ star5: number
946
+ star6: number
947
+ star7: number
948
+ star8: number
949
+ star9: number
950
+ title: string
951
+ total_pages: number
952
+ }[]
953
+ }
954
+ get_collections_v3: {
955
+ Args: {
956
+ items_per_page?: number
957
+ owner_filter?: number
958
+ page_number?: number
959
+ }
960
+ Returns: {
961
+ beatmap_count: number
962
+ created_at: string
963
+ description: string
964
+ id: number
965
+ owner: number
966
+ owner_avatar_url: string
967
+ owner_username: string
968
+ star1: number
969
+ star10: number
970
+ star11: number
971
+ star12: number
972
+ star13: number
973
+ star14: number
974
+ star15: number
975
+ star16: number
976
+ star17: number
977
+ star18: number
978
+ star2: number
979
+ star3: number
980
+ star4: number
981
+ star5: number
982
+ star6: number
983
+ star7: number
984
+ star8: number
985
+ star9: number
986
+ title: string
987
+ total_pages: number
988
+ }[]
989
+ }
990
+ get_collections_v4: {
991
+ Args: {
992
+ author_filter?: string
993
+ items_per_page?: number
994
+ min_beatmaps?: number
995
+ owner_filter?: number
996
+ page_number?: number
997
+ search_query?: string
998
+ }
999
+ Returns: {
1000
+ beatmap_count: number
1001
+ created_at: string
1002
+ description: string
1003
+ id: number
1004
+ owner: number
1005
+ owner_avatar_url: string
1006
+ owner_username: string
1007
+ star1: number
1008
+ star10: number
1009
+ star11: number
1010
+ star12: number
1011
+ star13: number
1012
+ star14: number
1013
+ star15: number
1014
+ star16: number
1015
+ star17: number
1016
+ star18: number
1017
+ star2: number
1018
+ star3: number
1019
+ star4: number
1020
+ star5: number
1021
+ star6: number
1022
+ star7: number
1023
+ star8: number
1024
+ star9: number
1025
+ title: string
1026
+ total_pages: number
1027
+ }[]
1028
+ }
1029
+ get_top_scores_for_beatmap: {
1030
+ Args: { beatmap_hash: string }
1031
+ Returns: {
1032
+ accuracy: number
1033
+ avatar_url: string
1034
+ awarded_sp: number
1035
+ created_at: string
1036
+ id: number
1037
+ misses: number
1038
+ mods: Json
1039
+ passed: boolean
1040
+ replayhwid: string
1041
+ songid: string
1042
+ speed: number
1043
+ spin: boolean
1044
+ userid: number
1045
+ username: string
1046
+ }[]
1047
+ }
1048
+ get_top_scores_for_beatmap2: {
1049
+ Args: { beatmap_hash: string }
1050
+ Returns: {
1051
+ accuracy: number
1052
+ avatar_url: string
1053
+ awarded_sp: number
1054
+ created_at: string
1055
+ id: number
1056
+ misses: number
1057
+ mods: Json
1058
+ passed: boolean
1059
+ replayhwid: string
1060
+ songid: string
1061
+ speed: number
1062
+ spin: boolean
1063
+ userid: number
1064
+ username: string
1065
+ }[]
1066
+ }
1067
+ get_top_scores_for_beatmap3: {
1068
+ Args: { beatmap_hash: string }
1069
+ Returns: {
1070
+ accuracy: number
1071
+ avatar_url: string
1072
+ awarded_sp: number
1073
+ created_at: string
1074
+ id: number
1075
+ misses: number
1076
+ mods: Json
1077
+ passed: boolean
1078
+ replayHwid: string
1079
+ songId: string
1080
+ speed: number
1081
+ spin: boolean
1082
+ userId: number
1083
+ username: string
1084
+ }[]
1085
+ }
1086
+ get_user_activity: {
1087
+ Args: { score_limit?: number; user_id: number }
1088
+ Returns: Json
1089
+ }
1090
+ get_user_by_email: { Args: { email_address: string }; Returns: Json }
1091
+ get_user_reigning_scores:
1092
+ | {
1093
+ Args: { userid: number }
1094
+ Returns: {
1095
+ awarded_sp: number
1096
+ beatmaphash: string
1097
+ created_at: string
1098
+ id: number
1099
+ misses: number
1100
+ mods: Json
1101
+ passed: boolean
1102
+ replayhwid: string
1103
+ songid: string
1104
+ speed: number
1105
+ spin: boolean
1106
+ }[]
1107
+ }
1108
+ | {
1109
+ Args: { page_size: number; userid: number }
1110
+ Returns: {
1111
+ awarded_sp: number
1112
+ beatmaphash: string
1113
+ beatmaptitle: string
1114
+ created_at: string
1115
+ difficulty: number
1116
+ id: number
1117
+ misses: number
1118
+ mods: Json
1119
+ notes: number
1120
+ passed: boolean
1121
+ replayhwid: string
1122
+ songid: string
1123
+ speed: number
1124
+ spin: boolean
1125
+ }[]
1126
+ }
1127
+ get_user_scores_lastday: {
1128
+ Args: { limit_param: number; userid: number }
1129
+ Returns: Json
1130
+ }
1131
+ get_user_scores_payload: {
1132
+ Args: { limit_param: number; userid: number }
1133
+ Returns: Json
1134
+ }
1135
+ get_user_scores_reign: { Args: { userid: number }; Returns: Json }
1136
+ get_user_scores_summary: {
1137
+ Args: { limit_param?: number; userid: number }
1138
+ Returns: Json
1139
+ }
1140
+ get_user_scores_top_and_stats: {
1141
+ Args: { limit_param: number; userid: number }
1142
+ Returns: Json
1143
+ }
1144
+ grant_special_badges: {
1145
+ Args: {
1146
+ p_beatmap_id: number
1147
+ p_passed?: boolean
1148
+ p_spin?: boolean
1149
+ p_user_id: number
1150
+ }
1151
+ Returns: Json
1152
+ }
1153
+ }
1154
+ Enums: {
1155
+ banTypes: "cool" | "silenced" | "restricted" | "excluded"
1156
+ discordWebhookType: "maps" | "scores"
1157
+ }
1158
+ CompositeTypes: {
1159
+ [_ in never]: never
1160
+ }
1161
+ }
1162
+ }
1163
+
1164
+ type DatabaseWithoutInternals = Omit<Database, "__InternalSupabase">
1165
+
1166
+ type DefaultSchema = DatabaseWithoutInternals[Extract<keyof Database, "public">]
1167
+
1168
+ export type Tables<
1169
+ DefaultSchemaTableNameOrOptions extends
1170
+ | keyof (DefaultSchema["Tables"] & DefaultSchema["Views"])
1171
+ | { schema: keyof DatabaseWithoutInternals },
1172
+ TableName extends DefaultSchemaTableNameOrOptions extends {
1173
+ schema: keyof DatabaseWithoutInternals
1174
+ }
1175
+ ? keyof (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
1176
+ DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])
1177
+ : never = never,
1178
+ > = DefaultSchemaTableNameOrOptions extends {
1179
+ schema: keyof DatabaseWithoutInternals
1180
+ }
1181
+ ? (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
1182
+ DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])[TableName] extends {
1183
+ Row: infer R
1184
+ }
1185
+ ? R
1186
+ : never
1187
+ : DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema["Tables"] &
1188
+ DefaultSchema["Views"])
1189
+ ? (DefaultSchema["Tables"] &
1190
+ DefaultSchema["Views"])[DefaultSchemaTableNameOrOptions] extends {
1191
+ Row: infer R
1192
+ }
1193
+ ? R
1194
+ : never
1195
+ : never
1196
+
1197
+ export type TablesInsert<
1198
+ DefaultSchemaTableNameOrOptions extends
1199
+ | keyof DefaultSchema["Tables"]
1200
+ | { schema: keyof DatabaseWithoutInternals },
1201
+ TableName extends DefaultSchemaTableNameOrOptions extends {
1202
+ schema: keyof DatabaseWithoutInternals
1203
+ }
1204
+ ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
1205
+ : never = never,
1206
+ > = DefaultSchemaTableNameOrOptions extends {
1207
+ schema: keyof DatabaseWithoutInternals
1208
+ }
1209
+ ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
1210
+ Insert: infer I
1211
+ }
1212
+ ? I
1213
+ : never
1214
+ : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"]
1215
+ ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
1216
+ Insert: infer I
1217
+ }
1218
+ ? I
1219
+ : never
1220
+ : never
1221
+
1222
+ export type TablesUpdate<
1223
+ DefaultSchemaTableNameOrOptions extends
1224
+ | keyof DefaultSchema["Tables"]
1225
+ | { schema: keyof DatabaseWithoutInternals },
1226
+ TableName extends DefaultSchemaTableNameOrOptions extends {
1227
+ schema: keyof DatabaseWithoutInternals
1228
+ }
1229
+ ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
1230
+ : never = never,
1231
+ > = DefaultSchemaTableNameOrOptions extends {
1232
+ schema: keyof DatabaseWithoutInternals
1233
+ }
1234
+ ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
1235
+ Update: infer U
1236
+ }
1237
+ ? U
1238
+ : never
1239
+ : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"]
1240
+ ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
1241
+ Update: infer U
1242
+ }
1243
+ ? U
1244
+ : never
1245
+ : never
1246
+
1247
+ export type Enums<
1248
+ DefaultSchemaEnumNameOrOptions extends
1249
+ | keyof DefaultSchema["Enums"]
1250
+ | { schema: keyof DatabaseWithoutInternals },
1251
+ EnumName extends DefaultSchemaEnumNameOrOptions extends {
1252
+ schema: keyof DatabaseWithoutInternals
1253
+ }
1254
+ ? keyof DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"]
1255
+ : never = never,
1256
+ > = DefaultSchemaEnumNameOrOptions extends {
1257
+ schema: keyof DatabaseWithoutInternals
1258
+ }
1259
+ ? DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName]
1260
+ : DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"]
1261
+ ? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions]
1262
+ : never
1263
+
1264
+ export type CompositeTypes<
1265
+ PublicCompositeTypeNameOrOptions extends
1266
+ | keyof DefaultSchema["CompositeTypes"]
1267
+ | { schema: keyof DatabaseWithoutInternals },
1268
+ CompositeTypeName extends PublicCompositeTypeNameOrOptions extends {
1269
+ schema: keyof DatabaseWithoutInternals
1270
+ }
1271
+ ? keyof DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"]
1272
+ : never = never,
1273
+ > = PublicCompositeTypeNameOrOptions extends {
1274
+ schema: keyof DatabaseWithoutInternals
1275
+ }
1276
+ ? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName]
1277
+ : PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"]
1278
+ ? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions]
1279
+ : never
1280
+
1281
+ export const Constants = {
1282
+ public: {
1283
+ Enums: {
1284
+ banTypes: ["cool", "silenced", "restricted", "excluded"],
1285
+ discordWebhookType: ["maps", "scores"],
1286
+ },
1287
+ },
1288
+ } as const