@studious-lms/server 1.12.0 → 1.14.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 (338) 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/lib/config/cors.d.ts.map +1 -1
  8. package/dist/lib/config/cors.js +31 -11
  9. package/dist/lib/config/cors.js.map +1 -1
  10. package/dist/lib/config/env.d.ts +17 -0
  11. package/dist/lib/config/env.d.ts.map +1 -1
  12. package/dist/lib/config/env.js +8 -2
  13. package/dist/lib/config/env.js.map +1 -1
  14. package/dist/lib/googleCloudStorage.d.ts +10 -0
  15. package/dist/lib/googleCloudStorage.d.ts.map +1 -1
  16. package/dist/lib/googleCloudStorage.js +22 -2
  17. package/dist/lib/googleCloudStorage.js.map +1 -1
  18. package/dist/lib/prisma.d.ts +104 -5
  19. package/dist/lib/prisma.d.ts.map +1 -1
  20. package/dist/lib/prisma.js +33 -2
  21. package/dist/lib/prisma.js.map +1 -1
  22. package/dist/models/agenda.d.ts +20 -20
  23. package/dist/models/announcement.d.ts +177 -69
  24. package/dist/models/announcement.d.ts.map +1 -1
  25. package/dist/models/assignment.d.ts +551 -353
  26. package/dist/models/assignment.d.ts.map +1 -1
  27. package/dist/models/attendance.d.ts +197 -71
  28. package/dist/models/attendance.d.ts.map +1 -1
  29. package/dist/models/auth.d.ts +348 -114
  30. package/dist/models/auth.d.ts.map +1 -1
  31. package/dist/models/class.d.ts +324 -188
  32. package/dist/models/class.d.ts.map +1 -1
  33. package/dist/models/class.js +9 -3
  34. package/dist/models/class.js.map +1 -1
  35. package/dist/models/cloudStorage.d.ts +146 -56
  36. package/dist/models/cloudStorage.d.ts.map +1 -1
  37. package/dist/models/comment.d.ts +269 -110
  38. package/dist/models/comment.d.ts.map +1 -1
  39. package/dist/models/comment.js +3 -2
  40. package/dist/models/comment.js.map +1 -1
  41. package/dist/models/conversation.d.ts +206 -63
  42. package/dist/models/conversation.d.ts.map +1 -1
  43. package/dist/models/conversation.js +13 -2
  44. package/dist/models/conversation.js.map +1 -1
  45. package/dist/models/department.d.ts +196 -70
  46. package/dist/models/department.d.ts.map +1 -1
  47. package/dist/models/event.d.ts +287 -125
  48. package/dist/models/event.d.ts.map +1 -1
  49. package/dist/models/file.d.ts +389 -263
  50. package/dist/models/file.d.ts.map +1 -1
  51. package/dist/models/folder.d.ts +433 -181
  52. package/dist/models/folder.d.ts.map +1 -1
  53. package/dist/models/labChat.d.ts +209 -83
  54. package/dist/models/labChat.d.ts.map +1 -1
  55. package/dist/models/marketing.d.ts +80 -26
  56. package/dist/models/marketing.d.ts.map +1 -1
  57. package/dist/models/message.d.ts +95 -41
  58. package/dist/models/message.d.ts.map +1 -1
  59. package/dist/models/newtonChat.d.ts +83 -29
  60. package/dist/models/newtonChat.d.ts.map +1 -1
  61. package/dist/models/notification.d.ts +61 -25
  62. package/dist/models/notification.d.ts.map +1 -1
  63. package/dist/models/school.d.ts +349 -133
  64. package/dist/models/school.d.ts.map +1 -1
  65. package/dist/models/section.d.ts +216 -72
  66. package/dist/models/section.d.ts.map +1 -1
  67. package/dist/models/tag.d.ts +156 -48
  68. package/dist/models/tag.d.ts.map +1 -1
  69. package/dist/models/user.d.ts +82 -28
  70. package/dist/models/user.d.ts.map +1 -1
  71. package/dist/models/worksheet.d.ts +1023 -410
  72. package/dist/models/worksheet.d.ts.map +1 -1
  73. package/dist/models/worksheet.js +19 -7
  74. package/dist/models/worksheet.js.map +1 -1
  75. package/dist/pipelines/aiLabChat.d.ts +0 -8
  76. package/dist/pipelines/aiLabChat.d.ts.map +1 -1
  77. package/dist/pipelines/aiLabChat.js +50 -67
  78. package/dist/pipelines/aiLabChat.js.map +1 -1
  79. package/dist/pipelines/aiLabChatContract.d.ts +393 -388
  80. package/dist/pipelines/aiLabChatContract.d.ts.map +1 -1
  81. package/dist/pipelines/aiLabChatContract.js +63 -69
  82. package/dist/pipelines/aiLabChatContract.js.map +1 -1
  83. package/dist/pipelines/aiNewtonChat.d.ts.map +1 -1
  84. package/dist/pipelines/aiNewtonChat.js +41 -41
  85. package/dist/pipelines/aiNewtonChat.js.map +1 -1
  86. package/dist/pipelines/gradeWorksheet.d.ts +8 -8
  87. package/dist/pipelines/gradeWorksheet.d.ts.map +1 -1
  88. package/dist/pipelines/gradeWorksheet.js +59 -14
  89. package/dist/pipelines/gradeWorksheet.js.map +1 -1
  90. package/dist/pipelines/labChatPrompt.d.ts +10 -8
  91. package/dist/pipelines/labChatPrompt.d.ts.map +1 -1
  92. package/dist/pipelines/labChatPrompt.js +47 -67
  93. package/dist/pipelines/labChatPrompt.js.map +1 -1
  94. package/dist/pipelines/pdfToWorksheet.d.ts +2 -2
  95. package/dist/routers/_app.d.ts +2268 -1898
  96. package/dist/routers/_app.d.ts.map +1 -1
  97. package/dist/routers/_app.js +4 -2
  98. package/dist/routers/_app.js.map +1 -1
  99. package/dist/routers/admin.d.ts +13 -13
  100. package/dist/routers/agenda.d.ts +18 -18
  101. package/dist/routers/announcement.d.ts +32 -28
  102. package/dist/routers/announcement.d.ts.map +1 -1
  103. package/dist/routers/announcement.js +6 -5
  104. package/dist/routers/announcement.js.map +1 -1
  105. package/dist/routers/assignment.d.ts +335 -327
  106. package/dist/routers/assignment.d.ts.map +1 -1
  107. package/dist/routers/assignment.js +4 -4
  108. package/dist/routers/assignment.js.map +1 -1
  109. package/dist/routers/attendance.d.ts +10 -10
  110. package/dist/routers/auth.d.ts +2 -2
  111. package/dist/routers/class.d.ts +170 -147
  112. package/dist/routers/class.d.ts.map +1 -1
  113. package/dist/routers/comment.d.ts +40 -16
  114. package/dist/routers/comment.d.ts.map +1 -1
  115. package/dist/routers/comment.js +6 -3
  116. package/dist/routers/comment.js.map +1 -1
  117. package/dist/routers/conversation.d.ts +17 -17
  118. package/dist/routers/department.d.ts +34 -34
  119. package/dist/routers/discussion.d.ts +65 -53
  120. package/dist/routers/discussion.d.ts.map +1 -1
  121. package/dist/routers/discussion.js +6 -2
  122. package/dist/routers/discussion.js.map +1 -1
  123. package/dist/routers/embedding.d.ts +69 -0
  124. package/dist/routers/embedding.d.ts.map +1 -0
  125. package/dist/routers/embedding.js +143 -0
  126. package/dist/routers/embedding.js.map +1 -0
  127. package/dist/routers/event.d.ts +39 -39
  128. package/dist/routers/file.d.ts +12 -12
  129. package/dist/routers/folder.d.ts +38 -38
  130. package/dist/routers/labChat.d.ts +19 -19
  131. package/dist/routers/marketing.d.ts +2 -2
  132. package/dist/routers/message.d.ts +13 -13
  133. package/dist/routers/newtonChat.d.ts +4 -4
  134. package/dist/routers/notifications.d.ts +9 -9
  135. package/dist/routers/permissions.d.ts +14 -14
  136. package/dist/routers/school.d.ts +55 -55
  137. package/dist/routers/search.d.ts +22 -1
  138. package/dist/routers/search.d.ts.map +1 -1
  139. package/dist/routers/search.js +9 -3
  140. package/dist/routers/search.js.map +1 -1
  141. package/dist/routers/section.d.ts +4 -4
  142. package/dist/routers/studentProgress.d.ts +1 -1
  143. package/dist/routers/tag.d.ts +7 -7
  144. package/dist/routers/user.d.ts +10 -10
  145. package/dist/routers/worksheet.d.ts +97 -56
  146. package/dist/routers/worksheet.d.ts.map +1 -1
  147. package/dist/routers/worksheet.js +28 -2
  148. package/dist/routers/worksheet.js.map +1 -1
  149. package/dist/routes/aiStream.d.ts +2 -0
  150. package/dist/routes/aiStream.d.ts.map +1 -0
  151. package/dist/routes/aiStream.js +696 -0
  152. package/dist/routes/aiStream.js.map +1 -0
  153. package/dist/seedDatabase.d.ts +2 -2
  154. package/dist/seedDatabase.js +6 -6
  155. package/dist/seedDatabase.js.map +1 -1
  156. package/dist/services/adminInstitution.d.ts +8 -8
  157. package/dist/services/adminRunJob.d.ts +4 -4
  158. package/dist/services/agenda.d.ts +18 -18
  159. package/dist/services/aiChatStream.d.ts +68 -0
  160. package/dist/services/aiChatStream.d.ts.map +1 -0
  161. package/dist/services/aiChatStream.js +157 -0
  162. package/dist/services/aiChatStream.js.map +1 -0
  163. package/dist/services/aiModifierTools.d.ts +32 -0
  164. package/dist/services/aiModifierTools.d.ts.map +1 -0
  165. package/dist/services/aiModifierTools.js +165 -0
  166. package/dist/services/aiModifierTools.js.map +1 -0
  167. package/dist/services/aiProposalTools.d.ts +32 -0
  168. package/dist/services/aiProposalTools.d.ts.map +1 -0
  169. package/dist/services/aiProposalTools.js +207 -0
  170. package/dist/services/aiProposalTools.js.map +1 -0
  171. package/dist/services/aiStream.d.ts +22 -0
  172. package/dist/services/aiStream.d.ts.map +1 -0
  173. package/dist/services/aiStream.js +142 -0
  174. package/dist/services/aiStream.js.map +1 -0
  175. package/dist/services/aiTools.d.ts +16 -0
  176. package/dist/services/aiTools.d.ts.map +1 -0
  177. package/dist/services/aiTools.js +271 -0
  178. package/dist/services/aiTools.js.map +1 -0
  179. package/dist/services/announcement.d.ts +12 -12
  180. package/dist/services/announcement.d.ts.map +1 -1
  181. package/dist/services/announcement.js +7 -2
  182. package/dist/services/announcement.js.map +1 -1
  183. package/dist/services/assignment.d.ts +293 -293
  184. package/dist/services/assignment.d.ts.map +1 -1
  185. package/dist/services/assignment.js +36 -15
  186. package/dist/services/assignment.js.map +1 -1
  187. package/dist/services/attendance.d.ts +10 -10
  188. package/dist/services/auth.d.ts +2 -2
  189. package/dist/services/class.d.ts +161 -138
  190. package/dist/services/class.d.ts.map +1 -1
  191. package/dist/services/class.js +25 -4
  192. package/dist/services/class.js.map +1 -1
  193. package/dist/services/comment.d.ts +34 -16
  194. package/dist/services/comment.d.ts.map +1 -1
  195. package/dist/services/comment.js +23 -2
  196. package/dist/services/comment.js.map +1 -1
  197. package/dist/services/conversation.d.ts +17 -17
  198. package/dist/services/conversation.d.ts.map +1 -1
  199. package/dist/services/conversation.js +9 -7
  200. package/dist/services/conversation.js.map +1 -1
  201. package/dist/services/department.d.ts +33 -33
  202. package/dist/services/discussion.d.ts +58 -58
  203. package/dist/services/discussion.d.ts.map +1 -1
  204. package/dist/services/discussion.js +8 -8
  205. package/dist/services/discussion.js.map +1 -1
  206. package/dist/services/discussionSummary.d.ts +21 -0
  207. package/dist/services/discussionSummary.d.ts.map +1 -0
  208. package/dist/services/discussionSummary.js +179 -0
  209. package/dist/services/discussionSummary.js.map +1 -0
  210. package/dist/services/embedding.d.ts +67 -0
  211. package/dist/services/embedding.d.ts.map +1 -0
  212. package/dist/services/embedding.js +226 -0
  213. package/dist/services/embedding.js.map +1 -0
  214. package/dist/services/event.d.ts +37 -37
  215. package/dist/services/file.d.ts +24 -24
  216. package/dist/services/folder.d.ts +36 -36
  217. package/dist/services/labChat.d.ts +19 -19
  218. package/dist/services/marketing.d.ts +2 -2
  219. package/dist/services/message.d.ts +11 -11
  220. package/dist/services/message.d.ts.map +1 -1
  221. package/dist/services/message.js +2 -2
  222. package/dist/services/message.js.map +1 -1
  223. package/dist/services/newtonChat.d.ts +4 -4
  224. package/dist/services/notification.d.ts +9 -9
  225. package/dist/services/notification.d.ts.map +1 -1
  226. package/dist/services/permissions.d.ts +14 -14
  227. package/dist/services/school.d.ts +50 -50
  228. package/dist/services/search.d.ts +12 -0
  229. package/dist/services/search.d.ts.map +1 -1
  230. package/dist/services/search.js +120 -2
  231. package/dist/services/search.js.map +1 -1
  232. package/dist/services/section.d.ts +3 -3
  233. package/dist/services/tag.d.ts +4 -4
  234. package/dist/services/user.d.ts +4 -4
  235. package/dist/services/user.d.ts.map +1 -1
  236. package/dist/services/user.js +10 -15
  237. package/dist/services/user.js.map +1 -1
  238. package/dist/services/worksheet.d.ts +62 -47
  239. package/dist/services/worksheet.d.ts.map +1 -1
  240. package/dist/services/worksheet.js +11 -4
  241. package/dist/services/worksheet.js.map +1 -1
  242. package/dist/utils/streamBroadcast.d.ts +11 -0
  243. package/dist/utils/streamBroadcast.d.ts.map +1 -0
  244. package/dist/utils/streamBroadcast.js +32 -0
  245. package/dist/utils/streamBroadcast.js.map +1 -0
  246. package/dist/workers/connection.d.ts +15 -0
  247. package/dist/workers/connection.d.ts.map +1 -1
  248. package/dist/workers/connection.js +20 -2
  249. package/dist/workers/connection.js.map +1 -1
  250. package/dist/workers/index.js +4 -2
  251. package/dist/workers/index.js.map +1 -1
  252. package/dist/workers/processors/createRunJobWorker.d.ts.map +1 -1
  253. package/dist/workers/processors/createRunJobWorker.js +31 -8
  254. package/dist/workers/processors/createRunJobWorker.js.map +1 -1
  255. package/dist/workers/processors/embedContent.d.ts +8 -0
  256. package/dist/workers/processors/embedContent.d.ts.map +1 -0
  257. package/dist/workers/processors/embedContent.js +76 -0
  258. package/dist/workers/processors/embedContent.js.map +1 -0
  259. package/dist/workers/queues.d.ts +6 -0
  260. package/dist/workers/queues.d.ts.map +1 -1
  261. package/dist/workers/queues.js +5 -3
  262. package/dist/workers/queues.js.map +1 -1
  263. package/package.json +5 -1
  264. package/prisma/migrations/20260609215135_init/migration.sql +1412 -0
  265. package/prisma/migrations/20260610130000_add_worksheet_tags/migration.sql +13 -0
  266. package/prisma/schema.prisma +39 -7
  267. package/src/index.ts +4 -0
  268. package/src/lib/config/cors.ts +32 -9
  269. package/src/lib/config/env.ts +6 -0
  270. package/src/lib/googleCloudStorage.ts +21 -0
  271. package/src/lib/prisma.ts +40 -1
  272. package/src/models/class.ts +10 -3
  273. package/src/models/comment.ts +1 -0
  274. package/src/models/conversation.ts +12 -0
  275. package/src/models/worksheet.ts +16 -7
  276. package/src/pipelines/aiLabChat.ts +54 -79
  277. package/src/pipelines/aiLabChatContract.ts +69 -69
  278. package/src/pipelines/aiNewtonChat.ts +46 -43
  279. package/src/pipelines/gradeWorksheet.ts +66 -15
  280. package/src/pipelines/labChatPrompt.ts +63 -88
  281. package/src/routers/_app.ts +2 -0
  282. package/src/routers/announcement.ts +4 -3
  283. package/src/routers/assignment.ts +2 -2
  284. package/src/routers/comment.ts +5 -0
  285. package/src/routers/discussion.ts +7 -0
  286. package/src/routers/embedding.ts +159 -0
  287. package/src/routers/search.ts +10 -1
  288. package/src/routers/worksheet.ts +29 -0
  289. package/src/routes/aiStream.ts +789 -0
  290. package/src/seedDatabase.ts +4 -4
  291. package/src/services/aiChatStream.ts +219 -0
  292. package/src/services/aiModifierTools.ts +188 -0
  293. package/src/services/aiProposalTools.ts +272 -0
  294. package/src/services/aiStream.ts +175 -0
  295. package/src/services/aiTools.ts +290 -0
  296. package/src/services/announcement.ts +7 -0
  297. package/src/services/assignment.ts +36 -14
  298. package/src/services/class.ts +30 -2
  299. package/src/services/comment.ts +22 -0
  300. package/src/services/conversation.ts +9 -4
  301. package/src/services/discussion.ts +9 -8
  302. package/src/services/discussionSummary.ts +226 -0
  303. package/src/services/embedding.ts +285 -0
  304. package/src/services/message.ts +2 -2
  305. package/src/services/search.ts +138 -0
  306. package/src/services/user.ts +9 -17
  307. package/src/services/worksheet.ts +10 -2
  308. package/src/utils/streamBroadcast.ts +48 -0
  309. package/src/workers/connection.ts +19 -0
  310. package/src/workers/index.ts +2 -0
  311. package/src/workers/processors/createRunJobWorker.ts +32 -6
  312. package/src/workers/processors/embedContent.ts +90 -0
  313. package/src/workers/queues.ts +5 -1
  314. package/tests/integration/routers/conversation.test.ts +9 -7
  315. package/tests/unit/pipelines/aiLabChatContract.test.ts +38 -21
  316. package/tests/unit/pipelines/labChatPrompt.test.ts +23 -36
  317. package/prisma/migrations/20250807062924_init/migration.sql +0 -436
  318. package/prisma/migrations/20250919063704_init2/migration.sql +0 -24
  319. package/prisma/migrations/20250920143543_add_profile_fields/migration.sql +0 -15
  320. package/prisma/migrations/20250922165147_add_chat_models/migration.sql +0 -68
  321. package/prisma/migrations/20250922165314_add_chat_roles/migration.sql +0 -5
  322. package/prisma/migrations/20250922171242_refactor_notification_system/migration.sql +0 -20
  323. package/prisma/migrations/20250922172208_add_mentions_system/migration.sql +0 -21
  324. package/prisma/migrations/20250925072732_add_lab_chat_system/migration.sql +0 -25
  325. package/prisma/migrations/20251020151505_add_upload_tracking_fields/migration.sql +0 -57
  326. package/prisma/migrations/20251109122857_annuoncements_comments/migration.sql +0 -30
  327. package/prisma/migrations/20251109135555_reactions_announcements_comments/migration.sql +0 -35
  328. package/prisma/migrations/20260410124000_add_submission_recommendation_state/migration.sql +0 -14
  329. package/prisma/migrations/20260415103500_add_session_type/migration.sql +0 -33
  330. package/prisma/migrations/20260415133000_add_ai_usage_logs/migration.sql +0 -19
  331. package/prisma/migrations/20260417083000_add_conversation_member_hidden_at/migration.sql +0 -2
  332. package/prisma/migrations/20260502230500_assignment_submission_comments/migration.sql +0 -60
  333. package/prisma/migrations/20260504071500_school_memberships/migration.sql +0 -81
  334. package/prisma/migrations/20260506162500_consolidate_run_job_and_unify_job_status/migration.sql +0 -166
  335. package/prisma/migrations/20260509220000_institution_overhaul/migration.sql +0 -184
  336. package/prisma/migrations/20260510170000_add_folder_permissions/migration.sql +0 -93
  337. package/prisma/migrations/20260510183000_add_discussions/migration.sql +0 -151
  338. /package/.github/workflows/{npm.yml → npm-publish.yml} +0 -0
