@anvil-js/client 0.0.1

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.
@@ -0,0 +1,3869 @@
1
+ import * as _trpc_server_unstable_core_do_not_import from '@trpc/server/unstable-core-do-not-import';
2
+ import * as _trpc_server from '@trpc/server';
3
+
4
+ /**
5
+ * Context shape -- populated by NestJS at request time.
6
+ * See `apps/api/src/v1/auth/auth.guard.ts` (private repo) for the production version.
7
+ */
8
+ interface CreateContextOptions {
9
+ userUuid?: string;
10
+ token?: string;
11
+ requestId?: string;
12
+ }
13
+ declare const createContext: (opts: CreateContextOptions) => Promise<{
14
+ userUuid: string | undefined;
15
+ token: string | undefined;
16
+ requestId: string;
17
+ }>;
18
+ type Context = Awaited<ReturnType<typeof createContext>>;
19
+ declare const publicProcedure: _trpc_server.TRPCProcedureBuilder<{
20
+ userUuid: string | undefined;
21
+ token: string | undefined;
22
+ requestId: string;
23
+ }, object, object, _trpc_server.TRPCUnsetMarker, _trpc_server.TRPCUnsetMarker, _trpc_server.TRPCUnsetMarker, _trpc_server.TRPCUnsetMarker, false>;
24
+ declare const protectedProcedure: _trpc_server.TRPCProcedureBuilder<{
25
+ userUuid: string | undefined;
26
+ token: string | undefined;
27
+ requestId: string;
28
+ }, object, {
29
+ token: string | undefined;
30
+ userUuid: string;
31
+ requestId: string;
32
+ }, _trpc_server.TRPCUnsetMarker, _trpc_server.TRPCUnsetMarker, _trpc_server.TRPCUnsetMarker, _trpc_server.TRPCUnsetMarker, false>;
33
+ declare const appRouter: _trpc_server.TRPCBuiltRouter<{
34
+ ctx: {
35
+ userUuid: string | undefined;
36
+ token: string | undefined;
37
+ requestId: string;
38
+ };
39
+ meta: object;
40
+ errorShape: {
41
+ data: {
42
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
43
+ httpStatus: number;
44
+ };
45
+ message: string;
46
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
47
+ };
48
+ transformer: false;
49
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
50
+ v1: _trpc_server.TRPCBuiltRouter<{
51
+ ctx: {
52
+ userUuid: string | undefined;
53
+ token: string | undefined;
54
+ requestId: string;
55
+ };
56
+ meta: object;
57
+ errorShape: {
58
+ data: {
59
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
60
+ httpStatus: number;
61
+ };
62
+ message: string;
63
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
64
+ };
65
+ transformer: false;
66
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
67
+ health: _trpc_server.TRPCBuiltRouter<{
68
+ ctx: {
69
+ userUuid: string | undefined;
70
+ token: string | undefined;
71
+ requestId: string;
72
+ };
73
+ meta: object;
74
+ errorShape: {
75
+ data: {
76
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
77
+ httpStatus: number;
78
+ };
79
+ message: string;
80
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
81
+ };
82
+ transformer: false;
83
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
84
+ ping: _trpc_server.TRPCQueryProcedure<{
85
+ input: void;
86
+ output: {
87
+ status: string;
88
+ version: string;
89
+ timestamp: string;
90
+ };
91
+ meta: object;
92
+ }>;
93
+ version: _trpc_server.TRPCQueryProcedure<{
94
+ input: void;
95
+ output: {
96
+ api: string;
97
+ minLauncher: string;
98
+ recommendedLauncher: string;
99
+ deprecations: string[];
100
+ };
101
+ meta: object;
102
+ }>;
103
+ }>>;
104
+ auth: _trpc_server.TRPCBuiltRouter<{
105
+ ctx: {
106
+ userUuid: string | undefined;
107
+ token: string | undefined;
108
+ requestId: string;
109
+ };
110
+ meta: object;
111
+ errorShape: {
112
+ data: {
113
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
114
+ httpStatus: number;
115
+ };
116
+ message: string;
117
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
118
+ };
119
+ transformer: false;
120
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
121
+ signIn: _trpc_server.TRPCMutationProcedure<{
122
+ input: {
123
+ email: string;
124
+ password: string;
125
+ };
126
+ output: {
127
+ user: {
128
+ email: string;
129
+ uuid: string;
130
+ username: string;
131
+ displayName: string;
132
+ avatarUrl: string | null;
133
+ role: "USER" | "MODERATOR" | "ADMIN";
134
+ };
135
+ accessToken: string;
136
+ refreshToken: string;
137
+ expiresAt: string;
138
+ };
139
+ meta: object;
140
+ }>;
141
+ signUp: _trpc_server.TRPCMutationProcedure<{
142
+ input: {
143
+ email: string;
144
+ username: string;
145
+ password: string;
146
+ };
147
+ output: {
148
+ user: {
149
+ email: string;
150
+ uuid: string;
151
+ username: string;
152
+ displayName: string;
153
+ avatarUrl: string | null;
154
+ role: "USER" | "MODERATOR" | "ADMIN";
155
+ };
156
+ accessToken: string;
157
+ refreshToken: string;
158
+ expiresAt: string;
159
+ };
160
+ meta: object;
161
+ }>;
162
+ refresh: _trpc_server.TRPCMutationProcedure<{
163
+ input: {
164
+ refreshToken: string;
165
+ };
166
+ output: {
167
+ accessToken: string;
168
+ refreshToken: string;
169
+ expiresAt: string;
170
+ };
171
+ meta: object;
172
+ }>;
173
+ validate: _trpc_server.TRPCQueryProcedure<{
174
+ input: {
175
+ token: string;
176
+ };
177
+ output: {
178
+ valid: boolean;
179
+ user?: {
180
+ email: string;
181
+ uuid: string;
182
+ username: string;
183
+ displayName: string;
184
+ avatarUrl: string | null;
185
+ role: "USER" | "MODERATOR" | "ADMIN";
186
+ } | undefined;
187
+ expiresAt?: string | undefined;
188
+ };
189
+ meta: object;
190
+ }>;
191
+ forgotPassword: _trpc_server.TRPCMutationProcedure<{
192
+ input: {
193
+ email: string;
194
+ };
195
+ output: void;
196
+ meta: object;
197
+ }>;
198
+ resetPassword: _trpc_server.TRPCMutationProcedure<{
199
+ input: {
200
+ token: string;
201
+ newPassword: string;
202
+ };
203
+ output: void;
204
+ meta: object;
205
+ }>;
206
+ signOut: _trpc_server.TRPCMutationProcedure<{
207
+ input: void;
208
+ output: void;
209
+ meta: object;
210
+ }>;
211
+ session: _trpc_server.TRPCBuiltRouter<{
212
+ ctx: {
213
+ userUuid: string | undefined;
214
+ token: string | undefined;
215
+ requestId: string;
216
+ };
217
+ meta: object;
218
+ errorShape: {
219
+ data: {
220
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
221
+ httpStatus: number;
222
+ };
223
+ message: string;
224
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
225
+ };
226
+ transformer: false;
227
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
228
+ current: _trpc_server.TRPCQueryProcedure<{
229
+ input: void;
230
+ output: {
231
+ anvil: {
232
+ user: {
233
+ email: string;
234
+ uuid: string;
235
+ username: string;
236
+ displayName: string;
237
+ avatarUrl: string | null;
238
+ role: "USER" | "MODERATOR" | "ADMIN";
239
+ };
240
+ accessToken: string;
241
+ refreshToken: string;
242
+ expiresAt: string;
243
+ };
244
+ mojang: {
245
+ uuid: string;
246
+ username: string;
247
+ accessToken: string;
248
+ expiresAt: string;
249
+ } | null;
250
+ };
251
+ meta: object;
252
+ }>;
253
+ }>>;
254
+ mojang: _trpc_server.TRPCBuiltRouter<{
255
+ ctx: {
256
+ userUuid: string | undefined;
257
+ token: string | undefined;
258
+ requestId: string;
259
+ };
260
+ meta: object;
261
+ errorShape: {
262
+ data: {
263
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
264
+ httpStatus: number;
265
+ };
266
+ message: string;
267
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
268
+ };
269
+ transformer: false;
270
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
271
+ startDeviceCode: _trpc_server.TRPCMutationProcedure<{
272
+ input: void;
273
+ output: {
274
+ interval: number;
275
+ deviceCode: string;
276
+ userCode: string;
277
+ verificationUri: string;
278
+ expiresIn: number;
279
+ };
280
+ meta: object;
281
+ }>;
282
+ pollDeviceCode: _trpc_server.TRPCQueryProcedure<{
283
+ input: {
284
+ deviceCode: string;
285
+ };
286
+ output: {
287
+ kind: "success";
288
+ mcAccessToken: string;
289
+ mcRefreshToken: string;
290
+ mcExpiresAt: string;
291
+ profile: {
292
+ uuid: string;
293
+ username: string;
294
+ };
295
+ } | {
296
+ kind: "pending";
297
+ } | {
298
+ code: "expired" | "authorization_declined" | "slow_down";
299
+ kind: "error";
300
+ };
301
+ meta: object;
302
+ }>;
303
+ }>>;
304
+ }>>;
305
+ profile: _trpc_server.TRPCBuiltRouter<{
306
+ ctx: {
307
+ userUuid: string | undefined;
308
+ token: string | undefined;
309
+ requestId: string;
310
+ };
311
+ meta: object;
312
+ errorShape: {
313
+ data: {
314
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
315
+ httpStatus: number;
316
+ };
317
+ message: string;
318
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
319
+ };
320
+ transformer: false;
321
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
322
+ update: _trpc_server.TRPCMutationProcedure<{
323
+ input: {
324
+ displayName?: string | undefined;
325
+ avatarUrl?: string | null | undefined;
326
+ bio?: string | null | undefined;
327
+ };
328
+ output: never;
329
+ meta: object;
330
+ }>;
331
+ changePassword: _trpc_server.TRPCMutationProcedure<{
332
+ input: {
333
+ newPassword: string;
334
+ currentPassword: string;
335
+ };
336
+ output: never;
337
+ meta: object;
338
+ }>;
339
+ }>>;
340
+ builds: _trpc_server.TRPCBuiltRouter<{
341
+ ctx: {
342
+ userUuid: string | undefined;
343
+ token: string | undefined;
344
+ requestId: string;
345
+ };
346
+ meta: object;
347
+ errorShape: {
348
+ data: {
349
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
350
+ httpStatus: number;
351
+ };
352
+ message: string;
353
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
354
+ };
355
+ transformer: false;
356
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
357
+ list: _trpc_server.TRPCQueryProcedure<{
358
+ input: {
359
+ sort?: "name" | "popular" | "recent" | undefined;
360
+ page?: number | undefined;
361
+ pageSize?: number | undefined;
362
+ mcVersions?: string[] | undefined;
363
+ loaders?: ("vanilla" | "fabric" | "forge" | "neoforge" | "quilt")[] | undefined;
364
+ visibility?: ("public" | "private" | "unlisted")[] | undefined;
365
+ source?: ("anvil" | "modrinth")[] | undefined;
366
+ search?: string | undefined;
367
+ tags?: string[] | undefined;
368
+ };
369
+ output: {
370
+ page: number;
371
+ pageSize: number;
372
+ items: {
373
+ id: string;
374
+ slug: string;
375
+ name: string;
376
+ shortDescription: string;
377
+ iconUrl: string | null;
378
+ mcVersions: string[];
379
+ loaders: ("vanilla" | "fabric" | "forge" | "neoforge" | "quilt")[];
380
+ visibility: "public" | "private" | "unlisted";
381
+ pricing: {
382
+ model: "free";
383
+ } | {
384
+ model: "paid";
385
+ priceCents: number;
386
+ currency: string;
387
+ } | {
388
+ model: "subscription";
389
+ tiers: {
390
+ id: string;
391
+ name: string;
392
+ priceCents: number;
393
+ interval: "month" | "year";
394
+ }[];
395
+ };
396
+ stats: {
397
+ downloads: number;
398
+ favorites: number;
399
+ updatedAt: string;
400
+ };
401
+ source: "anvil" | "modrinth";
402
+ }[];
403
+ total: number;
404
+ };
405
+ meta: object;
406
+ }>;
407
+ get: _trpc_server.TRPCQueryProcedure<{
408
+ input: {
409
+ idOrSlug: string;
410
+ };
411
+ output: {
412
+ id: string;
413
+ slug: string;
414
+ name: string;
415
+ shortDescription: string;
416
+ iconUrl: string | null;
417
+ mcVersions: string[];
418
+ loaders: ("vanilla" | "fabric" | "forge" | "neoforge" | "quilt")[];
419
+ visibility: "public" | "private" | "unlisted";
420
+ pricing: {
421
+ model: "free";
422
+ } | {
423
+ model: "paid";
424
+ priceCents: number;
425
+ currency: string;
426
+ } | {
427
+ model: "subscription";
428
+ tiers: {
429
+ id: string;
430
+ name: string;
431
+ priceCents: number;
432
+ interval: "month" | "year";
433
+ }[];
434
+ };
435
+ stats: {
436
+ downloads: number;
437
+ favorites: number;
438
+ updatedAt: string;
439
+ };
440
+ source: "anvil" | "modrinth";
441
+ versions: {
442
+ id: string;
443
+ name: string;
444
+ buildId: string;
445
+ mcVersion: string;
446
+ loader: "vanilla" | "fabric" | "forge" | "neoforge" | "quilt";
447
+ loaderVersion: string;
448
+ files: {
449
+ url: string;
450
+ sha256: string;
451
+ sizeBytes: number;
452
+ primary: boolean;
453
+ }[];
454
+ dependencies: {
455
+ kind: "required" | "optional" | "incompatible" | "embedded";
456
+ projectId: string;
457
+ versionId?: string | undefined;
458
+ }[];
459
+ publishedAt: string;
460
+ changelog?: string | undefined;
461
+ }[];
462
+ description?: string | undefined;
463
+ longDescription?: Record<string, string> | undefined;
464
+ };
465
+ meta: object;
466
+ }>;
467
+ getVersions: _trpc_server.TRPCQueryProcedure<{
468
+ input: {
469
+ buildId: string;
470
+ };
471
+ output: any[];
472
+ meta: object;
473
+ }>;
474
+ requestDownload: _trpc_server.TRPCMutationProcedure<{
475
+ input: {
476
+ versionId: string;
477
+ clientArch?: "x64" | "arm64" | "x86" | undefined;
478
+ };
479
+ output: {
480
+ expiresAt: string;
481
+ sha256: string;
482
+ sizeBytes: number;
483
+ installId: string;
484
+ downloadUrl: string;
485
+ };
486
+ meta: object;
487
+ }>;
488
+ }>>;
489
+ licenses: _trpc_server.TRPCBuiltRouter<{
490
+ ctx: {
491
+ userUuid: string | undefined;
492
+ token: string | undefined;
493
+ requestId: string;
494
+ };
495
+ meta: object;
496
+ errorShape: {
497
+ data: {
498
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
499
+ httpStatus: number;
500
+ };
501
+ message: string;
502
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
503
+ };
504
+ transformer: false;
505
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
506
+ list: _trpc_server.TRPCQueryProcedure<{
507
+ input: {
508
+ status?: "active" | "expired" | "revoked" | undefined;
509
+ buildId?: string | undefined;
510
+ };
511
+ output: {
512
+ status: "active" | "expired" | "revoked";
513
+ expiresAt: string | null;
514
+ id: string;
515
+ source: "subscription" | "purchase" | "gift" | "promo" | "dev_grant";
516
+ buildId: string;
517
+ buildName: string;
518
+ grantedAt: string;
519
+ }[];
520
+ meta: object;
521
+ }>;
522
+ check: _trpc_server.TRPCQueryProcedure<{
523
+ input: {
524
+ buildId: string;
525
+ };
526
+ output: {
527
+ hasAccess: boolean;
528
+ license?: {
529
+ status: "active" | "expired" | "revoked";
530
+ expiresAt: string | null;
531
+ id: string;
532
+ source: "subscription" | "purchase" | "gift" | "promo" | "dev_grant";
533
+ buildId: string;
534
+ buildName: string;
535
+ grantedAt: string;
536
+ } | undefined;
537
+ reason?: "expired" | "revoked" | "no_license" | "region_locked" | undefined;
538
+ };
539
+ meta: object;
540
+ }>;
541
+ }>>;
542
+ social: _trpc_server.TRPCBuiltRouter<{
543
+ ctx: {
544
+ userUuid: string | undefined;
545
+ token: string | undefined;
546
+ requestId: string;
547
+ };
548
+ meta: object;
549
+ errorShape: {
550
+ data: {
551
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
552
+ httpStatus: number;
553
+ };
554
+ message: string;
555
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
556
+ };
557
+ transformer: false;
558
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
559
+ relationships: _trpc_server.TRPCBuiltRouter<{
560
+ ctx: {
561
+ userUuid: string | undefined;
562
+ token: string | undefined;
563
+ requestId: string;
564
+ };
565
+ meta: object;
566
+ errorShape: {
567
+ data: {
568
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
569
+ httpStatus: number;
570
+ };
571
+ message: string;
572
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
573
+ };
574
+ transformer: false;
575
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
576
+ create: _trpc_server.TRPCMutationProcedure<{
577
+ input: {
578
+ type: "FRIENDS" | "BLOCKED" | "NEUTRAL";
579
+ targetUuid: string;
580
+ };
581
+ output: {
582
+ relationship: {
583
+ type: "FRIENDS" | "BLOCKED" | "NEUTRAL";
584
+ status: "PENDING" | "VERIFIED";
585
+ id: string;
586
+ direction: "INCOMING" | "OUTGOING" | "MUTUAL";
587
+ otherUser: {
588
+ email: string;
589
+ uuid: string;
590
+ username: string;
591
+ displayName: string;
592
+ avatarUrl: string | null;
593
+ role: "USER" | "MODERATOR" | "ADMIN";
594
+ };
595
+ since: string;
596
+ initiatorUuid: string;
597
+ };
598
+ created: boolean;
599
+ };
600
+ meta: object;
601
+ }>;
602
+ delete: _trpc_server.TRPCMutationProcedure<{
603
+ input: {
604
+ type: "FRIENDS" | "BLOCKED" | "NEUTRAL";
605
+ targetUuid: string;
606
+ };
607
+ output: {
608
+ deleted: boolean;
609
+ };
610
+ meta: object;
611
+ }>;
612
+ list: _trpc_server.TRPCQueryProcedure<{
613
+ input: {
614
+ type?: "FRIENDS" | "BLOCKED" | "INCOMING_PENDING" | "OUTGOING_PENDING" | undefined;
615
+ };
616
+ output: {
617
+ items: {
618
+ type: "FRIENDS" | "BLOCKED" | "NEUTRAL";
619
+ status: "PENDING" | "VERIFIED";
620
+ id: string;
621
+ direction: "INCOMING" | "OUTGOING" | "MUTUAL";
622
+ otherUser: {
623
+ email: string;
624
+ uuid: string;
625
+ username: string;
626
+ displayName: string;
627
+ avatarUrl: string | null;
628
+ role: "USER" | "MODERATOR" | "ADMIN";
629
+ };
630
+ since: string;
631
+ initiatorUuid: string;
632
+ }[];
633
+ };
634
+ meta: object;
635
+ }>;
636
+ acceptRequest: _trpc_server.TRPCMutationProcedure<{
637
+ input: {
638
+ fromUuid: string;
639
+ };
640
+ output: {
641
+ relationship: {
642
+ type: "FRIENDS" | "BLOCKED" | "NEUTRAL";
643
+ status: "PENDING" | "VERIFIED";
644
+ id: string;
645
+ direction: "INCOMING" | "OUTGOING" | "MUTUAL";
646
+ otherUser: {
647
+ email: string;
648
+ uuid: string;
649
+ username: string;
650
+ displayName: string;
651
+ avatarUrl: string | null;
652
+ role: "USER" | "MODERATOR" | "ADMIN";
653
+ };
654
+ since: string;
655
+ initiatorUuid: string;
656
+ };
657
+ };
658
+ meta: object;
659
+ }>;
660
+ cancelRequest: _trpc_server.TRPCMutationProcedure<{
661
+ input: {
662
+ toUuid: string;
663
+ };
664
+ output: {
665
+ cancelled: boolean;
666
+ };
667
+ meta: object;
668
+ }>;
669
+ }>>;
670
+ users: _trpc_server.TRPCBuiltRouter<{
671
+ ctx: {
672
+ userUuid: string | undefined;
673
+ token: string | undefined;
674
+ requestId: string;
675
+ };
676
+ meta: object;
677
+ errorShape: {
678
+ data: {
679
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
680
+ httpStatus: number;
681
+ };
682
+ message: string;
683
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
684
+ };
685
+ transformer: false;
686
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
687
+ lookupByName: _trpc_server.TRPCQueryProcedure<{
688
+ input: {
689
+ username: string;
690
+ };
691
+ output: {
692
+ user: {
693
+ uuid: string;
694
+ username: string;
695
+ displayName: string;
696
+ } | null;
697
+ nameMap: Record<string, string>;
698
+ };
699
+ meta: object;
700
+ }>;
701
+ }>>;
702
+ presence: _trpc_server.TRPCBuiltRouter<{
703
+ ctx: {
704
+ userUuid: string | undefined;
705
+ token: string | undefined;
706
+ requestId: string;
707
+ };
708
+ meta: object;
709
+ errorShape: {
710
+ data: {
711
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
712
+ httpStatus: number;
713
+ };
714
+ message: string;
715
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
716
+ };
717
+ transformer: false;
718
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
719
+ /**
720
+ * Query (not subscription) in this scaffold. Prod presence streaming
721
+ * will land as a separate /v1/ws subscription multiplexed over the
722
+ * WebSocket gateway. For now the MSW layer returns a snapshot of the
723
+ * current presence map; the client polls every 5s.
724
+ */
725
+ get: _trpc_server.TRPCQueryProcedure<{
726
+ input: {
727
+ uuids: string[];
728
+ };
729
+ output: {
730
+ items: {
731
+ status: "ONLINE" | "OFFLINE" | "AWAY" | "BUSY";
732
+ uuid: string;
733
+ lastOnline: string;
734
+ currentActivity?: {
735
+ type: string;
736
+ metadata: Record<string, string>;
737
+ } | undefined;
738
+ }[];
739
+ };
740
+ meta: object;
741
+ }>;
742
+ }>>;
743
+ activity: _trpc_server.TRPCBuiltRouter<{
744
+ ctx: {
745
+ userUuid: string | undefined;
746
+ token: string | undefined;
747
+ requestId: string;
748
+ };
749
+ meta: object;
750
+ errorShape: {
751
+ data: {
752
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
753
+ httpStatus: number;
754
+ };
755
+ message: string;
756
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
757
+ };
758
+ transformer: false;
759
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
760
+ report: _trpc_server.TRPCMutationProcedure<{
761
+ input: {
762
+ type: string;
763
+ metadata: Record<string, string>;
764
+ };
765
+ output: void;
766
+ meta: object;
767
+ }>;
768
+ }>>;
769
+ invites: _trpc_server.TRPCBuiltRouter<{
770
+ ctx: {
771
+ userUuid: string | undefined;
772
+ token: string | undefined;
773
+ requestId: string;
774
+ };
775
+ meta: object;
776
+ errorShape: {
777
+ data: {
778
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
779
+ httpStatus: number;
780
+ };
781
+ message: string;
782
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
783
+ };
784
+ transformer: false;
785
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
786
+ toServer: _trpc_server.TRPCMutationProcedure<{
787
+ input: {
788
+ targetUuid: string;
789
+ address: string;
790
+ };
791
+ output: {
792
+ delivered: boolean;
793
+ };
794
+ meta: object;
795
+ }>;
796
+ }>>;
797
+ trustedHosts: _trpc_server.TRPCBuiltRouter<{
798
+ ctx: {
799
+ userUuid: string | undefined;
800
+ token: string | undefined;
801
+ requestId: string;
802
+ };
803
+ meta: object;
804
+ errorShape: {
805
+ data: {
806
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
807
+ httpStatus: number;
808
+ };
809
+ message: string;
810
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
811
+ };
812
+ transformer: false;
813
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
814
+ list: _trpc_server.TRPCQueryProcedure<{
815
+ input: void;
816
+ output: {
817
+ items: {
818
+ id: string;
819
+ name: string;
820
+ domains: string[];
821
+ addedAt: string;
822
+ }[];
823
+ };
824
+ meta: object;
825
+ }>;
826
+ create: _trpc_server.TRPCMutationProcedure<{
827
+ input: {
828
+ name: string;
829
+ domains: string[];
830
+ };
831
+ output: {
832
+ host: {
833
+ id: string;
834
+ name: string;
835
+ domains: string[];
836
+ addedAt: string;
837
+ };
838
+ };
839
+ meta: object;
840
+ }>;
841
+ delete: _trpc_server.TRPCMutationProcedure<{
842
+ input: {
843
+ id: string;
844
+ };
845
+ output: {
846
+ deleted: boolean;
847
+ };
848
+ meta: object;
849
+ }>;
850
+ }>>;
851
+ communityRules: _trpc_server.TRPCBuiltRouter<{
852
+ ctx: {
853
+ userUuid: string | undefined;
854
+ token: string | undefined;
855
+ requestId: string;
856
+ };
857
+ meta: object;
858
+ errorShape: {
859
+ data: {
860
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
861
+ httpStatus: number;
862
+ };
863
+ message: string;
864
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
865
+ };
866
+ transformer: false;
867
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
868
+ get: _trpc_server.TRPCQueryProcedure<{
869
+ input: void;
870
+ output: {
871
+ updatedAt: string;
872
+ version: string;
873
+ accepted: boolean;
874
+ rules: {
875
+ locale: string;
876
+ title: string;
877
+ body: string;
878
+ }[];
879
+ };
880
+ meta: object;
881
+ }>;
882
+ agree: _trpc_server.TRPCMutationProcedure<{
883
+ input: void;
884
+ output: {
885
+ accepted: boolean;
886
+ };
887
+ meta: object;
888
+ }>;
889
+ }>>;
890
+ suspension: _trpc_server.TRPCBuiltRouter<{
891
+ ctx: {
892
+ userUuid: string | undefined;
893
+ token: string | undefined;
894
+ requestId: string;
895
+ };
896
+ meta: object;
897
+ errorShape: {
898
+ data: {
899
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
900
+ httpStatus: number;
901
+ };
902
+ message: string;
903
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
904
+ };
905
+ transformer: false;
906
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
907
+ get: _trpc_server.TRPCQueryProcedure<{
908
+ input: void;
909
+ output: {
910
+ suspended: boolean;
911
+ expiresAt?: string | undefined;
912
+ reason?: string | undefined;
913
+ };
914
+ meta: object;
915
+ }>;
916
+ }>>;
917
+ }>>;
918
+ cosmetics: _trpc_server.TRPCBuiltRouter<{
919
+ ctx: {
920
+ userUuid: string | undefined;
921
+ token: string | undefined;
922
+ requestId: string;
923
+ };
924
+ meta: object;
925
+ errorShape: {
926
+ data: {
927
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
928
+ httpStatus: number;
929
+ };
930
+ message: string;
931
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
932
+ };
933
+ transformer: false;
934
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
935
+ list: _trpc_server.TRPCQueryProcedure<{
936
+ input: {
937
+ type?: "body" | "hat" | "back" | "face" | "hand" | "feet" | "particle" | "emote" | undefined;
938
+ offset?: number | undefined;
939
+ limit?: number | undefined;
940
+ owned?: boolean | undefined;
941
+ };
942
+ output: {
943
+ items: {
944
+ type: "body" | "hat" | "back" | "face" | "hand" | "feet" | "particle" | "emote";
945
+ id: string;
946
+ name: Record<string, string>;
947
+ iconUrl: string | null;
948
+ rarity: "common" | "uncommon" | "rare" | "epic" | "legendary";
949
+ modelUrl: string | null;
950
+ owned: boolean;
951
+ equipped: boolean;
952
+ description?: Record<string, string> | undefined;
953
+ }[];
954
+ total: number;
955
+ };
956
+ meta: object;
957
+ }>;
958
+ equip: _trpc_server.TRPCMutationProcedure<{
959
+ input: {
960
+ equipped: boolean;
961
+ cosmeticId: string;
962
+ };
963
+ output: {
964
+ ok: boolean;
965
+ };
966
+ meta: object;
967
+ }>;
968
+ }>>;
969
+ admin: _trpc_server.TRPCBuiltRouter<{
970
+ ctx: {
971
+ userUuid: string | undefined;
972
+ token: string | undefined;
973
+ requestId: string;
974
+ };
975
+ meta: object;
976
+ errorShape: {
977
+ data: {
978
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
979
+ httpStatus: number;
980
+ };
981
+ message: string;
982
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
983
+ };
984
+ transformer: false;
985
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
986
+ users: _trpc_server.TRPCBuiltRouter<{
987
+ ctx: {
988
+ userUuid: string | undefined;
989
+ token: string | undefined;
990
+ requestId: string;
991
+ };
992
+ meta: object;
993
+ errorShape: {
994
+ data: {
995
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
996
+ httpStatus: number;
997
+ };
998
+ message: string;
999
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1000
+ };
1001
+ transformer: false;
1002
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1003
+ list: _trpc_server.TRPCQueryProcedure<{
1004
+ input: {
1005
+ offset?: number | undefined;
1006
+ search?: string | undefined;
1007
+ limit?: number | undefined;
1008
+ } | undefined;
1009
+ output: never;
1010
+ meta: object;
1011
+ }>;
1012
+ get: _trpc_server.TRPCQueryProcedure<{
1013
+ input: {
1014
+ uuid: string;
1015
+ };
1016
+ output: never;
1017
+ meta: object;
1018
+ }>;
1019
+ updateRole: _trpc_server.TRPCMutationProcedure<{
1020
+ input: {
1021
+ uuid: string;
1022
+ role: "USER" | "MODERATOR" | "ADMIN";
1023
+ };
1024
+ output: never;
1025
+ meta: object;
1026
+ }>;
1027
+ ban: _trpc_server.TRPCMutationProcedure<{
1028
+ input: {
1029
+ uuid: string;
1030
+ };
1031
+ output: never;
1032
+ meta: object;
1033
+ }>;
1034
+ }>>;
1035
+ builds: _trpc_server.TRPCBuiltRouter<{
1036
+ ctx: {
1037
+ userUuid: string | undefined;
1038
+ token: string | undefined;
1039
+ requestId: string;
1040
+ };
1041
+ meta: object;
1042
+ errorShape: {
1043
+ data: {
1044
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1045
+ httpStatus: number;
1046
+ };
1047
+ message: string;
1048
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1049
+ };
1050
+ transformer: false;
1051
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1052
+ list: _trpc_server.TRPCQueryProcedure<{
1053
+ input: void;
1054
+ output: never;
1055
+ meta: object;
1056
+ }>;
1057
+ create: _trpc_server.TRPCMutationProcedure<{
1058
+ input: {
1059
+ slug: string;
1060
+ name: string;
1061
+ shortDescription?: string | undefined;
1062
+ iconUrl?: string | undefined;
1063
+ visibility?: "PUBLIC" | "PRIVATE" | "UNLISTED" | undefined;
1064
+ };
1065
+ output: never;
1066
+ meta: object;
1067
+ }>;
1068
+ update: _trpc_server.TRPCMutationProcedure<{
1069
+ input: {
1070
+ id: string;
1071
+ name?: string | undefined;
1072
+ shortDescription?: string | undefined;
1073
+ iconUrl?: string | null | undefined;
1074
+ visibility?: "PUBLIC" | "PRIVATE" | "UNLISTED" | undefined;
1075
+ };
1076
+ output: never;
1077
+ meta: object;
1078
+ }>;
1079
+ delete: _trpc_server.TRPCMutationProcedure<{
1080
+ input: {
1081
+ id: string;
1082
+ };
1083
+ output: never;
1084
+ meta: object;
1085
+ }>;
1086
+ listVersions: _trpc_server.TRPCQueryProcedure<{
1087
+ input: {
1088
+ buildId: string;
1089
+ };
1090
+ output: never;
1091
+ meta: object;
1092
+ }>;
1093
+ createVersion: _trpc_server.TRPCMutationProcedure<{
1094
+ input: {
1095
+ name: string;
1096
+ buildId: string;
1097
+ mcVersion: string;
1098
+ loader: "VANILLA" | "FABRIC" | "FORGE" | "NEOFORGE" | "QUILT";
1099
+ sha256?: string | undefined;
1100
+ loaderVersion?: string | undefined;
1101
+ changelog?: string | undefined;
1102
+ downloadUrl?: string | undefined;
1103
+ bytes?: number | undefined;
1104
+ };
1105
+ output: never;
1106
+ meta: object;
1107
+ }>;
1108
+ deleteVersion: _trpc_server.TRPCMutationProcedure<{
1109
+ input: {
1110
+ id: string;
1111
+ };
1112
+ output: never;
1113
+ meta: object;
1114
+ }>;
1115
+ }>>;
1116
+ telemetry: _trpc_server.TRPCBuiltRouter<{
1117
+ ctx: {
1118
+ userUuid: string | undefined;
1119
+ token: string | undefined;
1120
+ requestId: string;
1121
+ };
1122
+ meta: object;
1123
+ errorShape: {
1124
+ data: {
1125
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1126
+ httpStatus: number;
1127
+ };
1128
+ message: string;
1129
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1130
+ };
1131
+ transformer: false;
1132
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1133
+ recent: _trpc_server.TRPCQueryProcedure<{
1134
+ input: void;
1135
+ output: never;
1136
+ meta: object;
1137
+ }>;
1138
+ }>>;
1139
+ stats: _trpc_server.TRPCQueryProcedure<{
1140
+ input: void;
1141
+ output: never;
1142
+ meta: object;
1143
+ }>;
1144
+ }>>;
1145
+ outfits: _trpc_server.TRPCBuiltRouter<{
1146
+ ctx: {
1147
+ userUuid: string | undefined;
1148
+ token: string | undefined;
1149
+ requestId: string;
1150
+ };
1151
+ meta: object;
1152
+ errorShape: {
1153
+ data: {
1154
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1155
+ httpStatus: number;
1156
+ };
1157
+ message: string;
1158
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1159
+ };
1160
+ transformer: false;
1161
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1162
+ list: _trpc_server.TRPCQueryProcedure<{
1163
+ input: void;
1164
+ output: {
1165
+ items: {
1166
+ id: string;
1167
+ name: string;
1168
+ updatedAt: string;
1169
+ slots: {
1170
+ type: "body" | "hat" | "back" | "face" | "hand" | "feet" | "particle" | "emote";
1171
+ cosmeticId: string | null;
1172
+ }[];
1173
+ createdAt: string;
1174
+ }[];
1175
+ };
1176
+ meta: object;
1177
+ }>;
1178
+ create: _trpc_server.TRPCMutationProcedure<{
1179
+ input: {
1180
+ name: string;
1181
+ slots: {
1182
+ type: "body" | "hat" | "back" | "face" | "hand" | "feet" | "particle" | "emote";
1183
+ cosmeticId: string | null;
1184
+ }[];
1185
+ };
1186
+ output: {
1187
+ outfit: {
1188
+ id: string;
1189
+ name: string;
1190
+ updatedAt: string;
1191
+ slots: {
1192
+ type: "body" | "hat" | "back" | "face" | "hand" | "feet" | "particle" | "emote";
1193
+ cosmeticId: string | null;
1194
+ }[];
1195
+ createdAt: string;
1196
+ };
1197
+ };
1198
+ meta: object;
1199
+ }>;
1200
+ update: _trpc_server.TRPCMutationProcedure<{
1201
+ input: {
1202
+ id: string;
1203
+ name?: string | undefined;
1204
+ slots?: {
1205
+ type: "body" | "hat" | "back" | "face" | "hand" | "feet" | "particle" | "emote";
1206
+ cosmeticId: string | null;
1207
+ }[] | undefined;
1208
+ };
1209
+ output: {
1210
+ outfit: {
1211
+ id: string;
1212
+ name: string;
1213
+ updatedAt: string;
1214
+ slots: {
1215
+ type: "body" | "hat" | "back" | "face" | "hand" | "feet" | "particle" | "emote";
1216
+ cosmeticId: string | null;
1217
+ }[];
1218
+ createdAt: string;
1219
+ };
1220
+ };
1221
+ meta: object;
1222
+ }>;
1223
+ delete: _trpc_server.TRPCMutationProcedure<{
1224
+ input: {
1225
+ id: string;
1226
+ };
1227
+ output: {
1228
+ deleted: boolean;
1229
+ };
1230
+ meta: object;
1231
+ }>;
1232
+ }>>;
1233
+ emoteWheels: _trpc_server.TRPCBuiltRouter<{
1234
+ ctx: {
1235
+ userUuid: string | undefined;
1236
+ token: string | undefined;
1237
+ requestId: string;
1238
+ };
1239
+ meta: object;
1240
+ errorShape: {
1241
+ data: {
1242
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1243
+ httpStatus: number;
1244
+ };
1245
+ message: string;
1246
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1247
+ };
1248
+ transformer: false;
1249
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1250
+ list: _trpc_server.TRPCQueryProcedure<{
1251
+ input: void;
1252
+ output: {
1253
+ items: {
1254
+ id: string;
1255
+ name: string;
1256
+ slots: {
1257
+ position: number;
1258
+ emoteId: string | null;
1259
+ }[];
1260
+ createdAt: string;
1261
+ }[];
1262
+ };
1263
+ meta: object;
1264
+ }>;
1265
+ save: _trpc_server.TRPCMutationProcedure<{
1266
+ input: {
1267
+ id: string | null;
1268
+ name: string;
1269
+ slots: {
1270
+ position: number;
1271
+ emoteId: string | null;
1272
+ }[];
1273
+ };
1274
+ output: {
1275
+ wheel: {
1276
+ id: string;
1277
+ name: string;
1278
+ slots: {
1279
+ position: number;
1280
+ emoteId: string | null;
1281
+ }[];
1282
+ createdAt: string;
1283
+ };
1284
+ };
1285
+ meta: object;
1286
+ }>;
1287
+ }>>;
1288
+ skins: _trpc_server.TRPCBuiltRouter<{
1289
+ ctx: {
1290
+ userUuid: string | undefined;
1291
+ token: string | undefined;
1292
+ requestId: string;
1293
+ };
1294
+ meta: object;
1295
+ errorShape: {
1296
+ data: {
1297
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1298
+ httpStatus: number;
1299
+ };
1300
+ message: string;
1301
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1302
+ };
1303
+ transformer: false;
1304
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1305
+ list: _trpc_server.TRPCQueryProcedure<{
1306
+ input: void;
1307
+ output: {
1308
+ items: {
1309
+ id: string;
1310
+ name: string;
1311
+ source: "mojang" | "uploaded";
1312
+ sha256: string;
1313
+ sizeBytes: number;
1314
+ active: boolean;
1315
+ createdAt: string;
1316
+ variant: "classic" | "slim";
1317
+ textureUrl: string;
1318
+ }[];
1319
+ };
1320
+ meta: object;
1321
+ }>;
1322
+ upload: _trpc_server.TRPCMutationProcedure<{
1323
+ input: {
1324
+ name: string;
1325
+ variant: "classic" | "slim";
1326
+ data: string;
1327
+ };
1328
+ output: {
1329
+ skin: {
1330
+ id: string;
1331
+ name: string;
1332
+ source: "mojang" | "uploaded";
1333
+ sha256: string;
1334
+ sizeBytes: number;
1335
+ active: boolean;
1336
+ createdAt: string;
1337
+ variant: "classic" | "slim";
1338
+ textureUrl: string;
1339
+ };
1340
+ };
1341
+ meta: object;
1342
+ }>;
1343
+ setActive: _trpc_server.TRPCMutationProcedure<{
1344
+ input: {
1345
+ id: string;
1346
+ };
1347
+ output: {
1348
+ ok: boolean;
1349
+ };
1350
+ meta: object;
1351
+ }>;
1352
+ }>>;
1353
+ chat: _trpc_server.TRPCBuiltRouter<{
1354
+ ctx: {
1355
+ userUuid: string | undefined;
1356
+ token: string | undefined;
1357
+ requestId: string;
1358
+ };
1359
+ meta: object;
1360
+ errorShape: {
1361
+ data: {
1362
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1363
+ httpStatus: number;
1364
+ };
1365
+ message: string;
1366
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1367
+ };
1368
+ transformer: false;
1369
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1370
+ channels: _trpc_server.TRPCBuiltRouter<{
1371
+ ctx: {
1372
+ userUuid: string | undefined;
1373
+ token: string | undefined;
1374
+ requestId: string;
1375
+ };
1376
+ meta: object;
1377
+ errorShape: {
1378
+ data: {
1379
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1380
+ httpStatus: number;
1381
+ };
1382
+ message: string;
1383
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1384
+ };
1385
+ transformer: false;
1386
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1387
+ list: _trpc_server.TRPCQueryProcedure<{
1388
+ input: {
1389
+ kind?: "DM" | "GROUP" | "ANNOUNCEMENT" | undefined;
1390
+ };
1391
+ output: {
1392
+ items: {
1393
+ id: string;
1394
+ name: string | null;
1395
+ kind: "DM" | "GROUP" | "ANNOUNCEMENT";
1396
+ createdAt: string;
1397
+ members: {
1398
+ role: "owner" | "admin" | "member";
1399
+ user: {
1400
+ email: string;
1401
+ uuid: string;
1402
+ username: string;
1403
+ displayName: string;
1404
+ avatarUrl: string | null;
1405
+ role: "USER" | "MODERATOR" | "ADMIN";
1406
+ };
1407
+ joinedAt: string;
1408
+ lastReadAt: string | null;
1409
+ muted: boolean;
1410
+ }[];
1411
+ lastMessageAt: string | null;
1412
+ unreadCount: number;
1413
+ }[];
1414
+ };
1415
+ meta: object;
1416
+ }>;
1417
+ createDM: _trpc_server.TRPCMutationProcedure<{
1418
+ input: {
1419
+ otherUserUuid: string;
1420
+ };
1421
+ output: {
1422
+ channel: {
1423
+ id: string;
1424
+ name: string | null;
1425
+ kind: "DM" | "GROUP" | "ANNOUNCEMENT";
1426
+ createdAt: string;
1427
+ members: {
1428
+ role: "owner" | "admin" | "member";
1429
+ user: {
1430
+ email: string;
1431
+ uuid: string;
1432
+ username: string;
1433
+ displayName: string;
1434
+ avatarUrl: string | null;
1435
+ role: "USER" | "MODERATOR" | "ADMIN";
1436
+ };
1437
+ joinedAt: string;
1438
+ lastReadAt: string | null;
1439
+ muted: boolean;
1440
+ }[];
1441
+ lastMessageAt: string | null;
1442
+ unreadCount: number;
1443
+ };
1444
+ };
1445
+ meta: object;
1446
+ }>;
1447
+ createGroup: _trpc_server.TRPCMutationProcedure<{
1448
+ input: {
1449
+ name: string;
1450
+ memberUuids: string[];
1451
+ };
1452
+ output: {
1453
+ channel: {
1454
+ id: string;
1455
+ name: string | null;
1456
+ kind: "DM" | "GROUP" | "ANNOUNCEMENT";
1457
+ createdAt: string;
1458
+ members: {
1459
+ role: "owner" | "admin" | "member";
1460
+ user: {
1461
+ email: string;
1462
+ uuid: string;
1463
+ username: string;
1464
+ displayName: string;
1465
+ avatarUrl: string | null;
1466
+ role: "USER" | "MODERATOR" | "ADMIN";
1467
+ };
1468
+ joinedAt: string;
1469
+ lastReadAt: string | null;
1470
+ muted: boolean;
1471
+ }[];
1472
+ lastMessageAt: string | null;
1473
+ unreadCount: number;
1474
+ };
1475
+ };
1476
+ meta: object;
1477
+ }>;
1478
+ }>>;
1479
+ messages: _trpc_server.TRPCBuiltRouter<{
1480
+ ctx: {
1481
+ userUuid: string | undefined;
1482
+ token: string | undefined;
1483
+ requestId: string;
1484
+ };
1485
+ meta: object;
1486
+ errorShape: {
1487
+ data: {
1488
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1489
+ httpStatus: number;
1490
+ };
1491
+ message: string;
1492
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1493
+ };
1494
+ transformer: false;
1495
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1496
+ list: _trpc_server.TRPCQueryProcedure<{
1497
+ input: {
1498
+ channelId: string;
1499
+ limit?: number | undefined;
1500
+ before?: string | undefined;
1501
+ };
1502
+ output: {
1503
+ items: {
1504
+ id: string;
1505
+ body: string;
1506
+ createdAt: string;
1507
+ channelId: string;
1508
+ authorUuid: string;
1509
+ authorDisplayName: string;
1510
+ editedAt: string | null;
1511
+ deletedAt: string | null;
1512
+ bodyMarkdown?: string | undefined;
1513
+ replyTo?: string | null | undefined;
1514
+ }[];
1515
+ };
1516
+ meta: object;
1517
+ }>;
1518
+ send: _trpc_server.TRPCMutationProcedure<{
1519
+ input: {
1520
+ body: string;
1521
+ channelId: string;
1522
+ replyTo?: string | undefined;
1523
+ };
1524
+ output: {
1525
+ message: {
1526
+ id: string;
1527
+ body: string;
1528
+ createdAt: string;
1529
+ channelId: string;
1530
+ authorUuid: string;
1531
+ authorDisplayName: string;
1532
+ editedAt: string | null;
1533
+ deletedAt: string | null;
1534
+ bodyMarkdown?: string | undefined;
1535
+ replyTo?: string | null | undefined;
1536
+ };
1537
+ };
1538
+ meta: object;
1539
+ }>;
1540
+ edit: _trpc_server.TRPCMutationProcedure<{
1541
+ input: {
1542
+ id: string;
1543
+ body: string;
1544
+ };
1545
+ output: {
1546
+ message: {
1547
+ id: string;
1548
+ body: string;
1549
+ createdAt: string;
1550
+ channelId: string;
1551
+ authorUuid: string;
1552
+ authorDisplayName: string;
1553
+ editedAt: string | null;
1554
+ deletedAt: string | null;
1555
+ bodyMarkdown?: string | undefined;
1556
+ replyTo?: string | null | undefined;
1557
+ };
1558
+ };
1559
+ meta: object;
1560
+ }>;
1561
+ delete: _trpc_server.TRPCMutationProcedure<{
1562
+ input: {
1563
+ id: string;
1564
+ };
1565
+ output: {
1566
+ deleted: boolean;
1567
+ };
1568
+ meta: object;
1569
+ }>;
1570
+ markRead: _trpc_server.TRPCMutationProcedure<{
1571
+ input: {
1572
+ channelId: string;
1573
+ messageId: string;
1574
+ };
1575
+ output: {
1576
+ ok: boolean;
1577
+ };
1578
+ meta: object;
1579
+ }>;
1580
+ report: _trpc_server.TRPCMutationProcedure<{
1581
+ input: {
1582
+ reason: "spam" | "harassment" | "illegal" | "other";
1583
+ messageId: string;
1584
+ note?: string | undefined;
1585
+ };
1586
+ output: {
1587
+ reported: boolean;
1588
+ };
1589
+ meta: object;
1590
+ }>;
1591
+ reports: _trpc_server.TRPCQueryProcedure<{
1592
+ input: {
1593
+ channelId: string;
1594
+ start?: string | undefined;
1595
+ end?: string | undefined;
1596
+ };
1597
+ output: {
1598
+ items: any[];
1599
+ };
1600
+ meta: object;
1601
+ }>;
1602
+ }>>;
1603
+ }>>;
1604
+ media: _trpc_server.TRPCBuiltRouter<{
1605
+ ctx: {
1606
+ userUuid: string | undefined;
1607
+ token: string | undefined;
1608
+ requestId: string;
1609
+ };
1610
+ meta: object;
1611
+ errorShape: {
1612
+ data: {
1613
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1614
+ httpStatus: number;
1615
+ };
1616
+ message: string;
1617
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1618
+ };
1619
+ transformer: false;
1620
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1621
+ list: _trpc_server.TRPCQueryProcedure<{
1622
+ input: {
1623
+ offset?: number | undefined;
1624
+ kind?: "world" | "screenshot" | "video" | "skin" | undefined;
1625
+ limit?: number | undefined;
1626
+ };
1627
+ output: {
1628
+ items: {
1629
+ url: string;
1630
+ id: string;
1631
+ sha256: string;
1632
+ sizeBytes: number;
1633
+ kind: "world" | "screenshot" | "video" | "skin";
1634
+ createdAt: string;
1635
+ thumbnailUrl: string | null;
1636
+ width?: number | undefined;
1637
+ height?: number | undefined;
1638
+ durationSec?: number | undefined;
1639
+ }[];
1640
+ };
1641
+ meta: object;
1642
+ }>;
1643
+ upload: _trpc_server.TRPCMutationProcedure<{
1644
+ input: {
1645
+ kind: "world" | "screenshot" | "video" | "skin";
1646
+ data: string;
1647
+ filename: string;
1648
+ width?: number | undefined;
1649
+ height?: number | undefined;
1650
+ };
1651
+ output: {
1652
+ item: {
1653
+ url: string;
1654
+ id: string;
1655
+ sha256: string;
1656
+ sizeBytes: number;
1657
+ kind: "world" | "screenshot" | "video" | "skin";
1658
+ createdAt: string;
1659
+ thumbnailUrl: string | null;
1660
+ width?: number | undefined;
1661
+ height?: number | undefined;
1662
+ durationSec?: number | undefined;
1663
+ };
1664
+ };
1665
+ meta: object;
1666
+ }>;
1667
+ delete: _trpc_server.TRPCMutationProcedure<{
1668
+ input: {
1669
+ id: string;
1670
+ };
1671
+ output: {
1672
+ deleted: boolean;
1673
+ };
1674
+ meta: object;
1675
+ }>;
1676
+ }>>;
1677
+ multiplayer: _trpc_server.TRPCBuiltRouter<{
1678
+ ctx: {
1679
+ userUuid: string | undefined;
1680
+ token: string | undefined;
1681
+ requestId: string;
1682
+ };
1683
+ meta: object;
1684
+ errorShape: {
1685
+ data: {
1686
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1687
+ httpStatus: number;
1688
+ };
1689
+ message: string;
1690
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1691
+ };
1692
+ transformer: false;
1693
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1694
+ sendSignaling: _trpc_server.TRPCMutationProcedure<{
1695
+ input: {
1696
+ kind: "offer" | "answer" | "candidate";
1697
+ toUuid: string;
1698
+ payload: string;
1699
+ };
1700
+ output: {
1701
+ message: {
1702
+ id: string;
1703
+ kind: "offer" | "answer" | "candidate";
1704
+ fromUuid: string;
1705
+ toUuid: string;
1706
+ createdAt: string;
1707
+ payload: string;
1708
+ };
1709
+ };
1710
+ meta: object;
1711
+ }>;
1712
+ listSignaling: _trpc_server.TRPCQueryProcedure<{
1713
+ input: {
1714
+ since?: string | undefined;
1715
+ fromUuid?: string | undefined;
1716
+ };
1717
+ output: {
1718
+ items: {
1719
+ id: string;
1720
+ kind: "offer" | "answer" | "candidate";
1721
+ fromUuid: string;
1722
+ toUuid: string;
1723
+ createdAt: string;
1724
+ payload: string;
1725
+ }[];
1726
+ };
1727
+ meta: object;
1728
+ }>;
1729
+ }>>;
1730
+ upnp: _trpc_server.TRPCBuiltRouter<{
1731
+ ctx: {
1732
+ userUuid: string | undefined;
1733
+ token: string | undefined;
1734
+ requestId: string;
1735
+ };
1736
+ meta: object;
1737
+ errorShape: {
1738
+ data: {
1739
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1740
+ httpStatus: number;
1741
+ };
1742
+ message: string;
1743
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1744
+ };
1745
+ transformer: false;
1746
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1747
+ list: _trpc_server.TRPCQueryProcedure<{
1748
+ input: void;
1749
+ output: {
1750
+ items: {
1751
+ status: "active" | "pending" | "closed" | "error";
1752
+ id: string;
1753
+ createdAt: string;
1754
+ ownerUuid: string;
1755
+ ownerDisplayName: string;
1756
+ publicAddress: string;
1757
+ publicPort: number;
1758
+ localAddress: string;
1759
+ localPort: number;
1760
+ closedAt: string | null;
1761
+ invitedUuids: string[];
1762
+ }[];
1763
+ };
1764
+ meta: object;
1765
+ }>;
1766
+ create: _trpc_server.TRPCMutationProcedure<{
1767
+ input: {
1768
+ localAddress: string;
1769
+ localPort: number;
1770
+ invitedUuids?: string[] | undefined;
1771
+ };
1772
+ output: {
1773
+ session: {
1774
+ status: "active" | "pending" | "closed" | "error";
1775
+ id: string;
1776
+ createdAt: string;
1777
+ ownerUuid: string;
1778
+ ownerDisplayName: string;
1779
+ publicAddress: string;
1780
+ publicPort: number;
1781
+ localAddress: string;
1782
+ localPort: number;
1783
+ closedAt: string | null;
1784
+ invitedUuids: string[];
1785
+ };
1786
+ };
1787
+ meta: object;
1788
+ }>;
1789
+ close: _trpc_server.TRPCMutationProcedure<{
1790
+ input: {
1791
+ id: string;
1792
+ };
1793
+ output: {
1794
+ closed: boolean;
1795
+ };
1796
+ meta: object;
1797
+ }>;
1798
+ }>>;
1799
+ discovery: _trpc_server.TRPCBuiltRouter<{
1800
+ ctx: {
1801
+ userUuid: string | undefined;
1802
+ token: string | undefined;
1803
+ requestId: string;
1804
+ };
1805
+ meta: object;
1806
+ errorShape: {
1807
+ data: {
1808
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1809
+ httpStatus: number;
1810
+ };
1811
+ message: string;
1812
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1813
+ };
1814
+ transformer: false;
1815
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1816
+ list: _trpc_server.TRPCQueryProcedure<{
1817
+ input: void;
1818
+ output: {
1819
+ items: {
1820
+ id: string;
1821
+ name: string;
1822
+ iconUrl: string | null;
1823
+ source: "anvil" | "community";
1824
+ version: string | null;
1825
+ address: string;
1826
+ playerCount: number | null;
1827
+ maxPlayers: number | null;
1828
+ pingMs: number | null;
1829
+ description?: string | undefined;
1830
+ }[];
1831
+ };
1832
+ meta: object;
1833
+ }>;
1834
+ }>>;
1835
+ system: _trpc_server.TRPCBuiltRouter<{
1836
+ ctx: {
1837
+ userUuid: string | undefined;
1838
+ token: string | undefined;
1839
+ requestId: string;
1840
+ };
1841
+ meta: object;
1842
+ errorShape: {
1843
+ data: {
1844
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1845
+ httpStatus: number;
1846
+ };
1847
+ message: string;
1848
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1849
+ };
1850
+ transformer: false;
1851
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1852
+ status: _trpc_server.TRPCQueryProcedure<{
1853
+ input: void;
1854
+ output: {
1855
+ message: string | null;
1856
+ status: "operational" | "degraded" | "outage";
1857
+ maintenanceUntil: string | null;
1858
+ };
1859
+ meta: object;
1860
+ }>;
1861
+ }>>;
1862
+ instances: _trpc_server.TRPCBuiltRouter<{
1863
+ ctx: {
1864
+ userUuid: string | undefined;
1865
+ token: string | undefined;
1866
+ requestId: string;
1867
+ };
1868
+ meta: object;
1869
+ errorShape: {
1870
+ data: {
1871
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1872
+ httpStatus: number;
1873
+ };
1874
+ message: string;
1875
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1876
+ };
1877
+ transformer: false;
1878
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1879
+ list: _trpc_server.TRPCQueryProcedure<{
1880
+ input: void;
1881
+ output: {
1882
+ items: {
1883
+ path: string;
1884
+ id: string;
1885
+ name: string;
1886
+ sizeBytes: number;
1887
+ mcVersion: string;
1888
+ loader: "vanilla" | "fabric" | "forge" | "neoforge" | "quilt";
1889
+ loaderVersion: string;
1890
+ lastPlayedAt: string | null;
1891
+ installedAt: string;
1892
+ }[];
1893
+ };
1894
+ meta: object;
1895
+ }>;
1896
+ }>>;
1897
+ telemetry: _trpc_server.TRPCBuiltRouter<{
1898
+ ctx: {
1899
+ userUuid: string | undefined;
1900
+ token: string | undefined;
1901
+ requestId: string;
1902
+ };
1903
+ meta: object;
1904
+ errorShape: {
1905
+ data: {
1906
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1907
+ httpStatus: number;
1908
+ };
1909
+ message: string;
1910
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1911
+ };
1912
+ transformer: false;
1913
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1914
+ report: _trpc_server.TRPCMutationProcedure<{
1915
+ input: {
1916
+ event: "launch" | "playtime" | "crash";
1917
+ metadata?: Record<string, string> | undefined;
1918
+ };
1919
+ output: {
1920
+ ok: boolean;
1921
+ };
1922
+ meta: object;
1923
+ }>;
1924
+ }>>;
1925
+ launcher: _trpc_server.TRPCBuiltRouter<{
1926
+ ctx: {
1927
+ userUuid: string | undefined;
1928
+ token: string | undefined;
1929
+ requestId: string;
1930
+ };
1931
+ meta: object;
1932
+ errorShape: {
1933
+ data: {
1934
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1935
+ httpStatus: number;
1936
+ };
1937
+ message: string;
1938
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1939
+ };
1940
+ transformer: false;
1941
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1942
+ updateCheck: _trpc_server.TRPCQueryProcedure<{
1943
+ input: void;
1944
+ output: {
1945
+ changelog: string | null;
1946
+ downloadUrl: string | null;
1947
+ currentVersion: string;
1948
+ latestVersion: string;
1949
+ updateAvailable: boolean;
1950
+ };
1951
+ meta: object;
1952
+ }>;
1953
+ }>>;
1954
+ }>>;
1955
+ }>>;
1956
+ type AppRouter = typeof appRouter;
1957
+ /**
1958
+ * createCaller -- for server-side rendering and tests.
1959
+ * Avoids the HTTP transport entirely.
1960
+ */
1961
+ declare const createCaller: (ctx: CreateContextOptions) => Promise<_trpc_server_unstable_core_do_not_import.DecorateRouterRecord<_trpc_server.TRPCDecorateCreateRouterOptions<{
1962
+ v1: _trpc_server.TRPCBuiltRouter<{
1963
+ ctx: {
1964
+ userUuid: string | undefined;
1965
+ token: string | undefined;
1966
+ requestId: string;
1967
+ };
1968
+ meta: object;
1969
+ errorShape: {
1970
+ data: {
1971
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1972
+ httpStatus: number;
1973
+ };
1974
+ message: string;
1975
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1976
+ };
1977
+ transformer: false;
1978
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1979
+ health: _trpc_server.TRPCBuiltRouter<{
1980
+ ctx: {
1981
+ userUuid: string | undefined;
1982
+ token: string | undefined;
1983
+ requestId: string;
1984
+ };
1985
+ meta: object;
1986
+ errorShape: {
1987
+ data: {
1988
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
1989
+ httpStatus: number;
1990
+ };
1991
+ message: string;
1992
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
1993
+ };
1994
+ transformer: false;
1995
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
1996
+ ping: _trpc_server.TRPCQueryProcedure<{
1997
+ input: void;
1998
+ output: {
1999
+ status: string;
2000
+ version: string;
2001
+ timestamp: string;
2002
+ };
2003
+ meta: object;
2004
+ }>;
2005
+ version: _trpc_server.TRPCQueryProcedure<{
2006
+ input: void;
2007
+ output: {
2008
+ api: string;
2009
+ minLauncher: string;
2010
+ recommendedLauncher: string;
2011
+ deprecations: string[];
2012
+ };
2013
+ meta: object;
2014
+ }>;
2015
+ }>>;
2016
+ auth: _trpc_server.TRPCBuiltRouter<{
2017
+ ctx: {
2018
+ userUuid: string | undefined;
2019
+ token: string | undefined;
2020
+ requestId: string;
2021
+ };
2022
+ meta: object;
2023
+ errorShape: {
2024
+ data: {
2025
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2026
+ httpStatus: number;
2027
+ };
2028
+ message: string;
2029
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2030
+ };
2031
+ transformer: false;
2032
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2033
+ signIn: _trpc_server.TRPCMutationProcedure<{
2034
+ input: {
2035
+ email: string;
2036
+ password: string;
2037
+ };
2038
+ output: {
2039
+ user: {
2040
+ email: string;
2041
+ uuid: string;
2042
+ username: string;
2043
+ displayName: string;
2044
+ avatarUrl: string | null;
2045
+ role: "USER" | "MODERATOR" | "ADMIN";
2046
+ };
2047
+ accessToken: string;
2048
+ refreshToken: string;
2049
+ expiresAt: string;
2050
+ };
2051
+ meta: object;
2052
+ }>;
2053
+ signUp: _trpc_server.TRPCMutationProcedure<{
2054
+ input: {
2055
+ email: string;
2056
+ username: string;
2057
+ password: string;
2058
+ };
2059
+ output: {
2060
+ user: {
2061
+ email: string;
2062
+ uuid: string;
2063
+ username: string;
2064
+ displayName: string;
2065
+ avatarUrl: string | null;
2066
+ role: "USER" | "MODERATOR" | "ADMIN";
2067
+ };
2068
+ accessToken: string;
2069
+ refreshToken: string;
2070
+ expiresAt: string;
2071
+ };
2072
+ meta: object;
2073
+ }>;
2074
+ refresh: _trpc_server.TRPCMutationProcedure<{
2075
+ input: {
2076
+ refreshToken: string;
2077
+ };
2078
+ output: {
2079
+ accessToken: string;
2080
+ refreshToken: string;
2081
+ expiresAt: string;
2082
+ };
2083
+ meta: object;
2084
+ }>;
2085
+ validate: _trpc_server.TRPCQueryProcedure<{
2086
+ input: {
2087
+ token: string;
2088
+ };
2089
+ output: {
2090
+ valid: boolean;
2091
+ user?: {
2092
+ email: string;
2093
+ uuid: string;
2094
+ username: string;
2095
+ displayName: string;
2096
+ avatarUrl: string | null;
2097
+ role: "USER" | "MODERATOR" | "ADMIN";
2098
+ } | undefined;
2099
+ expiresAt?: string | undefined;
2100
+ };
2101
+ meta: object;
2102
+ }>;
2103
+ forgotPassword: _trpc_server.TRPCMutationProcedure<{
2104
+ input: {
2105
+ email: string;
2106
+ };
2107
+ output: void;
2108
+ meta: object;
2109
+ }>;
2110
+ resetPassword: _trpc_server.TRPCMutationProcedure<{
2111
+ input: {
2112
+ token: string;
2113
+ newPassword: string;
2114
+ };
2115
+ output: void;
2116
+ meta: object;
2117
+ }>;
2118
+ signOut: _trpc_server.TRPCMutationProcedure<{
2119
+ input: void;
2120
+ output: void;
2121
+ meta: object;
2122
+ }>;
2123
+ session: _trpc_server.TRPCBuiltRouter<{
2124
+ ctx: {
2125
+ userUuid: string | undefined;
2126
+ token: string | undefined;
2127
+ requestId: string;
2128
+ };
2129
+ meta: object;
2130
+ errorShape: {
2131
+ data: {
2132
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2133
+ httpStatus: number;
2134
+ };
2135
+ message: string;
2136
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2137
+ };
2138
+ transformer: false;
2139
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2140
+ current: _trpc_server.TRPCQueryProcedure<{
2141
+ input: void;
2142
+ output: {
2143
+ anvil: {
2144
+ user: {
2145
+ email: string;
2146
+ uuid: string;
2147
+ username: string;
2148
+ displayName: string;
2149
+ avatarUrl: string | null;
2150
+ role: "USER" | "MODERATOR" | "ADMIN";
2151
+ };
2152
+ accessToken: string;
2153
+ refreshToken: string;
2154
+ expiresAt: string;
2155
+ };
2156
+ mojang: {
2157
+ uuid: string;
2158
+ username: string;
2159
+ accessToken: string;
2160
+ expiresAt: string;
2161
+ } | null;
2162
+ };
2163
+ meta: object;
2164
+ }>;
2165
+ }>>;
2166
+ mojang: _trpc_server.TRPCBuiltRouter<{
2167
+ ctx: {
2168
+ userUuid: string | undefined;
2169
+ token: string | undefined;
2170
+ requestId: string;
2171
+ };
2172
+ meta: object;
2173
+ errorShape: {
2174
+ data: {
2175
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2176
+ httpStatus: number;
2177
+ };
2178
+ message: string;
2179
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2180
+ };
2181
+ transformer: false;
2182
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2183
+ startDeviceCode: _trpc_server.TRPCMutationProcedure<{
2184
+ input: void;
2185
+ output: {
2186
+ interval: number;
2187
+ deviceCode: string;
2188
+ userCode: string;
2189
+ verificationUri: string;
2190
+ expiresIn: number;
2191
+ };
2192
+ meta: object;
2193
+ }>;
2194
+ pollDeviceCode: _trpc_server.TRPCQueryProcedure<{
2195
+ input: {
2196
+ deviceCode: string;
2197
+ };
2198
+ output: {
2199
+ kind: "success";
2200
+ mcAccessToken: string;
2201
+ mcRefreshToken: string;
2202
+ mcExpiresAt: string;
2203
+ profile: {
2204
+ uuid: string;
2205
+ username: string;
2206
+ };
2207
+ } | {
2208
+ kind: "pending";
2209
+ } | {
2210
+ code: "expired" | "authorization_declined" | "slow_down";
2211
+ kind: "error";
2212
+ };
2213
+ meta: object;
2214
+ }>;
2215
+ }>>;
2216
+ }>>;
2217
+ profile: _trpc_server.TRPCBuiltRouter<{
2218
+ ctx: {
2219
+ userUuid: string | undefined;
2220
+ token: string | undefined;
2221
+ requestId: string;
2222
+ };
2223
+ meta: object;
2224
+ errorShape: {
2225
+ data: {
2226
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2227
+ httpStatus: number;
2228
+ };
2229
+ message: string;
2230
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2231
+ };
2232
+ transformer: false;
2233
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2234
+ update: _trpc_server.TRPCMutationProcedure<{
2235
+ input: {
2236
+ displayName?: string | undefined;
2237
+ avatarUrl?: string | null | undefined;
2238
+ bio?: string | null | undefined;
2239
+ };
2240
+ output: never;
2241
+ meta: object;
2242
+ }>;
2243
+ changePassword: _trpc_server.TRPCMutationProcedure<{
2244
+ input: {
2245
+ newPassword: string;
2246
+ currentPassword: string;
2247
+ };
2248
+ output: never;
2249
+ meta: object;
2250
+ }>;
2251
+ }>>;
2252
+ builds: _trpc_server.TRPCBuiltRouter<{
2253
+ ctx: {
2254
+ userUuid: string | undefined;
2255
+ token: string | undefined;
2256
+ requestId: string;
2257
+ };
2258
+ meta: object;
2259
+ errorShape: {
2260
+ data: {
2261
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2262
+ httpStatus: number;
2263
+ };
2264
+ message: string;
2265
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2266
+ };
2267
+ transformer: false;
2268
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2269
+ list: _trpc_server.TRPCQueryProcedure<{
2270
+ input: {
2271
+ sort?: "name" | "popular" | "recent" | undefined;
2272
+ page?: number | undefined;
2273
+ pageSize?: number | undefined;
2274
+ mcVersions?: string[] | undefined;
2275
+ loaders?: ("vanilla" | "fabric" | "forge" | "neoforge" | "quilt")[] | undefined;
2276
+ visibility?: ("public" | "private" | "unlisted")[] | undefined;
2277
+ source?: ("anvil" | "modrinth")[] | undefined;
2278
+ search?: string | undefined;
2279
+ tags?: string[] | undefined;
2280
+ };
2281
+ output: {
2282
+ page: number;
2283
+ pageSize: number;
2284
+ items: {
2285
+ id: string;
2286
+ slug: string;
2287
+ name: string;
2288
+ shortDescription: string;
2289
+ iconUrl: string | null;
2290
+ mcVersions: string[];
2291
+ loaders: ("vanilla" | "fabric" | "forge" | "neoforge" | "quilt")[];
2292
+ visibility: "public" | "private" | "unlisted";
2293
+ pricing: {
2294
+ model: "free";
2295
+ } | {
2296
+ model: "paid";
2297
+ priceCents: number;
2298
+ currency: string;
2299
+ } | {
2300
+ model: "subscription";
2301
+ tiers: {
2302
+ id: string;
2303
+ name: string;
2304
+ priceCents: number;
2305
+ interval: "month" | "year";
2306
+ }[];
2307
+ };
2308
+ stats: {
2309
+ downloads: number;
2310
+ favorites: number;
2311
+ updatedAt: string;
2312
+ };
2313
+ source: "anvil" | "modrinth";
2314
+ }[];
2315
+ total: number;
2316
+ };
2317
+ meta: object;
2318
+ }>;
2319
+ get: _trpc_server.TRPCQueryProcedure<{
2320
+ input: {
2321
+ idOrSlug: string;
2322
+ };
2323
+ output: {
2324
+ id: string;
2325
+ slug: string;
2326
+ name: string;
2327
+ shortDescription: string;
2328
+ iconUrl: string | null;
2329
+ mcVersions: string[];
2330
+ loaders: ("vanilla" | "fabric" | "forge" | "neoforge" | "quilt")[];
2331
+ visibility: "public" | "private" | "unlisted";
2332
+ pricing: {
2333
+ model: "free";
2334
+ } | {
2335
+ model: "paid";
2336
+ priceCents: number;
2337
+ currency: string;
2338
+ } | {
2339
+ model: "subscription";
2340
+ tiers: {
2341
+ id: string;
2342
+ name: string;
2343
+ priceCents: number;
2344
+ interval: "month" | "year";
2345
+ }[];
2346
+ };
2347
+ stats: {
2348
+ downloads: number;
2349
+ favorites: number;
2350
+ updatedAt: string;
2351
+ };
2352
+ source: "anvil" | "modrinth";
2353
+ versions: {
2354
+ id: string;
2355
+ name: string;
2356
+ buildId: string;
2357
+ mcVersion: string;
2358
+ loader: "vanilla" | "fabric" | "forge" | "neoforge" | "quilt";
2359
+ loaderVersion: string;
2360
+ files: {
2361
+ url: string;
2362
+ sha256: string;
2363
+ sizeBytes: number;
2364
+ primary: boolean;
2365
+ }[];
2366
+ dependencies: {
2367
+ kind: "required" | "optional" | "incompatible" | "embedded";
2368
+ projectId: string;
2369
+ versionId?: string | undefined;
2370
+ }[];
2371
+ publishedAt: string;
2372
+ changelog?: string | undefined;
2373
+ }[];
2374
+ description?: string | undefined;
2375
+ longDescription?: Record<string, string> | undefined;
2376
+ };
2377
+ meta: object;
2378
+ }>;
2379
+ getVersions: _trpc_server.TRPCQueryProcedure<{
2380
+ input: {
2381
+ buildId: string;
2382
+ };
2383
+ output: any[];
2384
+ meta: object;
2385
+ }>;
2386
+ requestDownload: _trpc_server.TRPCMutationProcedure<{
2387
+ input: {
2388
+ versionId: string;
2389
+ clientArch?: "x64" | "arm64" | "x86" | undefined;
2390
+ };
2391
+ output: {
2392
+ expiresAt: string;
2393
+ sha256: string;
2394
+ sizeBytes: number;
2395
+ installId: string;
2396
+ downloadUrl: string;
2397
+ };
2398
+ meta: object;
2399
+ }>;
2400
+ }>>;
2401
+ licenses: _trpc_server.TRPCBuiltRouter<{
2402
+ ctx: {
2403
+ userUuid: string | undefined;
2404
+ token: string | undefined;
2405
+ requestId: string;
2406
+ };
2407
+ meta: object;
2408
+ errorShape: {
2409
+ data: {
2410
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2411
+ httpStatus: number;
2412
+ };
2413
+ message: string;
2414
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2415
+ };
2416
+ transformer: false;
2417
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2418
+ list: _trpc_server.TRPCQueryProcedure<{
2419
+ input: {
2420
+ status?: "active" | "expired" | "revoked" | undefined;
2421
+ buildId?: string | undefined;
2422
+ };
2423
+ output: {
2424
+ status: "active" | "expired" | "revoked";
2425
+ expiresAt: string | null;
2426
+ id: string;
2427
+ source: "subscription" | "purchase" | "gift" | "promo" | "dev_grant";
2428
+ buildId: string;
2429
+ buildName: string;
2430
+ grantedAt: string;
2431
+ }[];
2432
+ meta: object;
2433
+ }>;
2434
+ check: _trpc_server.TRPCQueryProcedure<{
2435
+ input: {
2436
+ buildId: string;
2437
+ };
2438
+ output: {
2439
+ hasAccess: boolean;
2440
+ license?: {
2441
+ status: "active" | "expired" | "revoked";
2442
+ expiresAt: string | null;
2443
+ id: string;
2444
+ source: "subscription" | "purchase" | "gift" | "promo" | "dev_grant";
2445
+ buildId: string;
2446
+ buildName: string;
2447
+ grantedAt: string;
2448
+ } | undefined;
2449
+ reason?: "expired" | "revoked" | "no_license" | "region_locked" | undefined;
2450
+ };
2451
+ meta: object;
2452
+ }>;
2453
+ }>>;
2454
+ social: _trpc_server.TRPCBuiltRouter<{
2455
+ ctx: {
2456
+ userUuid: string | undefined;
2457
+ token: string | undefined;
2458
+ requestId: string;
2459
+ };
2460
+ meta: object;
2461
+ errorShape: {
2462
+ data: {
2463
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2464
+ httpStatus: number;
2465
+ };
2466
+ message: string;
2467
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2468
+ };
2469
+ transformer: false;
2470
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2471
+ relationships: _trpc_server.TRPCBuiltRouter<{
2472
+ ctx: {
2473
+ userUuid: string | undefined;
2474
+ token: string | undefined;
2475
+ requestId: string;
2476
+ };
2477
+ meta: object;
2478
+ errorShape: {
2479
+ data: {
2480
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2481
+ httpStatus: number;
2482
+ };
2483
+ message: string;
2484
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2485
+ };
2486
+ transformer: false;
2487
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2488
+ create: _trpc_server.TRPCMutationProcedure<{
2489
+ input: {
2490
+ type: "FRIENDS" | "BLOCKED" | "NEUTRAL";
2491
+ targetUuid: string;
2492
+ };
2493
+ output: {
2494
+ relationship: {
2495
+ type: "FRIENDS" | "BLOCKED" | "NEUTRAL";
2496
+ status: "PENDING" | "VERIFIED";
2497
+ id: string;
2498
+ direction: "INCOMING" | "OUTGOING" | "MUTUAL";
2499
+ otherUser: {
2500
+ email: string;
2501
+ uuid: string;
2502
+ username: string;
2503
+ displayName: string;
2504
+ avatarUrl: string | null;
2505
+ role: "USER" | "MODERATOR" | "ADMIN";
2506
+ };
2507
+ since: string;
2508
+ initiatorUuid: string;
2509
+ };
2510
+ created: boolean;
2511
+ };
2512
+ meta: object;
2513
+ }>;
2514
+ delete: _trpc_server.TRPCMutationProcedure<{
2515
+ input: {
2516
+ type: "FRIENDS" | "BLOCKED" | "NEUTRAL";
2517
+ targetUuid: string;
2518
+ };
2519
+ output: {
2520
+ deleted: boolean;
2521
+ };
2522
+ meta: object;
2523
+ }>;
2524
+ list: _trpc_server.TRPCQueryProcedure<{
2525
+ input: {
2526
+ type?: "FRIENDS" | "BLOCKED" | "INCOMING_PENDING" | "OUTGOING_PENDING" | undefined;
2527
+ };
2528
+ output: {
2529
+ items: {
2530
+ type: "FRIENDS" | "BLOCKED" | "NEUTRAL";
2531
+ status: "PENDING" | "VERIFIED";
2532
+ id: string;
2533
+ direction: "INCOMING" | "OUTGOING" | "MUTUAL";
2534
+ otherUser: {
2535
+ email: string;
2536
+ uuid: string;
2537
+ username: string;
2538
+ displayName: string;
2539
+ avatarUrl: string | null;
2540
+ role: "USER" | "MODERATOR" | "ADMIN";
2541
+ };
2542
+ since: string;
2543
+ initiatorUuid: string;
2544
+ }[];
2545
+ };
2546
+ meta: object;
2547
+ }>;
2548
+ acceptRequest: _trpc_server.TRPCMutationProcedure<{
2549
+ input: {
2550
+ fromUuid: string;
2551
+ };
2552
+ output: {
2553
+ relationship: {
2554
+ type: "FRIENDS" | "BLOCKED" | "NEUTRAL";
2555
+ status: "PENDING" | "VERIFIED";
2556
+ id: string;
2557
+ direction: "INCOMING" | "OUTGOING" | "MUTUAL";
2558
+ otherUser: {
2559
+ email: string;
2560
+ uuid: string;
2561
+ username: string;
2562
+ displayName: string;
2563
+ avatarUrl: string | null;
2564
+ role: "USER" | "MODERATOR" | "ADMIN";
2565
+ };
2566
+ since: string;
2567
+ initiatorUuid: string;
2568
+ };
2569
+ };
2570
+ meta: object;
2571
+ }>;
2572
+ cancelRequest: _trpc_server.TRPCMutationProcedure<{
2573
+ input: {
2574
+ toUuid: string;
2575
+ };
2576
+ output: {
2577
+ cancelled: boolean;
2578
+ };
2579
+ meta: object;
2580
+ }>;
2581
+ }>>;
2582
+ users: _trpc_server.TRPCBuiltRouter<{
2583
+ ctx: {
2584
+ userUuid: string | undefined;
2585
+ token: string | undefined;
2586
+ requestId: string;
2587
+ };
2588
+ meta: object;
2589
+ errorShape: {
2590
+ data: {
2591
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2592
+ httpStatus: number;
2593
+ };
2594
+ message: string;
2595
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2596
+ };
2597
+ transformer: false;
2598
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2599
+ lookupByName: _trpc_server.TRPCQueryProcedure<{
2600
+ input: {
2601
+ username: string;
2602
+ };
2603
+ output: {
2604
+ user: {
2605
+ uuid: string;
2606
+ username: string;
2607
+ displayName: string;
2608
+ } | null;
2609
+ nameMap: Record<string, string>;
2610
+ };
2611
+ meta: object;
2612
+ }>;
2613
+ }>>;
2614
+ presence: _trpc_server.TRPCBuiltRouter<{
2615
+ ctx: {
2616
+ userUuid: string | undefined;
2617
+ token: string | undefined;
2618
+ requestId: string;
2619
+ };
2620
+ meta: object;
2621
+ errorShape: {
2622
+ data: {
2623
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2624
+ httpStatus: number;
2625
+ };
2626
+ message: string;
2627
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2628
+ };
2629
+ transformer: false;
2630
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2631
+ /**
2632
+ * Query (not subscription) in this scaffold. Prod presence streaming
2633
+ * will land as a separate /v1/ws subscription multiplexed over the
2634
+ * WebSocket gateway. For now the MSW layer returns a snapshot of the
2635
+ * current presence map; the client polls every 5s.
2636
+ */
2637
+ get: _trpc_server.TRPCQueryProcedure<{
2638
+ input: {
2639
+ uuids: string[];
2640
+ };
2641
+ output: {
2642
+ items: {
2643
+ status: "ONLINE" | "OFFLINE" | "AWAY" | "BUSY";
2644
+ uuid: string;
2645
+ lastOnline: string;
2646
+ currentActivity?: {
2647
+ type: string;
2648
+ metadata: Record<string, string>;
2649
+ } | undefined;
2650
+ }[];
2651
+ };
2652
+ meta: object;
2653
+ }>;
2654
+ }>>;
2655
+ activity: _trpc_server.TRPCBuiltRouter<{
2656
+ ctx: {
2657
+ userUuid: string | undefined;
2658
+ token: string | undefined;
2659
+ requestId: string;
2660
+ };
2661
+ meta: object;
2662
+ errorShape: {
2663
+ data: {
2664
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2665
+ httpStatus: number;
2666
+ };
2667
+ message: string;
2668
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2669
+ };
2670
+ transformer: false;
2671
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2672
+ report: _trpc_server.TRPCMutationProcedure<{
2673
+ input: {
2674
+ type: string;
2675
+ metadata: Record<string, string>;
2676
+ };
2677
+ output: void;
2678
+ meta: object;
2679
+ }>;
2680
+ }>>;
2681
+ invites: _trpc_server.TRPCBuiltRouter<{
2682
+ ctx: {
2683
+ userUuid: string | undefined;
2684
+ token: string | undefined;
2685
+ requestId: string;
2686
+ };
2687
+ meta: object;
2688
+ errorShape: {
2689
+ data: {
2690
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2691
+ httpStatus: number;
2692
+ };
2693
+ message: string;
2694
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2695
+ };
2696
+ transformer: false;
2697
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2698
+ toServer: _trpc_server.TRPCMutationProcedure<{
2699
+ input: {
2700
+ targetUuid: string;
2701
+ address: string;
2702
+ };
2703
+ output: {
2704
+ delivered: boolean;
2705
+ };
2706
+ meta: object;
2707
+ }>;
2708
+ }>>;
2709
+ trustedHosts: _trpc_server.TRPCBuiltRouter<{
2710
+ ctx: {
2711
+ userUuid: string | undefined;
2712
+ token: string | undefined;
2713
+ requestId: string;
2714
+ };
2715
+ meta: object;
2716
+ errorShape: {
2717
+ data: {
2718
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2719
+ httpStatus: number;
2720
+ };
2721
+ message: string;
2722
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2723
+ };
2724
+ transformer: false;
2725
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2726
+ list: _trpc_server.TRPCQueryProcedure<{
2727
+ input: void;
2728
+ output: {
2729
+ items: {
2730
+ id: string;
2731
+ name: string;
2732
+ domains: string[];
2733
+ addedAt: string;
2734
+ }[];
2735
+ };
2736
+ meta: object;
2737
+ }>;
2738
+ create: _trpc_server.TRPCMutationProcedure<{
2739
+ input: {
2740
+ name: string;
2741
+ domains: string[];
2742
+ };
2743
+ output: {
2744
+ host: {
2745
+ id: string;
2746
+ name: string;
2747
+ domains: string[];
2748
+ addedAt: string;
2749
+ };
2750
+ };
2751
+ meta: object;
2752
+ }>;
2753
+ delete: _trpc_server.TRPCMutationProcedure<{
2754
+ input: {
2755
+ id: string;
2756
+ };
2757
+ output: {
2758
+ deleted: boolean;
2759
+ };
2760
+ meta: object;
2761
+ }>;
2762
+ }>>;
2763
+ communityRules: _trpc_server.TRPCBuiltRouter<{
2764
+ ctx: {
2765
+ userUuid: string | undefined;
2766
+ token: string | undefined;
2767
+ requestId: string;
2768
+ };
2769
+ meta: object;
2770
+ errorShape: {
2771
+ data: {
2772
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2773
+ httpStatus: number;
2774
+ };
2775
+ message: string;
2776
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2777
+ };
2778
+ transformer: false;
2779
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2780
+ get: _trpc_server.TRPCQueryProcedure<{
2781
+ input: void;
2782
+ output: {
2783
+ updatedAt: string;
2784
+ version: string;
2785
+ accepted: boolean;
2786
+ rules: {
2787
+ locale: string;
2788
+ title: string;
2789
+ body: string;
2790
+ }[];
2791
+ };
2792
+ meta: object;
2793
+ }>;
2794
+ agree: _trpc_server.TRPCMutationProcedure<{
2795
+ input: void;
2796
+ output: {
2797
+ accepted: boolean;
2798
+ };
2799
+ meta: object;
2800
+ }>;
2801
+ }>>;
2802
+ suspension: _trpc_server.TRPCBuiltRouter<{
2803
+ ctx: {
2804
+ userUuid: string | undefined;
2805
+ token: string | undefined;
2806
+ requestId: string;
2807
+ };
2808
+ meta: object;
2809
+ errorShape: {
2810
+ data: {
2811
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2812
+ httpStatus: number;
2813
+ };
2814
+ message: string;
2815
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2816
+ };
2817
+ transformer: false;
2818
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2819
+ get: _trpc_server.TRPCQueryProcedure<{
2820
+ input: void;
2821
+ output: {
2822
+ suspended: boolean;
2823
+ expiresAt?: string | undefined;
2824
+ reason?: string | undefined;
2825
+ };
2826
+ meta: object;
2827
+ }>;
2828
+ }>>;
2829
+ }>>;
2830
+ cosmetics: _trpc_server.TRPCBuiltRouter<{
2831
+ ctx: {
2832
+ userUuid: string | undefined;
2833
+ token: string | undefined;
2834
+ requestId: string;
2835
+ };
2836
+ meta: object;
2837
+ errorShape: {
2838
+ data: {
2839
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2840
+ httpStatus: number;
2841
+ };
2842
+ message: string;
2843
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2844
+ };
2845
+ transformer: false;
2846
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2847
+ list: _trpc_server.TRPCQueryProcedure<{
2848
+ input: {
2849
+ type?: "body" | "hat" | "back" | "face" | "hand" | "feet" | "particle" | "emote" | undefined;
2850
+ offset?: number | undefined;
2851
+ limit?: number | undefined;
2852
+ owned?: boolean | undefined;
2853
+ };
2854
+ output: {
2855
+ items: {
2856
+ type: "body" | "hat" | "back" | "face" | "hand" | "feet" | "particle" | "emote";
2857
+ id: string;
2858
+ name: Record<string, string>;
2859
+ iconUrl: string | null;
2860
+ rarity: "common" | "uncommon" | "rare" | "epic" | "legendary";
2861
+ modelUrl: string | null;
2862
+ owned: boolean;
2863
+ equipped: boolean;
2864
+ description?: Record<string, string> | undefined;
2865
+ }[];
2866
+ total: number;
2867
+ };
2868
+ meta: object;
2869
+ }>;
2870
+ equip: _trpc_server.TRPCMutationProcedure<{
2871
+ input: {
2872
+ equipped: boolean;
2873
+ cosmeticId: string;
2874
+ };
2875
+ output: {
2876
+ ok: boolean;
2877
+ };
2878
+ meta: object;
2879
+ }>;
2880
+ }>>;
2881
+ admin: _trpc_server.TRPCBuiltRouter<{
2882
+ ctx: {
2883
+ userUuid: string | undefined;
2884
+ token: string | undefined;
2885
+ requestId: string;
2886
+ };
2887
+ meta: object;
2888
+ errorShape: {
2889
+ data: {
2890
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2891
+ httpStatus: number;
2892
+ };
2893
+ message: string;
2894
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2895
+ };
2896
+ transformer: false;
2897
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2898
+ users: _trpc_server.TRPCBuiltRouter<{
2899
+ ctx: {
2900
+ userUuid: string | undefined;
2901
+ token: string | undefined;
2902
+ requestId: string;
2903
+ };
2904
+ meta: object;
2905
+ errorShape: {
2906
+ data: {
2907
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2908
+ httpStatus: number;
2909
+ };
2910
+ message: string;
2911
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2912
+ };
2913
+ transformer: false;
2914
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2915
+ list: _trpc_server.TRPCQueryProcedure<{
2916
+ input: {
2917
+ offset?: number | undefined;
2918
+ search?: string | undefined;
2919
+ limit?: number | undefined;
2920
+ } | undefined;
2921
+ output: never;
2922
+ meta: object;
2923
+ }>;
2924
+ get: _trpc_server.TRPCQueryProcedure<{
2925
+ input: {
2926
+ uuid: string;
2927
+ };
2928
+ output: never;
2929
+ meta: object;
2930
+ }>;
2931
+ updateRole: _trpc_server.TRPCMutationProcedure<{
2932
+ input: {
2933
+ uuid: string;
2934
+ role: "USER" | "MODERATOR" | "ADMIN";
2935
+ };
2936
+ output: never;
2937
+ meta: object;
2938
+ }>;
2939
+ ban: _trpc_server.TRPCMutationProcedure<{
2940
+ input: {
2941
+ uuid: string;
2942
+ };
2943
+ output: never;
2944
+ meta: object;
2945
+ }>;
2946
+ }>>;
2947
+ builds: _trpc_server.TRPCBuiltRouter<{
2948
+ ctx: {
2949
+ userUuid: string | undefined;
2950
+ token: string | undefined;
2951
+ requestId: string;
2952
+ };
2953
+ meta: object;
2954
+ errorShape: {
2955
+ data: {
2956
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
2957
+ httpStatus: number;
2958
+ };
2959
+ message: string;
2960
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
2961
+ };
2962
+ transformer: false;
2963
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
2964
+ list: _trpc_server.TRPCQueryProcedure<{
2965
+ input: void;
2966
+ output: never;
2967
+ meta: object;
2968
+ }>;
2969
+ create: _trpc_server.TRPCMutationProcedure<{
2970
+ input: {
2971
+ slug: string;
2972
+ name: string;
2973
+ shortDescription?: string | undefined;
2974
+ iconUrl?: string | undefined;
2975
+ visibility?: "PUBLIC" | "PRIVATE" | "UNLISTED" | undefined;
2976
+ };
2977
+ output: never;
2978
+ meta: object;
2979
+ }>;
2980
+ update: _trpc_server.TRPCMutationProcedure<{
2981
+ input: {
2982
+ id: string;
2983
+ name?: string | undefined;
2984
+ shortDescription?: string | undefined;
2985
+ iconUrl?: string | null | undefined;
2986
+ visibility?: "PUBLIC" | "PRIVATE" | "UNLISTED" | undefined;
2987
+ };
2988
+ output: never;
2989
+ meta: object;
2990
+ }>;
2991
+ delete: _trpc_server.TRPCMutationProcedure<{
2992
+ input: {
2993
+ id: string;
2994
+ };
2995
+ output: never;
2996
+ meta: object;
2997
+ }>;
2998
+ listVersions: _trpc_server.TRPCQueryProcedure<{
2999
+ input: {
3000
+ buildId: string;
3001
+ };
3002
+ output: never;
3003
+ meta: object;
3004
+ }>;
3005
+ createVersion: _trpc_server.TRPCMutationProcedure<{
3006
+ input: {
3007
+ name: string;
3008
+ buildId: string;
3009
+ mcVersion: string;
3010
+ loader: "VANILLA" | "FABRIC" | "FORGE" | "NEOFORGE" | "QUILT";
3011
+ sha256?: string | undefined;
3012
+ loaderVersion?: string | undefined;
3013
+ changelog?: string | undefined;
3014
+ downloadUrl?: string | undefined;
3015
+ bytes?: number | undefined;
3016
+ };
3017
+ output: never;
3018
+ meta: object;
3019
+ }>;
3020
+ deleteVersion: _trpc_server.TRPCMutationProcedure<{
3021
+ input: {
3022
+ id: string;
3023
+ };
3024
+ output: never;
3025
+ meta: object;
3026
+ }>;
3027
+ }>>;
3028
+ telemetry: _trpc_server.TRPCBuiltRouter<{
3029
+ ctx: {
3030
+ userUuid: string | undefined;
3031
+ token: string | undefined;
3032
+ requestId: string;
3033
+ };
3034
+ meta: object;
3035
+ errorShape: {
3036
+ data: {
3037
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
3038
+ httpStatus: number;
3039
+ };
3040
+ message: string;
3041
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
3042
+ };
3043
+ transformer: false;
3044
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
3045
+ recent: _trpc_server.TRPCQueryProcedure<{
3046
+ input: void;
3047
+ output: never;
3048
+ meta: object;
3049
+ }>;
3050
+ }>>;
3051
+ stats: _trpc_server.TRPCQueryProcedure<{
3052
+ input: void;
3053
+ output: never;
3054
+ meta: object;
3055
+ }>;
3056
+ }>>;
3057
+ outfits: _trpc_server.TRPCBuiltRouter<{
3058
+ ctx: {
3059
+ userUuid: string | undefined;
3060
+ token: string | undefined;
3061
+ requestId: string;
3062
+ };
3063
+ meta: object;
3064
+ errorShape: {
3065
+ data: {
3066
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
3067
+ httpStatus: number;
3068
+ };
3069
+ message: string;
3070
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
3071
+ };
3072
+ transformer: false;
3073
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
3074
+ list: _trpc_server.TRPCQueryProcedure<{
3075
+ input: void;
3076
+ output: {
3077
+ items: {
3078
+ id: string;
3079
+ name: string;
3080
+ updatedAt: string;
3081
+ slots: {
3082
+ type: "body" | "hat" | "back" | "face" | "hand" | "feet" | "particle" | "emote";
3083
+ cosmeticId: string | null;
3084
+ }[];
3085
+ createdAt: string;
3086
+ }[];
3087
+ };
3088
+ meta: object;
3089
+ }>;
3090
+ create: _trpc_server.TRPCMutationProcedure<{
3091
+ input: {
3092
+ name: string;
3093
+ slots: {
3094
+ type: "body" | "hat" | "back" | "face" | "hand" | "feet" | "particle" | "emote";
3095
+ cosmeticId: string | null;
3096
+ }[];
3097
+ };
3098
+ output: {
3099
+ outfit: {
3100
+ id: string;
3101
+ name: string;
3102
+ updatedAt: string;
3103
+ slots: {
3104
+ type: "body" | "hat" | "back" | "face" | "hand" | "feet" | "particle" | "emote";
3105
+ cosmeticId: string | null;
3106
+ }[];
3107
+ createdAt: string;
3108
+ };
3109
+ };
3110
+ meta: object;
3111
+ }>;
3112
+ update: _trpc_server.TRPCMutationProcedure<{
3113
+ input: {
3114
+ id: string;
3115
+ name?: string | undefined;
3116
+ slots?: {
3117
+ type: "body" | "hat" | "back" | "face" | "hand" | "feet" | "particle" | "emote";
3118
+ cosmeticId: string | null;
3119
+ }[] | undefined;
3120
+ };
3121
+ output: {
3122
+ outfit: {
3123
+ id: string;
3124
+ name: string;
3125
+ updatedAt: string;
3126
+ slots: {
3127
+ type: "body" | "hat" | "back" | "face" | "hand" | "feet" | "particle" | "emote";
3128
+ cosmeticId: string | null;
3129
+ }[];
3130
+ createdAt: string;
3131
+ };
3132
+ };
3133
+ meta: object;
3134
+ }>;
3135
+ delete: _trpc_server.TRPCMutationProcedure<{
3136
+ input: {
3137
+ id: string;
3138
+ };
3139
+ output: {
3140
+ deleted: boolean;
3141
+ };
3142
+ meta: object;
3143
+ }>;
3144
+ }>>;
3145
+ emoteWheels: _trpc_server.TRPCBuiltRouter<{
3146
+ ctx: {
3147
+ userUuid: string | undefined;
3148
+ token: string | undefined;
3149
+ requestId: string;
3150
+ };
3151
+ meta: object;
3152
+ errorShape: {
3153
+ data: {
3154
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
3155
+ httpStatus: number;
3156
+ };
3157
+ message: string;
3158
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
3159
+ };
3160
+ transformer: false;
3161
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
3162
+ list: _trpc_server.TRPCQueryProcedure<{
3163
+ input: void;
3164
+ output: {
3165
+ items: {
3166
+ id: string;
3167
+ name: string;
3168
+ slots: {
3169
+ position: number;
3170
+ emoteId: string | null;
3171
+ }[];
3172
+ createdAt: string;
3173
+ }[];
3174
+ };
3175
+ meta: object;
3176
+ }>;
3177
+ save: _trpc_server.TRPCMutationProcedure<{
3178
+ input: {
3179
+ id: string | null;
3180
+ name: string;
3181
+ slots: {
3182
+ position: number;
3183
+ emoteId: string | null;
3184
+ }[];
3185
+ };
3186
+ output: {
3187
+ wheel: {
3188
+ id: string;
3189
+ name: string;
3190
+ slots: {
3191
+ position: number;
3192
+ emoteId: string | null;
3193
+ }[];
3194
+ createdAt: string;
3195
+ };
3196
+ };
3197
+ meta: object;
3198
+ }>;
3199
+ }>>;
3200
+ skins: _trpc_server.TRPCBuiltRouter<{
3201
+ ctx: {
3202
+ userUuid: string | undefined;
3203
+ token: string | undefined;
3204
+ requestId: string;
3205
+ };
3206
+ meta: object;
3207
+ errorShape: {
3208
+ data: {
3209
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
3210
+ httpStatus: number;
3211
+ };
3212
+ message: string;
3213
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
3214
+ };
3215
+ transformer: false;
3216
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
3217
+ list: _trpc_server.TRPCQueryProcedure<{
3218
+ input: void;
3219
+ output: {
3220
+ items: {
3221
+ id: string;
3222
+ name: string;
3223
+ source: "mojang" | "uploaded";
3224
+ sha256: string;
3225
+ sizeBytes: number;
3226
+ active: boolean;
3227
+ createdAt: string;
3228
+ variant: "classic" | "slim";
3229
+ textureUrl: string;
3230
+ }[];
3231
+ };
3232
+ meta: object;
3233
+ }>;
3234
+ upload: _trpc_server.TRPCMutationProcedure<{
3235
+ input: {
3236
+ name: string;
3237
+ variant: "classic" | "slim";
3238
+ data: string;
3239
+ };
3240
+ output: {
3241
+ skin: {
3242
+ id: string;
3243
+ name: string;
3244
+ source: "mojang" | "uploaded";
3245
+ sha256: string;
3246
+ sizeBytes: number;
3247
+ active: boolean;
3248
+ createdAt: string;
3249
+ variant: "classic" | "slim";
3250
+ textureUrl: string;
3251
+ };
3252
+ };
3253
+ meta: object;
3254
+ }>;
3255
+ setActive: _trpc_server.TRPCMutationProcedure<{
3256
+ input: {
3257
+ id: string;
3258
+ };
3259
+ output: {
3260
+ ok: boolean;
3261
+ };
3262
+ meta: object;
3263
+ }>;
3264
+ }>>;
3265
+ chat: _trpc_server.TRPCBuiltRouter<{
3266
+ ctx: {
3267
+ userUuid: string | undefined;
3268
+ token: string | undefined;
3269
+ requestId: string;
3270
+ };
3271
+ meta: object;
3272
+ errorShape: {
3273
+ data: {
3274
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
3275
+ httpStatus: number;
3276
+ };
3277
+ message: string;
3278
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
3279
+ };
3280
+ transformer: false;
3281
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
3282
+ channels: _trpc_server.TRPCBuiltRouter<{
3283
+ ctx: {
3284
+ userUuid: string | undefined;
3285
+ token: string | undefined;
3286
+ requestId: string;
3287
+ };
3288
+ meta: object;
3289
+ errorShape: {
3290
+ data: {
3291
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
3292
+ httpStatus: number;
3293
+ };
3294
+ message: string;
3295
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
3296
+ };
3297
+ transformer: false;
3298
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
3299
+ list: _trpc_server.TRPCQueryProcedure<{
3300
+ input: {
3301
+ kind?: "DM" | "GROUP" | "ANNOUNCEMENT" | undefined;
3302
+ };
3303
+ output: {
3304
+ items: {
3305
+ id: string;
3306
+ name: string | null;
3307
+ kind: "DM" | "GROUP" | "ANNOUNCEMENT";
3308
+ createdAt: string;
3309
+ members: {
3310
+ role: "owner" | "admin" | "member";
3311
+ user: {
3312
+ email: string;
3313
+ uuid: string;
3314
+ username: string;
3315
+ displayName: string;
3316
+ avatarUrl: string | null;
3317
+ role: "USER" | "MODERATOR" | "ADMIN";
3318
+ };
3319
+ joinedAt: string;
3320
+ lastReadAt: string | null;
3321
+ muted: boolean;
3322
+ }[];
3323
+ lastMessageAt: string | null;
3324
+ unreadCount: number;
3325
+ }[];
3326
+ };
3327
+ meta: object;
3328
+ }>;
3329
+ createDM: _trpc_server.TRPCMutationProcedure<{
3330
+ input: {
3331
+ otherUserUuid: string;
3332
+ };
3333
+ output: {
3334
+ channel: {
3335
+ id: string;
3336
+ name: string | null;
3337
+ kind: "DM" | "GROUP" | "ANNOUNCEMENT";
3338
+ createdAt: string;
3339
+ members: {
3340
+ role: "owner" | "admin" | "member";
3341
+ user: {
3342
+ email: string;
3343
+ uuid: string;
3344
+ username: string;
3345
+ displayName: string;
3346
+ avatarUrl: string | null;
3347
+ role: "USER" | "MODERATOR" | "ADMIN";
3348
+ };
3349
+ joinedAt: string;
3350
+ lastReadAt: string | null;
3351
+ muted: boolean;
3352
+ }[];
3353
+ lastMessageAt: string | null;
3354
+ unreadCount: number;
3355
+ };
3356
+ };
3357
+ meta: object;
3358
+ }>;
3359
+ createGroup: _trpc_server.TRPCMutationProcedure<{
3360
+ input: {
3361
+ name: string;
3362
+ memberUuids: string[];
3363
+ };
3364
+ output: {
3365
+ channel: {
3366
+ id: string;
3367
+ name: string | null;
3368
+ kind: "DM" | "GROUP" | "ANNOUNCEMENT";
3369
+ createdAt: string;
3370
+ members: {
3371
+ role: "owner" | "admin" | "member";
3372
+ user: {
3373
+ email: string;
3374
+ uuid: string;
3375
+ username: string;
3376
+ displayName: string;
3377
+ avatarUrl: string | null;
3378
+ role: "USER" | "MODERATOR" | "ADMIN";
3379
+ };
3380
+ joinedAt: string;
3381
+ lastReadAt: string | null;
3382
+ muted: boolean;
3383
+ }[];
3384
+ lastMessageAt: string | null;
3385
+ unreadCount: number;
3386
+ };
3387
+ };
3388
+ meta: object;
3389
+ }>;
3390
+ }>>;
3391
+ messages: _trpc_server.TRPCBuiltRouter<{
3392
+ ctx: {
3393
+ userUuid: string | undefined;
3394
+ token: string | undefined;
3395
+ requestId: string;
3396
+ };
3397
+ meta: object;
3398
+ errorShape: {
3399
+ data: {
3400
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
3401
+ httpStatus: number;
3402
+ };
3403
+ message: string;
3404
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
3405
+ };
3406
+ transformer: false;
3407
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
3408
+ list: _trpc_server.TRPCQueryProcedure<{
3409
+ input: {
3410
+ channelId: string;
3411
+ limit?: number | undefined;
3412
+ before?: string | undefined;
3413
+ };
3414
+ output: {
3415
+ items: {
3416
+ id: string;
3417
+ body: string;
3418
+ createdAt: string;
3419
+ channelId: string;
3420
+ authorUuid: string;
3421
+ authorDisplayName: string;
3422
+ editedAt: string | null;
3423
+ deletedAt: string | null;
3424
+ bodyMarkdown?: string | undefined;
3425
+ replyTo?: string | null | undefined;
3426
+ }[];
3427
+ };
3428
+ meta: object;
3429
+ }>;
3430
+ send: _trpc_server.TRPCMutationProcedure<{
3431
+ input: {
3432
+ body: string;
3433
+ channelId: string;
3434
+ replyTo?: string | undefined;
3435
+ };
3436
+ output: {
3437
+ message: {
3438
+ id: string;
3439
+ body: string;
3440
+ createdAt: string;
3441
+ channelId: string;
3442
+ authorUuid: string;
3443
+ authorDisplayName: string;
3444
+ editedAt: string | null;
3445
+ deletedAt: string | null;
3446
+ bodyMarkdown?: string | undefined;
3447
+ replyTo?: string | null | undefined;
3448
+ };
3449
+ };
3450
+ meta: object;
3451
+ }>;
3452
+ edit: _trpc_server.TRPCMutationProcedure<{
3453
+ input: {
3454
+ id: string;
3455
+ body: string;
3456
+ };
3457
+ output: {
3458
+ message: {
3459
+ id: string;
3460
+ body: string;
3461
+ createdAt: string;
3462
+ channelId: string;
3463
+ authorUuid: string;
3464
+ authorDisplayName: string;
3465
+ editedAt: string | null;
3466
+ deletedAt: string | null;
3467
+ bodyMarkdown?: string | undefined;
3468
+ replyTo?: string | null | undefined;
3469
+ };
3470
+ };
3471
+ meta: object;
3472
+ }>;
3473
+ delete: _trpc_server.TRPCMutationProcedure<{
3474
+ input: {
3475
+ id: string;
3476
+ };
3477
+ output: {
3478
+ deleted: boolean;
3479
+ };
3480
+ meta: object;
3481
+ }>;
3482
+ markRead: _trpc_server.TRPCMutationProcedure<{
3483
+ input: {
3484
+ channelId: string;
3485
+ messageId: string;
3486
+ };
3487
+ output: {
3488
+ ok: boolean;
3489
+ };
3490
+ meta: object;
3491
+ }>;
3492
+ report: _trpc_server.TRPCMutationProcedure<{
3493
+ input: {
3494
+ reason: "spam" | "harassment" | "illegal" | "other";
3495
+ messageId: string;
3496
+ note?: string | undefined;
3497
+ };
3498
+ output: {
3499
+ reported: boolean;
3500
+ };
3501
+ meta: object;
3502
+ }>;
3503
+ reports: _trpc_server.TRPCQueryProcedure<{
3504
+ input: {
3505
+ channelId: string;
3506
+ start?: string | undefined;
3507
+ end?: string | undefined;
3508
+ };
3509
+ output: {
3510
+ items: any[];
3511
+ };
3512
+ meta: object;
3513
+ }>;
3514
+ }>>;
3515
+ }>>;
3516
+ media: _trpc_server.TRPCBuiltRouter<{
3517
+ ctx: {
3518
+ userUuid: string | undefined;
3519
+ token: string | undefined;
3520
+ requestId: string;
3521
+ };
3522
+ meta: object;
3523
+ errorShape: {
3524
+ data: {
3525
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
3526
+ httpStatus: number;
3527
+ };
3528
+ message: string;
3529
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
3530
+ };
3531
+ transformer: false;
3532
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
3533
+ list: _trpc_server.TRPCQueryProcedure<{
3534
+ input: {
3535
+ offset?: number | undefined;
3536
+ kind?: "world" | "screenshot" | "video" | "skin" | undefined;
3537
+ limit?: number | undefined;
3538
+ };
3539
+ output: {
3540
+ items: {
3541
+ url: string;
3542
+ id: string;
3543
+ sha256: string;
3544
+ sizeBytes: number;
3545
+ kind: "world" | "screenshot" | "video" | "skin";
3546
+ createdAt: string;
3547
+ thumbnailUrl: string | null;
3548
+ width?: number | undefined;
3549
+ height?: number | undefined;
3550
+ durationSec?: number | undefined;
3551
+ }[];
3552
+ };
3553
+ meta: object;
3554
+ }>;
3555
+ upload: _trpc_server.TRPCMutationProcedure<{
3556
+ input: {
3557
+ kind: "world" | "screenshot" | "video" | "skin";
3558
+ data: string;
3559
+ filename: string;
3560
+ width?: number | undefined;
3561
+ height?: number | undefined;
3562
+ };
3563
+ output: {
3564
+ item: {
3565
+ url: string;
3566
+ id: string;
3567
+ sha256: string;
3568
+ sizeBytes: number;
3569
+ kind: "world" | "screenshot" | "video" | "skin";
3570
+ createdAt: string;
3571
+ thumbnailUrl: string | null;
3572
+ width?: number | undefined;
3573
+ height?: number | undefined;
3574
+ durationSec?: number | undefined;
3575
+ };
3576
+ };
3577
+ meta: object;
3578
+ }>;
3579
+ delete: _trpc_server.TRPCMutationProcedure<{
3580
+ input: {
3581
+ id: string;
3582
+ };
3583
+ output: {
3584
+ deleted: boolean;
3585
+ };
3586
+ meta: object;
3587
+ }>;
3588
+ }>>;
3589
+ multiplayer: _trpc_server.TRPCBuiltRouter<{
3590
+ ctx: {
3591
+ userUuid: string | undefined;
3592
+ token: string | undefined;
3593
+ requestId: string;
3594
+ };
3595
+ meta: object;
3596
+ errorShape: {
3597
+ data: {
3598
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
3599
+ httpStatus: number;
3600
+ };
3601
+ message: string;
3602
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
3603
+ };
3604
+ transformer: false;
3605
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
3606
+ sendSignaling: _trpc_server.TRPCMutationProcedure<{
3607
+ input: {
3608
+ kind: "offer" | "answer" | "candidate";
3609
+ toUuid: string;
3610
+ payload: string;
3611
+ };
3612
+ output: {
3613
+ message: {
3614
+ id: string;
3615
+ kind: "offer" | "answer" | "candidate";
3616
+ fromUuid: string;
3617
+ toUuid: string;
3618
+ createdAt: string;
3619
+ payload: string;
3620
+ };
3621
+ };
3622
+ meta: object;
3623
+ }>;
3624
+ listSignaling: _trpc_server.TRPCQueryProcedure<{
3625
+ input: {
3626
+ since?: string | undefined;
3627
+ fromUuid?: string | undefined;
3628
+ };
3629
+ output: {
3630
+ items: {
3631
+ id: string;
3632
+ kind: "offer" | "answer" | "candidate";
3633
+ fromUuid: string;
3634
+ toUuid: string;
3635
+ createdAt: string;
3636
+ payload: string;
3637
+ }[];
3638
+ };
3639
+ meta: object;
3640
+ }>;
3641
+ }>>;
3642
+ upnp: _trpc_server.TRPCBuiltRouter<{
3643
+ ctx: {
3644
+ userUuid: string | undefined;
3645
+ token: string | undefined;
3646
+ requestId: string;
3647
+ };
3648
+ meta: object;
3649
+ errorShape: {
3650
+ data: {
3651
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
3652
+ httpStatus: number;
3653
+ };
3654
+ message: string;
3655
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
3656
+ };
3657
+ transformer: false;
3658
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
3659
+ list: _trpc_server.TRPCQueryProcedure<{
3660
+ input: void;
3661
+ output: {
3662
+ items: {
3663
+ status: "active" | "pending" | "closed" | "error";
3664
+ id: string;
3665
+ createdAt: string;
3666
+ ownerUuid: string;
3667
+ ownerDisplayName: string;
3668
+ publicAddress: string;
3669
+ publicPort: number;
3670
+ localAddress: string;
3671
+ localPort: number;
3672
+ closedAt: string | null;
3673
+ invitedUuids: string[];
3674
+ }[];
3675
+ };
3676
+ meta: object;
3677
+ }>;
3678
+ create: _trpc_server.TRPCMutationProcedure<{
3679
+ input: {
3680
+ localAddress: string;
3681
+ localPort: number;
3682
+ invitedUuids?: string[] | undefined;
3683
+ };
3684
+ output: {
3685
+ session: {
3686
+ status: "active" | "pending" | "closed" | "error";
3687
+ id: string;
3688
+ createdAt: string;
3689
+ ownerUuid: string;
3690
+ ownerDisplayName: string;
3691
+ publicAddress: string;
3692
+ publicPort: number;
3693
+ localAddress: string;
3694
+ localPort: number;
3695
+ closedAt: string | null;
3696
+ invitedUuids: string[];
3697
+ };
3698
+ };
3699
+ meta: object;
3700
+ }>;
3701
+ close: _trpc_server.TRPCMutationProcedure<{
3702
+ input: {
3703
+ id: string;
3704
+ };
3705
+ output: {
3706
+ closed: boolean;
3707
+ };
3708
+ meta: object;
3709
+ }>;
3710
+ }>>;
3711
+ discovery: _trpc_server.TRPCBuiltRouter<{
3712
+ ctx: {
3713
+ userUuid: string | undefined;
3714
+ token: string | undefined;
3715
+ requestId: string;
3716
+ };
3717
+ meta: object;
3718
+ errorShape: {
3719
+ data: {
3720
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
3721
+ httpStatus: number;
3722
+ };
3723
+ message: string;
3724
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
3725
+ };
3726
+ transformer: false;
3727
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
3728
+ list: _trpc_server.TRPCQueryProcedure<{
3729
+ input: void;
3730
+ output: {
3731
+ items: {
3732
+ id: string;
3733
+ name: string;
3734
+ iconUrl: string | null;
3735
+ source: "anvil" | "community";
3736
+ version: string | null;
3737
+ address: string;
3738
+ playerCount: number | null;
3739
+ maxPlayers: number | null;
3740
+ pingMs: number | null;
3741
+ description?: string | undefined;
3742
+ }[];
3743
+ };
3744
+ meta: object;
3745
+ }>;
3746
+ }>>;
3747
+ system: _trpc_server.TRPCBuiltRouter<{
3748
+ ctx: {
3749
+ userUuid: string | undefined;
3750
+ token: string | undefined;
3751
+ requestId: string;
3752
+ };
3753
+ meta: object;
3754
+ errorShape: {
3755
+ data: {
3756
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
3757
+ httpStatus: number;
3758
+ };
3759
+ message: string;
3760
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
3761
+ };
3762
+ transformer: false;
3763
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
3764
+ status: _trpc_server.TRPCQueryProcedure<{
3765
+ input: void;
3766
+ output: {
3767
+ message: string | null;
3768
+ status: "operational" | "degraded" | "outage";
3769
+ maintenanceUntil: string | null;
3770
+ };
3771
+ meta: object;
3772
+ }>;
3773
+ }>>;
3774
+ instances: _trpc_server.TRPCBuiltRouter<{
3775
+ ctx: {
3776
+ userUuid: string | undefined;
3777
+ token: string | undefined;
3778
+ requestId: string;
3779
+ };
3780
+ meta: object;
3781
+ errorShape: {
3782
+ data: {
3783
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
3784
+ httpStatus: number;
3785
+ };
3786
+ message: string;
3787
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
3788
+ };
3789
+ transformer: false;
3790
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
3791
+ list: _trpc_server.TRPCQueryProcedure<{
3792
+ input: void;
3793
+ output: {
3794
+ items: {
3795
+ path: string;
3796
+ id: string;
3797
+ name: string;
3798
+ sizeBytes: number;
3799
+ mcVersion: string;
3800
+ loader: "vanilla" | "fabric" | "forge" | "neoforge" | "quilt";
3801
+ loaderVersion: string;
3802
+ lastPlayedAt: string | null;
3803
+ installedAt: string;
3804
+ }[];
3805
+ };
3806
+ meta: object;
3807
+ }>;
3808
+ }>>;
3809
+ telemetry: _trpc_server.TRPCBuiltRouter<{
3810
+ ctx: {
3811
+ userUuid: string | undefined;
3812
+ token: string | undefined;
3813
+ requestId: string;
3814
+ };
3815
+ meta: object;
3816
+ errorShape: {
3817
+ data: {
3818
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
3819
+ httpStatus: number;
3820
+ };
3821
+ message: string;
3822
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
3823
+ };
3824
+ transformer: false;
3825
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
3826
+ report: _trpc_server.TRPCMutationProcedure<{
3827
+ input: {
3828
+ event: "launch" | "playtime" | "crash";
3829
+ metadata?: Record<string, string> | undefined;
3830
+ };
3831
+ output: {
3832
+ ok: boolean;
3833
+ };
3834
+ meta: object;
3835
+ }>;
3836
+ }>>;
3837
+ launcher: _trpc_server.TRPCBuiltRouter<{
3838
+ ctx: {
3839
+ userUuid: string | undefined;
3840
+ token: string | undefined;
3841
+ requestId: string;
3842
+ };
3843
+ meta: object;
3844
+ errorShape: {
3845
+ data: {
3846
+ code: "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "TOO_MANY_REQUESTS" | "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "PAYMENT_REQUIRED" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "PRECONDITION_REQUIRED" | "CLIENT_CLOSED_REQUEST";
3847
+ httpStatus: number;
3848
+ };
3849
+ message: string;
3850
+ code: _trpc_server.TRPC_ERROR_CODE_NUMBER;
3851
+ };
3852
+ transformer: false;
3853
+ }, _trpc_server.TRPCDecorateCreateRouterOptions<{
3854
+ updateCheck: _trpc_server.TRPCQueryProcedure<{
3855
+ input: void;
3856
+ output: {
3857
+ changelog: string | null;
3858
+ downloadUrl: string | null;
3859
+ currentVersion: string;
3860
+ latestVersion: string;
3861
+ updateAvailable: boolean;
3862
+ };
3863
+ meta: object;
3864
+ }>;
3865
+ }>>;
3866
+ }>>;
3867
+ }>>>;
3868
+
3869
+ export { type AppRouter, type Context, appRouter, createCaller, createContext, protectedProcedure, publicProcedure };