@oaknational/google-classroom-addon 1.30.0 → 1.32.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.
- package/dist/cjs/services/index.js +4 -4
- package/dist/cjs/services/index.js.map +1 -1
- package/dist/cjs/types/index.js +1 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/esm/services/index.js +4 -4
- package/dist/esm/services/index.js.map +1 -1
- package/dist/esm/types/index.js +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/services.d.ts +261 -14
- package/dist/types.d.ts +206 -27
- package/package.json +1 -1
package/dist/esm/types/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import n from"zod";var t,i=n.object({courseId:n.string(),itemId:n.string(),addOnToken:n.string(),title:n.string(),lessonSlug:n.string(),programmeSlug:n.string(),unitSlug:n.string(),maxPoints:n.number().optional(),teacherLoginHint:n.string().optional()}),e=n.object({courseId:n.string(),postId:n.string(),id:n.string(),title:n.string(),teacherViewUri:n.object({uri:n.string()}),studentViewUri:n.object({uri:n.string()}),studentWorkReviewUri:n.object({uri:n.string()}).optional(),itemId:n.string(),maxPoints:n.number().nullish()}),o=n.object({title:n.string(),description:n.string().optional(),lessonUrl:n.string(),maxPoints:n.number().int().positive()}),r=n.object({courseWorkId:n.string(),courseId:n.string(),alternateLink:n.string().optional(),title:n.string()}),s=n.object({id:n.string(),name:n.string(),section:n.string().optional()}),g=n.string(),a=n.object({accessToken:n.string(),loginHint:n.string(),refreshToken:n.string().optional(),profilePictureUrl:n.string().optional(),email:n.string().optional()}),l=n.object({token:n.string()}),u=n.tuple([i,n.string().min(1),n.string().min(1)]),d=e.extend({attachmentId:n.string(),createdAt:n.string(),teacherLoginHint:n.string().optional()}),c=n.object({loginHint:n.string(),refreshToken:n.string().optional(),profilePictureUrl:n.string().optional()}),p=n.object({assignmentToken:n.string(),courseWorkId:n.string(),courseId:n.string(),teacherLoginHint:n.string(),lessonSlug:n.string(),programmeSlug:n.string(),unitSlug:n.string(),maxPoints:n.number().int().positive(),createdAt:n.string()}),m=n.enum(["correct","incorrect"]),b=n.union([n.string(),n.number(),n.array(n.union([n.string(),n.number()]).nullable()),n.null()]),I=n.object({mode:n.enum(["init","incomplete","input","grading","feedback"]),grade:n.number(),pupilAnswer:b.optional().nullable(),feedback:n.union([m,n.array(m)]).optional(),isPartiallyCorrect:n.boolean().optional(),correctAnswer:n.union([n.string(),n.array(n.union([n.string(),n.undefined()]))]).optional(),usedHint:n.boolean().optional()}),E=n.object({grade:n.number().int().min(0),numQuestions:n.number().int().positive(),isComplete:n.boolean(),questionResults:n.array(I).optional()}),T=n.object({played:n.boolean(),duration:n.number(),timeElapsed:n.number(),isComplete:n.boolean()}),S=n.object({worksheetAvailable:n.boolean().optional(),worksheetDownloaded:n.boolean().optional(),isComplete:n.boolean()});!function(n){n.SUBMISSION_STATE_UNSPECIFIED="SUBMISSION_STATE_UNSPECIFIED",n.NEW="NEW",n.CREATED="CREATED",n.RECLAIMED_BY_STUDENT="RECLAIMED_BY_STUDENT",n.TURNED_IN="TURNED_IN",n.RETURNED="RETURNED"}(t||(t={}));var k=n.enum(t),j=[t.NEW,t.CREATED,t.RECLAIMED_BY_STUDENT],U=n.object({starterQuiz:E.optional(),exitQuiz:E.optional(),video:T.optional(),intro:S.optional()}),D=U.extend({updatedAt:n.string(),createdAt:n.string()}),N=D.extend({postSubmissionState:k,submissionId:n.string(),attachmentId:n.string(),courseId:n.string(),itemId:n.string(),pupilLoginHint:n.string()}),A=U.extend({submissionId:n.string(),attachmentId:n.string(),courseId:n.string(),itemId:n.string(),pupilLoginHint:n.string()}),R=D.extend({submissionId:n.string(),assignmentToken:n.string(),courseWorkId:n.string(),courseId:n.string(),pupilLoginHint:n.string(),gradeSubmitted:n.boolean().optional()}),h=U.extend({submissionId:n.string(),assignmentToken:n.string(),courseWorkId:n.string(),courseId:n.string(),pupilLoginHint:n.string()});export{u as CreateAttachmentCallSchema,t as PostSubmissionState,j as UPDATABLE_SUBMISSION_STATES,d as classroomAttachmentEntitySchema,e as classroomAttachmentSchema,p as classroomCourseWorkEntitySchema,g as codeSchema,s as courseListItemSchema,r as courseWorkCreatedResultSchema,R as courseWorkPupilProgressSchema,i as createAnnouncementAttachmentArgsSchema,o as createCourseWorkArgsSchema,a as googleOAuthUserSchema,S as introProgressSchema,k as postSubmissionStateSchema,N as pupilLessonProgressSchema,I as questionResultSchema,E as quizProgressSchema,l as tokenPayloadSchema,h as upsertCourseWorkPupilProgressArgsSchema,A as upsertPupilLessonProgressArgsSchema,c as userCredentialsEntitySchema,T as videoProgressSchema};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/types/services/GoogleClassroomClientTypes.ts","../../../src/types/services/GoogleOAuthClientTypes.ts","../../../src/types/services/FirestoreClientTypes.ts","../../../src/types/services/PupilLessonProgressTypes.ts"],"sourcesContent":["import z from \"zod\";\n\nexport const createAnnouncementAttachmentArgsSchema = z.object({\n courseId: z.string(),\n itemId: z.string(),\n addOnToken: z.string(),\n title: z.string(),\n lessonSlug: z.string(),\n programmeSlug: z.string(),\n unitSlug: z.string(),\n maxPoints: z.number().optional(),\n teacherLoginHint: z.string().optional(),\n});\n\nexport type CreateAnnouncementAttachmentArgs = z.infer<\n typeof createAnnouncementAttachmentArgsSchema\n>;\n\nexport const classroomAttachmentSchema = z.object({\n courseId: z.string(),\n postId: z.string(),\n id: z.string(),\n title: z.string(),\n teacherViewUri: z.object({\n uri: z.string(),\n }),\n studentViewUri: z.object({\n uri: z.string(),\n }),\n studentWorkReviewUri: z\n .object({\n uri: z.string(),\n })\n .optional(),\n itemId: z.string(),\n maxPoints: z.number().nullish(),\n});\n\nexport type ClassroomAttachment = z.infer<typeof classroomAttachmentSchema>;\n","import z from \"zod\";\n\nimport { createAnnouncementAttachmentArgsSchema } from \"./GoogleClassroomClientTypes\";\n\nexport const codeSchema = z.string();\nexport type Code = z.infer<typeof codeSchema>;\n\nexport const googleOAuthUserSchema = z.object({\n accessToken: z.string(),\n loginHint: z.string(),\n refreshToken: z.string().optional(),\n profilePictureUrl: z.string().optional(),\n email: z.string().optional(),\n});\n\nexport type GoogleOAuthUser = z.infer<typeof googleOAuthUserSchema>;\n\nexport const tokenPayloadSchema = z.object({\n token: z.string(),\n});\n\nexport type TokenPayload = z.infer<typeof tokenPayloadSchema>;\n\nexport const CreateAttachmentCallSchema = z.tuple([\n createAnnouncementAttachmentArgsSchema,\n z.string().min(1), // accessToken\n z.string().min(1), // session\n]);\n\nexport type CreateAttachmentCall = z.infer<typeof CreateAttachmentCallSchema>;\n","import z from \"zod\";\n\nimport { classroomAttachmentSchema } from \"./GoogleClassroomClientTypes\";\n\nexport const classroomAttachmentEntitySchema = classroomAttachmentSchema.extend(\n {\n attachmentId: z.string(),\n createdAt: z.string(),\n teacherLoginHint: z.string().optional(),\n },\n);\n\nexport type ClassroomAttachmentEntity = z.infer<\n typeof classroomAttachmentEntitySchema\n>;\n\nexport const userCredentialsEntitySchema = z.object({\n loginHint: z.string(),\n refreshToken: z.string().optional(),\n profilePictureUrl: z.string().optional(),\n});\n\nexport type UserCredentialsEntity = z.infer<typeof userCredentialsEntitySchema>;\n","import z from \"zod\";\n\nexport const UPDATABLE_SUBMISSION_STATES = [\n \"NEW\",\n \"CREATED\",\n \"RECLAIMED_BY_STUDENT\",\n] as const;\n\nexport type UpdatableSubmissionState =\n (typeof UPDATABLE_SUBMISSION_STATES)[number];\n\nconst questionFeedbackSchema = z.enum([\"correct\", \"incorrect\"]);\n\nconst pupilAnswerSchema = z.union([\n z.string(),\n z.number(),\n z.array(z.union([z.string(), z.number()]).nullable()),\n z.null(),\n]);\n\nexport const questionResultSchema = z.object({\n mode: z.enum([\"init\", \"incomplete\", \"input\", \"grading\", \"feedback\"]),\n grade: z.number(),\n pupilAnswer: pupilAnswerSchema.optional().nullable(),\n feedback: z\n .union([questionFeedbackSchema, z.array(questionFeedbackSchema)])\n .optional(),\n isPartiallyCorrect: z.boolean().optional(),\n correctAnswer: z\n .union([z.string(), z.array(z.union([z.string(), z.undefined()]))])\n .optional(),\n usedHint: z.boolean().optional(),\n});\n\nexport const quizProgressSchema = z.object({\n grade: z.number(),\n numQuestions: z.number(),\n isComplete: z.boolean(),\n questionResults: z.array(questionResultSchema).optional(),\n});\n\nexport const videoProgressSchema = z.object({\n played: z.boolean(),\n duration: z.number(),\n timeElapsed: z.number(),\n isComplete: z.boolean(),\n});\n\nexport const introProgressSchema = z.object({\n worksheetAvailable: z.boolean().optional(),\n worksheetDownloaded: z.boolean().optional(),\n isComplete: z.boolean(),\n});\n\nexport const postSubmissionStateSchema = z.enum([\n \"SUBMISSION_STATE_UNSPECIFIED\",\n \"NEW\",\n \"CREATED\",\n \"RECLAIMED_BY_STUDENT\",\n \"TURNED_IN\",\n \"RETURNED\",\n]);\n\nexport type PostSubmissionState = z.infer<typeof postSubmissionStateSchema>;\n\nexport const pupilLessonProgressSchema = z.object({\n postSubmissionState: postSubmissionStateSchema,\n submissionId: z.string(),\n attachmentId: z.string(),\n courseId: z.string(),\n itemId: z.string(),\n pupilLoginHint: z.string(),\n\n starterQuiz: quizProgressSchema.optional(),\n exitQuiz: quizProgressSchema.optional(),\n video: videoProgressSchema.optional(),\n intro: introProgressSchema.optional(),\n\n updatedAt: z.string(),\n createdAt: z.string(),\n});\n\nexport type PupilLessonProgress = z.infer<typeof pupilLessonProgressSchema>;\n\nexport const upsertPupilLessonProgressArgsSchema = z.object({\n submissionId: z.string(),\n attachmentId: z.string(),\n courseId: z.string(),\n itemId: z.string(),\n pupilLoginHint: z.string(),\n starterQuiz: quizProgressSchema.optional(),\n exitQuiz: quizProgressSchema.optional(),\n video: videoProgressSchema.optional(),\n intro: introProgressSchema.optional(),\n});\n\nexport type UpsertPupilLessonProgressArgs = z.infer<\n typeof upsertPupilLessonProgressArgsSchema\n>;\n"],"names":["createAnnouncementAttachmentArgsSchema","z","object","courseId","string","itemId","addOnToken","title","lessonSlug","programmeSlug","unitSlug","maxPoints","number","optional","teacherLoginHint","classroomAttachmentSchema","postId","id","teacherViewUri","uri","studentViewUri","studentWorkReviewUri","nullish","codeSchema","googleOAuthUserSchema","accessToken","loginHint","refreshToken","profilePictureUrl","email","tokenPayloadSchema","token","CreateAttachmentCallSchema","tuple","min","classroomAttachmentEntitySchema","extend","attachmentId","createdAt","userCredentialsEntitySchema","UPDATABLE_SUBMISSION_STATES","questionFeedbackSchema","enum","pupilAnswerSchema","union","array","nullable","null","questionResultSchema","mode","grade","pupilAnswer","feedback","isPartiallyCorrect","boolean","correctAnswer","undefined","usedHint","quizProgressSchema","numQuestions","isComplete","questionResults","videoProgressSchema","played","duration","timeElapsed","introProgressSchema","worksheetAvailable","worksheetDownloaded","postSubmissionStateSchema","pupilLessonProgressSchema","postSubmissionState","submissionId","pupilLoginHint","starterQuiz","exitQuiz","video","intro","updatedAt","upsertPupilLessonProgressArgsSchema"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/types/services/GoogleClassroomClientTypes.ts","../../../src/types/services/PupilLessonProgressTypes.ts","../../../src/types/services/GoogleOAuthClientTypes.ts","../../../src/types/services/FirestoreClientTypes.ts"],"sourcesContent":["import z from \"zod\";\n\nexport const createAnnouncementAttachmentArgsSchema = z.object({\n courseId: z.string(),\n itemId: z.string(),\n addOnToken: z.string(),\n title: z.string(),\n lessonSlug: z.string(),\n programmeSlug: z.string(),\n unitSlug: z.string(),\n maxPoints: z.number().optional(),\n teacherLoginHint: z.string().optional(),\n});\n\nexport type CreateAnnouncementAttachmentArgs = z.infer<\n typeof createAnnouncementAttachmentArgsSchema\n>;\n\nexport const classroomAttachmentSchema = z.object({\n courseId: z.string(),\n postId: z.string(),\n id: z.string(),\n title: z.string(),\n teacherViewUri: z.object({\n uri: z.string(),\n }),\n studentViewUri: z.object({\n uri: z.string(),\n }),\n studentWorkReviewUri: z\n .object({\n uri: z.string(),\n })\n .optional(),\n itemId: z.string(),\n maxPoints: z.number().nullish(),\n});\n\nexport type ClassroomAttachment = z.infer<typeof classroomAttachmentSchema>;\n\nexport const createCourseWorkArgsSchema = z.object({\n title: z.string(),\n description: z.string().optional(),\n lessonUrl: z.string(),\n maxPoints: z.number().int().positive(),\n});\n\nexport type CreateCourseWorkArgs = z.infer<typeof createCourseWorkArgsSchema>;\n\nexport const courseWorkCreatedResultSchema = z.object({\n courseWorkId: z.string(),\n courseId: z.string(),\n alternateLink: z.string().optional(),\n title: z.string(),\n});\n\nexport type CourseWorkCreatedResult = z.infer<\n typeof courseWorkCreatedResultSchema\n>;\n\nexport const courseListItemSchema = z.object({\n id: z.string(),\n name: z.string(),\n section: z.string().optional(),\n});\n\nexport type CourseListItem = z.infer<typeof courseListItemSchema>;\n","import z from \"zod\";\n\nconst questionFeedbackSchema = z.enum([\"correct\", \"incorrect\"]);\n\nconst pupilAnswerSchema = z.union([\n z.string(),\n z.number(),\n z.array(z.union([z.string(), z.number()]).nullable()),\n z.null(),\n]);\n\nexport const questionResultSchema = z.object({\n mode: z.enum([\"init\", \"incomplete\", \"input\", \"grading\", \"feedback\"]),\n grade: z.number(),\n pupilAnswer: pupilAnswerSchema.optional().nullable(),\n feedback: z\n .union([questionFeedbackSchema, z.array(questionFeedbackSchema)])\n .optional(),\n isPartiallyCorrect: z.boolean().optional(),\n correctAnswer: z\n .union([z.string(), z.array(z.union([z.string(), z.undefined()]))])\n .optional(),\n usedHint: z.boolean().optional(),\n});\n\nexport const quizProgressSchema = z.object({\n grade: z.number().int().min(0),\n numQuestions: z.number().int().positive(),\n isComplete: z.boolean(),\n questionResults: z.array(questionResultSchema).optional(),\n});\n\nexport const videoProgressSchema = z.object({\n played: z.boolean(),\n duration: z.number(),\n timeElapsed: z.number(),\n isComplete: z.boolean(),\n});\n\nexport const introProgressSchema = z.object({\n worksheetAvailable: z.boolean().optional(),\n worksheetDownloaded: z.boolean().optional(),\n isComplete: z.boolean(),\n});\n\nexport enum PostSubmissionState {\n SUBMISSION_STATE_UNSPECIFIED = \"SUBMISSION_STATE_UNSPECIFIED\",\n NEW = \"NEW\",\n CREATED = \"CREATED\",\n RECLAIMED_BY_STUDENT = \"RECLAIMED_BY_STUDENT\",\n TURNED_IN = \"TURNED_IN\",\n RETURNED = \"RETURNED\",\n}\n\nexport const postSubmissionStateSchema = z.enum(PostSubmissionState);\n\n// TurnedIn and Returned states are not updatable by our system, as they indicate that the student has turned in the assignment or the teacher has returned it, so we exclude those from the upsert options. Submission_State_Unspecified is also excluded as it's not a valid state for a submission.\nexport const UPDATABLE_SUBMISSION_STATES: PostSubmissionState[] = [\n PostSubmissionState.NEW,\n PostSubmissionState.CREATED,\n PostSubmissionState.RECLAIMED_BY_STUDENT,\n];\n\nconst lessonProgressInputSchema = z.object({\n starterQuiz: quizProgressSchema.optional(),\n exitQuiz: quizProgressSchema.optional(),\n video: videoProgressSchema.optional(),\n intro: introProgressSchema.optional(),\n});\n\nconst lessonProgressSchema = lessonProgressInputSchema.extend({\n updatedAt: z.string(),\n createdAt: z.string(),\n});\n\nexport const pupilLessonProgressSchema = lessonProgressSchema.extend({\n postSubmissionState: postSubmissionStateSchema,\n submissionId: z.string(),\n attachmentId: z.string(),\n courseId: z.string(),\n itemId: z.string(),\n pupilLoginHint: z.string(),\n});\n\nexport type PupilLessonProgress = z.infer<typeof pupilLessonProgressSchema>;\n\nexport const upsertPupilLessonProgressArgsSchema =\n lessonProgressInputSchema.extend({\n submissionId: z.string(),\n attachmentId: z.string(),\n courseId: z.string(),\n itemId: z.string(),\n pupilLoginHint: z.string(),\n });\n\nexport type UpsertPupilLessonProgressArgs = z.infer<\n typeof upsertPupilLessonProgressArgsSchema\n>;\n\nexport const courseWorkPupilProgressSchema = lessonProgressSchema.extend({\n submissionId: z.string(),\n assignmentToken: z.string(),\n courseWorkId: z.string(),\n courseId: z.string(),\n pupilLoginHint: z.string(),\n gradeSubmitted: z.boolean().optional(),\n});\n\nexport type CourseWorkPupilProgress = z.infer<\n typeof courseWorkPupilProgressSchema\n>;\n\nexport const upsertCourseWorkPupilProgressArgsSchema =\n lessonProgressInputSchema.extend({\n submissionId: z.string(),\n assignmentToken: z.string(),\n courseWorkId: z.string(),\n courseId: z.string(),\n pupilLoginHint: z.string(),\n });\n\nexport type UpsertCourseWorkPupilProgressArgs = z.infer<\n typeof upsertCourseWorkPupilProgressArgsSchema\n>;\n\nexport type CreateCourseWorkServiceArgs = {\n courseId: string;\n title: string;\n description?: string;\n lessonSlug: string;\n programmeSlug: string;\n unitSlug: string;\n maxPoints: number;\n teacherLoginHint: string;\n};\n","import z from \"zod\";\n\nimport { createAnnouncementAttachmentArgsSchema } from \"./GoogleClassroomClientTypes\";\n\nexport const codeSchema = z.string();\nexport type Code = z.infer<typeof codeSchema>;\n\nexport const googleOAuthUserSchema = z.object({\n accessToken: z.string(),\n loginHint: z.string(),\n refreshToken: z.string().optional(),\n profilePictureUrl: z.string().optional(),\n email: z.string().optional(),\n});\n\nexport type GoogleOAuthUser = z.infer<typeof googleOAuthUserSchema>;\n\nexport const tokenPayloadSchema = z.object({\n token: z.string(),\n});\n\nexport type TokenPayload = z.infer<typeof tokenPayloadSchema>;\n\nexport const CreateAttachmentCallSchema = z.tuple([\n createAnnouncementAttachmentArgsSchema,\n z.string().min(1), // accessToken\n z.string().min(1), // session\n]);\n\nexport type CreateAttachmentCall = z.infer<typeof CreateAttachmentCallSchema>;\n","import z from \"zod\";\n\nimport { classroomAttachmentSchema } from \"./GoogleClassroomClientTypes\";\n\nexport const classroomAttachmentEntitySchema = classroomAttachmentSchema.extend(\n {\n attachmentId: z.string(),\n createdAt: z.string(),\n teacherLoginHint: z.string().optional(),\n },\n);\n\nexport type ClassroomAttachmentEntity = z.infer<\n typeof classroomAttachmentEntitySchema\n>;\n\nexport const userCredentialsEntitySchema = z.object({\n loginHint: z.string(),\n refreshToken: z.string().optional(),\n profilePictureUrl: z.string().optional(),\n});\n\nexport type UserCredentialsEntity = z.infer<typeof userCredentialsEntitySchema>;\n\nexport const classroomCourseWorkEntitySchema = z.object({\n assignmentToken: z.string(),\n courseWorkId: z.string(),\n courseId: z.string(),\n teacherLoginHint: z.string(),\n lessonSlug: z.string(),\n programmeSlug: z.string(),\n unitSlug: z.string(),\n maxPoints: z.number().int().positive(),\n createdAt: z.string(),\n});\n\nexport type ClassroomCourseWorkEntity = z.infer<\n typeof classroomCourseWorkEntitySchema\n>;\n"],"names":["PostSubmissionState","createAnnouncementAttachmentArgsSchema","z","object","courseId","string","itemId","addOnToken","title","lessonSlug","programmeSlug","unitSlug","maxPoints","number","optional","teacherLoginHint","classroomAttachmentSchema","postId","id","teacherViewUri","uri","studentViewUri","studentWorkReviewUri","nullish","createCourseWorkArgsSchema","description","lessonUrl","int","positive","courseWorkCreatedResultSchema","courseWorkId","alternateLink","courseListItemSchema","name","section","codeSchema","googleOAuthUserSchema","accessToken","loginHint","refreshToken","profilePictureUrl","email","tokenPayloadSchema","token","CreateAttachmentCallSchema","tuple","min","classroomAttachmentEntitySchema","extend","attachmentId","createdAt","userCredentialsEntitySchema","classroomCourseWorkEntitySchema","assignmentToken","questionFeedbackSchema","enum","pupilAnswerSchema","union","array","nullable","null","questionResultSchema","mode","grade","pupilAnswer","feedback","isPartiallyCorrect","boolean","correctAnswer","undefined","usedHint","quizProgressSchema","numQuestions","isComplete","questionResults","videoProgressSchema","played","duration","timeElapsed","introProgressSchema","worksheetAvailable","worksheetDownloaded","postSubmissionStateSchema","UPDATABLE_SUBMISSION_STATES","NEW","CREATED","RECLAIMED_BY_STUDENT","lessonProgressInputSchema","starterQuiz","exitQuiz","video","intro","lessonProgressSchema","updatedAt","pupilLessonProgressSchema","postSubmissionState","submissionId","pupilLoginHint","upsertPupilLessonProgressArgsSchema","courseWorkPupilProgressSchema","gradeSubmitted","upsertCourseWorkPupilProgressArgsSchema"],"mappings":"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"}
|
package/dist/services.d.ts
CHANGED
|
@@ -26,6 +26,18 @@ declare const classroomAttachmentEntitySchema: z.ZodObject<{
|
|
|
26
26
|
teacherLoginHint: z.ZodOptional<z.ZodString>;
|
|
27
27
|
}, z.core.$strip>;
|
|
28
28
|
type ClassroomAttachmentEntity = z.infer<typeof classroomAttachmentEntitySchema>;
|
|
29
|
+
declare const classroomCourseWorkEntitySchema: z.ZodObject<{
|
|
30
|
+
assignmentToken: z.ZodString;
|
|
31
|
+
courseWorkId: z.ZodString;
|
|
32
|
+
courseId: z.ZodString;
|
|
33
|
+
teacherLoginHint: z.ZodString;
|
|
34
|
+
lessonSlug: z.ZodString;
|
|
35
|
+
programmeSlug: z.ZodString;
|
|
36
|
+
unitSlug: z.ZodString;
|
|
37
|
+
maxPoints: z.ZodNumber;
|
|
38
|
+
createdAt: z.ZodString;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
type ClassroomCourseWorkEntity = z.infer<typeof classroomCourseWorkEntitySchema>;
|
|
29
41
|
|
|
30
42
|
declare const createAnnouncementAttachmentArgsSchema: z.ZodObject<{
|
|
31
43
|
courseId: z.ZodString;
|
|
@@ -39,21 +51,29 @@ declare const createAnnouncementAttachmentArgsSchema: z.ZodObject<{
|
|
|
39
51
|
teacherLoginHint: z.ZodOptional<z.ZodString>;
|
|
40
52
|
}, z.core.$strip>;
|
|
41
53
|
type CreateAnnouncementAttachmentArgs = z.infer<typeof createAnnouncementAttachmentArgsSchema>;
|
|
54
|
+
declare const courseWorkCreatedResultSchema: z.ZodObject<{
|
|
55
|
+
courseWorkId: z.ZodString;
|
|
56
|
+
courseId: z.ZodString;
|
|
57
|
+
alternateLink: z.ZodOptional<z.ZodString>;
|
|
58
|
+
title: z.ZodString;
|
|
59
|
+
}, z.core.$strip>;
|
|
60
|
+
type CourseWorkCreatedResult = z.infer<typeof courseWorkCreatedResultSchema>;
|
|
61
|
+
declare const courseListItemSchema: z.ZodObject<{
|
|
62
|
+
id: z.ZodString;
|
|
63
|
+
name: z.ZodString;
|
|
64
|
+
section: z.ZodOptional<z.ZodString>;
|
|
65
|
+
}, z.core.$strip>;
|
|
66
|
+
type CourseListItem = z.infer<typeof courseListItemSchema>;
|
|
42
67
|
|
|
68
|
+
declare enum PostSubmissionState {
|
|
69
|
+
SUBMISSION_STATE_UNSPECIFIED = "SUBMISSION_STATE_UNSPECIFIED",
|
|
70
|
+
NEW = "NEW",
|
|
71
|
+
CREATED = "CREATED",
|
|
72
|
+
RECLAIMED_BY_STUDENT = "RECLAIMED_BY_STUDENT",
|
|
73
|
+
TURNED_IN = "TURNED_IN",
|
|
74
|
+
RETURNED = "RETURNED"
|
|
75
|
+
}
|
|
43
76
|
declare const pupilLessonProgressSchema: z.ZodObject<{
|
|
44
|
-
postSubmissionState: z.ZodEnum<{
|
|
45
|
-
NEW: "NEW";
|
|
46
|
-
CREATED: "CREATED";
|
|
47
|
-
RECLAIMED_BY_STUDENT: "RECLAIMED_BY_STUDENT";
|
|
48
|
-
SUBMISSION_STATE_UNSPECIFIED: "SUBMISSION_STATE_UNSPECIFIED";
|
|
49
|
-
TURNED_IN: "TURNED_IN";
|
|
50
|
-
RETURNED: "RETURNED";
|
|
51
|
-
}>;
|
|
52
|
-
submissionId: z.ZodString;
|
|
53
|
-
attachmentId: z.ZodString;
|
|
54
|
-
courseId: z.ZodString;
|
|
55
|
-
itemId: z.ZodString;
|
|
56
|
-
pupilLoginHint: z.ZodString;
|
|
57
77
|
starterQuiz: z.ZodOptional<z.ZodObject<{
|
|
58
78
|
grade: z.ZodNumber;
|
|
59
79
|
numQuestions: z.ZodNumber;
|
|
@@ -119,14 +139,86 @@ declare const pupilLessonProgressSchema: z.ZodObject<{
|
|
|
119
139
|
}, z.core.$strip>>;
|
|
120
140
|
updatedAt: z.ZodString;
|
|
121
141
|
createdAt: z.ZodString;
|
|
142
|
+
postSubmissionState: z.ZodEnum<typeof PostSubmissionState>;
|
|
143
|
+
submissionId: z.ZodString;
|
|
144
|
+
attachmentId: z.ZodString;
|
|
145
|
+
courseId: z.ZodString;
|
|
146
|
+
itemId: z.ZodString;
|
|
147
|
+
pupilLoginHint: z.ZodString;
|
|
122
148
|
}, z.core.$strip>;
|
|
123
149
|
type PupilLessonProgress = z.infer<typeof pupilLessonProgressSchema>;
|
|
124
150
|
declare const upsertPupilLessonProgressArgsSchema: z.ZodObject<{
|
|
151
|
+
starterQuiz: z.ZodOptional<z.ZodObject<{
|
|
152
|
+
grade: z.ZodNumber;
|
|
153
|
+
numQuestions: z.ZodNumber;
|
|
154
|
+
isComplete: z.ZodBoolean;
|
|
155
|
+
questionResults: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
156
|
+
mode: z.ZodEnum<{
|
|
157
|
+
init: "init";
|
|
158
|
+
incomplete: "incomplete";
|
|
159
|
+
input: "input";
|
|
160
|
+
grading: "grading";
|
|
161
|
+
feedback: "feedback";
|
|
162
|
+
}>;
|
|
163
|
+
grade: z.ZodNumber;
|
|
164
|
+
pupilAnswer: z.ZodNullable<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodArray<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>, z.ZodNull]>>>;
|
|
165
|
+
feedback: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
166
|
+
correct: "correct";
|
|
167
|
+
incorrect: "incorrect";
|
|
168
|
+
}>, z.ZodArray<z.ZodEnum<{
|
|
169
|
+
correct: "correct";
|
|
170
|
+
incorrect: "incorrect";
|
|
171
|
+
}>>]>>;
|
|
172
|
+
isPartiallyCorrect: z.ZodOptional<z.ZodBoolean>;
|
|
173
|
+
correctAnswer: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodUndefined]>>]>>;
|
|
174
|
+
usedHint: z.ZodOptional<z.ZodBoolean>;
|
|
175
|
+
}, z.core.$strip>>>;
|
|
176
|
+
}, z.core.$strip>>;
|
|
177
|
+
exitQuiz: z.ZodOptional<z.ZodObject<{
|
|
178
|
+
grade: z.ZodNumber;
|
|
179
|
+
numQuestions: z.ZodNumber;
|
|
180
|
+
isComplete: z.ZodBoolean;
|
|
181
|
+
questionResults: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
182
|
+
mode: z.ZodEnum<{
|
|
183
|
+
init: "init";
|
|
184
|
+
incomplete: "incomplete";
|
|
185
|
+
input: "input";
|
|
186
|
+
grading: "grading";
|
|
187
|
+
feedback: "feedback";
|
|
188
|
+
}>;
|
|
189
|
+
grade: z.ZodNumber;
|
|
190
|
+
pupilAnswer: z.ZodNullable<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodArray<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>, z.ZodNull]>>>;
|
|
191
|
+
feedback: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
192
|
+
correct: "correct";
|
|
193
|
+
incorrect: "incorrect";
|
|
194
|
+
}>, z.ZodArray<z.ZodEnum<{
|
|
195
|
+
correct: "correct";
|
|
196
|
+
incorrect: "incorrect";
|
|
197
|
+
}>>]>>;
|
|
198
|
+
isPartiallyCorrect: z.ZodOptional<z.ZodBoolean>;
|
|
199
|
+
correctAnswer: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodUndefined]>>]>>;
|
|
200
|
+
usedHint: z.ZodOptional<z.ZodBoolean>;
|
|
201
|
+
}, z.core.$strip>>>;
|
|
202
|
+
}, z.core.$strip>>;
|
|
203
|
+
video: z.ZodOptional<z.ZodObject<{
|
|
204
|
+
played: z.ZodBoolean;
|
|
205
|
+
duration: z.ZodNumber;
|
|
206
|
+
timeElapsed: z.ZodNumber;
|
|
207
|
+
isComplete: z.ZodBoolean;
|
|
208
|
+
}, z.core.$strip>>;
|
|
209
|
+
intro: z.ZodOptional<z.ZodObject<{
|
|
210
|
+
worksheetAvailable: z.ZodOptional<z.ZodBoolean>;
|
|
211
|
+
worksheetDownloaded: z.ZodOptional<z.ZodBoolean>;
|
|
212
|
+
isComplete: z.ZodBoolean;
|
|
213
|
+
}, z.core.$strip>>;
|
|
125
214
|
submissionId: z.ZodString;
|
|
126
215
|
attachmentId: z.ZodString;
|
|
127
216
|
courseId: z.ZodString;
|
|
128
217
|
itemId: z.ZodString;
|
|
129
218
|
pupilLoginHint: z.ZodString;
|
|
219
|
+
}, z.core.$strip>;
|
|
220
|
+
type UpsertPupilLessonProgressArgs = z.infer<typeof upsertPupilLessonProgressArgsSchema>;
|
|
221
|
+
declare const courseWorkPupilProgressSchema: z.ZodObject<{
|
|
130
222
|
starterQuiz: z.ZodOptional<z.ZodObject<{
|
|
131
223
|
grade: z.ZodNumber;
|
|
132
224
|
numQuestions: z.ZodNumber;
|
|
@@ -190,8 +282,97 @@ declare const upsertPupilLessonProgressArgsSchema: z.ZodObject<{
|
|
|
190
282
|
worksheetDownloaded: z.ZodOptional<z.ZodBoolean>;
|
|
191
283
|
isComplete: z.ZodBoolean;
|
|
192
284
|
}, z.core.$strip>>;
|
|
285
|
+
updatedAt: z.ZodString;
|
|
286
|
+
createdAt: z.ZodString;
|
|
287
|
+
submissionId: z.ZodString;
|
|
288
|
+
assignmentToken: z.ZodString;
|
|
289
|
+
courseWorkId: z.ZodString;
|
|
290
|
+
courseId: z.ZodString;
|
|
291
|
+
pupilLoginHint: z.ZodString;
|
|
292
|
+
gradeSubmitted: z.ZodOptional<z.ZodBoolean>;
|
|
193
293
|
}, z.core.$strip>;
|
|
194
|
-
type
|
|
294
|
+
type CourseWorkPupilProgress = z.infer<typeof courseWorkPupilProgressSchema>;
|
|
295
|
+
declare const upsertCourseWorkPupilProgressArgsSchema: z.ZodObject<{
|
|
296
|
+
starterQuiz: z.ZodOptional<z.ZodObject<{
|
|
297
|
+
grade: z.ZodNumber;
|
|
298
|
+
numQuestions: z.ZodNumber;
|
|
299
|
+
isComplete: z.ZodBoolean;
|
|
300
|
+
questionResults: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
301
|
+
mode: z.ZodEnum<{
|
|
302
|
+
init: "init";
|
|
303
|
+
incomplete: "incomplete";
|
|
304
|
+
input: "input";
|
|
305
|
+
grading: "grading";
|
|
306
|
+
feedback: "feedback";
|
|
307
|
+
}>;
|
|
308
|
+
grade: z.ZodNumber;
|
|
309
|
+
pupilAnswer: z.ZodNullable<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodArray<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>, z.ZodNull]>>>;
|
|
310
|
+
feedback: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
311
|
+
correct: "correct";
|
|
312
|
+
incorrect: "incorrect";
|
|
313
|
+
}>, z.ZodArray<z.ZodEnum<{
|
|
314
|
+
correct: "correct";
|
|
315
|
+
incorrect: "incorrect";
|
|
316
|
+
}>>]>>;
|
|
317
|
+
isPartiallyCorrect: z.ZodOptional<z.ZodBoolean>;
|
|
318
|
+
correctAnswer: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodUndefined]>>]>>;
|
|
319
|
+
usedHint: z.ZodOptional<z.ZodBoolean>;
|
|
320
|
+
}, z.core.$strip>>>;
|
|
321
|
+
}, z.core.$strip>>;
|
|
322
|
+
exitQuiz: z.ZodOptional<z.ZodObject<{
|
|
323
|
+
grade: z.ZodNumber;
|
|
324
|
+
numQuestions: z.ZodNumber;
|
|
325
|
+
isComplete: z.ZodBoolean;
|
|
326
|
+
questionResults: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
327
|
+
mode: z.ZodEnum<{
|
|
328
|
+
init: "init";
|
|
329
|
+
incomplete: "incomplete";
|
|
330
|
+
input: "input";
|
|
331
|
+
grading: "grading";
|
|
332
|
+
feedback: "feedback";
|
|
333
|
+
}>;
|
|
334
|
+
grade: z.ZodNumber;
|
|
335
|
+
pupilAnswer: z.ZodNullable<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodArray<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>, z.ZodNull]>>>;
|
|
336
|
+
feedback: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
337
|
+
correct: "correct";
|
|
338
|
+
incorrect: "incorrect";
|
|
339
|
+
}>, z.ZodArray<z.ZodEnum<{
|
|
340
|
+
correct: "correct";
|
|
341
|
+
incorrect: "incorrect";
|
|
342
|
+
}>>]>>;
|
|
343
|
+
isPartiallyCorrect: z.ZodOptional<z.ZodBoolean>;
|
|
344
|
+
correctAnswer: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodUndefined]>>]>>;
|
|
345
|
+
usedHint: z.ZodOptional<z.ZodBoolean>;
|
|
346
|
+
}, z.core.$strip>>>;
|
|
347
|
+
}, z.core.$strip>>;
|
|
348
|
+
video: z.ZodOptional<z.ZodObject<{
|
|
349
|
+
played: z.ZodBoolean;
|
|
350
|
+
duration: z.ZodNumber;
|
|
351
|
+
timeElapsed: z.ZodNumber;
|
|
352
|
+
isComplete: z.ZodBoolean;
|
|
353
|
+
}, z.core.$strip>>;
|
|
354
|
+
intro: z.ZodOptional<z.ZodObject<{
|
|
355
|
+
worksheetAvailable: z.ZodOptional<z.ZodBoolean>;
|
|
356
|
+
worksheetDownloaded: z.ZodOptional<z.ZodBoolean>;
|
|
357
|
+
isComplete: z.ZodBoolean;
|
|
358
|
+
}, z.core.$strip>>;
|
|
359
|
+
submissionId: z.ZodString;
|
|
360
|
+
assignmentToken: z.ZodString;
|
|
361
|
+
courseWorkId: z.ZodString;
|
|
362
|
+
courseId: z.ZodString;
|
|
363
|
+
pupilLoginHint: z.ZodString;
|
|
364
|
+
}, z.core.$strip>;
|
|
365
|
+
type UpsertCourseWorkPupilProgressArgs = z.infer<typeof upsertCourseWorkPupilProgressArgsSchema>;
|
|
366
|
+
type CreateCourseWorkServiceArgs = {
|
|
367
|
+
courseId: string;
|
|
368
|
+
title: string;
|
|
369
|
+
description?: string;
|
|
370
|
+
lessonSlug: string;
|
|
371
|
+
programmeSlug: string;
|
|
372
|
+
unitSlug: string;
|
|
373
|
+
maxPoints: number;
|
|
374
|
+
teacherLoginHint: string;
|
|
375
|
+
};
|
|
195
376
|
|
|
196
377
|
type FetchPupilResponseArgs = {
|
|
197
378
|
courseId: string;
|
|
@@ -216,8 +397,11 @@ declare class OakGoogleClassroomAddOn {
|
|
|
216
397
|
private sessionService;
|
|
217
398
|
private classroomAttachmentService;
|
|
218
399
|
private pupilProgressService;
|
|
400
|
+
private courseWorkService;
|
|
401
|
+
private courseWorkProgressService;
|
|
219
402
|
private encryptionService;
|
|
220
403
|
private firestoreClient;
|
|
404
|
+
private baseUrl;
|
|
221
405
|
constructor(encryptionSecret: string, firestore: Firestore, googleOAuthClientId: string, googleOAuthClientSecret: string, googleOAuthCallbackApiRoute: string, sessionSecret: string, baseUrl: string);
|
|
222
406
|
/**
|
|
223
407
|
* Generates the Google OAuth sign-in URL for user authentication.
|
|
@@ -299,6 +483,69 @@ declare class OakGoogleClassroomAddOn {
|
|
|
299
483
|
* @param submissionId - The Google Classroom submission ID
|
|
300
484
|
*/
|
|
301
485
|
getPupilLessonProgress(submissionId: string, attachmentId: string, itemId: string): Promise<PupilLessonProgress | null>;
|
|
486
|
+
/**
|
|
487
|
+
* Resolves a teacher OAuth client by looking up the coursework's teacherLoginHint
|
|
488
|
+
* from Firestore (keyed by assignmentToken) and fetching stored credentials.
|
|
489
|
+
*/
|
|
490
|
+
private resolveTeacherOAuthClientForCourseWork;
|
|
491
|
+
private getTeacherRefreshToken;
|
|
492
|
+
/**
|
|
493
|
+
* Lists the active Google Classroom courses for the authenticated teacher.
|
|
494
|
+
* @param accessToken - The teacher's current OAuth access token
|
|
495
|
+
* @param session - The teacher's encrypted session string
|
|
496
|
+
*/
|
|
497
|
+
listCourses(accessToken: string, session: string): Promise<CourseListItem[]>;
|
|
498
|
+
/**
|
|
499
|
+
* Creates a CourseWork assignment with Link material and stores the
|
|
500
|
+
* assignmentToken → courseWork mapping in Firestore.
|
|
501
|
+
* @param args - Lesson and course details
|
|
502
|
+
* @param accessToken - The teacher's current OAuth access token
|
|
503
|
+
* @param session - The teacher's encrypted session string
|
|
504
|
+
*/
|
|
505
|
+
createCourseWork(args: Omit<CreateCourseWorkServiceArgs, "teacherLoginHint">, accessToken: string, session: string): Promise<CourseWorkCreatedResult & {
|
|
506
|
+
assignmentToken: string;
|
|
507
|
+
}>;
|
|
508
|
+
/**
|
|
509
|
+
* Retrieves the pupil's submissionId for a given coursework item.
|
|
510
|
+
* Must be called with the pupil's session (userId=me lookup).
|
|
511
|
+
* @param courseId - The Google Classroom course ID
|
|
512
|
+
* @param courseWorkId - The courseWork item ID
|
|
513
|
+
* @param accessToken - The pupil's current OAuth access token
|
|
514
|
+
* @param session - The pupil's encrypted session string
|
|
515
|
+
*/
|
|
516
|
+
getStudentSubmissionId(courseId: string, courseWorkId: string, accessToken: string, session: string): Promise<string>;
|
|
517
|
+
/**
|
|
518
|
+
* Upserts pupil progress for a link-based CourseWork assignment and syncs
|
|
519
|
+
* the grade to Google Classroom when the exit quiz is newly completed.
|
|
520
|
+
* @param args - The pupil progress data
|
|
521
|
+
* @param accessToken - The pupil's current OAuth access token
|
|
522
|
+
* @param session - The pupil's encrypted session string
|
|
523
|
+
*/
|
|
524
|
+
upsertCourseWorkPupilProgress(args: UpsertCourseWorkPupilProgressArgs, accessToken: string, session: string): Promise<CourseWorkPupilProgress>;
|
|
525
|
+
/**
|
|
526
|
+
* Retrieves the stored CourseWork entity for a given assignmentToken.
|
|
527
|
+
* Does not require Google Classroom authentication — Firestore-only lookup.
|
|
528
|
+
* Returns null if the token is not found (caller should treat as 404).
|
|
529
|
+
* @param assignmentToken - The opaque token embedded in the lesson URL
|
|
530
|
+
*/
|
|
531
|
+
getClassroomCourseWork(assignmentToken: string): Promise<ClassroomCourseWorkEntity | null>;
|
|
532
|
+
/**
|
|
533
|
+
* Retrieves pupil progress for a link-based CourseWork assignment.
|
|
534
|
+
* Does not require Google Classroom authentication.
|
|
535
|
+
* @param submissionId - The Google Classroom submission ID
|
|
536
|
+
*/
|
|
537
|
+
getCourseWorkPupilProgress(submissionId: string, assignmentToken: string): Promise<CourseWorkPupilProgress | null>;
|
|
538
|
+
/**
|
|
539
|
+
* Turns in a student's submission using the student's own OAuth credentials.
|
|
540
|
+
* Must be called after grade sync (upsertCourseWorkPupilProgress) to ensure
|
|
541
|
+
* the grade is patched before the submission state changes to TURNED_IN.
|
|
542
|
+
* @param courseId - The Google Classroom course ID
|
|
543
|
+
* @param courseWorkId - The courseWork item ID
|
|
544
|
+
* @param submissionId - The student's submission ID
|
|
545
|
+
* @param accessToken - The student's current OAuth access token
|
|
546
|
+
* @param session - The student's encrypted session string
|
|
547
|
+
*/
|
|
548
|
+
turnInCourseWorkSubmission(courseId: string, courseWorkId: string, submissionId: string, assignmentToken: string, accessToken: string, session: string): Promise<void>;
|
|
302
549
|
getPostSubmissionState(args: FetchPupilResponseArgs, accessToken: string, session: string): Promise<string>;
|
|
303
550
|
}
|
|
304
551
|
|