@@ -4,86 +4,176 @@
4
4
  */
5
5
  import { SessionType } from "@prisma/client";
6
6
  /** @returns User by username (includes password for login). */
7
- export declare function findUserByUsername(username: string): import(".prisma/client").Prisma.Prisma__UserClient<{
7
+ 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 & {
8
+ result: {
9
+ userProfile: {
10
+ profilePicture: () => {
11
+ needs: {
12
+ profilePicture: true;
13
+ };
14
+ compute(profile: {
15
+ profilePicture: string | null;
16
+ }): string | null;
17
+ };
18
+ profilePictureThumbnail: () => {
19
+ needs: {
20
+ profilePictureThumbnail: true;
21
+ };
22
+ compute(profile: {
23
+ profilePictureThumbnail: string | null;
24
+ }): string | null;
25
+ };
26
+ };
27
+ };
28
+ model: {};
29
+ query: {};
30
+ client: {};
31
+ }, {}>, "User", "findFirst", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
8
32
  id: string;
9
33
  username: string;
10
34
  email: string;
11
35
  password: string;
12
36
  verified: boolean;
13
- } | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
14
- datasources: {
15
- db: {
16
- url: string;
37
+ } | null>;
38
+ /** @returns User by username or email. */
39
+ export declare function findUserByUsernameOrEmail(username: string, email: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
40
+ result: {
41
+ userProfile: {
42
+ profilePicture: () => {
43
+ needs: {
44
+ profilePicture: true;
45
+ };
46
+ compute(profile: {
47
+ profilePicture: string | null;
48
+ }): string | null;
49
+ };
50
+ profilePictureThumbnail: () => {
51
+ needs: {
52
+ profilePictureThumbnail: true;
53
+ };
54
+ compute(profile: {
55
+ profilePictureThumbnail: string | null;
56
+ }): string | null;
57
+ };
17
58
  };
18
59
  };
19
- }>;
20
- /** @returns User by username or email. */
21
- export declare function findUserByUsernameOrEmail(username: string, email: string): import(".prisma/client").Prisma.Prisma__UserClient<{
60
+ model: {};
61
+ query: {};
62
+ client: {};
63
+ }, {}>, "User", "findFirst", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
22
64
  id: string;
23
65
  username: string;
24
66
  email: string;
25
67
  verified: boolean;
26
- } | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
27
- datasources: {
28
- db: {
29
- url: string;
68
+ } | null>;
69
+ /** @returns User by email with profile. */
70
+ export declare function findUserByEmail(email: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
71
+ result: {
72
+ userProfile: {
73
+ profilePicture: () => {
74
+ needs: {
75
+ profilePicture: true;
76
+ };
77
+ compute(profile: {
78
+ profilePicture: string | null;
79
+ }): string | null;
80
+ };
81
+ profilePictureThumbnail: () => {
82
+ needs: {
83
+ profilePictureThumbnail: true;
84
+ };
85
+ compute(profile: {
86
+ profilePictureThumbnail: string | null;
87
+ }): string | null;
88
+ };
30
89
  };
31
90
  };
32
- }>;
33
- /** @returns User by email with profile. */
34
- export declare function findUserByEmail(email: string): import(".prisma/client").Prisma.Prisma__UserClient<{
91
+ model: {};
92
+ query: {};
93
+ client: {};
94
+ }, {}>, "User", "findFirst", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
35
95
  id: string;
36
96
  email: string;
37
97
  profile: {
38
- location: string | null;
98
+ profilePicture: string | null;
39
99
  displayName: string | null;
40
100
  bio: string | null;
101
+ location: string | null;
41
102
  website: string | null;
42
- profilePicture: string | null;
43
103
  } | null;
44
- } | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
45
- datasources: {
46
- db: {
47
- url: string;
104
+ } | null>;
105
+ /** @returns User by ID with profile. */
106
+ export declare function findUserById(id: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
107
+ result: {
108
+ userProfile: {
109
+ profilePicture: () => {
110
+ needs: {
111
+ profilePicture: true;
112
+ };
113
+ compute(profile: {
114
+ profilePicture: string | null;
115
+ }): string | null;
116
+ };
117
+ profilePictureThumbnail: () => {
118
+ needs: {
119
+ profilePictureThumbnail: true;
120
+ };
121
+ compute(profile: {
122
+ profilePictureThumbnail: string | null;
123
+ }): string | null;
124
+ };
48
125
  };
49
126
  };
50
- }>;
51
- /** @returns User by ID with profile. */
52
- export declare function findUserById(id: string): import(".prisma/client").Prisma.Prisma__UserClient<{
127
+ model: {};
128
+ query: {};
129
+ client: {};
130
+ }, {}>, "User", "findUnique", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
53
131
  id: string;
54
132
  username: string;
55
133
  email: string;
56
134
  profile: {
57
- location: string | null;
135
+ profilePicture: string | null;
58
136
  displayName: string | null;
59
137
  bio: string | null;
138
+ location: string | null;
60
139
  website: string | null;
61
- profilePicture: string | null;
62
140
  profilePictureThumbnail: string | null;
63
141
  } | null;
64
- } | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
65
- datasources: {
66
- db: {
67
- url: string;
68
- };
69
- };
70
- }>;
142
+ } | null>;
71
143
  /** Create a user with empty profile. */
