@studious-lms/server 1.13.0 → 1.15.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/.dockerignore +28 -0
- package/.env.example +5 -0
- package/.github/workflows/deploy.yml +123 -0
- package/Dockerfile +54 -0
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/instrument.js +3 -3
- package/dist/instrument.js.map +1 -1
- package/dist/lib/config/cors.d.ts.map +1 -1
- package/dist/lib/config/cors.js +31 -11
- package/dist/lib/config/cors.js.map +1 -1
- package/dist/lib/config/env.d.ts +17 -0
- package/dist/lib/config/env.d.ts.map +1 -1
- package/dist/lib/config/env.js +8 -2
- package/dist/lib/config/env.js.map +1 -1
- package/dist/lib/googleCloudStorage.d.ts +10 -0
- package/dist/lib/googleCloudStorage.d.ts.map +1 -1
- package/dist/lib/googleCloudStorage.js +22 -2
- package/dist/lib/googleCloudStorage.js.map +1 -1
- package/dist/lib/inferDocumentFormat.d.ts +10 -0
- package/dist/lib/inferDocumentFormat.d.ts.map +1 -0
- package/dist/lib/inferDocumentFormat.js +48 -0
- package/dist/lib/inferDocumentFormat.js.map +1 -0
- package/dist/lib/legal.d.ts +3 -0
- package/dist/lib/legal.d.ts.map +1 -0
- package/dist/lib/legal.js +6 -0
- package/dist/lib/legal.js.map +1 -0
- package/dist/lib/prisma.d.ts +104 -5
- package/dist/lib/prisma.d.ts.map +1 -1
- package/dist/lib/prisma.js +33 -2
- package/dist/lib/prisma.js.map +1 -1
- package/dist/models/agenda.d.ts +20 -20
- package/dist/models/announcement.d.ts +211 -101
- package/dist/models/announcement.d.ts.map +1 -1
- package/dist/models/assignment.d.ts +560 -362
- package/dist/models/assignment.d.ts.map +1 -1
- package/dist/models/attendance.d.ts +197 -71
- package/dist/models/attendance.d.ts.map +1 -1
- package/dist/models/auth.d.ts +356 -114
- package/dist/models/auth.d.ts.map +1 -1
- package/dist/models/auth.js +4 -2
- package/dist/models/auth.js.map +1 -1
- package/dist/models/class.d.ts +327 -201
- package/dist/models/class.d.ts.map +1 -1
- package/dist/models/class.js +2 -2
- package/dist/models/class.js.map +1 -1
- package/dist/models/cloudStorage.d.ts +146 -56
- package/dist/models/cloudStorage.d.ts.map +1 -1
- package/dist/models/comment.d.ts +262 -110
- package/dist/models/comment.d.ts.map +1 -1
- package/dist/models/conversation.d.ts +206 -80
- package/dist/models/conversation.d.ts.map +1 -1
- package/dist/models/department.d.ts +196 -70
- package/dist/models/department.d.ts.map +1 -1
- package/dist/models/event.d.ts +305 -141
- package/dist/models/event.d.ts.map +1 -1
- package/dist/models/file.d.ts +422 -272
- package/dist/models/file.d.ts.map +1 -1
- package/dist/models/folder.d.ts +433 -181
- package/dist/models/folder.d.ts.map +1 -1
- package/dist/models/labChat.d.ts +205 -79
- package/dist/models/labChat.d.ts.map +1 -1
- package/dist/models/marketing.d.ts +79 -38
- package/dist/models/marketing.d.ts.map +1 -1
- package/dist/models/marketing.js +12 -4
- package/dist/models/marketing.js.map +1 -1
- package/dist/models/message.d.ts +97 -43
- package/dist/models/message.d.ts.map +1 -1
- package/dist/models/newtonChat.d.ts +84 -30
- package/dist/models/newtonChat.d.ts.map +1 -1
- package/dist/models/notification.d.ts +57 -21
- package/dist/models/notification.d.ts.map +1 -1
- package/dist/models/school.d.ts +349 -133
- package/dist/models/school.d.ts.map +1 -1
- package/dist/models/section.d.ts +216 -72
- package/dist/models/section.d.ts.map +1 -1
- package/dist/models/tag.d.ts +156 -48
- package/dist/models/tag.d.ts.map +1 -1
- package/dist/models/user.d.ts +82 -28
- package/dist/models/user.d.ts.map +1 -1
- package/dist/models/worksheet.d.ts +1032 -423
- package/dist/models/worksheet.d.ts.map +1 -1
- package/dist/models/worksheet.js +8 -2
- package/dist/models/worksheet.js.map +1 -1
- package/dist/pipelines/aiLabChat.d.ts +7 -9
- package/dist/pipelines/aiLabChat.d.ts.map +1 -1
- package/dist/pipelines/aiLabChat.js +194 -125
- package/dist/pipelines/aiLabChat.js.map +1 -1
- package/dist/pipelines/aiLabChatContract.d.ts +233 -389
- package/dist/pipelines/aiLabChatContract.d.ts.map +1 -1
- package/dist/pipelines/aiLabChatContract.js +54 -70
- package/dist/pipelines/aiLabChatContract.js.map +1 -1
- package/dist/pipelines/aiNewtonChat.d.ts.map +1 -1
- package/dist/pipelines/aiNewtonChat.js +41 -41
- package/dist/pipelines/aiNewtonChat.js.map +1 -1
- package/dist/pipelines/gradeWorksheet.d.ts +8 -8
- package/dist/pipelines/labChatPrompt.d.ts +18 -11
- package/dist/pipelines/labChatPrompt.d.ts.map +1 -1
- package/dist/pipelines/labChatPrompt.js +93 -75
- package/dist/pipelines/labChatPrompt.js.map +1 -1
- package/dist/pipelines/pdfToWorksheet.d.ts +1 -1
- package/dist/routers/_app.d.ts +2601 -2151
- 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 +13 -13
- package/dist/routers/agenda.d.ts +18 -18
- package/dist/routers/announcement.d.ts +60 -60
- package/dist/routers/assignment.d.ts +393 -383
- package/dist/routers/assignment.d.ts.map +1 -1
- package/dist/routers/attendance.d.ts +10 -10
- package/dist/routers/auth.d.ts +4 -2
- package/dist/routers/auth.d.ts.map +1 -1
- package/dist/routers/auth.js +15 -2
- package/dist/routers/auth.js.map +1 -1
- package/dist/routers/class.d.ts +157 -153
- package/dist/routers/class.d.ts.map +1 -1
- package/dist/routers/comment.d.ts +18 -18
- package/dist/routers/conversation.d.ts +11 -11
- package/dist/routers/department.d.ts +34 -34
- package/dist/routers/discussion.d.ts +68 -56
- package/dist/routers/discussion.d.ts.map +1 -1
- package/dist/routers/discussion.js +6 -2
- package/dist/routers/discussion.js.map +1 -1
- package/dist/routers/embedding.d.ts +73 -0
- package/dist/routers/embedding.d.ts.map +1 -0
- package/dist/routers/embedding.js +151 -0
- package/dist/routers/embedding.js.map +1 -0
- package/dist/routers/event.d.ts +57 -55
- package/dist/routers/event.d.ts.map +1 -1
- package/dist/routers/file.d.ts +14 -14
- package/dist/routers/folder.d.ts +38 -38
- package/dist/routers/labChat.d.ts +16 -16
- package/dist/routers/marketing.d.ts +1 -14
- package/dist/routers/marketing.d.ts.map +1 -1
- package/dist/routers/message.d.ts +13 -13
- package/dist/routers/newtonChat.d.ts +4 -4
- package/dist/routers/notifications.d.ts +5 -5
- package/dist/routers/permissions.d.ts +14 -14
- package/dist/routers/school.d.ts +59 -55
- package/dist/routers/school.d.ts.map +1 -1
- package/dist/routers/search.d.ts +22 -1
- package/dist/routers/search.d.ts.map +1 -1
- package/dist/routers/search.js +9 -3
- package/dist/routers/search.js.map +1 -1
- package/dist/routers/section.d.ts +4 -4
- package/dist/routers/studentProgress.d.ts +1 -1
- package/dist/routers/tag.d.ts +7 -7
- package/dist/routers/user.d.ts +99 -10
- package/dist/routers/user.d.ts.map +1 -1
- package/dist/routers/user.js +19 -2
- package/dist/routers/user.js.map +1 -1
- package/dist/routers/worksheet.d.ts +93 -55
- package/dist/routers/worksheet.d.ts.map +1 -1
- package/dist/routers/worksheet.js +26 -2
- package/dist/routers/worksheet.js.map +1 -1
- package/dist/routes/aiStream.d.ts +2 -0
- package/dist/routes/aiStream.d.ts.map +1 -0
- package/dist/routes/aiStream.js +726 -0
- package/dist/routes/aiStream.js.map +1 -0
- package/dist/seedDatabase.d.ts +3 -1
- package/dist/seedDatabase.d.ts.map +1 -1
- package/dist/seedDatabase.js +6 -6
- package/dist/seedDatabase.js.map +1 -1
- package/dist/services/adminInstitution.d.ts +8 -8
- package/dist/services/adminRunJob.d.ts +4 -4
- package/dist/services/agenda.d.ts +18 -18
- package/dist/services/aiChatStream.d.ts +88 -0
- package/dist/services/aiChatStream.d.ts.map +1 -0
- package/dist/services/aiChatStream.js +254 -0
- package/dist/services/aiChatStream.js.map +1 -0
- package/dist/services/aiModifierTools.d.ts +16 -0
- package/dist/services/aiModifierTools.d.ts.map +1 -0
- package/dist/services/aiModifierTools.js +274 -0
- package/dist/services/aiModifierTools.js.map +1 -0
- package/dist/services/aiProposalTools.d.ts +32 -0
- package/dist/services/aiProposalTools.d.ts.map +1 -0
- package/dist/services/aiProposalTools.js +207 -0
- package/dist/services/aiProposalTools.js.map +1 -0
- package/dist/services/aiStream.d.ts +22 -0
- package/dist/services/aiStream.d.ts.map +1 -0
- package/dist/services/aiStream.js +142 -0
- package/dist/services/aiStream.js.map +1 -0
- package/dist/services/aiTools.d.ts +16 -0
- package/dist/services/aiTools.d.ts.map +1 -0
- package/dist/services/aiTools.js +271 -0
- package/dist/services/aiTools.js.map +1 -0
- package/dist/services/announcement.d.ts +42 -42
- package/dist/services/announcement.d.ts.map +1 -1
- package/dist/services/announcement.js +7 -2
- package/dist/services/announcement.js.map +1 -1
- package/dist/services/assignment.d.ts +355 -345
- package/dist/services/assignment.d.ts.map +1 -1
- package/dist/services/assignment.js +30 -9
- package/dist/services/assignment.js.map +1 -1
- package/dist/services/attendance.d.ts +10 -10
- package/dist/services/auth.d.ts +4 -2
- package/dist/services/auth.d.ts.map +1 -1
- package/dist/services/auth.js +13 -4
- package/dist/services/auth.js.map +1 -1
- package/dist/services/class.d.ts +146 -142
- package/dist/services/class.d.ts.map +1 -1
- package/dist/services/class.js +24 -4
- package/dist/services/class.js.map +1 -1
- package/dist/services/comment.d.ts +18 -18
- package/dist/services/conversation.d.ts +11 -11
- package/dist/services/department.d.ts +33 -33
- package/dist/services/discussion.d.ts +58 -58
- package/dist/services/discussion.d.ts.map +1 -1
- package/dist/services/discussion.js +15 -8
- package/dist/services/discussion.js.map +1 -1
- package/dist/services/discussionSummary.d.ts +21 -0
- package/dist/services/discussionSummary.d.ts.map +1 -0
- package/dist/services/discussionSummary.js +179 -0
- package/dist/services/discussionSummary.js.map +1 -0
- package/dist/services/embedding.d.ts +85 -0
- package/dist/services/embedding.d.ts.map +1 -0
- package/dist/services/embedding.js +372 -0
- package/dist/services/embedding.js.map +1 -0
- package/dist/services/event.d.ts +55 -53
- package/dist/services/event.d.ts.map +1 -1
- package/dist/services/file.d.ts +28 -28
- package/dist/services/folder.d.ts +36 -36
- package/dist/services/folder.d.ts.map +1 -1
- package/dist/services/folder.js +32 -2
- package/dist/services/folder.js.map +1 -1
- package/dist/services/labChat.d.ts +16 -16
- package/dist/services/marketing.d.ts +2 -15
- package/dist/services/marketing.d.ts.map +1 -1
- package/dist/services/marketing.js +5 -5
- package/dist/services/marketing.js.map +1 -1
- package/dist/services/message.d.ts +11 -11
- package/dist/services/message.d.ts.map +1 -1
- package/dist/services/message.js +2 -2
- package/dist/services/message.js.map +1 -1
- package/dist/services/newtonChat.d.ts +4 -4
- package/dist/services/notification.d.ts +5 -5
- package/dist/services/notification.d.ts.map +1 -1
- package/dist/services/openaiDocumentGen.d.ts +37 -0
- package/dist/services/openaiDocumentGen.d.ts.map +1 -0
- package/dist/services/openaiDocumentGen.js +262 -0
- package/dist/services/openaiDocumentGen.js.map +1 -0
- package/dist/services/permissions.d.ts +14 -14
- package/dist/services/school.d.ts +54 -50
- package/dist/services/school.d.ts.map +1 -1
- package/dist/services/search.d.ts +13 -1
- package/dist/services/search.d.ts.map +1 -1
- package/dist/services/search.js +145 -2
- package/dist/services/search.js.map +1 -1
- package/dist/services/section.d.ts +3 -3
- package/dist/services/tag.d.ts +4 -4
- package/dist/services/user.d.ts +4 -4
- package/dist/services/user.d.ts.map +1 -1
- package/dist/services/user.js +10 -15
- package/dist/services/user.js.map +1 -1
- package/dist/services/userPrivacy.d.ts +86 -0
- package/dist/services/userPrivacy.d.ts.map +1 -0
- package/dist/services/userPrivacy.js +184 -0
- package/dist/services/userPrivacy.js.map +1 -0
- package/dist/services/worksheet.d.ts +86 -57
- package/dist/services/worksheet.d.ts.map +1 -1
- package/dist/services/worksheet.js +57 -5
- package/dist/services/worksheet.js.map +1 -1
- package/dist/utils/email.d.ts.map +1 -1
- package/dist/utils/email.js +7 -3
- package/dist/utils/email.js.map +1 -1
- package/dist/utils/streamBroadcast.d.ts +11 -0
- package/dist/utils/streamBroadcast.d.ts.map +1 -0
- package/dist/utils/streamBroadcast.js +32 -0
- package/dist/utils/streamBroadcast.js.map +1 -0
- package/dist/workers/connection.d.ts +15 -0
- package/dist/workers/connection.d.ts.map +1 -1
- package/dist/workers/connection.js +20 -2
- package/dist/workers/connection.js.map +1 -1
- package/dist/workers/index.js +4 -2
- package/dist/workers/index.js.map +1 -1
- package/dist/workers/processors/createRunJobWorker.d.ts.map +1 -1
- package/dist/workers/processors/createRunJobWorker.js +31 -8
- package/dist/workers/processors/createRunJobWorker.js.map +1 -1
- package/dist/workers/processors/embedContent.d.ts +8 -0
- package/dist/workers/processors/embedContent.d.ts.map +1 -0
- package/dist/workers/processors/embedContent.js +67 -0
- package/dist/workers/processors/embedContent.js.map +1 -0
- package/dist/workers/queues.d.ts +6 -0
- package/dist/workers/queues.d.ts.map +1 -1
- package/dist/workers/queues.js +5 -3
- package/dist/workers/queues.js.map +1 -1
- package/package.json +5 -1
- package/prisma/migrations/20260609215135_init/migration.sql +1412 -0
- package/prisma/migrations/20260610130000_add_worksheet_tags/migration.sql +13 -0
- package/prisma/migrations/20260610140000_expand_embedding_source_types/migration.sql +4 -0
- package/prisma/migrations/20260611120000_add_user_terms_acceptance/migration.sql +3 -0
- package/prisma/schema.prisma +44 -7
- package/src/index.ts +4 -0
- package/src/instrument.ts +1 -1
- package/src/lib/config/cors.ts +32 -9
- package/src/lib/config/env.ts +6 -0
- package/src/lib/googleCloudStorage.ts +21 -0
- package/src/lib/inferDocumentFormat.ts +58 -0
- package/src/lib/legal.ts +2 -0
- package/src/lib/prisma.ts +40 -1
- package/src/models/auth.ts +4 -0
- package/src/models/class.ts +3 -2
- package/src/models/marketing.ts +10 -2
- package/src/models/worksheet.ts +5 -2
- package/src/pipelines/aiLabChat.ts +245 -146
- package/src/pipelines/aiLabChatContract.ts +59 -69
- package/src/pipelines/aiNewtonChat.ts +46 -43
- package/src/pipelines/labChatPrompt.ts +115 -90
- package/src/routers/_app.ts +2 -0
- package/src/routers/auth.ts +13 -0
- package/src/routers/discussion.ts +7 -0
- package/src/routers/embedding.ts +164 -0
- package/src/routers/search.ts +10 -1
- package/src/routers/user.ts +26 -0
- package/src/routers/worksheet.ts +27 -0
- package/src/routes/aiStream.ts +827 -0
- package/src/seedDatabase.ts +4 -4
- package/src/services/aiChatStream.ts +341 -0
- package/src/services/aiModifierTools.ts +341 -0
- package/src/services/aiProposalTools.ts +274 -0
- package/src/services/aiStream.ts +175 -0
- package/src/services/aiTools.ts +290 -0
- package/src/services/announcement.ts +7 -0
- package/src/services/assignment.ts +31 -7
- package/src/services/auth.ts +14 -2
- package/src/services/class.ts +27 -2
- package/src/services/discussion.ts +22 -8
- package/src/services/discussionSummary.ts +226 -0
- package/src/services/embedding.ts +446 -0
- package/src/services/folder.ts +31 -0
- package/src/services/marketing.ts +3 -3
- package/src/services/message.ts +2 -2
- package/src/services/openaiDocumentGen.ts +319 -0
- package/src/services/search.ts +163 -1
- package/src/services/user.ts +9 -17
- package/src/services/userPrivacy.ts +196 -0
- package/src/services/worksheet.ts +77 -3
- package/src/utils/email.ts +5 -1
- package/src/utils/streamBroadcast.ts +48 -0
- package/src/workers/connection.ts +19 -0
- package/src/workers/index.ts +2 -0
- package/src/workers/processors/createRunJobWorker.ts +32 -6
- package/src/workers/processors/embedContent.ts +86 -0
- package/src/workers/queues.ts +5 -1
- package/tests/helpers/registerInput.ts +20 -0
- package/tests/integration/globalSetup.ts +10 -18
- package/tests/integration/routers/auth.test.ts +13 -18
- package/tests/unit/lib/inferDocumentFormat.test.ts +33 -0
- package/tests/unit/pipelines/aiLabChatContract.test.ts +38 -21
- package/tests/unit/pipelines/labChatPrompt.test.ts +23 -36
- package/tests/unit/services/aiChatStream.test.ts +92 -0
- package/tests/unit/services/openaiDocumentGen.test.ts +65 -0
- package/prisma/migrations/20250807062924_init/migration.sql +0 -436
- package/prisma/migrations/20250919063704_init2/migration.sql +0 -24
- package/prisma/migrations/20250920143543_add_profile_fields/migration.sql +0 -15
- package/prisma/migrations/20250922165147_add_chat_models/migration.sql +0 -68
- package/prisma/migrations/20250922165314_add_chat_roles/migration.sql +0 -5
- package/prisma/migrations/20250922171242_refactor_notification_system/migration.sql +0 -20
- package/prisma/migrations/20250922172208_add_mentions_system/migration.sql +0 -21
- package/prisma/migrations/20250925072732_add_lab_chat_system/migration.sql +0 -25
- package/prisma/migrations/20251020151505_add_upload_tracking_fields/migration.sql +0 -57
- package/prisma/migrations/20251109122857_annuoncements_comments/migration.sql +0 -30
- package/prisma/migrations/20251109135555_reactions_announcements_comments/migration.sql +0 -35
- package/prisma/migrations/20260410124000_add_submission_recommendation_state/migration.sql +0 -14
- package/prisma/migrations/20260415103500_add_session_type/migration.sql +0 -33
- package/prisma/migrations/20260415133000_add_ai_usage_logs/migration.sql +0 -19
- package/prisma/migrations/20260417083000_add_conversation_member_hidden_at/migration.sql +0 -2
- package/prisma/migrations/20260502230500_assignment_submission_comments/migration.sql +0 -60
- package/prisma/migrations/20260504071500_school_memberships/migration.sql +0 -81
- package/prisma/migrations/20260506162500_consolidate_run_job_and_unify_job_status/migration.sql +0 -166
- package/prisma/migrations/20260509220000_institution_overhaul/migration.sql +0 -184
- package/prisma/migrations/20260510170000_add_folder_permissions/migration.sql +0 -93
- package/prisma/migrations/20260510183000_add_discussions/migration.sql +0 -151
- /package/.github/workflows/{npm.yml → npm-publish.yml} +0 -0
package/dist/routers/user.d.ts
CHANGED
|
@@ -26,26 +26,26 @@ export declare const userRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
26
26
|
bio: any;
|
|
27
27
|
location: any;
|
|
28
28
|
website: any;
|
|
29
|
-
profilePicture:
|
|
30
|
-
profilePictureThumbnail:
|
|
29
|
+
profilePicture: any;
|
|
30
|
+
profilePictureThumbnail: any;
|
|
31
31
|
};
|
|
32
32
|
};
|
|
33
33
|
meta: object;
|
|
34
34
|
}>;
|
|
35
35
|
updateProfile: import("@trpc/server").TRPCMutationProcedure<{
|
|
36
36
|
input: {
|
|
37
|
-
profile?: {
|
|
38
|
-
location?: string | null | undefined;
|
|
39
|
-
displayName?: string | null | undefined;
|
|
40
|
-
bio?: string | null | undefined;
|
|
41
|
-
website?: string | null | undefined;
|
|
42
|
-
} | undefined;
|
|
43
37
|
profilePicture?: {
|
|
44
38
|
filePath: string;
|
|
45
39
|
fileName: string;
|
|
46
40
|
fileType: string;
|
|
47
41
|
fileSize: number;
|
|
48
42
|
} | undefined;
|
|
43
|
+
profile?: {
|
|
44
|
+
displayName?: string | null | undefined;
|
|
45
|
+
bio?: string | null | undefined;
|
|
46
|
+
location?: string | null | undefined;
|
|
47
|
+
website?: string | null | undefined;
|
|
48
|
+
} | undefined;
|
|
49
49
|
dicebearAvatar?: {
|
|
50
50
|
url: string;
|
|
51
51
|
} | undefined;
|
|
@@ -58,8 +58,8 @@ export declare const userRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
58
58
|
bio: any;
|
|
59
59
|
location: any;
|
|
60
60
|
website: any;
|
|
61
|
-
profilePicture:
|
|
62
|
-
profilePictureThumbnail:
|
|
61
|
+
profilePicture: any;
|
|
62
|
+
profilePictureThumbnail: any;
|
|
63
63
|
};
|
|
64
64
|
};
|
|
65
65
|
meta: object;
|
|
@@ -76,5 +76,94 @@ export declare const userRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
76
76
|
};
|
|
77
77
|
meta: object;
|
|
78
78
|
}>;
|
|
79
|
+
exportData: import("@trpc/server").TRPCQueryProcedure<{
|
|
80
|
+
input: void;
|
|
81
|
+
output: {
|
|
82
|
+
exportedAt: string;
|
|
83
|
+
user: {
|
|
84
|
+
id: string;
|
|
85
|
+
username: string;
|
|
86
|
+
email: string;
|
|
87
|
+
verified: boolean;
|
|
88
|
+
termsAcceptedAt: Date | null;
|
|
89
|
+
termsVersion: string | null;
|
|
90
|
+
profile: {
|
|
91
|
+
id: string;
|
|
92
|
+
userId: string;
|
|
93
|
+
displayName: string | null;
|
|
94
|
+
bio: string | null;
|
|
95
|
+
location: string | null;
|
|
96
|
+
website: string | null;
|
|
97
|
+
createdAt: Date;
|
|
98
|
+
updatedAt: Date;
|
|
99
|
+
profilePicture: string | null;
|
|
100
|
+
profilePictureThumbnail: string | null;
|
|
101
|
+
} | null;
|
|
102
|
+
teacherIn: {
|
|
103
|
+
section: string;
|
|
104
|
+
id: string;
|
|
105
|
+
name: string;
|
|
106
|
+
subject: string;
|
|
107
|
+
}[];
|
|
108
|
+
studentIn: {
|
|
109
|
+
section: string;
|
|
110
|
+
id: string;
|
|
111
|
+
name: string;
|
|
112
|
+
subject: string;
|
|
113
|
+
}[];
|
|
114
|
+
submissions: {
|
|
115
|
+
assignment: {
|
|
116
|
+
id: string;
|
|
117
|
+
classId: string;
|
|
118
|
+
title: string;
|
|
119
|
+
};
|
|
120
|
+
id: string;
|
|
121
|
+
createdAt: Date;
|
|
122
|
+
extendedResponse: string | null;
|
|
123
|
+
gradeReceived: number | null;
|
|
124
|
+
submittedAt: Date | null;
|
|
125
|
+
}[];
|
|
126
|
+
events: {
|
|
127
|
+
id: string;
|
|
128
|
+
location: string | null;
|
|
129
|
+
name: string | null;
|
|
130
|
+
startTime: Date;
|
|
131
|
+
endTime: Date;
|
|
132
|
+
remarks: string | null;
|
|
133
|
+
}[];
|
|
134
|
+
notificationsReceived: {
|
|
135
|
+
id: string;
|
|
136
|
+
createdAt: Date;
|
|
137
|
+
title: string;
|
|
138
|
+
content: string;
|
|
139
|
+
read: boolean;
|
|
140
|
+
}[];
|
|
141
|
+
schoolMemberships: {
|
|
142
|
+
status: import(".prisma/client").$Enums.SchoolMembershipStatus;
|
|
143
|
+
school: {
|
|
144
|
+
id: string;
|
|
145
|
+
name: string;
|
|
146
|
+
};
|
|
147
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
148
|
+
}[];
|
|
149
|
+
sentMessages: {
|
|
150
|
+
id: string;
|
|
151
|
+
createdAt: Date;
|
|
152
|
+
content: string;
|
|
153
|
+
conversationId: string;
|
|
154
|
+
}[];
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
meta: object;
|
|
158
|
+
}>;
|
|
159
|
+
deleteAccount: import("@trpc/server").TRPCMutationProcedure<{
|
|
160
|
+
input: {
|
|
161
|
+
confirmUsername: string;
|
|
162
|
+
};
|
|
163
|
+
output: {
|
|
164
|
+
success: boolean;
|
|
165
|
+
};
|
|
166
|
+
meta: object;
|
|
167
|
+
}>;
|
|
79
168
|
}>>;
|
|
80
169
|
//# sourceMappingURL=user.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"/","sources":["routers/user.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"/","sources":["routers/user.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqExB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCrB,CAAC"}
|
package/dist/routers/user.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="10c9f9c2-5706-58e3-b2db-3ca52ac3e956")}catch(e){}}();
|
|
3
|
+
import { TRPCError } from "@trpc/server";
|
|
3
4
|
import { z } from "zod";
|
|
4
5
|
import { createTRPCRouter, protectedProcedure } from "../trpc.js";
|
|
5
6
|
import { getProfile, updateProfile, getUploadUrl, } from "../services/user.js";
|
|
7
|
+
import { deleteUserAccount, exportUserData, } from "../services/userPrivacy.js";
|
|
6
8
|
const fileUploadSchema = z.object({
|
|
7
9
|
filePath: z.string().min(1, "File path is required"),
|
|
8
10
|
fileName: z.string().min(1, "File name is required"),
|
|
@@ -57,6 +59,21 @@ export const userRouter = createTRPCRouter({
|
|
|
57
59
|
getUploadUrl: protectedProcedure
|
|
58
60
|
.input(getUploadUrlSchema)
|
|
59
61
|
.mutation(({ ctx, input }) => getUploadUrl(ctx.user.id, input.fileName, input.fileType)),
|
|
62
|
+
exportData: protectedProcedure.query(({ ctx }) => exportUserData(ctx.user.id)),
|
|
63
|
+
deleteAccount: protectedProcedure
|
|
64
|
+
.input(z.object({
|
|
65
|
+
confirmUsername: z.string().min(1),
|
|
66
|
+
}))
|
|
67
|
+
.mutation(async ({ ctx, input }) => {
|
|
68
|
+
const profile = await getProfile(ctx.user.id);
|
|
69
|
+
if (profile.username !== input.confirmUsername) {
|
|
70
|
+
throw new TRPCError({
|
|
71
|
+
code: "BAD_REQUEST",
|
|
72
|
+
message: "Username confirmation does not match",
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return deleteUserAccount(ctx.user.id);
|
|
76
|
+
}),
|
|
60
77
|
});
|
|
61
78
|
//# sourceMappingURL=user.js.map
|
|
62
|
-
//# debugId=
|
|
79
|
+
//# debugId=10c9f9c2-5706-58e3-b2db-3ca52ac3e956
|
package/dist/routers/user.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sources":["routers/user.ts"],"sourceRoot":"/","sourcesContent":["import { z } from \"zod\";\nimport { createTRPCRouter, protectedProcedure } from \"../trpc.js\";\nimport {\n getProfile,\n updateProfile,\n getUploadUrl,\n} from \"../services/user.js\";\n\nconst fileUploadSchema = z.object({\n filePath: z.string().min(1, \"File path is required\"),\n fileName: z.string().min(1, \"File name is required\"),\n fileType: z\n .string()\n .regex(\n /^image\\/(jpeg|jpg|png|gif|webp)$/i,\n \"Only image files (JPEG, PNG, GIF, WebP) are allowed\"\n ),\n fileSize: z.number().max(5 * 1024 * 1024, \"File size must be less than 5MB\"),\n});\n\nconst dicebearSchema = z.object({\n url: z.string().url(\"Invalid DiceBear avatar URL\"),\n});\n\nconst profileSchema = z.object({\n displayName: z\n .string()\n .nullable()\n .optional()\n .transform((val) => (val === null ? undefined : val)),\n bio: z\n .string()\n .nullable()\n .optional()\n .transform((val) => (val === null ? undefined : val)),\n location: z\n .string()\n .nullable()\n .optional()\n .transform((val) => (val === null ? undefined : val)),\n website: z\n .union([\n z.string().url(),\n z.literal(\"\"),\n z.null().transform(() => undefined),\n ])\n .optional(),\n});\n\nconst updateProfileSchema = z.object({\n profile: profileSchema.optional(),\n profilePicture: fileUploadSchema.optional(),\n dicebearAvatar: dicebearSchema.optional(),\n});\n\nconst getUploadUrlSchema = z.object({\n fileName: z.string().min(1, \"File name is required\"),\n fileType: z\n .string()\n .regex(\n /^image\\/(jpeg|jpg|png|gif|webp)$/i,\n \"Only image files are allowed\"\n ),\n});\n\nexport const userRouter = createTRPCRouter({\n getProfile: protectedProcedure.query(({ ctx }) =>\n getProfile(ctx.user!.id)\n ),\n\n updateProfile: protectedProcedure\n .input(updateProfileSchema)\n .mutation(({ ctx, input }) =>\n updateProfile(ctx.user!.id, input)\n ),\n\n getUploadUrl: protectedProcedure\n .input(getUploadUrlSchema)\n .mutation(({ ctx, input }) =>\n getUploadUrl(ctx.user!.id, input.fileName, input.fileType)\n ),\n});\n"],"names":[],"mappings":";;AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"user.js","sources":["routers/user.ts"],"sourceRoot":"/","sourcesContent":["import { TRPCError } from \"@trpc/server\";\nimport { z } from \"zod\";\nimport { createTRPCRouter, protectedProcedure } from \"../trpc.js\";\nimport {\n getProfile,\n updateProfile,\n getUploadUrl,\n} from \"../services/user.js\";\nimport {\n deleteUserAccount,\n exportUserData,\n} from \"../services/userPrivacy.js\";\n\nconst fileUploadSchema = z.object({\n filePath: z.string().min(1, \"File path is required\"),\n fileName: z.string().min(1, \"File name is required\"),\n fileType: z\n .string()\n .regex(\n /^image\\/(jpeg|jpg|png|gif|webp)$/i,\n \"Only image files (JPEG, PNG, GIF, WebP) are allowed\"\n ),\n fileSize: z.number().max(5 * 1024 * 1024, \"File size must be less than 5MB\"),\n});\n\nconst dicebearSchema = z.object({\n url: z.string().url(\"Invalid DiceBear avatar URL\"),\n});\n\nconst profileSchema = z.object({\n displayName: z\n .string()\n .nullable()\n .optional()\n .transform((val) => (val === null ? undefined : val)),\n bio: z\n .string()\n .nullable()\n .optional()\n .transform((val) => (val === null ? undefined : val)),\n location: z\n .string()\n .nullable()\n .optional()\n .transform((val) => (val === null ? undefined : val)),\n website: z\n .union([\n z.string().url(),\n z.literal(\"\"),\n z.null().transform(() => undefined),\n ])\n .optional(),\n});\n\nconst updateProfileSchema = z.object({\n profile: profileSchema.optional(),\n profilePicture: fileUploadSchema.optional(),\n dicebearAvatar: dicebearSchema.optional(),\n});\n\nconst getUploadUrlSchema = z.object({\n fileName: z.string().min(1, \"File name is required\"),\n fileType: z\n .string()\n .regex(\n /^image\\/(jpeg|jpg|png|gif|webp)$/i,\n \"Only image files are allowed\"\n ),\n});\n\nexport const userRouter = createTRPCRouter({\n getProfile: protectedProcedure.query(({ ctx }) =>\n getProfile(ctx.user!.id)\n ),\n\n updateProfile: protectedProcedure\n .input(updateProfileSchema)\n .mutation(({ ctx, input }) =>\n updateProfile(ctx.user!.id, input)\n ),\n\n getUploadUrl: protectedProcedure\n .input(getUploadUrlSchema)\n .mutation(({ ctx, input }) =>\n getUploadUrl(ctx.user!.id, input.fileName, input.fileType)\n ),\n\n exportData: protectedProcedure.query(({ ctx }) =>\n exportUserData(ctx.user!.id),\n ),\n\n deleteAccount: protectedProcedure\n .input(\n z.object({\n confirmUsername: z.string().min(1),\n }),\n )\n .mutation(async ({ ctx, input }) => {\n const profile = await getProfile(ctx.user!.id);\n if (profile.username !== input.confirmUsername) {\n throw new TRPCError({\n code: \"BAD_REQUEST\",\n message: \"Username confirmation does not match\",\n });\n }\n return deleteUserAccount(ctx.user!.id);\n }),\n});\n"],"names":[],"mappings":";;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAEpC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACpD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,KAAK,CACJ,mCAAmC,EACnC,qDAAqD,CACtD;IACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,iCAAiC,CAAC;CAC7E,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,6BAA6B,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACvD,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACvD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACvD,OAAO,EAAE,CAAC;SACP,KAAK,CAAC;QACL,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;QAChB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QACb,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;KACpC,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE;IACjC,cAAc,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IAC3C,cAAc,EAAE,cAAc,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACpD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,KAAK,CACJ,mCAAmC,EACnC,8BAA8B,CAC/B;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC;IACzC,UAAU,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAC/C,UAAU,CAAC,GAAG,CAAC,IAAK,CAAC,EAAE,CAAC,CACzB;IAED,aAAa,EAAE,kBAAkB;SAC9B,KAAK,CAAC,mBAAmB,CAAC;SAC1B,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAC3B,aAAa,CAAC,GAAG,CAAC,IAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CACnC;IAEH,YAAY,EAAE,kBAAkB;SAC7B,KAAK,CAAC,kBAAkB,CAAC;SACzB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAC3B,YAAY,CAAC,GAAG,CAAC,IAAK,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAC3D;IAEH,UAAU,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAC/C,cAAc,CAAC,GAAG,CAAC,IAAK,CAAC,EAAE,CAAC,CAC7B;IAED,aAAa,EAAE,kBAAkB;SAC9B,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACnC,CAAC,CACH;SACA,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC,eAAe,EAAE,CAAC;YAC/C,MAAM,IAAI,SAAS,CAAC;gBAClB,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,sCAAsC;aAChD,CAAC,CAAC;QACL,CAAC;QACD,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC;CACL,CAAC,CAAC","debug_id":"10c9f9c2-5706-58e3-b2db-3ca52ac3e956"}
|
|
@@ -22,37 +22,43 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
22
22
|
};
|
|
23
23
|
output: {
|
|
24
24
|
class: {
|
|
25
|
-
|
|
25
|
+
section: string;
|
|
26
26
|
id: string;
|
|
27
|
+
name: string;
|
|
27
28
|
schoolId: string | null;
|
|
28
|
-
subject: string;
|
|
29
29
|
color: string | null;
|
|
30
|
-
|
|
30
|
+
subject: string;
|
|
31
31
|
syllabus: string | null;
|
|
32
32
|
departmentId: string | null;
|
|
33
33
|
discussionsEnabled: boolean;
|
|
34
34
|
studentsCanCreateDiscussions: boolean;
|
|
35
35
|
studentsCanReply: boolean;
|
|
36
36
|
} | null;
|
|
37
|
+
tags: {
|
|
38
|
+
id: string;
|
|
39
|
+
name: string;
|
|
40
|
+
color: string;
|
|
41
|
+
classId: string;
|
|
42
|
+
}[];
|
|
37
43
|
questions: {
|
|
38
44
|
type: import(".prisma/client").$Enums.WorksheetQuestionType;
|
|
39
45
|
options: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
46
|
+
markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
40
47
|
id: string;
|
|
41
48
|
createdAt: Date;
|
|
42
49
|
updatedAt: Date;
|
|
43
|
-
order: number | null;
|
|
44
50
|
points: number;
|
|
45
|
-
worksheetId: string;
|
|
46
|
-
markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
47
51
|
question: string;
|
|
52
|
+
worksheetId: string;
|
|
53
|
+
order: number | null;
|
|
48
54
|
answer: string;
|
|
49
55
|
}[];
|
|
50
56
|
} & {
|
|
51
57
|
status: import(".prisma/client").$Enums.JobStatus | null;
|
|
52
|
-
name: string;
|
|
53
58
|
id: string;
|
|
54
59
|
createdAt: Date;
|
|
55
60
|
updatedAt: Date;
|
|
61
|
+
name: string;
|
|
56
62
|
classId: string;
|
|
57
63
|
runJobId: string | null;
|
|
58
64
|
sourceUrl: string | null;
|
|
@@ -75,14 +81,20 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
75
81
|
};
|
|
76
82
|
output: {
|
|
77
83
|
questionCount: number;
|
|
84
|
+
tags: {
|
|
85
|
+
id: string;
|
|
86
|
+
name: string;
|
|
87
|
+
color: string;
|
|
88
|
+
classId: string;
|
|
89
|
+
}[];
|
|
78
90
|
questions: {
|
|
79
91
|
id: string;
|
|
80
92
|
}[];
|
|
81
93
|
status: import(".prisma/client").$Enums.JobStatus | null;
|
|
82
|
-
name: string;
|
|
83
94
|
id: string;
|
|
84
95
|
createdAt: Date;
|
|
85
96
|
updatedAt: Date;
|
|
97
|
+
name: string;
|
|
86
98
|
classId: string;
|
|
87
99
|
runJobId: string | null;
|
|
88
100
|
sourceUrl: string | null;
|
|
@@ -96,10 +108,10 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
96
108
|
};
|
|
97
109
|
output: {
|
|
98
110
|
status: import(".prisma/client").$Enums.JobStatus | null;
|
|
99
|
-
name: string;
|
|
100
111
|
id: string;
|
|
101
112
|
createdAt: Date;
|
|
102
113
|
updatedAt: Date;
|
|
114
|
+
name: string;
|
|
103
115
|
classId: string;
|
|
104
116
|
runJobId: string | null;
|
|
105
117
|
sourceUrl: string | null;
|
|
@@ -112,10 +124,10 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
112
124
|
};
|
|
113
125
|
output: {
|
|
114
126
|
status: import(".prisma/client").$Enums.JobStatus | null;
|
|
115
|
-
name: string;
|
|
116
127
|
id: string;
|
|
117
128
|
createdAt: Date;
|
|
118
129
|
updatedAt: Date;
|
|
130
|
+
name: string;
|
|
119
131
|
classId: string;
|
|
120
132
|
runJobId: string | null;
|
|
121
133
|
sourceUrl: string | null;
|
|
@@ -130,10 +142,10 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
130
142
|
};
|
|
131
143
|
output: {
|
|
132
144
|
status: import(".prisma/client").$Enums.JobStatus | null;
|
|
133
|
-
name: string;
|
|
134
145
|
id: string;
|
|
135
146
|
createdAt: Date;
|
|
136
147
|
updatedAt: Date;
|
|
148
|
+
name: string;
|
|
137
149
|
classId: string;
|
|
138
150
|
runJobId: string | null;
|
|
139
151
|
sourceUrl: string | null;
|
|
@@ -149,10 +161,10 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
149
161
|
};
|
|
150
162
|
output: {
|
|
151
163
|
status: import(".prisma/client").$Enums.JobStatus | null;
|
|
152
|
-
name: string;
|
|
153
164
|
id: string;
|
|
154
165
|
createdAt: Date;
|
|
155
166
|
updatedAt: Date;
|
|
167
|
+
name: string;
|
|
156
168
|
classId: string;
|
|
157
169
|
runJobId: string | null;
|
|
158
170
|
sourceUrl: string | null;
|
|
@@ -169,10 +181,10 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
169
181
|
output: {
|
|
170
182
|
runJobId: string;
|
|
171
183
|
status: import(".prisma/client").$Enums.JobStatus | null;
|
|
172
|
-
name: string;
|
|
173
184
|
id: string;
|
|
174
185
|
createdAt: Date;
|
|
175
186
|
updatedAt: Date;
|
|
187
|
+
name: string;
|
|
176
188
|
classId: string;
|
|
177
189
|
sourceUrl: string | null;
|
|
178
190
|
};
|
|
@@ -218,10 +230,10 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
218
230
|
output: {
|
|
219
231
|
runJobId: string;
|
|
220
232
|
status: import(".prisma/client").$Enums.JobStatus | null;
|
|
221
|
-
name: string;
|
|
222
233
|
id: string;
|
|
223
234
|
createdAt: Date;
|
|
224
235
|
updatedAt: Date;
|
|
236
|
+
name: string;
|
|
225
237
|
classId: string;
|
|
226
238
|
sourceUrl: string | null;
|
|
227
239
|
};
|
|
@@ -230,25 +242,25 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
230
242
|
addQuestion: import("@trpc/server").TRPCMutationProcedure<{
|
|
231
243
|
input: {
|
|
232
244
|
type: "ESSAY" | "MULTIPLE_CHOICE" | "TRUE_FALSE" | "SHORT_ANSWER" | "LONG_ANSWER" | "MATH_EXPRESSION";
|
|
233
|
-
worksheetId: string;
|
|
234
245
|
question: string;
|
|
246
|
+
worksheetId: string;
|
|
235
247
|
answer: string;
|
|
236
248
|
options?: any;
|
|
237
|
-
order?: number | undefined;
|
|
238
|
-
points?: number | undefined;
|
|
239
249
|
markScheme?: any;
|
|
250
|
+
points?: number | undefined;
|
|
251
|
+
order?: number | undefined;
|
|
240
252
|
};
|
|
241
253
|
output: {
|
|
242
254
|
type: import(".prisma/client").$Enums.WorksheetQuestionType;
|
|
243
255
|
options: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
256
|
+
markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
244
257
|
id: string;
|
|
245
258
|
createdAt: Date;
|
|
246
259
|
updatedAt: Date;
|
|
247
|
-
order: number | null;
|
|
248
260
|
points: number;
|
|
249
|
-
worksheetId: string;
|
|
250
|
-
markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
251
261
|
question: string;
|
|
262
|
+
worksheetId: string;
|
|
263
|
+
order: number | null;
|
|
252
264
|
answer: string;
|
|
253
265
|
};
|
|
254
266
|
meta: object;
|
|
@@ -271,22 +283,22 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
271
283
|
worksheetId: string;
|
|
272
284
|
type?: "ESSAY" | "MULTIPLE_CHOICE" | "TRUE_FALSE" | "SHORT_ANSWER" | "LONG_ANSWER" | "MATH_EXPRESSION" | undefined;
|
|
273
285
|
options?: any;
|
|
274
|
-
points?: number | undefined;
|
|
275
286
|
markScheme?: any;
|
|
287
|
+
points?: number | undefined;
|
|
276
288
|
question?: string | undefined;
|
|
277
289
|
answer?: string | undefined;
|
|
278
290
|
};
|
|
279
291
|
output: {
|
|
280
292
|
type: import(".prisma/client").$Enums.WorksheetQuestionType;
|
|
281
293
|
options: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
294
|
+
markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
282
295
|
id: string;
|
|
283
296
|
createdAt: Date;
|
|
284
297
|
updatedAt: Date;
|
|
285
|
-
order: number | null;
|
|
286
298
|
points: number;
|
|
287
|
-
worksheetId: string;
|
|
288
|
-
markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
289
299
|
question: string;
|
|
300
|
+
worksheetId: string;
|
|
301
|
+
order: number | null;
|
|
290
302
|
answer: string;
|
|
291
303
|
};
|
|
292
304
|
meta: object;
|
|
@@ -299,14 +311,14 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
299
311
|
output: {
|
|
300
312
|
type: import(".prisma/client").$Enums.WorksheetQuestionType;
|
|
301
313
|
options: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
314
|
+
markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
302
315
|
id: string;
|
|
303
316
|
createdAt: Date;
|
|
304
317
|
updatedAt: Date;
|
|
305
|
-
order: number | null;
|
|
306
318
|
points: number;
|
|
307
|
-
worksheetId: string;
|
|
308
|
-
markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
309
319
|
question: string;
|
|
320
|
+
worksheetId: string;
|
|
321
|
+
order: number | null;
|
|
310
322
|
answer: string;
|
|
311
323
|
};
|
|
312
324
|
meta: object;
|
|
@@ -327,15 +339,15 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
327
339
|
id: string;
|
|
328
340
|
createdAt: Date;
|
|
329
341
|
updatedAt: Date | null;
|
|
330
|
-
|
|
331
|
-
|
|
342
|
+
feedback: string | null;
|
|
343
|
+
runJobId: string | null;
|
|
332
344
|
response: string;
|
|
333
345
|
isCorrect: boolean;
|
|
334
346
|
markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
335
347
|
points: number;
|
|
336
|
-
|
|
348
|
+
studentId: string;
|
|
349
|
+
questionId: string;
|
|
337
350
|
studentWorksheetResponseId: string | null;
|
|
338
|
-
runJobId: string | null;
|
|
339
351
|
})[];
|
|
340
352
|
} & {
|
|
341
353
|
id: string;
|
|
@@ -343,16 +355,16 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
343
355
|
updatedAt: Date;
|
|
344
356
|
submissionId: string | null;
|
|
345
357
|
studentId: string;
|
|
358
|
+
worksheetId: string;
|
|
346
359
|
submittedAt: Date | null;
|
|
347
360
|
submitted: boolean;
|
|
348
|
-
worksheetId: string;
|
|
349
361
|
};
|
|
350
362
|
meta: object;
|
|
351
363
|
}>;
|
|
352
364
|
answerQuestion: import("@trpc/server").TRPCMutationProcedure<{
|
|
353
365
|
input: {
|
|
354
|
-
questionId: string;
|
|
355
366
|
response: string;
|
|
367
|
+
questionId: string;
|
|
356
368
|
worksheetResponseId: string;
|
|
357
369
|
};
|
|
358
370
|
output: {
|
|
@@ -361,15 +373,15 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
361
373
|
id: string;
|
|
362
374
|
createdAt: Date;
|
|
363
375
|
updatedAt: Date | null;
|
|
364
|
-
|
|
365
|
-
|
|
376
|
+
feedback: string | null;
|
|
377
|
+
runJobId: string | null;
|
|
366
378
|
response: string;
|
|
367
379
|
isCorrect: boolean;
|
|
368
380
|
markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
369
381
|
points: number;
|
|
370
|
-
|
|
382
|
+
studentId: string;
|
|
383
|
+
questionId: string;
|
|
371
384
|
studentWorksheetResponseId: string | null;
|
|
372
|
-
runJobId: string | null;
|
|
373
385
|
}[];
|
|
374
386
|
} & {
|
|
375
387
|
id: string;
|
|
@@ -377,9 +389,9 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
377
389
|
updatedAt: Date;
|
|
378
390
|
submissionId: string | null;
|
|
379
391
|
studentId: string;
|
|
392
|
+
worksheetId: string;
|
|
380
393
|
submittedAt: Date | null;
|
|
381
394
|
submitted: boolean;
|
|
382
|
-
worksheetId: string;
|
|
383
395
|
};
|
|
384
396
|
meta: object;
|
|
385
397
|
}>;
|
|
@@ -393,15 +405,15 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
393
405
|
id: string;
|
|
394
406
|
createdAt: Date;
|
|
395
407
|
updatedAt: Date | null;
|
|
396
|
-
|
|
397
|
-
|
|
408
|
+
feedback: string | null;
|
|
409
|
+
runJobId: string | null;
|
|
398
410
|
response: string;
|
|
399
411
|
isCorrect: boolean;
|
|
400
412
|
markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
401
413
|
points: number;
|
|
402
|
-
|
|
414
|
+
studentId: string;
|
|
415
|
+
questionId: string;
|
|
403
416
|
studentWorksheetResponseId: string | null;
|
|
404
|
-
runJobId: string | null;
|
|
405
417
|
};
|
|
406
418
|
meta: object;
|
|
407
419
|
}>;
|
|
@@ -415,27 +427,27 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
415
427
|
id: string;
|
|
416
428
|
createdAt: Date;
|
|
417
429
|
updatedAt: Date | null;
|
|
418
|
-
|
|
419
|
-
|
|
430
|
+
feedback: string | null;
|
|
431
|
+
runJobId: string | null;
|
|
420
432
|
response: string;
|
|
421
433
|
isCorrect: boolean;
|
|
422
434
|
markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
423
435
|
points: number;
|
|
424
|
-
|
|
436
|
+
studentId: string;
|
|
437
|
+
questionId: string;
|
|
425
438
|
studentWorksheetResponseId: string | null;
|
|
426
|
-
runJobId: string | null;
|
|
427
439
|
} | null;
|
|
428
440
|
meta: object;
|
|
429
441
|
}>;
|
|
430
442
|
gradeAnswer: import("@trpc/server").TRPCMutationProcedure<{
|
|
431
443
|
input: {
|
|
432
|
-
questionId: string;
|
|
433
444
|
isCorrect: boolean;
|
|
445
|
+
questionId: string;
|
|
434
446
|
studentWorksheetResponseId: string;
|
|
447
|
+
feedback?: string | undefined;
|
|
435
448
|
response?: string | undefined;
|
|
436
449
|
markschemeState?: any;
|
|
437
450
|
points?: number | undefined;
|
|
438
|
-
feedback?: string | undefined;
|
|
439
451
|
responseId?: string | undefined;
|
|
440
452
|
};
|
|
441
453
|
output: {
|
|
@@ -443,15 +455,15 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
443
455
|
id: string;
|
|
444
456
|
createdAt: Date;
|
|
445
457
|
updatedAt: Date | null;
|
|
446
|
-
|
|
447
|
-
|
|
458
|
+
feedback: string | null;
|
|
459
|
+
runJobId: string | null;
|
|
448
460
|
response: string;
|
|
449
461
|
isCorrect: boolean;
|
|
450
462
|
markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
451
463
|
points: number;
|
|
452
|
-
|
|
464
|
+
studentId: string;
|
|
465
|
+
questionId: string;
|
|
453
466
|
studentWorksheetResponseId: string | null;
|
|
454
|
-
runJobId: string | null;
|
|
455
467
|
};
|
|
456
468
|
meta: object;
|
|
457
469
|
}>;
|
|
@@ -463,22 +475,22 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
463
475
|
output: {
|
|
464
476
|
id: string;
|
|
465
477
|
createdAt: Date;
|
|
478
|
+
content: string;
|
|
466
479
|
assignmentId: string | null;
|
|
467
480
|
submissionId: string | null;
|
|
468
481
|
announcementId: string | null;
|
|
469
482
|
modifiedAt: Date | null;
|
|
470
|
-
content: string;
|
|
471
483
|
authorId: string;
|
|
472
|
-
parentCommentId: string | null;
|
|
473
484
|
isPinned: boolean;
|
|
485
|
+
parentCommentId: string | null;
|
|
474
486
|
studentQuestionProgressId: string | null;
|
|
475
487
|
};
|
|
476
488
|
meta: object;
|
|
477
489
|
}>;
|
|
478
490
|
updateUploadProgress: import("@trpc/server").TRPCMutationProcedure<{
|
|
479
491
|
input: {
|
|
480
|
-
fileId: string;
|
|
481
492
|
progress: number;
|
|
493
|
+
fileId: string;
|
|
482
494
|
};
|
|
483
495
|
output: {
|
|
484
496
|
success: boolean;
|
|
@@ -486,5 +498,31 @@ export declare const worksheetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
486
498
|
};
|
|
487
499
|
meta: object;
|
|
488
500
|
}>;
|
|
501
|
+
setTags: import("@trpc/server").TRPCMutationProcedure<{
|
|
502
|
+
input: {
|
|
503
|
+
[x: string]: unknown;
|
|
504
|
+
classId: string;
|
|
505
|
+
worksheetId: string;
|
|
506
|
+
tagIds: string[];
|
|
507
|
+
};
|
|
508
|
+
output: {
|
|
509
|
+
tags: {
|
|
510
|
+
id: string;
|
|
511
|
+
name: string;
|
|
512
|
+
color: string;
|
|
513
|
+
classId: string;
|
|
514
|
+
}[];
|
|
515
|
+
} & {
|
|
516
|
+
status: import(".prisma/client").$Enums.JobStatus | null;
|
|
517
|
+
id: string;
|
|
518
|
+
createdAt: Date;
|
|
519
|
+
updatedAt: Date;
|
|
520
|
+
name: string;
|
|
521
|
+
classId: string;
|
|
522
|
+
runJobId: string | null;
|
|
523
|
+
sourceUrl: string | null;
|
|
524
|
+
};
|
|
525
|
+
meta: object;
|
|
526
|
+
}>;
|
|
489
527
|
}>>;
|
|
490
528
|
//# sourceMappingURL=worksheet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worksheet.d.ts","sourceRoot":"/","sources":["routers/worksheet.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyDxB,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"worksheet.d.ts","sourceRoot":"/","sources":["routers/worksheet.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyDxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoZ1B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="7414f024-7d8b-5148-ba29-f602198fddc2")}catch(e){}}();
|
|
3
3
|
import { TRPCError } from "@trpc/server";
|
|
4
4
|
import { prisma } from "../lib/prisma.js";
|
|
5
5
|
import { confirmDirectUpload, createDirectUploadFiles, updateUploadProgress, } from "../lib/fileUpload.js";
|
|
@@ -276,6 +276,30 @@ export const worksheetRouter = createTRPCRouter({
|
|
|
276
276
|
progress: input.progress,
|
|
277
277
|
};
|
|
278
278
|
}),
|
|
279
|
+
setTags: protectedTeacherProcedure
|
|
280
|
+
.input(z.object({
|
|
281
|
+
worksheetId: z.string(),
|
|
282
|
+
tagIds: z.array(z.string()),
|
|
283
|
+
}))
|
|
284
|
+
.mutation(async ({ ctx, input }) => {
|
|
285
|
+
const worksheet = await prisma.worksheet.findUnique({
|
|
286
|
+
where: { id: input.worksheetId },
|
|
287
|
+
select: { id: true, classId: true },
|
|
288
|
+
});
|
|
289
|
+
if (!worksheet) {
|
|
290
|
+
throw new TRPCError({
|
|
291
|
+
code: "NOT_FOUND",
|
|
292
|
+
message: "Worksheet not found",
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
return prisma.worksheet.update({
|
|
296
|
+
where: { id: input.worksheetId },
|
|
297
|
+
data: {
|
|
298
|
+
tags: { set: input.tagIds.map((id) => ({ id })) },
|
|
299
|
+
},
|
|
300
|
+
include: { tags: true },
|
|
301
|
+
});
|
|
302
|
+
}),
|
|
279
303
|
});
|
|
280
304
|
//# sourceMappingURL=worksheet.js.map
|
|
281
|
-
//# debugId=
|
|
305
|
+
//# debugId=7414f024-7d8b-5148-ba29-f602198fddc2
|