@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.
@@ -0,0 +1 @@
1
+ import{z as x}from"zod/v4";import{z as J}from"zod/v4";var kZ=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/,G=J.string().min(1).regex(kZ,"must be a valid ISO 8601 datetime"),f=J.string().min(1).regex(/^\d{4}-\d{2}-\d{2}$/,"must be a valid ISO 8601 date (YYYY-MM-DD)"),F=J.enum(["Reading","Language","Vocabulary","Social Studies","Writing","Science","FastMath","Math","None","Other"]).meta({id:"TimebackSubject",description:"Subject area"}),U=J.union([J.literal(-1),J.literal(0),J.literal(1),J.literal(2),J.literal(3),J.literal(4),J.literal(5),J.literal(6),J.literal(7),J.literal(8),J.literal(9),J.literal(10),J.literal(11),J.literal(12),J.literal(13)]).meta({id:"TimebackGrade",description:"Grade level (-1 = Pre-K, 0 = K, 1-12 = grades, 13 = AP)"}),N=J.enum(["exempt","fully graded","not submitted","partially graded","submitted"]),E=J.enum(["department","school","district","local","state","national"]),b=J.enum(["administrator","aide","guardian","parent","proctor","relative","student","teacher"]),p=J.enum(["administrator","proctor","student","teacher"]),y=J.enum(["qti","text","audio","video","interactive","visual","course-material","assessment-bank"]),g=J.enum(["qti-test","qti-question","qti-stimulus","qti-test-bank"]),S=J.enum(["unit","course","resource-collection"]),m=J.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"]),o=J.enum(["easy","medium","hard"]),a=J.array(J.object({source:J.string(),learningObjectiveIds:J.array(J.string())})),r=J.object({consecutive_failures:J.number().int().min(1).optional(),stagnation_limit:J.number().int().min(1).optional()}).optional(),MH=J.enum(["powerpath-100","quiz","test-out","placement","unit-test","alpha-read-article"]).nullable(),hH=J.object({imsx_codeMajor:J.enum(["failure","success"]),imsx_severity:J.enum(["error","warning","status"]),imsx_description:J.string(),imsx_CodeMinor:J.object({imsx_codeMinorField:J.array(J.object({imsx_codeMinorFieldName:J.string(),imsx_codeMinorFieldValue:J.string()}))}).optional()});var DZ=x.object({staging:x.string().meta({description:"Course ID in staging environment"}).optional(),production:x.string().meta({description:"Course ID in production environment"}).optional()}).meta({id:"CourseIds",description:"Environment-specific course IDs (populated by sync)"}),IZ=x.enum(["base","hole-filling","optional"]).meta({id:"CourseType",description:"Course classification type"}),MZ=x.enum(["draft","testing","published","deactivated"]).meta({id:"PublishStatus",description:"Course publication status"}),hZ=x.object({dailyXp:x.number().int().positive().meta({description:"Target XP to earn per day"}).optional(),dailyLessons:x.number().int().positive().meta({description:"Target lessons to complete per day"}).optional(),dailyActiveMinutes:x.number().int().positive().meta({description:"Target active learning minutes per day"}).optional(),dailyAccuracy:x.number().int().min(0).max(100).meta({description:"Target accuracy percentage (0-100)"}).optional(),dailyMasteredUnits:x.number().int().positive().meta({description:"Target units to master per day"}).optional()}).meta({id:"CourseGoals",description:"Daily learning goals for a course"}),CZ=x.object({totalXp:x.number().int().positive().meta({description:"Total XP available in the course"}).optional(),totalLessons:x.number().int().positive().meta({description:"Total number of lessons/activities"}).optional(),totalGrades:x.number().int().positive().meta({description:"Total grade levels covered"}).optional()}).meta({id:"CourseMetrics",description:"Aggregate metrics for a course"}),z=x.object({courseType:IZ.optional(),isSupplemental:x.boolean().meta({description:"Whether this is supplemental to a base course"}).optional(),isCustom:x.boolean().meta({description:"Whether this is a custom course for an individual student"}).optional(),publishStatus:MZ.optional(),contactEmail:x.email().meta({description:"Contact email for course issues"}).optional(),primaryApp:x.string().meta({description:"Primary application identifier"}).optional(),goals:hZ.optional(),metrics:CZ.optional()}).meta({id:"CourseMetadata",description:"Course metadata (matches API metadata object)"}),e=x.object({courseCode:x.string().meta({description:"Course code (e.g., 'MATH101')"}).optional(),level:x.string().meta({description:"Course level (e.g., 'AP', 'Honors')"}).optional(),metadata:z.optional()}).meta({id:"CourseDefaults",description:"Default properties that apply to all courses unless overridden"}),i=x.object({level:x.string().meta({description:"Course level for this environment"}).optional(),sensor:x.url().meta({description:"Caliper sensor endpoint URL for this environment"}).optional(),launchUrl:x.url().meta({description:"LTI launch URL for this environment"}).optional(),metadata:z.optional()}).meta({id:"CourseEnvOverrides",description:"Environment-specific course overrides (non-identity fields)"}),bZ=x.object({staging:i.meta({description:"Overrides for staging environment"}).optional(),production:i.meta({description:"Overrides for production environment"}).optional()}).meta({id:"CourseOverrides",description:"Per-environment course overrides"}),fZ=e.extend({subject:F.meta({description:"Subject area for this course"}),grade:U.meta({description:"Grade level (-1 = Pre-K, 0 = K, 1-12 = grades, 13 = AP)"}).optional(),ids:DZ.nullable().optional(),sensor:x.url().meta({description:"Caliper sensor endpoint URL for this course"}).optional(),launchUrl:x.url().meta({description:"LTI launch URL for this course"}).optional(),overrides:bZ.optional()}).meta({id:"CourseConfig",description:"Configuration for a single course. Must have either grade or courseCode (or both)."}),TH=x.object({$schema:x.string().meta({description:"JSON Schema reference for editor support"}).optional(),name:x.string().min(1,"App name is required").meta({description:"Display name for your app"}),defaults:e.meta({description:"Default properties applied to all courses"}).optional(),courses:x.array(fZ).min(1,"At least one course is required").meta({description:"Courses available in this app"}),sensor:x.url().meta({description:"Default Caliper sensor endpoint URL for all courses"}).optional(),launchUrl:x.url().meta({description:"Default LTI launch URL for all courses"}).optional(),studio:x.object({telemetry:x.boolean().meta({description:"Enable anonymous usage telemetry for Studio (default: true)"}).optional().default(!0)}).meta({description:"Studio-specific configuration"}).optional()}).meta({id:"TimebackConfig",title:"Timeback Config",description:"Configuration schema for timeback.config.json files"}).refine((P)=>{return P.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((P)=>{let h=P.courses.filter((D)=>D.grade!==void 0).map((D)=>`${D.subject}:${D.grade}`);return new Set(h).size===h.length},{message:"Duplicate (subject, grade) pair found; each must be unique",path:["courses"]}).refine((P)=>{let h=P.courses.filter((D)=>D.courseCode!==void 0).map((D)=>D.courseCode);return new Set(h).size===h.length},{message:"Duplicate courseCode found; each must be unique",path:["courses"]}).refine((P)=>{return P.courses.every((j)=>{if(j.sensor!==void 0||P.sensor!==void 0)return!0;return[j.launchUrl,P.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 K}from"zod/v4";var T=K.object({id:K.string(),type:K.literal("TimebackUser"),email:K.string()}),R=K.object({id:K.string(),type:K.literal("TimebackActivityContext"),subject:F,app:K.object({name:K.string()}),activity:K.object({id:K.string().optional(),name:K.string()}).strict().optional(),course:K.object({id:K.string().optional(),name:K.string()}).strict().optional(),process:K.boolean().optional()}),n=K.object({"@context":K.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),id:K.string(),type:K.string(),eventTime:G,profile:K.literal("TimebackProfile"),actor:T,action:K.string(),object:R,edApp:K.object({id:K.string(),name:K.string().optional()}).optional()}),t=K.object({type:K.enum(["totalQuestions","correctQuestions","xpEarned","masteredUnits"]),value:K.number()}),TZ=K.object({id:K.string(),type:K.literal("TimebackActivityMetricsCollection"),attempt:K.number().optional(),items:K.array(t),extensions:K.record(K.string(),K.unknown()).optional()}),RZ=n.extend({type:K.literal("ActivityEvent"),action:K.literal("Completed"),generated:TZ}),ZZ=K.object({type:K.enum(["active","inactive","waste","unknown","anti-pattern"]),value:K.number(),subType:K.string().optional()}),lZ=K.object({id:K.string(),type:K.literal("TimebackTimeSpentMetricsCollection"),items:K.array(ZZ)}),uZ=n.extend({type:K.literal("TimeSpentEvent"),action:K.literal("SpentTime"),generated:lZ}),dH=K.object({actor:T,object:R,metrics:K.array(t).min(1,"metrics must contain at least one metric"),eventTime:G.optional(),metricsId:K.string().optional(),id:K.string().optional(),extensions:K.record(K.string(),K.unknown()).optional(),edApp:K.union([K.string(),K.record(K.string(),K.unknown())]).optional(),session:K.union([K.string(),K.record(K.string(),K.unknown())]).optional(),attempt:K.number().int().min(1).optional(),generatedExtensions:K.object({pctCompleteApp:K.number().optional()}).loose().optional()}).strict(),sH=K.object({actor:T,object:R,metrics:K.array(ZZ).min(1,"metrics must contain at least one metric"),eventTime:G.optional(),metricsId:K.string().optional(),id:K.string().optional(),extensions:K.record(K.string(),K.unknown()).optional(),edApp:K.union([K.string(),K.record(K.string(),K.unknown())]).optional(),session:K.union([K.string(),K.record(K.string(),K.unknown())]).optional()}).strict(),dZ=K.union([RZ,uZ]),cH=K.object({sensor:K.string(),sendTime:G,dataVersion:K.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),data:K.array(dZ)}),sZ=K.enum(["AnnotationProfile","AssessmentProfile","ToolUseProfile","GeneralProfile","FeedbackProfile","MediaProfile","SurveyProfile","ResourceManagementProfile","ForumProfile","AssignableProfile","GradingProfile","ReadingProfile","SessionProfile","SearchProfile","ToolLaunchProfile","TimebackProfile"]),v=K.union([K.string(),K.record(K.string(),K.unknown())]),cZ=K.object({id:K.string(),type:K.string(),extensions:K.object({email:K.email()}).loose()}).strict(),HZ=K.object({"@context":K.string().optional(),id:K.string(),type:K.string(),actor:K.union([K.string(),cZ,T]),action:K.string(),object:v,eventTime:G,profile:sZ,edApp:v.optional(),generated:v.optional(),target:v.optional(),referrer:v.optional(),group:v.optional(),membership:v.optional(),session:v.optional(),federatedSession:v.optional(),extensions:K.record(K.string(),K.unknown()).optional()}).strict(),NH=K.object({sensor:K.string().min(1,"sensor must be a non-empty string"),sendTime:G,dataVersion:K.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),data:K.array(HZ).min(1,"data must contain at least one event")}),EH=K.object({sensor:K.string().min(1,"sensor must be a non-empty string"),events:K.array(HZ).min(1,"events must contain at least one event")}),pH=K.object({limit:K.number().int().positive().optional(),offset:K.number().int().min(0).optional(),sensor:K.string().min(1).optional(),startDate:G.optional(),endDate:G.optional(),actorId:K.string().min(1).optional(),actorEmail:K.email().optional()}).strict();import{z as $}from"zod/v4";var B=$.string().trim().min(1),KZ=$.object({title:B,identifier:B,uri:B}),NZ=$.object({identifier:B,uri:B,lastChangeDateTime:B,title:B,creator:B,officialSourceURL:$.string().optional(),publisher:$.string().optional(),description:$.string().optional(),language:$.string().optional(),version:$.string().optional(),caseVersion:$.string().optional(),adoptionStatus:$.string().optional(),statusStartDate:$.string().optional(),statusEndDate:$.string().optional(),licenseUri:$.string().optional(),notes:$.string().optional(),subject:$.array($.string()).optional(),extensions:$.unknown().optional()}),EZ=$.object({identifier:B,uri:B,lastChangeDateTime:B,fullStatement:B,alternativeLabel:$.string().optional(),CFItemType:$.string().optional(),cfItemType:$.string().optional(),humanCodingScheme:$.string().optional(),listEnumeration:$.string().optional(),abbreviatedStatement:$.string().optional(),conceptKeywords:$.array($.string()).optional(),notes:$.string().optional(),subject:$.array($.string()).optional(),language:$.string().optional(),educationLevel:$.array($.string()).optional(),CFItemTypeURI:$.unknown().optional(),licenseURI:$.unknown().optional(),statusStartDate:$.string().optional(),statusEndDate:$.string().optional(),extensions:$.unknown().optional()}),pZ=$.object({identifier:B,uri:B,lastChangeDateTime:B,associationType:B,originNodeURI:KZ,destinationNodeURI:KZ,sequenceNumber:$.number().optional(),extensions:$.unknown().optional()}),yZ=$.object({CFItemTypes:$.array($.unknown()).optional(),CFSubjects:$.array($.unknown()).optional(),CFConcepts:$.array($.unknown()).optional(),CFLicenses:$.array($.unknown()).optional(),CFAssociationGroupings:$.array($.unknown()).optional(),extensions:$.unknown().optional()}),SH=$.object({CFDocument:NZ,CFItems:$.array(EZ),CFAssociations:$.array(pZ),CFDefinitions:yZ.optional(),extensions:$.unknown().optional()});import{z as w}from"zod/v4";var q=w.string().trim().min(1),M=w.array(w.string()).min(1),WZ=w.object({id:q,type:w.literal("Image"),caption:w.string().optional()}),l=w.object({id:q,type:M,name:w.string().optional(),url:w.string().optional(),phone:w.string().optional(),description:w.string().optional(),image:WZ.optional(),email:w.string().optional()}),XZ=w.object({type:q,proofPurpose:q,verificationMethod:q,created:q,proofValue:q,cryptosuite:w.string().optional()}),gZ=w.object({id:q,type:w.literal("1EdTechJsonSchemaValidator2019")}),SZ=w.object({id:w.string().optional(),narrative:w.string().optional()}),mZ=w.object({id:q,type:M,name:q,description:q,criteria:SZ,image:WZ.optional(),achievementType:w.string().optional(),creator:l.optional()}),oZ=w.object({type:w.literal("IdentityObject"),identityHash:q,identityType:q,hashed:w.boolean(),salt:w.string().optional()}),aZ=w.enum(["exactMatchOf","isChildOf","isParentOf","isPartOf","isPeerOf","isRelatedTo","precedes","replacedBy"]),rZ=w.object({type:w.literal("Association"),associationType:aZ,sourceId:q,targetId:q}),iZ=w.object({"@context":M,id:q,type:M,issuer:l,validFrom:q,validUntil:w.string().optional(),credentialSubject:w.object({id:w.string().optional()}),proof:w.array(XZ).optional()}),zZ=w.object({id:w.string().optional(),type:M,identifier:w.array(oZ).optional(),achievement:w.array(mZ).optional(),verifiableCredential:w.array(iZ).min(1),association:w.array(rZ).optional()}),aH=w.object({"@context":M,id:q,type:M,issuer:l,name:q,description:w.string().optional(),validFrom:q,validUntil:w.string().optional(),credentialSubject:zZ,proof:w.array(XZ).optional(),credentialSchema:w.array(gZ).optional()});import{z as Y}from"zod/v4";var O=Y.union([G,f]),eH=Y.object({id:Y.string(),role:Y.string(),beginDate:O.nullable(),endDate:O.nullable(),metadata:Y.object({goals:Y.object({dailyXp:Y.number().optional()}).optional(),metrics:Y.object({totalXp:Y.number().optional(),totalLessons:Y.number().optional()}).optional()}).optional(),course:Y.object({id:Y.string(),title:Y.string(),subjects:Y.array(Y.string()).nullable(),grades:Y.array(Y.string()).nullable()}),school:Y.object({id:Y.string(),name:Y.string()})}),eZ=Y.object({activityMetrics:Y.object({xpEarned:Y.number(),totalQuestions:Y.number(),correctQuestions:Y.number(),masteredUnits:Y.number()}),timeSpentMetrics:Y.object({activeSeconds:Y.number(),inactiveSeconds:Y.number(),wasteSeconds:Y.number()}),apps:Y.array(Y.string())}),nZ=Y.record(Y.string(),Y.record(Y.string(),eZ)),nH=Y.object({message:Y.string(),enrollmentId:Y.string(),startDate:O,endDate:O,facts:nZ,factsByApp:Y.unknown()}),k=Y.string().trim().min(1),YZ=Y.object({email:Y.email().optional(),studentId:k.optional()}).superRefine((P,j)=>{if(!P.email&&!P.studentId)j.addIssue({code:Y.ZodIssueCode.custom,message:"must provide either email or studentId",path:["email"]}),j.addIssue({code:Y.ZodIssueCode.custom,message:"must provide either email or studentId",path:["studentId"]})}),tH=Y.object({subject:k,grade:k,courseId:k,orgSourcedId:k.optional()});var ZK=Y.object({userId:k}),HK=Y.object({sourcedId:k.optional(),role:p.optional(),beginDate:O.optional(),metadata:Y.record(Y.string(),Y.unknown()).optional()}),KK=Y.object({fields:Y.string().optional(),limit:Y.number().int().positive().optional(),offset:Y.number().int().nonnegative().optional(),sort:Y.string().optional(),orderBy:Y.enum(["asc","desc"]).optional(),filter:Y.string().optional(),search:Y.string().optional(),roles:Y.array(b).min(1),orgSourcedIds:Y.array(k).optional()}),WK=YZ.extend({startDate:O,endDate:O,timezone:Y.string().optional()}),XK=YZ.extend({weekDate:O,timezone:Y.string().optional()}),YK=Y.object({enrollmentId:k,startDate:O.optional(),endDate:O.optional(),timezone:Y.string().optional()});import{z as H}from"zod/v4";var _=H.string().min(1),L=H.enum(["active","tobedeleted"]),Q=H.record(H.string(),H.unknown()).nullable().optional(),V=H.object({sourcedId:_,type:H.string().optional(),href:H.string().optional()}).strict(),A=H.union([f,G]),tZ=H.object({roleType:H.enum(["primary","secondary"]),role:b,org:V,userProfile:H.string().optional(),metadata:Q,beginDate:A.optional(),endDate:A.optional()}).strict(),wK=H.object({sourcedId:_.describe("sourcedId must be a non-empty string"),status:L.optional(),enabledUser:H.boolean(),givenName:_.describe("givenName must be a non-empty string"),familyName:_.describe("familyName must be a non-empty string"),middleName:_.optional(),username:_.optional(),email:H.email().optional(),roles:H.array(tZ).min(1,"roles must include at least one role"),userIds:H.array(H.object({type:_,identifier:_}).strict()).optional(),agents:H.array(V).optional(),grades:H.array(U).optional(),identifier:_.optional(),sms:_.optional(),phone:_.optional(),pronouns:_.optional(),password:_.optional(),metadata:Q}).strict(),xK=H.object({sourcedId:_.describe("sourcedId must be a non-empty string").optional(),status:L.optional(),title:_.describe("title must be a non-empty string"),org:V,courseCode:_.optional(),subjects:H.array(F).optional(),grades:H.array(U).optional(),level:_.optional(),metadata:Q}).strict(),VK=H.object({sourcedId:_.describe("sourcedId must be a non-empty string").optional(),status:L.optional(),title:_.describe("title must be a non-empty string"),terms:H.array(V).min(1,"terms must have at least one item"),course:V,org:V,classCode:_.optional(),classType:H.enum(["homeroom","scheduled"]).optional(),location:_.optional(),grades:H.array(U).optional(),subjects:H.array(F).optional(),subjectCodes:H.array(_).optional(),periods:H.array(_).optional(),metadata:Q}).strict(),_Z=H.enum(["true","false"]),qK=H.object({sourcedId:_.describe("sourcedId must be a non-empty string").optional(),status:L.optional(),user:V,class:V,school:V.optional(),role:b,primary:_Z.optional(),beginDate:A.optional(),endDate:A.optional(),metadata:Q}).strict(),QK=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),status:L,weight:H.number().nullable().optional(),metadata:Q}).strict(),LK=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),class:V,school:V,category:V,assignDate:A,dueDate:A,status:L,description:H.string().optional(),resultValueMin:H.number().nullable().optional(),resultValueMax:H.number().nullable().optional(),scoreScale:V.optional(),metadata:Q}).strict(),BK=H.object({sourcedId:_.optional(),lineItem:V,student:V,class:V.optional(),scoreDate:A,scoreStatus:H.enum(["exempt","fully graded","not submitted","partially graded","submitted"]),score:H.number().nullable().optional(),textScore:H.string().nullable().optional(),status:L,comment:H.string().nullable().optional(),metadata:Q}).strict(),GK=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),status:L.optional(),type:H.string().optional(),class:V.optional(),course:V.nullable().optional(),scoreScaleValue:H.array(H.object({itemValueLHS:_,itemValueRHS:_,value:H.string().optional(),description:H.string().optional()}).strict()).optional(),minScore:H.number().optional(),maxScore:H.number().optional(),metadata:Q}).strict(),UK=H.object({sourcedId:_.optional(),status:L.optional(),dateLastModified:G.optional(),title:_.describe("title must be a non-empty string"),description:H.string().nullable().optional(),class:V.nullable().optional(),parentAssessmentLineItem:V.nullable().optional(),scoreScale:V.nullable().optional(),resultValueMin:H.number().nullable().optional(),resultValueMax:H.number().nullable().optional(),component:V.nullable().optional(),componentResource:V.nullable().optional(),learningObjectiveSet:H.array(H.object({source:H.string(),learningObjectiveIds:H.array(H.string())})).optional().nullable(),course:V.nullable().optional(),metadata:Q}).strict(),ZH=H.object({learningObjectiveId:H.string(),score:H.number().optional(),textScore:H.string().optional()}),HH=H.array(H.object({source:H.string(),learningObjectiveResults:H.array(ZH)})),FK=H.object({sourcedId:_.optional(),status:L.optional(),dateLastModified:G.optional(),metadata:Q,assessmentLineItem:V,student:V,score:H.number().nullable().optional(),textScore:H.string().nullable().optional(),scoreDate:H.string().datetime(),scoreScale:V.nullable().optional(),scorePercentile:H.number().nullable().optional(),scoreStatus:H.enum(["exempt","fully graded","not submitted","partially graded","submitted"]),comment:H.string().nullable().optional(),learningObjectiveSet:HH.nullable().optional(),inProgress:H.string().nullable().optional(),incomplete:H.string().nullable().optional(),late:H.string().nullable().optional(),missing:H.string().nullable().optional()}).strict(),PK=H.object({sourcedId:_.optional(),status:L.optional(),name:_.describe("name must be a non-empty string"),type:E,identifier:_.optional(),parent:V.optional(),metadata:Q}).strict(),jK=H.object({sourcedId:_.optional(),status:L.optional(),name:_.describe("name must be a non-empty string"),type:H.literal("school").optional(),identifier:_.optional(),parent:V.optional(),metadata:Q}).strict(),AK=H.object({sourcedId:_.describe("sourcedId must be a non-empty string"),status:L,title:_.describe("title must be a non-empty string"),startDate:A,endDate:A,type:H.enum(["gradingPeriod","semester","schoolYear","term"]),schoolYear:_.describe("schoolYear must be a non-empty string"),org:V,parent:V.optional(),children:H.array(V).optional(),metadata:Q}).strict(),OK=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),courseComponent:V,resource:V,status:L,metadata:Q}).strict(),vK=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),course:V,status:L,metadata:Q}).strict(),kK=H.object({sourcedId:_.describe("sourcedId must be a non-empty string"),role:H.enum(["student","teacher"]),primary:_Z.optional(),beginDate:A.optional(),endDate:A.optional(),metadata:Q}).strict(),DK=H.object({agentSourcedId:_.describe("agentSourcedId must be a non-empty string")}).strict(),IK=H.object({type:_.describe("type must be a non-empty string"),username:_.describe("username must be a non-empty string"),password:H.string().optional(),metadata:Q}).strict(),MK=H.object({sourcedId:_.describe("sourcedId must be a non-empty string")}).loose(),I=H.object({type:y,subject:F.nullish(),grades:H.array(U).nullish(),language:H.string().nullish(),xp:H.number().nullish(),url:H.url().nullish(),keywords:H.array(H.string()).nullish(),learningObjectiveSet:a.nullish(),lessonType:H.string().nullish()}).passthrough(),KH=I.extend({type:H.literal("qti"),subType:g,questionType:m.optional(),difficulty:o.optional()}),WH=I.extend({type:H.literal("text"),format:H.string(),author:H.string().optional(),pageCount:H.number().optional()}),XH=I.extend({type:H.literal("audio"),duration:H.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),format:H.string(),speaker:H.string().optional()}),YH=I.extend({type:H.literal("video"),duration:H.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),captionsAvailable:H.boolean().optional(),format:H.string()}),_H=I.extend({type:H.literal("interactive"),launchUrl:H.url().optional(),toolProvider:H.string().optional(),instructionalMethod:H.string().optional(),courseIdOnFail:H.string().nullable().optional(),fail_fast:r}),$H=I.extend({type:H.literal("visual"),format:H.string(),resolution:H.string().optional()}),JH=I.extend({type:H.literal("course-material"),subType:S,author:H.string().optional(),format:H.string(),instructionalMethod:H.string().optional()}),wH=I.extend({type:H.literal("assessment-bank"),resources:H.array(H.string())}),xH=H.discriminatedUnion("type",[KH,WH,XH,YH,_H,$H,JH,wH]),hK=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),vendorResourceId:_.describe("vendorResourceId must be a non-empty string"),roles:H.array(H.enum(["primary","secondary"])).optional(),importance:H.enum(["primary","secondary"]).optional(),vendorId:H.string().optional(),applicationId:H.string().optional(),status:L.optional(),metadata:xH.nullable().optional()}).strict(),VH=H.object({url:_.describe("courseStructure.url must be a non-empty string"),skillCode:_.describe("courseStructure.skillCode must be a non-empty string"),lessonCode:_.describe("courseStructure.lessonCode must be a non-empty string"),title:_.describe("courseStructure.title must be a non-empty string"),"unit-title":_.describe("courseStructure.unit-title must be a non-empty string"),status:_.describe("courseStructure.status must be a non-empty string"),xp:H.number()}).loose(),CK=H.object({course:H.object({sourcedId:_.describe("course.sourcedId must be a non-empty string").optional(),title:_.describe("course.title must be a non-empty string"),org:V,status:L,metadata:Q}).strict(),courseStructure:H.record(H.string(),VH)}).strict(),qH=H.object({student:V}).loose(),bK=H.array(qH).min(1,"results must have at least one item");import{z as W}from"zod/v4";var X=W.string().trim().min(1),QH=W.enum(["edulastic","mastery-track"]),LH=W.enum(["powerpath-100","quiz","test-out","placement","unit-test","alpha-read-article"]),JZ=W.array(U),wZ=W.record(W.string(),W.unknown()).optional(),xZ=W.object({courseId:X,lessonTitle:X.optional(),launchUrl:W.url().optional(),toolProvider:QH,unitTitle:X.optional(),courseComponentSourcedId:X.optional(),vendorId:X.optional(),description:X.optional(),resourceMetadata:wZ.nullable().optional(),grades:JZ}),lK=xZ.extend({lessonType:W.literal("test-out"),xp:W.number()}),uK=xZ.extend({lessonType:W.literal("placement"),courseIdOnFail:X.optional(),xp:W.number().optional()});var $Z=W.object({courseId:X,lessonType:LH,lessonTitle:X.optional(),unitTitle:X.optional(),courseComponentSourcedId:X.optional(),resourceMetadata:wZ.nullable().optional(),xp:W.number().optional(),grades:JZ.optional(),courseIdOnFail:X.optional()}),dK=W.union([$Z.extend({testType:W.literal("qti"),qti:W.object({url:W.url(),title:X.optional(),metadata:W.record(W.string(),W.unknown()).optional()})}),$Z.extend({testType:W.literal("assessment-bank"),assessmentBank:W.object({resources:W.array(W.object({url:W.url(),title:X.optional(),metadata:W.record(W.string(),W.unknown()).optional()}))})})]),sK=W.object({student:X,lesson:X}),cK=W.object({student:X,lesson:X}),NK=W.object({courseId:X,userId:X,classId:X.optional()}),C=W.object({type:W.enum(["component","resource"]),id:X}),BH=W.union([W.object({type:W.literal("set-skipped"),payload:W.object({target:C,value:W.boolean()})}),W.object({type:W.literal("add-custom-resource"),payload:W.object({resource_id:X,parent_component_id:X,skipped:W.boolean().optional()})}),W.object({type:W.literal("move-item-before"),payload:W.object({target:C,reference_id:X})}),W.object({type:W.literal("move-item-after"),payload:W.object({target:C,reference_id:X})}),W.object({type:W.literal("move-item-to-start"),payload:W.object({target:C})}),W.object({type:W.literal("move-item-to-end"),payload:W.object({target:C})}),W.object({type:W.literal("change-item-parent"),payload:W.object({target:C,new_parent_id:X,position:W.enum(["start","end"]).optional()})})]),EK=W.object({operation:W.array(BH),reason:X.optional()}),pK=W.object({studentId:X,componentResourceId:X,result:W.object({status:W.enum(["active","tobedeleted"]),metadata:W.record(W.string(),W.unknown()).optional(),score:W.number().optional(),textScore:X.optional(),scoreDate:X,scorePercentile:W.number().optional(),scoreStatus:N,comment:X.optional(),learningObjectiveSet:W.array(W.object({source:X,learningObjectiveResults:W.array(W.object({learningObjectiveId:X,score:W.number().optional(),textScore:X.optional()}))})).optional(),inProgress:X.optional(),incomplete:X.optional(),late:X.optional(),missing:X.optional()})}),yK=W.object({student:X,lesson:X,applicationName:X.optional(),testId:X.optional(),skipCourseEnrollment:W.boolean().optional()}),gK=W.object({student:X,subject:F}),SK=W.object({student:X,lesson:X}),mK=W.object({userId:X}),oK=W.object({userId:X,subject:W.enum(["Math","Reading","Language","Science"])}),aK=W.object({student:X,subject:F,grade:U,testName:X.optional()}),rK=W.object({testName:X}),GH=W.object({student:X,subject:F,grade:U,testName:X.optional()}),iK=W.object({items:W.array(GH)}),zK=W.object({spreadsheetUrl:W.url(),sheet:X}),eK=W.object({student:X,status:W.enum(["assigned","in_progress","completed","failed","expired","cancelled"]).optional(),subject:X.optional(),grade:U.optional(),limit:W.number().int().positive().max(3000).optional(),offset:W.number().int().nonnegative().optional()}),nK=W.object({student:X.optional(),status:W.enum(["assigned","in_progress","completed","failed","expired","cancelled"]).optional(),subject:X.optional(),grade:U.optional(),limit:W.number().int().positive().max(3000).optional(),offset:W.number().int().nonnegative().optional()}),tK=W.object({student:X,question:X,response:W.union([X,W.array(X)]).optional(),responses:W.record(W.string(),W.union([X,W.array(X)])).optional(),lesson:X}),ZW=W.object({student:X,lesson:X,attempt:W.number().int().positive().optional()}),HW=W.object({student:X,lesson:X}),KW=W.object({student:X,lesson:X}),WW=W.object({student:X,lesson:X.optional(),finalized:W.boolean().optional(),toolProvider:X.optional(),attempt:W.number().int().positive().optional()}),XW=W.object({student:X,lesson:X,applicationName:X.optional()}),YW=W.object({student:X,subject:F}),_W=W.object({status:W.enum(["active","tobedeleted"]).optional()});import{z as Z}from"zod/v4";var VZ=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"]),u=Z.enum(["single","multiple","ordered","record"]),d=Z.enum(["identifier","boolean","integer","float","string","point","pair","directedPair","duration","file","uri"]),UH=Z.enum(["easy","medium","hard"]),FH=Z.enum(["linear","nonlinear"]),PH=Z.enum(["individual","simultaneous"]),s=Z.enum(["show","hide"]),qZ=Z.enum(["test","item","stimulus"]),xW=Z.enum(["QUESTION","LESSON"]),jH=Z.object({value:Z.array(Z.string())}).strict(),QZ=Z.object({identifier:Z.string().min(1),cardinality:u,baseType:d.optional(),correctResponse:jH}).strict(),LZ=Z.object({identifier:Z.string().min(1),cardinality:u,baseType:d.optional()}).strict(),BZ=Z.object({identifier:Z.string().min(1),cardinality:u.optional(),baseType:d,normalMaximum:Z.number().optional(),normalMinimum:Z.number().optional(),defaultValue:Z.object({value:Z.unknown().optional()}).strict().optional()}).strict(),AH=Z.object({outcomeIdentifier:Z.string().min(1),variableIdentifier:Z.string().min(1)}).strict(),GZ=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:AH.optional()}).strict(),OH=Z.object({source:Z.string().min(1),learningObjectiveIds:Z.array(Z.string())}).strict(),c=Z.object({subject:Z.string().optional(),grade:U.optional(),difficulty:UH.optional(),learningObjectiveSet:Z.array(OH).optional()}).loose(),UZ=Z.object({outcomeIdentifier:Z.string().min(1),identifier:Z.string().min(1),showHide:s,content:Z.string(),title:Z.string()}).strict(),FZ=Z.object({outcomeIdentifier:Z.string().min(1),identifier:Z.string().min(1),showHide:s,content:Z.string(),class:Z.array(Z.string())}).strict(),PZ=Z.object({outcomeIdentifier:Z.string().min(1),identifier:Z.string().min(1),showHide:s,content:Z.string(),class:Z.array(Z.string())}).strict(),jZ=Z.object({href:Z.string().min(1),type:Z.string().min(1)}).strict(),AZ=Z.object({id:Z.string().min(1),support:Z.string(),content:Z.string()}).strict(),VW=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(),vH=Z.object({format:Z.string().pipe(Z.literal("xml")),xml:Z.string().min(1),metadata:c.optional()}).strict(),kH=Z.object({identifier:Z.string().min(1),title:Z.string().min(1),type:VZ,qtiVersion:Z.string().optional(),timeDependent:Z.boolean().optional(),adaptive:Z.boolean().optional(),responseDeclarations:Z.array(QZ).optional(),outcomeDeclarations:Z.array(LZ).optional(),responseProcessing:GZ.optional(),metadata:c.optional(),modalFeedback:Z.array(UZ).optional(),feedbackInline:Z.array(FZ).optional(),feedbackBlock:Z.array(PZ).optional()}).strict(),qW=Z.union([vH,kH]),QW=Z.object({identifier:Z.string().min(1).optional(),title:Z.string().min(1),type:VZ,qtiVersion:Z.string().optional(),timeDependent:Z.boolean().optional(),adaptive:Z.boolean().optional(),responseDeclarations:Z.array(QZ).optional(),outcomeDeclarations:Z.array(LZ).optional(),responseProcessing:GZ.optional(),metadata:c.optional(),modalFeedback:Z.array(UZ).optional(),feedbackInline:Z.array(FZ).optional(),feedbackBlock:Z.array(PZ).optional(),rawXml:Z.string(),content:Z.record(Z.string(),Z.unknown())}).strict(),LW=Z.object({response:Z.union([Z.string(),Z.array(Z.string())])}).strict(),OZ=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(),DH=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(OZ).optional()}).strict(),vZ=Z.object({identifier:Z.string().min(1),navigationMode:Z.string().pipe(FH),submissionMode:Z.string().pipe(PH),"qti-assessment-section":Z.array(DH)}).strict(),BW=Z.object({items:Z.array(OZ).min(1)}).strict(),GW=Z.object({metadata:Z.record(Z.string(),Z.unknown()).optional()}).strict(),UW=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(vZ),"qti-outcome-declaration":Z.array(BZ).optional()}).strict(),FW=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(vZ),"qti-outcome-declaration":Z.array(BZ).optional()}).strict(),PW=Z.object({identifier:Z.string().min(1),title:Z.string().min(1),label:Z.string().optional(),language:Z.string().optional(),stylesheet:jZ.optional(),content:Z.string(),catalogInfo:Z.array(AZ).optional(),toolName:Z.string().optional(),toolVersion:Z.string().optional(),metadata:Z.record(Z.string(),Z.unknown()).optional()}).strict(),jW=Z.object({identifier:Z.string().min(1).optional(),title:Z.string().min(1),label:Z.string().optional(),language:Z.string().optional(),stylesheet:jZ.optional(),content:Z.string(),catalogInfo:Z.array(AZ).optional(),toolName:Z.string().optional(),toolVersion:Z.string().optional(),metadata:Z.record(Z.string(),Z.unknown()).optional()}).strict(),AW=Z.object({xml:Z.string().optional(),schema:qZ,entityId:Z.string().optional()}).strict(),OW=Z.object({xml:Z.array(Z.string()),schema:qZ,entityIds:Z.array(Z.string())}).strict(),vW=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{F as a,U as b,TH as c};
@@ -1,4 +1,4 @@
1
- import{c as Y}from"./chunk-62x5my81.js";import{O as V}from"./chunk-edk3nfj7.js";var{existsSync:ie}=(()=>({}));function b(e){if(typeof e!=="string")throw TypeError("Path must be a string. Received "+JSON.stringify(e))}function R(e,r){var i="",t=0,l=-1,n=0,s;for(var f=0;f<=e.length;++f){if(f<e.length)s=e.charCodeAt(f);else if(s===47)break;else s=47;if(s===47){if(l===f-1||n===1);else if(l!==f-1&&n===2){if(i.length<2||t!==2||i.charCodeAt(i.length-1)!==46||i.charCodeAt(i.length-2)!==46){if(i.length>2){var o=i.lastIndexOf("/");if(o!==i.length-1){if(o===-1)i="",t=0;else i=i.slice(0,o),t=i.length-1-i.lastIndexOf("/");l=f,n=0;continue}}else if(i.length===2||i.length===1){i="",t=0,l=f,n=0;continue}}if(r){if(i.length>0)i+="/..";else i="..";t=2}}else{if(i.length>0)i+="/"+e.slice(l+1,f);else i=e.slice(l+1,f);t=f-l-1}l=f,n=0}else if(s===46&&n!==-1)++n;else n=-1}return i}function E(e,r){var i=r.dir||r.root,t=r.base||(r.name||"")+(r.ext||"");if(!i)return t;if(i===r.root)return i+t;return i+e+t}function d(){var e="",r=!1,i;for(var t=arguments.length-1;t>=-1&&!r;t--){var l;if(t>=0)l=arguments[t];else{if(i===void 0)i=process.cwd();l=i}if(b(l),l.length===0)continue;e=l+"/"+e,r=l.charCodeAt(0)===47}if(e=R(e,!r),r)if(e.length>0)return"/"+e;else return"/";else if(e.length>0)return e;else return"."}function w(e){if(b(e),e.length===0)return".";var r=e.charCodeAt(0)===47,i=e.charCodeAt(e.length-1)===47;if(e=R(e,!r),e.length===0&&!r)e=".";if(e.length>0&&i)e+="/";if(r)return"/"+e;return e}function G(e){return b(e),e.length>0&&e.charCodeAt(0)===47}function $(){if(arguments.length===0)return".";var e;for(var r=0;r<arguments.length;++r){var i=arguments[r];if(b(i),i.length>0)if(e===void 0)e=i;else e+="/"+i}if(e===void 0)return".";return w(e)}function y(e,r){if(b(e),b(r),e===r)return"";if(e=d(e),r=d(r),e===r)return"";var i=1;for(;i<e.length;++i)if(e.charCodeAt(i)!==47)break;var t=e.length,l=t-i,n=1;for(;n<r.length;++n)if(r.charCodeAt(n)!==47)break;var s=r.length,f=s-n,o=l<f?l:f,a=-1,u=0;for(;u<=o;++u){if(u===o){if(f>o){if(r.charCodeAt(n+u)===47)return r.slice(n+u+1);else if(u===0)return r.slice(n+u)}else if(l>o){if(e.charCodeAt(i+u)===47)a=u;else if(u===0)a=0}break}var k=e.charCodeAt(i+u),M=r.charCodeAt(n+u);if(k!==M)break;else if(k===47)a=u}var m="";for(u=i+a+1;u<=t;++u)if(u===t||e.charCodeAt(u)===47)if(m.length===0)m+="..";else m+="/..";if(m.length>0)return m+r.slice(n+a);else{if(n+=a,r.charCodeAt(n)===47)++n;return r.slice(n)}}function z(e){return e}function H(e){if(b(e),e.length===0)return".";var r=e.charCodeAt(0),i=r===47,t=-1,l=!0;for(var n=e.length-1;n>=1;--n)if(r=e.charCodeAt(n),r===47){if(!l){t=n;break}}else l=!1;if(t===-1)return i?"/":".";if(i&&t===1)return"//";return e.slice(0,t)}function h(e,r){if(r!==void 0&&typeof r!=="string")throw TypeError('"ext" argument must be a string');b(e);var i=0,t=-1,l=!0,n;if(r!==void 0&&r.length>0&&r.length<=e.length){if(r.length===e.length&&r===e)return"";var s=r.length-1,f=-1;for(n=e.length-1;n>=0;--n){var o=e.charCodeAt(n);if(o===47){if(!l){i=n+1;break}}else{if(f===-1)l=!1,f=n+1;if(s>=0)if(o===r.charCodeAt(s)){if(--s===-1)t=n}else s=-1,t=f}}if(i===t)t=f;else if(t===-1)t=e.length;return e.slice(i,t)}else{for(n=e.length-1;n>=0;--n)if(e.charCodeAt(n)===47){if(!l){i=n+1;break}}else if(t===-1)l=!1,t=n+1;if(t===-1)return"";return e.slice(i,t)}}function C(e){b(e);var r=-1,i=0,t=-1,l=!0,n=0;for(var s=e.length-1;s>=0;--s){var f=e.charCodeAt(s);if(f===47){if(!l){i=s+1;break}continue}if(t===-1)l=!1,t=s+1;if(f===46){if(r===-1)r=s;else if(n!==1)n=1}else if(r!==-1)n=-1}if(r===-1||t===-1||n===0||n===1&&r===t-1&&r===i+1)return"";return e.slice(r,t)}function U(e){if(e===null||typeof e!=="object")throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return E("/",e)}function q(e){b(e);var r={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return r;var i=e.charCodeAt(0),t=i===47,l;if(t)r.root="/",l=1;else l=0;var n=-1,s=0,f=-1,o=!0,a=e.length-1,u=0;for(;a>=l;--a){if(i=e.charCodeAt(a),i===47){if(!o){s=a+1;break}continue}if(f===-1)o=!1,f=a+1;if(i===46){if(n===-1)n=a;else if(u!==1)u=1}else if(n!==-1)u=-1}if(n===-1||f===-1||u===0||u===1&&n===f-1&&n===s+1){if(f!==-1)if(s===0&&t)r.base=r.name=e.slice(1,f);else r.base=r.name=e.slice(s,f)}else{if(s===0&&t)r.name=e.slice(1,n),r.base=e.slice(1,f);else r.name=e.slice(s,n),r.base=e.slice(s,f);r.ext=e.slice(n,f)}if(s>0)r.dir=e.slice(0,s-1);else if(t)r.dir="/";return r}var K="/",Q=":",le=((e)=>(e.posix=e,e))({resolve:d,normalize:w,isAbsolute:G,join:$,relative:y,_makeLong:z,dirname:H,basename:h,extname:C,format:U,parse:q,sep:K,delimiter:Q,win32:null,posix:null});import{loadConfig as ne}from"c12";var A={};V(A,{isatty:()=>B,default:()=>X,WriteStream:()=>S,ReadStream:()=>T});var B=()=>!1;function S(){throw Error("tty.WriteStream is not implemented for browsers")}function T(){throw Error("tty.ReadStream is not implemented for browsers")}var X={ReadStream:T,WriteStream:S,isatty:B};var{env:c={},argv:W=[],platform:Z=""}=typeof process>"u"?{}:process,I="NO_COLOR"in c||W.includes("--no-color"),J="FORCE_COLOR"in c||W.includes("--color"),j=Z==="win32",_=c.TERM==="dumb",F=A&&B&&B(1)&&c.TERM&&!_,N="CI"in c&&(("GITHUB_ACTIONS"in c)||("GITLAB_CI"in c)||("CIRCLECI"in c)),P=!I&&(J||j&&!_||F||N),L=(e,r,i,t,l=r.substring(0,e)+t,n=r.substring(e+i.length),s=n.indexOf(i))=>l+(s<0?n:L(s,n,i,t)),p=(e,r,i,t,l)=>e<0?i+r+t:i+L(e,r,t,l)+t,ee=(e,r,i=e,t=e.length+1)=>(l)=>l||!(l===""||l===void 0)?p((""+l).indexOf(r,t),l,e,r,i):"",g=(e,r,i)=>ee(`\x1B[${e}m`,`\x1B[${r}m`,i),D={reset:g(0,0),bold:g(1,22,"\x1B[22m\x1B[1m"),dim:g(2,22,"\x1B[22m\x1B[2m"),italic:g(3,23),underline:g(4,24),inverse:g(7,27),hidden:g(8,28),strikethrough:g(9,29),black:g(30,39),red:g(31,39),green:g(32,39),yellow:g(33,39),blue:g(34,39),magenta:g(35,39),cyan:g(36,39),white:g(37,39),gray:g(90,39),bgBlack:g(40,49),bgRed:g(41,49),bgGreen:g(42,49),bgYellow:g(43,49),bgBlue:g(44,49),bgMagenta:g(45,49),bgCyan:g(46,49),bgWhite:g(47,49),blackBright:g(90,39),redBright:g(91,39),greenBright:g(92,39),yellowBright:g(93,39),blueBright:g(94,39),magentaBright:g(95,39),cyanBright:g(96,39),whiteBright:g(97,39),bgBlackBright:g(100,49),bgRedBright:g(101,49),bgGreenBright:g(102,49),bgYellowBright:g(103,49),bgBlueBright:g(104,49),bgMagentaBright:g(105,49),bgCyanBright:g(106,49),bgWhiteBright:g(107,49)},re=({useColor:e=P}={})=>e?D:Object.keys(D).reduce((r,i)=>({...r,[i]:String}),{}),{reset:fe,bold:se,dim:ue,italic:oe,underline:ae,inverse:be,hidden:ce,strikethrough:de,black:me,red:Be,green:he,yellow:ve,blue:ye,magenta:Ce,cyan:Ae,white:ke,gray:Re,bgBlack:we,bgRed:Se,bgGreen:Te,bgYellow:De,bgBlue:We,bgMagenta:_e,bgCyan:Le,bgWhite:Oe,blackBright:Ye,redBright:xe,greenBright:O,yellowBright:Me,blueBright:Ee,magentaBright:Ge,cyanBright:$e,whiteBright:ze,bgBlackBright:He,bgRedBright:Ue,bgGreenBright:qe,bgYellowBright:Ke,bgBlueBright:Qe,bgMagentaBright:Ve,bgCyanBright:Xe,bgWhiteBright:Ze}=re();var v="timeback.config.json";function x(e){return C(e).toLowerCase()===".json"}async function te(e,r){if(r&&!x(r))throw Error(`Config file must be JSON (.json): ${r}`);let i=await ne({cwd:e,name:"timeback",configFile:r??v,rcFile:!1,packageJson:!1,dotenv:!1,envName:!1,extend:!1,omit$Keys:!0,defaults:{},overrides:{}});if(!i.config||Object.keys(i.config).length===0)return null;let t=i.config;if("extends"in t)throw Error("The 'extends' feature is not supported in timeback.config.json. Please inline all configuration.");let{$schema:l,...n}=t;return{config:n,configFile:i.configFile??d(e,r??v)}}async function rr(e={}){let r=process.cwd();try{if(e.configPath&&!x(e.configPath))return{success:!1,error:`Config file must be JSON (.json): ${e.configPath}`};if(e.configPath){let l=d(r,e.configPath);if(!ie(l))return{success:!1,error:`Config file not found: ${e.configPath}`}}let i=await te(r,e.configPath);if(!i)return{success:!1,error:`No timeback config found. Run ${O("timeback init")} to create one.`};let t=Y.safeParse(i.config);if(!t.success){let l=t.error.issues.map((n)=>` - ${n.path.join(".")}: ${n.message}`).join(`
1
+ import{c as Y}from"./chunk-4re0hv4v.js";import{O as V}from"./chunk-edk3nfj7.js";var{existsSync:ie}=(()=>({}));function b(e){if(typeof e!=="string")throw TypeError("Path must be a string. Received "+JSON.stringify(e))}function R(e,r){var i="",t=0,l=-1,n=0,s;for(var f=0;f<=e.length;++f){if(f<e.length)s=e.charCodeAt(f);else if(s===47)break;else s=47;if(s===47){if(l===f-1||n===1);else if(l!==f-1&&n===2){if(i.length<2||t!==2||i.charCodeAt(i.length-1)!==46||i.charCodeAt(i.length-2)!==46){if(i.length>2){var o=i.lastIndexOf("/");if(o!==i.length-1){if(o===-1)i="",t=0;else i=i.slice(0,o),t=i.length-1-i.lastIndexOf("/");l=f,n=0;continue}}else if(i.length===2||i.length===1){i="",t=0,l=f,n=0;continue}}if(r){if(i.length>0)i+="/..";else i="..";t=2}}else{if(i.length>0)i+="/"+e.slice(l+1,f);else i=e.slice(l+1,f);t=f-l-1}l=f,n=0}else if(s===46&&n!==-1)++n;else n=-1}return i}function E(e,r){var i=r.dir||r.root,t=r.base||(r.name||"")+(r.ext||"");if(!i)return t;if(i===r.root)return i+t;return i+e+t}function d(){var e="",r=!1,i;for(var t=arguments.length-1;t>=-1&&!r;t--){var l;if(t>=0)l=arguments[t];else{if(i===void 0)i=process.cwd();l=i}if(b(l),l.length===0)continue;e=l+"/"+e,r=l.charCodeAt(0)===47}if(e=R(e,!r),r)if(e.length>0)return"/"+e;else return"/";else if(e.length>0)return e;else return"."}function w(e){if(b(e),e.length===0)return".";var r=e.charCodeAt(0)===47,i=e.charCodeAt(e.length-1)===47;if(e=R(e,!r),e.length===0&&!r)e=".";if(e.length>0&&i)e+="/";if(r)return"/"+e;return e}function G(e){return b(e),e.length>0&&e.charCodeAt(0)===47}function $(){if(arguments.length===0)return".";var e;for(var r=0;r<arguments.length;++r){var i=arguments[r];if(b(i),i.length>0)if(e===void 0)e=i;else e+="/"+i}if(e===void 0)return".";return w(e)}function y(e,r){if(b(e),b(r),e===r)return"";if(e=d(e),r=d(r),e===r)return"";var i=1;for(;i<e.length;++i)if(e.charCodeAt(i)!==47)break;var t=e.length,l=t-i,n=1;for(;n<r.length;++n)if(r.charCodeAt(n)!==47)break;var s=r.length,f=s-n,o=l<f?l:f,a=-1,u=0;for(;u<=o;++u){if(u===o){if(f>o){if(r.charCodeAt(n+u)===47)return r.slice(n+u+1);else if(u===0)return r.slice(n+u)}else if(l>o){if(e.charCodeAt(i+u)===47)a=u;else if(u===0)a=0}break}var k=e.charCodeAt(i+u),M=r.charCodeAt(n+u);if(k!==M)break;else if(k===47)a=u}var m="";for(u=i+a+1;u<=t;++u)if(u===t||e.charCodeAt(u)===47)if(m.length===0)m+="..";else m+="/..";if(m.length>0)return m+r.slice(n+a);else{if(n+=a,r.charCodeAt(n)===47)++n;return r.slice(n)}}function z(e){return e}function H(e){if(b(e),e.length===0)return".";var r=e.charCodeAt(0),i=r===47,t=-1,l=!0;for(var n=e.length-1;n>=1;--n)if(r=e.charCodeAt(n),r===47){if(!l){t=n;break}}else l=!1;if(t===-1)return i?"/":".";if(i&&t===1)return"//";return e.slice(0,t)}function h(e,r){if(r!==void 0&&typeof r!=="string")throw TypeError('"ext" argument must be a string');b(e);var i=0,t=-1,l=!0,n;if(r!==void 0&&r.length>0&&r.length<=e.length){if(r.length===e.length&&r===e)return"";var s=r.length-1,f=-1;for(n=e.length-1;n>=0;--n){var o=e.charCodeAt(n);if(o===47){if(!l){i=n+1;break}}else{if(f===-1)l=!1,f=n+1;if(s>=0)if(o===r.charCodeAt(s)){if(--s===-1)t=n}else s=-1,t=f}}if(i===t)t=f;else if(t===-1)t=e.length;return e.slice(i,t)}else{for(n=e.length-1;n>=0;--n)if(e.charCodeAt(n)===47){if(!l){i=n+1;break}}else if(t===-1)l=!1,t=n+1;if(t===-1)return"";return e.slice(i,t)}}function C(e){b(e);var r=-1,i=0,t=-1,l=!0,n=0;for(var s=e.length-1;s>=0;--s){var f=e.charCodeAt(s);if(f===47){if(!l){i=s+1;break}continue}if(t===-1)l=!1,t=s+1;if(f===46){if(r===-1)r=s;else if(n!==1)n=1}else if(r!==-1)n=-1}if(r===-1||t===-1||n===0||n===1&&r===t-1&&r===i+1)return"";return e.slice(r,t)}function U(e){if(e===null||typeof e!=="object")throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return E("/",e)}function q(e){b(e);var r={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return r;var i=e.charCodeAt(0),t=i===47,l;if(t)r.root="/",l=1;else l=0;var n=-1,s=0,f=-1,o=!0,a=e.length-1,u=0;for(;a>=l;--a){if(i=e.charCodeAt(a),i===47){if(!o){s=a+1;break}continue}if(f===-1)o=!1,f=a+1;if(i===46){if(n===-1)n=a;else if(u!==1)u=1}else if(n!==-1)u=-1}if(n===-1||f===-1||u===0||u===1&&n===f-1&&n===s+1){if(f!==-1)if(s===0&&t)r.base=r.name=e.slice(1,f);else r.base=r.name=e.slice(s,f)}else{if(s===0&&t)r.name=e.slice(1,n),r.base=e.slice(1,f);else r.name=e.slice(s,n),r.base=e.slice(s,f);r.ext=e.slice(n,f)}if(s>0)r.dir=e.slice(0,s-1);else if(t)r.dir="/";return r}var K="/",Q=":",le=((e)=>(e.posix=e,e))({resolve:d,normalize:w,isAbsolute:G,join:$,relative:y,_makeLong:z,dirname:H,basename:h,extname:C,format:U,parse:q,sep:K,delimiter:Q,win32:null,posix:null});import{loadConfig as ne}from"c12";var A={};V(A,{isatty:()=>B,default:()=>X,WriteStream:()=>S,ReadStream:()=>T});var B=()=>!1;function S(){throw Error("tty.WriteStream is not implemented for browsers")}function T(){throw Error("tty.ReadStream is not implemented for browsers")}var X={ReadStream:T,WriteStream:S,isatty:B};var{env:c={},argv:W=[],platform:Z=""}=typeof process>"u"?{}:process,I="NO_COLOR"in c||W.includes("--no-color"),J="FORCE_COLOR"in c||W.includes("--color"),j=Z==="win32",_=c.TERM==="dumb",F=A&&B&&B(1)&&c.TERM&&!_,N="CI"in c&&(("GITHUB_ACTIONS"in c)||("GITLAB_CI"in c)||("CIRCLECI"in c)),P=!I&&(J||j&&!_||F||N),L=(e,r,i,t,l=r.substring(0,e)+t,n=r.substring(e+i.length),s=n.indexOf(i))=>l+(s<0?n:L(s,n,i,t)),p=(e,r,i,t,l)=>e<0?i+r+t:i+L(e,r,t,l)+t,ee=(e,r,i=e,t=e.length+1)=>(l)=>l||!(l===""||l===void 0)?p((""+l).indexOf(r,t),l,e,r,i):"",g=(e,r,i)=>ee(`\x1B[${e}m`,`\x1B[${r}m`,i),D={reset:g(0,0),bold:g(1,22,"\x1B[22m\x1B[1m"),dim:g(2,22,"\x1B[22m\x1B[2m"),italic:g(3,23),underline:g(4,24),inverse:g(7,27),hidden:g(8,28),strikethrough:g(9,29),black:g(30,39),red:g(31,39),green:g(32,39),yellow:g(33,39),blue:g(34,39),magenta:g(35,39),cyan:g(36,39),white:g(37,39),gray:g(90,39),bgBlack:g(40,49),bgRed:g(41,49),bgGreen:g(42,49),bgYellow:g(43,49),bgBlue:g(44,49),bgMagenta:g(45,49),bgCyan:g(46,49),bgWhite:g(47,49),blackBright:g(90,39),redBright:g(91,39),greenBright:g(92,39),yellowBright:g(93,39),blueBright:g(94,39),magentaBright:g(95,39),cyanBright:g(96,39),whiteBright:g(97,39),bgBlackBright:g(100,49),bgRedBright:g(101,49),bgGreenBright:g(102,49),bgYellowBright:g(103,49),bgBlueBright:g(104,49),bgMagentaBright:g(105,49),bgCyanBright:g(106,49),bgWhiteBright:g(107,49)},re=({useColor:e=P}={})=>e?D:Object.keys(D).reduce((r,i)=>({...r,[i]:String}),{}),{reset:fe,bold:se,dim:ue,italic:oe,underline:ae,inverse:be,hidden:ce,strikethrough:de,black:me,red:Be,green:he,yellow:ve,blue:ye,magenta:Ce,cyan:Ae,white:ke,gray:Re,bgBlack:we,bgRed:Se,bgGreen:Te,bgYellow:De,bgBlue:We,bgMagenta:_e,bgCyan:Le,bgWhite:Oe,blackBright:Ye,redBright:xe,greenBright:O,yellowBright:Me,blueBright:Ee,magentaBright:Ge,cyanBright:$e,whiteBright:ze,bgBlackBright:He,bgRedBright:Ue,bgGreenBright:qe,bgYellowBright:Ke,bgBlueBright:Qe,bgMagentaBright:Ve,bgCyanBright:Xe,bgWhiteBright:Ze}=re();var v="timeback.config.json";function x(e){return C(e).toLowerCase()===".json"}async function te(e,r){if(r&&!x(r))throw Error(`Config file must be JSON (.json): ${r}`);let i=await ne({cwd:e,name:"timeback",configFile:r??v,rcFile:!1,packageJson:!1,dotenv:!1,envName:!1,extend:!1,omit$Keys:!0,defaults:{},overrides:{}});if(!i.config||Object.keys(i.config).length===0)return null;let t=i.config;if("extends"in t)throw Error("The 'extends' feature is not supported in timeback.config.json. Please inline all configuration.");let{$schema:l,...n}=t;return{config:n,configFile:i.configFile??d(e,r??v)}}async function rr(e={}){let r=process.cwd();try{if(e.configPath&&!x(e.configPath))return{success:!1,error:`Config file must be JSON (.json): ${e.configPath}`};if(e.configPath){let l=d(r,e.configPath);if(!ie(l))return{success:!1,error:`Config file not found: ${e.configPath}`}}let i=await te(r,e.configPath);if(!i)return{success:!1,error:`No timeback config found. Run ${O("timeback init")} to create one.`};let t=Y.safeParse(i.config);if(!t.success){let l=t.error.issues.map((n)=>` - ${n.path.join(".")}: ${n.message}`).join(`
2
2
  `);return{success:!1,error:`Invalid config in ${h(i.configFile)}:
3
3
  ${l}`}}return{success:!0,config:t.data,configPath:i.configFile}}catch(i){return{success:!1,error:`Failed to load ${e.configPath?h(e.configPath):v}:
4
4
  ${i instanceof Error?i.message:String(i)}`}}}function ir(e){return y(process.cwd(),e)}export{te as loadWithC12,rr as loadConfig,ir as getRelativeConfigPath};