72
144
  export declare function createUser(data: {
73
145
  username: string;
74
146
  email: string;
75
147
  password: string;
76
148
  verified?: boolean;
77
- }): import(".prisma/client").Prisma.Prisma__UserClient<{
149
+ }): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
150
+ result: {
151
+ userProfile: {
152
+ profilePicture: () => {
153
+ needs: {
154
+ profilePicture: true;
155
+ };
156
+ compute(profile: {
157
+ profilePicture: string | null;
158
+ }): string | null;
159
+ };
160
+ profilePictureThumbnail: () => {
161
+ needs: {
162
+ profilePictureThumbnail: true;
163
+ };
164
+ compute(profile: {
165
+ profilePictureThumbnail: string | null;
166
+ }): string | null;
167
+ };
168
+ };
169
+ };
170
+ model: {};
171
+ query: {};
172
+ client: {};
173
+ }, {}>, "User", "create", never> & import("@prisma/client/runtime/library.js").PrismaPromise<{
78
174
  id: string;
79
175
  username: string;
80
176
  email: string;
81
- }, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
82
- datasources: {
83
- db: {
84
- url: string;
85
- };
86
- };
87
177
  }>;
88
178
  /** Create a session. */
89
179
  export declare function createSession(data: {
@@ -92,156 +182,300 @@ export declare function createSession(data: {
92
182
  expiresAt: Date;
93
183
  userId?: string;
94
184
  classId?: string;
95
- }): import(".prisma/client").Prisma.Prisma__SessionClient<{
185
+ }): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
186
+ result: {
187
+ userProfile: {
188
+ profilePicture: () => {
189
+ needs: {
190
+ profilePicture: true;
191
+ };
192
+ compute(profile: {
193
+ profilePicture: string | null;
194
+ }): string | null;
195
+ };
196
+ profilePictureThumbnail: () => {
197
+ needs: {
198
+ profilePictureThumbnail: true;
199
+ };
200
+ compute(profile: {
201
+ profilePictureThumbnail: string | null;
202
+ }): string | null;
203
+ };
204
+ };
205
+ };
206
+ model: {};
207
+ query: {};
208
+ client: {};
209
+ }, {}>, "Session", "create", never> & import("@prisma/client/runtime/library.js").PrismaPromise<{
96
210
  type: import(".prisma/client").$Enums.SessionType;
97
211
  id: string;
98
- createdAt: Date | null;
99
212
  userId: string | null;
100
- expiresAt: Date | null;
213
+ createdAt: Date | null;
101
214
  classId: string | null;
102
- }, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
103
- datasources: {
104
- db: {
105
- url: string;
106
- };
107
- };
215
+ expiresAt: Date | null;
108
216
  }>;
