@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
@@ -1,69 +1,87 @@
1
1
  /** @returns User's conversations with members and last message. */
2
- export declare function findConversationsByUserId(userId: string): import(".prisma/client").Prisma.PrismaPromise<({
2
+ export declare function findConversationsByUserId(userId: string): import("@prisma/client/runtime/library.js").PrismaPromise<({
3
3
  labChat: {
4
4
  id: string;
5
5
  title: string;
6
6
  } | null;
7
- members: ({
8
- user: {
7
+ messages: ({
8
+ sender: {
9
9
  id: string;
10
10
  username: string;
11
11
  profile: {
12
12
  displayName: string | null;
13
- profilePicture: string | null;
14
13
  } | null;
15
14
  };
16
15
  } & {
16
+ status: import(".prisma/client").$Enums.JobStatus | null;
17
+ meta: import("@prisma/client/runtime/library.js").JsonValue | null;
17
18
  id: string;
18
- userId: string;
19
- role: import(".prisma/client").$Enums.ConversationRole;
19
+ createdAt: Date;
20
+ content: string;
21
+ senderId: string;
20
22
  conversationId: string;
21
- joinedAt: Date;
22
- hiddenAt: Date | null;
23
- lastViewedAt: Date | null;
24
- lastViewedMentionAt: Date | null;
23
+ runJobId: string | null;
25
24
  })[];
26
- messages: ({
27
- sender: {
25
+ members: ({
26
+ user: {
28
27
  id: string;
29
28
  username: string;
30
29
  profile: {
30
+ profilePicture: string | null;
31
31
  displayName: string | null;
32
32
  } | null;
33
33
  };
34
34
  } & {
35
- status: import(".prisma/client").$Enums.JobStatus | null;
36
- meta: import("@prisma/client/runtime/library.js").JsonValue | null;
37
35
  id: string;
38
- createdAt: Date;
36
+ userId: string;
37
+ role: import(".prisma/client").$Enums.ConversationRole;
39
38
  conversationId: string;
40
- content: string;
41
- senderId: string;
42
- runJobId: string | null;
39
+ joinedAt: Date;
40
+ hiddenAt: Date | null;
41
+ lastViewedAt: Date | null;
42
+ lastViewedMentionAt: Date | null;
43
43
  })[];
44
44
  } & {
45
45
  type: import(".prisma/client").$Enums.ConversationType;
46
- name: string | null;
47
46
  id: string;
48
47
  createdAt: Date;
49
48
  updatedAt: Date;
49
+ name: string | null;
50
50
  displayInChat: boolean;
51
51
  })[]>;
52
52
  /** Count unread messages in conversation for user. */
53
- export declare function countUnreadMessages(conversationId: string, userId: string, after?: Date): import(".prisma/client").Prisma.PrismaPromise<number>;
53
+ export declare function countUnreadMessages(conversationId: string, userId: string, after?: Date): import("@prisma/client/runtime/library.js").PrismaPromise<number>;
54
54
  /** Count unread mentions for user in conversation. */
55
- export declare function countUnreadMentions(conversationId: string, userId: string, after?: Date): import(".prisma/client").Prisma.PrismaPromise<number>;
55
+ export declare function countUnreadMentions(conversationId: string, userId: string, after?: Date): import("@prisma/client/runtime/library.js").PrismaPromise<number>;
56
56
  /** @returns User by username (id, username only). */
57
- export declare function findUserByUsername(username: string): import(".prisma/client").Prisma.Prisma__UserClient<{
58
- id: string;
59
- username: string;
60
- } | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
61
- datasources: {
62
- db: {
63
- url: string;
57
+ export declare function findUserByUsername(username: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
58
+ result: {
59
+ userProfile: {
60
+ profilePicture: () => {
61
+ needs: {
62
+ profilePicture: true;
63
+ };
64
+ compute(profile: {
65
+ profilePicture: string | null;
66
+ }): string | null;
67
+ };
68
+ profilePictureThumbnail: () => {
69
+ needs: {
70
+ profilePictureThumbnail: true;
71
+ };
72
+ compute(profile: {
73
+ profilePictureThumbnail: string | null;
74
+ }): string | null;
75
+ };
64
76
  };
65
77
  };
66
- }>;
78
+ model: {};
79
+ query: {};
80
+ client: {};
81
+ }, {}>, "User", "findFirst", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
82
+ id: string;
83
+ username: string;
84
+ } | null>;
67
85
  /**
68
86
  * Search users who share at least one active school membership with the
69
87
  * requester and match the query by username or profile display name.
@@ -75,26 +93,26 @@ export declare function searchInstitutionConversationMembers(userId: string, que
75
93
  id: string;
76
94
  username: string;
77
95
  profile: {
78
- displayName: string | null;
79
96
  profilePicture: string | null;
97
+ displayName: string | null;
80
98
  profilePictureThumbnail: string | null;
81
99
  } | null;
82
100
  }[]>;
83
101
  /** @returns User's DM conversations. */
84
- export declare function findDmConversationsByUserId(userId: string): import(".prisma/client").Prisma.PrismaPromise<({
102
+ export declare function findDmConversationsByUserId(userId: string): import("@prisma/client/runtime/library.js").PrismaPromise<({
85
103
  members: {
86
104
  userId: string;
87
105
  }[];
88
106
  } & {
89
107
  type: import(".prisma/client").$Enums.ConversationType;
90
- name: string | null;
91
108
  id: string;
92
109
  createdAt: Date;
93
110
  updatedAt: Date;
111
+ name: string | null;
94
112
  displayInChat: boolean;
95
113
  })[]>;
96
114
  /** @returns Users by IDs or usernames. */
97
- export declare function findUsersByIdsOrUsernames(identifiers: string[]): Promise<never[]> | import(".prisma/client").Prisma.PrismaPromise<{
115
+ export declare function findUsersByIdsOrUsernames(identifiers: string[]): Promise<never[]> | import("@prisma/client/runtime/library.js").PrismaPromise<{
98
116
  id: string;
99
117
  username: string;
100
118
  }[]>;
@@ -106,14 +124,38 @@ export declare function createConversation(data: {
106
124
  userId: string;
107
125
  role: string;
108
126
  }[];
109
- }): import(".prisma/client").Prisma.Prisma__ConversationClient<{
127
+ }): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
128
+ result: {
129
+ userProfile: {
130
+ profilePicture: () => {
131
+ needs: {
132
+ profilePicture: true;
133
+ };
134
+ compute(profile: {
135
+ profilePicture: string | null;
136
+ }): string | null;
137
+ };
138
+ profilePictureThumbnail: () => {
139
+ needs: {
140
+ profilePictureThumbnail: true;
141
+ };
142
+ compute(profile: {
143
+ profilePictureThumbnail: string | null;
144
+ }): string | null;
145
+ };
146
+ };
147
+ };
148
+ model: {};
149
+ query: {};
150
+ client: {};
151
+ }, {}>, "Conversation", "create", never> & import("@prisma/client/runtime/library.js").PrismaPromise<{
110
152
  members: ({
111
153
  user: {
112
154
  id: string;
113
155
  username: string;
114
156
  profile: {
115
- displayName: string | null;
116
157
  profilePicture: string | null;
158
+ displayName: string | null;
117
159
  } | null;
118
160
  };
119
161
  } & {
@@ -128,27 +170,45 @@ export declare function createConversation(data: {
128
170
  })[];
129
171
  } & {
130
172
  type: import(".prisma/client").$Enums.ConversationType;
131
- name: string | null;
132
173
  id: string;
133
174
  createdAt: Date;
134
175
  updatedAt: Date;
176
+ name: string | null;
135
177
  displayInChat: boolean;
136
- }, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
137
- datasources: {
138
- db: {
139
- url: string;
140
- };
141
- };
142
178
  }>;
143
179
  /** @returns Conversation if user is a member. */
144
- export declare function findConversationByIdAndMember(conversationId: string, userId: string): import(".prisma/client").Prisma.Prisma__ConversationClient<({
180
+ export declare function findConversationByIdAndMember(conversationId: string, userId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
181
+ result: {
182
+ userProfile: {
183
+ profilePicture: () => {
184
+ needs: {
185
+ profilePicture: true;
186
+ };
187
+ compute(profile: {
188
+ profilePicture: string | null;
189
+ }): string | null;
190
+ };
191
+ profilePictureThumbnail: () => {
192
+ needs: {
193
+ profilePictureThumbnail: true;
194
+ };
195
+ compute(profile: {
196
+ profilePictureThumbnail: string | null;
197
+ }): string | null;
198
+ };
199
+ };
200
+ };
201
+ model: {};
202
+ query: {};
203
+ client: {};
204
+ }, {}>, "Conversation", "findFirst", null> & import("@prisma/client/runtime/library.js").PrismaPromise<({
145
205
  members: ({
146
206
  user: {
147
207
  id: string;
148
208
  username: string;
149
209
  profile: {
150
- displayName: string | null;
151
210
  profilePicture: string | null;
211
+ displayName: string | null;
152
212
  } | null;
153
213
  };
154
214
  } & {
@@ -163,24 +223,42 @@ export declare function findConversationByIdAndMember(conversationId: string, us
163
223
  })[];
164
224
  } & {
165
225
  type: import(".prisma/client").$Enums.ConversationType;
166
- name: string | null;
167
226
  id: string;
168
227
  createdAt: Date;
169
228
  updatedAt: Date;
229
+ name: string | null;
170
230
  displayInChat: boolean;
171
- }) | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
172
- datasources: {
173
- db: {
174
- url: string;
175
- };
176
- };
177
- }>;
231
+ }) | null>;
178
232
  /** Add a member to a conversation. */
179
233
  export declare function createConversationMember(data: {
180
234
  userId: string;
181
235
  conversationId: string;
182
236
  role: string;
183
- }): import(".prisma/client").Prisma.Prisma__ConversationMemberClient<{
237
+ }): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
238
+ result: {
239
+ userProfile: {
240
+ profilePicture: () => {
241
+ needs: {
242
+ profilePicture: true;
243
+ };
244
+ compute(profile: {
245
+ profilePicture: string | null;
246
+ }): string | null;
247
+ };
248
+ profilePictureThumbnail: () => {
249
+ needs: {
250
+ profilePictureThumbnail: true;
251
+ };
252
+ compute(profile: {
253
+ profilePictureThumbnail: string | null;
254
+ }): string | null;
255
+ };
256
+ };
257
+ };
258
+ model: {};
259
+ query: {};
260
+ client: {};
261
+ }, {}>, "ConversationMember", "create", never> & import("@prisma/client/runtime/library.js").PrismaPromise<{
184
262
  id: string;
185
263
  userId: string;
186
264
  role: import(".prisma/client").$Enums.ConversationRole;
@@ -189,15 +267,33 @@ export declare function createConversationMember(data: {
189
267
  hiddenAt: Date | null;
190
268
  lastViewedAt: Date | null;
191
269
  lastViewedMentionAt: Date | null;
192
- }, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
193
- datasources: {
194
- db: {
195
- url: string;
196
- };
197
- };
198
270
  }>;
199
271
  /** Hide a conversation for a single member until new activity occurs. */
200
- export declare function hideConversationMember(userId: string, conversationId: string): import(".prisma/client").Prisma.Prisma__ConversationMemberClient<{
272
+ export declare function hideConversationMember(userId: string, conversationId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
273
+ result: {
274
+ userProfile: {
275
+ profilePicture: () => {
276
+ needs: {
277
+ profilePicture: true;
278
+ };
279
+ compute(profile: {
280
+ profilePicture: string | null;
281
+ }): string | null;
282
+ };
283
+ profilePictureThumbnail: () => {
284
+ needs: {
285
+ profilePictureThumbnail: true;
286
+ };
287
+ compute(profile: {
288
+ profilePictureThumbnail: string | null;
289
+ }): string | null;
290
+ };
291
+ };
292
+ };
293
+ model: {};
294
+ query: {};
295
+ client: {};
296
+ }, {}>, "ConversationMember", "update", never> & import("@prisma/client/runtime/library.js").PrismaPromise<{
201
297
  id: string;
202
298
  userId: string;
203
299
  role: import(".prisma/client").$Enums.ConversationRole;
@@ -206,15 +302,33 @@ export declare function hideConversationMember(userId: string, conversationId: s
206
302
  hiddenAt: Date | null;
207
303
  lastViewedAt: Date | null;
208
304
  lastViewedMentionAt: Date | null;
209
- }, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
210
- datasources: {
211
- db: {
212
- url: string;
213
- };
214
- };
215
305
  }>;
216
306
  /** Unhide a conversation for a single member. */
217
- export declare function unhideConversationMember(userId: string, conversationId: string): import(".prisma/client").Prisma.Prisma__ConversationMemberClient<{
307
+ export declare function unhideConversationMember(userId: string, conversationId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
308
+ result: {
309
+ userProfile: {
310
+ profilePicture: () => {
311
+ needs: {
312
+ profilePicture: true;
313
+ };
314
+ compute(profile: {
315
+ profilePicture: string | null;
316
+ }): string | null;
317
+ };
318
+ profilePictureThumbnail: () => {
319
+ needs: {
320
+ profilePictureThumbnail: true;
321
+ };
322
+ compute(profile: {
323
+ profilePictureThumbnail: string | null;
324
+ }): string | null;
325
+ };
326
+ };
327
+ };
328
+ model: {};
329
+ query: {};
330
+ client: {};
331
+ }, {}>, "ConversationMember", "update", never> & import("@prisma/client/runtime/library.js").PrismaPromise<{
218
332
  id: string;
219
333
  userId: string;
220
334
  role: import(".prisma/client").$Enums.ConversationRole;
@@ -223,15 +337,33 @@ export declare function unhideConversationMember(userId: string, conversationId:
223
337
  hiddenAt: Date | null;
224
338
  lastViewedAt: Date | null;
225
339
  lastViewedMentionAt: Date | null;
226
- }, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
227
- datasources: {
228
- db: {
229
- url: string;
230
- };
231
- };
232
340
  }>;
233
341
  /** Remove a member from a conversation. */
234
- export declare function deleteConversationMember(userId: string, conversationId: string): import(".prisma/client").Prisma.Prisma__ConversationMemberClient<{
342
+ export declare function deleteConversationMember(userId: string, conversationId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
343
+ result: {
344
+ userProfile: {
345
+ profilePicture: () => {
346
+ needs: {
347
+ profilePicture: true;
348
+ };
349
+ compute(profile: {
350
+ profilePicture: string | null;
351
+ }): string | null;
352
+ };
353
+ profilePictureThumbnail: () => {
354
+ needs: {
355
+ profilePictureThumbnail: true;
356
+ };
357
+ compute(profile: {
358
+ profilePictureThumbnail: string | null;
359
+ }): string | null;
360
+ };
361
+ };
362
+ };
363
+ model: {};
364
+ query: {};
365
+ client: {};
366
+ }, {}>, "ConversationMember", "delete", never> & import("@prisma/client/runtime/library.js").PrismaPromise<{
235
367
  id: string;
236
368
  userId: string;
237
369
  role: import(".prisma/client").$Enums.ConversationRole;
@@ -240,11 +372,5 @@ export declare function deleteConversationMember(userId: string, conversationId:
240
372
  hiddenAt: Date | null;
241
373
  lastViewedAt: Date | null;
242
374
  lastViewedMentionAt: Date | null;
243
- }, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
244
- datasources: {
245
- db: {
246
- url: string;
247
- };
248
- };
249
375
  }>;
250
376
  //# sourceMappingURL=conversation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"/","sources":["models/conversation.ts"],"names":[],"mappings":"AAmCA,mEAAmE;AACnE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAQvD;AAED,sDAAsD;AACtD,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,IAAI,yDASb;AAED,sDAAsD;AACtD,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,IAAI,yDAYb;AAED,qDAAqD;AACrD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;GAKlD;AAED;;;;;;GAMG;AACH,wBAAsB,oCAAoC,CACxD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM;;;;;;;;KA0Cd;AAED,wCAAwC;AACxC,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;MAUzD;AAED,0CAA0C;AAC1C,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE;;;KAW9D;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BA;AAED,iDAAiD;AACjD,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuBf;AAED,sCAAsC;AACtC,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;;;;;;;;;;;;;;;GAQA;AAED,yEAAyE;AACzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;;;;;;;;;;;;;;;GAS5E;AAED,iDAAiD;AACjD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;;;;;;;;;;;;;;;GAS9E;AAED,2CAA2C;AAC3C,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;;;;;;;;;;;;;;;GAM9E"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"/","sources":["models/conversation.ts"],"names":[],"mappings":"AAmCA,mEAAmE;AACnE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAQvD;AAED,sDAAsD;AACtD,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,IAAI,qEASb;AAED,sDAAsD;AACtD,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,IAAI,qEAYb;AAED,qDAAqD;AACrD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;UAKlD;AAED;;;;;;GAMG;AACH,wBAAsB,oCAAoC,CACxD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM;;;;;;;;KA0Cd;AAED,wCAAwC;AACxC,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;MAUzD;AAED,0CAA0C;AAC1C,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE;;;KAW9D;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BA;AAED,iDAAiD;AACjD,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAuBf;AAED,sCAAsC;AACtC,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAQA;AAED,yEAAyE;AACzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAS5E;AAED,iDAAiD;AACjD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAS9E;AAED,2CAA2C;AAC3C,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAM9E"}