@studious-lms/server 1.0.6 → 1.0.8

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 (115) hide show
  1. package/API_SPECIFICATION.md +1461 -0
  2. package/dist/exportType.d.ts +3 -3
  3. package/dist/exportType.d.ts.map +1 -1
  4. package/dist/exportType.js +1 -2
  5. package/dist/index.js +25 -30
  6. package/dist/lib/fileUpload.d.ts.map +1 -1
  7. package/dist/lib/fileUpload.js +31 -29
  8. package/dist/lib/googleCloudStorage.js +9 -14
  9. package/dist/lib/prisma.js +4 -7
  10. package/dist/lib/thumbnailGenerator.js +12 -20
  11. package/dist/middleware/auth.d.ts.map +1 -1
  12. package/dist/middleware/auth.js +17 -22
  13. package/dist/middleware/logging.js +5 -9
  14. package/dist/routers/_app.d.ts +3619 -1937
  15. package/dist/routers/_app.d.ts.map +1 -1
  16. package/dist/routers/_app.js +28 -27
  17. package/dist/routers/agenda.d.ts +14 -9
  18. package/dist/routers/agenda.d.ts.map +1 -1
  19. package/dist/routers/agenda.js +14 -17
  20. package/dist/routers/announcement.d.ts +5 -4
  21. package/dist/routers/announcement.d.ts.map +1 -1
  22. package/dist/routers/announcement.js +28 -31
  23. package/dist/routers/assignment.d.ts +283 -197
  24. package/dist/routers/assignment.d.ts.map +1 -1
  25. package/dist/routers/assignment.js +256 -202
  26. package/dist/routers/attendance.d.ts +6 -5
  27. package/dist/routers/attendance.d.ts.map +1 -1
  28. package/dist/routers/attendance.js +31 -34
  29. package/dist/routers/auth.d.ts +2 -1
  30. package/dist/routers/auth.d.ts.map +1 -1
  31. package/dist/routers/auth.js +80 -75
  32. package/dist/routers/class.d.ts +285 -15
  33. package/dist/routers/class.d.ts.map +1 -1
  34. package/dist/routers/class.js +440 -164
  35. package/dist/routers/event.d.ts +48 -39
  36. package/dist/routers/event.d.ts.map +1 -1
  37. package/dist/routers/event.js +76 -79
  38. package/dist/routers/file.d.ts +72 -2
  39. package/dist/routers/file.d.ts.map +1 -1
  40. package/dist/routers/file.js +260 -32
  41. package/dist/routers/folder.d.ts +296 -0
  42. package/dist/routers/folder.d.ts.map +1 -0
  43. package/dist/routers/folder.js +693 -0
  44. package/dist/routers/notifications.d.ts +103 -0
  45. package/dist/routers/notifications.d.ts.map +1 -0
  46. package/dist/routers/notifications.js +91 -0
  47. package/dist/routers/school.d.ts +208 -0
  48. package/dist/routers/school.d.ts.map +1 -0
  49. package/dist/routers/school.js +481 -0
  50. package/dist/routers/section.d.ts +2 -1
  51. package/dist/routers/section.d.ts.map +1 -1
  52. package/dist/routers/section.js +30 -33
  53. package/dist/routers/user.d.ts +3 -2
  54. package/dist/routers/user.d.ts.map +1 -1
  55. package/dist/routers/user.js +21 -24
  56. package/dist/seedDatabase.d.ts +22 -0
  57. package/dist/seedDatabase.d.ts.map +1 -0
  58. package/dist/seedDatabase.js +75 -0
  59. package/dist/socket/handlers.js +26 -30
  60. package/dist/trpc.d.ts +5 -0
  61. package/dist/trpc.d.ts.map +1 -1
  62. package/dist/trpc.js +35 -26
  63. package/dist/types/trpc.d.ts +1 -1
  64. package/dist/types/trpc.d.ts.map +1 -1
  65. package/dist/types/trpc.js +1 -2
  66. package/dist/utils/email.js +2 -8
  67. package/dist/utils/generateInviteCode.js +1 -5
  68. package/dist/utils/logger.d.ts.map +1 -1
  69. package/dist/utils/logger.js +13 -9
  70. package/dist/utils/prismaErrorHandler.d.ts +9 -0
  71. package/dist/utils/prismaErrorHandler.d.ts.map +1 -0
  72. package/dist/utils/prismaErrorHandler.js +234 -0
  73. package/dist/utils/prismaWrapper.d.ts +14 -0
  74. package/dist/utils/prismaWrapper.d.ts.map +1 -0
  75. package/dist/utils/prismaWrapper.js +64 -0
  76. package/package.json +12 -4
  77. package/prisma/migrations/20250807062924_init/migration.sql +436 -0
  78. package/prisma/migrations/migration_lock.toml +3 -0
  79. package/prisma/schema.prisma +68 -1
  80. package/src/exportType.ts +3 -3
  81. package/src/index.ts +6 -6
  82. package/src/lib/fileUpload.ts +19 -10
  83. package/src/lib/thumbnailGenerator.ts +2 -2
  84. package/src/middleware/auth.ts +2 -4
  85. package/src/middleware/logging.ts +2 -2
  86. package/src/routers/_app.ts +17 -13
  87. package/src/routers/agenda.ts +2 -2
  88. package/src/routers/announcement.ts +2 -2
  89. package/src/routers/assignment.ts +86 -26
  90. package/src/routers/attendance.ts +2 -2
  91. package/src/routers/auth.ts +83 -57
  92. package/src/routers/class.ts +339 -39
  93. package/src/routers/event.ts +2 -2
  94. package/src/routers/file.ts +276 -21
  95. package/src/routers/folder.ts +755 -0
  96. package/src/routers/notifications.ts +93 -0
  97. package/src/routers/section.ts +2 -2
  98. package/src/routers/user.ts +3 -3
  99. package/src/seedDatabase.ts +88 -0
  100. package/src/socket/handlers.ts +5 -5
  101. package/src/trpc.ts +17 -4
  102. package/src/types/trpc.ts +1 -1
  103. package/src/utils/logger.ts +14 -4
  104. package/src/utils/prismaErrorHandler.ts +275 -0
  105. package/src/utils/prismaWrapper.ts +91 -0
  106. package/tests/auth.test.ts +25 -0
  107. package/tests/class.test.ts +281 -0
  108. package/tests/setup.ts +98 -0
  109. package/tests/startup.test.ts +5 -0
  110. package/tsconfig.json +2 -1
  111. package/vitest.config.ts +11 -0
  112. package/dist/logger.d.ts +0 -26
  113. package/dist/logger.d.ts.map +0 -1
  114. package/dist/logger.js +0 -135
  115. package/src/logger.ts +0 -163