109
217
  /** Delete all sessions for user. Invalidates Redis cache. */
110
- export declare function deleteSessionsByUserId(userId: string): Promise<import(".prisma/client").Prisma.BatchPayload>;
218
+ export declare function deleteSessionsByUserId(userId: string): Promise<import("@prisma/client/runtime/library.js").GetBatchResult>;
111
219
  /** Delete password reset sessions expiring before date. */
112
- export declare function deleteShortLivedSessionsByUserId(userId: string, expiresBefore: Date): import(".prisma/client").Prisma.PrismaPromise<import(".prisma/client").Prisma.BatchPayload>;
220
+ export declare function deleteShortLivedSessionsByUserId(userId: string, expiresBefore: Date): import("@prisma/client/runtime/library.js").PrismaPromise<import("@prisma/client/runtime/library.js").GetBatchResult>;
113
221
  /** Delete a user. */
114
- export declare function deleteUserById(id: string): import(".prisma/client").Prisma.Prisma__UserClient<{
222
+ export declare function deleteUserById(id: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
223
+ result: {
224
+ userProfile: {
225
+ profilePicture: () => {
226
+ needs: {
227
+ profilePicture: true;
228
+ };
229
+ compute(profile: {
230
+ profilePicture: string | null;
231
+ }): string | null;
232
+ };
233
+ profilePictureThumbnail: () => {
234
+ needs: {
235
+ profilePictureThumbnail: true;
236
+ };
237
+ compute(profile: {
238
+ profilePictureThumbnail: string | null;
239
+ }): string | null;
240
+ };
241
+ };
242
+ };
243
+ model: {};
244
+ query: {};
245
+ client: {};
246
+ }, {}>, "User", "delete", never> & import("@prisma/client/runtime/library.js").PrismaPromise<{
115
247
  id: string;
116
248
  username: string;
117
249
  email: string;
118
250
  password: string;
119
251
  verified: boolean;
120
252
  schoolId: string | null;
121
- }, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
122
- datasources: {
123
- db: {
124
- url: string;
125
- };
126
- };
127
253
  }>;
