@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.
Files changed (375) hide show
  1. package/.dockerignore +28 -0
  2. package/.env.example +5 -0
  3. package/.github/workflows/deploy.yml +123 -0
  4. package/Dockerfile +54 -0
  5. package/dist/index.js +5 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/instrument.js +3 -3
  8. package/dist/instrument.js.map +1 -1
  9. package/dist/lib/config/cors.d.ts.map +1 -1
  10. package/dist/lib/config/cors.js +31 -11
  11. package/dist/lib/config/cors.js.map +1 -1
  12. package/dist/lib/config/env.d.ts +17 -0
  13. package/dist/lib/config/env.d.ts.map +1 -1
  14. package/dist/lib/config/env.js +8 -2
  15. package/dist/lib/config/env.js.map +1 -1
  16. package/dist/lib/googleCloudStorage.d.ts +10 -0
  17. package/dist/lib/googleCloudStorage.d.ts.map +1 -1
  18. package/dist/lib/googleCloudStorage.js +22 -2
  19. package/dist/lib/googleCloudStorage.js.map +1 -1
  20. package/dist/lib/inferDocumentFormat.d.ts +10 -0
  21. package/dist/lib/inferDocumentFormat.d.ts.map +1 -0
  22. package/dist/lib/inferDocumentFormat.js +48 -0
  23. package/dist/lib/inferDocumentFormat.js.map +1 -0
  24. package/dist/lib/legal.d.ts +3 -0
  25. package/dist/lib/legal.d.ts.map +1 -0
  26. package/dist/lib/legal.js +6 -0
  27. package/dist/lib/legal.js.map +1 -0
  28. package/dist/lib/prisma.d.ts +104 -5
  29. package/dist/lib/prisma.d.ts.map +1 -1
  30. package/dist/lib/prisma.js +33 -2
  31. package/dist/lib/prisma.js.map +1 -1
  32. package/dist/models/agenda.d.ts +20 -20
  33. package/dist/models/announcement.d.ts +211 -101
  34. package/dist/models/announcement.d.ts.map +1 -1
  35. package/dist/models/assignment.d.ts +560 -362
  36. package/dist/models/assignment.d.ts.map +1 -1
  37. package/dist/models/attendance.d.ts +197 -71
  38. package/dist/models/attendance.d.ts.map +1 -1
  39. package/dist/models/auth.d.ts +356 -114
  40. package/dist/models/auth.d.ts.map +1 -1
  41. package/dist/models/auth.js +4 -2
  42. package/dist/models/auth.js.map +1 -1
  43. package/dist/models/class.d.ts +327 -201
  44. package/dist/models/class.d.ts.map +1 -1
  45. package/dist/models/class.js +2 -2
  46. package/dist/models/class.js.map +1 -1
  47. package/dist/models/cloudStorage.d.ts +146 -56
  48. package/dist/models/cloudStorage.d.ts.map +1 -1
  49. package/dist/models/comment.d.ts +262 -110
  50. package/dist/models/comment.d.ts.map +1 -1
  51. package/dist/models/conversation.d.ts +206 -80
  52. package/dist/models/conversation.d.ts.map +1 -1
  53. package/dist/models/department.d.ts +196 -70
  54. package/dist/models/department.d.ts.map +1 -1
  55. package/dist/models/event.d.ts +305 -141
  56. package/dist/models/event.d.ts.map +1 -1
  57. package/dist/models/file.d.ts +422 -272
  58. package/dist/models/file.d.ts.map +1 -1
  59. package/dist/models/folder.d.ts +433 -181
  60. package/dist/models/folder.d.ts.map +1 -1
  61. package/dist/models/labChat.d.ts +205 -79
  62. package/dist/models/labChat.d.ts.map +1 -1
  63. package/dist/models/marketing.d.ts +79 -38
  64. package/dist/models/marketing.d.ts.map +1 -1
  65. package/dist/models/marketing.js +12 -4
  66. package/dist/models/marketing.js.map +1 -1
  67. package/dist/models/message.d.ts +97 -43
  68. package/dist/models/message.d.ts.map +1 -1
  69. package/dist/models/newtonChat.d.ts +84 -30
  70. package/dist/models/newtonChat.d.ts.map +1 -1
  71. package/dist/models/notification.d.ts +57 -21
  72. package/dist/models/notification.d.ts.map +1 -1
  73. package/dist/models/school.d.ts +349 -133
  74. package/dist/models/school.d.ts.map +1 -1
  75. package/dist/models/section.d.ts +216 -72
  76. package/dist/models/section.d.ts.map +1 -1
  77. package/dist/models/tag.d.ts +156 -48
  78. package/dist/models/tag.d.ts.map +1 -1
  79. package/dist/models/user.d.ts +82 -28
  80. package/dist/models/user.d.ts.map +1 -1
  81. package/dist/models/worksheet.d.ts +1032 -423
  82. package/dist/models/worksheet.d.ts.map +1 -1
  83. package/dist/models/worksheet.js +8 -2
  84. package/dist/models/worksheet.js.map +1 -1
  85. package/dist/pipelines/aiLabChat.d.ts +7 -9
  86. package/dist/pipelines/aiLabChat.d.ts.map +1 -1
  87. package/dist/pipelines/aiLabChat.js +194 -125
  88. package/dist/pipelines/aiLabChat.js.map +1 -1
  89. package/dist/pipelines/aiLabChatContract.d.ts +233 -389
  90. package/dist/pipelines/aiLabChatContract.d.ts.map +1 -1
  91. package/dist/pipelines/aiLabChatContract.js +54 -70
  92. package/dist/pipelines/aiLabChatContract.js.map +1 -1
  93. package/dist/pipelines/aiNewtonChat.d.ts.map +1 -1
  94. package/dist/pipelines/aiNewtonChat.js +41 -41
  95. package/dist/pipelines/aiNewtonChat.js.map +1 -1
  96. package/dist/pipelines/gradeWorksheet.d.ts +8 -8
  97. package/dist/pipelines/labChatPrompt.d.ts +18 -11
  98. package/dist/pipelines/labChatPrompt.d.ts.map +1 -1
  99. package/dist/pipelines/labChatPrompt.js +93 -75
  100. package/dist/pipelines/labChatPrompt.js.map +1 -1
  101. package/dist/pipelines/pdfToWorksheet.d.ts +1 -1
  102. package/dist/routers/_app.d.ts +2601 -2151
  103. package/dist/routers/_app.d.ts.map +1 -1
  104. package/dist/routers/_app.js +4 -2
  105. package/dist/routers/_app.js.map +1 -1
  106. package/dist/routers/admin.d.ts +13 -13
  107. package/dist/routers/agenda.d.ts +18 -18
  108. package/dist/routers/announcement.d.ts +60 -60
  109. package/dist/routers/assignment.d.ts +393 -383
  110. package/dist/routers/assignment.d.ts.map +1 -1
  111. package/dist/routers/attendance.d.ts +10 -10
  112. package/dist/routers/auth.d.ts +4 -2
  113. package/dist/routers/auth.d.ts.map +1 -1
  114. package/dist/routers/auth.js +15 -2
  115. package/dist/routers/auth.js.map +1 -1
  116. package/dist/routers/class.d.ts +157 -153
  117. package/dist/routers/class.d.ts.map +1 -1
  118. package/dist/routers/comment.d.ts +18 -18
  119. package/dist/routers/conversation.d.ts +11 -11
  120. package/dist/routers/department.d.ts +34 -34
  121. package/dist/routers/discussion.d.ts +68 -56
  122. package/dist/routers/discussion.d.ts.map +1 -1
  123. package/dist/routers/discussion.js +6 -2
  124. package/dist/routers/discussion.js.map +1 -1
  125. package/dist/routers/embedding.d.ts +73 -0
  126. package/dist/routers/embedding.d.ts.map +1 -0
  127. package/dist/routers/embedding.js +151 -0
  128. package/dist/routers/embedding.js.map +1 -0
  129. package/dist/routers/event.d.ts +57 -55
  130. package/dist/routers/event.d.ts.map +1 -1
  131. package/dist/routers/file.d.ts +14 -14
  132. package/dist/routers/folder.d.ts +38 -38
  133. package/dist/routers/labChat.d.ts +16 -16
  134. package/dist/routers/marketing.d.ts +1 -14
  135. package/dist/routers/marketing.d.ts.map +1 -1
  136. package/dist/routers/message.d.ts +13 -13
  137. package/dist/routers/newtonChat.d.ts +4 -4
  138. package/dist/routers/notifications.d.ts +5 -5
  139. package/dist/routers/permissions.d.ts +14 -14
  140. package/dist/routers/school.d.ts +59 -55
  141. package/dist/routers/school.d.ts.map +1 -1
  142. package/dist/routers/search.d.ts +22 -1
  143. package/dist/routers/search.d.ts.map +1 -1
  144. package/dist/routers/search.js +9 -3
  145. package/dist/routers/search.js.map +1 -1
  146. package/dist/routers/section.d.ts +4 -4
  147. package/dist/routers/studentProgress.d.ts +1 -1
  148. package/dist/routers/tag.d.ts +7 -7
  149. package/dist/routers/user.d.ts +99 -10
  150. package/dist/routers/user.d.ts.map +1 -1
  151. package/dist/routers/user.js +19 -2
  152. package/dist/routers/user.js.map +1 -1
  153. package/dist/routers/worksheet.d.ts +93 -55
  154. package/dist/routers/worksheet.d.ts.map +1 -1
  155. package/dist/routers/worksheet.js +26 -2
  156. package/dist/routers/worksheet.js.map +1 -1
  157. package/dist/routes/aiStream.d.ts +2 -0
  158. package/dist/routes/aiStream.d.ts.map +1 -0
  159. package/dist/routes/aiStream.js +726 -0
  160. package/dist/routes/aiStream.js.map +1 -0
  161. package/dist/seedDatabase.d.ts +3 -1
  162. package/dist/seedDatabase.d.ts.map +1 -1
  163. package/dist/seedDatabase.js +6 -6
  164. package/dist/seedDatabase.js.map +1 -1
  165. package/dist/services/adminInstitution.d.ts +8 -8
  166. package/dist/services/adminRunJob.d.ts +4 -4
  167. package/dist/services/agenda.d.ts +18 -18
  168. package/dist/services/aiChatStream.d.ts +88 -0
  169. package/dist/services/aiChatStream.d.ts.map +1 -0
  170. package/dist/services/aiChatStream.js +254 -0
  171. package/dist/services/aiChatStream.js.map +1 -0
  172. package/dist/services/aiModifierTools.d.ts +16 -0
  173. package/dist/services/aiModifierTools.d.ts.map +1 -0
  174. package/dist/services/aiModifierTools.js +274 -0
  175. package/dist/services/aiModifierTools.js.map +1 -0
  176. package/dist/services/aiProposalTools.d.ts +32 -0
  177. package/dist/services/aiProposalTools.d.ts.map +1 -0
  178. package/dist/services/aiProposalTools.js +207 -0
  179. package/dist/services/aiProposalTools.js.map +1 -0
  180. package/dist/services/aiStream.d.ts +22 -0
  181. package/dist/services/aiStream.d.ts.map +1 -0
  182. package/dist/services/aiStream.js +142 -0
  183. package/dist/services/aiStream.js.map +1 -0
  184. package/dist/services/aiTools.d.ts +16 -0
  185. package/dist/services/aiTools.d.ts.map +1 -0
  186. package/dist/services/aiTools.js +271 -0
  187. package/dist/services/aiTools.js.map +1 -0
  188. package/dist/services/announcement.d.ts +42 -42
  189. package/dist/services/announcement.d.ts.map +1 -1
  190. package/dist/services/announcement.js +7 -2
  191. package/dist/services/announcement.js.map +1 -1
  192. package/dist/services/assignment.d.ts +355 -345
  193. package/dist/services/assignment.d.ts.map +1 -1
  194. package/dist/services/assignment.js +30 -9
  195. package/dist/services/assignment.js.map +1 -1
  196. package/dist/services/attendance.d.ts +10 -10
  197. package/dist/services/auth.d.ts +4 -2
  198. package/dist/services/auth.d.ts.map +1 -1
  199. package/dist/services/auth.js +13 -4
  200. package/dist/services/auth.js.map +1 -1
  201. package/dist/services/class.d.ts +146 -142
  202. package/dist/services/class.d.ts.map +1 -1
  203. package/dist/services/class.js +24 -4
  204. package/dist/services/class.js.map +1 -1
  205. package/dist/services/comment.d.ts +18 -18
  206. package/dist/services/conversation.d.ts +11 -11
  207. package/dist/services/department.d.ts +33 -33
  208. package/dist/services/discussion.d.ts +58 -58
  209. package/dist/services/discussion.d.ts.map +1 -1
  210. package/dist/services/discussion.js +15 -8
  211. package/dist/services/discussion.js.map +1 -1
  212. package/dist/services/discussionSummary.d.ts +21 -0
  213. package/dist/services/discussionSummary.d.ts.map +1 -0
  214. package/dist/services/discussionSummary.js +179 -0
  215. package/dist/services/discussionSummary.js.map +1 -0
  216. package/dist/services/embedding.d.ts +85 -0
  217. package/dist/services/embedding.d.ts.map +1 -0
  218. package/dist/services/embedding.js +372 -0
  219. package/dist/services/embedding.js.map +1 -0
  220. package/dist/services/event.d.ts +55 -53
  221. package/dist/services/event.d.ts.map +1 -1
  222. package/dist/services/file.d.ts +28 -28
  223. package/dist/services/folder.d.ts +36 -36
  224. package/dist/services/folder.d.ts.map +1 -1
  225. package/dist/services/folder.js +32 -2
  226. package/dist/services/folder.js.map +1 -1
  227. package/dist/services/labChat.d.ts +16 -16
  228. package/dist/services/marketing.d.ts +2 -15
  229. package/dist/services/marketing.d.ts.map +1 -1
  230. package/dist/services/marketing.js +5 -5
  231. package/dist/services/marketing.js.map +1 -1
  232. package/dist/services/message.d.ts +11 -11
  233. package/dist/services/message.d.ts.map +1 -1
  234. package/dist/services/message.js +2 -2
  235. package/dist/services/message.js.map +1 -1
  236. package/dist/services/newtonChat.d.ts +4 -4
  237. package/dist/services/notification.d.ts +5 -5
  238. package/dist/services/notification.d.ts.map +1 -1
  239. package/dist/services/openaiDocumentGen.d.ts +37 -0
  240. package/dist/services/openaiDocumentGen.d.ts.map +1 -0
  241. package/dist/services/openaiDocumentGen.js +262 -0
  242. package/dist/services/openaiDocumentGen.js.map +1 -0
  243. package/dist/services/permissions.d.ts +14 -14
  244. package/dist/services/school.d.ts +54 -50
  245. package/dist/services/school.d.ts.map +1 -1
  246. package/dist/services/search.d.ts +13 -1
  247. package/dist/services/search.d.ts.map +1 -1
  248. package/dist/services/search.js +145 -2
  249. package/dist/services/search.js.map +1 -1
  250. package/dist/services/section.d.ts +3 -3
  251. package/dist/services/tag.d.ts +4 -4
  252. package/dist/services/user.d.ts +4 -4
  253. package/dist/services/user.d.ts.map +1 -1
  254. package/dist/services/user.js +10 -15
  255. package/dist/services/user.js.map +1 -1
  256. package/dist/services/userPrivacy.d.ts +86 -0
  257. package/dist/services/userPrivacy.d.ts.map +1 -0
  258. package/dist/services/userPrivacy.js +184 -0
  259. package/dist/services/userPrivacy.js.map +1 -0
  260. package/dist/services/worksheet.d.ts +86 -57
  261. package/dist/services/worksheet.d.ts.map +1 -1
  262. package/dist/services/worksheet.js +57 -5
  263. package/dist/services/worksheet.js.map +1 -1
  264. package/dist/utils/email.d.ts.map +1 -1
  265. package/dist/utils/email.js +7 -3
  266. package/dist/utils/email.js.map +1 -1
  267. package/dist/utils/streamBroadcast.d.ts +11 -0
  268. package/dist/utils/streamBroadcast.d.ts.map +1 -0
  269. package/dist/utils/streamBroadcast.js +32 -0
  270. package/dist/utils/streamBroadcast.js.map +1 -0
  271. package/dist/workers/connection.d.ts +15 -0
  272. package/dist/workers/connection.d.ts.map +1 -1
  273. package/dist/workers/connection.js +20 -2
  274. package/dist/workers/connection.js.map +1 -1
  275. package/dist/workers/index.js +4 -2
  276. package/dist/workers/index.js.map +1 -1
  277. package/dist/workers/processors/createRunJobWorker.d.ts.map +1 -1
  278. package/dist/workers/processors/createRunJobWorker.js +31 -8
  279. package/dist/workers/processors/createRunJobWorker.js.map +1 -1
  280. package/dist/workers/processors/embedContent.d.ts +8 -0
  281. package/dist/workers/processors/embedContent.d.ts.map +1 -0
  282. package/dist/workers/processors/embedContent.js +67 -0
  283. package/dist/workers/processors/embedContent.js.map +1 -0
  284. package/dist/workers/queues.d.ts +6 -0
  285. package/dist/workers/queues.d.ts.map +1 -1
  286. package/dist/workers/queues.js +5 -3
  287. package/dist/workers/queues.js.map +1 -1
  288. package/package.json +5 -1
  289. package/prisma/migrations/20260609215135_init/migration.sql +1412 -0
  290. package/prisma/migrations/20260610130000_add_worksheet_tags/migration.sql +13 -0
  291. package/prisma/migrations/20260610140000_expand_embedding_source_types/migration.sql +4 -0
  292. package/prisma/migrations/20260611120000_add_user_terms_acceptance/migration.sql +3 -0
  293. package/prisma/schema.prisma +44 -7
  294. package/src/index.ts +4 -0
  295. package/src/instrument.ts +1 -1
  296. package/src/lib/config/cors.ts +32 -9
  297. package/src/lib/config/env.ts +6 -0
  298. package/src/lib/googleCloudStorage.ts +21 -0
  299. package/src/lib/inferDocumentFormat.ts +58 -0
  300. package/src/lib/legal.ts +2 -0
  301. package/src/lib/prisma.ts +40 -1
  302. package/src/models/auth.ts +4 -0
  303. package/src/models/class.ts +3 -2
  304. package/src/models/marketing.ts +10 -2
  305. package/src/models/worksheet.ts +5 -2
  306. package/src/pipelines/aiLabChat.ts +245 -146
  307. package/src/pipelines/aiLabChatContract.ts +59 -69
  308. package/src/pipelines/aiNewtonChat.ts +46 -43
  309. package/src/pipelines/labChatPrompt.ts +115 -90
  310. package/src/routers/_app.ts +2 -0
  311. package/src/routers/auth.ts +13 -0
  312. package/src/routers/discussion.ts +7 -0
  313. package/src/routers/embedding.ts +164 -0
  314. package/src/routers/search.ts +10 -1
  315. package/src/routers/user.ts +26 -0
  316. package/src/routers/worksheet.ts +27 -0
  317. package/src/routes/aiStream.ts +827 -0
  318. package/src/seedDatabase.ts +4 -4
  319. package/src/services/aiChatStream.ts +341 -0
  320. package/src/services/aiModifierTools.ts +341 -0
  321. package/src/services/aiProposalTools.ts +274 -0
  322. package/src/services/aiStream.ts +175 -0
  323. package/src/services/aiTools.ts +290 -0
  324. package/src/services/announcement.ts +7 -0
  325. package/src/services/assignment.ts +31 -7
  326. package/src/services/auth.ts +14 -2
  327. package/src/services/class.ts +27 -2
  328. package/src/services/discussion.ts +22 -8
  329. package/src/services/discussionSummary.ts +226 -0
  330. package/src/services/embedding.ts +446 -0
  331. package/src/services/folder.ts +31 -0
  332. package/src/services/marketing.ts +3 -3
  333. package/src/services/message.ts +2 -2
  334. package/src/services/openaiDocumentGen.ts +319 -0
  335. package/src/services/search.ts +163 -1
  336. package/src/services/user.ts +9 -17
  337. package/src/services/userPrivacy.ts +196 -0
  338. package/src/services/worksheet.ts +77 -3
  339. package/src/utils/email.ts +5 -1
  340. package/src/utils/streamBroadcast.ts +48 -0
  341. package/src/workers/connection.ts +19 -0
  342. package/src/workers/index.ts +2 -0
  343. package/src/workers/processors/createRunJobWorker.ts +32 -6
  344. package/src/workers/processors/embedContent.ts +86 -0
  345. package/src/workers/queues.ts +5 -1
  346. package/tests/helpers/registerInput.ts +20 -0
  347. package/tests/integration/globalSetup.ts +10 -18
  348. package/tests/integration/routers/auth.test.ts +13 -18
  349. package/tests/unit/lib/inferDocumentFormat.test.ts +33 -0
  350. package/tests/unit/pipelines/aiLabChatContract.test.ts +38 -21
  351. package/tests/unit/pipelines/labChatPrompt.test.ts +23 -36
  352. package/tests/unit/services/aiChatStream.test.ts +92 -0
  353. package/tests/unit/services/openaiDocumentGen.test.ts +65 -0
  354. package/prisma/migrations/20250807062924_init/migration.sql +0 -436
  355. package/prisma/migrations/20250919063704_init2/migration.sql +0 -24
  356. package/prisma/migrations/20250920143543_add_profile_fields/migration.sql +0 -15
  357. package/prisma/migrations/20250922165147_add_chat_models/migration.sql +0 -68
  358. package/prisma/migrations/20250922165314_add_chat_roles/migration.sql +0 -5
  359. package/prisma/migrations/20250922171242_refactor_notification_system/migration.sql +0 -20
  360. package/prisma/migrations/20250922172208_add_mentions_system/migration.sql +0 -21
  361. package/prisma/migrations/20250925072732_add_lab_chat_system/migration.sql +0 -25
  362. package/prisma/migrations/20251020151505_add_upload_tracking_fields/migration.sql +0 -57
  363. package/prisma/migrations/20251109122857_annuoncements_comments/migration.sql +0 -30
  364. package/prisma/migrations/20251109135555_reactions_announcements_comments/migration.sql +0 -35
  365. package/prisma/migrations/20260410124000_add_submission_recommendation_state/migration.sql +0 -14
  366. package/prisma/migrations/20260415103500_add_session_type/migration.sql +0 -33
  367. package/prisma/migrations/20260415133000_add_ai_usage_logs/migration.sql +0 -19
  368. package/prisma/migrations/20260417083000_add_conversation_member_hidden_at/migration.sql +0 -2
  369. package/prisma/migrations/20260502230500_assignment_submission_comments/migration.sql +0 -60
  370. package/prisma/migrations/20260504071500_school_memberships/migration.sql +0 -81
  371. package/prisma/migrations/20260506162500_consolidate_run_job_and_unify_job_status/migration.sql +0 -166
  372. package/prisma/migrations/20260509220000_institution_overhaul/migration.sql +0 -184
  373. package/prisma/migrations/20260510170000_add_folder_permissions/migration.sql +0 -93
  374. package/prisma/migrations/20260510183000_add_discussions/migration.sql +0 -151
  375. /package/.github/workflows/{npm.yml → npm-publish.yml} +0 -0
