@timeback/sdk 0.1.12 → 0.1.13

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.
@@ -3,7 +3,22 @@
3
3
  *
4
4
  * Types shared between client and server.
5
5
  */
6
- import type { TimebackGrade, TimebackSubject } from '@timeback/types';
6
+ /**
7
+ * Valid Timeback subject values.
8
+ *
9
+ * Inlined from `@timeback/types` to avoid shipping an unpublished workspace
10
+ * dependency in the npm package. Source-shipped adapters (Vue, Svelte, Solid)
11
+ * copy this file into `dist/` as raw `.ts`, so every import must be resolvable
12
+ * from a consumer's `node_modules`.
13
+ */
14
+ type TimebackSubject = 'Reading' | 'Language' | 'Vocabulary' | 'Social Studies' | 'Writing' | 'Science' | 'FastMath' | 'Math' | 'None' | 'Other';
15
+ /**
16
+ * Grade levels per Timeback OneRoster GradeEnum (numeric).
17
+ * -1 = Pre-K, 0 = Kindergarten, 1-12 = Grades 1-12, 13 = AP
18
+ *
19
+ * Inlined from `@timeback/types` — see `TimebackSubject` above for rationale.
20
+ */
21
+ type TimebackGrade = -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13;
7
22
  /**
8
23
  * User identity returned from SSO.
9
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,33 @@
4
4
  * Types shared between client and server.
5
5
  */
6
6
 
7
- import type { TimebackGrade, TimebackSubject } from '@timeback/types'
7
+ /**
8
+ * Valid Timeback subject values.
9
+ *
10
+ * Inlined from `@timeback/types` to avoid shipping an unpublished workspace
11
+ * dependency in the npm package. Source-shipped adapters (Vue, Svelte, Solid)
12
+ * copy this file into `dist/` as raw `.ts`, so every import must be resolvable
13
+ * from a consumer's `node_modules`.
14
+ */
15
+ type TimebackSubject =
16
+ | 'Reading'
17
+ | 'Language'
18
+ | 'Vocabulary'
19
+ | 'Social Studies'
20
+ | 'Writing'
21
+ | 'Science'
22
+ | 'FastMath'
23
+ | 'Math'
24
+ | 'None'
25
+ | 'Other'
26
+
27
+ /**
28
+ * Grade levels per Timeback OneRoster GradeEnum (numeric).
29
+ * -1 = Pre-K, 0 = Kindergarten, 1-12 = Grades 1-12, 13 = AP
30
+ *
31
+ * Inlined from `@timeback/types` — see `TimebackSubject` above for rationale.
32
+ */
33
+ type TimebackGrade = -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13
8
34
 
