@studious-lms/server 1.1.24 → 1.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/fileUpload.d.ts.map +1 -1
- package/dist/lib/fileUpload.js +68 -11
- package/dist/lib/googleCloudStorage.d.ts +7 -0
- package/dist/lib/googleCloudStorage.d.ts.map +1 -1
- package/dist/lib/googleCloudStorage.js +19 -0
- package/dist/lib/notificationHandler.d.ts +25 -0
- package/dist/lib/notificationHandler.d.ts.map +1 -0
- package/dist/lib/notificationHandler.js +28 -0
- package/dist/routers/_app.d.ts +156 -22
- package/dist/routers/_app.d.ts.map +1 -1
- package/dist/routers/announcement.d.ts.map +1 -1
- package/dist/routers/announcement.js +26 -2
- package/dist/routers/assignment.d.ts +54 -3
- package/dist/routers/assignment.d.ts.map +1 -1
- package/dist/routers/assignment.js +265 -131
- package/dist/routers/auth.js +1 -1
- package/dist/routers/file.d.ts.map +1 -1
- package/dist/routers/file.js +9 -6
- package/dist/routers/labChat.d.ts.map +1 -1
- package/dist/routers/labChat.js +13 -5
- package/dist/routers/notifications.d.ts +8 -8
- package/dist/routers/section.d.ts +16 -0
- package/dist/routers/section.d.ts.map +1 -1
- package/dist/routers/section.js +139 -30
- package/dist/seedDatabase.d.ts +2 -2
- package/dist/seedDatabase.d.ts.map +1 -1
- package/dist/seedDatabase.js +2 -1
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +27 -2
- package/package.json +2 -2
- package/src/lib/fileUpload.ts +69 -11
- package/src/lib/googleCloudStorage.ts +19 -0
- package/src/lib/notificationHandler.ts +36 -0
- package/src/routers/announcement.ts +30 -2
- package/src/routers/assignment.ts +230 -82
- package/src/routers/auth.ts +1 -1
- package/src/routers/file.ts +10 -7
- package/src/routers/labChat.ts +15 -6
- package/src/routers/section.ts +158 -36
- package/src/seedDatabase.ts +2 -1
- package/src/utils/logger.ts +29 -2
- package/tests/setup.ts +3 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileUpload.d.ts","sourceRoot":"","sources":["../../src/lib/fileUpload.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAEd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAEd;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,IAAI,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAKD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,YAAY,CAAC,CAKvB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC,CAKzB;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUlE;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"fileUpload.d.ts","sourceRoot":"","sources":["../../src/lib/fileUpload.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAEd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAEd;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,IAAI,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAKD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,YAAY,CAAC,CAKvB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC,CAKzB;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUlE;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAyF3B;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,OAAO,EACtB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CA+Df;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAiB7B"}
|
package/dist/lib/fileUpload.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { TRPCError } from "@trpc/server";
|
|
2
2
|
import { v4 as uuidv4 } from "uuid";
|
|
3
|
-
import { getSignedUrl } from "./googleCloudStorage.js";
|
|
3
|
+
import { getSignedUrl, objectExists } from "./googleCloudStorage.js";
|
|
4
4
|
import { prisma } from "./prisma.js";
|
|
5
|
+
import { logger } from "../utils/logger.js";
|
|
5
6
|
// DEPRECATED: These functions are no longer used - files are uploaded directly to GCS
|
|
6
7
|
// Use createDirectUploadFile() and createDirectUploadFiles() instead
|
|
7
8
|
/**
|
|
@@ -120,7 +121,11 @@ export async function createDirectUploadFile(file, userId, directory, assignment
|
|
|
120
121
|
};
|
|
121
122
|
}
|
|
122
123
|
catch (error) {
|
|
123
|
-
|
|
124
|
+
logger.error('Error creating direct upload file:', { error: error instanceof Error ? {
|
|
125
|
+
name: error.name,
|
|
126
|
+
message: error.message,
|
|
127
|
+
stack: error.stack,
|
|
128
|
+
} : error });
|
|
124
129
|
throw new TRPCError({
|
|
125
130
|
code: 'INTERNAL_SERVER_ERROR',
|
|
126
131
|
message: 'Failed to create direct upload file',
|
|
@@ -135,15 +140,48 @@ export async function createDirectUploadFile(file, userId, directory, assignment
|
|
|
135
140
|
*/
|
|
136
141
|
export async function confirmDirectUpload(fileId, uploadSuccess, errorMessage) {
|
|
137
142
|
try {
|
|
143
|
+
// First fetch the file record to get the object path
|
|
144
|
+
const fileRecord = await prisma.file.findUnique({
|
|
145
|
+
where: { id: fileId },
|
|
146
|
+
select: { path: true }
|
|
147
|
+
});
|
|
148
|
+
if (!fileRecord) {
|
|
149
|
+
throw new TRPCError({
|
|
150
|
+
code: 'NOT_FOUND',
|
|
151
|
+
message: 'File record not found',
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
let actualUploadSuccess = uploadSuccess;
|
|
155
|
+
let actualErrorMessage = errorMessage;
|
|
156
|
+
// If uploadSuccess is true, verify the object actually exists in GCS
|
|
157
|
+
if (uploadSuccess) {
|
|
158
|
+
try {
|
|
159
|
+
const exists = await objectExists(process.env.GOOGLE_CLOUD_BUCKET_NAME, fileRecord.path);
|
|
160
|
+
if (!exists) {
|
|
161
|
+
actualUploadSuccess = false;
|
|
162
|
+
actualErrorMessage = 'File upload reported as successful but object not found in Google Cloud Storage';
|
|
163
|
+
logger.error(`File upload verification failed for ${fileId}: object ${fileRecord.path} not found in GCS`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
logger.error(`Error verifying file existence in GCS for ${fileId}:`, { error: error instanceof Error ? {
|
|
168
|
+
name: error.name,
|
|
169
|
+
message: error.message,
|
|
170
|
+
stack: error.stack,
|
|
171
|
+
} : error });
|
|
172
|
+
actualUploadSuccess = false;
|
|
173
|
+
actualErrorMessage = 'Failed to verify file existence in Google Cloud Storage';
|
|
174
|
+
}
|
|
175
|
+
}
|
|
138
176
|
const updateData = {
|
|
139
|
-
uploadStatus:
|
|
140
|
-
uploadProgress:
|
|
177
|
+
uploadStatus: actualUploadSuccess ? 'COMPLETED' : 'FAILED',
|
|
178
|
+
uploadProgress: actualUploadSuccess ? 100 : 0,
|
|
141
179
|
};
|
|
142
|
-
if (!
|
|
143
|
-
updateData.uploadError =
|
|
180
|
+
if (!actualUploadSuccess && actualErrorMessage) {
|
|
181
|
+
updateData.uploadError = actualErrorMessage;
|
|
144
182
|
updateData.uploadRetryCount = { increment: 1 };
|
|
145
183
|
}
|
|
146
|
-
if (
|
|
184
|
+
if (actualUploadSuccess) {
|
|
147
185
|
updateData.uploadedAt = new Date();
|
|
148
186
|
}
|
|
149
187
|
await prisma.file.update({
|
|
@@ -152,7 +190,7 @@ export async function confirmDirectUpload(fileId, uploadSuccess, errorMessage) {
|
|
|
152
190
|
});
|
|
153
191
|
}
|
|
154
192
|
catch (error) {
|
|
155
|
-
|
|
193
|
+
logger.error('Error confirming direct upload:', { error });
|
|
156
194
|
throw new TRPCError({
|
|
157
195
|
code: 'INTERNAL_SERVER_ERROR',
|
|
158
196
|
message: 'Failed to confirm upload',
|
|
@@ -166,16 +204,31 @@ export async function confirmDirectUpload(fileId, uploadSuccess, errorMessage) {
|
|
|
166
204
|
*/
|
|
167
205
|
export async function updateUploadProgress(fileId, progress) {
|
|
168
206
|
try {
|
|
207
|
+
// await prisma.file.update({
|
|
208
|
+
// where: { id: fileId },
|
|
209
|
+
// data: {
|
|
210
|
+
// uploadStatus: 'UPLOADING',
|
|
211
|
+
// uploadProgress: Math.min(100, Math.max(0, progress))
|
|
212
|
+
// }
|
|
213
|
+
// });
|
|
214
|
+
const current = await prisma.file.findUnique({ where: { id: fileId }, select: { uploadStatus: true } });
|
|
215
|
+
if (!current || ['COMPLETED', 'FAILED', 'CANCELLED'].includes(current.uploadStatus))
|
|
216
|
+
return;
|
|
217
|
+
const clamped = Math.min(100, Math.max(0, progress));
|
|
169
218
|
await prisma.file.update({
|
|
170
219
|
where: { id: fileId },
|
|
171
220
|
data: {
|
|
172
221
|
uploadStatus: 'UPLOADING',
|
|
173
|
-
uploadProgress:
|
|
222
|
+
uploadProgress: clamped
|
|
174
223
|
}
|
|
175
224
|
});
|
|
176
225
|
}
|
|
177
226
|
catch (error) {
|
|
178
|
-
|
|
227
|
+
logger.error('Error updating upload progress:', { error: error instanceof Error ? {
|
|
228
|
+
name: error.name,
|
|
229
|
+
message: error.message,
|
|
230
|
+
stack: error.stack,
|
|
231
|
+
} : error });
|
|
179
232
|
throw new TRPCError({
|
|
180
233
|
code: 'INTERNAL_SERVER_ERROR',
|
|
181
234
|
message: 'Failed to update upload progress',
|
|
@@ -197,7 +250,11 @@ export async function createDirectUploadFiles(files, userId, directory, assignme
|
|
|
197
250
|
return await Promise.all(uploadPromises);
|
|
198
251
|
}
|
|
199
252
|
catch (error) {
|
|
200
|
-
|
|
253
|
+
logger.error('Error creating direct upload files:', { error: error instanceof Error ? {
|
|
254
|
+
name: error.name,
|
|
255
|
+
message: error.message,
|
|
256
|
+
stack: error.stack,
|
|
257
|
+
} : error });
|
|
201
258
|
throw new TRPCError({
|
|
202
259
|
code: 'INTERNAL_SERVER_ERROR',
|
|
203
260
|
message: 'Failed to create direct upload files',
|
|
@@ -10,4 +10,11 @@ export declare function getSignedUrl(filePath: string, action?: 'read' | 'write'
|
|
|
10
10
|
* @param filePath The path of the file to delete
|
|
11
11
|
*/
|
|
12
12
|
export declare function deleteFile(filePath: string): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Checks if an object exists in Google Cloud Storage
|
|
15
|
+
* @param bucketName The name of the bucket (unused, uses default bucket)
|
|
16
|
+
* @param objectPath The path of the object to check
|
|
17
|
+
* @returns Promise<boolean> True if the object exists, false otherwise
|
|
18
|
+
*/
|
|
19
|
+
export declare function objectExists(bucketName: string, objectPath: string): Promise<boolean>;
|
|
13
20
|
//# sourceMappingURL=googleCloudStorage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"googleCloudStorage.d.ts","sourceRoot":"","sources":["../../src/lib/googleCloudStorage.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,MAAM,wCAAwD,CAAC;AAQ5E;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,OAAgB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsB7H;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhE"}
|
|
1
|
+
{"version":3,"file":"googleCloudStorage.d.ts","sourceRoot":"","sources":["../../src/lib/googleCloudStorage.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,MAAM,wCAAwD,CAAC;AAQ5E;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,OAAgB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsB7H;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhE;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAW3F"}
|
|
@@ -57,3 +57,22 @@ export async function deleteFile(filePath) {
|
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Checks if an object exists in Google Cloud Storage
|
|
62
|
+
* @param bucketName The name of the bucket (unused, uses default bucket)
|
|
63
|
+
* @param objectPath The path of the object to check
|
|
64
|
+
* @returns Promise<boolean> True if the object exists, false otherwise
|
|
65
|
+
*/
|
|
66
|
+
export async function objectExists(bucketName, objectPath) {
|
|
67
|
+
try {
|
|
68
|
+
const [exists] = await bucket.file(objectPath).exists();
|
|
69
|
+
return exists;
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
console.error('Error checking if object exists in Google Cloud Storage:', error);
|
|
73
|
+
throw new TRPCError({
|
|
74
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
75
|
+
message: 'Failed to check object existence',
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
interface notificationData {
|
|
2
|
+
title: string;
|
|
3
|
+
content: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function sendNotification(receiver: string, data: notificationData): Promise<{
|
|
6
|
+
id: string;
|
|
7
|
+
title: string;
|
|
8
|
+
content: string;
|
|
9
|
+
createdAt: Date;
|
|
10
|
+
senderId: string | null;
|
|
11
|
+
receiverId: string;
|
|
12
|
+
read: boolean;
|
|
13
|
+
}>;
|
|
14
|
+
export declare function sendNotifications(receiverIds: Array<string>, data: notificationData): Promise<import(".prisma/client").Prisma.BatchPayload>;
|
|
15
|
+
export declare function markRead(id: string, read?: boolean): Promise<{
|
|
16
|
+
id: string;
|
|
17
|
+
title: string;
|
|
18
|
+
content: string;
|
|
19
|
+
createdAt: Date;
|
|
20
|
+
senderId: string | null;
|
|
21
|
+
receiverId: string;
|
|
22
|
+
read: boolean;
|
|
23
|
+
}>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=notificationHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notificationHandler.d.ts","sourceRoot":"","sources":["../../src/lib/notificationHandler.ts"],"names":[],"mappings":"AAEA,UAAU,gBAAgB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB;;;;;;;;GAS9E;AAED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,gBAAgB,yDASzF;AAED,wBAAsB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE,OAAc;;;;;;;;GAM9D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { prisma } from "./prisma.js";
|
|
2
|
+
export async function sendNotification(receiver, data) {
|
|
3
|
+
const notification = await prisma.notification.create({
|
|
4
|
+
data: {
|
|
5
|
+
receiverId: receiver,
|
|
6
|
+
title: data.title,
|
|
7
|
+
content: data.content,
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
return notification;
|
|
11
|
+
}
|
|
12
|
+
export async function sendNotifications(receiverIds, data) {
|
|
13
|
+
const notifications = await prisma.notification.createMany({
|
|
14
|
+
data: receiverIds.map(receiverId => ({
|
|
15
|
+
receiverId: receiverId,
|
|
16
|
+
title: data.title,
|
|
17
|
+
content: data.content,
|
|
18
|
+
})),
|
|
19
|
+
});
|
|
20
|
+
return notifications;
|
|
21
|
+
}
|
|
22
|
+
export async function markRead(id, read = true) {
|
|
23
|
+
const notification = await prisma.notification.update({
|
|
24
|
+
where: { id },
|
|
25
|
+
data: { read: read },
|
|
26
|
+
});
|
|
27
|
+
return notification;
|
|
28
|
+
}
|
package/dist/routers/_app.d.ts
CHANGED
|
@@ -869,6 +869,37 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
869
869
|
};
|
|
870
870
|
transformer: false;
|
|
871
871
|
}, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
|
|
872
|
+
reorder: import("@trpc/server").TRPCMutationProcedure<{
|
|
873
|
+
input: {
|
|
874
|
+
[x: string]: unknown;
|
|
875
|
+
classId: string;
|
|
876
|
+
movedId: string;
|
|
877
|
+
position: "start" | "end" | "before" | "after";
|
|
878
|
+
targetId?: string | undefined;
|
|
879
|
+
};
|
|
880
|
+
output: {
|
|
881
|
+
type: import(".prisma/client").$Enums.AssignmentType;
|
|
882
|
+
id: string;
|
|
883
|
+
title: string;
|
|
884
|
+
dueDate: Date;
|
|
885
|
+
maxGrade: number | null;
|
|
886
|
+
classId: string;
|
|
887
|
+
eventId: string | null;
|
|
888
|
+
markSchemeId: string | null;
|
|
889
|
+
gradingBoundaryId: string | null;
|
|
890
|
+
instructions: string;
|
|
891
|
+
weight: number;
|
|
892
|
+
graded: boolean;
|
|
893
|
+
sectionId: string | null;
|
|
894
|
+
template: boolean;
|
|
895
|
+
createdAt: Date | null;
|
|
896
|
+
modifiedAt: Date | null;
|
|
897
|
+
teacherId: string;
|
|
898
|
+
inProgress: boolean;
|
|
899
|
+
order: number | null;
|
|
900
|
+
} | null;
|
|
901
|
+
meta: object;
|
|
902
|
+
}>;
|
|
872
903
|
order: import("@trpc/server").TRPCMutationProcedure<{
|
|
873
904
|
input: {
|
|
874
905
|
[x: string]: unknown;
|
|
@@ -896,7 +927,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
896
927
|
teacherId: string;
|
|
897
928
|
inProgress: boolean;
|
|
898
929
|
order: number | null;
|
|
899
|
-
};
|
|
930
|
+
} | null;
|
|
900
931
|
meta: object;
|
|
901
932
|
}>;
|
|
902
933
|
move: import("@trpc/server").TRPCMutationProcedure<{
|
|
@@ -904,7 +935,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
904
935
|
[x: string]: unknown;
|
|
905
936
|
classId: string;
|
|
906
937
|
id: string;
|
|
907
|
-
targetSectionId
|
|
938
|
+
targetSectionId?: string | null | undefined;
|
|
908
939
|
};
|
|
909
940
|
output: {
|
|
910
941
|
type: import(".prisma/client").$Enums.AssignmentType;
|
|
@@ -926,7 +957,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
926
957
|
teacherId: string;
|
|
927
958
|
inProgress: boolean;
|
|
928
959
|
order: number | null;
|
|
929
|
-
};
|
|
960
|
+
} | null;
|
|
930
961
|
meta: object;
|
|
931
962
|
}>;
|
|
932
963
|
create: import("@trpc/server").TRPCMutationProcedure<{
|
|
@@ -1326,6 +1357,18 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1326
1357
|
student: {
|
|
1327
1358
|
id: string;
|
|
1328
1359
|
username: string;
|
|
1360
|
+
profile: {
|
|
1361
|
+
id: string;
|
|
1362
|
+
location: string | null;
|
|
1363
|
+
userId: string;
|
|
1364
|
+
createdAt: Date;
|
|
1365
|
+
displayName: string | null;
|
|
1366
|
+
bio: string | null;
|
|
1367
|
+
website: string | null;
|
|
1368
|
+
profilePicture: string | null;
|
|
1369
|
+
profilePictureThumbnail: string | null;
|
|
1370
|
+
updatedAt: Date;
|
|
1371
|
+
} | null;
|
|
1329
1372
|
};
|
|
1330
1373
|
attachments: {
|
|
1331
1374
|
path: string;
|
|
@@ -1446,8 +1489,16 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1446
1489
|
id: string;
|
|
1447
1490
|
username: string;
|
|
1448
1491
|
profile: {
|
|
1492
|
+
id: string;
|
|
1493
|
+
location: string | null;
|
|
1494
|
+
userId: string;
|
|
1495
|
+
createdAt: Date;
|
|
1449
1496
|
displayName: string | null;
|
|
1497
|
+
bio: string | null;
|
|
1498
|
+
website: string | null;
|
|
1450
1499
|
profilePicture: string | null;
|
|
1500
|
+
profilePictureThumbnail: string | null;
|
|
1501
|
+
updatedAt: Date;
|
|
1451
1502
|
} | null;
|
|
1452
1503
|
};
|
|
1453
1504
|
attachments: {
|
|
@@ -2572,6 +2623,22 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
2572
2623
|
};
|
|
2573
2624
|
meta: object;
|
|
2574
2625
|
}>;
|
|
2626
|
+
reorder: import("@trpc/server").TRPCMutationProcedure<{
|
|
2627
|
+
input: {
|
|
2628
|
+
classId: string;
|
|
2629
|
+
movedId: string;
|
|
2630
|
+
position: "start" | "end" | "before" | "after";
|
|
2631
|
+
targetId?: string | undefined;
|
|
2632
|
+
};
|
|
2633
|
+
output: {
|
|
2634
|
+
id: string;
|
|
2635
|
+
name: string;
|
|
2636
|
+
color: string | null;
|
|
2637
|
+
classId: string;
|
|
2638
|
+
order: number | null;
|
|
2639
|
+
} | null;
|
|
2640
|
+
meta: object;
|
|
2641
|
+
}>;
|
|
2575
2642
|
update: import("@trpc/server").TRPCMutationProcedure<{
|
|
2576
2643
|
input: {
|
|
2577
2644
|
id: string;
|
|
@@ -3655,9 +3722,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
3655
3722
|
title: string;
|
|
3656
3723
|
content: string;
|
|
3657
3724
|
createdAt: Date;
|
|
3658
|
-
read: boolean;
|
|
3659
|
-
receiverId: string;
|
|
3660
3725
|
senderId: string | null;
|
|
3726
|
+
receiverId: string;
|
|
3727
|
+
read: boolean;
|
|
3661
3728
|
})[];
|
|
3662
3729
|
meta: object;
|
|
3663
3730
|
}>;
|
|
@@ -3677,9 +3744,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
3677
3744
|
title: string;
|
|
3678
3745
|
content: string;
|
|
3679
3746
|
createdAt: Date;
|
|
3680
|
-
read: boolean;
|
|
3681
|
-
receiverId: string;
|
|
3682
3747
|
senderId: string | null;
|
|
3748
|
+
receiverId: string;
|
|
3749
|
+
read: boolean;
|
|
3683
3750
|
}) | null;
|
|
3684
3751
|
meta: object;
|
|
3685
3752
|
}>;
|
|
@@ -3694,9 +3761,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
3694
3761
|
title: string;
|
|
3695
3762
|
content: string;
|
|
3696
3763
|
createdAt: Date;
|
|
3697
|
-
read: boolean;
|
|
3698
|
-
receiverId: string;
|
|
3699
3764
|
senderId: string | null;
|
|
3765
|
+
receiverId: string;
|
|
3766
|
+
read: boolean;
|
|
3700
3767
|
};
|
|
3701
3768
|
meta: object;
|
|
3702
3769
|
}>;
|
|
@@ -3718,9 +3785,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
3718
3785
|
title: string;
|
|
3719
3786
|
content: string;
|
|
3720
3787
|
createdAt: Date;
|
|
3721
|
-
read: boolean;
|
|
3722
|
-
receiverId: string;
|
|
3723
3788
|
senderId: string | null;
|
|
3789
|
+
receiverId: string;
|
|
3790
|
+
read: boolean;
|
|
3724
3791
|
};
|
|
3725
3792
|
meta: object;
|
|
3726
3793
|
}>;
|
|
@@ -5162,6 +5229,37 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
5162
5229
|
};
|
|
5163
5230
|
transformer: false;
|
|
5164
5231
|
}, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
|
|
5232
|
+
reorder: import("@trpc/server").TRPCMutationProcedure<{
|
|
5233
|
+
input: {
|
|
5234
|
+
[x: string]: unknown;
|
|
5235
|
+
classId: string;
|
|
5236
|
+
movedId: string;
|
|
5237
|
+
position: "start" | "end" | "before" | "after";
|
|
5238
|
+
targetId?: string | undefined;
|
|
5239
|
+
};
|
|
5240
|
+
output: {
|
|
5241
|
+
type: import(".prisma/client").$Enums.AssignmentType;
|
|
5242
|
+
id: string;
|
|
5243
|
+
title: string;
|
|
5244
|
+
dueDate: Date;
|
|
5245
|
+
maxGrade: number | null;
|
|
5246
|
+
classId: string;
|
|
5247
|
+
eventId: string | null;
|
|
5248
|
+
markSchemeId: string | null;
|
|
5249
|
+
gradingBoundaryId: string | null;
|
|
5250
|
+
instructions: string;
|
|
5251
|
+
weight: number;
|
|
5252
|
+
graded: boolean;
|
|
5253
|
+
sectionId: string | null;
|
|
5254
|
+
template: boolean;
|
|
5255
|
+
createdAt: Date | null;
|
|
5256
|
+
modifiedAt: Date | null;
|
|
5257
|
+
teacherId: string;
|
|
5258
|
+
inProgress: boolean;
|
|
5259
|
+
order: number | null;
|
|
5260
|
+
} | null;
|
|
5261
|
+
meta: object;
|
|
5262
|
+
}>;
|
|
5165
5263
|
order: import("@trpc/server").TRPCMutationProcedure<{
|
|
5166
5264
|
input: {
|
|
5167
5265
|
[x: string]: unknown;
|
|
@@ -5189,7 +5287,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
5189
5287
|
teacherId: string;
|
|
5190
5288
|
inProgress: boolean;
|
|
5191
5289
|
order: number | null;
|
|
5192
|
-
};
|
|
5290
|
+
} | null;
|
|
5193
5291
|
meta: object;
|
|
5194
5292
|
}>;
|
|
5195
5293
|
move: import("@trpc/server").TRPCMutationProcedure<{
|
|
@@ -5197,7 +5295,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
5197
5295
|
[x: string]: unknown;
|
|
5198
5296
|
classId: string;
|
|
5199
5297
|
id: string;
|
|
5200
|
-
targetSectionId
|
|
5298
|
+
targetSectionId?: string | null | undefined;
|
|
5201
5299
|
};
|
|
5202
5300
|
output: {
|
|
5203
5301
|
type: import(".prisma/client").$Enums.AssignmentType;
|
|
@@ -5219,7 +5317,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
5219
5317
|
teacherId: string;
|
|
5220
5318
|
inProgress: boolean;
|
|
5221
5319
|
order: number | null;
|
|
5222
|
-
};
|
|
5320
|
+
} | null;
|
|
5223
5321
|
meta: object;
|
|
5224
5322
|
}>;
|
|
5225
5323
|
create: import("@trpc/server").TRPCMutationProcedure<{
|
|
@@ -5619,6 +5717,18 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
5619
5717
|
student: {
|
|
5620
5718
|
id: string;
|
|
5621
5719
|
username: string;
|
|
5720
|
+
profile: {
|
|
5721
|
+
id: string;
|
|
5722
|
+
location: string | null;
|
|
5723
|
+
userId: string;
|
|
5724
|
+
createdAt: Date;
|
|
5725
|
+
displayName: string | null;
|
|
5726
|
+
bio: string | null;
|
|
5727
|
+
website: string | null;
|
|
5728
|
+
profilePicture: string | null;
|
|
5729
|
+
profilePictureThumbnail: string | null;
|
|
5730
|
+
updatedAt: Date;
|
|
5731
|
+
} | null;
|
|
5622
5732
|
};
|
|
5623
5733
|
attachments: {
|
|
5624
5734
|
path: string;
|
|
@@ -5739,8 +5849,16 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
5739
5849
|
id: string;
|
|
5740
5850
|
username: string;
|
|
5741
5851
|
profile: {
|
|
5852
|
+
id: string;
|
|
5853
|
+
location: string | null;
|
|
5854
|
+
userId: string;
|
|
5855
|
+
createdAt: Date;
|
|
5742
5856
|
displayName: string | null;
|
|
5857
|
+
bio: string | null;
|
|
5858
|
+
website: string | null;
|
|
5743
5859
|
profilePicture: string | null;
|
|
5860
|
+
profilePictureThumbnail: string | null;
|
|
5861
|
+
updatedAt: Date;
|
|
5744
5862
|
} | null;
|
|
5745
5863
|
};
|
|
5746
5864
|
attachments: {
|
|
@@ -6865,6 +6983,22 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
6865
6983
|
};
|
|
6866
6984
|
meta: object;
|
|
6867
6985
|
}>;
|
|
6986
|
+
reorder: import("@trpc/server").TRPCMutationProcedure<{
|
|
6987
|
+
input: {
|
|
6988
|
+
classId: string;
|
|
6989
|
+
movedId: string;
|
|
6990
|
+
position: "start" | "end" | "before" | "after";
|
|
6991
|
+
targetId?: string | undefined;
|
|
6992
|
+
};
|
|
6993
|
+
output: {
|
|
6994
|
+
id: string;
|
|
6995
|
+
name: string;
|
|
6996
|
+
color: string | null;
|
|
6997
|
+
classId: string;
|
|
6998
|
+
order: number | null;
|
|
6999
|
+
} | null;
|
|
7000
|
+
meta: object;
|
|
7001
|
+
}>;
|
|
6868
7002
|
update: import("@trpc/server").TRPCMutationProcedure<{
|
|
6869
7003
|
input: {
|
|
6870
7004
|
id: string;
|
|
@@ -7948,9 +8082,9 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
7948
8082
|
title: string;
|
|
7949
8083
|
content: string;
|
|
7950
8084
|
createdAt: Date;
|
|
7951
|
-
read: boolean;
|
|
7952
|
-
receiverId: string;
|
|
7953
8085
|
senderId: string | null;
|
|
8086
|
+
receiverId: string;
|
|
8087
|
+
read: boolean;
|
|
7954
8088
|
})[];
|
|
7955
8089
|
meta: object;
|
|
7956
8090
|
}>;
|
|
@@ -7970,9 +8104,9 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
7970
8104
|
title: string;
|
|
7971
8105
|
content: string;
|
|
7972
8106
|
createdAt: Date;
|
|
7973
|
-
read: boolean;
|
|
7974
|
-
receiverId: string;
|
|
7975
8107
|
senderId: string | null;
|
|
8108
|
+
receiverId: string;
|
|
8109
|
+
read: boolean;
|
|
7976
8110
|
}) | null;
|
|
7977
8111
|
meta: object;
|
|
7978
8112
|
}>;
|
|
@@ -7987,9 +8121,9 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
7987
8121
|
title: string;
|
|
7988
8122
|
content: string;
|
|
7989
8123
|
createdAt: Date;
|
|
7990
|
-
read: boolean;
|
|
7991
|
-
receiverId: string;
|
|
7992
8124
|
senderId: string | null;
|
|
8125
|
+
receiverId: string;
|
|
8126
|
+
read: boolean;
|
|
7993
8127
|
};
|
|
7994
8128
|
meta: object;
|
|
7995
8129
|
}>;
|
|
@@ -8011,9 +8145,9 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
|
|
|
8011
8145
|
title: string;
|
|
8012
8146
|
content: string;
|
|
8013
8147
|
createdAt: Date;
|
|
8014
|
-
read: boolean;
|
|
8015
|
-
receiverId: string;
|
|
8016
8148
|
senderId: string | null;
|
|
8149
|
+
receiverId: string;
|
|
8150
|
+
read: boolean;
|
|
8017
8151
|
};
|
|
8018
8152
|
meta: object;
|
|
8019
8153
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_app.d.ts","sourceRoot":"","sources":["../../src/routers/_app.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAc1E,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"_app.d.ts","sourceRoot":"","sources":["../../src/routers/_app.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAc1E,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiBpB,CAAC;AAGH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AACzC,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAG1D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAiC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announcement.d.ts","sourceRoot":"","sources":["../../src/routers/announcement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"announcement.d.ts","sourceRoot":"","sources":["../../src/routers/announcement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8I7B,CAAC"}
|