@@ -32,20 +32,20 @@ export declare function getAllClasses(userId: string): Promise<{
32
32
  id: string;
33
33
  username: string;
34
34
  profile: {
35
- displayName: string | null;
36
35
  profilePicture: string | null;
36
+ displayName: string | null;
37
37
  profilePictureThumbnail: string | null;
38
38
  } | null;
39
39
  }[];
40
40
  color: string | null;
41
41
  schoolId: string | null;
42
42
  school: {
43
- name: string;
44
43
  id: string;
44
+ name: string;
45
45
  } | null;
46
46
  department: {
47
- name: string;
48
47
  id: string;
48
+ name: string;
49
49
  color: string | null;
50
50
  } | null;
51
51
  discussionsEnabled: boolean;
@@ -86,20 +86,20 @@ export declare function getAllClasses(userId: string): Promise<{
86
86
  id: string;
87
87
  username: string;
88
88
  profile: {
89
- displayName: string | null;
90
89
  profilePicture: string | null;
90
+ displayName: string | null;
91
91
  profilePictureThumbnail: string | null;
92
92
  } | null;
93
93
  }[];
94
94
  color: string | null;
95
95
  schoolId: string | null;
96
96
  school: {
97
- name: string;
98
97
  id: string;
98
+ name: string;
99
99
  } | null;
