@timeback/sdk 0.1.11 → 0.1.13-beta.20260219190739

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.11",
3
+ "version": "0.1.13-beta.20260219190739",
4
4
  "description": "Timeback SDK for frontend and backend integration",
5
5
  "type": "module",
6
6
  "exports": {
@@ -75,19 +75,19 @@
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
  },
82
82
  "devDependencies": {
83
- "@timeback/caliper": "0.1.5",
84
- "@timeback/edubridge": "0.1.4",
83
+ "@timeback/caliper": "0.1.6",
84
+ "@timeback/edubridge": "0.1.5",
85
85
  "@timeback/internal-cli-infra": "0.0.0",
86
86
  "@timeback/internal-client-infra": "0.0.0",
87
87
  "@timeback/internal-logger": "0.0.0",
88
88
  "@timeback/internal-test": "0.0.0",
89
89
  "@timeback/internal-utils": "0.0.0",
90
- "@timeback/oneroster": "0.1.6",
90
+ "@timeback/oneroster": "0.1.7",
91
91
  "@timeback/types": "0.0.0",
92
92
  "@types/bun": "latest",
93
93
  "@types/express": "^5.0.6",
@@ -1 +0,0 @@
1
- import{z as H}from"zod/v4";import{z as _}from"zod/v4";var jZ=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/,x=_.string().min(1).regex(jZ,"must be a valid ISO 8601 datetime"),k=_.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)"}),l=_.enum(["exempt","fully graded","not submitted","partially graded","submitted"]),T=_.enum(["department","school","district","local","state","national"]),C=_.enum(["administrator","aide","guardian","parent","proctor","relative","student","teacher"]),R=_.enum(["administrator","proctor","student","teacher"]),u=_.enum(["qti","text","audio","video","interactive","visual","course-material","assessment-bank"]),d=_.enum(["qti-test","qti-question","qti-stimulus","qti-test-bank"]),N=_.enum(["unit","course","resource-collection"]),c=_.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"]),E=_.array(_.object({source:_.string(),learningObjectiveIds:_.array(_.string())})),y=_.object({consecutive_failures:_.number().int().min(1).optional(),stagnation_limit:_.number().int().min(1).optional()}).optional(),Wq=_.enum(["powerpath-100","quiz","test-out","placement","unit-test","alpha-read-article"]).nullable(),Xq=_.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 PZ=H.object({staging:H.string().meta({description:"Course ID in staging environment"}).optional(),production:H.string().meta({description:"Course ID in production environment"}).optional()}).meta({id:"CourseIds",description:"Environment-specific course IDs (populated by sync)"}),GZ=H.enum(["base","hole-filling","optional"]).meta({id:"CourseType",description:"Course classification type"}),BZ=H.enum(["draft","testing","published","deactivated"]).meta({id:"PublishStatus",description:"Course publication status"}),AZ=H.object({dailyXp:H.number().int().positive().meta({description:"Target XP to earn per day"}).optional(),dailyLessons:H.number().int().positive().meta({description:"Target lessons to complete per day"}).optional(),dailyActiveMinutes:H.number().int().positive().meta({description:"Target active learning minutes per day"}).optional(),dailyAccuracy:H.number().int().min(0).max(100).meta({description:"Target accuracy percentage (0-100)"}).optional(),dailyMasteredUnits:H.number().int().positive().meta({description:"Target units to master per day"}).optional()}).meta({id:"CourseGoals",description:"Daily learning goals for a course"}),hZ=H.object({totalXp:H.number().int().positive().meta({description:"Total XP available in the course"}).optional(),totalLessons:H.number().int().positive().meta({description:"Total number of lessons/activities"}).optional(),totalGrades:H.number().int().positive().meta({description:"Total grade levels covered"}).optional()}).meta({id:"CourseMetrics",description:"Aggregate metrics for a course"}),g=H.object({courseType:GZ.optional(),isSupplemental:H.boolean().meta({description:"Whether this is supplemental to a base course"}).optional(),isCustom:H.boolean().meta({description:"Whether this is a custom course for an individual student"}).optional(),publishStatus:BZ.optional(),contactEmail:H.email().meta({description:"Contact email for course issues"}).optional(),primaryApp:H.string().meta({description:"Primary application identifier"}).optional(),goals:AZ.optional(),metrics:hZ.optional()}).meta({id:"CourseMetadata",description:"Course metadata (matches API metadata object)"}),m=H.object({courseCode:H.string().meta({description:"Course code (e.g., 'MATH101')"}).optional(),level:H.string().meta({description:"Course level (e.g., 'AP', 'Honors')"}).optional(),metadata:g.optional()}).meta({id:"CourseDefaults",description:"Default properties that apply to all courses unless overridden"}),s=H.object({level:H.string().meta({description:"Course level for this environment"}).optional(),sensor:H.url().meta({description:"Caliper sensor endpoint URL for this environment"}).optional(),launchUrl:H.url().meta({description:"LTI launch URL for this environment"}).optional(),metadata:g.optional()}).meta({id:"CourseEnvOverrides",description:"Environment-specific course overrides (non-identity fields)"}),OZ=H.object({staging:s.meta({description:"Overrides for staging environment"}).optional(),production:s.meta({description:"Overrides for production environment"}).optional()}).meta({id:"CourseOverrides",description:"Per-environment course overrides"}),vZ=m.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:PZ.nullable().optional(),sensor:H.url().meta({description:"Caliper sensor endpoint URL for this course"}).optional(),launchUrl:H.url().meta({description:"LTI launch URL for this course"}).optional(),overrides:OZ.optional()}).meta({id:"CourseConfig",description:"Configuration for a single course. Must have either grade or courseCode (or both)."}),Hq=H.object({$schema:H.string().meta({description:"JSON Schema reference for editor support"}).optional(),name:H.string().min(1,"App name is required").meta({description:"Display name for your app"}),defaults:m.meta({description:"Default properties applied to all courses"}).optional(),courses:H.array(vZ).min(1,"At least one course is required").meta({description:"Courses available in this app"}),sensor:H.url().meta({description:"Default Caliper sensor endpoint URL for all courses"}).optional(),launchUrl:H.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((U)=>{return U.courses.every((j)=>j.grade!==void 0||j.courseCode!==void 0)},{message:"Each course must have either a grade or a courseCode",path:["courses"]}).refine((U)=>{let v=U.courses.filter((h)=>h.grade!==void 0).map((h)=>`${h.subject}:${h.grade}`);return new Set(v).size===v.length},{message:"Duplicate (subject, grade) pair found; each must be unique",path:["courses"]}).refine((U)=>{let v=U.courses.filter((h)=>h.courseCode!==void 0).map((h)=>h.courseCode);return new Set(v).size===v.length},{message:"Duplicate courseCode found; each must be unique",path:["courses"]}).refine((U)=>{return U.courses.every((j)=>{if(j.sensor!==void 0||U.sensor!==void 0)return!0;return[j.launchUrl,U.launchUrl,j.overrides?.staging?.launchUrl,j.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 J}from"zod/v4";var D=J.object({id:J.string(),type:J.literal("TimebackUser"),email:J.string()}),Q=J.object({id:J.string(),type:J.literal("TimebackActivityContext"),subject:L,app:J.object({name:J.string()}),activity:J.object({id:J.string().optional(),name:J.string()}).strict().optional(),course:J.object({id:J.string().optional(),name:J.string()}).strict().optional(),process:J.boolean().optional()}),S=J.object({"@context":J.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),id:J.string(),type:J.string(),eventTime:x,profile:J.literal("TimebackProfile"),actor:D,action:J.string(),object:Q,edApp:J.object({id:J.string(),name:J.string().optional()}).optional()}),o=J.object({type:J.enum(["totalQuestions","correctQuestions","xpEarned","masteredUnits"]),value:J.number()}),IZ=J.object({id:J.string(),type:J.literal("TimebackActivityMetricsCollection"),attempt:J.number().optional(),items:J.array(o),extensions:J.record(J.string(),J.unknown()).optional()}),CZ=S.extend({type:J.literal("ActivityEvent"),action:J.literal("Completed"),generated:IZ}),r=J.object({type:J.enum(["active","inactive","waste","unknown","anti-pattern"]),value:J.number(),subType:J.string().optional()}),kZ=J.object({id:J.string(),type:J.literal("TimebackTimeSpentMetricsCollection"),items:J.array(r)}),DZ=S.extend({type:J.literal("TimeSpentEvent"),action:J.literal("SpentTime"),generated:kZ}),Fq=J.object({actor:D,object:Q,metrics:J.array(o).min(1,"metrics must contain at least one metric"),eventTime:x.optional(),metricsId:J.string().optional(),id:J.string().optional(),extensions:J.record(J.string(),J.unknown()).optional(),edApp:J.union([J.string(),J.record(J.string(),J.unknown())]).optional(),session:J.union([J.string(),J.record(J.string(),J.unknown())]).optional(),attempt:J.number().int().min(1).optional(),generatedExtensions:J.object({pctCompleteApp:J.number().optional()}).loose().optional()}).strict(),Lq=J.object({actor:D,object:Q,metrics:J.array(r).min(1,"metrics must contain at least one metric"),eventTime:x.optional(),metricsId:J.string().optional(),id:J.string().optional(),extensions:J.record(J.string(),J.unknown()).optional(),edApp:J.union([J.string(),J.record(J.string(),J.unknown())]).optional(),session:J.union([J.string(),J.record(J.string(),J.unknown())]).optional()}).strict(),QZ=J.union([CZ,DZ]),Uq=J.object({sensor:J.string(),sendTime:x,dataVersion:J.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),data:J.array(QZ)}),MZ=J.enum(["AnnotationProfile","AssessmentProfile","ToolUseProfile","GeneralProfile","FeedbackProfile","MediaProfile","SurveyProfile","ResourceManagementProfile","ForumProfile","AssignableProfile","GradingProfile","ReadingProfile","SessionProfile","SearchProfile","ToolLaunchProfile","TimebackProfile"]),B=J.union([J.string(),J.record(J.string(),J.unknown())]),fZ=J.object({id:J.string(),type:J.string(),extensions:J.object({email:J.email()}).loose()}).strict(),a=J.object({"@context":J.string().optional(),id:J.string(),type:J.string(),actor:J.union([J.string(),fZ,D]),action:J.string(),object:B,eventTime:x,profile:MZ,edApp:B.optional(),generated:B.optional(),target:B.optional(),referrer:B.optional(),group:B.optional(),membership:B.optional(),session:B.optional(),federatedSession:B.optional(),extensions:J.record(J.string(),J.unknown()).optional()}).strict(),jq=J.object({sensor:J.string().min(1,"sensor must be a non-empty string"),sendTime:x,dataVersion:J.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),data:J.array(a).min(1,"data must contain at least one event")}),Pq=J.object({sensor:J.string().min(1,"sensor must be a non-empty string"),events:J.array(a).min(1,"events must contain at least one event")}),Gq=J.object({limit:J.number().int().positive().optional(),offset:J.number().int().min(0).optional(),sensor:J.string().min(1).optional(),startDate:x.optional(),endDate:x.optional(),actorId:J.string().min(1).optional(),actorEmail:J.email().optional()}).strict();import{z as X}from"zod/v4";var G=X.union([x,k]),Oq=X.object({id:X.string(),role:X.string(),beginDate:G.nullable(),endDate:G.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()})}),bZ=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(),bZ)),vq=X.object({message:X.string(),enrollmentId:X.string(),startDate:G,endDate:G,facts:lZ,factsByApp:X.unknown()}),A=X.string().trim().min(1),i=X.object({email:X.email().optional(),studentId:A.optional()}).superRefine((U,j)=>{if(!U.email&&!U.studentId)j.addIssue({code:X.ZodIssueCode.custom,message:"must provide either email or studentId",path:["email"]}),j.addIssue({code:X.ZodIssueCode.custom,message:"must provide either email or studentId",path:["studentId"]})}),Iq=X.object({subject:A,grade:A,courseId:A,orgSourcedId:A.optional()});var Cq=X.object({userId:A}),kq=X.object({sourcedId:A.optional(),role:R.optional(),beginDate:G.optional(),metadata:X.record(X.string(),X.unknown()).optional()}),Dq=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(C).min(1),orgSourcedIds:X.array(A).optional()}),Qq=i.extend({startDate:G,endDate:G,timezone:X.string().optional()}),Mq=i.extend({weekDate:G,timezone:X.string().optional()}),fq=X.object({enrollmentId:A,startDate:G.optional(),endDate:G.optional(),timezone:X.string().optional()});import{z as q}from"zod/v4";var Y=q.string().min(1),V=q.enum(["active","tobedeleted"]),w=q.record(q.string(),q.unknown()).nullable().optional(),$=q.object({sourcedId:Y,type:q.string().optional(),href:q.string().optional()}).strict(),P=q.union([k,x]),TZ=q.object({roleType:q.enum(["primary","secondary"]),role:C,org:$,userProfile:q.string().optional(),metadata:w,beginDate:P.optional(),endDate:P.optional()}).strict(),Rq=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(TZ).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:w}).strict(),uq=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:w}).strict(),dq=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:w}).strict(),n=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:C,primary:n.optional(),beginDate:P.optional(),endDate:P.optional(),metadata:w}).strict(),cq=q.object({sourcedId:Y.optional(),title:Y.describe("title must be a non-empty string"),status:V,weight:q.number().nullable().optional(),metadata:w}).strict(),pq=q.object({sourcedId:Y.optional(),title:Y.describe("title must be a non-empty string"),class:$,school:$,category:$,assignDate:P,dueDate:P,status:V,description:q.string().optional(),resultValueMin:q.number().nullable().optional(),resultValueMax:q.number().nullable().optional(),scoreScale:$.optional(),metadata:w}).strict(),Eq=q.object({sourcedId:Y.optional(),lineItem:$,student:$,class:$.optional(),scoreDate:P,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:w}).strict(),yq=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:w}).strict(),sq=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:w}).strict(),RZ=q.object({learningObjectiveId:q.string(),score:q.number().optional(),textScore:q.string().optional()}),uZ=q.array(q.object({source:q.string(),learningObjectiveResults:q.array(RZ)})),gq=q.object({sourcedId:Y.optional(),status:V.optional(),dateLastModified:x.optional(),metadata:w,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:uZ.nullable().optional(),inProgress:q.string().nullable().optional(),incomplete:q.string().nullable().optional(),late:q.string().nullable().optional(),missing:q.string().nullable().optional()}).strict(),mq=q.object({sourcedId:Y.optional(),status:V.optional(),name:Y.describe("name must be a non-empty string"),type:T,identifier:Y.optional(),parent:$.optional(),metadata:w}).strict(),Sq=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:w}).strict(),oq=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:P,endDate:P,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:w}).strict(),rq=q.object({sourcedId:Y.optional(),title:Y.describe("title must be a non-empty string"),courseComponent:$,resource:$,status:V,metadata:w}).strict(),aq=q.object({sourcedId:Y.optional(),title:Y.describe("title must be a non-empty string"),course:$,status:V,metadata:w}).strict(),iq=q.object({sourcedId:Y.describe("sourcedId must be a non-empty string"),role:q.enum(["student","teacher"]),primary:n.optional(),beginDate:P.optional(),endDate:P.optional(),metadata:w}).strict(),nq=q.object({agentSourcedId:Y.describe("agentSourcedId must be a non-empty string")}).strict(),eq=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:w}).strict(),zq=q.object({sourcedId:Y.describe("sourcedId must be a non-empty string")}).loose(),O=q.object({type:u,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:E.nullish(),lessonType:q.string().nullish()}).passthrough(),dZ=O.extend({type:q.literal("qti"),subType:d,questionType:c.optional(),difficulty:p.optional()}),NZ=O.extend({type:q.literal("text"),format:q.string(),author:q.string().optional(),pageCount:q.number().optional()}),cZ=O.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()}),pZ=O.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()}),EZ=O.extend({type:q.literal("interactive"),launchUrl:q.url().optional(),toolProvider:q.string().optional(),instructionalMethod:q.string().optional(),courseIdOnFail:q.string().nullable().optional(),fail_fast:y}),yZ=O.extend({type:q.literal("visual"),format:q.string(),resolution:q.string().optional()}),sZ=O.extend({type:q.literal("course-material"),subType:N,author:q.string().optional(),format:q.string(),instructionalMethod:q.string().optional()}),gZ=O.extend({type:q.literal("assessment-bank"),resources:q.array(q.string())}),mZ=q.discriminatedUnion("type",[dZ,NZ,cZ,pZ,EZ,yZ,sZ,gZ]),tq=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:mZ.nullable().optional()}).strict(),SZ=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(),ZJ=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:w}).strict(),courseStructure:q.record(q.string(),SZ)}).strict(),oZ=q.object({student:$}).loose(),qJ=q.array(oZ).min(1,"results must have at least one item");import{z as K}from"zod/v4";var W=K.string().trim().min(1),rZ=K.enum(["edulastic","mastery-track"]),aZ=K.enum(["powerpath-100","quiz","test-out","placement","unit-test","alpha-read-article"]),z=K.array(F),t=K.record(K.string(),K.unknown()).optional(),ZZ=K.object({courseId:W,lessonTitle:W.optional(),launchUrl:K.url().optional(),toolProvider:rZ,unitTitle:W.optional(),courseComponentSourcedId:W.optional(),vendorId:W.optional(),description:W.optional(),resourceMetadata:t.nullable().optional(),grades:z}),XJ=ZZ.extend({lessonType:K.literal("test-out"),xp:K.number()}),YJ=ZZ.extend({lessonType:K.literal("placement"),courseIdOnFail:W.optional(),xp:K.number().optional()});var e=K.object({courseId:W,lessonType:aZ,lessonTitle:W.optional(),unitTitle:W.optional(),courseComponentSourcedId:W.optional(),resourceMetadata:t.nullable().optional(),xp:K.number().optional(),grades:z.optional(),courseIdOnFail:W.optional()}),_J=K.union([e.extend({testType:K.literal("qti"),qti:K.object({url:K.url(),title:W.optional(),metadata:K.record(K.string(),K.unknown()).optional()})}),e.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()}))})})]),$J=K.object({student:W,lesson:W}),HJ=K.object({student:W,lesson:W}),wJ=K.object({courseId:W,userId:W,classId:W.optional()}),I=K.object({type:K.enum(["component","resource"]),id:W}),iZ=K.union([K.object({type:K.literal("set-skipped"),payload:K.object({target:I,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:I,reference_id:W})}),K.object({type:K.literal("move-item-after"),payload:K.object({target:I,reference_id:W})}),K.object({type:K.literal("move-item-to-start"),payload:K.object({target:I})}),K.object({type:K.literal("move-item-to-end"),payload:K.object({target:I})}),K.object({type:K.literal("change-item-parent"),payload:K.object({target:I,new_parent_id:W,position:K.enum(["start","end"]).optional()})})]),VJ=K.object({operation:K.array(iZ),reason:W.optional()}),xJ=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:l,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()})}),FJ=K.object({student:W,lesson:W,applicationName:W.optional(),testId:W.optional(),skipCourseEnrollment:K.boolean().optional()}),LJ=K.object({student:W,subject:L}),UJ=K.object({student:W,lesson:W}),jJ=K.object({userId:W}),PJ=K.object({userId:W,subject:K.enum(["Math","Reading","Language","Science"])}),GJ=K.object({student:W,subject:L,grade:F,testName:W.optional()}),BJ=K.object({testName:W}),nZ=K.object({student:W,subject:L,grade:F,testName:W.optional()}),AJ=K.object({items:K.array(nZ)}),hJ=K.object({spreadsheetUrl:K.url(),sheet:W}),OJ=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()}),vJ=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()}),IJ=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}),CJ=K.object({student:W,lesson:W,attempt:K.number().int().positive().optional()}),kJ=K.object({student:W,lesson:W}),DJ=K.object({student:W,lesson:W}),QJ=K.object({student:W,lesson:W.optional(),finalized:K.boolean().optional(),toolProvider:W.optional(),attempt:K.number().int().positive().optional()}),MJ=K.object({student:W,lesson:W,applicationName:W.optional()}),fJ=K.object({student:W,subject:L}),bJ=K.object({status:K.enum(["active","tobedeleted"]).optional()});import{z as Z}from"zod/v4";var JZ=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"]),M=Z.enum(["single","multiple","ordered","record"]),f=Z.enum(["identifier","boolean","integer","float","string","point","pair","directedPair","duration","file","uri"]),eZ=Z.enum(["easy","medium","hard"]),zZ=Z.enum(["linear","nonlinear"]),tZ=Z.enum(["individual","simultaneous"]),b=Z.enum(["show","hide"]),KZ=Z.enum(["test","item","stimulus"]),uJ=Z.enum(["QUESTION","LESSON"]),Zq=Z.object({value:Z.array(Z.string())}).strict(),WZ=Z.object({identifier:Z.string().min(1),cardinality:M,baseType:f.optional(),correctResponse:Zq}).strict(),XZ=Z.object({identifier:Z.string().min(1),cardinality:M,baseType:f.optional()}).strict(),YZ=Z.object({identifier:Z.string().min(1),cardinality:M.optional(),baseType:f,normalMaximum:Z.number().optional(),normalMinimum:Z.number().optional(),defaultValue:Z.object({value:Z.unknown().optional()}).strict().optional()}).strict(),qq=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:qq.optional()}).strict(),Jq=Z.object({source:Z.string().min(1),learningObjectiveIds:Z.array(Z.string())}).strict(),$Z=Z.object({subject:Z.string().optional(),grade:F.optional(),difficulty:eZ.optional(),learningObjectiveSet:Z.array(Jq).optional()}).strict(),HZ=Z.object({outcomeIdentifier:Z.string().min(1),identifier:Z.string().min(1),showHide:b,content:Z.string(),title:Z.string()}).strict(),wZ=Z.object({outcomeIdentifier:Z.string().min(1),identifier:Z.string().min(1),showHide:b,content:Z.string(),class:Z.array(Z.string())}).strict(),VZ=Z.object({outcomeIdentifier:Z.string().min(1),identifier:Z.string().min(1),showHide:b,content:Z.string(),class:Z.array(Z.string())}).strict(),xZ=Z.object({href:Z.string().min(1),type:Z.string().min(1)}).strict(),FZ=Z.object({id:Z.string().min(1),support:Z.string(),content:Z.string()}).strict(),dJ=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(),NJ=Z.object({identifier:Z.string().min(1),title:Z.string().min(1),type:JZ,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:$Z.optional(),modalFeedback:Z.array(HZ).optional(),feedbackInline:Z.array(wZ).optional(),feedbackBlock:Z.array(VZ).optional()}).strict(),cJ=Z.object({identifier:Z.string().min(1).optional(),title:Z.string().min(1),type:JZ,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:$Z.optional(),modalFeedback:Z.array(HZ).optional(),feedbackInline:Z.array(wZ).optional(),feedbackBlock:Z.array(VZ).optional(),rawXml:Z.string(),content:Z.record(Z.string(),Z.unknown())}).strict(),pJ=Z.object({response:Z.union([Z.string(),Z.array(Z.string())])}).strict(),LZ=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(),qZ=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(LZ).optional()}).strict(),UZ=Z.object({identifier:Z.string().min(1),navigationMode:zZ,submissionMode:tZ,"qti-assessment-section":Z.union([qZ,Z.array(qZ)])}).strict(),EJ=Z.object({items:Z.array(LZ).min(1)}).strict(),yJ=Z.object({metadata:Z.record(Z.string(),Z.unknown()).optional()}).strict(),sJ=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":UZ,"qti-outcome-declaration":Z.array(YZ).optional()}).strict(),gJ=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":UZ,"qti-outcome-declaration":Z.array(YZ).optional()}).strict(),mJ=Z.object({identifier:Z.string().min(1),title:Z.string().min(1),label:Z.string().optional(),language:Z.string().optional(),stylesheet:xZ.optional(),content:Z.string(),catalogInfo:Z.array(FZ).optional(),toolName:Z.string().optional(),toolVersion:Z.string().optional(),metadata:Z.record(Z.string(),Z.unknown()).optional()}).strict(),SJ=Z.object({identifier:Z.string().min(1).optional(),title:Z.string().min(1),label:Z.string().optional(),language:Z.string().optional(),stylesheet:xZ.optional(),content:Z.string(),catalogInfo:Z.array(FZ).optional(),toolName:Z.string().optional(),toolVersion:Z.string().optional(),metadata:Z.record(Z.string(),Z.unknown()).optional()}).strict(),oJ=Z.object({xml:Z.string().optional(),schema:KZ,entityId:Z.string().optional()}).strict(),rJ=Z.object({xml:Z.array(Z.string()),schema:KZ,entityIds:Z.array(Z.string())}).strict(),aJ=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,Hq as c};