@@ -0,0 +1,296 @@
1
+ import { z } from "zod";
2
+ export declare const folderRouter: import("@trpc/server").TRPCBuiltRouter<{
3
+ ctx: import("../trpc.js").Context;
4
+ meta: object;
5
+ errorShape: {
6
+ data: {
7
+ zodError: z.typeToFlattenedError<any, string> | null;
8
+ prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
9
+ code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
10
+ httpStatus: number;
11
+ path?: string;
12
+ stack?: string;
13
+ };
14
+ message: string;
15
+ code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
16
+ };
17
+ transformer: false;
18
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
19
+ create: import("@trpc/server").TRPCMutationProcedure<{
20
+ input: {
21
+ [x: string]: unknown;
22
+ classId: string;
23
+ name: string;
24
+ parentFolderId?: string | undefined;
25
+ };
26
+ output: {
27
+ files: {
28
+ type: string;
29
+ user: {
30
+ id: string;
31
+ username: string;
32
+ } | null;
33
+ id: string;
34
+ name: string;
35
+ size: number | null;
36
+ uploadedAt: Date | null;
37
+ }[];
38
+ childFolders: {
39
+ id: string;
40
+ _count: {
41
+ files: number;
42
+ childFolders: number;
43
+ };
44
+ name: string;
45
+ }[];
46
+ } & {
47
+ id: string;
48
+ name: string;
49
+ classId: string | null;
50
+ parentFolderId: string | null;
51
+ };
52
+ meta: object;
53
+ }>;
54
+ get: import("@trpc/server").TRPCQueryProcedure<{
55
+ input: {
56
+ [x: string]: unknown;
57
+ classId: string;
58
+ folderId: string;
59
+ };
60
+ output: {
61
+ files: {
62
+ type: string;
63
+ user: {
64
+ id: string;
65
+ username: string;
66
+ } | null;
67
+ id: string;
68
+ name: string;
69
+ size: number | null;
70
+ uploadedAt: Date | null;
71
+ }[];
72
+ childFolders: {
73
+ id: string;
74
+ _count: {
75
+ files: number;
76
+ childFolders: number;
77
+ };
78
+ name: string;
79
+ }[];
80
+ parentFolder: {
81
+ id: string;
82
+ name: string;
83
+ } | null;
84
+ } & {
85
+ id: string;
86
+ name: string;
87
+ classId: string | null;
88
+ parentFolderId: string | null;
89
+ };
90
+ meta: object;
91
+ }>;
92
+ getChildFolders: import("@trpc/server").TRPCQueryProcedure<{
93
+ input: {
94
+ [x: string]: unknown;
95
+ classId: string;
96
+ };
97
+ output: ({
98
+ files: {
99
+ type: string;
100
+ user: {
101
+ id: string;
102
+ username: string;
103
+ } | null;
104
+ id: string;
105
+ name: string;
106
+ size: number | null;
107
+ uploadedAt: Date | null;
108
+ }[];
109
+ childFolders: {
110
+ id: string;
111
+ _count: {
112
+ files: number;
113
+ childFolders: number;
114
+ };
115
+ name: string;
116
+ }[];
117
+ } & {
118
+ id: string;
119
+ name: string;
120
+ classId: string | null;
121
+ parentFolderId: string | null;
122
+ })[];
123
+ meta: object;
124
+ }>;
125
+ getFolderChildren: import("@trpc/server").TRPCQueryProcedure<{
126
+ input: {
127
+ [x: string]: unknown;
128
+ classId: string;
129
+ folderId: string;
130
+ };
131
+ output: ({
132
+ files: {
133
+ type: string;
134
+ user: {
135
+ id: string;
136
+ username: string;
137
+ } | null;
138
+ id: string;
139
+ name: string;
140
+ size: number | null;
141
+ uploadedAt: Date | null;
142
+ }[];
143
+ childFolders: {
144
+ id: string;
145
+ _count: {
146
+ files: number;
147
+ childFolders: number;
148
+ };
149
+ name: string;
150
+ }[];
151
+ } & {
152
+ id: string;
153
+ name: string;
154
+ classId: string | null;
155
+ parentFolderId: string | null;
156
+ })[];
157
+ meta: object;
158
+ }>;
159
+ getRootFolder: import("@trpc/server").TRPCQueryProcedure<{
160
+ input: {
161
+ [x: string]: unknown;
162
+ classId: string;
163
+ };
164
+ output: ({
165
+ files: {
166
+ type: string;
167
+ user: {
168
+ id: string;
169
+ username: string;
170
+ } | null;
171
+ id: string;
172
+ name: string;
173
+ size: number | null;
174
+ uploadedAt: Date | null;
175
+ }[];
176
+ childFolders: {
177
+ id: string;
178
+ files: {
179
+ id: string;
180
+ }[];
181
+ name: string;
182
+ childFolders: {
183
+ id: string;
184
+ }[];
185
+ }[];
186
+ } & {
187
+ id: string;
188
+ name: string;
189
+ classId: string | null;
190
+ parentFolderId: string | null;
191
+ }) | null;
192
+ meta: object;
193
+ }>;
194
+ uploadFiles: import("@trpc/server").TRPCMutationProcedure<{
195
+ input: {
196
+ [x: string]: unknown;
197
+ classId: string;
198
+ files: {
199
+ type: string;
200
+ name: string;
201
+ size: number;
202
+ data: string;
203
+ }[];
204
+ folderId: string;
205
+ };
206
+ output: {
207
+ success: boolean;
208
+ uploadedCount: number;
209
+ };
210
+ meta: object;
211
+ }>;
212
+ delete: import("@trpc/server").TRPCMutationProcedure<{
213
+ input: {
214
+ [x: string]: unknown;
215
+ classId: string;
216
+ folderId: string;
217
+ };
218
+ output: {
219
+ success: boolean;
220
+ deletedFiles: number;
221
+ deletedFolders: number;
222
+ };
223
+ meta: object;
224
+ }>;
225
+ move: import("@trpc/server").TRPCMutationProcedure<{
226
+ input: {
227
+ [x: string]: unknown;
228
+ classId: string;
229
+ folderId: string;
230
+ targetParentFolderId: string;
231
+ };
232
+ output: {
233
+ files: {
234
+ type: string;
235
+ user: {
236
+ id: string;
237
+ username: string;
238
+ } | null;
239
+ id: string;
240
+ name: string;
241
+ size: number | null;
242
+ uploadedAt: Date | null;
243
+ }[];
244
+ childFolders: {
245
+ id: string;
246
+ _count: {
247
+ files: number;
248
+ childFolders: number;
249
+ };
250
+ name: string;
251
+ }[];
252
+ } & {
253
+ id: string;
254
+ name: string;
255
+ classId: string | null;
256
+ parentFolderId: string | null;
257
+ };
258
+ meta: object;
259
+ }>;
260
+ rename: import("@trpc/server").TRPCMutationProcedure<{
261
+ input: {
262
+ [x: string]: unknown;
263
+ classId: string;
264
+ folderId: string;
265
+ newName: string;
266
+ };
267
+ output: {
268
+ files: {
269
+ type: string;
270
+ user: {
271
+ id: string;
272
+ username: string;
273
+ } | null;
274
+ id: string;
275
+ name: string;
276
+ size: number | null;
277
+ uploadedAt: Date | null;
278
+ }[];
279
+ childFolders: {
280
+ id: string;
281
+ _count: {
282
+ files: number;
283
+ childFolders: number;
284
+ };
285
+ name: string;
286
+ }[];
287
+ } & {
288
+ id: string;
289
+ name: string;
290
+ classId: string | null;
291
+ parentFolderId: string | null;
292
+ };
293
+ meta: object;
294
+ }>;
295
+ }>>;
296
+ //# sourceMappingURL=folder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folder.d.ts","sourceRoot":"","sources":["../../src/routers/folder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA2BxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAutBvB,CAAC"}