9
35
  /**
10
36
  * User identity returned from SSO.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timeback/sdk",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "description": "Timeback SDK for frontend and backend integration",
5
5
  "type": "module",
6
6
  "exports": {
@@ -75,7 +75,7 @@
75
75
  "test:e2e": "bun test --no-env-file e2e.test.ts"
76
76
  },
77
77
  "dependencies": {
78
- "@timeback/core": "0.1.5",
78
+ "@timeback/core": "0.1.6",
79
79
  "c12": "^3.3.3",
80
80
  "zod": "^4.2.1"
81
81
  },
@@ -1 +0,0 @@
1
- import{z as w}from"zod/v4";import{z as _}from"zod/v4";var PZ=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/,x=_.string().min(1).regex(PZ,"must be a valid ISO 8601 datetime"),C=_.string().min(1).regex(/^\d{4}-\d{2}-\d{2}$/,"must be a valid ISO 8601 date (YYYY-MM-DD)"),L=_.enum(["Reading","Language","Vocabulary","Social Studies","Writing","Science","FastMath","Math","None","Other"]).meta({id:"TimebackSubject",description:"Subject area"}),F=_.union([_.literal(-1),_.literal(0),_.literal(1),_.literal(2),_.literal(3),_.literal(4),_.literal(5),_.literal(6),_.literal(7),_.literal(8),_.literal(9),_.literal(10),_.literal(11),_.literal(12),_.literal(13)]).meta({id:"TimebackGrade",description:"Grade level (-1 = Pre-K, 0 = K, 1-12 = grades, 13 = AP)"}),T=_.enum(["exempt","fully graded","not submitted","partially graded","submitted"]),R=_.enum(["department","school","district","local","state","national"]),I=_.enum(["administrator","aide","guardian","parent","proctor","relative","student","teacher"]),u=_.enum(["administrator","proctor","student","teacher"]),d=_.enum(["qti","text","audio","video","interactive","visual","course-material","assessment-bank"]),c=_.enum(["qti-test","qti-question","qti-stimulus","qti-test-bank"]),s=_.enum(["unit","course","resource-collection"]),N=_.enum(["choice","order","associate","match","hotspot","hottext","select-point","graphic-order","graphic-associate","graphic-gap-match","text-entry","extended-text","inline-choice","upload","slider","drawing","media","custom"]),p=_.enum(["easy","medium","hard"]),y=_.array(_.object({source:_.string(),learningObjectiveIds:_.array(_.string())})),E=_.object({consecutive_failures:_.number().int().min(1).optional(),stagnation_limit:_.number().int().min(1).optional()}).optional(),Yq=_.enum(["powerpath-100","quiz","test-out","placement","unit-test","alpha-read-article"]).nullable(),_q=_.object({imsx_codeMajor:_.enum(["failure","success"]),imsx_severity:_.enum(["error","warning","status"]),imsx_description:_.string(),imsx_CodeMinor:_.object({imsx_codeMinorField:_.array(_.object({imsx_codeMinorFieldName:_.string(),imsx_codeMinorFieldValue:_.string()}))}).optional()});var UZ=w.object({staging:w.string().meta({description:"Course ID in staging environment"}).optional(),production:w.string().meta({description:"Course ID in production environment"}).optional()}).meta({id:"CourseIds",description:"Environment-specific course IDs (populated by sync)"}),QZ=w.enum(["base","hole-filling","optional"]).meta({id:"CourseType",description:"Course classification type"}),jZ=w.enum(["draft","testing","published","deactivated"]).meta({id:"PublishStatus",description:"Course publication status"}),AZ=w.object({dailyXp:w.number().int().positive().meta({description:"Target XP to earn per day"}).optional(),dailyLessons:w.number().int().positive().meta({description:"Target lessons to complete per day"}).optional(),dailyActiveMinutes:w.number().int().positive().meta({description:"Target active learning minutes per day"}).optional(),dailyAccuracy:w.number().int().min(0).max(100).meta({description:"Target accuracy percentage (0-100)"}).optional(),dailyMasteredUnits:w.number().int().positive().meta({description:"Target units to master per day"}).optional()}).meta({id:"CourseGoals",description:"Daily learning goals for a course"}),BZ=w.object({totalXp:w.number().int().positive().meta({description:"Total XP available in the course"}).optional(),totalLessons:w.number().int().positive().meta({description:"Total number of lessons/activities"}).optional(),totalGrades:w.number().int().positive().meta({description:"Total grade levels covered"}).optional()}).meta({id:"CourseMetrics",description:"Aggregate metrics for a course"}),m=w.object({courseType:QZ.optional(),isSupplemental:w.boolean().meta({description:"Whether this is supplemental to a base course"}).optional(),isCustom:w.boolean().meta({description:"Whether this is a custom course for an individual student"}).optional(),publishStatus:jZ.optional(),contactEmail:w.email().meta({description:"Contact email for course issues"}).optional(),primaryApp:w.string().meta({description:"Primary application identifier"}).optional(),goals:AZ.optional(),metrics:BZ.optional()}).meta({id:"CourseMetadata",description:"Course metadata (matches API metadata object)"}),S=w.object({courseCode:w.string().meta({description:"Course code (e.g., 'MATH101')"}).optional(),level:w.string().meta({description:"Course level (e.g., 'AP', 'Honors')"}).optional(),metadata:m.optional()}).meta({id:"CourseDefaults",description:"Default properties that apply to all courses unless overridden"}),g=w.object({level:w.string().meta({description:"Course level for this environment"}).optional(),sensor:w.url().meta({description:"Caliper sensor endpoint URL for this environment"}).optional(),launchUrl:w.url().meta({description:"LTI launch URL for this environment"}).optional(),metadata:m.optional()}).meta({id:"CourseEnvOverrides",description:"Environment-specific course overrides (non-identity fields)"}),GZ=w.object({staging:g.meta({description:"Overrides for staging environment"}).optional(),production:g.meta({description:"Overrides for production environment"}).optional()}).meta({id:"CourseOverrides",description:"Per-environment course overrides"}),hZ=S.extend({subject:L.meta({description:"Subject area for this course"}),grade:F.meta({description:"Grade level (-1 = Pre-K, 0 = K, 1-12 = grades, 13 = AP)"}).optional(),ids:UZ.nullable().optional(),sensor:w.url().meta({description:"Caliper sensor endpoint URL for this course"}).optional(),launchUrl:w.url().meta({description:"LTI launch URL for this course"}).optional(),overrides:GZ.optional()}).meta({id:"CourseConfig",description:"Configuration for a single course. Must have either grade or courseCode (or both)."}),Vq=w.object({$schema:w.string().meta({description:"JSON Schema reference for editor support"}).optional(),name:w.string().min(1,"App name is required").meta({description:"Display name for your app"}),defaults:S.meta({description:"Default properties applied to all courses"}).optional(),courses:w.array(hZ).min(1,"At least one course is required").meta({description:"Courses available in this app"}),sensor:w.url().meta({description:"Default Caliper sensor endpoint URL for all courses"}).optional(),launchUrl:w.url().meta({description:"Default LTI launch URL for all courses"}).optional()}).meta({id:"TimebackConfig",title:"Timeback Config",description:"Configuration schema for timeback.config.json files"}).refine((P)=>{return P.courses.every((U)=>U.grade!==void 0||U.courseCode!==void 0)},{message:"Each course must have either a grade or a courseCode",path:["courses"]}).refine((P)=>{let O=P.courses.filter((G)=>G.grade!==void 0).map((G)=>`${G.subject}:${G.grade}`);return new Set(O).size===O.length},{message:"Duplicate (subject, grade) pair found; each must be unique",path:["courses"]}).refine((P)=>{let O=P.courses.filter((G)=>G.courseCode!==void 0).map((G)=>G.courseCode);return new Set(O).size===O.length},{message:"Duplicate courseCode found; each must be unique",path:["courses"]}).refine((P)=>{return P.courses.every((U)=>{if(U.sensor!==void 0||P.sensor!==void 0)return!0;return[U.launchUrl,P.launchUrl,U.overrides?.staging?.launchUrl,U.overrides?.production?.launchUrl].filter(Boolean).length>0})},{message:"Each course must have an effective sensor. Either set `sensor` explicitly (top-level or per-course), or provide a `launchUrl` so sensor can be derived from its origin.",path:["courses"]});import{z as H}from"zod/v4";var D=H.object({id:H.string(),type:H.literal("TimebackUser"),email:H.string()}),k=H.object({id:H.string(),type:H.literal("TimebackActivityContext"),subject:L,app:H.object({name:H.string()}),activity:H.object({id:H.string().optional(),name:H.string()}).strict().optional(),course:H.object({id:H.string().optional(),name:H.string()}).strict().optional(),process:H.boolean().optional()}),o=H.object({"@context":H.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),id:H.string(),type:H.string(),eventTime:x,profile:H.literal("TimebackProfile"),actor:D,action:H.string(),object:k,edApp:H.object({id:H.string(),name:H.string().optional()}).optional()}),r=H.object({type:H.enum(["totalQuestions","correctQuestions","xpEarned","masteredUnits"]),value:H.number()}),OZ=H.object({id:H.string(),type:H.literal("TimebackActivityMetricsCollection"),attempt:H.number().optional(),items:H.array(r),extensions:H.record(H.string(),H.unknown()).optional()}),vZ=o.extend({type:H.literal("ActivityEvent"),action:H.literal("Completed"),generated:OZ}),a=H.object({type:H.enum(["active","inactive","waste","unknown","anti-pattern"]),value:H.number(),subType:H.string().optional()}),IZ=H.object({id:H.string(),type:H.literal("TimebackTimeSpentMetricsCollection"),items:H.array(a)}),CZ=o.extend({type:H.literal("TimeSpentEvent"),action:H.literal("SpentTime"),generated:IZ}),Pq=H.object({actor:D,object:k,metrics:H.array(r).min(1,"metrics must contain at least one metric"),eventTime:x.optional(),metricsId:H.string().optional(),id:H.string().optional(),extensions:H.record(H.string(),H.unknown()).optional(),edApp:H.union([H.string(),H.record(H.string(),H.unknown())]).optional(),session:H.union([H.string(),H.record(H.string(),H.unknown())]).optional(),attempt:H.number().int().min(1).optional(),generatedExtensions:H.object({pctCompleteApp:H.number().optional()}).loose().optional()}).strict(),Uq=H.object({actor:D,object:k,metrics:H.array(a).min(1,"metrics must contain at least one metric"),eventTime:x.optional(),metricsId:H.string().optional(),id:H.string().optional(),extensions:H.record(H.string(),H.unknown()).optional(),edApp:H.union([H.string(),H.record(H.string(),H.unknown())]).optional(),session:H.union([H.string(),H.record(H.string(),H.unknown())]).optional()}).strict(),DZ=H.union([vZ,CZ]),Qq=H.object({sensor:H.string(),sendTime:x,dataVersion:H.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),data:H.array(DZ)}),kZ=H.enum(["AnnotationProfile","AssessmentProfile","ToolUseProfile","GeneralProfile","FeedbackProfile","MediaProfile","SurveyProfile","ResourceManagementProfile","ForumProfile","AssignableProfile","GradingProfile","ReadingProfile","SessionProfile","SearchProfile","ToolLaunchProfile","TimebackProfile"]),A=H.union([H.string(),H.record(H.string(),H.unknown())]),fZ=H.object({id:H.string(),type:H.string(),extensions:H.object({email:H.email()}).loose()}).strict(),i=H.object({"@context":H.string().optional(),id:H.string(),type:H.string(),actor:H.union([H.string(),fZ,D]),action:H.string(),object:A,eventTime:x,profile:kZ,edApp:A.optional(),generated:A.optional(),target:A.optional(),referrer:A.optional(),group:A.optional(),membership:A.optional(),session:A.optional(),federatedSession:A.optional(),extensions:H.record(H.string(),H.unknown()).optional()}).strict(),jq=H.object({sensor:H.string().min(1,"sensor must be a non-empty string"),sendTime:x,dataVersion:H.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),data:H.array(i).min(1,"data must contain at least one event")}),Aq=H.object({sensor:H.string().min(1,"sensor must be a non-empty string"),events:H.array(i).min(1,"events must contain at least one event")}),Bq=H.object({limit:H.number().int().positive().optional(),offset:H.number().int().min(0).optional(),sensor:H.string().min(1).optional(),startDate:x.optional(),endDate:x.optional(),actorId:H.string().min(1).optional(),actorEmail:H.email().optional()}).strict();import{z as X}from"zod/v4";var j=X.union([x,C]),vq=X.object({id:X.string(),role:X.string(),beginDate:j.nullable(),endDate:j.nullable(),metadata:X.object({goals:X.object({dailyXp:X.number().optional()}).optional(),metrics:X.object({totalXp:X.number().optional(),totalLessons:X.number().optional()}).optional()}).optional(),course:X.object({id:X.string(),title:X.string(),subjects:X.array(X.string()).nullable(),grades:X.array(X.string()).nullable()}),school:X.object({id:X.string(),name:X.string()})}),MZ=X.object({activityMetrics:X.object({xpEarned:X.number(),totalQuestions:X.number(),correctQuestions:X.number(),masteredUnits:X.number()}),timeSpentMetrics:X.object({activeSeconds:X.number(),inactiveSeconds:X.number(),wasteSeconds:X.number()}),apps:X.array(X.string())}),lZ=X.record(X.string(),X.record(X.string(),MZ)),Iq=X.object({message:X.string(),enrollmentId:X.string(),startDate:j,endDate:j,facts:lZ,factsByApp:X.unknown()}),B=X.string().trim().min(1),z=X.object({email:X.email().optional(),studentId:B.optional()}).superRefine((P,U)=>{if(!P.email&&!P.studentId)U.addIssue({code:X.ZodIssueCode.custom,message:"must provide either email or studentId",path:["email"]}),U.addIssue({code:X.ZodIssueCode.custom,message:"must provide either email or studentId",path:["studentId"]})}),Cq=X.object({subject:B,grade:B,courseId:B,orgSourcedId:B.optional()});var Dq=X.object({userId:B}),kq=X.object({sourcedId:B.optional(),role:u.optional(),beginDate:j.optional(),metadata:X.record(X.string(),X.unknown()).optional()}),fq=X.object({fields:X.string().optional(),limit:X.number().int().positive().optional(),offset:X.number().int().nonnegative().optional(),sort:X.string().optional(),orderBy:X.enum(["asc","desc"]).optional(),filter:X.string().optional(),search:X.string().optional(),roles:X.array(I).min(1),orgSourcedIds:X.array(B).optional()}),Mq=z.extend({startDate:j,endDate:j,timezone:X.string().optional()}),lq=z.extend({weekDate:j,timezone:X.string().optional()}),bq=X.object({enrollmentId:B,startDate:j.optional(),endDate:j.optional(),timezone:X.string().optional()});import{z as q}from"zod/v4";var Y=q.string().min(1),V=q.enum(["active","tobedeleted"]),J=q.record(q.string(),q.unknown()).nullable().optional(),$=q.object({sourcedId:Y,type:q.string().optional(),href:q.string().optional()}).strict(),Q=q.union([C,x]),bZ=q.object({roleType:q.enum(["primary","secondary"]),role:I,org:$,userProfile:q.string().optional(),metadata:J,beginDate:Q.optional(),endDate:Q.optional()}).strict(),dq=q.object({sourcedId:Y.describe("sourcedId must be a non-empty string"),status:V.optional(),enabledUser:q.boolean(),givenName:Y.describe("givenName must be a non-empty string"),familyName:Y.describe("familyName must be a non-empty string"),middleName:Y.optional(),username:Y.optional(),email:q.email().optional(),roles:q.array(bZ).min(1,"roles must include at least one role"),userIds:q.array(q.object({type:Y,identifier:Y}).strict()).optional(),agents:q.array($).optional(),grades:q.array(F).optional(),identifier:Y.optional(),sms:Y.optional(),phone:Y.optional(),pronouns:Y.optional(),password:Y.optional(),metadata:J}).strict(),cq=q.object({sourcedId:Y.describe("sourcedId must be a non-empty string").optional(),status:V.optional(),title:Y.describe("title must be a non-empty string"),org:$,courseCode:Y.optional(),subjects:q.array(L).optional(),grades:q.array(F).optional(),level:Y.optional(),metadata:J}).strict(),sq=q.object({sourcedId:Y.describe("sourcedId must be a non-empty string").optional(),status:V.optional(),title:Y.describe("title must be a non-empty string"),terms:q.array($).min(1,"terms must have at least one item"),course:$,org:$,classCode:Y.optional(),classType:q.enum(["homeroom","scheduled"]).optional(),location:Y.optional(),grades:q.array(F).optional(),subjects:q.array(L).optional(),subjectCodes:q.array(Y).optional(),periods:q.array(Y).optional(),metadata:J}).strict(),e=q.enum(["true","false"]),Nq=q.object({sourcedId:Y.describe("sourcedId must be a non-empty string").optional(),status:V.optional(),user:$,class:$,school:$.optional(),role:I,primary:e.optional(),beginDate:Q.optional(),endDate:Q.optional(),metadata:J}).strict(),pq=q.object({sourcedId:Y.optional(),title:Y.describe("title must be a non-empty string"),status:V,weight:q.number().nullable().optional(),metadata:J}).strict(),yq=q.object({sourcedId:Y.optional(),title:Y.describe("title must be a non-empty string"),class:$,school:$,category:$,assignDate:Q,dueDate:Q,status:V,description:q.string().optional(),resultValueMin:q.number().nullable().optional(),resultValueMax:q.number().nullable().optional(),scoreScale:$.optional(),metadata:J}).strict(),Eq=q.object({sourcedId:Y.optional(),lineItem:$,student:$,class:$.optional(),scoreDate:Q,scoreStatus:q.enum(["exempt","fully graded","not submitted","partially graded","submitted"]),score:q.number().nullable().optional(),textScore:q.string().nullable().optional(),status:V,comment:q.string().nullable().optional(),metadata:J}).strict(),gq=q.object({sourcedId:Y.optional(),title:Y.describe("title must be a non-empty string"),status:V.optional(),type:q.string().optional(),class:$.optional(),course:$.nullable().optional(),scoreScaleValue:q.array(q.object({itemValueLHS:Y,itemValueRHS:Y,value:q.string().optional(),description:q.string().optional()}).strict()).optional(),minScore:q.number().optional(),maxScore:q.number().optional(),metadata:J}).strict(),mq=q.object({sourcedId:Y.optional(),status:V.optional(),dateLastModified:x.optional(),title:Y.describe("title must be a non-empty string"),description:q.string().nullable().optional(),class:$.nullable().optional(),parentAssessmentLineItem:$.nullable().optional(),scoreScale:$.nullable().optional(),resultValueMin:q.number().nullable().optional(),resultValueMax:q.number().nullable().optional(),component:$.nullable().optional(),componentResource:$.nullable().optional(),learningObjectiveSet:q.array(q.object({source:q.string(),learningObjectiveIds:q.array(q.string())})).optional().nullable(),course:$.nullable().optional(),metadata:J}).strict(),TZ=q.object({learningObjectiveId:q.string(),score:q.number().optional(),textScore:q.string().optional()}),RZ=q.array(q.object({source:q.string(),learningObjectiveResults:q.array(TZ)})),Sq=q.object({sourcedId:Y.optional(),status:V.optional(),dateLastModified:x.optional(),metadata:J,assessmentLineItem:$,student:$,score:q.number().nullable().optional(),textScore:q.string().nullable().optional(),scoreDate:q.string().datetime(),scoreScale:$.nullable().optional(),scorePercentile:q.number().nullable().optional(),scoreStatus:q.enum(["exempt","fully graded","not submitted","partially graded","submitted"]),comment:q.string().nullable().optional(),learningObjectiveSet:RZ.nullable().optional(),inProgress:q.string().nullable().optional(),incomplete:q.string().nullable().optional(),late:q.string().nullable().optional(),missing:q.string().nullable().optional()}).strict(),oq=q.object({sourcedId:Y.optional(),status:V.optional(),name:Y.describe("name must be a non-empty string"),type:R,identifier:Y.optional(),parent:$.optional(),metadata:J}).strict(),rq=q.object({sourcedId:Y.optional(),status:V.optional(),name:Y.describe("name must be a non-empty string"),type:q.literal("school").optional(),identifier:Y.optional(),parent:$.optional(),metadata:J}).strict(),aq=q.object({sourcedId:Y.describe("sourcedId must be a non-empty string"),status:V,title:Y.describe("title must be a non-empty string"),startDate:Q,endDate:Q,type:q.enum(["gradingPeriod","semester","schoolYear","term"]),schoolYear:Y.describe("schoolYear must be a non-empty string"),org:$,parent:$.optional(),children:q.array($).optional(),metadata:J}).strict(),iq=q.object({sourcedId:Y.optional(),title:Y.describe("title must be a non-empty string"),courseComponent:$,resource:$,status:V,metadata:J}).strict(),zq=q.object({sourcedId:Y.optional(),title:Y.describe("title must be a non-empty string"),course:$,status:V,metadata:J}).strict(),eq=q.object({sourcedId:Y.describe("sourcedId must be a non-empty string"),role:q.enum(["student","teacher"]),primary:e.optional(),beginDate:Q.optional(),endDate:Q.optional(),metadata:J}).strict(),nq=q.object({agentSourcedId:Y.describe("agentSourcedId must be a non-empty string")}).strict(),tq=q.object({type:Y.describe("type must be a non-empty string"),username:Y.describe("username must be a non-empty string"),password:q.string().optional(),metadata:J}).strict(),ZH=q.object({sourcedId:Y.describe("sourcedId must be a non-empty string")}).loose(),h=q.object({type:d,subject:L.nullish(),grades:q.array(F).nullish(),language:q.string().nullish(),xp:q.number().nullish(),url:q.url().nullish(),keywords:q.array(q.string()).nullish(),learningObjectiveSet:y.nullish(),lessonType:q.string().nullish()}).passthrough(),uZ=h.extend({type:q.literal("qti"),subType:c,questionType:N.optional(),difficulty:p.optional()}),dZ=h.extend({type:q.literal("text"),format:q.string(),author:q.string().optional(),pageCount:q.number().optional()}),cZ=h.extend({type:q.literal("audio"),duration:q.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),format:q.string(),speaker:q.string().optional()}),sZ=h.extend({type:q.literal("video"),duration:q.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),captionsAvailable:q.boolean().optional(),format:q.string()}),NZ=h.extend({type:q.literal("interactive"),launchUrl:q.url().optional(),toolProvider:q.string().optional(),instructionalMethod:q.string().optional(),courseIdOnFail:q.string().nullable().optional(),fail_fast:E}),pZ=h.extend({type:q.literal("visual"),format:q.string(),resolution:q.string().optional()}),yZ=h.extend({type:q.literal("course-material"),subType:s,author:q.string().optional(),format:q.string(),instructionalMethod:q.string().optional()}),EZ=h.extend({type:q.literal("assessment-bank"),resources:q.array(q.string())}),gZ=q.discriminatedUnion("type",[uZ,dZ,cZ,sZ,NZ,pZ,yZ,EZ]),qH=q.object({sourcedId:Y.optional(),title:Y.describe("title must be a non-empty string"),vendorResourceId:Y.describe("vendorResourceId must be a non-empty string"),roles:q.array(q.enum(["primary","secondary"])).optional(),importance:q.enum(["primary","secondary"]).optional(),vendorId:q.string().optional(),applicationId:q.string().optional(),status:V.optional(),metadata:gZ.nullable().optional()}).strict(),mZ=q.object({url:Y.describe("courseStructure.url must be a non-empty string"),skillCode:Y.describe("courseStructure.skillCode must be a non-empty string"),lessonCode:Y.describe("courseStructure.lessonCode must be a non-empty string"),title:Y.describe("courseStructure.title must be a non-empty string"),"unit-title":Y.describe("courseStructure.unit-title must be a non-empty string"),status:Y.describe("courseStructure.status must be a non-empty string"),xp:q.number()}).loose(),HH=q.object({course:q.object({sourcedId:Y.describe("course.sourcedId must be a non-empty string").optional(),title:Y.describe("course.title must be a non-empty string"),org:$,status:V,metadata:J}).strict(),courseStructure:q.record(q.string(),mZ)}).strict(),SZ=q.object({student:$}).loose(),KH=q.array(SZ).min(1,"results must have at least one item");import{z as K}from"zod/v4";var W=K.string().trim().min(1),oZ=K.enum(["edulastic","mastery-track"]),rZ=K.enum(["powerpath-100","quiz","test-out","placement","unit-test","alpha-read-article"]),t=K.array(F),ZZ=K.record(K.string(),K.unknown()).optional(),qZ=K.object({courseId:W,lessonTitle:W.optional(),launchUrl:K.url().optional(),toolProvider:oZ,unitTitle:W.optional(),courseComponentSourcedId:W.optional(),vendorId:W.optional(),description:W.optional(),resourceMetadata:ZZ.nullable().optional(),grades:t}),_H=qZ.extend({lessonType:K.literal("test-out"),xp:K.number()}),$H=qZ.extend({lessonType:K.literal("placement"),courseIdOnFail:W.optional(),xp:K.number().optional()});var n=K.object({courseId:W,lessonType:rZ,lessonTitle:W.optional(),unitTitle:W.optional(),courseComponentSourcedId:W.optional(),resourceMetadata:ZZ.nullable().optional(),xp:K.number().optional(),grades:t.optional(),courseIdOnFail:W.optional()}),wH=K.union([n.extend({testType:K.literal("qti"),qti:K.object({url:K.url(),title:W.optional(),metadata:K.record(K.string(),K.unknown()).optional()})}),n.extend({testType:K.literal("assessment-bank"),assessmentBank:K.object({resources:K.array(K.object({url:K.url(),title:W.optional(),metadata:K.record(K.string(),K.unknown()).optional()}))})})]),JH=K.object({student:W,lesson:W}),VH=K.object({student:W,lesson:W}),xH=K.object({courseId:W,userId:W,classId:W.optional()}),v=K.object({type:K.enum(["component","resource"]),id:W}),aZ=K.union([K.object({type:K.literal("set-skipped"),payload:K.object({target:v,value:K.boolean()})}),K.object({type:K.literal("add-custom-resource"),payload:K.object({resource_id:W,parent_component_id:W,skipped:K.boolean().optional()})}),K.object({type:K.literal("move-item-before"),payload:K.object({target:v,reference_id:W})}),K.object({type:K.literal("move-item-after"),payload:K.object({target:v,reference_id:W})}),K.object({type:K.literal("move-item-to-start"),payload:K.object({target:v})}),K.object({type:K.literal("move-item-to-end"),payload:K.object({target:v})}),K.object({type:K.literal("change-item-parent"),payload:K.object({target:v,new_parent_id:W,position:K.enum(["start","end"]).optional()})})]),FH=K.object({operation:K.array(aZ),reason:W.optional()}),LH=K.object({studentId:W,componentResourceId:W,result:K.object({status:K.enum(["active","tobedeleted"]),metadata:K.record(K.string(),K.unknown()).optional(),score:K.number().optional(),textScore:W.optional(),scoreDate:W,scorePercentile:K.number().optional(),scoreStatus:T,comment:W.optional(),learningObjectiveSet:K.array(K.object({source:W,learningObjectiveResults:K.array(K.object({learningObjectiveId:W,score:K.number().optional(),textScore:W.optional()}))})).optional(),inProgress:W.optional(),incomplete:W.optional(),late:W.optional(),missing:W.optional()})}),PH=K.object({student:W,lesson:W,applicationName:W.optional(),testId:W.optional(),skipCourseEnrollment:K.boolean().optional()}),UH=K.object({student:W,subject:L}),QH=K.object({student:W,lesson:W}),jH=K.object({userId:W}),AH=K.object({userId:W,subject:K.enum(["Math","Reading","Language","Science"])}),BH=K.object({student:W,subject:L,grade:F,testName:W.optional()}),GH=K.object({testName:W}),iZ=K.object({student:W,subject:L,grade:F,testName:W.optional()}),hH=K.object({items:K.array(iZ)}),OH=K.object({spreadsheetUrl:K.url(),sheet:W}),vH=K.object({student:W,status:K.enum(["assigned","in_progress","completed","failed","expired","cancelled"]).optional(),subject:W.optional(),grade:F.optional(),limit:K.number().int().positive().max(3000).optional(),offset:K.number().int().nonnegative().optional()}),IH=K.object({student:W.optional(),status:K.enum(["assigned","in_progress","completed","failed","expired","cancelled"]).optional(),subject:W.optional(),grade:F.optional(),limit:K.number().int().positive().max(3000).optional(),offset:K.number().int().nonnegative().optional()}),CH=K.object({student:W,question:W,response:K.union([W,K.array(W)]).optional(),responses:K.record(K.string(),K.union([W,K.array(W)])).optional(),lesson:W}),DH=K.object({student:W,lesson:W,attempt:K.number().int().positive().optional()}),kH=K.object({student:W,lesson:W}),fH=K.object({student:W,lesson:W}),MH=K.object({student:W,lesson:W.optional(),finalized:K.boolean().optional(),toolProvider:W.optional(),attempt:K.number().int().positive().optional()}),lH=K.object({student:W,lesson:W,applicationName:W.optional()}),bH=K.object({student:W,subject:L}),TH=K.object({status:K.enum(["active","tobedeleted"]).optional()});import{z as Z}from"zod/v4";var HZ=Z.enum(["choice","text-entry","extended-text","inline-choice","match","order","associate","select-point","graphic-order","graphic-associate","graphic-gap-match","hotspot","hottext","slider","drawing","media","upload"]),f=Z.enum(["single","multiple","ordered","record"]),M=Z.enum(["identifier","boolean","integer","float","string","point","pair","directedPair","duration","file","uri"]),zZ=Z.enum(["easy","medium","hard"]),eZ=Z.enum(["linear","nonlinear"]),nZ=Z.enum(["individual","simultaneous"]),l=Z.enum(["show","hide"]),KZ=Z.enum(["test","item","stimulus"]),cH=Z.enum(["QUESTION","LESSON"]),tZ=Z.object({value:Z.array(Z.string())}).strict(),WZ=Z.object({identifier:Z.string().min(1),cardinality:f,baseType:M.optional(),correctResponse:tZ}).strict(),XZ=Z.object({identifier:Z.string().min(1),cardinality:f,baseType:M.optional()}).strict(),YZ=Z.object({identifier:Z.string().min(1),cardinality:f.optional(),baseType:M,normalMaximum:Z.number().optional(),normalMinimum:Z.number().optional(),defaultValue:Z.object({value:Z.unknown().optional()}).strict().optional()}).strict(),Zq=Z.object({outcomeIdentifier:Z.string().min(1),variableIdentifier:Z.string().min(1)}).strict(),_Z=Z.object({templateType:Z.enum(["match_correct","map_response"]),responseDeclarationIdentifier:Z.string().min(1),outcomeIdentifier:Z.string().min(1),correctResponseIdentifier:Z.string().min(1),incorrectResponseIdentifier:Z.string().min(1),inlineFeedback:Zq.optional()}).strict(),qq=Z.object({source:Z.string().min(1),learningObjectiveIds:Z.array(Z.string())}).strict(),b=Z.object({subject:Z.string().optional(),grade:F.optional(),difficulty:zZ.optional(),learningObjectiveSet:Z.array(qq).optional()}).loose(),$Z=Z.object({outcomeIdentifier:Z.string().min(1),identifier:Z.string().min(1),showHide:l,content:Z.string(),title:Z.string()}).strict(),wZ=Z.object({outcomeIdentifier:Z.string().min(1),identifier:Z.string().min(1),showHide:l,content:Z.string(),class:Z.array(Z.string())}).strict(),JZ=Z.object({outcomeIdentifier:Z.string().min(1),identifier:Z.string().min(1),showHide:l,content:Z.string(),class:Z.array(Z.string())}).strict(),VZ=Z.object({href:Z.string().min(1),type:Z.string().min(1)}).strict(),xZ=Z.object({id:Z.string().min(1),support:Z.string(),content:Z.string()}).strict(),sH=Z.object({page:Z.number().int().positive().optional(),limit:Z.number().int().positive().optional(),sort:Z.string().optional(),order:Z.enum(["asc","desc"]).optional()}).strict(),Hq=Z.object({format:Z.string().pipe(Z.literal("xml")),xml:Z.string().min(1),metadata:b.optional()}).strict(),Kq=Z.object({identifier:Z.string().min(1),title:Z.string().min(1),type:HZ,qtiVersion:Z.string().optional(),timeDependent:Z.boolean().optional(),adaptive:Z.boolean().optional(),responseDeclarations:Z.array(WZ).optional(),outcomeDeclarations:Z.array(XZ).optional(),responseProcessing:_Z.optional(),metadata:b.optional(),modalFeedback:Z.array($Z).optional(),feedbackInline:Z.array(wZ).optional(),feedbackBlock:Z.array(JZ).optional()}).strict(),NH=Z.union([Hq,Kq]),pH=Z.object({identifier:Z.string().min(1).optional(),title:Z.string().min(1),type:HZ,qtiVersion:Z.string().optional(),timeDependent:Z.boolean().optional(),adaptive:Z.boolean().optional(),responseDeclarations:Z.array(WZ).optional(),outcomeDeclarations:Z.array(XZ).optional(),responseProcessing:_Z.optional(),metadata:b.optional(),modalFeedback:Z.array($Z).optional(),feedbackInline:Z.array(wZ).optional(),feedbackBlock:Z.array(JZ).optional(),rawXml:Z.string(),content:Z.record(Z.string(),Z.unknown())}).strict(),yH=Z.object({response:Z.union([Z.string(),Z.array(Z.string())])}).strict(),FZ=Z.object({identifier:Z.string().min(1),href:Z.union([Z.string(),Z.array(Z.string()),Z.array(Z.array(Z.string()))]).optional(),sequence:Z.number().optional()}).strict(),Wq=Z.object({identifier:Z.string().min(1),title:Z.string().min(1),visible:Z.boolean(),required:Z.boolean().optional(),fixed:Z.boolean().optional(),sequence:Z.number().optional(),"qti-assessment-item-ref":Z.array(FZ).optional()}).strict(),LZ=Z.object({identifier:Z.string().min(1),navigationMode:Z.string().pipe(eZ),submissionMode:Z.string().pipe(nZ),"qti-assessment-section":Z.array(Wq)}).strict(),EH=Z.object({items:Z.array(FZ).min(1)}).strict(),gH=Z.object({metadata:Z.record(Z.string(),Z.unknown()).optional()}).strict(),mH=Z.object({identifier:Z.string().min(1),title:Z.string().min(1),qtiVersion:Z.string().optional(),toolName:Z.string().optional(),toolVersion:Z.string().optional(),timeLimit:Z.number().optional(),maxAttempts:Z.number().optional(),toolsEnabled:Z.record(Z.string(),Z.boolean()).optional(),metadata:Z.record(Z.string(),Z.unknown()).optional(),"qti-test-part":Z.array(LZ),"qti-outcome-declaration":Z.array(YZ).optional()}).strict(),SH=Z.object({identifier:Z.string().min(1).optional(),title:Z.string().min(1),qtiVersion:Z.string().optional(),toolName:Z.string().optional(),toolVersion:Z.string().optional(),timeLimit:Z.number().optional(),maxAttempts:Z.number().optional(),toolsEnabled:Z.record(Z.string(),Z.boolean()).optional(),metadata:Z.record(Z.string(),Z.unknown()).optional(),"qti-test-part":Z.array(LZ),"qti-outcome-declaration":Z.array(YZ).optional()}).strict(),oH=Z.object({identifier:Z.string().min(1),title:Z.string().min(1),label:Z.string().optional(),language:Z.string().optional(),stylesheet:VZ.optional(),content:Z.string(),catalogInfo:Z.array(xZ).optional(),toolName:Z.string().optional(),toolVersion:Z.string().optional(),metadata:Z.record(Z.string(),Z.unknown()).optional()}).strict(),rH=Z.object({identifier:Z.string().min(1).optional(),title:Z.string().min(1),label:Z.string().optional(),language:Z.string().optional(),stylesheet:VZ.optional(),content:Z.string(),catalogInfo:Z.array(xZ).optional(),toolName:Z.string().optional(),toolVersion:Z.string().optional(),metadata:Z.record(Z.string(),Z.unknown()).optional()}).strict(),aH=Z.object({xml:Z.string().optional(),schema:KZ,entityId:Z.string().optional()}).strict(),iH=Z.object({xml:Z.array(Z.string()),schema:KZ,entityIds:Z.array(Z.string())}).strict(),zH=Z.object({questionId:Z.string().optional(),userId:Z.string().min(1),feedback:Z.string().min(1),lessonId:Z.string().min(1),humanApproved:Z.boolean().optional()}).strict();export{L as a,F as b,Vq as c};