128
254
  /** @returns Session by ID and type. */
129
- export declare function findSessionByIdAndType(id: string, type: SessionType): import(".prisma/client").Prisma.Prisma__SessionClient<{
255
+ export declare function findSessionByIdAndType(id: string, type: SessionType): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
256
+ result: {
257
+ userProfile: {
258
+ profilePicture: () => {
259
+ needs: {
260
+ profilePicture: true;
261
+ };
262
+ compute(profile: {
263
+ profilePicture: string | null;
264
+ }): string | null;
265
+ };
266
+ profilePictureThumbnail: () => {
267
+ needs: {
268
+ profilePictureThumbnail: true;
269
+ };
270
+ compute(profile: {
271
+ profilePictureThumbnail: string | null;
272
+ }): string | null;
273
+ };
274
+ };
275
+ };
276
+ model: {};
277
+ query: {};
278
+ client: {};
279
+ }, {}>, "Session", "findFirst", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
130
280
  type: import(".prisma/client").$Enums.SessionType;
131
281
  id: string;
132
- createdAt: Date | null;
133
282
  userId: string | null;
134
- expiresAt: Date | null;
283
+ createdAt: Date | null;
135
284
  classId: string | null;
136
- } | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
137
- datasources: {
138
- db: {
139
- url: string;
285
+ expiresAt: Date | null;
286
+ } | null>;
287
+ /** @returns Session with user by ID and type. */
288
+ export declare function findSessionByIdWithUserAndType(id: string, type: SessionType): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
289
+ result: {
290
+ userProfile: {
291
+ profilePicture: () => {
292
+ needs: {
293
+ profilePicture: true;
294
+ };
295
+ compute(profile: {
296
+ profilePicture: string | null;
297
+ }): string | null;
298
+ };
299
+ profilePictureThumbnail: () => {
300
+ needs: {
301
+ profilePictureThumbnail: true;
302
+ };
303
+ compute(profile: {
304
+ profilePictureThumbnail: string | null;
305
+ }): string | null;
306
+ };
140
307
  };
141
308
  };
142
- }>;
143
- /** @returns Session with user by ID and type. */
144
- export declare function findSessionByIdWithUserAndType(id: string, type: SessionType): import(".prisma/client").Prisma.Prisma__SessionClient<({
309
+ model: {};
310
+ query: {};
311
+ client: {};
312
+ }, {}>, "Session", "findFirst", null> & import("@prisma/client/runtime/library.js").PrismaPromise<({
145
313
  user: {
146
314
  id: string;
147
315
  } | null;
148
316
  } & {
149
317
  type: import(".prisma/client").$Enums.SessionType;
150
318
  id: string;
151
- createdAt: Date | null;
152
319
  userId: string | null;
153
- expiresAt: Date | null;
320
+ createdAt: Date | null;
154
321
  classId: string | null;
155
- }) | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
156
- datasources: {
157
- db: {
158
- url: string;
322
+ expiresAt: Date | null;
323
+ }) | null>;
324
+ /** Set user verified status. */
325
+ export declare function updateUserVerified(userId: string, verified: boolean): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
326
+ result: {
327
+ userProfile: {
328
+ profilePicture: () => {
329
+ needs: {
330
+ profilePicture: true;
331
+ };
332
+ compute(profile: {
333
+ profilePicture: string | null;
334
+ }): string | null;
335
+ };
336
+ profilePictureThumbnail: () => {
337
+ needs: {
338
+ profilePictureThumbnail: true;
339
+ };
340
+ compute(profile: {
341
+ profilePictureThumbnail: string | null;
342
+ }): string | null;
343
+ };
159
344
  };
160
345
  };
161
- }>;
162
- /** Set user verified status. */
163
- export declare function updateUserVerified(userId: string, verified: boolean): import(".prisma/client").Prisma.Prisma__UserClient<{
346
+ model: {};
347
+ query: {};
348
+ client: {};
349
+ }, {}>, "User", "update", never> & import("@prisma/client/runtime/library.js").PrismaPromise<{
164
350
  id: string;
165
351
  username: string;
166
352
  email: string;
167
353
  password: string;
168
354
  verified: boolean;
169
355
  schoolId: string | null;
170
- }, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
171
- datasources: {
172
- db: {
173
- url: string;
174
- };
175
- };
176
356
  }>;