100
100
  department: {
101
- name: string;
102
101
  id: string;
102
+ name: string;
103
103
  color: string | null;
104
104
  } | null;
105
105
  discussionsEnabled: boolean;
@@ -111,16 +111,16 @@ export declare function getAllClasses(userId: string): Promise<{
111
111
  export declare function getClass(userId: string, classId: string): Promise<{
112
112
  class: {
113
113
  sections: {
114
- name: string;
115
114
  id: string;
115
+ name: string;
116
116
  color: string | null;
117
117
  classId: string;
118
118
  order: number | null;
119
119
  }[];
120
120
  affiliation: {
121
121
  school: {
122
- name: string;
123
122
  id: string;
123
+ name: string;
124
124
  description: string | null;
125
125
  logo: {
126
126
  path: string;
@@ -129,14 +129,14 @@ export declare function getClass(userId: string, classId: string): Promise<{
129
129
  } | null;
130
130
  } | null;
131
131
  department: {
132
- name: string;
133
132
  id: string;
133
+ name: string;
134
134
  description: string | null;
135
135
  color: string | null;
136
136
  } | null;
137
137
  tags: {
138
- name: string;
139
138
  id: string;
139
+ name: string;
140
140
  color: string;
141
141
  departmentId: string | null;
142
142
  }[];
@@ -146,12 +146,20 @@ export declare function getClass(userId: string, classId: string): Promise<{
146
146
  submitted: boolean | null | undefined;
147
147
  returned: boolean | null | undefined;
148
148
  type: import(".prisma/client").$Enums.AssignmentType;
149
- id: string;
150
- createdAt: Date | null;
149
+ markScheme: {
150
+ id: string;
151
+ structured: string;
152
+ } | null;
153
+ gradingBoundary: {
154
+ id: string;
155
+ structured: string;
156
+ } | null;
151
157
  section: {
152
- name: string;
153
158
  id: string;
159
+ name: string;
154
160
  } | null;
161
+ id: string;
162
+ createdAt: Date | null;
155
163
  submissions: {
156
164
  id: string;
157
165
  studentId: string;
@@ -163,43 +171,20 @@ export declare function getClass(userId: string, classId: string): Promise<{
163
171
  returned: boolean | null;
164
172
  }[];
165
173
  title: string;
166
- instructions: string;
167
174
  dueDate: Date;
168
- graded: boolean;
169
175
  maxGrade: number | null;
176
+ instructions: string;
177
+ graded: boolean;
170
178
  weight: number;
171
179
  inProgress: boolean;
172
180
  order: number | null;
173
- markScheme: {
174
- id: string;
175
- structured: string;
176
- } | null;
177
- gradingBoundary: {
178
- id: string;
179
- structured: string;
180
- } | null;
181
- }[];
182
- announcements: {
183
- id: string;
184
- createdAt: Date;
185
- modifiedAt: Date | null;
186
- remarks: string;
187
- teacher: {
188
- id: string;
189
- username: string;
190
- profile: {
191
- displayName: string | null;
192
- profilePicture: string | null;
193
- profilePictureThumbnail: string | null;
194
- } | null;
195
- };
196
181
  }[];
197
182
  teachers: {
198
183
  id: string;
199
184
  username: string;
200
185
  profile: {
201
- displayName: string | null;
202
186
  profilePicture: string | null;
187
+ displayName: string | null;
203
188
  profilePictureThumbnail: string | null;
204
189
  } | null;
205
190
  }[];
@@ -207,17 +192,32 @@ export declare function getClass(userId: string, classId: string): Promise<{
207
192
  id: string;
208
193
  username: string;
209
194
  profile: {
210
- displayName: string | null;
211
195
  profilePicture: string | null;
196
+ displayName: string | null;
212
197
  profilePictureThumbnail: string | null;
213
198
  } | null;
214
199
  }[];
215
- name: string;
200
+ announcements: {
201
+ id: string;
202
+ createdAt: Date;
203
+ remarks: string;
204
+ modifiedAt: Date | null;
205
+ teacher: {
206
+ id: string;
207
+ username: string;
208
+ profile: {
209
+ profilePicture: string | null;
210
+ displayName: string | null;
211
+ profilePictureThumbnail: string | null;
212
+ } | null;
213
+ };
214
+ }[];
215
+ section: string;
216
216
  id: string;
217
+ name: string;
217
218
  schoolId: string | null;
218
- subject: string;
219
219
  color: string | null;
220
- section: string;
220
+ subject: string;
221
221
  syllabus: string | null;
222
222
  departmentId: string | null;
223
223
  discussionsEnabled: boolean;
@@ -236,11 +236,11 @@ export declare function updateClass(classId: string, data: {
236
236
  studentsCanReply?: boolean;
237
237
  }): Promise<{
238
238
  updatedClass: {
239
- name: string;
239
+ section: string;
240
240
  id: string;
241
- subject: string;
241
+ name: string;
242
242
  color: string | null;
243
- section: string;
243
+ subject: string;
244
244
  departmentId: string | null;
245
245
  discussionsEnabled: boolean;
246
246
  studentsCanCreateDiscussions: boolean;
@@ -263,6 +263,8 @@ export declare function createClass(userId: string, input: {
263
263
  email: string;
264
264
  password: string;
265
265
  verified: boolean;
266
+ termsAcceptedAt: Date | null;
267
+ termsVersion: string | null;
266
268
  schoolId: string | null;
267
269
  }[];
268
270
  students: {
@@ -271,15 +273,17 @@ export declare function createClass(userId: string, input: {
271
273
  email: string;
272
274
  password: string;
273
275
  verified: boolean;
276
+ termsAcceptedAt: Date | null;
277
+ termsVersion: string | null;
274
278
  schoolId: string | null;
275
279
  }[];
276
280
  } & {
277
- name: string;
281
+ section: string;
278
282
  id: string;
283
+ name: string;
279
284
  schoolId: string | null;
280
- subject: string;
281
285
  color: string | null;
282
- section: string;
286
+ subject: string;
283
287
  syllabus: string | null;
284
288
  departmentId: string | null;
285
289
  discussionsEnabled: boolean;
@@ -293,10 +297,10 @@ export declare function deleteClass(classId: string): Promise<{
293
297
  }>;
294
298
  export declare function addStudent(classId: string, studentId: string): Promise<{
295
299
  updatedClass: {
296
- name: string;
300
+ section: string;
297
301
  id: string;
302
+ name: string;
298
303
  subject: string;
299
- section: string;
300
304
  };
301
305
  newStudent: {
302
306
  id: string;
@@ -305,12 +309,12 @@ export declare function addStudent(classId: string, studentId: string): Promise<
305
309
  }>;
306
310
  export declare function changeRole(classId: string, userId: string, type: "teacher" | "student"): Promise<{
307
311
  updatedClass: {
308
- name: string;
312
+ section: string;
309
313
  id: string;
314
+ name: string;
310
315
  schoolId: string | null;
311
- subject: string;
312
316
  color: string | null;
313
- section: string;
317
+ subject: string;
314
318
  syllabus: string | null;
315
319
  departmentId: string | null;
316
320
  discussionsEnabled: boolean;
@@ -318,19 +322,19 @@ export declare function changeRole(classId: string, userId: string, type: "teach
318
322
  studentsCanReply: boolean;
319
323
  };
320
324
  user: {
321
- type: "teacher" | "student";
325
+ type: "student" | "teacher";
322
326
  id: string;
323
327
  username: string;
324
328
  };
325
329
  }>;
326
330
  export declare function removeMember(classId: string, userId: string): Promise<{
327
331
  updatedClass: {
328
- name: string;
332
+ section: string;
329
333
  id: string;
334
+ name: string;
330
335
  schoolId: string | null;
331
- subject: string;
332
336
  color: string | null;
333
- section: string;
337
+ subject: string;
334
338
  syllabus: string | null;
335
339
  departmentId: string | null;
336
340
  discussionsEnabled: boolean;
@@ -345,10 +349,10 @@ export declare function leaveClass(userId: string, classId: string): Promise<{
345
349
  }>;
346
350
  export declare function joinClass(userId: string, classCode: string): Promise<{
347
351
  joinedClass: {
348
- name: string;
352
+ section: string;
349
353
  id: string;
354
+ name: string;
350
355
  subject: string;
351
- section: string;
352
356
  };
353
357
  }>;
354
358
  export declare function getInviteCode(classId: string): Promise<{
@@ -360,6 +364,12 @@ export declare function createInviteCode(classId: string): Promise<{
360
364
  export declare function getGrades(userId: string, classId: string, targetUserId: string): Promise<{
361
365
  grades: ({
362
366
  assignment: {
367
+ markScheme: {
368
+ structured: string;
369
+ } | null;
370
+ gradingBoundary: {
371
+ structured: string;
372
+ } | null;
363
373
  id: string;
364
374
  title: string;
365
375
  dueDate: Date;
@@ -367,19 +377,13 @@ export declare function getGrades(userId: string, classId: string, targetUserId:
367
377
  weight: number;
368
378
  markSchemeId: string | null;
369
379
  gradingBoundaryId: string | null;
370
- markScheme: {
371
- structured: string;
372
- } | null;
373
- gradingBoundary: {
374
- structured: string;
375
- } | null;
376
380
  };
377
381
  } & {
378
382
  id: string;
379
383
  createdAt: Date;
380
384
  assignmentId: string;
381
- modifiedAt: Date;
382
385
  studentId: string;
386
+ modifiedAt: Date;
383
387
  extendedResponse: string | null;
384
388
  gradeReceived: number | null;
385
389
  recommendationState: import(".prisma/client").$Enums.SubmissionRecommendationState;
@@ -404,8 +408,8 @@ export declare function updateGrade(assignmentId: string, submissionId: string,
404
408
  id: string;
405
409
  createdAt: Date;
406
410
  assignmentId: string;
407
- modifiedAt: Date;
408
411
  studentId: string;
412
+ modifiedAt: Date;
409
413
  extendedResponse: string | null;
410
414
  gradeReceived: number | null;
411
415
  recommendationState: import(".prisma/client").$Enums.SubmissionRecommendationState;
@@ -423,85 +427,85 @@ export declare function getEvents(classId: string): Promise<{
423
427
  endTime: Date;
424
428
  }[]>;
425
429
  export declare function listMarkSchemes(classId: string): Promise<{
426
- name: string | null;
427
430
  id: string;
428
- departmentId: string | null;
431
+ name: string | null;
429
432
  classId: string | null;
433
+ departmentId: string | null;
430
434
  structured: string;
431
435
  }[]>;
432
436
  export declare function createMarkScheme(classId: string, structure: string): Promise<{
433
- name: string | null;
434
437
  id: string;
435
- departmentId: string | null;
438
+ name: string | null;
436
439
  classId: string | null;
440
+ departmentId: string | null;
437
441
  structured: string;
438
442
  }>;
439
443
  export declare function updateMarkScheme(markSchemeId: string, classId: string, structure: string): Promise<{
440
- name: string | null;
441
444
  id: string;
442
- departmentId: string | null;
445
+ name: string | null;
443
446
  classId: string | null;
447
+ departmentId: string | null;
444
448
  structured: string;
445
449
  }>;
446
450
  export declare function deleteMarkScheme(markSchemeId: string): Promise<{
447
- name: string | null;
448
451
  id: string;
449
- departmentId: string | null;
452
+ name: string | null;
450
453
  classId: string | null;
454
+ departmentId: string | null;
451
455
  structured: string;
452
456
  }>;
453
457
  export declare function listGradingBoundaries(classId: string): Promise<{
454
- name: string | null;
455
458
  id: string;
456
- departmentId: string | null;
459
+ name: string | null;
457
460
  classId: string | null;
461
+ departmentId: string | null;
458
462
  structured: string;
459
463
  }[]>;
460
464
  export declare function createGradingBoundary(classId: string, structure: string): Promise<{
461
- name: string | null;
462
465
  id: string;
463
- departmentId: string | null;
466
+ name: string | null;
464
467
  classId: string | null;
468
+ departmentId: string | null;
465
469
  structured: string;
466
470
  }>;
467
471
  export declare function updateGradingBoundary(gradingBoundaryId: string, classId: string, structure: string): Promise<{
468
- name: string | null;
469
472
  id: string;
470
- departmentId: string | null;
473
+ name: string | null;
471
474
  classId: string | null;
475
+ departmentId: string | null;
472
476
  structured: string;
473
477
  }>;
474
478
  export declare function deleteGradingBoundary(gradingBoundaryId: string): Promise<{
475
- name: string | null;
476
479
  id: string;
477
- departmentId: string | null;
480
+ name: string | null;
478
481
  classId: string | null;
482
+ departmentId: string | null;
479
483
  structured: string;
480
484
  }>;
481
485
  export declare function getSyllabus(classId: string): Promise<{
482
486
  syllabus: string | null | undefined;
483
487
  gradingBoundaries: {
484
- name: string | null;
485
488
  id: string;
486
- departmentId: string | null;
489
+ name: string | null;
487
490
  classId: string | null;
491
+ departmentId: string | null;
488
492
  structured: string;
489
493
  }[];
490
494
  markSchemes: {
491
- name: string | null;
492
495
  id: string;
493
- departmentId: string | null;
496
+ name: string | null;
494
497
  classId: string | null;
498
+ departmentId: string | null;
495
499
  structured: string;
496
500
  }[];
497
501
  }>;
498
502
  export declare function updateSyllabus(classId: string, contents: string): Promise<{
499
- name: string;
503
+ section: string;
500
504
  id: string;
505
+ name: string;
501
506
  schoolId: string | null;
502
- subject: string;
503
507
  color: string | null;
504
- section: string;
508
+ subject: string;
505
509
  syllabus: string | null;
506
510
  departmentId: string | null;
507
511
  discussionsEnabled: boolean;
@@ -513,10 +517,12 @@ export declare function listLabDrafts(classId: string, teacherId: string): Promi
513
517
  id: string;
514
518
  createdAt: Date | null;
515
519
  classId: string;
516
- modifiedAt: Date | null;
517
520
  title: string;
518
- instructions: string;
519
521
  dueDate: Date;
522
+ maxGrade: number | null;
523
+ eventId: string | null;
524
+ instructions: string;
525
+ modifiedAt: Date | null;
520
526
  teacherId: string;
521
527
  acceptFiles: boolean;
522
528
  acceptExtendedResponse: boolean;
@@ -525,11 +531,9 @@ export declare function listLabDrafts(classId: string, teacherId: string): Promi
525
531
  aiPolicyLevel: number;
526
532
  sectionId: string | null;
527
533
  graded: boolean;
528
- maxGrade: number | null;
529
534
  weight: number;
530
535
  inProgress: boolean;
531
536
  template: boolean;
532
- eventId: string | null;
533
537
  markSchemeId: string | null;
534
538
  order: number | null;
535
539
  gradingBoundaryId: string | null;
@@ -550,10 +554,12 @@ export declare function createLabDraft(classId: string, teacherId: string, input
550
554
  id: string;
551
555
  createdAt: Date | null;
552
556
  classId: string;
553
- modifiedAt: Date | null;
554
557
  title: string;
555
- instructions: string;
556
558
  dueDate: Date;
559
+ maxGrade: number | null;
560
+ eventId: string | null;
561
+ instructions: string;
562
+ modifiedAt: Date | null;
557
563
  teacherId: string;
558
564
  acceptFiles: boolean;
559
565
  acceptExtendedResponse: boolean;
@@ -562,11 +568,9 @@ export declare function createLabDraft(classId: string, teacherId: string, input
562
568
  aiPolicyLevel: number;
563
569
  sectionId: string | null;
564
570
  graded: boolean;
565
- maxGrade: number | null;
566
571
  weight: number;
567
572
  inProgress: boolean;
568
573
  template: boolean;
569
- eventId: string | null;
570
574
  markSchemeId: string | null;
571
575
  order: number | null;
572
576
  gradingBoundaryId: string | null;
@@ -576,10 +580,12 @@ export declare function updateLabDraft(classId: string, teacherId: string, draft
576
580
  id: string;
577
581
  createdAt: Date | null;
578
582
  classId: string;
579
- modifiedAt: Date | null;
580
583
  title: string;
581
- instructions: string;
582
584
  dueDate: Date;
585
+ maxGrade: number | null;
586
+ eventId: string | null;
587
+ instructions: string;
588
+ modifiedAt: Date | null;
583
589
  teacherId: string;
584
590
  acceptFiles: boolean;
585
591
  acceptExtendedResponse: boolean;
@@ -588,11 +594,9 @@ export declare function updateLabDraft(classId: string, teacherId: string, draft
588
594
  aiPolicyLevel: number;
589
595
  sectionId: string | null;
590
596
  graded: boolean;
591
- maxGrade: number | null;
592
597
  weight: number;
593
598
  inProgress: boolean;
594
599
  template: boolean;
595
- eventId: string | null;
596
600
  markSchemeId: string | null;
597
601
  order: number | null;
598
602
  gradingBoundaryId: string | null;
@@ -602,10 +606,12 @@ export declare function deleteLabDraft(classId: string, teacherId: string, draft
602
606
  id: string;
603
607
  createdAt: Date | null;
604
608
  classId: string;
605
- modifiedAt: Date | null;
606
609
  title: string;
607
- instructions: string;
608
610
  dueDate: Date;
611
+ maxGrade: number | null;
612
+ eventId: string | null;
613
+ instructions: string;
614
+ modifiedAt: Date | null;
609
615
  teacherId: string;
610
616
  acceptFiles: boolean;
611
617
  acceptExtendedResponse: boolean;
@@ -614,11 +620,9 @@ export declare function deleteLabDraft(classId: string, teacherId: string, draft
614
620
  aiPolicyLevel: number;
615
621
  sectionId: string | null;
616
622
  graded: boolean;
617
- maxGrade: number | null;
618
623
  weight: number;
619
624
  inProgress: boolean;
620
625
  template: boolean;
621
- eventId: string | null;
622
626
  markSchemeId: string | null;
623
627
  order: number | null;
624
628
  gradingBoundaryId: string | null;
@@ -633,10 +637,12 @@ export declare function publishLabDraft(classId: string, teacherId: string, draf
633
637
  id: string;
634
638
  createdAt: Date | null;
635
639
  classId: string;
636
- modifiedAt: Date | null;
637
640
  title: string;
638
- instructions: string;
639
641
  dueDate: Date;
642
+ maxGrade: number | null;
643
+ eventId: string | null;
644
+ instructions: string;
645
+ modifiedAt: Date | null;
640
646
  teacherId: string;
641
647
  acceptFiles: boolean;
642
648
  acceptExtendedResponse: boolean;
@@ -645,11 +651,9 @@ export declare function publishLabDraft(classId: string, teacherId: string, draf
645
651
  aiPolicyLevel: number;
646
652
  sectionId: string | null;
647
653
  graded: boolean;
648
- maxGrade: number | null;
649
654
  weight: number;
650
655
  inProgress: boolean;
651
656
  template: boolean;
652
- eventId: string | null;
653
657
  markSchemeId: string | null;
654
658
  order: number | null;
655
659
  gradingBoundaryId: string | null;
@@ -664,12 +668,12 @@ export declare function getFiles(classId: string): Promise<{
664
668
  teacherAttachments: {
665
669
  path: string;
666
670
  type: string;
667
- name: string;
668
- id: string;
669
671
  user: {
670
672
  id: string;
671
673
  username: string;
672
674
  } | null;
675
+ id: string;
676
+ name: string;
673
677
  size: number | null;
674
678
  uploadedAt: Date | null;
675
679
  thumbnailId: string | null;
@@ -680,12 +684,12 @@ export declare function getFiles(classId: string): Promise<{
680
684
  attachments: {
681
685
  path: string;
682
686
  type: string;
683
- name: string;
684
- id: string;
685
687
  user: {
686
688
  id: string;
687
689
  username: string;
688
690
  } | null;
691
+ id: string;
692
+ name: string;
689
693
  size: number | null;
690
694
  uploadedAt: Date | null;
691
695
  thumbnailId: string | null;
@@ -693,12 +697,12 @@ export declare function getFiles(classId: string): Promise<{
693
697
  annotations: {
694
698
  path: string;
695
699
  type: string;
696
- name: string;
697
- id: string;
698
700
  user: {
699
701
  id: string;
700
702
  username: string;
701
703
  } | null;
704
+ id: string;
705
+ name: string;
702
706
  size: number | null;
703
707
  uploadedAt: Date | null;
704
708
  thumbnailId: string | null;
@@ -709,16 +713,29 @@ export declare function exportClass(classId: string, userId: string): Promise<{
709
713
  classFiles: any;
710
714
  assignments: {
711
715
  type: import(".prisma/client").$Enums.AssignmentType;
712
- id: string;
713
- createdAt: Date | null;
716
+ markScheme: {
717
+ id: string;
718
+ structured: string;
719
+ } | null;
720
+ gradingBoundary: {
721
+ id: string;
722
+ structured: string;
723
+ } | null;
714
724
  section: {
715
- name: string;
716
725
  id: string;
726
+ name: string;
717
727
  } | null;
728
+ id: string;
729
+ createdAt: Date | null;
718
730
  classId: string;
731
+ worksheets: {
732
+ id: string;
733
+ }[];
719
734
  title: string;
720
- instructions: string;
721
735
  dueDate: Date;
736
+ maxGrade: number | null;
737
+ eventId: string | null;
738
+ instructions: string;
722
739
  teacherId: string;
723
740
  acceptFiles: boolean;
724
741
  acceptExtendedResponse: boolean;
@@ -727,44 +744,31 @@ export declare function exportClass(classId: string, userId: string): Promise<{
727
744
  aiPolicyLevel: number;
728
745
  sectionId: string | null;
729
746
  graded: boolean;
730
- maxGrade: number | null;
731
747
  weight: number;
732
748
  inProgress: boolean;
733
- eventId: string | null;
734
749
  markSchemeId: string | null;
735
750
  order: number | null;
736
751
  gradingBoundaryId: string | null;
737
- markScheme: {
738
- id: string;
739
- structured: string;
740
- } | null;
741
- gradingBoundary: {
742
- id: string;
743
- structured: string;
744
- } | null;
745
- worksheets: {
746
- id: string;
747
- }[];
748
752
  }[];
749
753
  sections: {
750
- name: string;
751
754
  id: string;
755
+ name: string;
752
756
  color: string | null;
753
757
  classId: string;
754
758
  order: number | null;
755
759
  }[];
756
760
  worksheets: {
757
- name: string;
758
761
  id: string;
762
+ name: string;
759
763
  classId: string;
760
764
  questions: {
761
765
  type: import(".prisma/client").$Enums.WorksheetQuestionType;
762
766
  options: import("@prisma/client/runtime/library.js").JsonValue;
763
- order: number | null;
764
- points: number;
765
- worksheetId: string;
766
767
  markScheme: import("@prisma/client/runtime/library.js").JsonValue;
768
+ points: number;
767
769
  question: string;
770
+ worksheetId: string;
771
+ order: number | null;
768
772
  answer: string;
769
773
  }[];
770
774
  }[];
@@ -778,12 +782,12 @@ export declare function exportClass(classId: string, userId: string): Promise<{
778
782
  classId: string | null;
779
783
  structured: string;
780
784
  }[];
781
- name: string;
785
+ section: string;
782
786
  id: string;
787
+ name: string;
783
788
  schoolId: string | null;
784
- subject: string;
785
789
  color: string | null;
786
- section: string;
790
+ subject: string;
787
791
  syllabus: string | null;
788
792
  departmentId: string | null;
789
793
  discussionsEnabled: boolean;