@timeback/sdk 0.1.15-beta.20260312005805 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -526,9 +526,11 @@ Vercel Edge, Bun, Deno, and Node.js. No separate entrypoint is needed:
526
526
  import { createTimebackIdentity, toNativeHandler } from '@timeback/sdk'
527
527
  ```
528
528
 
529
- > **Note:** `createTimeback()` (the full SDK) uses `c12` for config file loading, which is lazily
530
- > imported at runtime. On edge runtimes where `c12` isn't available, `createTimeback()` will fail
531
- > at call time — use `createTimebackIdentity()` for edge deployments.
529
+ > **Note:** `createTimeback()` (the full SDK) lazily loads shared config-reading
530
+ > infrastructure at runtime. On edge runtimes without filesystem access,
531
+ > `createTimeback()` will fail at call time.
532
+ >
533
+ > Use `createTimebackIdentity()` for edge deployments.
532
534
 
533
535
  ### Server Setup
534
536
 
@@ -0,0 +1,2 @@
1
+ var g=Object.create;var{getPrototypeOf:h,defineProperty:f,getOwnPropertyNames:i}=Object;var j=Object.prototype.hasOwnProperty;var k=(a,b,c)=>{c=a!=null?g(h(a)):{};let d=b||!a||!a.__esModule?f(c,"default",{value:a,enumerable:!0}):c;for(let e of i(a))if(!j.call(d,e))f(d,e,{get:()=>a[e],enumerable:!0});return d};var l=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports);var m=(a,b)=>{for(var c in b)f(a,c,{get:b[c],enumerable:!0,configurable:!0,set:(d)=>b[c]=()=>d})};var n=((a)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(b,c)=>(typeof require<"u"?require:b)[c]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});
2
+ export{k as R,l as S,m as T,n as U};
@@ -1 +1 @@
1
- import{z as q}from"zod/v4";import{z as X}from"zod/v4";var v_=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/,V=X.string().min(1).regex(v_,"must be a valid ISO 8601 datetime"),O=X.string().min(1).regex(/^\d{4}-\d{2}-\d{2}$/,"must be a valid ISO 8601 date (YYYY-MM-DD)"),_=X.string().trim().min(1),L=X.enum(["Reading","Language","Vocabulary","Social Studies","Writing","Science","FastMath","Math","None","Other"]).meta({id:"TimebackSubject",description:"Subject area"}),G=X.union([X.literal(-1),X.literal(0),X.literal(1),X.literal(2),X.literal(3),X.literal(4),X.literal(5),X.literal(6),X.literal(7),X.literal(8),X.literal(9),X.literal(10),X.literal(11),X.literal(12),X.literal(13)]).meta({id:"TimebackGrade",description:"Grade level (-1 = Pre-K, 0 = K, 1-12 = grades, 13 = AP)"}),N=X.enum(["exempt","fully graded","not submitted","partially graded","submitted"]),E=X.enum(["department","school","district","local","state","national"]),f=X.enum(["administrator","aide","guardian","parent","proctor","relative","student","teacher"]),o=X.enum(["administrator","proctor","student","teacher"]),g=X.enum(["qti","text","audio","video","interactive","visual","course-material","assessment-bank"]),m=X.enum(["qti-test","qti-question","qti-stimulus","qti-test-bank"]),S=X.enum(["unit","course","resource-collection"]),a=X.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"]),r=X.enum(["easy","medium","hard"]),i=X.array(X.object({source:X.string(),learningObjectiveIds:X.array(X.string())})),e=X.object({consecutive_failures:X.number().int().min(1).optional(),stagnation_limit:X.number().int().min(1).optional()}).optional(),lZ=X.enum(["powerpath-100","quiz","test-out","placement","unit-test","alpha-read-article"]).nullable(),cZ=X.object({imsx_codeMajor:X.enum(["failure","success"]),imsx_severity:X.enum(["error","warning","status"]),imsx_description:X.string(),imsx_CodeMinor:X.object({imsx_codeMinorField:X.array(X.object({imsx_codeMinorFieldName:X.string(),imsx_codeMinorFieldValue:X.string()}))}).optional()});var f_=q.object({staging:q.string().meta({description:"Course ID in staging environment"}).optional(),production:q.string().meta({description:"Course ID in production environment"}).optional()}).meta({id:"CourseIds",description:"Environment-specific course IDs (populated by sync)"}),D_=q.enum(["base","hole-filling","optional"]).meta({id:"CourseType",description:"Course classification type"}),u_=q.enum(["draft","testing","published","deactivated"]).meta({id:"PublishStatus",description:"Course publication status"}),T_=q.object({dailyXp:q.number().int().positive().meta({description:"Target XP to earn per day"}).optional(),dailyLessons:q.number().int().positive().meta({description:"Target lessons to complete per day"}).optional(),dailyActiveMinutes:q.number().int().positive().meta({description:"Target active learning minutes per day"}).optional(),dailyAccuracy:q.number().int().min(0).max(100).meta({description:"Target accuracy percentage (0-100)"}).optional(),dailyMasteredUnits:q.number().int().positive().meta({description:"Target units to master per day"}).optional()}).meta({id:"CourseGoals",description:"Daily learning goals for a course"}),C_=q.object({totalXp:q.number().int().positive().meta({description:"Total XP available in the course"}).optional(),totalLessons:q.number().int().positive().meta({description:"Total number of lessons/activities"}).optional(),totalGrades:q.number().int().positive().meta({description:"Total grade levels covered"}).optional()}).meta({id:"CourseMetrics",description:"Aggregate metrics for a course"}),z=q.object({courseType:D_.optional(),isSupplemental:q.boolean().meta({description:"Whether this is supplemental to a base course"}).optional(),isCustom:q.boolean().meta({description:"Whether this is a custom course for an individual student"}).optional(),publishStatus:u_.optional(),contactEmail:q.email().meta({description:"Contact email for course issues"}).optional(),primaryApp:q.string().meta({description:"Primary application identifier"}).optional(),goals:T_.optional(),metrics:C_.optional()}).meta({id:"CourseMetadata",description:"Course metadata (matches API metadata object)"}),t=q.object({courseCode:q.string().meta({description:"Course code (e.g., 'MATH101')"}).optional(),level:q.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"}),n=q.object({level:q.string().meta({description:"Course level for this environment"}).optional(),sensor:q.url().meta({description:"Caliper sensor endpoint URL for this environment"}).optional(),launchUrl:q.url().meta({description:"LTI launch URL for this environment"}).optional(),metadata:z.optional()}).meta({id:"CourseEnvOverrides",description:"Environment-specific course overrides (non-identity fields)"}),R_=q.object({staging:n.meta({description:"Overrides for staging environment"}).optional(),production:n.meta({description:"Overrides for production environment"}).optional()}).meta({id:"CourseOverrides",description:"Per-environment course overrides"}),d_=t.extend({subject:L.meta({description:"Subject area for this course"}),grade:G.meta({description:"Grade level (-1 = Pre-K, 0 = K, 1-12 = grades, 13 = AP)"}).optional(),ids:f_.nullable().optional(),sensor:q.url().meta({description:"Caliper sensor endpoint URL for this course"}).optional(),launchUrl:q.url().meta({description:"LTI launch URL for this course"}).optional(),overrides:R_.optional()}).meta({id:"CourseConfig",description:"Configuration for a single course. Must have either grade or courseCode (or both)."}),EZ=q.object({$schema:q.string().meta({description:"JSON Schema reference for editor support"}).optional(),name:q.string().min(1,"App name is required").meta({description:"Display name for your app"}),defaults:t.meta({description:"Default properties applied to all courses"}).optional(),courses:q.array(d_).min(1,"At least one course is required").meta({description:"Courses available in this app"}),sensor:q.url().meta({description:"Default Caliper sensor endpoint URL for all courses"}).optional(),launchUrl:q.url().meta({description:"Default LTI launch URL for all courses"}).optional(),studio:q.object({telemetry:q.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((J)=>{return J.courses.every((W)=>W.grade!==void 0||W.courseCode!==void 0)},{message:"Each course must have either a grade or a courseCode",path:["courses"]}).refine((J)=>{let F=J.courses.filter((A)=>A.grade!==void 0).map((A)=>`${A.subject}:${A.grade}`);return new Set(F).size===F.length},{message:"Duplicate (subject, grade) pair found; each must be unique",path:["courses"]}).refine((J)=>{let F=J.courses.filter((A)=>A.courseCode!==void 0).map((A)=>A.courseCode);return new Set(F).size===F.length},{message:"Duplicate courseCode found; each must be unique",path:["courses"]}).refine((J)=>{return J.courses.every((W)=>{if(W.sensor!==void 0||J.sensor!==void 0)return!0;return[W.launchUrl,J.launchUrl,W.overrides?.staging?.launchUrl,W.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 Z}from"zod/v4";var l_=Z.union([Z.url(),Z.string().regex(/^urn:/,"Must be a URL or URN")]),b=Z.object({id:Z.url(),type:Z.literal("TimebackUser"),email:Z.string()}),C=Z.object({id:Z.url(),type:Z.literal("TimebackActivityContext"),subject:L,app:Z.object({name:Z.string()}),activity:Z.object({id:Z.url().optional(),name:Z.string()}).strict().optional(),course:Z.object({id:Z.url().optional(),name:Z.string().optional()}).strict(),process:Z.boolean().optional()}),__=Z.object({"@context":Z.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),id:Z.string().regex(/^urn:uuid:/,"Event id must start with urn:uuid:"),type:Z.string(),eventTime:V,profile:Z.literal("TimebackProfile"),actor:b,action:Z.string(),object:C,edApp:Z.object({id:Z.string(),name:Z.string().optional()}).optional()}),Z_=Z.object({type:Z.enum(["totalQuestions","correctQuestions","xpEarned","masteredUnits"]),value:Z.number()}),c_=Z.object({id:Z.url(),type:Z.literal("TimebackActivityMetricsCollection"),attempt:Z.number().optional(),items:Z.array(Z_),extensions:Z.record(Z.string(),Z.unknown()).optional()}),p_=__.extend({type:Z.literal("ActivityEvent"),action:Z.literal("Completed"),generated:c_}),x_=Z.object({type:Z.enum(["active","inactive","waste","unknown","anti-pattern"]),value:Z.number(),subType:Z.string().optional()}),y_=Z.object({id:Z.url(),type:Z.literal("TimebackTimeSpentMetricsCollection"),items:Z.array(x_)}),N_=__.extend({type:Z.literal("TimeSpentEvent"),action:Z.literal("SpentTime"),generated:y_}),SZ=Z.object({actor:b,object:C,metrics:Z.array(Z_).min(1,"metrics must contain at least one metric"),eventTime:V.optional(),metricsId:Z.string().optional(),id:Z.string().optional(),extensions:Z.record(Z.string(),Z.unknown()).optional(),edApp:Z.union([Z.string(),Z.record(Z.string(),Z.unknown())]).optional(),session:Z.union([Z.string(),Z.record(Z.string(),Z.unknown())]).optional(),attempt:Z.number().int().min(1).optional(),generatedExtensions:Z.object({pctCompleteApp:Z.number().optional()}).loose().optional()}).strict(),aZ=Z.object({actor:b,object:C,metrics:Z.array(x_).min(1,"metrics must contain at least one metric"),eventTime:V.optional(),metricsId:Z.string().optional(),id:Z.string().optional(),extensions:Z.record(Z.string(),Z.unknown()).optional(),edApp:Z.union([Z.string(),Z.record(Z.string(),Z.unknown())]).optional(),session:Z.union([Z.string(),Z.record(Z.string(),Z.unknown())]).optional()}).strict(),E_=Z.union([p_,N_]),rZ=Z.object({sensor:Z.string(),sendTime:V,dataVersion:Z.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),data:Z.array(E_)}),o_=Z.enum(["AnnotationProfile","AssessmentProfile","ToolUseProfile","GeneralProfile","FeedbackProfile","MediaProfile","SurveyProfile","ResourceManagementProfile","ForumProfile","AssignableProfile","GradingProfile","ReadingProfile","SessionProfile","SearchProfile","ToolLaunchProfile","TimebackProfile"]),B=Z.union([Z.string(),Z.record(Z.string(),Z.unknown())]),D=Z.object({id:l_,type:Z.string(),name:Z.string().optional(),extensions:Z.record(Z.string(),Z.unknown()).optional()}).strict(),H_=Z.object({"@context":Z.string().optional(),id:Z.string().regex(/^urn:uuid:/,"Event id must start with urn:uuid:"),type:Z.string(),actor:Z.union([Z.string(),D,b]),action:Z.string(),object:B,eventTime:V,profile:o_,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:Z.record(Z.string(),Z.unknown()).optional()}).strict(),iZ=Z.object({sensor:_,sendTime:V,dataVersion:Z.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),data:Z.array(H_).min(1,"data must contain at least one event")}),eZ=Z.object({sensor:_,events:Z.array(H_).min(1,"events must contain at least one event")}),nZ=Z.object({limit:Z.number().int().positive().optional(),offset:Z.number().int().min(0).optional(),sensor:_.optional(),startDate:V.optional(),endDate:V.optional(),actorId:_.optional(),actorEmail:Z.email().optional()}).strict(),K_=Z.object({id:Z.string(),name:Z.string().optional(),isPartOf:B.optional(),extensions:Z.record(Z.string(),Z.unknown()).optional()}),g_=Z.object({id:Z.string(),attempt:Z.union([Z.string(),Z.record(Z.string(),Z.unknown())]).optional(),startedAtTime:V.optional(),endedAtTime:V.optional(),duration:Z.string().optional(),extensions:Z.record(Z.string(),Z.unknown()).optional()}),m_=Z.object({id:Z.string().optional(),scoreGiven:Z.number(),maxScore:Z.number().optional(),attempt:Z.union([Z.string(),Z.record(Z.string(),Z.unknown())]).optional(),comment:Z.string().optional(),extensions:Z.record(Z.string(),Z.unknown()).optional()}),zZ=Z.object({actor:Z.union([Z.string(),D,b]),object:K_,edApp:B,id:Z.string().optional(),eventTime:V.optional(),session:B.optional(),extensions:Z.record(Z.string(),Z.unknown()).optional()}).strict(),tZ=Z.object({actor:Z.union([Z.string(),D,b]),object:K_,edApp:B,generated:g_.optional(),id:Z.string().optional(),eventTime:V.optional(),session:B.optional(),extensions:Z.record(Z.string(),Z.unknown()).optional()}).strict(),_2=Z.object({actor:Z.union([Z.string(),D,b]),object:Z.string(),generated:m_,edApp:B,id:Z.string().optional(),eventTime:V.optional(),session:B.optional(),extensions:Z.record(Z.string(),Z.unknown()).optional()}).strict();import{z as U}from"zod/v4";var K2=U.object({name:_,targetUrl:U.url("targetUrl must be a valid URL"),secret:_,active:U.boolean(),sensor:U.string().nullable().optional(),description:U.string().nullable().optional()}).strict();var S_=U.enum(["string","number","boolean"]),a_=U.enum(["eq","neq","gt","gte","lt","lte","contains","notContains","in","notIn","startsWith","endsWith","regexp"]),Y2=U.object({webhookId:_,filterKey:_,filterValue:_,filterType:S_,filterOperator:a_,active:U.boolean()}).strict();import{z as j}from"zod/v4";var u=j.string().uuid(),Y_=j.object({title:_,identifier:u,uri:_}),r_=j.object({identifier:u,uri:_,lastChangeDateTime:_,title:_,creator:_,officialSourceURL:j.string().optional(),publisher:j.string().optional(),description:j.string().optional(),language:j.string().optional(),version:j.string().optional(),caseVersion:j.string().optional(),adoptionStatus:j.string().optional(),statusStartDate:j.string().optional(),statusEndDate:j.string().optional(),licenseUri:j.string().optional(),notes:j.string().optional(),subject:j.array(j.string()).optional(),extensions:j.unknown().optional()}),i_=j.object({identifier:u,uri:_,lastChangeDateTime:_,fullStatement:_,alternativeLabel:j.string().optional(),CFItemType:j.string().optional(),cfItemType:j.string().optional(),humanCodingScheme:j.string().optional(),listEnumeration:j.string().optional(),abbreviatedStatement:j.string().optional(),conceptKeywords:j.array(j.string()).optional(),notes:j.string().optional(),subject:j.array(j.string()).optional(),language:j.string().optional(),educationLevel:j.array(j.string()).optional(),CFItemTypeURI:j.unknown().optional(),licenseURI:j.unknown().optional(),statusStartDate:j.string().optional(),statusEndDate:j.string().optional(),extensions:j.unknown().optional()}),e_=j.object({identifier:u,uri:_,lastChangeDateTime:_,associationType:_,originNodeURI:Y_,destinationNodeURI:Y_,sequenceNumber:j.number().optional(),extensions:j.unknown().optional()}),n_=j.object({CFItemTypes:j.array(j.unknown()).optional(),CFSubjects:j.array(j.unknown()).optional(),CFConcepts:j.array(j.unknown()).optional(),CFLicenses:j.array(j.unknown()).optional(),CFAssociationGroupings:j.array(j.unknown()).optional(),extensions:j.unknown().optional()}),X2=j.object({CFDocument:r_,CFItems:j.array(i_),CFAssociations:j.array(e_),CFDefinitions:n_.optional(),extensions:j.unknown().optional()});import{z as Y}from"zod/v4";var $_="https://www.w3.org/ns/credentials/v2",z_=Y.array(Y.url()).min(3,"@context must include W3C, CLR, and OB context URLs").refine((J)=>J[0]===$_,`First @context entry must be "${$_}"`),j_=Y.object({id:Y.url(),type:Y.literal("Image"),caption:Y.string().optional()}),R=Y.object({id:Y.url(),type:Y.array(Y.string()).min(1).refine((J)=>J.includes("Profile"),'type must include "Profile"'),name:Y.string().optional(),url:Y.string().url().optional(),phone:Y.string().optional(),description:Y.string().optional(),image:j_.optional(),email:Y.string().email().optional()}),J_=Y.object({type:_,proofPurpose:_,verificationMethod:_,created:Y.iso.datetime(),proofValue:_,cryptosuite:Y.string().optional()}),t_=Y.object({id:_,type:Y.literal("1EdTechJsonSchemaValidator2019")}),_Z=Y.object({id:Y.string().url().optional(),narrative:Y.string().optional()}),ZZ=Y.object({id:Y.url(),type:Y.array(Y.string()).min(1).refine((J)=>J.includes("Achievement"),'type must include "Achievement"'),name:_,description:_,criteria:_Z,image:j_.optional(),achievementType:Y.string().optional(),creator:R.optional()}),xZ=Y.object({type:Y.literal("IdentityObject"),identityHash:_,identityType:_,hashed:Y.boolean(),salt:Y.string().optional()}),HZ=Y.enum(["exactMatchOf","isChildOf","isParentOf","isPartOf","isPeerOf","isRelatedTo","precedes","replacedBy"]),KZ=Y.object({type:Y.literal("Association"),associationType:HZ,sourceId:Y.url(),targetId:Y.url()}),YZ=Y.object({"@context":Y.array(Y.string()).min(1),id:Y.url(),type:Y.array(Y.string()).min(1).refine((J)=>J.includes("VerifiableCredential"),'type must include "VerifiableCredential"'),issuer:R,validFrom:Y.iso.datetime(),validUntil:Y.string().datetime().optional(),credentialSubject:Y.object({id:Y.string().optional()}),proof:Y.array(J_).optional()}),$Z=Y.object({id:Y.string().url().optional(),type:Y.array(Y.string()).min(1).refine((J)=>J.includes("ClrSubject"),'type must include "ClrSubject"'),identifier:Y.array(xZ).optional(),achievement:Y.array(ZZ).optional(),verifiableCredential:Y.array(YZ).min(1),association:Y.array(KZ).optional()}),W2=Y.object({"@context":z_,id:Y.url(),type:Y.array(Y.string()).min(1).refine((J)=>J.includes("VerifiableCredential")&&J.includes("ClrCredential"),'type must include "VerifiableCredential" and "ClrCredential"'),issuer:R,name:_,description:Y.string().optional(),validFrom:Y.iso.datetime(),validUntil:Y.iso.datetime().optional(),credentialSubject:$Z,proof:Y.array(J_).optional(),credentialSchema:Y.array(t_).optional()});import{z as $}from"zod/v4";var I=$.union([V,O]),v=I.transform((J)=>J.includes("T")?J:`${J}T00:00:00.000Z`),B2=$.object({id:$.string(),role:$.string(),beginDate:I.nullable(),endDate:I.nullable(),metadata:$.object({goals:$.object({dailyXp:$.number().optional()}).optional(),metrics:$.object({totalXp:$.number().optional(),totalLessons:$.number().optional()}).optional()}).optional(),course:$.object({id:$.string(),title:$.string(),subjects:$.array($.string()).nullable(),grades:$.array($.string()).nullable()}),school:$.object({id:$.string(),name:$.string()})}),jZ=$.object({activityMetrics:$.object({xpEarned:$.number(),totalQuestions:$.number(),correctQuestions:$.number(),masteredUnits:$.number()}),timeSpentMetrics:$.object({activeSeconds:$.number(),inactiveSeconds:$.number(),wasteSeconds:$.number()}),apps:$.array($.string())}),JZ=$.record($.string(),$.record($.string(),jZ)),G2=$.object({message:$.string(),enrollmentId:$.string(),startDate:I,endDate:I,facts:JZ,factsByApp:$.unknown()}),X_=$.object({email:$.email().optional(),studentId:_.optional()}).superRefine((J,W)=>{if(!J.email&&!J.studentId)W.addIssue({code:$.ZodIssueCode.custom,message:"must provide either email or studentId",path:["email"]}),W.addIssue({code:$.ZodIssueCode.custom,message:"must provide either email or studentId",path:["studentId"]})}),A2=$.object({subject:_,grade:_,courseId:_,orgSourcedId:_.optional()});var L2=$.object({userId:_}),F2=$.object({sourcedId:_.optional(),role:o.optional(),beginDate:V.optional(),metadata:$.record($.string(),$.unknown()).optional()}),U2=$.object({fields:$.string().optional(),limit:$.number().int().positive().optional(),offset:$.number().int().nonnegative().optional(),sort:$.string().optional(),orderBy:$.enum(["asc","desc"]).optional(),filter:$.string().optional(),search:$.string().optional(),roles:$.array(f).min(1),orgSourcedIds:$.array(_).optional()}),O2=X_.extend({startDate:v,endDate:v,timezone:$.string().optional()}),s2=X_.extend({weekDate:v,timezone:$.string().optional()}),M2=$.object({enrollmentId:_,startDate:v.optional(),endDate:v.optional(),timezone:$.string().optional()});import{z as k}from"zod/v4";var v2=k.object({email:k.email()}),f2=k.object({name:_.optional(),timeback_id:_.optional(),grade:_.optional(),subject:_.optional(),all:k.boolean().optional()}),D2=k.object({student_email:k.email(),timeback_id:_.optional(),subject:_.optional(),grade_rank:k.number().int().min(0).max(12).optional(),assessment_line_item_sourced_id:_.optional(),assessment_result_sourced_id:_.optional()}).superRefine((J,W)=>{let F=!!J.timeback_id,A=!!J.subject,T=J.grade_rank!==void 0;if(!F&&!A)W.addIssue({code:k.ZodIssueCode.custom,message:"must provide either timeback_id or subject",path:["timeback_id"]}),W.addIssue({code:k.ZodIssueCode.custom,message:"must provide either timeback_id or subject",path:["subject"]});if(T&&!A)W.addIssue({code:k.ZodIssueCode.custom,message:"grade_rank requires subject",path:["grade_rank"]});let y=!!J.assessment_line_item_sourced_id,I_=!!J.assessment_result_sourced_id;if(y!==I_)W.addIssue({code:k.ZodIssueCode.custom,message:"assessment_line_item_sourced_id and assessment_result_sourced_id must be provided together",path:y?["assessment_result_sourced_id"]:["assessment_line_item_sourced_id"]})}),u2=k.object({student_email:k.email(),assignment_id:k.number().int().positive().optional(),timeback_id:_.optional(),subject:_.optional(),grade_rank:k.number().int().min(0).max(12).optional()}).superRefine((J,W)=>{let F=J.assignment_id!==void 0,A=!!J.timeback_id,T=!!J.subject&&J.grade_rank!==void 0;if(!F&&!A&&!T)W.addIssue({code:k.ZodIssueCode.custom,message:"Either assignment_id, timeback_id, or (subject and grade_rank) is required",path:["assignment_id"]});if(J.grade_rank!==void 0&&!J.subject)W.addIssue({code:k.ZodIssueCode.custom,message:"grade_rank requires subject",path:["grade_rank"]})});import{z as H}from"zod/v4";var P=H.enum(["active","tobedeleted"]),Q=H.record(H.string(),H.unknown()).nullable().optional(),w=H.object({sourcedId:_,type:H.string().optional(),href:H.string().optional()}).strict(),s=H.union([O,V]).transform((J)=>J.includes("T")?J:`${J}T00:00:00Z`),XZ=H.object({roleType:H.enum(["primary","secondary"]),role:f,org:w,userProfile:H.string().optional(),metadata:Q,beginDate:s.optional(),endDate:s.optional()}).strict(),d2=H.object({sourcedId:_.describe("sourcedId must be a non-empty string"),status:P.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(),roles:H.array(XZ).min(1,"roles must include at least one role"),userIds:H.array(H.object({type:_,identifier:_}).strict()).optional(),agents:H.array(w).optional(),grades:H.array(G).optional(),identifier:_.optional(),sms:_.optional(),phone:_.optional(),pronouns:_.optional(),password:_.optional(),metadata:Q}).strict(),l2=H.object({sourcedId:_.describe("sourcedId must be a non-empty string").optional(),status:P.optional(),title:_.describe("title must be a non-empty string"),org:w,courseCode:_.optional(),subjects:H.array(L).optional(),grades:H.array(G).optional(),level:_.optional(),metadata:Q}).strict(),c2=H.object({sourcedId:_.describe("sourcedId must be a non-empty string").optional(),status:P.optional(),title:_.describe("title must be a non-empty string"),terms:H.array(w).min(1,"terms must have at least one item"),course:w,org:w,classCode:_.optional(),classType:H.enum(["homeroom","scheduled"]).optional(),location:_.optional(),grades:H.array(G).optional(),subjects:H.array(L).optional(),subjectCodes:H.array(_).optional(),periods:H.array(_).optional(),metadata:Q}).strict(),q_=H.enum(["true","false"]),p2=H.object({sourcedId:_.describe("sourcedId must be a non-empty string").optional(),status:P.optional(),user:w,class:w,school:w.optional(),role:H.enum(["administrator","proctor","student","teacher"]),primary:q_.optional(),beginDate:O.optional(),endDate:O.optional(),metadata:Q}).strict(),y2=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),status:P,weight:H.number().nullable().optional(),metadata:Q}).strict(),N2=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),class:w,school:w,category:w,assignDate:s,dueDate:s,status:P,description:H.string().optional(),resultValueMin:H.number().nullable().optional(),resultValueMax:H.number().nullable().optional(),scoreScale:w.optional(),metadata:Q}).strict(),E2=H.object({sourcedId:_.optional(),lineItem:w,student:w,class:w.optional(),scoreDate:s,scoreStatus:H.enum(["exempt","fully graded","not submitted","partially graded","submitted"]),score:H.number().nullable().optional(),textScore:H.string().nullable().optional(),status:P,comment:H.string().nullable().optional(),metadata:Q}).strict(),o2=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),status:P.optional(),type:H.string(),class:w,course:w.nullable().optional(),scoreScaleValue:H.array(H.object({itemValueLHS:_,itemValueRHS:_,value:H.string().optional(),description:H.string().optional()}).strict()),minScore:H.number().optional(),maxScore:H.number().optional(),metadata:Q}).strict(),g2=H.object({sourcedId:_.optional(),status:P.optional(),dateLastModified:V.optional(),title:_.describe("title must be a non-empty string"),description:H.string().nullable().optional(),class:w.nullable().optional(),parentAssessmentLineItem:w.nullable().optional(),scoreScale:w.nullable().optional(),resultValueMin:H.number().nullable().optional(),resultValueMax:H.number().nullable().optional(),component:w.nullable().optional(),componentResource:w.nullable().optional(),learningObjectiveSet:H.array(H.object({source:H.string(),learningObjectiveIds:H.array(H.string())})).optional().nullable(),course:w.nullable().optional(),metadata:Q}).strict(),qZ=H.object({learningObjectiveId:H.string(),score:H.number().optional(),textScore:H.string().optional()}),wZ=H.array(H.object({source:H.string(),learningObjectiveResults:H.array(qZ)})),m2=H.object({sourcedId:_.optional(),status:P.optional(),dateLastModified:V.optional(),metadata:Q,assessmentLineItem:w,student:w,score:H.number().nullable().optional(),textScore:H.string().nullable().optional(),scoreDate:s,scoreScale:w.nullable().optional(),scorePercentile:H.number().nullable().optional(),scoreStatus:H.enum(["exempt","fully graded","not submitted","partially graded","submitted"]),comment:H.string().nullable().optional(),learningObjectiveSet:wZ.nullable().optional(),inProgress:H.string().nullable().optional(),incomplete:H.string().nullable().optional(),late:H.string().nullable().optional(),missing:H.string().nullable().optional()}).strict(),S2=H.object({sourcedId:_.optional(),status:P.optional(),name:_.describe("name must be a non-empty string"),type:E,identifier:_.optional(),parent:w.optional(),metadata:Q}).strict(),a2=H.object({sourcedId:_.optional(),status:P.optional(),name:_.describe("name must be a non-empty string"),type:H.literal("school").optional(),identifier:_.optional(),parent:w.optional(),metadata:Q}).strict(),r2=H.object({sourcedId:_.describe("sourcedId must be a non-empty string"),status:P,title:_.describe("title must be a non-empty string"),startDate:s,endDate:s,type:H.enum(["gradingPeriod","semester","schoolYear","term"]),schoolYear:_.describe("schoolYear must be a non-empty string"),org:w,parent:w.optional(),children:H.array(w).optional(),metadata:Q}).strict(),i2=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),courseComponent:w,resource:w,status:P,metadata:Q}).strict(),e2=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),course:w,status:P,metadata:Q}).strict(),n2=H.object({sourcedId:_.describe("sourcedId must be a non-empty string"),role:H.enum(["student","teacher"]),primary:q_.optional(),beginDate:O.optional(),endDate:O.optional(),metadata:Q}).strict(),z2=H.object({agentSourcedId:_.describe("agentSourcedId must be a non-empty string")}).strict(),t2=H.object({applicationName:_.describe("applicationName must be a non-empty string"),credentials:H.object({username:_.describe("username must be a non-empty string"),password:_.describe("password must be a non-empty string")})}).strict(),_x=H.object({sourcedId:_.describe("sourcedId must be a non-empty string")}).loose(),M=H.object({type:g,subject:L.nullish(),grades:H.array(G).nullish(),language:H.string().nullish(),xp:H.number().nullish(),url:H.url().nullish(),keywords:H.array(H.string()).nullish(),learningObjectiveSet:i.nullish(),lessonType:H.string().nullish()}).passthrough(),VZ=M.extend({type:H.literal("qti"),subType:m,questionType:a.optional(),difficulty:r.optional()}),WZ=M.extend({type:H.literal("text"),format:H.string(),author:H.string().optional(),pageCount:H.number().optional()}),QZ=M.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()}),kZ=M.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()}),PZ=M.extend({type:H.literal("interactive"),launchUrl:H.url().optional(),toolProvider:H.string().optional(),instructionalMethod:H.string().optional(),courseIdOnFail:H.string().nullable().optional(),fail_fast:e}),BZ=M.extend({type:H.literal("visual"),format:H.string(),resolution:H.string().optional()}),GZ=M.extend({type:H.literal("course-material"),subType:S,author:H.string().optional(),format:H.string(),instructionalMethod:H.string().optional()}),AZ=M.extend({type:H.literal("assessment-bank"),resources:H.array(H.string())}),LZ=H.discriminatedUnion("type",[VZ,WZ,QZ,kZ,PZ,BZ,GZ,AZ]),Zx=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:P.optional(),metadata:LZ.nullable().optional()}).strict(),FZ=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(),xx=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:w,status:P,metadata:Q}).strict(),courseStructure:H.record(H.string(),FZ)}).strict(),UZ=H.object({student:w}).loose(),Hx=H.array(UZ).min(1,"results must have at least one item");import{z as K}from"zod/v4";var OZ=K.enum(["edulastic","mastery-track"]),sZ=K.enum(["powerpath-100","quiz","test-out","placement","unit-test","alpha-read-article"]),V_=K.array(G),W_=K.record(K.string(),K.unknown()).optional(),Q_=K.object({courseId:_,lessonTitle:_.optional(),launchUrl:_.optional(),toolProvider:OZ,unitTitle:_.optional(),courseComponentSourcedId:_.optional(),vendorId:_.optional(),description:_.optional(),resourceMetadata:W_.nullable().optional(),grades:V_}),jx=Q_.extend({lessonType:K.literal("test-out"),xp:K.number()}),Jx=Q_.extend({lessonType:K.literal("placement"),courseIdOnFail:_.nullable().optional(),xp:K.number().optional()});var w_=K.object({courseId:_,lessonType:sZ,lessonTitle:_.optional(),unitTitle:_.optional(),courseComponentSourcedId:_.optional(),resourceMetadata:W_.nullable().optional(),xp:K.number().optional(),grades:V_.optional(),courseIdOnFail:_.nullable().optional()}),Xx=K.discriminatedUnion("testType",[w_.extend({testType:K.literal("qti"),qti:K.object({url:K.url(),title:_.optional(),metadata:K.record(K.string(),K.unknown()).optional()})}),w_.extend({testType:K.literal("assessment-bank"),assessmentBank:K.object({resources:K.array(K.object({url:K.url(),title:_.optional(),metadata:K.record(K.string(),K.unknown()).optional()})).min(1)})})]),qx=K.object({student:_,lesson:_}),wx=K.object({student:_,lesson:_}),Vx=K.object({courseId:_,userId:_,classId:_.optional()}),h=K.object({type:K.enum(["component","resource"]),id:_}),MZ=K.union([K.object({type:K.literal("set-skipped"),payload:K.object({target:h,value:K.boolean()})}),K.object({type:K.literal("add-custom-resource"),payload:K.object({resource_id:_,parent_component_id:_,skipped:K.boolean().optional()})}),K.object({type:K.literal("move-item-before"),payload:K.object({target:h,reference_id:_})}),K.object({type:K.literal("move-item-after"),payload:K.object({target:h,reference_id:_})}),K.object({type:K.literal("move-item-to-start"),payload:K.object({target:h})}),K.object({type:K.literal("move-item-to-end"),payload:K.object({target:h})}),K.object({type:K.literal("change-item-parent"),payload:K.object({target:h,new_parent_id:_,position:K.enum(["start","end"]).optional()})})]),Wx=K.object({operation:MZ,reason:_.optional()}),Qx=K.object({studentId:_,componentResourceId:_,result:K.object({status:K.enum(["active","tobedeleted"]),metadata:K.record(K.string(),K.unknown()).optional(),score:K.number().optional(),textScore:_.optional(),scoreDate:K.string().datetime(),scorePercentile:K.number().optional(),scoreStatus:N,comment:_.optional(),learningObjectiveSet:K.array(K.object({source:_,learningObjectiveResults:K.array(K.object({learningObjectiveId:_,score:K.number().optional(),textScore:_.optional()}))})).optional(),inProgress:_.optional(),incomplete:_.optional(),late:_.optional(),missing:_.optional()})}),kx=K.object({student:_,lesson:_,applicationName:_.optional(),testId:_.optional(),skipCourseEnrollment:K.boolean().optional()}),Px=K.object({student:_,subject:L}),Bx=K.object({student:_,lesson:_}),Gx=K.object({userId:_}),Ax=K.object({userId:_,subject:K.enum(["Math","Reading","Language","Science"])}),Lx=K.object({student:_,subject:L,grade:G,testName:_.optional()}),Fx=K.object({testName:_}),bZ=K.object({student:_,subject:L,grade:G,testName:_.optional()}),Ux=K.object({items:K.array(bZ)}),Ox=K.object({spreadsheetUrl:K.url(),sheet:_}),sx=K.object({student:_,status:K.enum(["assigned","in_progress","completed","failed","expired","cancelled"]).optional(),subject:_.optional(),grade:G.optional(),limit:K.number().int().positive().max(3000).optional(),offset:K.number().int().nonnegative().optional()}),Mx=K.object({student:_.optional(),status:K.enum(["assigned","in_progress","completed","failed","expired","cancelled"]).optional(),subject:_.optional(),grade:G.optional(),limit:K.number().int().positive().max(3000).optional(),offset:K.number().int().nonnegative().optional()}),bx=K.object({student:_,question:_,response:K.union([_,K.array(_)]).optional(),responses:K.record(K.string(),K.union([_,K.array(_)])).optional(),lesson:_,rendererOutcomes:K.object({score:K.number(),maxScore:K.number().min(0),isCorrect:K.boolean()}).optional(),playerState:K.string().optional()}).refine((J)=>J.response!==void 0||J.responses!==void 0,{message:"Either 'response' or 'responses' must be provided",path:["response","responses"]}).transform((J)=>{if(J.response!==void 0&&J.responses===void 0)return{...J,responses:{RESPONSE:J.response}};return J}),hx=K.object({student:_,lesson:_,attempt:K.number().int().positive().optional()}),Ix=K.object({student:_,lesson:_}),vx=K.object({student:_,lesson:_}),fx=K.object({student:_,course:_}),Dx=K.object({student:_,lesson:_,applicationName:_.optional()}),ux=K.object({student:_,subject:L}),Tx=K.object({status:K.enum(["active","tobedeleted"]).optional()});import{z as x}from"zod/v4";var k_=x.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"]),d=x.enum(["single","multiple","ordered","record"]),l=x.enum(["identifier","boolean","integer","float","string","point","pair","directedPair","duration","file","uri"]),hZ=x.enum(["easy","medium","hard"]),IZ=x.enum(["linear","nonlinear"]),vZ=x.enum(["individual","simultaneous"]),c=x.enum(["show","hide"]),P_=x.enum(["test","item","stimulus"]),lx=x.enum(["QUESTION","LESSON"]),fZ=x.object({value:x.array(x.string())}).strict(),B_=x.object({identifier:_,cardinality:d,baseType:l.optional(),correctResponse:fZ}).strict(),G_=x.object({identifier:_,cardinality:d,baseType:l.optional()}).strict(),A_=x.object({identifier:_,cardinality:d.optional(),baseType:l,normalMaximum:x.number().optional(),normalMinimum:x.number().optional(),defaultValue:x.object({value:x.unknown().optional()}).strict().optional()}).strict(),DZ=x.object({outcomeIdentifier:_,variableIdentifier:_}).strict(),L_=x.object({templateType:x.enum(["match_correct","map_response"]),responseDeclarationIdentifier:_,outcomeIdentifier:_,correctResponseIdentifier:_,incorrectResponseIdentifier:_,inlineFeedback:DZ.optional()}).strict(),uZ=x.object({source:_,learningObjectiveIds:x.array(x.string())}).strict(),p=x.object({subject:x.string().optional(),grade:G.optional(),difficulty:hZ.optional(),learningObjectiveSet:x.array(uZ).optional()}).loose(),F_=x.object({outcomeIdentifier:_,identifier:_,showHide:c,content:x.string(),title:x.string()}).strict(),U_=x.object({outcomeIdentifier:_,identifier:_,showHide:c,content:x.string(),class:x.array(x.string())}).strict(),O_=x.object({outcomeIdentifier:_,identifier:_,showHide:c,content:x.string(),class:x.array(x.string())}).strict(),s_=x.object({href:_,type:_}).strict(),M_=x.object({id:_,support:x.string(),content:x.string()}).strict(),cx=x.object({page:x.number().int().positive().optional(),limit:x.number().int().positive().optional(),sort:x.string().optional(),order:x.enum(["asc","desc"]).optional()}).strict(),TZ=x.object({format:x.string().pipe(x.literal("xml")),xml:_,metadata:p.optional()}).strict(),CZ=x.object({identifier:_,title:_,type:k_,qtiVersion:x.string().optional(),timeDependent:x.boolean().optional(),adaptive:x.boolean().optional(),responseDeclarations:x.array(B_).optional(),outcomeDeclarations:x.array(G_).optional(),responseProcessing:L_.optional(),metadata:p.optional(),modalFeedback:x.array(F_).optional(),feedbackInline:x.array(U_).optional(),feedbackBlock:x.array(O_).optional()}).strict(),px=x.union([TZ,CZ]),yx=x.object({identifier:_.optional(),title:_,type:k_,qtiVersion:x.string().optional(),timeDependent:x.boolean().optional(),adaptive:x.boolean().optional(),responseDeclarations:x.array(B_).optional(),outcomeDeclarations:x.array(G_).optional(),responseProcessing:L_.optional(),metadata:p.optional(),modalFeedback:x.array(F_).optional(),feedbackInline:x.array(U_).optional(),feedbackBlock:x.array(O_).optional(),rawXml:x.string(),content:x.record(x.string(),x.unknown())}).strict(),Nx=x.object({identifier:_,response:x.union([x.string(),x.array(x.string())])}).strict(),b_=x.object({identifier:_,href:_,sequence:x.number().int().positive().optional()}).strict(),RZ=x.object({identifier:_,title:_,visible:x.boolean(),required:x.boolean().optional(),fixed:x.boolean().optional(),sequence:x.number().int().positive(),"qti-assessment-item-ref":x.array(b_).optional()}).strict(),h_=x.object({identifier:_,navigationMode:x.string().pipe(IZ),submissionMode:x.string().pipe(vZ),"qti-assessment-section":x.array(RZ)}).strict(),Ex=x.object({items:x.array(b_).min(1)}).strict(),ox=x.object({metadata:x.record(x.string(),x.unknown()).optional()}).strict(),gx=x.object({identifier:_,title:_,qtiVersion:x.string().optional(),toolName:x.string().optional(),toolVersion:x.string().optional(),timeLimit:x.number().optional(),maxAttempts:x.number().optional(),toolsEnabled:x.record(x.string(),x.boolean()).optional(),metadata:x.record(x.string(),x.unknown()).optional(),"qti-test-part":x.array(h_),"qti-outcome-declaration":x.array(A_).optional()}).strict(),mx=x.object({identifier:_.optional(),title:_,qtiVersion:x.string().optional(),toolName:x.string().optional(),toolVersion:x.string().optional(),timeLimit:x.number().optional(),maxAttempts:x.number().optional(),toolsEnabled:x.record(x.string(),x.boolean()).optional(),metadata:x.record(x.string(),x.unknown()).optional(),"qti-test-part":x.array(h_),"qti-outcome-declaration":x.array(A_).optional()}).strict(),Sx=x.object({identifier:_,title:_,label:x.string().optional(),language:x.string().optional(),stylesheet:s_.optional(),content:x.string(),catalogInfo:x.array(M_).optional(),toolName:x.string().optional(),toolVersion:x.string().optional(),metadata:x.record(x.string(),x.unknown()).optional()}).strict(),ax=x.object({identifier:_.optional(),title:_,label:x.string().optional(),language:x.string().optional(),stylesheet:s_.optional(),content:x.string(),catalogInfo:x.array(M_).optional(),toolName:x.string().optional(),toolVersion:x.string().optional(),metadata:x.record(x.string(),x.unknown()).optional()}).strict(),rx=x.object({xml:x.string().optional(),schema:P_,entityId:x.string().optional()}).strict(),ix=x.object({xml:x.array(x.string()),schema:P_,entityIds:x.array(x.string())}).strict(),ex=x.object({questionId:x.string().optional(),userId:_,feedback:_,lessonId:_,humanApproved:x.boolean().optional()}).strict();export{_ as c,L as d,G as e,EZ as f};
1
+ import{z as q}from"zod/v4";import{z as X}from"zod/v4";var v_=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/,V=X.string().min(1).regex(v_,"must be a valid ISO 8601 datetime"),O=X.string().min(1).regex(/^\d{4}-\d{2}-\d{2}$/,"must be a valid ISO 8601 date (YYYY-MM-DD)"),_=X.string().trim().min(1),L=X.enum(["Reading","Language","Vocabulary","Social Studies","Writing","Science","FastMath","Math","None","Other"]).meta({id:"TimebackSubject",description:"Subject area"}),G=X.union([X.literal(-1),X.literal(0),X.literal(1),X.literal(2),X.literal(3),X.literal(4),X.literal(5),X.literal(6),X.literal(7),X.literal(8),X.literal(9),X.literal(10),X.literal(11),X.literal(12),X.literal(13)]).meta({id:"TimebackGrade",description:"Grade level (-1 = Pre-K, 0 = K, 1-12 = grades, 13 = AP)"}),N=X.enum(["exempt","fully graded","not submitted","partially graded","submitted"]),E=X.enum(["department","school","district","local","state","national"]),f=X.enum(["administrator","aide","guardian","parent","proctor","relative","student","teacher"]),o=X.enum(["administrator","proctor","student","teacher"]),g=X.enum(["qti","text","audio","video","interactive","visual","course-material","assessment-bank"]),m=X.enum(["qti-test","qti-question","qti-stimulus","qti-test-bank"]),S=X.enum(["unit","course","resource-collection"]),a=X.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"]),r=X.enum(["easy","medium","hard"]),i=X.array(X.object({source:X.string(),learningObjectiveIds:X.array(X.string())})),e=X.object({consecutive_failures:X.number().int().min(1).optional(),stagnation_limit:X.number().int().min(1).optional()}).optional(),lZ=X.enum(["powerpath-100","quiz","test-out","placement","unit-test","alpha-read-article"]).nullable(),cZ=X.object({imsx_codeMajor:X.enum(["failure","success"]),imsx_severity:X.enum(["error","warning","status"]),imsx_description:X.string(),imsx_CodeMinor:X.object({imsx_codeMinorField:X.array(X.object({imsx_codeMinorFieldName:X.string(),imsx_codeMinorFieldValue:X.string()}))}).optional()});var f_=q.object({staging:q.string().meta({description:"Course ID in staging environment"}).optional(),production:q.string().meta({description:"Course ID in production environment"}).optional()}).meta({id:"CourseIds",description:"Environment-specific course IDs (populated by sync)"}),D_=q.enum(["base","hole-filling","optional"]).meta({id:"CourseType",description:"Course classification type"}),u_=q.enum(["draft","testing","published","deactivated"]).meta({id:"PublishStatus",description:"Course publication status"}),T_=q.object({dailyXp:q.number().int().positive().meta({description:"Target XP to earn per day"}).optional(),dailyLessons:q.number().int().positive().meta({description:"Target lessons to complete per day"}).optional(),dailyActiveMinutes:q.number().int().positive().meta({description:"Target active learning minutes per day"}).optional(),dailyAccuracy:q.number().int().min(0).max(100).meta({description:"Target accuracy percentage (0-100)"}).optional(),dailyMasteredUnits:q.number().int().positive().meta({description:"Target units to master per day"}).optional()}).meta({id:"CourseGoals",description:"Daily learning goals for a course"}),C_=q.object({totalXp:q.number().int().positive().meta({description:"Total XP available in the course"}).optional(),totalLessons:q.number().int().positive().meta({description:"Total number of lessons/activities"}).optional(),totalGrades:q.number().int().positive().meta({description:"Total grade levels covered"}).optional()}).meta({id:"CourseMetrics",description:"Aggregate metrics for a course"}),z=q.object({courseType:D_.optional(),isSupplemental:q.boolean().meta({description:"Whether this is supplemental to a base course"}).optional(),isCustom:q.boolean().meta({description:"Whether this is a custom course for an individual student"}).optional(),publishStatus:u_.optional(),contactEmail:q.email().meta({description:"Contact email for course issues"}).optional(),primaryApp:q.string().meta({description:"Primary application identifier"}).optional(),goals:T_.optional(),metrics:C_.optional()}).meta({id:"CourseMetadata",description:"Course metadata (matches API metadata object)"}),t=q.object({courseCode:q.string().meta({description:"Course code (e.g., 'MATH101')"}).optional(),level:q.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"}),n=q.object({level:q.string().meta({description:"Course level for this environment"}).optional(),sensor:q.url().meta({description:"Caliper sensor endpoint URL for this environment"}).optional(),launchUrl:q.url().meta({description:"LTI launch URL for this environment"}).optional(),metadata:z.optional()}).meta({id:"CourseEnvOverrides",description:"Environment-specific course overrides (non-identity fields)"}),R_=q.object({staging:n.meta({description:"Overrides for staging environment"}).optional(),production:n.meta({description:"Overrides for production environment"}).optional()}).meta({id:"CourseOverrides",description:"Per-environment course overrides"}),d_=t.extend({subject:L.meta({description:"Subject area for this course"}),grade:G.meta({description:"Grade level (-1 = Pre-K, 0 = K, 1-12 = grades, 13 = AP)"}).optional(),ids:f_.nullable().optional(),sensor:q.url().meta({description:"Caliper sensor endpoint URL for this course"}).optional(),launchUrl:q.url().meta({description:"LTI launch URL for this course"}).optional(),overrides:R_.optional()}).meta({id:"CourseConfig",description:"Configuration for a single course. Must have either grade or courseCode (or both)."}),EZ=q.object({$schema:q.string().meta({description:"JSON Schema reference for editor support"}).optional(),name:q.string().min(1,"App name is required").meta({description:"Display name for your app"}),defaults:t.meta({description:"Default properties applied to all courses"}).optional(),courses:q.array(d_).min(1,"At least one course is required").meta({description:"Courses available in this app"}),sensor:q.url().meta({description:"Default Caliper sensor endpoint URL for all courses"}).optional(),launchUrl:q.url().meta({description:"Default LTI launch URL for all courses"}).optional(),studio:q.object({telemetry:q.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((J)=>{return J.courses.every((W)=>W.grade!==void 0||W.courseCode!==void 0)},{message:"Each course must have either a grade or a courseCode",path:["courses"]}).refine((J)=>{let F=J.courses.filter((A)=>A.grade!==void 0).map((A)=>`${A.subject}:${A.grade}`);return new Set(F).size===F.length},{message:"Duplicate (subject, grade) pair found; each must be unique",path:["courses"]}).refine((J)=>{let F=J.courses.filter((A)=>A.courseCode!==void 0).map((A)=>A.courseCode);return new Set(F).size===F.length},{message:"Duplicate courseCode found; each must be unique",path:["courses"]}).refine((J)=>{return J.courses.every((W)=>{if(W.sensor!==void 0||J.sensor!==void 0)return!0;return[W.launchUrl,J.launchUrl,W.overrides?.staging?.launchUrl,W.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 Z}from"zod/v4";var l_=Z.union([Z.url(),Z.string().regex(/^urn:/,"Must be a URL or URN")]),b=Z.object({id:Z.url(),type:Z.literal("TimebackUser"),email:Z.string()}),C=Z.object({id:Z.url(),type:Z.literal("TimebackActivityContext"),subject:L,app:Z.object({name:Z.string()}),activity:Z.object({id:Z.url().optional(),name:Z.string()}).strict().optional(),course:Z.object({id:Z.url().optional(),name:Z.string().optional()}).strict(),process:Z.boolean().optional()}),__=Z.object({"@context":Z.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),id:Z.string().regex(/^urn:uuid:/,"Event id must start with urn:uuid:"),type:Z.string(),eventTime:V,profile:Z.literal("TimebackProfile"),actor:b,action:Z.string(),object:C,edApp:Z.object({id:Z.string(),name:Z.string().optional()}).optional()}),Z_=Z.object({type:Z.enum(["totalQuestions","correctQuestions","xpEarned","masteredUnits"]),value:Z.number()}),c_=Z.object({id:Z.url(),type:Z.literal("TimebackActivityMetricsCollection"),attempt:Z.number().optional(),items:Z.array(Z_),extensions:Z.record(Z.string(),Z.unknown()).optional()}),p_=__.extend({type:Z.literal("ActivityEvent"),action:Z.literal("Completed"),generated:c_}),x_=Z.object({type:Z.enum(["active","inactive","waste","unknown","anti-pattern"]),value:Z.number(),subType:Z.string().optional()}),y_=Z.object({id:Z.url(),type:Z.literal("TimebackTimeSpentMetricsCollection"),items:Z.array(x_)}),N_=__.extend({type:Z.literal("TimeSpentEvent"),action:Z.literal("SpentTime"),generated:y_}),SZ=Z.object({actor:b,object:C,metrics:Z.array(Z_).min(1,"metrics must contain at least one metric"),eventTime:V.optional(),metricsId:Z.string().optional(),id:Z.string().optional(),extensions:Z.record(Z.string(),Z.unknown()).optional(),edApp:Z.union([Z.string(),Z.record(Z.string(),Z.unknown())]).optional(),session:Z.union([Z.string(),Z.record(Z.string(),Z.unknown())]).optional(),attempt:Z.number().int().min(1).optional(),generatedExtensions:Z.object({pctCompleteApp:Z.number().optional()}).loose().optional()}).strict(),aZ=Z.object({actor:b,object:C,metrics:Z.array(x_).min(1,"metrics must contain at least one metric"),eventTime:V.optional(),metricsId:Z.string().optional(),id:Z.string().optional(),extensions:Z.record(Z.string(),Z.unknown()).optional(),edApp:Z.union([Z.string(),Z.record(Z.string(),Z.unknown())]).optional(),session:Z.union([Z.string(),Z.record(Z.string(),Z.unknown())]).optional()}).strict(),E_=Z.union([p_,N_]),rZ=Z.object({sensor:Z.string(),sendTime:V,dataVersion:Z.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),data:Z.array(E_)}),o_=Z.enum(["AnnotationProfile","AssessmentProfile","ToolUseProfile","GeneralProfile","FeedbackProfile","MediaProfile","SurveyProfile","ResourceManagementProfile","ForumProfile","AssignableProfile","GradingProfile","ReadingProfile","SessionProfile","SearchProfile","ToolLaunchProfile","TimebackProfile"]),B=Z.union([Z.string(),Z.record(Z.string(),Z.unknown())]),D=Z.object({id:l_,type:Z.string(),name:Z.string().optional(),extensions:Z.record(Z.string(),Z.unknown()).optional()}).strict(),H_=Z.object({"@context":Z.string().optional(),id:Z.string().regex(/^urn:uuid:/,"Event id must start with urn:uuid:"),type:Z.string(),actor:Z.union([Z.string(),D,b]),action:Z.string(),object:B,eventTime:V,profile:o_,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:Z.record(Z.string(),Z.unknown()).optional()}).strict(),iZ=Z.object({sensor:_,sendTime:V,dataVersion:Z.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),data:Z.array(H_).min(1,"data must contain at least one event")}),eZ=Z.object({sensor:_,events:Z.array(H_).min(1,"events must contain at least one event")}),nZ=Z.object({limit:Z.number().int().positive().optional(),offset:Z.number().int().min(0).optional(),sensor:_.optional(),startDate:V.optional(),endDate:V.optional(),actorId:_.optional(),actorEmail:Z.email().optional()}).strict(),K_=Z.object({id:Z.string(),name:Z.string().optional(),isPartOf:B.optional(),extensions:Z.record(Z.string(),Z.unknown()).optional()}),g_=Z.object({id:Z.string(),attempt:Z.union([Z.string(),Z.record(Z.string(),Z.unknown())]).optional(),startedAtTime:V.optional(),endedAtTime:V.optional(),duration:Z.string().optional(),extensions:Z.record(Z.string(),Z.unknown()).optional()}),m_=Z.object({id:Z.string().optional(),scoreGiven:Z.number(),maxScore:Z.number().optional(),attempt:Z.union([Z.string(),Z.record(Z.string(),Z.unknown())]).optional(),comment:Z.string().optional(),extensions:Z.record(Z.string(),Z.unknown()).optional()}),zZ=Z.object({actor:Z.union([Z.string(),D,b]),object:K_,edApp:B,id:Z.string().optional(),eventTime:V.optional(),session:B.optional(),extensions:Z.record(Z.string(),Z.unknown()).optional()}).strict(),tZ=Z.object({actor:Z.union([Z.string(),D,b]),object:K_,edApp:B,generated:g_.optional(),id:Z.string().optional(),eventTime:V.optional(),session:B.optional(),extensions:Z.record(Z.string(),Z.unknown()).optional()}).strict(),_2=Z.object({actor:Z.union([Z.string(),D,b]),object:Z.string(),generated:m_,edApp:B,id:Z.string().optional(),eventTime:V.optional(),session:B.optional(),extensions:Z.record(Z.string(),Z.unknown()).optional()}).strict();import{z as U}from"zod/v4";var K2=U.object({name:_,targetUrl:U.url("targetUrl must be a valid URL"),secret:_,active:U.boolean(),sensor:U.string().nullable().optional(),description:U.string().nullable().optional()}).strict();var S_=U.enum(["string","number","boolean"]),a_=U.enum(["eq","neq","gt","gte","lt","lte","contains","notContains","in","notIn","startsWith","endsWith","regexp"]),Y2=U.object({webhookId:_,filterKey:_,filterValue:_,filterType:S_,filterOperator:a_,active:U.boolean()}).strict();import{z as j}from"zod/v4";var u=j.string().uuid(),Y_=j.object({title:_,identifier:u,uri:_}),r_=j.object({identifier:u,uri:_,lastChangeDateTime:_,title:_,creator:_,officialSourceURL:j.string().optional(),publisher:j.string().optional(),description:j.string().optional(),language:j.string().optional(),version:j.string().optional(),caseVersion:j.string().optional(),adoptionStatus:j.string().optional(),statusStartDate:j.string().optional(),statusEndDate:j.string().optional(),licenseUri:j.string().optional(),notes:j.string().optional(),subject:j.array(j.string()).optional(),extensions:j.unknown().optional()}),i_=j.object({identifier:u,uri:_,lastChangeDateTime:_,fullStatement:_,alternativeLabel:j.string().optional(),CFItemType:j.string().optional(),cfItemType:j.string().optional(),humanCodingScheme:j.string().optional(),listEnumeration:j.string().optional(),abbreviatedStatement:j.string().optional(),conceptKeywords:j.array(j.string()).optional(),notes:j.string().optional(),subject:j.array(j.string()).optional(),language:j.string().optional(),educationLevel:j.array(j.string()).optional(),CFItemTypeURI:j.unknown().optional(),licenseURI:j.unknown().optional(),statusStartDate:j.string().optional(),statusEndDate:j.string().optional(),extensions:j.unknown().optional()}),e_=j.object({identifier:u,uri:_,lastChangeDateTime:_,associationType:_,originNodeURI:Y_,destinationNodeURI:Y_,sequenceNumber:j.number().optional(),extensions:j.unknown().optional()}),n_=j.object({CFItemTypes:j.array(j.unknown()).optional(),CFSubjects:j.array(j.unknown()).optional(),CFConcepts:j.array(j.unknown()).optional(),CFLicenses:j.array(j.unknown()).optional(),CFAssociationGroupings:j.array(j.unknown()).optional(),extensions:j.unknown().optional()}),X2=j.object({CFDocument:r_,CFItems:j.array(i_),CFAssociations:j.array(e_),CFDefinitions:n_.optional(),extensions:j.unknown().optional()});import{z as Y}from"zod/v4";var $_="https://www.w3.org/ns/credentials/v2",z_=Y.array(Y.url()).min(3,"@context must include W3C, CLR, and OB context URLs").refine((J)=>J[0]===$_,`First @context entry must be "${$_}"`),j_=Y.object({id:Y.url(),type:Y.literal("Image"),caption:Y.string().optional()}),R=Y.object({id:Y.url(),type:Y.array(Y.string()).min(1).refine((J)=>J.includes("Profile"),'type must include "Profile"'),name:Y.string().optional(),url:Y.string().url().optional(),phone:Y.string().optional(),description:Y.string().optional(),image:j_.optional(),email:Y.string().email().optional()}),J_=Y.object({type:_,proofPurpose:_,verificationMethod:_,created:Y.iso.datetime(),proofValue:_,cryptosuite:Y.string().optional()}),t_=Y.object({id:_,type:Y.literal("1EdTechJsonSchemaValidator2019")}),_Z=Y.object({id:Y.string().url().optional(),narrative:Y.string().optional()}),ZZ=Y.object({id:Y.url(),type:Y.array(Y.string()).min(1).refine((J)=>J.includes("Achievement"),'type must include "Achievement"'),name:_,description:_,criteria:_Z,image:j_.optional(),achievementType:Y.string().optional(),creator:R.optional()}),xZ=Y.object({type:Y.literal("IdentityObject"),identityHash:_,identityType:_,hashed:Y.boolean(),salt:Y.string().optional()}),HZ=Y.enum(["exactMatchOf","isChildOf","isParentOf","isPartOf","isPeerOf","isRelatedTo","precedes","replacedBy"]),KZ=Y.object({type:Y.literal("Association"),associationType:HZ,sourceId:Y.url(),targetId:Y.url()}),YZ=Y.object({"@context":Y.array(Y.string()).min(1),id:Y.url(),type:Y.array(Y.string()).min(1).refine((J)=>J.includes("VerifiableCredential"),'type must include "VerifiableCredential"'),issuer:R,validFrom:Y.iso.datetime(),validUntil:Y.string().datetime().optional(),credentialSubject:Y.object({id:Y.string().optional()}),proof:Y.array(J_).optional()}),$Z=Y.object({id:Y.string().url().optional(),type:Y.array(Y.string()).min(1).refine((J)=>J.includes("ClrSubject"),'type must include "ClrSubject"'),identifier:Y.array(xZ).optional(),achievement:Y.array(ZZ).optional(),verifiableCredential:Y.array(YZ).min(1),association:Y.array(KZ).optional()}),W2=Y.object({"@context":z_,id:Y.url(),type:Y.array(Y.string()).min(1).refine((J)=>J.includes("VerifiableCredential")&&J.includes("ClrCredential"),'type must include "VerifiableCredential" and "ClrCredential"'),issuer:R,name:_,description:Y.string().optional(),validFrom:Y.iso.datetime(),validUntil:Y.iso.datetime().optional(),credentialSubject:$Z,proof:Y.array(J_).optional(),credentialSchema:Y.array(t_).optional()});import{z as $}from"zod/v4";var I=$.union([V,O]),v=I.transform((J)=>J.includes("T")?J:`${J}T00:00:00.000Z`),B2=$.object({id:$.string(),role:$.string(),beginDate:I.nullable(),endDate:I.nullable(),metadata:$.object({goals:$.object({dailyXp:$.number().optional()}).optional(),metrics:$.object({totalXp:$.number().optional(),totalLessons:$.number().optional()}).optional()}).optional(),course:$.object({id:$.string(),title:$.string(),subjects:$.array($.string()).nullable(),grades:$.array($.string()).nullable()}),school:$.object({id:$.string(),name:$.string()})}),jZ=$.object({activityMetrics:$.object({xpEarned:$.number(),totalQuestions:$.number(),correctQuestions:$.number(),masteredUnits:$.number()}),timeSpentMetrics:$.object({activeSeconds:$.number(),inactiveSeconds:$.number(),wasteSeconds:$.number()}),apps:$.array($.string())}),JZ=$.record($.string(),$.record($.string(),jZ)),G2=$.object({message:$.string(),enrollmentId:$.string(),startDate:I,endDate:I,facts:JZ,factsByApp:$.unknown()}),X_=$.object({email:$.email().optional(),studentId:_.optional()}).superRefine((J,W)=>{if(!J.email&&!J.studentId)W.addIssue({code:$.ZodIssueCode.custom,message:"must provide either email or studentId",path:["email"]}),W.addIssue({code:$.ZodIssueCode.custom,message:"must provide either email or studentId",path:["studentId"]})}),A2=$.object({subject:_,grade:_,courseId:_,orgSourcedId:_.optional()});var L2=$.object({userId:_}),F2=$.object({sourcedId:_.optional(),role:o.optional(),beginDate:V.optional(),metadata:$.record($.string(),$.unknown()).optional()}),U2=$.object({fields:$.string().optional(),limit:$.number().int().positive().optional(),offset:$.number().int().nonnegative().optional(),sort:$.string().optional(),orderBy:$.enum(["asc","desc"]).optional(),filter:$.string().optional(),search:$.string().optional(),roles:$.array(f).min(1),orgSourcedIds:$.array(_).optional()}),O2=X_.extend({startDate:v,endDate:v,timezone:$.string().optional()}),s2=X_.extend({weekDate:v,timezone:$.string().optional()}),M2=$.object({enrollmentId:_,startDate:v.optional(),endDate:v.optional(),timezone:$.string().optional()});import{z as k}from"zod/v4";var v2=k.object({email:k.email()}),f2=k.object({name:_.optional(),timeback_id:_.optional(),grade:_.optional(),subject:_.optional(),all:k.boolean().optional()}),D2=k.object({student_email:k.email(),timeback_id:_.optional(),subject:_.optional(),grade_rank:k.number().int().min(0).max(12).optional(),assessment_line_item_sourced_id:_.optional(),assessment_result_sourced_id:_.optional()}).superRefine((J,W)=>{let F=!!J.timeback_id,A=!!J.subject,T=J.grade_rank!==void 0;if(!F&&!A)W.addIssue({code:k.ZodIssueCode.custom,message:"must provide either timeback_id or subject",path:["timeback_id"]}),W.addIssue({code:k.ZodIssueCode.custom,message:"must provide either timeback_id or subject",path:["subject"]});if(T&&!A)W.addIssue({code:k.ZodIssueCode.custom,message:"grade_rank requires subject",path:["grade_rank"]});let y=!!J.assessment_line_item_sourced_id,I_=!!J.assessment_result_sourced_id;if(y!==I_)W.addIssue({code:k.ZodIssueCode.custom,message:"assessment_line_item_sourced_id and assessment_result_sourced_id must be provided together",path:y?["assessment_result_sourced_id"]:["assessment_line_item_sourced_id"]})}),u2=k.object({student_email:k.email(),assignment_id:k.number().int().positive().optional(),timeback_id:_.optional(),subject:_.optional(),grade_rank:k.number().int().min(0).max(12).optional()}).superRefine((J,W)=>{let F=J.assignment_id!==void 0,A=!!J.timeback_id,T=!!J.subject&&J.grade_rank!==void 0;if(!F&&!A&&!T)W.addIssue({code:k.ZodIssueCode.custom,message:"Either assignment_id, timeback_id, or (subject and grade_rank) is required",path:["assignment_id"]});if(J.grade_rank!==void 0&&!J.subject)W.addIssue({code:k.ZodIssueCode.custom,message:"grade_rank requires subject",path:["grade_rank"]})});import{z as H}from"zod/v4";var P=H.enum(["active","tobedeleted"]),Q=H.record(H.string(),H.unknown()).nullable().optional(),w=H.object({sourcedId:_,type:H.string().optional(),href:H.string().optional()}).strict(),s=H.union([O,V]).transform((J)=>J.includes("T")?J:`${J}T00:00:00Z`),XZ=H.object({roleType:H.enum(["primary","secondary"]),role:f,org:w,userProfile:H.string().optional(),metadata:Q,beginDate:s.optional(),endDate:s.optional()}).strict(),d2=H.object({sourcedId:_.describe("sourcedId must be a non-empty string"),status:P.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(),roles:H.array(XZ).min(1,"roles must include at least one role"),userIds:H.array(H.object({type:_,identifier:_}).strict()).optional(),agents:H.array(w).optional(),grades:H.array(G).optional(),identifier:_.optional(),sms:_.optional(),phone:_.optional(),pronouns:_.optional(),password:_.optional(),metadata:Q}).strict(),l2=H.object({sourcedId:_.describe("sourcedId must be a non-empty string").optional(),status:P.optional(),title:_.describe("title must be a non-empty string"),org:w,courseCode:_.optional(),subjects:H.array(L).optional(),grades:H.array(G).optional(),level:_.optional(),metadata:Q}).strict(),c2=H.object({sourcedId:_.describe("sourcedId must be a non-empty string").optional(),status:P.optional(),title:_.describe("title must be a non-empty string"),terms:H.array(w).min(1,"terms must have at least one item"),course:w,org:w,classCode:_.optional(),classType:H.enum(["homeroom","scheduled"]).optional(),location:_.optional(),grades:H.array(G).optional(),subjects:H.array(L).optional(),subjectCodes:H.array(_).optional(),periods:H.array(_).optional(),metadata:Q}).strict(),q_=H.enum(["true","false"]),p2=H.object({sourcedId:_.describe("sourcedId must be a non-empty string").optional(),status:P.optional(),user:w,class:w,school:w.optional(),role:H.enum(["administrator","proctor","student","teacher"]),primary:q_.optional(),beginDate:O.optional(),endDate:O.optional(),metadata:Q}).strict(),y2=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),status:P,weight:H.number().nullable().optional(),metadata:Q}).strict(),N2=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),class:w,school:w,category:w,assignDate:s,dueDate:s,status:P,description:H.string().optional(),resultValueMin:H.number().nullable().optional(),resultValueMax:H.number().nullable().optional(),scoreScale:w.optional(),metadata:Q}).strict(),E2=H.object({sourcedId:_.optional(),lineItem:w,student:w,class:w.optional(),scoreDate:s,scoreStatus:H.enum(["exempt","fully graded","not submitted","partially graded","submitted"]),score:H.number().nullable().optional(),textScore:H.string().nullable().optional(),status:P,comment:H.string().nullable().optional(),metadata:Q}).strict(),o2=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),status:P.optional(),type:H.string(),class:w,course:w.nullable().optional(),scoreScaleValue:H.array(H.object({itemValueLHS:_,itemValueRHS:_,value:H.string().optional(),description:H.string().optional()}).strict()),minScore:H.number().optional(),maxScore:H.number().optional(),metadata:Q}).strict(),g2=H.object({sourcedId:_.optional(),status:P.optional(),dateLastModified:V.optional(),title:_.describe("title must be a non-empty string"),description:H.string().nullable().optional(),class:w.nullable().optional(),parentAssessmentLineItem:w.nullable().optional(),scoreScale:w.nullable().optional(),resultValueMin:H.number().nullable().optional(),resultValueMax:H.number().nullable().optional(),component:w.nullable().optional(),componentResource:w.nullable().optional(),learningObjectiveSet:H.array(H.object({source:H.string(),learningObjectiveIds:H.array(H.string())})).optional().nullable(),course:w.nullable().optional(),metadata:Q}).strict(),qZ=H.object({learningObjectiveId:H.string(),score:H.number().optional(),textScore:H.string().optional()}),wZ=H.array(H.object({source:H.string(),learningObjectiveResults:H.array(qZ)})),m2=H.object({sourcedId:_.optional(),status:P.optional(),dateLastModified:V.optional(),metadata:Q,assessmentLineItem:w,student:w,score:H.number().nullable().optional(),textScore:H.string().nullable().optional(),scoreDate:s,scoreScale:w.nullable().optional(),scorePercentile:H.number().nullable().optional(),scoreStatus:H.enum(["exempt","fully graded","not submitted","partially graded","submitted"]),comment:H.string().nullable().optional(),learningObjectiveSet:wZ.nullable().optional(),inProgress:H.string().nullable().optional(),incomplete:H.string().nullable().optional(),late:H.string().nullable().optional(),missing:H.string().nullable().optional()}).strict(),S2=H.object({sourcedId:_.optional(),status:P.optional(),name:_.describe("name must be a non-empty string"),type:E,identifier:_.optional(),parent:w.optional(),metadata:Q}).strict(),a2=H.object({sourcedId:_.optional(),status:P.optional(),name:_.describe("name must be a non-empty string"),type:H.literal("school").optional(),identifier:_.optional(),parent:w.optional(),metadata:Q}).strict(),r2=H.object({sourcedId:_.describe("sourcedId must be a non-empty string"),status:P,title:_.describe("title must be a non-empty string"),startDate:s,endDate:s,type:H.enum(["gradingPeriod","semester","schoolYear","term"]),schoolYear:_.describe("schoolYear must be a non-empty string"),org:w,parent:w.optional(),children:H.array(w).optional(),metadata:Q}).strict(),i2=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),courseComponent:w,resource:w,status:P,metadata:Q}).strict(),e2=H.object({sourcedId:_.optional(),title:_.describe("title must be a non-empty string"),course:w,status:P,metadata:Q}).strict(),n2=H.object({sourcedId:_.describe("sourcedId must be a non-empty string"),role:H.enum(["student","teacher"]),primary:q_.optional(),beginDate:O.optional(),endDate:O.optional(),metadata:Q}).strict(),z2=H.object({agentSourcedId:_.describe("agentSourcedId must be a non-empty string")}).strict(),t2=H.object({applicationName:_.describe("applicationName must be a non-empty string"),credentials:H.object({username:_.describe("username must be a non-empty string"),password:_.describe("password must be a non-empty string")})}).strict(),_x=H.object({sourcedId:_.describe("sourcedId must be a non-empty string")}).loose(),M=H.object({type:g,subject:L.nullish(),grades:H.array(G).nullish(),language:H.string().nullish(),xp:H.number().nullish(),url:H.url().nullish(),keywords:H.array(H.string()).nullish(),learningObjectiveSet:i.nullish(),lessonType:H.string().nullish()}).passthrough(),VZ=M.extend({type:H.literal("qti"),subType:m,questionType:a.optional(),difficulty:r.optional()}),WZ=M.extend({type:H.literal("text"),format:H.string(),author:H.string().optional(),pageCount:H.number().optional()}),QZ=M.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()}),kZ=M.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()}),PZ=M.extend({type:H.literal("interactive"),launchUrl:H.url().optional(),toolProvider:H.string().optional(),instructionalMethod:H.string().optional(),courseIdOnFail:H.string().nullable().optional(),fail_fast:e}),BZ=M.extend({type:H.literal("visual"),format:H.string(),resolution:H.string().optional()}),GZ=M.extend({type:H.literal("course-material"),subType:S,author:H.string().optional(),format:H.string(),instructionalMethod:H.string().optional()}),AZ=M.extend({type:H.literal("assessment-bank"),resources:H.array(H.string())}),LZ=H.discriminatedUnion("type",[VZ,WZ,QZ,kZ,PZ,BZ,GZ,AZ]),Zx=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:P.optional(),metadata:LZ.nullable().optional()}).strict(),FZ=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(),xx=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:w,status:P,metadata:Q}).strict(),courseStructure:H.record(H.string(),FZ)}).strict(),UZ=H.object({student:w}).loose(),Hx=H.array(UZ).min(1,"results must have at least one item");import{z as K}from"zod/v4";var OZ=K.enum(["edulastic","mastery-track"]),sZ=K.enum(["powerpath-100","quiz","test-out","placement","unit-test","alpha-read-article"]),V_=K.array(G),W_=K.record(K.string(),K.unknown()).optional(),Q_=K.object({courseId:_,lessonTitle:_.optional(),launchUrl:_.optional(),toolProvider:OZ,unitTitle:_.optional(),courseComponentSourcedId:_.optional(),vendorId:_.optional(),description:_.optional(),resourceMetadata:W_.nullable().optional(),grades:V_}),jx=Q_.extend({lessonType:K.literal("test-out"),xp:K.number()}),Jx=Q_.extend({lessonType:K.literal("placement"),courseIdOnFail:_.nullable().optional(),xp:K.number().optional()});var w_=K.object({courseId:_,lessonType:sZ,lessonTitle:_.optional(),unitTitle:_.optional(),courseComponentSourcedId:_.optional(),resourceMetadata:W_.nullable().optional(),xp:K.number().optional(),grades:V_.optional(),courseIdOnFail:_.nullable().optional()}),Xx=K.discriminatedUnion("testType",[w_.extend({testType:K.literal("qti"),qti:K.object({url:K.url(),title:_.optional(),metadata:K.record(K.string(),K.unknown()).optional()})}),w_.extend({testType:K.literal("assessment-bank"),assessmentBank:K.object({resources:K.array(K.object({url:K.url(),title:_.optional(),metadata:K.record(K.string(),K.unknown()).optional()})).min(1)})})]),qx=K.object({student:_,lesson:_}),wx=K.object({student:_,lesson:_}),Vx=K.object({courseId:_,userId:_,classId:_.optional()}),h=K.object({type:K.enum(["component","resource"]),id:_}),MZ=K.union([K.object({type:K.literal("set-skipped"),payload:K.object({target:h,value:K.boolean()})}),K.object({type:K.literal("add-custom-resource"),payload:K.object({resource_id:_,parent_component_id:_,skipped:K.boolean().optional()})}),K.object({type:K.literal("move-item-before"),payload:K.object({target:h,reference_id:_})}),K.object({type:K.literal("move-item-after"),payload:K.object({target:h,reference_id:_})}),K.object({type:K.literal("move-item-to-start"),payload:K.object({target:h})}),K.object({type:K.literal("move-item-to-end"),payload:K.object({target:h})}),K.object({type:K.literal("change-item-parent"),payload:K.object({target:h,new_parent_id:_,position:K.enum(["start","end"]).optional()})})]),Wx=K.object({operation:MZ,reason:_.optional()}),Qx=K.object({studentId:_,componentResourceId:_,result:K.object({status:K.enum(["active","tobedeleted"]),metadata:K.record(K.string(),K.unknown()).optional(),score:K.number().optional(),textScore:_.optional(),scoreDate:K.string().datetime(),scorePercentile:K.number().optional(),scoreStatus:N,comment:_.optional(),learningObjectiveSet:K.array(K.object({source:_,learningObjectiveResults:K.array(K.object({learningObjectiveId:_,score:K.number().optional(),textScore:_.optional()}))})).optional(),inProgress:_.optional(),incomplete:_.optional(),late:_.optional(),missing:_.optional()})}),kx=K.object({student:_,lesson:_,applicationName:_.optional(),testId:_.optional(),skipCourseEnrollment:K.boolean().optional()}),Px=K.object({student:_,subject:L}),Bx=K.object({student:_,lesson:_}),Gx=K.object({userId:_}),Ax=K.object({userId:_,subject:K.enum(["Math","Reading","Language","Science"])}),Lx=K.object({student:_,subject:L,grade:G,testName:_.optional()}),Fx=K.object({testName:_}),bZ=K.object({student:_,subject:L,grade:G,testName:_.optional()}),Ux=K.object({items:K.array(bZ)}),Ox=K.object({spreadsheetUrl:K.url(),sheet:_}),sx=K.object({student:_,status:K.enum(["assigned","in_progress","completed","failed","expired","cancelled"]).optional(),subject:_.optional(),grade:G.optional(),limit:K.number().int().positive().max(3000).optional(),offset:K.number().int().nonnegative().optional()}),Mx=K.object({student:_.optional(),status:K.enum(["assigned","in_progress","completed","failed","expired","cancelled"]).optional(),subject:_.optional(),grade:G.optional(),limit:K.number().int().positive().max(3000).optional(),offset:K.number().int().nonnegative().optional()}),bx=K.object({student:_,question:_,response:K.union([_,K.array(_)]).optional(),responses:K.record(K.string(),K.union([_,K.array(_)])).optional(),lesson:_,rendererOutcomes:K.object({score:K.number(),maxScore:K.number().min(0),isCorrect:K.boolean()}).optional(),playerState:K.string().optional()}).refine((J)=>J.response!==void 0||J.responses!==void 0,{message:"Either 'response' or 'responses' must be provided",path:["response","responses"]}).transform((J)=>{if(J.response!==void 0&&J.responses===void 0)return{...J,responses:{RESPONSE:J.response}};return J}),hx=K.object({student:_,lesson:_,attempt:K.number().int().positive().optional()}),Ix=K.object({student:_,lesson:_}),vx=K.object({student:_,lesson:_}),fx=K.object({student:_,course:_}),Dx=K.object({student:_,lesson:_,applicationName:_.optional()}),ux=K.object({student:_,subject:L}),Tx=K.object({status:K.enum(["active","tobedeleted"]).optional()});import{z as x}from"zod/v4";var k_=x.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"]),d=x.enum(["single","multiple","ordered","record"]),l=x.enum(["identifier","boolean","integer","float","string","point","pair","directedPair","duration","file","uri"]),hZ=x.enum(["easy","medium","hard"]),IZ=x.enum(["linear","nonlinear"]),vZ=x.enum(["individual","simultaneous"]),c=x.enum(["show","hide"]),P_=x.enum(["test","item","stimulus"]),lx=x.enum(["QUESTION","LESSON"]),fZ=x.object({value:x.array(x.string())}).strict(),B_=x.object({identifier:_,cardinality:d,baseType:l.optional(),correctResponse:fZ}).strict(),G_=x.object({identifier:_,cardinality:d,baseType:l.optional()}).strict(),A_=x.object({identifier:_,cardinality:d.optional(),baseType:l,normalMaximum:x.number().optional(),normalMinimum:x.number().optional(),defaultValue:x.object({value:x.unknown().optional()}).strict().optional()}).strict(),DZ=x.object({outcomeIdentifier:_,variableIdentifier:_}).strict(),L_=x.object({templateType:x.enum(["match_correct","map_response"]),responseDeclarationIdentifier:_,outcomeIdentifier:_,correctResponseIdentifier:_,incorrectResponseIdentifier:_,inlineFeedback:DZ.optional()}).strict(),uZ=x.object({source:_,learningObjectiveIds:x.array(x.string())}).strict(),p=x.object({subject:x.string().optional(),grade:G.optional(),difficulty:hZ.optional(),learningObjectiveSet:x.array(uZ).optional()}).loose(),F_=x.object({outcomeIdentifier:_,identifier:_,showHide:c,content:x.string(),title:x.string()}).strict(),U_=x.object({outcomeIdentifier:_,identifier:_,showHide:c,content:x.string(),class:x.array(x.string())}).strict(),O_=x.object({outcomeIdentifier:_,identifier:_,showHide:c,content:x.string(),class:x.array(x.string())}).strict(),s_=x.object({href:_,type:_}).strict(),M_=x.object({id:_,support:x.string(),content:x.string()}).strict(),cx=x.object({page:x.number().int().positive().optional(),limit:x.number().int().positive().optional(),sort:x.string().optional(),order:x.enum(["asc","desc"]).optional()}).strict(),TZ=x.object({format:x.string().pipe(x.literal("xml")),xml:_,metadata:p.optional()}).strict(),CZ=x.object({identifier:_,title:_,type:k_,qtiVersion:x.string().optional(),timeDependent:x.boolean().optional(),adaptive:x.boolean().optional(),responseDeclarations:x.array(B_).optional(),outcomeDeclarations:x.array(G_).optional(),responseProcessing:L_.optional(),metadata:p.optional(),modalFeedback:x.array(F_).optional(),feedbackInline:x.array(U_).optional(),feedbackBlock:x.array(O_).optional()}).strict(),px=x.union([TZ,CZ]),yx=x.object({identifier:_.optional(),title:_,type:k_,qtiVersion:x.string().optional(),timeDependent:x.boolean().optional(),adaptive:x.boolean().optional(),responseDeclarations:x.array(B_).optional(),outcomeDeclarations:x.array(G_).optional(),responseProcessing:L_.optional(),metadata:p.optional(),modalFeedback:x.array(F_).optional(),feedbackInline:x.array(U_).optional(),feedbackBlock:x.array(O_).optional(),rawXml:x.string(),content:x.record(x.string(),x.unknown())}).strict(),Nx=x.object({identifier:_,response:x.union([x.string(),x.array(x.string())])}).strict(),b_=x.object({identifier:_,href:_,sequence:x.number().int().positive().optional()}).strict(),RZ=x.object({identifier:_,title:_,visible:x.boolean(),required:x.boolean().optional(),fixed:x.boolean().optional(),sequence:x.number().int().positive(),"qti-assessment-item-ref":x.array(b_).optional()}).strict(),h_=x.object({identifier:_,navigationMode:x.string().pipe(IZ),submissionMode:x.string().pipe(vZ),"qti-assessment-section":x.array(RZ)}).strict(),Ex=x.object({items:x.array(b_).min(1)}).strict(),ox=x.object({metadata:x.record(x.string(),x.unknown()).optional()}).strict(),gx=x.object({identifier:_,title:_,qtiVersion:x.string().optional(),toolName:x.string().optional(),toolVersion:x.string().optional(),timeLimit:x.number().optional(),maxAttempts:x.number().optional(),toolsEnabled:x.record(x.string(),x.boolean()).optional(),metadata:x.record(x.string(),x.unknown()).optional(),"qti-test-part":x.array(h_),"qti-outcome-declaration":x.array(A_).optional()}).strict(),mx=x.object({identifier:_.optional(),title:_,qtiVersion:x.string().optional(),toolName:x.string().optional(),toolVersion:x.string().optional(),timeLimit:x.number().optional(),maxAttempts:x.number().optional(),toolsEnabled:x.record(x.string(),x.boolean()).optional(),metadata:x.record(x.string(),x.unknown()).optional(),"qti-test-part":x.array(h_),"qti-outcome-declaration":x.array(A_).optional()}).strict(),Sx=x.object({identifier:_,title:_,label:x.string().optional(),language:x.string().optional(),stylesheet:s_.optional(),content:x.string(),catalogInfo:x.array(M_).optional(),toolName:x.string().optional(),toolVersion:x.string().optional(),metadata:x.record(x.string(),x.unknown()).optional()}).strict(),ax=x.object({identifier:_.optional(),title:_,label:x.string().optional(),language:x.string().optional(),stylesheet:s_.optional(),content:x.string(),catalogInfo:x.array(M_).optional(),toolName:x.string().optional(),toolVersion:x.string().optional(),metadata:x.record(x.string(),x.unknown()).optional()}).strict(),rx=x.object({xml:x.string().optional(),schema:P_,entityId:x.string().optional()}).strict(),ix=x.object({xml:x.array(x.string()),schema:P_,entityIds:x.array(x.string())}).strict(),ex=x.object({questionId:x.string().optional(),userId:_,feedback:_,lessonId:_,humanApproved:x.boolean().optional()}).strict();export{_ as a,L as b,G as c,EZ as d};
@@ -1,2 +1,2 @@
1
- import{S as g}from"./chunk-1yn5w82n.js";function M(F){let A=F.trim();if(A==="")return"/";let j=A.indexOf("?");if(j===-1)return A;let L=A.slice(0,j);if(L==="")return"/";return L}function X(F){let A=M(F);if(A!==""&&!A.startsWith("/"))A=`/${A}`;if(A==="/"||A==="")return"";if(A.endsWith("/"))return A.slice(0,-1);return A}function Z(F){let A=F.method.toUpperCase(),j=M(F.pathname),L=F.callbackPath?M(F.callbackPath):void 0;if(L&&j===L)return A==="GET"?"identity.callback":null;let N=F.basePath,Q=N!==void 0,J=Q?X(N):void 0,V=(G)=>{if(A==="GET"){if(G===g.IDENTITY.SIGNIN)return"identity.signIn";if(G===g.IDENTITY.CALLBACK)return"identity.callback";if(G===g.IDENTITY.SIGNOUT)return"identity.signOut";if(G===g.USER.ME)return"user.me";if(G===g.USER.VERIFY)return"user.verify"}if(A==="POST"){if(G===g.ACTIVITY.HEARTBEAT)return"activity.heartbeat";if(G===g.ACTIVITY.SUBMIT)return"activity.submit";if(G===g.LESSONS.LIST)return"lessons.list";if(G===g.LESSONS.START)return"lessons.start";if(G===g.LESSONS.NEXT)return"lessons.next";if(G===g.LESSONS.SUBMIT)return"lessons.submit";if(G===g.LESSONS.COMPLETE)return"lessons.complete";if(G===g.LESSONS.ATTEMPTS)return"lessons.attempts";if(G===g.LESSONS.ATTEMPT_DETAILS)return"lessons.attemptDetails"}return null};if(Q&&J!==void 0){if(J!==""&&j===J)return null;if(J!==""&&!j.startsWith(`${J}/`))return null;let G=J===""?j:j.slice(J.length),W=G.startsWith("/")?G:`/${G}`;return V(W)}if(A==="GET"){if(j.endsWith(g.IDENTITY.SIGNIN))return"identity.signIn";if(j.endsWith(g.IDENTITY.CALLBACK))return"identity.callback";if(j.endsWith(g.IDENTITY.SIGNOUT))return"identity.signOut";if(j.endsWith(g.USER.ME))return"user.me";if(j.endsWith(g.USER.VERIFY))return"user.verify"}if(A==="POST"){if(j.endsWith(g.ACTIVITY.HEARTBEAT))return"activity.heartbeat";if(j.endsWith(g.ACTIVITY.SUBMIT))return"activity.submit";if(j.endsWith(g.LESSONS.ATTEMPT_DETAILS))return"lessons.attemptDetails";if(j.endsWith(g.LESSONS.ATTEMPTS))return"lessons.attempts";if(j.endsWith(g.LESSONS.COMPLETE))return"lessons.complete";if(j.endsWith(g.LESSONS.SUBMIT))return"lessons.submit";if(j.endsWith(g.LESSONS.NEXT))return"lessons.next";if(j.endsWith(g.LESSONS.START))return"lessons.start";if(j.endsWith(g.LESSONS.LIST))return"lessons.list"}return null}function _(F){return"handle"in F?F.handle:F}function $(F){return"activity"in F}function C(F){return"user"in F}function D(F){return"lessons"in F}
2
- export{M as C,Z as D,_ as E,$ as F,C as G,D as H};
1
+ import{Q as g}from"./chunk-dbcsf5tk.js";function M(F){let A=F.trim();if(A==="")return"/";let j=A.indexOf("?");if(j===-1)return A;let L=A.slice(0,j);if(L==="")return"/";return L}function X(F){let A=M(F);if(A!==""&&!A.startsWith("/"))A=`/${A}`;if(A==="/"||A==="")return"";if(A.endsWith("/"))return A.slice(0,-1);return A}function Z(F){let A=F.method.toUpperCase(),j=M(F.pathname),L=F.callbackPath?M(F.callbackPath):void 0;if(L&&j===L)return A==="GET"?"identity.callback":null;let N=F.basePath,Q=N!==void 0,J=Q?X(N):void 0,V=(G)=>{if(A==="GET"){if(G===g.IDENTITY.SIGNIN)return"identity.signIn";if(G===g.IDENTITY.CALLBACK)return"identity.callback";if(G===g.IDENTITY.SIGNOUT)return"identity.signOut";if(G===g.USER.ME)return"user.me";if(G===g.USER.VERIFY)return"user.verify"}if(A==="POST"){if(G===g.ACTIVITY.HEARTBEAT)return"activity.heartbeat";if(G===g.ACTIVITY.SUBMIT)return"activity.submit";if(G===g.LESSONS.LIST)return"lessons.list";if(G===g.LESSONS.START)return"lessons.start";if(G===g.LESSONS.NEXT)return"lessons.next";if(G===g.LESSONS.SUBMIT)return"lessons.submit";if(G===g.LESSONS.COMPLETE)return"lessons.complete";if(G===g.LESSONS.ATTEMPTS)return"lessons.attempts";if(G===g.LESSONS.ATTEMPT_DETAILS)return"lessons.attemptDetails"}return null};if(Q&&J!==void 0){if(J!==""&&j===J)return null;if(J!==""&&!j.startsWith(`${J}/`))return null;let G=J===""?j:j.slice(J.length),W=G.startsWith("/")?G:`/${G}`;return V(W)}if(A==="GET"){if(j.endsWith(g.IDENTITY.SIGNIN))return"identity.signIn";if(j.endsWith(g.IDENTITY.CALLBACK))return"identity.callback";if(j.endsWith(g.IDENTITY.SIGNOUT))return"identity.signOut";if(j.endsWith(g.USER.ME))return"user.me";if(j.endsWith(g.USER.VERIFY))return"user.verify"}if(A==="POST"){if(j.endsWith(g.ACTIVITY.HEARTBEAT))return"activity.heartbeat";if(j.endsWith(g.ACTIVITY.SUBMIT))return"activity.submit";if(j.endsWith(g.LESSONS.ATTEMPT_DETAILS))return"lessons.attemptDetails";if(j.endsWith(g.LESSONS.ATTEMPTS))return"lessons.attempts";if(j.endsWith(g.LESSONS.COMPLETE))return"lessons.complete";if(j.endsWith(g.LESSONS.SUBMIT))return"lessons.submit";if(j.endsWith(g.LESSONS.NEXT))return"lessons.next";if(j.endsWith(g.LESSONS.START))return"lessons.start";if(j.endsWith(g.LESSONS.LIST))return"lessons.list"}return null}function _(F){return"handle"in F?F.handle:F}function $(F){return"activity"in F}function C(F){return"user"in F}function D(F){return"lessons"in F}
2
+ export{M as A,Z as B,_ as C,$ as D,C as E,D as F};
@@ -0,0 +1,2 @@
1
+ import{v as Y,w as H,x,y as v,z as E}from"./chunk-nw6brg34.js";import{K as k,L as _,N as $,O,P as D,Q as w}from"./chunk-dbcsf5tk.js";function M(G,K,J,N){return{error:G,errorCode:K,state:J,req:N,redirect:$,json:_}}function R(G){try{return D(G)}catch{Y.warn("Failed to decode state");return}}function j(G,K,J,N,W){let Q=K.searchParams.get("error_description");Y.error("IdP returned error",{error:G,description:Q});let V=Error(Q??G);if(W)return W(M(V,G,J,N));return _({error:G},400)}function T(G,K,J){Y.error("Missing authorization code in callback");let N=Error("Missing authorization code");if(J)return J(M(N,"missing_code",G,K));return _({error:"Missing authorization code"},400)}async function L(G){let{req:K,env:J,clientId:N,buildState:W}=G,Q=G.issuer??H(J),V=new URL(K.url),X=G.redirectUri;if(!X){let A=V.pathname.replace(w.IDENTITY.SIGNIN,"");X=`${V.origin}${A}${w.IDENTITY.CALLBACK}`}Y.debug("SSO sign-in initiated",{env:J,issuer:Q,clientId:N,redirectUri:X});let F=W?W({req:K,url:V}):{},Z=O(F),z=await x({issuer:Q,clientId:N,redirectUri:X,state:Z});return $(z)}function S(G){let K=new URL(G.url),J=K.searchParams.get("code"),N=K.searchParams.get("error"),W=K.searchParams.get("state");Y.debug("Received callback from IdP",{hasCode:!!J,error:N});let Q=W?R(W):void 0;return{url:K,code:J,errorParam:N,state:Q}}function h(G,K){if(K)return K;let J=G.pathname.replace(w.IDENTITY.CALLBACK,"");return`${G.origin}${J}${w.IDENTITY.CALLBACK}`}async function P(G,K,J){return await L({req:G,env:K,clientId:J.clientId,issuer:J.issuer,redirectUri:J.redirectUri,buildState:J.buildState})}async function C(G,K,J,N,W,Q){try{let V=Q.issuer??H(W),X=h(K,Q.redirectUri);Y.debug("Exchanging auth code for tokens (identity-only)",{issuer:V,clientId:Q.clientId});let F=await v({issuer:V,clientId:Q.clientId,clientSecret:Q.clientSecret,code:G,redirectUri:X}),Z=await E({issuer:V,accessToken:F.access_token}),z=typeof Z.identities==="string"?JSON.parse(Z.identities):Z.identities;Y.debug("SSO completed (identity-only)",{user:{...Z,identities:z}});let A={tokens:F,user:Z,state:J,req:N,redirect:$,json:_};return Q.onCallbackSuccess(A)}catch(V){let X=V instanceof Error?V:Error("Unknown error");if(Y.error("Token exchange failed (identity-only)",{error:X.message}),Q.onCallbackError)return Q.onCallbackError(M(X,void 0,J,N));return _({error:X.message},500)}}async function I(G,K,J){let{url:N,code:W,errorParam:Q,state:V}=S(G);if(Q)return j(Q,N,V,G,J.onCallbackError);if(!W)return T(V,G,J.onCallbackError);return await C(W,N,V,G,K,J)}function B(G){let{env:K,identity:J}=G;if(J.mode!=="sso")throw Error('Identity-only mode requires identity.mode === "sso"');return{signIn:(N)=>P(N,K,J),callback:(N)=>I(N,K,J),signOut:()=>$("/")}}function t(G){let K=B({env:k(G.env),identity:G.identity});return{config:G,handle:{identity:K}}}
2
+ export{M as e,j as f,T as g,L as h,S as i,h as j,t as k};
@@ -1 +1 @@
1
- import{w as B}from"./chunk-mnj8k0pt.js";import{L as Z}from"./chunk-1yn5w82n.js";import{TimebackClient as O}from"@timeback/core";function P(...x){return x.map((G)=>G?.trim()).filter((G)=>Boolean(G)).join(" ")||void 0}function X(x){let $=x.lastIndexOf("@");if($<=0)return"<redacted>";let G=x.slice(0,$),K=x.slice($+1);return`${G.slice(0,1)}***@${K}`}var Y=B("resolve");class V extends Error{code;constructor(x,$){super(x);this.code=$;this.name="TimebackUserResolutionError"}}function z(x){switch(x.code){case"timeback_user_ambiguous":return 409;case"timeback_user_not_found":return 404;default:return 502}}function F(x){return{sub:x.sub,email:x.email,firstName:x.given_name,lastName:x.family_name,pictureUrl:x.picture}}async function D(x,$){let K=(await x.oneroster.users.list({where:{email:$},limit:2})).data;if(K.length===0)throw Y.warn("No Timeback user found for email",{email:X($)}),new V(`No Timeback user found with email: ${$}`,"timeback_user_not_found");if(K.length>1)throw Y.error("Multiple Timeback users found for email",{email:X($),count:K.length}),new V(`Multiple Timeback users found with email: ${$}`,"timeback_user_ambiguous");let Q=K[0];if(!Q.sourcedId)throw new V("Timeback user is missing sourcedId","timeback_user_lookup_failed");return Q}async function W(x){let{env:$,apiCredentials:G,userInfo:K}=x;if(!K.email)throw Y.error("Missing email in IdP user info",{sub:K.sub}),new V("IdP did not return an email address, which is required to resolve Timeback identity","missing_email");let Q=K.email;Y.debug("Resolving Timeback user by email",{email:X(Q),env:$});let J=x.client,_=J??new O({env:Z($),auth:{clientId:G.clientId,clientSecret:G.clientSecret}});try{let H=await D(_,Q);return{...{id:H.sourcedId,email:H.email??Q,name:P(H.givenName,H.familyName),school:H.primaryOrg?{id:H.primaryOrg.sourcedId,name:H.primaryOrg.name??H.primaryOrg.sourcedId}:void 0,grade:H.grades?.length?Math.max(...H.grades):void 0},claims:F(K)}}catch(H){if(H instanceof V)throw H;let M=H instanceof Error?H.message:"Unknown error";throw Y.error("Failed to lookup Timeback user",{email:X(Q),error:M}),new V(`Failed to lookup Timeback user: ${M}`,"timeback_user_lookup_failed")}finally{if(!J)_.close()}}async function A(x){let{email:$,client:G}=x;Y.debug("Looking up Timeback user ID by email",{email:X($)});try{return(await D(G,$)).sourcedId}catch(K){if(K instanceof V)throw K;let Q=K instanceof Error?K.message:"Unknown error";throw Y.error("Failed to lookup Timeback user",{email:X($),error:Q}),new V(`Failed to lookup Timeback user: ${Q}`,"timeback_user_lookup_failed")}}function L(x,$){let G=x.totalQuestions!==void 0,K=x.correctQuestions!==void 0;if(G!==K){$.addIssue({code:"custom",message:"totalQuestions and correctQuestions must be provided together."});return}if(G&&K){let{correctQuestions:Q,totalQuestions:J}=x;if(Q>J)$.addIssue({code:"custom",message:"correctQuestions cannot exceed totalQuestions."})}}function N(x,$,G){let K=Z(G),Q=$.overrides?.[K]?.sensor??$.sensor??x.sensor;if(!Q){let J=$.overrides?.[K]?.launchUrl??$.launchUrl??x.launchUrl;if(J)try{Q=new URL(J).origin}catch{}}return Q}function j(x,$,G){if(!$?.onRequestStart&&!$?.onRequestEnd)return G;return async(K)=>{await $.onRequestStart?.({handler:x});let Q=Date.now(),J;try{J=await G(K)}catch(_){throw await $.onRequestEnd?.({handler:x,durationMs:Date.now()-Q,status:500}),_}return await $.onRequestEnd?.({handler:x,durationMs:Date.now()-Q,status:J.status}),J}}export{V as o,z as p,W as q,A as r,L as s,N as t,j as u};
1
+ import{u as B}from"./chunk-nw6brg34.js";import{J as Z}from"./chunk-dbcsf5tk.js";import{TimebackClient as O}from"@timeback/core";function P(...x){return x.map((G)=>G?.trim()).filter((G)=>Boolean(G)).join(" ")||void 0}function X(x){let $=x.lastIndexOf("@");if($<=0)return"<redacted>";let G=x.slice(0,$),K=x.slice($+1);return`${G.slice(0,1)}***@${K}`}var Y=B("resolve");class V extends Error{code;constructor(x,$){super(x);this.code=$;this.name="TimebackUserResolutionError"}}function z(x){switch(x.code){case"timeback_user_ambiguous":return 409;case"timeback_user_not_found":return 404;default:return 502}}function F(x){return{sub:x.sub,email:x.email,firstName:x.given_name,lastName:x.family_name,pictureUrl:x.picture}}async function D(x,$){let K=(await x.oneroster.users.list({where:{email:$},limit:2})).data;if(K.length===0)throw Y.warn("No Timeback user found for email",{email:X($)}),new V(`No Timeback user found with email: ${$}`,"timeback_user_not_found");if(K.length>1)throw Y.error("Multiple Timeback users found for email",{email:X($),count:K.length}),new V(`Multiple Timeback users found with email: ${$}`,"timeback_user_ambiguous");let Q=K[0];if(!Q.sourcedId)throw new V("Timeback user is missing sourcedId","timeback_user_lookup_failed");return Q}async function W(x){let{env:$,apiCredentials:G,userInfo:K}=x;if(!K.email)throw Y.error("Missing email in IdP user info",{sub:K.sub}),new V("IdP did not return an email address, which is required to resolve Timeback identity","missing_email");let Q=K.email;Y.debug("Resolving Timeback user by email",{email:X(Q),env:$});let J=x.client,_=J??new O({env:Z($),auth:{clientId:G.clientId,clientSecret:G.clientSecret}});try{let H=await D(_,Q);return{...{id:H.sourcedId,email:H.email??Q,name:P(H.givenName,H.familyName),school:H.primaryOrg?{id:H.primaryOrg.sourcedId,name:H.primaryOrg.name??H.primaryOrg.sourcedId}:void 0,grade:H.grades?.length?Math.max(...H.grades):void 0},claims:F(K)}}catch(H){if(H instanceof V)throw H;let M=H instanceof Error?H.message:"Unknown error";throw Y.error("Failed to lookup Timeback user",{email:X(Q),error:M}),new V(`Failed to lookup Timeback user: ${M}`,"timeback_user_lookup_failed")}finally{if(!J)_.close()}}async function A(x){let{email:$,client:G}=x;Y.debug("Looking up Timeback user ID by email",{email:X($)});try{return(await D(G,$)).sourcedId}catch(K){if(K instanceof V)throw K;let Q=K instanceof Error?K.message:"Unknown error";throw Y.error("Failed to lookup Timeback user",{email:X($),error:Q}),new V(`Failed to lookup Timeback user: ${Q}`,"timeback_user_lookup_failed")}}function L(x,$){let G=x.totalQuestions!==void 0,K=x.correctQuestions!==void 0;if(G!==K){$.addIssue({code:"custom",message:"totalQuestions and correctQuestions must be provided together."});return}if(G&&K){let{correctQuestions:Q,totalQuestions:J}=x;if(Q>J)$.addIssue({code:"custom",message:"correctQuestions cannot exceed totalQuestions."})}}function N(x,$,G){let K=Z(G),Q=$.overrides?.[K]?.sensor??$.sensor??x.sensor;if(!Q){let J=$.overrides?.[K]?.launchUrl??$.launchUrl??x.launchUrl;if(J)try{Q=new URL(J).origin}catch{}}return Q}function j(x,$,G){if(!$?.onRequestStart&&!$?.onRequestEnd)return G;return async(K)=>{await $.onRequestStart?.({handler:x});let Q=Date.now(),J;try{J=await G(K)}catch(_){throw await $.onRequestEnd?.({handler:x,durationMs:Date.now()-Q,status:500}),_}return await $.onRequestEnd?.({handler:x,durationMs:Date.now()-Q,status:J.status}),J}}export{V as m,z as n,W as o,A as p,L as q,N as r,j as s};
@@ -1,2 +1,2 @@
1
1
  function F(q){return Array.isArray(q)?q:[]}function G(q){return{course:q,component:`${q}-component`,resource:`${q}-resource`,componentResource:`${q}-cr`}}async function J(q){let w=new TextEncoder().encode(q),z=await crypto.subtle.digest("SHA-256",w);return Array.from(new Uint8Array(z)).map((A)=>A.toString(16).padStart(2,"0")).join("")}function K(q){if(q==="local"||q==="staging")return"staging";return"production"}function L(q){if(q==="production"||q==="local"||q==="staging")return q;return"staging"}function C(q,w=200,z){let A=new Headers(z);return A.set("Content-Type","application/json"),new Response(JSON.stringify(q),{status:w,headers:A})}function M(q,w,z,A){let B={code:q,message:w};if(A?.details!==void 0)B.details=A.details;return C({...A?.fields,error:B},z)}function N(q,w){let z=new Headers(w);return z.set("Location",q),new Response(null,{status:302,headers:z})}function O(q){let w=JSON.stringify(q);return btoa(w).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function P(q){let w=q.replace(/-/g,"+").replace(/_/g,"/"),z=atob(w);return JSON.parse(z)}var S={ACTIVITY:{BASE:"/activity",HEARTBEAT:"/activity/heartbeat",SUBMIT:"/activity/submit"},ACTIVITY_HEARTBEAT:"/activity/heartbeat",ACTIVITY_SUBMIT:"/activity/submit",LESSONS:{LIST:"/lessons/list",START:"/lessons/start",NEXT:"/lessons/next",SUBMIT:"/lessons/submit",COMPLETE:"/lessons/complete",ATTEMPTS:"/lessons/attempts",ATTEMPT_DETAILS:"/lessons/attempt-details"},IDENTITY:{SIGNIN:"/identity/signin",SIGNOUT:"/identity/signout",CALLBACK:"/identity/callback"},USER:{ME:"/user/me",VERIFY:"/user/verify"}};
2
- export{F as I,G as J,J as K,K as L,L as M,C as N,M as O,N as P,O as Q,P as R,S};
2
+ export{F as G,G as H,J as I,K as J,L as K,C as L,M,N,O,P,S as Q};
@@ -0,0 +1 @@
1
+ import"./chunk-1s709w5e.js";function a(e){if(typeof e!=="string")throw TypeError("Path must be a string. Received "+JSON.stringify(e))}function A(e,r){var n="",l=0,f=-1,i=0,s;for(var t=0;t<=e.length;++t){if(t<e.length)s=e.charCodeAt(t);else if(s===47)break;else s=47;if(s===47){if(f===t-1||i===1);else if(f!==t-1&&i===2){if(n.length<2||l!==2||n.charCodeAt(n.length-1)!==46||n.charCodeAt(n.length-2)!==46){if(n.length>2){var u=n.lastIndexOf("/");if(u!==n.length-1){if(u===-1)n="",l=0;else n=n.slice(0,u),l=n.length-1-n.lastIndexOf("/");f=t,i=0;continue}}else if(n.length===2||n.length===1){n="",l=0,f=t,i=0;continue}}if(r){if(n.length>0)n+="/..";else n="..";l=2}}else{if(n.length>0)n+="/"+e.slice(f+1,t);else n=e.slice(f+1,t);l=t-f-1}f=t,i=0}else if(s===46&&i!==-1)++i;else i=-1}return n}function h(e,r){var n=r.dir||r.root,l=r.base||(r.name||"")+(r.ext||"");if(!n)return l;if(n===r.root)return n+l;return n+e+l}function d(){var e="",r=!1,n;for(var l=arguments.length-1;l>=-1&&!r;l--){var f;if(l>=0)f=arguments[l];else{if(n===void 0)n=process.cwd();f=n}if(a(f),f.length===0)continue;e=f+"/"+e,r=f.charCodeAt(0)===47}if(e=A(e,!r),r)if(e.length>0)return"/"+e;else return"/";else if(e.length>0)return e;else return"."}function m(e){if(a(e),e.length===0)return".";var r=e.charCodeAt(0)===47,n=e.charCodeAt(e.length-1)===47;if(e=A(e,!r),e.length===0&&!r)e=".";if(e.length>0&&n)e+="/";if(r)return"/"+e;return e}function b(e){return a(e),e.length>0&&e.charCodeAt(0)===47}function k(){if(arguments.length===0)return".";var e;for(var r=0;r<arguments.length;++r){var n=arguments[r];if(a(n),n.length>0)if(e===void 0)e=n;else e+="/"+n}if(e===void 0)return".";return m(e)}function y(e,r){if(a(e),a(r),e===r)return"";if(e=d(e),r=d(r),e===r)return"";var n=1;for(;n<e.length;++n)if(e.charCodeAt(n)!==47)break;var l=e.length,f=l-n,i=1;for(;i<r.length;++i)if(r.charCodeAt(i)!==47)break;var s=r.length,t=s-i,u=f<t?f:t,c=-1,o=0;for(;o<=u;++o){if(o===u){if(t>u){if(r.charCodeAt(i+o)===47)return r.slice(i+o+1);else if(o===0)return r.slice(i+o)}else if(f>u){if(e.charCodeAt(n+o)===47)c=o;else if(o===0)c=0}break}var v=e.charCodeAt(n+o),C=r.charCodeAt(i+o);if(v!==C)break;else if(v===47)c=o}var g="";for(o=n+c+1;o<=l;++o)if(o===l||e.charCodeAt(o)===47)if(g.length===0)g+="..";else g+="/..";if(g.length>0)return g+r.slice(i+c);else{if(i+=c,r.charCodeAt(i)===47)++i;return r.slice(i)}}function S(e){return e}function w(e){if(a(e),e.length===0)return".";var r=e.charCodeAt(0),n=r===47,l=-1,f=!0;for(var i=e.length-1;i>=1;--i)if(r=e.charCodeAt(i),r===47){if(!f){l=i;break}}else f=!1;if(l===-1)return n?"/":".";if(n&&l===1)return"//";return e.slice(0,l)}function P(e,r){if(r!==void 0&&typeof r!=="string")throw TypeError('"ext" argument must be a string');a(e);var n=0,l=-1,f=!0,i;if(r!==void 0&&r.length>0&&r.length<=e.length){if(r.length===e.length&&r===e)return"";var s=r.length-1,t=-1;for(i=e.length-1;i>=0;--i){var u=e.charCodeAt(i);if(u===47){if(!f){n=i+1;break}}else{if(t===-1)f=!1,t=i+1;if(s>=0)if(u===r.charCodeAt(s)){if(--s===-1)l=i}else s=-1,l=t}}if(n===l)l=t;else if(l===-1)l=e.length;return e.slice(n,l)}else{for(i=e.length-1;i>=0;--i)if(e.charCodeAt(i)===47){if(!f){n=i+1;break}}else if(l===-1)f=!1,l=i+1;if(l===-1)return"";return e.slice(n,l)}}function D(e){a(e);var r=-1,n=0,l=-1,f=!0,i=0;for(var s=e.length-1;s>=0;--s){var t=e.charCodeAt(s);if(t===47){if(!f){n=s+1;break}continue}if(l===-1)f=!1,l=s+1;if(t===46){if(r===-1)r=s;else if(i!==1)i=1}else if(r!==-1)i=-1}if(r===-1||l===-1||i===0||i===1&&r===l-1&&r===n+1)return"";return e.slice(r,l)}function L(e){if(e===null||typeof e!=="object")throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return h("/",e)}function T(e){a(e);var r={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return r;var n=e.charCodeAt(0),l=n===47,f;if(l)r.root="/",f=1;else f=0;var i=-1,s=0,t=-1,u=!0,c=e.length-1,o=0;for(;c>=f;--c){if(n=e.charCodeAt(c),n===47){if(!u){s=c+1;break}continue}if(t===-1)u=!1,t=c+1;if(n===46){if(i===-1)i=c;else if(o!==1)o=1}else if(i!==-1)o=-1}if(i===-1||t===-1||o===0||o===1&&i===t-1&&i===s+1){if(t!==-1)if(s===0&&l)r.base=r.name=e.slice(1,t);else r.base=r.name=e.slice(s,t)}else{if(s===0&&l)r.name=e.slice(1,i),r.base=e.slice(1,t);else r.name=e.slice(s,i),r.base=e.slice(s,t);r.ext=e.slice(i,t)}if(s>0)r.dir=e.slice(0,s-1);else if(l)r.dir="/";return r}var R="/",_=":",z=((e)=>(e.posix=e,e))({resolve:d,normalize:m,isAbsolute:b,join:k,relative:y,_makeLong:S,dirname:w,basename:P,extname:D,format:L,parse:T,sep:R,delimiter:_,win32:null,posix:null}),E=z;export{R as sep,d as resolve,y as relative,z as posix,T as parse,m as normalize,k as join,b as isAbsolute,L as format,D as extname,w as dirname,_ as delimiter,E as default,P as basename,S as _makeLong};
@@ -1,4 +1,4 @@
1
- import"./chunk-ae6bkfs5.js";import"./chunk-hhh88wcq.js";var F=/%[sdj%]/g;function D(e,...t){if(!P(e)){var n=[e];for(var r=0;r<t.length;r++)n.push(l(t[r]));return n.join(" ")}var r=0,s=t.length,o=String(e).replace(F,function(f){if(f==="%%")return"%";if(r>=s)return f;switch(f){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(u){return"[Circular]"}default:return f}});for(var i=t[r];r<s;i=t[++r])if(w(i)||!a(i))o+=" "+i;else o+=" "+l(i);return o}function Y(e,t){if(typeof process>"u"||process?.noDeprecation===!0)return e;var n=!1;function r(...s){if(!n){if(process.throwDeprecation)throw Error(t);else if(process.traceDeprecation)console.trace(t);else console.error(t);n=!0}return e.apply(this,...s)}return r}var v=((e={},t={},n)=>((n=typeof process<"u"&&!1)&&(n=n.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase()),t=new RegExp("^"+n+"$","i"),(r)=>{if(r=r.toUpperCase(),!e[r])if(t.test(r))e[r]=function(...s){console.error("%s: %s",r,pid,D.apply(null,...s))};else e[r]=function(){};return e[r]}))(),l=((e)=>(e.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},e.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.custom=Symbol.for("nodejs.util.inspect.custom"),e))(function(e,t,...n){var r={seen:[],stylize:H};if(n.length>=1)r.depth=n[0];if(n.length>=2)r.colors=n[1];if(C(t))r.showHidden=t;else if(t)T(r,t);if(p(r.showHidden))r.showHidden=!1;if(p(r.depth))r.depth=2;if(p(r.colors))r.colors=!1;if(r.colors)r.stylize=R;return m(r,e,r.depth)});function R(e,t){var n=l.styles[t];if(n)return"\x1B["+l.colors[n][0]+"m"+e+"\x1B["+l.colors[n][1]+"m";else return e}function H(e,t){return e}function J(e){var t={};return e.forEach(function(n,r){t[n]=!0}),t}function m(e,t,n){if(e.customInspect&&t&&O(t.inspect)&&t.inspect!==l&&!(t.constructor&&t.constructor.prototype===t)){var r=t.inspect(n,e);if(!P(r))r=m(e,r,n);return r}var s=_(e,t);if(s)return s;var o=Object.keys(t),i=J(o);if(e.showHidden)o=Object.getOwnPropertyNames(t);if(g(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return b(t);if(o.length===0){if(O(t)){var f=t.name?": "+t.name:"";return e.stylize("[Function"+f+"]","special")}if(h(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(E(t))return e.stylize(Date.prototype.toString.call(t),"date");if(g(t))return b(t)}var u="",c=!1,y=["{","}"];if(M(t))c=!0,y=["[","]"];if(O(t)){var $=t.name?": "+t.name:"";u=" [Function"+$+"]"}if(h(t))u=" "+RegExp.prototype.toString.call(t);if(E(t))u=" "+Date.prototype.toUTCString.call(t);if(g(t))u=" "+b(t);if(o.length===0&&(!c||t.length==0))return y[0]+u+y[1];if(n<0)if(h(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");else return e.stylize("[Object]","special");e.seen.push(t);var d;if(c)d=B(e,t,n,i,o);else d=o.map(function(A){return S(e,t,n,i,A,c)});return e.seen.pop(),U(d,u,y)}function _(e,t){if(p(t))return e.stylize("undefined","undefined");if(P(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(G(t))return e.stylize(""+t,"number");if(C(t))return e.stylize(""+t,"boolean");if(w(t))return e.stylize("null","null")}function b(e){return"["+Error.prototype.toString.call(e)+"]"}function B(e,t,n,r,s){var o=[];for(var i=0,f=t.length;i<f;++i)if(k(t,String(i)))o.push(S(e,t,n,r,String(i),!0));else o.push("");return s.forEach(function(u){if(!u.match(/^\d+$/))o.push(S(e,t,n,r,u,!0))}),o}function S(e,t,n,r,s,o){var i,f,u;if(u=Object.getOwnPropertyDescriptor(t,s)||{value:t[s]},u.get)if(u.set)f=e.stylize("[Getter/Setter]","special");else f=e.stylize("[Getter]","special");else if(u.set)f=e.stylize("[Setter]","special");if(!k(r,s))i="["+s+"]";if(!f)if(e.seen.indexOf(u.value)<0){if(w(n))f=m(e,u.value,null);else f=m(e,u.value,n-1);if(f.indexOf(`
1
+ import"./chunk-ae6bkfs5.js";import"./chunk-1s709w5e.js";var F=/%[sdj%]/g;function D(e,...t){if(!P(e)){var n=[e];for(var r=0;r<t.length;r++)n.push(l(t[r]));return n.join(" ")}var r=0,s=t.length,o=String(e).replace(F,function(f){if(f==="%%")return"%";if(r>=s)return f;switch(f){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(u){return"[Circular]"}default:return f}});for(var i=t[r];r<s;i=t[++r])if(w(i)||!a(i))o+=" "+i;else o+=" "+l(i);return o}function Y(e,t){if(typeof process>"u"||process?.noDeprecation===!0)return e;var n=!1;function r(...s){if(!n){if(process.throwDeprecation)throw Error(t);else if(process.traceDeprecation)console.trace(t);else console.error(t);n=!0}return e.apply(this,...s)}return r}var v=((e={},t={},n)=>((n=typeof process<"u"&&!1)&&(n=n.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase()),t=new RegExp("^"+n+"$","i"),(r)=>{if(r=r.toUpperCase(),!e[r])if(t.test(r))e[r]=function(...s){console.error("%s: %s",r,pid,D.apply(null,...s))};else e[r]=function(){};return e[r]}))(),l=((e)=>(e.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},e.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.custom=Symbol.for("nodejs.util.inspect.custom"),e))(function(e,t,...n){var r={seen:[],stylize:H};if(n.length>=1)r.depth=n[0];if(n.length>=2)r.colors=n[1];if(C(t))r.showHidden=t;else if(t)T(r,t);if(p(r.showHidden))r.showHidden=!1;if(p(r.depth))r.depth=2;if(p(r.colors))r.colors=!1;if(r.colors)r.stylize=R;return m(r,e,r.depth)});function R(e,t){var n=l.styles[t];if(n)return"\x1B["+l.colors[n][0]+"m"+e+"\x1B["+l.colors[n][1]+"m";else return e}function H(e,t){return e}function J(e){var t={};return e.forEach(function(n,r){t[n]=!0}),t}function m(e,t,n){if(e.customInspect&&t&&O(t.inspect)&&t.inspect!==l&&!(t.constructor&&t.constructor.prototype===t)){var r=t.inspect(n,e);if(!P(r))r=m(e,r,n);return r}var s=_(e,t);if(s)return s;var o=Object.keys(t),i=J(o);if(e.showHidden)o=Object.getOwnPropertyNames(t);if(g(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return b(t);if(o.length===0){if(O(t)){var f=t.name?": "+t.name:"";return e.stylize("[Function"+f+"]","special")}if(h(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(E(t))return e.stylize(Date.prototype.toString.call(t),"date");if(g(t))return b(t)}var u="",c=!1,y=["{","}"];if(M(t))c=!0,y=["[","]"];if(O(t)){var $=t.name?": "+t.name:"";u=" [Function"+$+"]"}if(h(t))u=" "+RegExp.prototype.toString.call(t);if(E(t))u=" "+Date.prototype.toUTCString.call(t);if(g(t))u=" "+b(t);if(o.length===0&&(!c||t.length==0))return y[0]+u+y[1];if(n<0)if(h(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");else return e.stylize("[Object]","special");e.seen.push(t);var d;if(c)d=B(e,t,n,i,o);else d=o.map(function(A){return S(e,t,n,i,A,c)});return e.seen.pop(),U(d,u,y)}function _(e,t){if(p(t))return e.stylize("undefined","undefined");if(P(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(G(t))return e.stylize(""+t,"number");if(C(t))return e.stylize(""+t,"boolean");if(w(t))return e.stylize("null","null")}function b(e){return"["+Error.prototype.toString.call(e)+"]"}function B(e,t,n,r,s){var o=[];for(var i=0,f=t.length;i<f;++i)if(k(t,String(i)))o.push(S(e,t,n,r,String(i),!0));else o.push("");return s.forEach(function(u){if(!u.match(/^\d+$/))o.push(S(e,t,n,r,u,!0))}),o}function S(e,t,n,r,s,o){var i,f,u;if(u=Object.getOwnPropertyDescriptor(t,s)||{value:t[s]},u.get)if(u.set)f=e.stylize("[Getter/Setter]","special");else f=e.stylize("[Getter]","special");else if(u.set)f=e.stylize("[Setter]","special");if(!k(r,s))i="["+s+"]";if(!f)if(e.seen.indexOf(u.value)<0){if(w(n))f=m(e,u.value,null);else f=m(e,u.value,n-1);if(f.indexOf(`
2
2
  `)>-1)if(o)f=f.split(`
3
3
  `).map(function(c){return" "+c}).join(`
4
4
  `).slice(2);else f=`
@@ -1,2 +1,2 @@
1
- import{T as C,Y as w}from"./chunk-hhh88wcq.js";var q=null,G=!1,N=!1;function T(z){let Q=z.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${Q}$`)}function b(){if(q!==null)return;if(q=[],typeof process>"u"||!process.env?.DEBUG){N=!1;return}N=!0;let z=process.env.DEBUG.trim();if(z==="1"||z==="true"||z==="*"){G=!0;return}let K=z.split(",").map((Z)=>Z.trim()).filter(Boolean);for(let Z of K)if(Z.startsWith("-"))q.push({regex:T(Z.slice(1)),exclude:!0});else q.push({regex:T(Z),exclude:!1});if(!q.some((Z)=>!Z.exclude)&&q.length>0)G=!0}function V(z){if(b(),!N)return!0;if(G){if(z){for(let K of q)if(K.exclude&&K.regex.test(z))return!1}return!0}if(!z)return!1;for(let K of q)if(K.exclude&&K.regex.test(z))return!1;for(let K of q)if(!K.exclude&&K.regex.test(z))return!0;return!1}function P(){return typeof globalThis<"u"&&"window"in globalThis}function U(){if(P())return"browser";if(typeof process<"u"&&process.env){if(process.env.CI||process.env.GITHUB_ACTIONS||process.env.GITLAB_CI||process.env.CIRCLECI||process.env.JENKINS_URL||process.env.BUILDKITE)return"ci"}return"terminal"}var A;if(!P())try{A=(await import("./chunk-0skdg1yp.js")).inspect}catch{}var W={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m"};function L(z){switch(z){case"debug":return W.blue;case"info":return W.cyan;case"warn":return W.yellow;case"error":return W.red}}function d(z){switch(z){case"debug":return console.debug;case"info":return console.info;case"warn":return console.warn;case"error":return console.error}}function m(z){if(A)return A(z,{depth:null,colors:!0,breakLength:80,compact:!1});return JSON.stringify(z,null,2)}var j=(z)=>{let K=L(z.level),Q=d(z.level),Z=z.level.toUpperCase().padEnd(5),$=z.timestamp.toISOString().replace(/\.\d{3}Z$/,""),h=`${W.dim}[${$}]${W.reset}`,f=`${K}${Z}${W.reset}`,x=z.scope?`${W.bold}[${z.scope}]${W.reset} `:"",O=`${h} ${f} ${x}${z.message}`;if(z.context&&Object.keys(z.context).length>0)Q(O,m(z.context));else Q(O)};var v={debug:"[DEBUG]",info:"[INFO]",warn:"[WARN]",error:"[ERROR]"};function y(z){return Object.entries(z).map(([K,Q])=>`${K}=${u(Q)}`).join(" ")}function u(z){if(typeof z==="string")return z;if(typeof z==="number")return String(z);if(typeof z==="boolean")return String(z);if(z===null)return"null";if(z===void 0)return"undefined";return JSON.stringify(z)}var B=(z)=>{let K=[];if(K.push(z.timestamp.toISOString()),K.push(v[z.level]),z.scope)K.push(`[${z.scope}]`);if(K.push(z.message),z.context&&Object.keys(z.context).length>0)K.push(y(z.context));console.log(K.join(" "))};var F=(z)=>{let K={timestamp:z.timestamp.toISOString(),level:z.level,...z.scope&&{scope:z.scope},msg:z.message};if(z.context&&Object.keys(z.context).length>0)Object.assign(K,z.context);console.log(JSON.stringify(K))};var i={debug:"color: gray",info:"color: #0ea5e9",warn:"color: #f59e0b",error:"color: #ef4444; font-weight: bold"},c={debug:"log",info:"info",warn:"warn",error:"error"},H=(z)=>{let K=c[z.level],Q=i[z.level],$=`%c${z.scope?`[${z.scope}]`:""} ${z.message}`;if(z.context&&Object.keys(z.context).length>0)console[K]($,Q,z.context);else console[K]($,Q)};var D=["debug","info","warn","error"];function p(z){switch(z){case"terminal":return j;case"ci":return B;case"production":return F;case"browser":return H;case"test":return()=>{}}}function g(){if(typeof process<"u"&&process.env?.DEBUG)return"debug";return"info"}function l(z,K){return D.indexOf(z)>=D.indexOf(K)}class X{scope;minLevel;environment;formatter;defaultContext;constructor(z={}){this.scope=z.scope,this.minLevel=z.minLevel??g(),this.defaultContext=z.defaultContext??{},this.environment=z.environment??U(),this.formatter=p(this.environment)}child(z){let K=this.scope?`${this.scope}:${z}`:z;return new X({scope:K,minLevel:this.minLevel,environment:this.environment,defaultContext:{...this.defaultContext}})}withContext(z){return new X({scope:this.scope,minLevel:this.minLevel,environment:this.environment,defaultContext:{...this.defaultContext,...z}})}debug(z,K){this.log("debug",z,K)}info(z,K){this.log("info",z,K)}warn(z,K){this.log("warn",z,K)}error(z,K){this.log("error",z,K)}log(z,K,Q){if(z==="debug"&&!V(this.scope))return;if(!l(z,this.minLevel))return;let Z={level:z,message:K,scope:this.scope,context:Q||Object.keys(this.defaultContext).length>0?{...this.defaultContext,...Q}:void 0,timestamp:new Date};this.formatter(Z)}}function M(z={}){return new X(z)}var R,_,a={debug(){},info(){},warn(){},error(){}};function n(){try{let z=typeof process>"u"?void 0:process.env.DEBUG;return z==="1"||z==="true"}catch{return!1}}var k=new Map;function o(z,K){let Q=`[${K}]`;return{debug:(...Z)=>z.debug(`${Q} ${Z[0]}`,...Z.slice(1)),info:(...Z)=>z.info(`${Q} ${Z[0]}`,...Z.slice(1)),warn:(...Z)=>z.warn(`${Q} ${Z[0]}`,...Z.slice(1)),error:(...Z)=>z.error(`${Q} ${Z[0]}`,...Z.slice(1))}}function J(z){let K=k.get(z);if(K)return K;if(R)K=o(R,z);else{let Q=_??(n()?"debug":"warn");if(Q==="silent")K=a;else K=M({scope:z,minLevel:Q})}return k.set(z,K),K}function Mz(z){R=z.logger,_=z.logLevel,k.clear()}function E(z){let K=`timeback:${z}`;return{debug(Q,...Z){J(K).debug(Q,...Z)},info(Q,...Z){J(K).info(Q,...Z)},warn(Q,...Z){J(K).warn(Q,...Z)},error(Q,...Z){J(K).error(Q,...Z)}}}var Rz=E("sso"),Y=E("oidc");var S=new Map;async function I(z){let K=S.get(z);if(K)return K;let Q=`${z}/.well-known/openid-configuration`,Z=await fetch(Q);if(!Z.ok)throw Y.error("Discovery fetch failed",{status:Z.status}),Error(`Failed to fetch OIDC discovery: ${Z.statusText}`);let $=await Z.json();return Y.debug("Fetched OIDC discovery document",{authEndpoint:$.authorization_endpoint,tokenEndpoint:$.token_endpoint}),S.set(z,$),$}function Oz(z){switch(z){case"production":return"https://cognito-idp.us-east-1.amazonaws.com/us-east-1_3uhuoRM3R";case"staging":return"https://cognito-idp.us-east-1.amazonaws.com/us-east-1_5EUwTP9XD";case"local":throw Error("Local environment is not yet supported for OIDC")}}async function Tz(z){let K=await I(z.issuer),Q=new URL(K.authorization_endpoint);return Q.searchParams.set("response_type","code"),Q.searchParams.set("client_id",z.clientId),Q.searchParams.set("redirect_uri",z.redirectUri),Q.searchParams.set("scope","openid profile email"),Q.searchParams.set("state",z.state),Q.toString()}async function Vz(z){let K=await I(z.issuer),Q=await fetch(K.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",client_id:z.clientId,client_secret:z.clientSecret,code:z.code,redirect_uri:z.redirectUri})});if(!Q.ok){let $=await Q.text();throw Y.error("Token exchange failed",{status:Q.status,body:$}),Error(`Token exchange failed: ${Q.status} ${$}`)}let Z=await Q.json();return Y.debug("Received tokens from IdP",{expiresIn:Z.expires_in}),Z}async function Cz(z){let K=await I(z.issuer),Q=await fetch(K.userinfo_endpoint,{headers:{Authorization:`Bearer ${z.accessToken}`}});if(!Q.ok)throw Error(`UserInfo request failed: ${Q.statusText}`);return Q.json()}
2
- export{Mz as v,E as w,Rz as x,Oz as y,Tz as z,Vz as A,Cz as B};
1
+ import{R as C,U as w}from"./chunk-1s709w5e.js";var q=null,G=!1,N=!1;function T(z){let Q=z.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${Q}$`)}function b(){if(q!==null)return;if(q=[],typeof process>"u"||!process.env?.DEBUG){N=!1;return}N=!0;let z=process.env.DEBUG.trim();if(z==="1"||z==="true"||z==="*"){G=!0;return}let K=z.split(",").map((Z)=>Z.trim()).filter(Boolean);for(let Z of K)if(Z.startsWith("-"))q.push({regex:T(Z.slice(1)),exclude:!0});else q.push({regex:T(Z),exclude:!1});if(!q.some((Z)=>!Z.exclude)&&q.length>0)G=!0}function V(z){if(b(),!N)return!0;if(G){if(z){for(let K of q)if(K.exclude&&K.regex.test(z))return!1}return!0}if(!z)return!1;for(let K of q)if(K.exclude&&K.regex.test(z))return!1;for(let K of q)if(!K.exclude&&K.regex.test(z))return!0;return!1}function P(){return typeof globalThis<"u"&&"window"in globalThis}function U(){if(P())return"browser";if(typeof process<"u"&&process.env){if(process.env.CI||process.env.GITHUB_ACTIONS||process.env.GITLAB_CI||process.env.CIRCLECI||process.env.JENKINS_URL||process.env.BUILDKITE)return"ci"}return"terminal"}var A;if(!P())try{A=(await import("./chunk-zpbvsyr1.js")).inspect}catch{}var W={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m"};function L(z){switch(z){case"debug":return W.blue;case"info":return W.cyan;case"warn":return W.yellow;case"error":return W.red}}function d(z){switch(z){case"debug":return console.debug;case"info":return console.info;case"warn":return console.warn;case"error":return console.error}}function m(z){if(A)return A(z,{depth:null,colors:!0,breakLength:80,compact:!1});return JSON.stringify(z,null,2)}var j=(z)=>{let K=L(z.level),Q=d(z.level),Z=z.level.toUpperCase().padEnd(5),$=z.timestamp.toISOString().replace(/\.\d{3}Z$/,""),h=`${W.dim}[${$}]${W.reset}`,f=`${K}${Z}${W.reset}`,x=z.scope?`${W.bold}[${z.scope}]${W.reset} `:"",O=`${h} ${f} ${x}${z.message}`;if(z.context&&Object.keys(z.context).length>0)Q(O,m(z.context));else Q(O)};var v={debug:"[DEBUG]",info:"[INFO]",warn:"[WARN]",error:"[ERROR]"};function y(z){return Object.entries(z).map(([K,Q])=>`${K}=${u(Q)}`).join(" ")}function u(z){if(typeof z==="string")return z;if(typeof z==="number")return String(z);if(typeof z==="boolean")return String(z);if(z===null)return"null";if(z===void 0)return"undefined";return JSON.stringify(z)}var B=(z)=>{let K=[];if(K.push(z.timestamp.toISOString()),K.push(v[z.level]),z.scope)K.push(`[${z.scope}]`);if(K.push(z.message),z.context&&Object.keys(z.context).length>0)K.push(y(z.context));console.log(K.join(" "))};var F=(z)=>{let K={timestamp:z.timestamp.toISOString(),level:z.level,...z.scope&&{scope:z.scope},msg:z.message};if(z.context&&Object.keys(z.context).length>0)Object.assign(K,z.context);console.log(JSON.stringify(K))};var i={debug:"color: gray",info:"color: #0ea5e9",warn:"color: #f59e0b",error:"color: #ef4444; font-weight: bold"},c={debug:"log",info:"info",warn:"warn",error:"error"},H=(z)=>{let K=c[z.level],Q=i[z.level],$=`%c${z.scope?`[${z.scope}]`:""} ${z.message}`;if(z.context&&Object.keys(z.context).length>0)console[K]($,Q,z.context);else console[K]($,Q)};var D=["debug","info","warn","error"];function p(z){switch(z){case"terminal":return j;case"ci":return B;case"production":return F;case"browser":return H;case"test":return()=>{}}}function g(){if(typeof process<"u"&&process.env?.DEBUG)return"debug";return"info"}function l(z,K){return D.indexOf(z)>=D.indexOf(K)}class X{scope;minLevel;environment;formatter;defaultContext;constructor(z={}){this.scope=z.scope,this.minLevel=z.minLevel??g(),this.defaultContext=z.defaultContext??{},this.environment=z.environment??U(),this.formatter=p(this.environment)}child(z){let K=this.scope?`${this.scope}:${z}`:z;return new X({scope:K,minLevel:this.minLevel,environment:this.environment,defaultContext:{...this.defaultContext}})}withContext(z){return new X({scope:this.scope,minLevel:this.minLevel,environment:this.environment,defaultContext:{...this.defaultContext,...z}})}debug(z,K){this.log("debug",z,K)}info(z,K){this.log("info",z,K)}warn(z,K){this.log("warn",z,K)}error(z,K){this.log("error",z,K)}log(z,K,Q){if(z==="debug"&&!V(this.scope))return;if(!l(z,this.minLevel))return;let Z={level:z,message:K,scope:this.scope,context:Q||Object.keys(this.defaultContext).length>0?{...this.defaultContext,...Q}:void 0,timestamp:new Date};this.formatter(Z)}}function M(z={}){return new X(z)}var R,_,a={debug(){},info(){},warn(){},error(){}};function n(){try{let z=typeof process>"u"?void 0:process.env.DEBUG;return z==="1"||z==="true"}catch{return!1}}var k=new Map;function o(z,K){let Q=`[${K}]`;return{debug:(...Z)=>z.debug(`${Q} ${Z[0]}`,...Z.slice(1)),info:(...Z)=>z.info(`${Q} ${Z[0]}`,...Z.slice(1)),warn:(...Z)=>z.warn(`${Q} ${Z[0]}`,...Z.slice(1)),error:(...Z)=>z.error(`${Q} ${Z[0]}`,...Z.slice(1))}}function J(z){let K=k.get(z);if(K)return K;if(R)K=o(R,z);else{let Q=_??(n()?"debug":"warn");if(Q==="silent")K=a;else K=M({scope:z,minLevel:Q})}return k.set(z,K),K}function Mz(z){R=z.logger,_=z.logLevel,k.clear()}function E(z){let K=`timeback:${z}`;return{debug(Q,...Z){J(K).debug(Q,...Z)},info(Q,...Z){J(K).info(Q,...Z)},warn(Q,...Z){J(K).warn(Q,...Z)},error(Q,...Z){J(K).error(Q,...Z)}}}var Rz=E("sso"),Y=E("oidc");var S=new Map;async function I(z){let K=S.get(z);if(K)return K;let Q=`${z}/.well-known/openid-configuration`,Z=await fetch(Q);if(!Z.ok)throw Y.error("Discovery fetch failed",{status:Z.status}),Error(`Failed to fetch OIDC discovery: ${Z.statusText}`);let $=await Z.json();return Y.debug("Fetched OIDC discovery document",{authEndpoint:$.authorization_endpoint,tokenEndpoint:$.token_endpoint}),S.set(z,$),$}function Oz(z){switch(z){case"production":return"https://cognito-idp.us-east-1.amazonaws.com/us-east-1_3uhuoRM3R";case"staging":return"https://cognito-idp.us-east-1.amazonaws.com/us-east-1_5EUwTP9XD";case"local":throw Error("Local environment is not yet supported for OIDC")}}async function Tz(z){let K=await I(z.issuer),Q=new URL(K.authorization_endpoint);return Q.searchParams.set("response_type","code"),Q.searchParams.set("client_id",z.clientId),Q.searchParams.set("redirect_uri",z.redirectUri),Q.searchParams.set("scope","openid profile email"),Q.searchParams.set("state",z.state),Q.toString()}async function Vz(z){let K=await I(z.issuer),Q=await fetch(K.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",client_id:z.clientId,client_secret:z.clientSecret,code:z.code,redirect_uri:z.redirectUri})});if(!Q.ok){let $=await Q.text();throw Y.error("Token exchange failed",{status:Q.status,body:$}),Error(`Token exchange failed: ${Q.status} ${$}`)}let Z=await Q.json();return Y.debug("Received tokens from IdP",{expiresIn:Z.expires_in}),Z}async function Cz(z){let K=await I(z.issuer),Q=await fetch(K.userinfo_endpoint,{headers:{Authorization:`Bearer ${z.accessToken}`}});if(!Q.ok)throw Error(`UserInfo request failed: ${Q.statusText}`);return Q.json()}
2
+ export{Mz as t,E as u,Rz as v,Oz as w,Tz as x,Vz as y,Cz as z};
@@ -0,0 +1,10 @@
1
+ import"./chunk-1s709w5e.js";var F=/%[sdj%]/g;function D(e,...t){if(!P(e)){var n=[e];for(var r=0;r<t.length;r++)n.push(l(t[r]));return n.join(" ")}var r=0,s=t.length,o=String(e).replace(F,function(f){if(f==="%%")return"%";if(r>=s)return f;switch(f){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(c){return"[Circular]"}default:return f}});for(var i=t[r];r<s;i=t[++r])if(w(i)||!y(i))o+=" "+i;else o+=" "+l(i);return o}function X(e,t){if(typeof process>"u"||process?.noDeprecation===!0)return e;var n=!1;function r(...s){if(!n){if(process.throwDeprecation)throw Error(t);else if(process.traceDeprecation)console.trace(t);else console.error(t);n=!0}return e.apply(this,...s)}return r}var Y=((e={},t={},n)=>((n=typeof process<"u"&&!1)&&(n=n.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase()),t=new RegExp("^"+n+"$","i"),(r)=>{if(r=r.toUpperCase(),!e[r])if(t.test(r))e[r]=function(...s){console.error("%s: %s",r,pid,D.apply(null,...s))};else e[r]=function(){};return e[r]}))(),l=((e)=>(e.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},e.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.custom=Symbol.for("nodejs.util.inspect.custom"),e))(function(e,t,...n){var r={seen:[],stylize:H};if(n.length>=1)r.depth=n[0];if(n.length>=2)r.colors=n[1];if(C(t))r.showHidden=t;else if(t)T(r,t);if(p(r.showHidden))r.showHidden=!1;if(p(r.depth))r.depth=2;if(p(r.colors))r.colors=!1;if(r.colors)r.stylize=R;return m(r,e,r.depth)});function R(e,t){var n=l.styles[t];if(n)return"\x1B["+l.colors[n][0]+"m"+e+"\x1B["+l.colors[n][1]+"m";else return e}function H(e,t){return e}function J(e){var t={};return e.forEach(function(n,r){t[n]=!0}),t}function m(e,t,n){if(e.customInspect&&t&&O(t.inspect)&&t.inspect!==l&&!(t.constructor&&t.constructor.prototype===t)){var r=t.inspect(n,e);if(!P(r))r=m(e,r,n);return r}var s=_(e,t);if(s)return s;var o=Object.keys(t),i=J(o);if(e.showHidden)o=Object.getOwnPropertyNames(t);if(g(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return b(t);if(o.length===0){if(O(t)){var f=t.name?": "+t.name:"";return e.stylize("[Function"+f+"]","special")}if(h(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(E(t))return e.stylize(Date.prototype.toString.call(t),"date");if(g(t))return b(t)}var c="",u=!1,a=["{","}"];if(M(t))u=!0,a=["[","]"];if(O(t)){var $=t.name?": "+t.name:"";c=" [Function"+$+"]"}if(h(t))c=" "+RegExp.prototype.toString.call(t);if(E(t))c=" "+Date.prototype.toUTCString.call(t);if(g(t))c=" "+b(t);if(o.length===0&&(!u||t.length==0))return a[0]+c+a[1];if(n<0)if(h(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");else return e.stylize("[Object]","special");e.seen.push(t);var d;if(u)d=B(e,t,n,i,o);else d=o.map(function(A){return S(e,t,n,i,A,u)});return e.seen.pop(),U(d,c,a)}function _(e,t){if(p(t))return e.stylize("undefined","undefined");if(P(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(G(t))return e.stylize(""+t,"number");if(C(t))return e.stylize(""+t,"boolean");if(w(t))return e.stylize("null","null")}function b(e){return"["+Error.prototype.toString.call(e)+"]"}function B(e,t,n,r,s){var o=[];for(var i=0,f=t.length;i<f;++i)if(k(t,String(i)))o.push(S(e,t,n,r,String(i),!0));else o.push("");return s.forEach(function(c){if(!c.match(/^\d+$/))o.push(S(e,t,n,r,c,!0))}),o}function S(e,t,n,r,s,o){var i,f,c;if(c=Object.getOwnPropertyDescriptor(t,s)||{value:t[s]},c.get)if(c.set)f=e.stylize("[Getter/Setter]","special");else f=e.stylize("[Getter]","special");else if(c.set)f=e.stylize("[Setter]","special");if(!k(r,s))i="["+s+"]";if(!f)if(e.seen.indexOf(c.value)<0){if(w(n))f=m(e,c.value,null);else f=m(e,c.value,n-1);if(f.indexOf(`
2
+ `)>-1)if(o)f=f.split(`
3
+ `).map(function(u){return" "+u}).join(`
4
+ `).slice(2);else f=`
5
+ `+f.split(`
6
+ `).map(function(u){return" "+u}).join(`
7
+ `)}else f=e.stylize("[Circular]","special");if(p(i)){if(o&&s.match(/^\d+$/))return f;if(i=JSON.stringify(""+s),i.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/))i=i.slice(1,-1),i=e.stylize(i,"name");else i=i.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),i=e.stylize(i,"string")}return i+": "+f}function U(e,t,n){var r=0,s=e.reduce(function(o,i){if(r++,i.indexOf(`
8
+ `)>=0)r++;return o+i.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(s>60)return n[0]+(t===""?"":t+`
9
+ `)+" "+e.join(`,
10
+ `)+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}var v=()=>{};function M(e){return Array.isArray(e)}function C(e){return typeof e==="boolean"}function w(e){return e===null}function x(e){return e==null}function G(e){return typeof e==="number"}function P(e){return typeof e==="string"}function ee(e){return typeof e==="symbol"}function p(e){return e===void 0}function h(e){return y(e)&&z(e)==="[object RegExp]"}function y(e){return typeof e==="object"&&e!==null}function E(e){return y(e)&&z(e)==="[object Date]"}function g(e){return y(e)&&(z(e)==="[object Error]"||e instanceof Error)}function O(e){return typeof e==="function"}function te(e){return e===null||typeof e==="boolean"||typeof e==="number"||typeof e==="string"||typeof e==="symbol"||typeof e>"u"}function re(e){return e instanceof Buffer}function z(e){return Object.prototype.toString.call(e)}function j(e){return e<10?"0"+e.toString(10):e.toString(10)}var Z=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function I(){var e=new Date,t=[j(e.getHours()),j(e.getMinutes()),j(e.getSeconds())].join(":");return[e.getDate(),Z[e.getMonth()],t].join(" ")}function L(...e){console.log("%s - %s",I(),D.apply(null,e))}function V(e,t){if(t)e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function T(e,t){if(!t||!y(t))return e;var n=Object.keys(t),r=n.length;while(r--)e[n[r]]=t[n[r]];return e}function k(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var W=((e)=>(e.custom=Symbol.for("nodejs.util.promisify.custom"),e))(function(e){if(typeof e!=="function")throw TypeError('The "original" argument must be of type Function');if(kCustomPromisifiedSymbol&&e[kCustomPromisifiedSymbol]){var t=e[kCustomPromisifiedSymbol];if(typeof t!=="function")throw TypeError('The "nodejs.util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,kCustomPromisifiedSymbol,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(...n){var r,s,o=new Promise(function(i,f){r=i,s=f});n.push(function(i,f){if(i)s(i);else r(f)});try{e.apply(this,n)}catch(i){s(i)}return o}if(Object.setPrototypeOf(t,Object.getPrototypeOf(e)),kCustomPromisifiedSymbol)Object.defineProperty(t,kCustomPromisifiedSymbol,{value:t,enumerable:!1,writable:!1,configurable:!0});return Object.defineProperties(t,Object.getOwnPropertyDescriptors(e))});function N(e,t){if(!e){var n=Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}function q(e){if(typeof e!=="function")throw TypeError('The "original" argument must be of type Function');function t(...n){var r=n.pop();if(typeof r!=="function")throw TypeError("The last argument must be of type Function");var s=this,o=function(...i){return r.apply(s,...i)};e.apply(this,n).then(function(i){process.nextTick(o.bind(null,null,i))},function(i){process.nextTick(N.bind(null,i,o))})}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)),t}var{TextEncoder:K,TextDecoder:Q}=globalThis,ne={TextEncoder:K,TextDecoder:Q,promisify:W,log:L,inherits:V,_extend:T,callbackifyOnRejected:N,callbackify:q};export{v as types,W as promisify,L as log,p as isUndefined,ee as isSymbol,P as isString,h as isRegExp,te as isPrimitive,y as isObject,G as isNumber,x as isNullOrUndefined,w as isNull,O as isFunction,g as isError,E as isDate,re as isBuffer,C as isBoolean,M as isArray,l as inspect,V as inherits,D as format,X as deprecate,ne as default,Y as debuglog,N as callbackifyOnRejected,q as callbackify,T as _extend,K as TextEncoder,Q as TextDecoder};