177
357
  /** Update user password. */
178
- export declare function updateUserPassword(userId: string, password: string): import(".prisma/client").Prisma.Prisma__UserClient<{
358
+ export declare function updateUserPassword(userId: string, password: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
359
+ result: {
360
+ userProfile: {
361
+ profilePicture: () => {
362
+ needs: {
363
+ profilePicture: true;
364
+ };
365
+ compute(profile: {
366
+ profilePicture: string | null;
367
+ }): string | null;
368
+ };
369
+ profilePictureThumbnail: () => {
370
+ needs: {
371
+ profilePictureThumbnail: true;
372
+ };
373
+ compute(profile: {
374
+ profilePictureThumbnail: string | null;
375
+ }): string | null;
376
+ };
377
+ };
378
+ };
379
+ model: {};
380
+ query: {};
381
+ client: {};
382
+ }, {}>, "User", "update", never> & import("@prisma/client/runtime/library.js").PrismaPromise<{
179
383
  id: string;
180
384
  username: string;
181
385
  email: string;
182
386
  password: string;
183
387
  verified: boolean;
184
388
  schoolId: string | null;
185
- }, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
186
- datasources: {
187
- db: {
188
- url: string;
189
- };
190
- };
191
389
  }>;
192
390
  /** Delete a session. */
