@studious-lms/server 1.27.0 → 1.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -4
- package/dist/index.js.map +1 -1
- package/dist/instrument.js +9 -4
- package/dist/instrument.js.map +1 -1
- package/dist/lib/fileUpload.d.ts +15 -0
- package/dist/lib/fileUpload.d.ts.map +1 -1
- package/dist/lib/fileUpload.js +43 -2
- package/dist/lib/fileUpload.js.map +1 -1
- package/dist/pipelines/aiLabChatContract.d.ts +2 -2
- package/dist/pipelines/generateVisualization.d.ts +33 -0
- package/dist/pipelines/generateVisualization.d.ts.map +1 -0
- package/dist/pipelines/generateVisualization.js +79 -0
- package/dist/pipelines/generateVisualization.js.map +1 -0
- package/dist/routers/_app.d.ts +891 -53
- package/dist/routers/_app.d.ts.map +1 -1
- package/dist/routers/_app.js +4 -2
- package/dist/routers/_app.js.map +1 -1
- package/dist/routers/admin.d.ts +297 -0
- package/dist/routers/admin.d.ts.map +1 -1
- package/dist/routers/admin.js +43 -2
- package/dist/routers/admin.js.map +1 -1
- package/dist/routers/class.d.ts.map +1 -1
- package/dist/routers/class.js +16 -3
- package/dist/routers/class.js.map +1 -1
- package/dist/routers/module.d.ts +1 -1
- package/dist/routers/visualization.d.ts +124 -0
- package/dist/routers/visualization.d.ts.map +1 -0
- package/dist/routers/visualization.js +41 -0
- package/dist/routers/visualization.js.map +1 -0
- package/dist/services/adminClass.d.ts +153 -0
- package/dist/services/adminClass.d.ts.map +1 -0
- package/dist/services/adminClass.js +196 -0
- package/dist/services/adminClass.js.map +1 -0
- package/dist/services/adminInstitution.d.ts +2 -0
- package/dist/services/adminInstitution.d.ts.map +1 -1
- package/dist/services/adminInstitution.js +11 -4
- package/dist/services/adminInstitution.js.map +1 -1
- package/dist/services/adminMetrics.d.ts +8 -0
- package/dist/services/adminMetrics.d.ts.map +1 -1
- package/dist/services/adminMetrics.js +30 -3
- package/dist/services/adminMetrics.js.map +1 -1
- package/dist/services/adminSpam.d.ts +76 -0
- package/dist/services/adminSpam.d.ts.map +1 -0
- package/dist/services/adminSpam.js +163 -0
- package/dist/services/adminSpam.js.map +1 -0
- package/dist/services/adminSql.d.ts +36 -0
- package/dist/services/adminSql.d.ts.map +1 -0
- package/dist/services/adminSql.js +172 -0
- package/dist/services/adminSql.js.map +1 -0
- package/dist/services/adminTelemetry.d.ts +56 -0
- package/dist/services/adminTelemetry.d.ts.map +1 -0
- package/dist/services/adminTelemetry.js +147 -0
- package/dist/services/adminTelemetry.js.map +1 -0
- package/dist/services/adminUser.d.ts +45 -0
- package/dist/services/adminUser.d.ts.map +1 -1
- package/dist/services/adminUser.js +48 -11
- package/dist/services/adminUser.js.map +1 -1
- package/dist/services/auth.d.ts.map +1 -1
- package/dist/services/auth.js +10 -4
- package/dist/services/auth.js.map +1 -1
- package/dist/services/fees.d.ts.map +1 -1
- package/dist/services/fees.js +7 -3
- package/dist/services/fees.js.map +1 -1
- package/dist/services/module.d.ts.map +1 -1
- package/dist/services/module.js +23 -4
- package/dist/services/module.js.map +1 -1
- package/dist/services/visualization.d.ts +72 -0
- package/dist/services/visualization.d.ts.map +1 -0
- package/dist/services/visualization.js +122 -0
- package/dist/services/visualization.js.map +1 -0
- package/dist/utils/sentryTrpc.d.ts +3 -0
- package/dist/utils/sentryTrpc.d.ts.map +1 -0
- package/dist/utils/sentryTrpc.js +26 -0
- package/dist/utils/sentryTrpc.js.map +1 -0
- package/package.json +1 -1
- package/prisma/migrations/20261025120000_add_visualizations/migration.sql +27 -0
- package/prisma/schema.prisma +24 -0
- package/src/index.ts +30 -4
- package/src/instrument.ts +8 -2
- package/src/lib/fileUpload.ts +49 -0
- package/src/pipelines/generateVisualization.ts +107 -0
- package/src/routers/_app.ts +2 -0
- package/src/routers/admin.ts +72 -0
- package/src/routers/class.ts +14 -1
- package/src/routers/visualization.ts +60 -0
- package/src/services/adminClass.ts +222 -0
- package/src/services/adminInstitution.ts +9 -2
- package/src/services/adminMetrics.ts +35 -0
- package/src/services/adminSpam.ts +224 -0
- package/src/services/adminSql.ts +214 -0
- package/src/services/adminTelemetry.ts +194 -0
- package/src/services/adminUser.ts +61 -9
- package/src/services/auth.ts +8 -2
- package/src/services/fees.ts +5 -1
- package/src/services/module.ts +29 -2
- package/src/services/visualization.ts +147 -0
- package/src/utils/sentryTrpc.ts +25 -0
- package/tests/unit/lib/fileUploadSession.test.ts +67 -0
- package/tests/unit/services/adminClass.test.ts +102 -0
- package/tests/unit/services/adminSpam.test.ts +108 -0
- package/tests/unit/services/adminSql.test.ts +56 -0
- package/tests/unit/services/adminTelemetry.test.ts +47 -0
- package/tests/unit/services/adminUser.test.ts +2 -0
- package/tests/unit/services/visualization.test.ts +130 -0
- package/tests/unit/utils/sentryTrpc.test.ts +15 -0
package/dist/routers/_app.d.ts
CHANGED
|
@@ -9956,6 +9956,14 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
9956
9956
|
schools: number;
|
|
9957
9957
|
users: number;
|
|
9958
9958
|
verifiedUsers: number;
|
|
9959
|
+
suspectedUsers: number;
|
|
9960
|
+
cleanUsers: number;
|
|
9961
|
+
signupsLast24h: number;
|
|
9962
|
+
signupsLast7d: number;
|
|
9963
|
+
activeUsersLast24h: number;
|
|
9964
|
+
activeUsersLast7d: number;
|
|
9965
|
+
activeClassesLast7d: number;
|
|
9966
|
+
submissionsLast24h: number;
|
|
9959
9967
|
classes: number;
|
|
9960
9968
|
departments: number;
|
|
9961
9969
|
runJobs: {
|
|
@@ -10164,6 +10172,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
10164
10172
|
};
|
|
10165
10173
|
output: {
|
|
10166
10174
|
items: {
|
|
10175
|
+
signals: import("../services/adminSpam.js").SpamSignals;
|
|
10167
10176
|
type: string;
|
|
10168
10177
|
status: string;
|
|
10169
10178
|
id: string;
|
|
@@ -10198,6 +10207,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
10198
10207
|
};
|
|
10199
10208
|
output: {
|
|
10200
10209
|
items: {
|
|
10210
|
+
signals: import("../services/adminSpam.js").SpamSignals;
|
|
10201
10211
|
id: string;
|
|
10202
10212
|
createdAt: Date;
|
|
10203
10213
|
email: string;
|
|
@@ -10212,12 +10222,19 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
10212
10222
|
}>;
|
|
10213
10223
|
searchUsers: import("@trpc/server").TRPCQueryProcedure<{
|
|
10214
10224
|
input: {
|
|
10225
|
+
sort?: "username" | "recent" | "activity" | undefined;
|
|
10215
10226
|
query?: string | undefined;
|
|
10227
|
+
verified?: boolean | undefined;
|
|
10228
|
+
schoolId?: string | undefined;
|
|
10216
10229
|
page?: number | undefined;
|
|
10230
|
+
activity?: "active" | "all" | "inactive" | undefined;
|
|
10217
10231
|
pageSize?: number | undefined;
|
|
10232
|
+
emailDomain?: string | undefined;
|
|
10233
|
+
spam?: "all" | "suspected" | "clean" | undefined;
|
|
10218
10234
|
};
|
|
10219
10235
|
output: {
|
|
10220
10236
|
items: {
|
|
10237
|
+
signals: import("../services/adminSpam.js").SpamSignals;
|
|
10221
10238
|
school: {
|
|
10222
10239
|
id: string;
|
|
10223
10240
|
name: string;
|
|
@@ -10226,9 +10243,13 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
10226
10243
|
username: string;
|
|
10227
10244
|
email: string;
|
|
10228
10245
|
verified: boolean;
|
|
10246
|
+
profile: {
|
|
10247
|
+
createdAt: Date;
|
|
10248
|
+
} | null;
|
|
10229
10249
|
_count: {
|
|
10230
10250
|
teacherIn: number;
|
|
10231
10251
|
studentIn: number;
|
|
10252
|
+
submissions: number;
|
|
10232
10253
|
sessions: number;
|
|
10233
10254
|
};
|
|
10234
10255
|
}[];
|
|
@@ -10244,6 +10265,37 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
10244
10265
|
id: string;
|
|
10245
10266
|
};
|
|
10246
10267
|
output: {
|
|
10268
|
+
classes: {
|
|
10269
|
+
teaching: {
|
|
10270
|
+
school: {
|
|
10271
|
+
id: string;
|
|
10272
|
+
name: string;
|
|
10273
|
+
} | null;
|
|
10274
|
+
section: string;
|
|
10275
|
+
id: string;
|
|
10276
|
+
name: string;
|
|
10277
|
+
_count: {
|
|
10278
|
+
students: number;
|
|
10279
|
+
assignments: number;
|
|
10280
|
+
};
|
|
10281
|
+
subject: string;
|
|
10282
|
+
}[];
|
|
10283
|
+
enrolled: {
|
|
10284
|
+
school: {
|
|
10285
|
+
id: string;
|
|
10286
|
+
name: string;
|
|
10287
|
+
} | null;
|
|
10288
|
+
section: string;
|
|
10289
|
+
id: string;
|
|
10290
|
+
name: string;
|
|
10291
|
+
_count: {
|
|
10292
|
+
students: number;
|
|
10293
|
+
assignments: number;
|
|
10294
|
+
};
|
|
10295
|
+
subject: string;
|
|
10296
|
+
}[];
|
|
10297
|
+
};
|
|
10298
|
+
signals: import("../services/adminSpam.js").SpamSignals;
|
|
10247
10299
|
school: {
|
|
10248
10300
|
id: string;
|
|
10249
10301
|
name: string;
|
|
@@ -10285,6 +10337,251 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
10285
10337
|
};
|
|
10286
10338
|
meta: object;
|
|
10287
10339
|
}>;
|
|
10340
|
+
listClasses: import("@trpc/server").TRPCQueryProcedure<{
|
|
10341
|
+
input: {
|
|
10342
|
+
sort?: "name" | "students" | "assignments" | undefined;
|
|
10343
|
+
query?: string | undefined;
|
|
10344
|
+
schoolId?: string | undefined;
|
|
10345
|
+
page?: number | undefined;
|
|
10346
|
+
pageSize?: number | undefined;
|
|
10347
|
+
membership?: "all" | "populated" | "empty" | undefined;
|
|
10348
|
+
};
|
|
10349
|
+
output: {
|
|
10350
|
+
items: {
|
|
10351
|
+
lastAssignmentAt: Date | null;
|
|
10352
|
+
school: {
|
|
10353
|
+
id: string;
|
|
10354
|
+
name: string;
|
|
10355
|
+
} | null;
|
|
10356
|
+
department: {
|
|
10357
|
+
id: string;
|
|
10358
|
+
name: string;
|
|
10359
|
+
} | null;
|
|
10360
|
+
section: string;
|
|
10361
|
+
id: string;
|
|
10362
|
+
name: string;
|
|
10363
|
+
teachers: {
|
|
10364
|
+
id: string;
|
|
10365
|
+
username: string;
|
|
10366
|
+
}[];
|
|
10367
|
+
_count: {
|
|
10368
|
+
teachers: number;
|
|
10369
|
+
students: number;
|
|
10370
|
+
assignments: number;
|
|
10371
|
+
events: number;
|
|
10372
|
+
announcements: number;
|
|
10373
|
+
discussions: number;
|
|
10374
|
+
worksheets: number;
|
|
10375
|
+
modules: number;
|
|
10376
|
+
};
|
|
10377
|
+
subject: string;
|
|
10378
|
+
}[];
|
|
10379
|
+
total: number;
|
|
10380
|
+
page: number;
|
|
10381
|
+
pageSize: number;
|
|
10382
|
+
pageCount: number;
|
|
10383
|
+
};
|
|
10384
|
+
meta: object;
|
|
10385
|
+
}>;
|
|
10386
|
+
getClass: import("@trpc/server").TRPCQueryProcedure<{
|
|
10387
|
+
input: {
|
|
10388
|
+
id: string;
|
|
10389
|
+
};
|
|
10390
|
+
output: {
|
|
10391
|
+
teachers: {
|
|
10392
|
+
signals: import("../services/adminSpam.js").SpamSignals;
|
|
10393
|
+
submissionsInClass: number;
|
|
10394
|
+
id: string;
|
|
10395
|
+
username: string;
|
|
10396
|
+
email: string;
|
|
10397
|
+
verified: boolean;
|
|
10398
|
+
_count: {
|
|
10399
|
+
teacherIn: number;
|
|
10400
|
+
studentIn: number;
|
|
10401
|
+
submissions: number;
|
|
10402
|
+
};
|
|
10403
|
+
}[];
|
|
10404
|
+
students: {
|
|
10405
|
+
signals: import("../services/adminSpam.js").SpamSignals;
|
|
10406
|
+
submissionsInClass: number;
|
|
10407
|
+
id: string;
|
|
10408
|
+
username: string;
|
|
10409
|
+
email: string;
|
|
10410
|
+
verified: boolean;
|
|
10411
|
+
_count: {
|
|
10412
|
+
teacherIn: number;
|
|
10413
|
+
studentIn: number;
|
|
10414
|
+
submissions: number;
|
|
10415
|
+
};
|
|
10416
|
+
}[];
|
|
10417
|
+
announcements: {
|
|
10418
|
+
remarks: string;
|
|
10419
|
+
id: string;
|
|
10420
|
+
createdAt: Date;
|
|
10421
|
+
teacher: {
|
|
10422
|
+
id: string;
|
|
10423
|
+
username: string;
|
|
10424
|
+
};
|
|
10425
|
+
}[];
|
|
10426
|
+
suspectedMembers: number;
|
|
10427
|
+
school: {
|
|
10428
|
+
id: string;
|
|
10429
|
+
name: string;
|
|
10430
|
+
} | null;
|
|
10431
|
+
department: {
|
|
10432
|
+
id: string;
|
|
10433
|
+
name: string;
|
|
10434
|
+
} | null;
|
|
10435
|
+
section: string;
|
|
10436
|
+
id: string;
|
|
10437
|
+
name: string;
|
|
10438
|
+
assignments: {
|
|
10439
|
+
type: import(".prisma/client").$Enums.AssignmentType;
|
|
10440
|
+
id: string;
|
|
10441
|
+
createdAt: Date | null;
|
|
10442
|
+
_count: {
|
|
10443
|
+
submissions: number;
|
|
10444
|
+
};
|
|
10445
|
+
title: string;
|
|
10446
|
+
dueDate: Date;
|
|
10447
|
+
graded: boolean;
|
|
10448
|
+
teacher: {
|
|
10449
|
+
id: string;
|
|
10450
|
+
username: string;
|
|
10451
|
+
};
|
|
10452
|
+
}[];
|
|
10453
|
+
_count: {
|
|
10454
|
+
teachers: number;
|
|
10455
|
+
students: number;
|
|
10456
|
+
assignments: number;
|
|
10457
|
+
events: number;
|
|
10458
|
+
announcements: number;
|
|
10459
|
+
discussions: number;
|
|
10460
|
+
sections: number;
|
|
10461
|
+
worksheets: number;
|
|
10462
|
+
modules: number;
|
|
10463
|
+
};
|
|
10464
|
+
color: string | null;
|
|
10465
|
+
subject: string;
|
|
10466
|
+
};
|
|
10467
|
+
meta: object;
|
|
10468
|
+
}>;
|
|
10469
|
+
getContentTelemetry: import("@trpc/server").TRPCQueryProcedure<{
|
|
10470
|
+
input: void;
|
|
10471
|
+
output: {
|
|
10472
|
+
content: {
|
|
10473
|
+
assignments: number;
|
|
10474
|
+
assignmentsLast7d: number;
|
|
10475
|
+
submissions: number;
|
|
10476
|
+
submissionsLast7d: number;
|
|
10477
|
+
gradedSubmissions: number;
|
|
10478
|
+
announcements: number;
|
|
10479
|
+
announcementsLast7d: number;
|
|
10480
|
+
discussions: number;
|
|
10481
|
+
messages: number;
|
|
10482
|
+
messagesLast7d: number;
|
|
10483
|
+
worksheets: number;
|
|
10484
|
+
events: number;
|
|
10485
|
+
modules: number;
|
|
10486
|
+
files: number;
|
|
10487
|
+
storageBytes: number;
|
|
10488
|
+
};
|
|
10489
|
+
ai: {
|
|
10490
|
+
calls7d: number;
|
|
10491
|
+
failures7d: number;
|
|
10492
|
+
tokens7d: number;
|
|
10493
|
+
byModel: {
|
|
10494
|
+
model: string;
|
|
10495
|
+
calls: number;
|
|
10496
|
+
tokens: number;
|
|
10497
|
+
}[];
|
|
10498
|
+
};
|
|
10499
|
+
jobs: {
|
|
10500
|
+
failedLast24h: number;
|
|
10501
|
+
byType: {
|
|
10502
|
+
total: number;
|
|
10503
|
+
failed: number;
|
|
10504
|
+
type: string;
|
|
10505
|
+
}[];
|
|
10506
|
+
};
|
|
10507
|
+
};
|
|
10508
|
+
meta: object;
|
|
10509
|
+
}>;
|
|
10510
|
+
getActivitySeries: import("@trpc/server").TRPCQueryProcedure<{
|
|
10511
|
+
input: {
|
|
10512
|
+
days?: number | undefined;
|
|
10513
|
+
};
|
|
10514
|
+
output: {
|
|
10515
|
+
points: import("../services/adminTelemetry.js").DailyPoint[];
|
|
10516
|
+
};
|
|
10517
|
+
meta: object;
|
|
10518
|
+
}>;
|
|
10519
|
+
listSqlSchema: import("@trpc/server").TRPCQueryProcedure<{
|
|
10520
|
+
input: void;
|
|
10521
|
+
output: {
|
|
10522
|
+
tables: import("../services/adminSql.js").AdminSqlTable[];
|
|
10523
|
+
};
|
|
10524
|
+
meta: object;
|
|
10525
|
+
}>;
|
|
10526
|
+
runSql: import("@trpc/server").TRPCMutationProcedure<{
|
|
10527
|
+
input: {
|
|
10528
|
+
sql: string;
|
|
10529
|
+
limit?: number | undefined;
|
|
10530
|
+
};
|
|
10531
|
+
output: import("../services/adminSql.js").AdminSqlResult;
|
|
10532
|
+
meta: object;
|
|
10533
|
+
}>;
|
|
10534
|
+
getSpamOverview: import("@trpc/server").TRPCQueryProcedure<{
|
|
10535
|
+
input: void;
|
|
10536
|
+
output: {
|
|
10537
|
+
rules: {
|
|
10538
|
+
blockedDomains: string[];
|
|
10539
|
+
botPatterns: string[];
|
|
10540
|
+
disposableDomains: string[];
|
|
10541
|
+
};
|
|
10542
|
+
totalUsers: number;
|
|
10543
|
+
suspectedUsers: number;
|
|
10544
|
+
suspectedVerified: number;
|
|
10545
|
+
cleanUsers: number;
|
|
10546
|
+
domains: {
|
|
10547
|
+
domain: string;
|
|
10548
|
+
total: number;
|
|
10549
|
+
verified: number;
|
|
10550
|
+
suspected: boolean;
|
|
10551
|
+
}[];
|
|
10552
|
+
recent: {
|
|
10553
|
+
signals: import("../services/adminSpam.js").SpamSignals;
|
|
10554
|
+
id: string;
|
|
10555
|
+
username: string;
|
|
10556
|
+
email: string;
|
|
10557
|
+
verified: boolean;
|
|
10558
|
+
profile: {
|
|
10559
|
+
createdAt: Date;
|
|
10560
|
+
} | null;
|
|
10561
|
+
_count: {
|
|
10562
|
+
teacherIn: number;
|
|
10563
|
+
studentIn: number;
|
|
10564
|
+
submissions: number;
|
|
10565
|
+
};
|
|
10566
|
+
}[];
|
|
10567
|
+
};
|
|
10568
|
+
meta: object;
|
|
10569
|
+
}>;
|
|
10570
|
+
listUserEmailDomains: import("@trpc/server").TRPCQueryProcedure<{
|
|
10571
|
+
input: {
|
|
10572
|
+
limit?: number | undefined;
|
|
10573
|
+
suspectedOnly?: boolean | undefined;
|
|
10574
|
+
};
|
|
10575
|
+
output: {
|
|
10576
|
+
items: {
|
|
10577
|
+
domain: string;
|
|
10578
|
+
total: number;
|
|
10579
|
+
verified: number;
|
|
10580
|
+
suspected: boolean;
|
|
10581
|
+
}[];
|
|
10582
|
+
};
|
|
10583
|
+
meta: object;
|
|
10584
|
+
}>;
|
|
10288
10585
|
}>>;
|
|
10289
10586
|
embedding: import("@trpc/server").TRPCBuiltRouter<{
|
|
10290
10587
|
ctx: import("../trpc.js").Context;
|
|
@@ -10568,7 +10865,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
10568
10865
|
[x: string]: unknown;
|
|
10569
10866
|
classId: string;
|
|
10570
10867
|
moduleId: string;
|
|
10571
|
-
itemType: "FILE" | "ASSIGNMENT" | "WORKSHEET" | "ANNOUNCEMENT" | "DISCUSSION" | "EXTERNAL_URL" | "SUB_HEADER";
|
|
10868
|
+
itemType: "FILE" | "ASSIGNMENT" | "WORKSHEET" | "ANNOUNCEMENT" | "DISCUSSION" | "EXTERNAL_URL" | "SUB_HEADER" | "VISUALIZATION";
|
|
10572
10869
|
title?: string | undefined;
|
|
10573
10870
|
indent?: number | undefined;
|
|
10574
10871
|
itemId?: string | undefined;
|
|
@@ -12565,28 +12862,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
12565
12862
|
meta: object;
|
|
12566
12863
|
}>;
|
|
12567
12864
|
}>>;
|
|
12568
|
-
|
|
12569
|
-
export type AppRouter = typeof appRouter;
|
|
12570
|
-
export type RouterInputs = inferRouterInputs<AppRouter>;
|
|
12571
|
-
export type RouterOutputs = inferRouterOutputs<AppRouter>;
|
|
12572
|
-
export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
12573
|
-
ctx: import("../trpc.js").Context;
|
|
12574
|
-
meta: object;
|
|
12575
|
-
errorShape: {
|
|
12576
|
-
data: {
|
|
12577
|
-
zodError: import("zod").typeToFlattenedError<any, string> | null;
|
|
12578
|
-
prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
|
|
12579
|
-
code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
|
|
12580
|
-
httpStatus: number;
|
|
12581
|
-
path?: string;
|
|
12582
|
-
stack?: string;
|
|
12583
|
-
};
|
|
12584
|
-
message: string;
|
|
12585
|
-
code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
|
|
12586
|
-
};
|
|
12587
|
-
transformer: false;
|
|
12588
|
-
}, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
|
|
12589
|
-
class: import("@trpc/server").TRPCBuiltRouter<{
|
|
12865
|
+
visualization: import("@trpc/server").TRPCBuiltRouter<{
|
|
12590
12866
|
ctx: import("../trpc.js").Context;
|
|
12591
12867
|
meta: object;
|
|
12592
12868
|
errorShape: {
|
|
@@ -12603,36 +12879,179 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
12603
12879
|
};
|
|
12604
12880
|
transformer: false;
|
|
12605
12881
|
}, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
|
|
12606
|
-
|
|
12607
|
-
input:
|
|
12882
|
+
list: import("@trpc/server").TRPCQueryProcedure<{
|
|
12883
|
+
input: {
|
|
12884
|
+
[x: string]: unknown;
|
|
12885
|
+
classId: string;
|
|
12886
|
+
};
|
|
12608
12887
|
output: {
|
|
12609
|
-
|
|
12610
|
-
|
|
12611
|
-
|
|
12612
|
-
|
|
12613
|
-
|
|
12614
|
-
|
|
12615
|
-
|
|
12616
|
-
|
|
12617
|
-
|
|
12618
|
-
|
|
12619
|
-
|
|
12620
|
-
|
|
12621
|
-
|
|
12622
|
-
|
|
12623
|
-
|
|
12624
|
-
|
|
12625
|
-
|
|
12626
|
-
|
|
12627
|
-
|
|
12628
|
-
|
|
12629
|
-
|
|
12630
|
-
|
|
12631
|
-
|
|
12632
|
-
|
|
12633
|
-
|
|
12634
|
-
|
|
12635
|
-
|
|
12888
|
+
id: string;
|
|
12889
|
+
createdAt: Date;
|
|
12890
|
+
updatedAt: Date;
|
|
12891
|
+
classId: string;
|
|
12892
|
+
title: string;
|
|
12893
|
+
prompt: string | null;
|
|
12894
|
+
published: boolean;
|
|
12895
|
+
}[];
|
|
12896
|
+
meta: object;
|
|
12897
|
+
}>;
|
|
12898
|
+
get: import("@trpc/server").TRPCQueryProcedure<{
|
|
12899
|
+
input: {
|
|
12900
|
+
[x: string]: unknown;
|
|
12901
|
+
classId: string;
|
|
12902
|
+
id: string;
|
|
12903
|
+
};
|
|
12904
|
+
output: {
|
|
12905
|
+
id: string;
|
|
12906
|
+
createdAt: Date;
|
|
12907
|
+
updatedAt: Date;
|
|
12908
|
+
classId: string;
|
|
12909
|
+
title: string;
|
|
12910
|
+
prompt: string | null;
|
|
12911
|
+
published: boolean;
|
|
12912
|
+
html: string;
|
|
12913
|
+
};
|
|
12914
|
+
meta: object;
|
|
12915
|
+
}>;
|
|
12916
|
+
generate: import("@trpc/server").TRPCMutationProcedure<{
|
|
12917
|
+
input: {
|
|
12918
|
+
[x: string]: unknown;
|
|
12919
|
+
classId: string;
|
|
12920
|
+
prompt: string;
|
|
12921
|
+
title?: string | undefined;
|
|
12922
|
+
};
|
|
12923
|
+
output: {
|
|
12924
|
+
id: string;
|
|
12925
|
+
createdAt: Date;
|
|
12926
|
+
updatedAt: Date;
|
|
12927
|
+
classId: string;
|
|
12928
|
+
title: string;
|
|
12929
|
+
prompt: string | null;
|
|
12930
|
+
published: boolean;
|
|
12931
|
+
html: string;
|
|
12932
|
+
};
|
|
12933
|
+
meta: object;
|
|
12934
|
+
}>;
|
|
12935
|
+
revise: import("@trpc/server").TRPCMutationProcedure<{
|
|
12936
|
+
input: {
|
|
12937
|
+
[x: string]: unknown;
|
|
12938
|
+
classId: string;
|
|
12939
|
+
id: string;
|
|
12940
|
+
instruction: string;
|
|
12941
|
+
};
|
|
12942
|
+
output: {
|
|
12943
|
+
id: string;
|
|
12944
|
+
createdAt: Date;
|
|
12945
|
+
updatedAt: Date;
|
|
12946
|
+
classId: string;
|
|
12947
|
+
title: string;
|
|
12948
|
+
prompt: string | null;
|
|
12949
|
+
published: boolean;
|
|
12950
|
+
html: string;
|
|
12951
|
+
};
|
|
12952
|
+
meta: object;
|
|
12953
|
+
}>;
|
|
12954
|
+
update: import("@trpc/server").TRPCMutationProcedure<{
|
|
12955
|
+
input: {
|
|
12956
|
+
[x: string]: unknown;
|
|
12957
|
+
classId: string;
|
|
12958
|
+
id: string;
|
|
12959
|
+
title?: string | undefined;
|
|
12960
|
+
published?: boolean | undefined;
|
|
12961
|
+
html?: string | undefined;
|
|
12962
|
+
};
|
|
12963
|
+
output: {
|
|
12964
|
+
id: string;
|
|
12965
|
+
createdAt: Date;
|
|
12966
|
+
updatedAt: Date;
|
|
12967
|
+
classId: string;
|
|
12968
|
+
title: string;
|
|
12969
|
+
prompt: string | null;
|
|
12970
|
+
published: boolean;
|
|
12971
|
+
html: string;
|
|
12972
|
+
};
|
|
12973
|
+
meta: object;
|
|
12974
|
+
}>;
|
|
12975
|
+
delete: import("@trpc/server").TRPCMutationProcedure<{
|
|
12976
|
+
input: {
|
|
12977
|
+
[x: string]: unknown;
|
|
12978
|
+
classId: string;
|
|
12979
|
+
id: string;
|
|
12980
|
+
};
|
|
12981
|
+
output: {
|
|
12982
|
+
id: string;
|
|
12983
|
+
};
|
|
12984
|
+
meta: object;
|
|
12985
|
+
}>;
|
|
12986
|
+
}>>;
|
|
12987
|
+
}>>;
|
|
12988
|
+
export type AppRouter = typeof appRouter;
|
|
12989
|
+
export type RouterInputs = inferRouterInputs<AppRouter>;
|
|
12990
|
+
export type RouterOutputs = inferRouterOutputs<AppRouter>;
|
|
12991
|
+
export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
12992
|
+
ctx: import("../trpc.js").Context;
|
|
12993
|
+
meta: object;
|
|
12994
|
+
errorShape: {
|
|
12995
|
+
data: {
|
|
12996
|
+
zodError: import("zod").typeToFlattenedError<any, string> | null;
|
|
12997
|
+
prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
|
|
12998
|
+
code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
|
|
12999
|
+
httpStatus: number;
|
|
13000
|
+
path?: string;
|
|
13001
|
+
stack?: string;
|
|
13002
|
+
};
|
|
13003
|
+
message: string;
|
|
13004
|
+
code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
|
|
13005
|
+
};
|
|
13006
|
+
transformer: false;
|
|
13007
|
+
}, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
|
|
13008
|
+
class: import("@trpc/server").TRPCBuiltRouter<{
|
|
13009
|
+
ctx: import("../trpc.js").Context;
|
|
13010
|
+
meta: object;
|
|
13011
|
+
errorShape: {
|
|
13012
|
+
data: {
|
|
13013
|
+
zodError: import("zod").typeToFlattenedError<any, string> | null;
|
|
13014
|
+
prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
|
|
13015
|
+
code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
|
|
13016
|
+
httpStatus: number;
|
|
13017
|
+
path?: string;
|
|
13018
|
+
stack?: string;
|
|
13019
|
+
};
|
|
13020
|
+
message: string;
|
|
13021
|
+
code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
|
|
13022
|
+
};
|
|
13023
|
+
transformer: false;
|
|
13024
|
+
}, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
|
|
13025
|
+
getAll: import("@trpc/server").TRPCQueryProcedure<{
|
|
13026
|
+
input: void;
|
|
13027
|
+
output: {
|
|
13028
|
+
teacherInClass: {
|
|
13029
|
+
id: string;
|
|
13030
|
+
name: string;
|
|
13031
|
+
section: string;
|
|
13032
|
+
subject: string;
|
|
13033
|
+
dueToday: {
|
|
13034
|
+
type: import(".prisma/client").$Enums.AssignmentType;
|
|
13035
|
+
id: string;
|
|
13036
|
+
submissions: {
|
|
13037
|
+
studentId: string;
|
|
13038
|
+
submitted: boolean | null;
|
|
13039
|
+
returned: boolean | null;
|
|
13040
|
+
}[];
|
|
13041
|
+
title: string;
|
|
13042
|
+
dueDate: Date;
|
|
13043
|
+
}[];
|
|
13044
|
+
assignments: {
|
|
13045
|
+
type: import(".prisma/client").$Enums.AssignmentType;
|
|
13046
|
+
id: string;
|
|
13047
|
+
submissions: {
|
|
13048
|
+
studentId: string;
|
|
13049
|
+
submitted: boolean | null;
|
|
13050
|
+
returned: boolean | null;
|
|
13051
|
+
}[];
|
|
13052
|
+
title: string;
|
|
13053
|
+
dueDate: Date;
|
|
13054
|
+
}[];
|
|
12636
13055
|
members: {
|
|
12637
13056
|
id: string;
|
|
12638
13057
|
username: string;
|
|
@@ -22526,6 +22945,14 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
22526
22945
|
schools: number;
|
|
22527
22946
|
users: number;
|
|
22528
22947
|
verifiedUsers: number;
|
|
22948
|
+
suspectedUsers: number;
|
|
22949
|
+
cleanUsers: number;
|
|
22950
|
+
signupsLast24h: number;
|
|
22951
|
+
signupsLast7d: number;
|
|
22952
|
+
activeUsersLast24h: number;
|
|
22953
|
+
activeUsersLast7d: number;
|
|
22954
|
+
activeClassesLast7d: number;
|
|
22955
|
+
submissionsLast24h: number;
|
|
22529
22956
|
classes: number;
|
|
22530
22957
|
departments: number;
|
|
22531
22958
|
runJobs: {
|
|
@@ -22734,6 +23161,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
22734
23161
|
};
|
|
22735
23162
|
output: {
|
|
22736
23163
|
items: {
|
|
23164
|
+
signals: import("../services/adminSpam.js").SpamSignals;
|
|
22737
23165
|
type: string;
|
|
22738
23166
|
status: string;
|
|
22739
23167
|
id: string;
|
|
@@ -22768,6 +23196,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
22768
23196
|
};
|
|
22769
23197
|
output: {
|
|
22770
23198
|
items: {
|
|
23199
|
+
signals: import("../services/adminSpam.js").SpamSignals;
|
|
22771
23200
|
id: string;
|
|
22772
23201
|
createdAt: Date;
|
|
22773
23202
|
email: string;
|
|
@@ -22782,12 +23211,19 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
22782
23211
|
}>;
|
|
22783
23212
|
searchUsers: import("@trpc/server").TRPCQueryProcedure<{
|
|
22784
23213
|
input: {
|
|
23214
|
+
sort?: "username" | "recent" | "activity" | undefined;
|
|
22785
23215
|
query?: string | undefined;
|
|
23216
|
+
verified?: boolean | undefined;
|
|
23217
|
+
schoolId?: string | undefined;
|
|
22786
23218
|
page?: number | undefined;
|
|
23219
|
+
activity?: "active" | "all" | "inactive" | undefined;
|
|
22787
23220
|
pageSize?: number | undefined;
|
|
23221
|
+
emailDomain?: string | undefined;
|
|
23222
|
+
spam?: "all" | "suspected" | "clean" | undefined;
|
|
22788
23223
|
};
|
|
22789
23224
|
output: {
|
|
22790
23225
|
items: {
|
|
23226
|
+
signals: import("../services/adminSpam.js").SpamSignals;
|
|
22791
23227
|
school: {
|
|
22792
23228
|
id: string;
|
|
22793
23229
|
name: string;
|
|
@@ -22796,9 +23232,13 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
22796
23232
|
username: string;
|
|
22797
23233
|
email: string;
|
|
22798
23234
|
verified: boolean;
|
|
23235
|
+
profile: {
|
|
23236
|
+
createdAt: Date;
|
|
23237
|
+
} | null;
|
|
22799
23238
|
_count: {
|
|
22800
23239
|
teacherIn: number;
|
|
22801
23240
|
studentIn: number;
|
|
23241
|
+
submissions: number;
|
|
22802
23242
|
sessions: number;
|
|
22803
23243
|
};
|
|
22804
23244
|
}[];
|
|
@@ -22814,6 +23254,37 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
22814
23254
|
id: string;
|
|
22815
23255
|
};
|
|
22816
23256
|
output: {
|
|
23257
|
+
classes: {
|
|
23258
|
+
teaching: {
|
|
23259
|
+
school: {
|
|
23260
|
+
id: string;
|
|
23261
|
+
name: string;
|
|
23262
|
+
} | null;
|
|
23263
|
+
section: string;
|
|
23264
|
+
id: string;
|
|
23265
|
+
name: string;
|
|
23266
|
+
_count: {
|
|
23267
|
+
students: number;
|
|
23268
|
+
assignments: number;
|
|
23269
|
+
};
|
|
23270
|
+
subject: string;
|
|
23271
|
+
}[];
|
|
23272
|
+
enrolled: {
|
|
23273
|
+
school: {
|
|
23274
|
+
id: string;
|
|
23275
|
+
name: string;
|
|
23276
|
+
} | null;
|
|
23277
|
+
section: string;
|
|
23278
|
+
id: string;
|
|
23279
|
+
name: string;
|
|
23280
|
+
_count: {
|
|
23281
|
+
students: number;
|
|
23282
|
+
assignments: number;
|
|
23283
|
+
};
|
|
23284
|
+
subject: string;
|
|
23285
|
+
}[];
|
|
23286
|
+
};
|
|
23287
|
+
signals: import("../services/adminSpam.js").SpamSignals;
|
|
22817
23288
|
school: {
|
|
22818
23289
|
id: string;
|
|
22819
23290
|
name: string;
|
|
@@ -22855,6 +23326,251 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
22855
23326
|
};
|
|
22856
23327
|
meta: object;
|
|
22857
23328
|
}>;
|
|
23329
|
+
listClasses: import("@trpc/server").TRPCQueryProcedure<{
|
|
23330
|
+
input: {
|
|
23331
|
+
sort?: "name" | "students" | "assignments" | undefined;
|
|
23332
|
+
query?: string | undefined;
|
|
23333
|
+
schoolId?: string | undefined;
|
|
23334
|
+
page?: number | undefined;
|
|
23335
|
+
pageSize?: number | undefined;
|
|
23336
|
+
membership?: "all" | "populated" | "empty" | undefined;
|
|
23337
|
+
};
|
|
23338
|
+
output: {
|
|
23339
|
+
items: {
|
|
23340
|
+
lastAssignmentAt: Date | null;
|
|
23341
|
+
school: {
|
|
23342
|
+
id: string;
|
|
23343
|
+
name: string;
|
|
23344
|
+
} | null;
|
|
23345
|
+
department: {
|
|
23346
|
+
id: string;
|
|
23347
|
+
name: string;
|
|
23348
|
+
} | null;
|
|
23349
|
+
section: string;
|
|
23350
|
+
id: string;
|
|
23351
|
+
name: string;
|
|
23352
|
+
teachers: {
|
|
23353
|
+
id: string;
|
|
23354
|
+
username: string;
|
|
23355
|
+
}[];
|
|
23356
|
+
_count: {
|
|
23357
|
+
teachers: number;
|
|
23358
|
+
students: number;
|
|
23359
|
+
assignments: number;
|
|
23360
|
+
events: number;
|
|
23361
|
+
announcements: number;
|
|
23362
|
+
discussions: number;
|
|
23363
|
+
worksheets: number;
|
|
23364
|
+
modules: number;
|
|
23365
|
+
};
|
|
23366
|
+
subject: string;
|
|
23367
|
+
}[];
|
|
23368
|
+
total: number;
|
|
23369
|
+
page: number;
|
|
23370
|
+
pageSize: number;
|
|
23371
|
+
pageCount: number;
|
|
23372
|
+
};
|
|
23373
|
+
meta: object;
|
|
23374
|
+
}>;
|
|
23375
|
+
getClass: import("@trpc/server").TRPCQueryProcedure<{
|
|
23376
|
+
input: {
|
|
23377
|
+
id: string;
|
|
23378
|
+
};
|
|
23379
|
+
output: {
|
|
23380
|
+
teachers: {
|
|
23381
|
+
signals: import("../services/adminSpam.js").SpamSignals;
|
|
23382
|
+
submissionsInClass: number;
|
|
23383
|
+
id: string;
|
|
23384
|
+
username: string;
|
|
23385
|
+
email: string;
|
|
23386
|
+
verified: boolean;
|
|
23387
|
+
_count: {
|
|
23388
|
+
teacherIn: number;
|
|
23389
|
+
studentIn: number;
|
|
23390
|
+
submissions: number;
|
|
23391
|
+
};
|
|
23392
|
+
}[];
|
|
23393
|
+
students: {
|
|
23394
|
+
signals: import("../services/adminSpam.js").SpamSignals;
|
|
23395
|
+
submissionsInClass: number;
|
|
23396
|
+
id: string;
|
|
23397
|
+
username: string;
|
|
23398
|
+
email: string;
|
|
23399
|
+
verified: boolean;
|
|
23400
|
+
_count: {
|
|
23401
|
+
teacherIn: number;
|
|
23402
|
+
studentIn: number;
|
|
23403
|
+
submissions: number;
|
|
23404
|
+
};
|
|
23405
|
+
}[];
|
|
23406
|
+
announcements: {
|
|
23407
|
+
remarks: string;
|
|
23408
|
+
id: string;
|
|
23409
|
+
createdAt: Date;
|
|
23410
|
+
teacher: {
|
|
23411
|
+
id: string;
|
|
23412
|
+
username: string;
|
|
23413
|
+
};
|
|
23414
|
+
}[];
|
|
23415
|
+
suspectedMembers: number;
|
|
23416
|
+
school: {
|
|
23417
|
+
id: string;
|
|
23418
|
+
name: string;
|
|
23419
|
+
} | null;
|
|
23420
|
+
department: {
|
|
23421
|
+
id: string;
|
|
23422
|
+
name: string;
|
|
23423
|
+
} | null;
|
|
23424
|
+
section: string;
|
|
23425
|
+
id: string;
|
|
23426
|
+
name: string;
|
|
23427
|
+
assignments: {
|
|
23428
|
+
type: import(".prisma/client").$Enums.AssignmentType;
|
|
23429
|
+
id: string;
|
|
23430
|
+
createdAt: Date | null;
|
|
23431
|
+
_count: {
|
|
23432
|
+
submissions: number;
|
|
23433
|
+
};
|
|
23434
|
+
title: string;
|
|
23435
|
+
dueDate: Date;
|
|
23436
|
+
graded: boolean;
|
|
23437
|
+
teacher: {
|
|
23438
|
+
id: string;
|
|
23439
|
+
username: string;
|
|
23440
|
+
};
|
|
23441
|
+
}[];
|
|
23442
|
+
_count: {
|
|
23443
|
+
teachers: number;
|
|
23444
|
+
students: number;
|
|
23445
|
+
assignments: number;
|
|
23446
|
+
events: number;
|
|
23447
|
+
announcements: number;
|
|
23448
|
+
discussions: number;
|
|
23449
|
+
sections: number;
|
|
23450
|
+
worksheets: number;
|
|
23451
|
+
modules: number;
|
|
23452
|
+
};
|
|
23453
|
+
color: string | null;
|
|
23454
|
+
subject: string;
|
|
23455
|
+
};
|
|
23456
|
+
meta: object;
|
|
23457
|
+
}>;
|
|
23458
|
+
getContentTelemetry: import("@trpc/server").TRPCQueryProcedure<{
|
|
23459
|
+
input: void;
|
|
23460
|
+
output: {
|
|
23461
|
+
content: {
|
|
23462
|
+
assignments: number;
|
|
23463
|
+
assignmentsLast7d: number;
|
|
23464
|
+
submissions: number;
|
|
23465
|
+
submissionsLast7d: number;
|
|
23466
|
+
gradedSubmissions: number;
|
|
23467
|
+
announcements: number;
|
|
23468
|
+
announcementsLast7d: number;
|
|
23469
|
+
discussions: number;
|
|
23470
|
+
messages: number;
|
|
23471
|
+
messagesLast7d: number;
|
|
23472
|
+
worksheets: number;
|
|
23473
|
+
events: number;
|
|
23474
|
+
modules: number;
|
|
23475
|
+
files: number;
|
|
23476
|
+
storageBytes: number;
|
|
23477
|
+
};
|
|
23478
|
+
ai: {
|
|
23479
|
+
calls7d: number;
|
|
23480
|
+
failures7d: number;
|
|
23481
|
+
tokens7d: number;
|
|
23482
|
+
byModel: {
|
|
23483
|
+
model: string;
|
|
23484
|
+
calls: number;
|
|
23485
|
+
tokens: number;
|
|
23486
|
+
}[];
|
|
23487
|
+
};
|
|
23488
|
+
jobs: {
|
|
23489
|
+
failedLast24h: number;
|
|
23490
|
+
byType: {
|
|
23491
|
+
total: number;
|
|
23492
|
+
failed: number;
|
|
23493
|
+
type: string;
|
|
23494
|
+
}[];
|
|
23495
|
+
};
|
|
23496
|
+
};
|
|
23497
|
+
meta: object;
|
|
23498
|
+
}>;
|
|
23499
|
+
getActivitySeries: import("@trpc/server").TRPCQueryProcedure<{
|
|
23500
|
+
input: {
|
|
23501
|
+
days?: number | undefined;
|
|
23502
|
+
};
|
|
23503
|
+
output: {
|
|
23504
|
+
points: import("../services/adminTelemetry.js").DailyPoint[];
|
|
23505
|
+
};
|
|
23506
|
+
meta: object;
|
|
23507
|
+
}>;
|
|
23508
|
+
listSqlSchema: import("@trpc/server").TRPCQueryProcedure<{
|
|
23509
|
+
input: void;
|
|
23510
|
+
output: {
|
|
23511
|
+
tables: import("../services/adminSql.js").AdminSqlTable[];
|
|
23512
|
+
};
|
|
23513
|
+
meta: object;
|
|
23514
|
+
}>;
|
|
23515
|
+
runSql: import("@trpc/server").TRPCMutationProcedure<{
|
|
23516
|
+
input: {
|
|
23517
|
+
sql: string;
|
|
23518
|
+
limit?: number | undefined;
|
|
23519
|
+
};
|
|
23520
|
+
output: import("../services/adminSql.js").AdminSqlResult;
|
|
23521
|
+
meta: object;
|
|
23522
|
+
}>;
|
|
23523
|
+
getSpamOverview: import("@trpc/server").TRPCQueryProcedure<{
|
|
23524
|
+
input: void;
|
|
23525
|
+
output: {
|
|
23526
|
+
rules: {
|
|
23527
|
+
blockedDomains: string[];
|
|
23528
|
+
botPatterns: string[];
|
|
23529
|
+
disposableDomains: string[];
|
|
23530
|
+
};
|
|
23531
|
+
totalUsers: number;
|
|
23532
|
+
suspectedUsers: number;
|
|
23533
|
+
suspectedVerified: number;
|
|
23534
|
+
cleanUsers: number;
|
|
23535
|
+
domains: {
|
|
23536
|
+
domain: string;
|
|
23537
|
+
total: number;
|
|
23538
|
+
verified: number;
|
|
23539
|
+
suspected: boolean;
|
|
23540
|
+
}[];
|
|
23541
|
+
recent: {
|
|
23542
|
+
signals: import("../services/adminSpam.js").SpamSignals;
|
|
23543
|
+
id: string;
|
|
23544
|
+
username: string;
|
|
23545
|
+
email: string;
|
|
23546
|
+
verified: boolean;
|
|
23547
|
+
profile: {
|
|
23548
|
+
createdAt: Date;
|
|
23549
|
+
} | null;
|
|
23550
|
+
_count: {
|
|
23551
|
+
teacherIn: number;
|
|
23552
|
+
studentIn: number;
|
|
23553
|
+
submissions: number;
|
|
23554
|
+
};
|
|
23555
|
+
}[];
|
|
23556
|
+
};
|
|
23557
|
+
meta: object;
|
|
23558
|
+
}>;
|
|
23559
|
+
listUserEmailDomains: import("@trpc/server").TRPCQueryProcedure<{
|
|
23560
|
+
input: {
|
|
23561
|
+
limit?: number | undefined;
|
|
23562
|
+
suspectedOnly?: boolean | undefined;
|
|
23563
|
+
};
|
|
23564
|
+
output: {
|
|
23565
|
+
items: {
|
|
23566
|
+
domain: string;
|
|
23567
|
+
total: number;
|
|
23568
|
+
verified: number;
|
|
23569
|
+
suspected: boolean;
|
|
23570
|
+
}[];
|
|
23571
|
+
};
|
|
23572
|
+
meta: object;
|
|
23573
|
+
}>;
|
|
22858
23574
|
}>>;
|
|
22859
23575
|
embedding: import("@trpc/server").TRPCBuiltRouter<{
|
|
22860
23576
|
ctx: import("../trpc.js").Context;
|
|
@@ -23138,7 +23854,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
23138
23854
|
[x: string]: unknown;
|
|
23139
23855
|
classId: string;
|
|
23140
23856
|
moduleId: string;
|
|
23141
|
-
itemType: "FILE" | "ASSIGNMENT" | "WORKSHEET" | "ANNOUNCEMENT" | "DISCUSSION" | "EXTERNAL_URL" | "SUB_HEADER";
|
|
23857
|
+
itemType: "FILE" | "ASSIGNMENT" | "WORKSHEET" | "ANNOUNCEMENT" | "DISCUSSION" | "EXTERNAL_URL" | "SUB_HEADER" | "VISUALIZATION";
|
|
23142
23858
|
title?: string | undefined;
|
|
23143
23859
|
indent?: number | undefined;
|
|
23144
23860
|
itemId?: string | undefined;
|
|
@@ -25135,5 +25851,127 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
25135
25851
|
meta: object;
|
|
25136
25852
|
}>;
|
|
25137
25853
|
}>>;
|
|
25854
|
+
visualization: import("@trpc/server").TRPCBuiltRouter<{
|
|
25855
|
+
ctx: import("../trpc.js").Context;
|
|
25856
|
+
meta: object;
|
|
25857
|
+
errorShape: {
|
|
25858
|
+
data: {
|
|
25859
|
+
zodError: import("zod").typeToFlattenedError<any, string> | null;
|
|
25860
|
+
prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
|
|
25861
|
+
code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
|
|
25862
|
+
httpStatus: number;
|
|
25863
|
+
path?: string;
|
|
25864
|
+
stack?: string;
|
|
25865
|
+
};
|
|
25866
|
+
message: string;
|
|
25867
|
+
code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
|
|
25868
|
+
};
|
|
25869
|
+
transformer: false;
|
|
25870
|
+
}, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
|
|
25871
|
+
list: import("@trpc/server").TRPCQueryProcedure<{
|
|
25872
|
+
input: {
|
|
25873
|
+
[x: string]: unknown;
|
|
25874
|
+
classId: string;
|
|
25875
|
+
};
|
|
25876
|
+
output: {
|
|
25877
|
+
id: string;
|
|
25878
|
+
createdAt: Date;
|
|
25879
|
+
updatedAt: Date;
|
|
25880
|
+
classId: string;
|
|
25881
|
+
title: string;
|
|
25882
|
+
prompt: string | null;
|
|
25883
|
+
published: boolean;
|
|
25884
|
+
}[];
|
|
25885
|
+
meta: object;
|
|
25886
|
+
}>;
|
|
25887
|
+
get: import("@trpc/server").TRPCQueryProcedure<{
|
|
25888
|
+
input: {
|
|
25889
|
+
[x: string]: unknown;
|
|
25890
|
+
classId: string;
|
|
25891
|
+
id: string;
|
|
25892
|
+
};
|
|
25893
|
+
output: {
|
|
25894
|
+
id: string;
|
|
25895
|
+
createdAt: Date;
|
|
25896
|
+
updatedAt: Date;
|
|
25897
|
+
classId: string;
|
|
25898
|
+
title: string;
|
|
25899
|
+
prompt: string | null;
|
|
25900
|
+
published: boolean;
|
|
25901
|
+
html: string;
|
|
25902
|
+
};
|
|
25903
|
+
meta: object;
|
|
25904
|
+
}>;
|
|
25905
|
+
generate: import("@trpc/server").TRPCMutationProcedure<{
|
|
25906
|
+
input: {
|
|
25907
|
+
[x: string]: unknown;
|
|
25908
|
+
classId: string;
|
|
25909
|
+
prompt: string;
|
|
25910
|
+
title?: string | undefined;
|
|
25911
|
+
};
|
|
25912
|
+
output: {
|
|
25913
|
+
id: string;
|
|
25914
|
+
createdAt: Date;
|
|
25915
|
+
updatedAt: Date;
|
|
25916
|
+
classId: string;
|
|
25917
|
+
title: string;
|
|
25918
|
+
prompt: string | null;
|
|
25919
|
+
published: boolean;
|
|
25920
|
+
html: string;
|
|
25921
|
+
};
|
|
25922
|
+
meta: object;
|
|
25923
|
+
}>;
|
|
25924
|
+
revise: import("@trpc/server").TRPCMutationProcedure<{
|
|
25925
|
+
input: {
|
|
25926
|
+
[x: string]: unknown;
|
|
25927
|
+
classId: string;
|
|
25928
|
+
id: string;
|
|
25929
|
+
instruction: string;
|
|
25930
|
+
};
|
|
25931
|
+
output: {
|
|
25932
|
+
id: string;
|
|
25933
|
+
createdAt: Date;
|
|
25934
|
+
updatedAt: Date;
|
|
25935
|
+
classId: string;
|
|
25936
|
+
title: string;
|
|
25937
|
+
prompt: string | null;
|
|
25938
|
+
published: boolean;
|
|
25939
|
+
html: string;
|
|
25940
|
+
};
|
|
25941
|
+
meta: object;
|
|
25942
|
+
}>;
|
|
25943
|
+
update: import("@trpc/server").TRPCMutationProcedure<{
|
|
25944
|
+
input: {
|
|
25945
|
+
[x: string]: unknown;
|
|
25946
|
+
classId: string;
|
|
25947
|
+
id: string;
|
|
25948
|
+
title?: string | undefined;
|
|
25949
|
+
published?: boolean | undefined;
|
|
25950
|
+
html?: string | undefined;
|
|
25951
|
+
};
|
|
25952
|
+
output: {
|
|
25953
|
+
id: string;
|
|
25954
|
+
createdAt: Date;
|
|
25955
|
+
updatedAt: Date;
|
|
25956
|
+
classId: string;
|
|
25957
|
+
title: string;
|
|
25958
|
+
prompt: string | null;
|
|
25959
|
+
published: boolean;
|
|
25960
|
+
html: string;
|
|
25961
|
+
};
|
|
25962
|
+
meta: object;
|
|
25963
|
+
}>;
|
|
25964
|
+
delete: import("@trpc/server").TRPCMutationProcedure<{
|
|
25965
|
+
input: {
|
|
25966
|
+
[x: string]: unknown;
|
|
25967
|
+
classId: string;
|
|
25968
|
+
id: string;
|
|
25969
|
+
};
|
|
25970
|
+
output: {
|
|
25971
|
+
id: string;
|
|
25972
|
+
};
|
|
25973
|
+
meta: object;
|
|
25974
|
+
}>;
|
|
25975
|
+
}>>;
|
|
25138
25976
|
}>>;
|
|
25139
25977
|
//# sourceMappingURL=_app.d.ts.map
|