193
391
  export declare function deleteSessionById(id: string): Promise<{
194
392
  type: import(".prisma/client").$Enums.SessionType;
195
393
  id: string;
196
- createdAt: Date | null;
197
394
  userId: string | null;
198
- expiresAt: Date | null;
395
+ createdAt: Date | null;
199
396
  classId: string | null;
397
+ expiresAt: Date | null;
200
398
  }>;
201
399
  /** @returns User from valid auth session token. Checks Redis first, then DB. Caches in Redis. */
202
400
  export declare function findUserBySessionToken(token: string): Promise<any>;
203
401
  /** @returns Class IDs where user is a teacher. */
204
- export declare function findTeacherClassesByUserId(userId: string): import(".prisma/client").Prisma.PrismaPromise<{
402
+ export declare function findTeacherClassesByUserId(userId: string): import("@prisma/client/runtime/library.js").PrismaPromise<{
205
403
  id: string;
206
404
  }[]>;
207
405
  /** @returns Class if user is student or teacher. */
208
- export declare function findClassWithMember(classId: string, userId: string): import(".prisma/client").Prisma.Prisma__ClassClient<{
209
- name: string;
406
+ export declare function findClassWithMember(classId: string, userId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
407
+ result: {
408
+ userProfile: {
409
+ profilePicture: () => {
410
+ needs: {
411
+ profilePicture: true;
412
+ };
413
+ compute(profile: {
414
+ profilePicture: string | null;
415
+ }): string | null;
416
+ };
417
+ profilePictureThumbnail: () => {
418
+ needs: {
419
+ profilePictureThumbnail: true;
420
+ };
421
+ compute(profile: {
422
+ profilePictureThumbnail: string | null;
423
+ }): string | null;
424
+ };
425
+ };
426
+ };
427
+ model: {};
428
+ query: {};
429
+ client: {};
430
+ }, {}>, "Class", "findFirst", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
431
+ section: string;
210
432
  id: string;
433
+ name: string;
211
434
  schoolId: string | null;
212
- subject: string;
213
435
  color: string | null;
214
- section: string;
436
+ subject: string;
215
437
  syllabus: string | null;
216
438
  departmentId: string | null;
217
439
  discussionsEnabled: boolean;
218
440
  studentsCanCreateDiscussions: boolean;
219
441
  studentsCanReply: boolean;
220
- } | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
221
- datasources: {
222
- db: {
223
- url: string;
442
+ } | null>;
443
+ /** @returns Class if user is a teacher or school admin. */
444
+ export declare function findClassWithTeacher(classId: string, teacherId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
445
+ result: {
446
+ userProfile: {
447
+ profilePicture: () => {
448
+ needs: {
449
+ profilePicture: true;
450
+ };
451
+ compute(profile: {
452
+ profilePicture: string | null;
453
+ }): string | null;
454
+ };
455
+ profilePictureThumbnail: () => {
456
+ needs: {
457
+ profilePictureThumbnail: true;
458
+ };
459
+ compute(profile: {
460
+ profilePictureThumbnail: string | null;
461
+ }): string | null;
462
+ };
224
463
  };
225
464
  };
226
- }>;
227
- /** @returns Class if user is a teacher or school admin. */
228
- export declare function findClassWithTeacher(classId: string, teacherId: string): import(".prisma/client").Prisma.Prisma__ClassClient<{
229
- name: string;
465
+ model: {};
466
+ query: {};
467
+ client: {};
468
+ }, {}>, "Class", "findFirst", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
469
+ section: string;
230
470
  id: string;
471
+ name: string;
231
472
  schoolId: string | null;
232
- subject: string;
233
473
  color: string | null;
234
- section: string;
474
+ subject: string;
235
475
  syllabus: string | null;
236
476
  departmentId: string | null;
237
477
  discussionsEnabled: boolean;
238
478
  studentsCanCreateDiscussions: boolean;
239
479
  studentsCanReply: boolean;
240
- } | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
241
- datasources: {
242
- db: {
243
- url: string;
244
- };
245
- };
246
- }>;
480
+ } | null>;
247
481
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"/","sources":["models/auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAuB7C,+DAA+D;AAC/D,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;GAWlD;AAED,0CAA0C;AAC1C,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;;;;;;GAYxE;AAED,2CAA2C;AAC3C,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;GAiB5C;AAED,wCAAwC;AACxC,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;GAmBtC;AAED,wCAAwC;AACxC,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;;;;;;;;;;GAeA;AAED,wBAAwB;AACxB,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;;;;;;;;;;;;;GAIA;AAED,6DAA6D;AAC7D,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,yDAU1D;AAED,2DAA2D;AAC3D,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,IAAI,+FASpB;AAED,qBAAqB;AACrB,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;GAIxC;AAED,uCAAuC;AACvC,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW;;;;;;;;;;;;;GAInE;AAED,iDAAiD;AACjD,wBAAgB,8BAA8B,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW;;;;;;;;;;;;;;;;;GAO3E;AAED,gCAAgC;AAChC,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;;;;;;;;;;;;;GAKnE;AAED,4BAA4B;AAC5B,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;;;;;;;;;;GAKlE;AAED,wBAAwB;AACxB,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM;;;;;;;GAKjD;AAED,iGAAiG;AACjG,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,MAAM,gBAqCzD;AAED,kDAAkD;AAClD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM;;KAKxD;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;GAOlE;AAED,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;GAOtE"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"/","sources":["models/auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAuB7C,+DAA+D;AAC/D,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAWlD;AAED,0CAA0C;AAC1C,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAYxE;AAED,2CAA2C;AAC3C,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAiB5C;AAED,wCAAwC;AACxC,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAmBtC;AAED,wCAAwC;AACxC,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAeA;AAED,wBAAwB;AACxB,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAIA;AAED,6DAA6D;AAC7D,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,uEAU1D;AAED,2DAA2D;AAC3D,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,IAAI,yHASpB;AAED,qBAAqB;AACrB,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAIxC;AAED,uCAAuC;AACvC,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAInE;AAED,iDAAiD;AACjD,wBAAgB,8BAA8B,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAO3E;AAED,gCAAgC;AAChC,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAKnE;AAED,4BAA4B;AAC5B,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAKlE;AAED,wBAAwB;AACxB,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM;;;;;;;GAKjD;AAED,iGAAiG;AACjG,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,MAAM,gBAqCzD;AAED,kDAAkD;AAClD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM;;KAKxD;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAOlE;AAED,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAOtE"}