@timeback/caliper 0.1.1 → 0.1.2

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
@@ -34,6 +34,8 @@ const result = await caliper.events.sendActivity('https://myapp.example.com/sens
34
34
  subject: 'Math',
35
35
  app: { name: 'My Learning App' },
36
36
  },
37
+ attempt: 1,
38
+ generatedExtensions: { pctCompleteApp: 67 },
37
39
  metrics: [
38
40
  { type: 'totalQuestions', value: 10 },
39
41
  { type: 'correctQuestions', value: 8 },
@@ -138,6 +140,8 @@ const activityEvent = createActivityEvent({
138
140
  actor: { ... },
139
141
  object: { ... },
140
142
  metrics: [{ type: 'correctQuestions', value: 8 }],
143
+ attempt: 2,
144
+ generatedExtensions: { pctCompleteApp: 67 },
141
145
  })
142
146
 
143
147
  const timeSpentEvent = createTimeSpentEvent({
package/dist/index.js CHANGED
@@ -487,6 +487,9 @@ var BEYONDAI_PATHS = {
487
487
  },
488
488
  edubridge: {
489
489
  base: "/edubridge"
490
+ },
491
+ powerpath: {
492
+ base: "/powerpath"
490
493
  }
491
494
  };
492
495
  var LEARNWITHAI_PATHS = {
@@ -502,7 +505,8 @@ var LEARNWITHAI_PATHS = {
502
505
  gradebook: "/gradebook/1.0",
503
506
  resources: "/resources/1.0"
504
507
  },
505
- edubridge: null
508
+ edubridge: null,
509
+ powerpath: null
506
510
  };
507
511
  var PLATFORM_PATHS = {
508
512
  BEYOND_AI: BEYONDAI_PATHS,
@@ -524,7 +528,8 @@ function resolvePathProfiles(pathProfile, customPaths) {
524
528
  return {
525
529
  caliper: customPaths?.caliper ?? basePaths.caliper,
526
530
  oneroster: customPaths?.oneroster ?? basePaths.oneroster,
527
- edubridge: customPaths?.edubridge ?? basePaths.edubridge
531
+ edubridge: customPaths?.edubridge ?? basePaths.edubridge,
532
+ powerpath: customPaths?.powerpath ?? basePaths.powerpath
528
533
  };
529
534
  }
530
535
 
@@ -560,6 +565,10 @@ class TimebackProvider {
560
565
  baseUrl: platformEndpoints.api[env],
561
566
  authUrl: this.authUrl
562
567
  },
568
+ powerpath: {
569
+ baseUrl: platformEndpoints.api[env],
570
+ authUrl: this.authUrl
571
+ },
563
572
  caliper: {
564
573
  baseUrl: platformEndpoints.caliper[env],
565
574
  authUrl: this.authUrl
@@ -576,6 +585,7 @@ class TimebackProvider {
576
585
  this.endpoints = {
577
586
  oneroster: { baseUrl: config.baseUrl, authUrl: this.authUrl },
578
587
  edubridge: { baseUrl: config.baseUrl, authUrl: this.authUrl },
588
+ powerpath: { baseUrl: config.baseUrl, authUrl: this.authUrl },
579
589
  caliper: { baseUrl: config.baseUrl, authUrl: this.authUrl },
580
590
  qti: { baseUrl: config.baseUrl, authUrl: this.authUrl }
581
591
  };
@@ -15103,6 +15113,47 @@ var OneRosterUserRole = exports_external.enum([
15103
15113
  "teacher"
15104
15114
  ]);
15105
15115
  var EnrollmentRole = exports_external.enum(["administrator", "proctor", "student", "teacher"]);
15116
+ var ResourceType = exports_external.enum([
15117
+ "qti",
15118
+ "text",
15119
+ "audio",
15120
+ "video",
15121
+ "interactive",
15122
+ "visual",
15123
+ "course-material",
15124
+ "assessment-bank"
15125
+ ]);
15126
+ var QtiSubType = exports_external.enum(["qti-test", "qti-question", "qti-stimulus", "qti-test-bank"]);
15127
+ var CourseMaterialSubType = exports_external.enum(["unit", "course", "resource-collection"]);
15128
+ var QuestionType = exports_external.enum([
15129
+ "choice",
15130
+ "order",
15131
+ "associate",
15132
+ "match",
15133
+ "hotspot",
15134
+ "hottext",
15135
+ "select-point",
15136
+ "graphic-order",
15137
+ "graphic-associate",
15138
+ "graphic-gap-match",
15139
+ "text-entry",
15140
+ "extended-text",
15141
+ "inline-choice",
15142
+ "upload",
15143
+ "slider",
15144
+ "drawing",
15145
+ "media",
15146
+ "custom"
15147
+ ]);
15148
+ var Difficulty = exports_external.enum(["easy", "medium", "hard"]);
15149
+ var LearningObjectiveSetSchema = exports_external.array(exports_external.object({
15150
+ source: exports_external.string(),
15151
+ learningObjectiveIds: exports_external.array(exports_external.string())
15152
+ }));
15153
+ var FastFailConfigSchema = exports_external.object({
15154
+ consecutive_failures: exports_external.number().int().min(1).optional(),
15155
+ stagnation_limit: exports_external.number().int().min(1).optional()
15156
+ }).optional();
15106
15157
  var LessonType = exports_external.enum(["powerpath-100", "quiz", "test-out", "placement", "unit-test", "alpha-read-article"]).nullable();
15107
15158
  var IMSErrorResponse = exports_external.object({
15108
15159
  imsx_codeMajor: exports_external.enum(["failure", "success"]),
@@ -15179,7 +15230,11 @@ var ActivityCompletedInput = exports_external.object({
15179
15230
  eventTime: IsoDateTimeString.optional(),
15180
15231
  metricsId: exports_external.string().optional(),
15181
15232
  id: exports_external.string().optional(),
15182
- extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15233
+ extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
15234
+ attempt: exports_external.number().int().min(1).optional(),
15235
+ generatedExtensions: exports_external.object({
15236
+ pctCompleteApp: exports_external.number().optional()
15237
+ }).loose().optional()
15183
15238
  }).strict();
15184
15239
  var TimeSpentInput = exports_external.object({
15185
15240
  actor: TimebackUser,
@@ -15295,16 +15350,59 @@ var CourseDefaults = exports_external.object({
15295
15350
  level: exports_external.string().optional(),
15296
15351
  metadata: CourseMetadata.optional()
15297
15352
  });
15353
+ var CourseEnvOverrides = exports_external.object({
15354
+ level: exports_external.string().optional(),
15355
+ sensor: exports_external.string().url().optional(),
15356
+ launchUrl: exports_external.string().url().optional(),
15357
+ metadata: CourseMetadata.optional()
15358
+ });
15359
+ var CourseOverrides = exports_external.object({
15360
+ staging: CourseEnvOverrides.optional(),
15361
+ production: CourseEnvOverrides.optional()
15362
+ });
15298
15363
  var CourseConfig = CourseDefaults.extend({
15299
15364
  subject: TimebackSubject,
15300
- grade: TimebackGrade,
15301
- ids: CourseIds.nullable().optional()
15365
+ grade: TimebackGrade.optional(),
15366
+ ids: CourseIds.nullable().optional(),
15367
+ sensor: exports_external.string().url().optional(),
15368
+ launchUrl: exports_external.string().url().optional(),
15369
+ overrides: CourseOverrides.optional()
15302
15370
  });
15303
15371
  var TimebackConfig = exports_external.object({
15304
15372
  name: exports_external.string().min(1, "App name is required"),
15305
15373
  defaults: CourseDefaults.optional(),
15306
15374
  courses: exports_external.array(CourseConfig).min(1, "At least one course is required"),
15307
- sensors: exports_external.array(exports_external.string().url()).optional()
15375
+ sensor: exports_external.string().url().optional(),
15376
+ launchUrl: exports_external.string().url().optional()
15377
+ }).refine((config2) => {
15378
+ return config2.courses.every((c) => c.grade !== undefined || c.courseCode !== undefined);
15379
+ }, {
15380
+ message: "Each course must have either a grade or a courseCode",
15381
+ path: ["courses"]
15382
+ }).refine((config2) => {
15383
+ const withGrade = config2.courses.filter((c) => c.grade !== undefined);
15384
+ const keys = withGrade.map((c) => `${c.subject}:${c.grade}`);
15385
+ return new Set(keys).size === keys.length;
15386
+ }, {
15387
+ message: "Duplicate (subject, grade) pair found; each must be unique",
15388
+ path: ["courses"]
15389
+ }).refine((config2) => {
15390
+ const withCode = config2.courses.filter((c) => c.courseCode !== undefined);
15391
+ const codes = withCode.map((c) => c.courseCode);
15392
+ return new Set(codes).size === codes.length;
15393
+ }, {
15394
+ message: "Duplicate courseCode found; each must be unique",
15395
+ path: ["courses"]
15396
+ }).refine((config2) => {
15397
+ return config2.courses.every((c) => c.sensor !== undefined || config2.sensor !== undefined);
15398
+ }, {
15399
+ message: "Each course must have an effective sensor; set a top-level `sensor` or per-course `sensor`",
15400
+ path: ["courses"]
15401
+ }).refine((config2) => {
15402
+ return config2.courses.every((c) => c.launchUrl !== undefined || config2.launchUrl !== undefined);
15403
+ }, {
15404
+ message: "Each course must have an effective launchUrl; set a top-level `launchUrl` or per-course `launchUrl`",
15405
+ path: ["courses"]
15308
15406
  });
15309
15407
  // ../../types/src/zod/edubridge.ts
15310
15408
  var EdubridgeDateString = exports_external.union([IsoDateString, IsoDateTimeString]);
@@ -15555,20 +15653,45 @@ var OneRosterScoreScaleCreateInput = exports_external.object({
15555
15653
  }).strict();
15556
15654
  var OneRosterAssessmentLineItemCreateInput = exports_external.object({
15557
15655
  sourcedId: NonEmptyString2.optional(),
15656
+ status: Status.optional(),
15657
+ dateLastModified: IsoDateTimeString.optional(),
15558
15658
  title: NonEmptyString2.describe("title must be a non-empty string"),
15559
- class: Ref,
15560
- school: Ref,
15561
- category: Ref,
15562
- assignDate: OneRosterDateString,
15563
- dueDate: OneRosterDateString,
15564
- status: Status,
15659
+ description: exports_external.string().nullable().optional(),
15660
+ class: Ref.nullable().optional(),
15661
+ parentAssessmentLineItem: Ref.nullable().optional(),
15662
+ scoreScale: Ref.nullable().optional(),
15663
+ resultValueMin: exports_external.number().nullable().optional(),
15664
+ resultValueMax: exports_external.number().nullable().optional(),
15665
+ component: Ref.nullable().optional(),
15666
+ componentResource: Ref.nullable().optional(),
15667
+ learningObjectiveSet: exports_external.array(exports_external.object({
15668
+ source: exports_external.string(),
15669
+ learningObjectiveIds: exports_external.array(exports_external.string())
15670
+ })).optional().nullable(),
15671
+ course: Ref.nullable().optional(),
15565
15672
  metadata: Metadata
15566
15673
  }).strict();
15674
+ var LearningObjectiveResult = exports_external.object({
15675
+ learningObjectiveId: exports_external.string(),
15676
+ score: exports_external.number().optional(),
15677
+ textScore: exports_external.string().optional()
15678
+ });
15679
+ var LearningObjectiveScoreSetSchema = exports_external.array(exports_external.object({
15680
+ source: exports_external.string(),
15681
+ learningObjectiveResults: exports_external.array(LearningObjectiveResult)
15682
+ }));
15567
15683
  var OneRosterAssessmentResultCreateInput = exports_external.object({
15568
15684
  sourcedId: NonEmptyString2.optional(),
15569
- lineItem: Ref,
15685
+ status: Status.optional(),
15686
+ dateLastModified: IsoDateTimeString.optional(),
15687
+ metadata: Metadata,
15688
+ assessmentLineItem: Ref,
15570
15689
  student: Ref,
15571
- scoreDate: OneRosterDateString,
15690
+ score: exports_external.number().nullable().optional(),
15691
+ textScore: exports_external.string().nullable().optional(),
15692
+ scoreDate: exports_external.string().datetime(),
15693
+ scoreScale: Ref.nullable().optional(),
15694
+ scorePercentile: exports_external.number().nullable().optional(),
15572
15695
  scoreStatus: exports_external.enum([
15573
15696
  "exempt",
15574
15697
  "fully graded",
@@ -15576,9 +15699,12 @@ var OneRosterAssessmentResultCreateInput = exports_external.object({
15576
15699
  "partially graded",
15577
15700
  "submitted"
15578
15701
  ]),
15579
- score: exports_external.string().optional(),
15580
- status: Status,
15581
- metadata: Metadata
15702
+ comment: exports_external.string().nullable().optional(),
15703
+ learningObjectiveSet: LearningObjectiveScoreSetSchema.nullable().optional(),
15704
+ inProgress: exports_external.string().nullable().optional(),
15705
+ incomplete: exports_external.string().nullable().optional(),
15706
+ late: exports_external.string().nullable().optional(),
15707
+ missing: exports_external.string().nullable().optional()
15582
15708
  }).strict();
15583
15709
  var OneRosterOrgCreateInput = exports_external.object({
15584
15710
  sourcedId: NonEmptyString2.optional(),
@@ -15646,6 +15772,75 @@ var OneRosterCredentialInput = exports_external.object({
15646
15772
  var OneRosterDemographicsCreateInput = exports_external.object({
15647
15773
  sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string")
15648
15774
  }).loose();
15775
+ var CommonResourceMetadataSchema = exports_external.object({
15776
+ type: ResourceType,
15777
+ subject: TimebackSubject.nullish(),
15778
+ grades: exports_external.array(TimebackGrade).nullish(),
15779
+ language: exports_external.string().nullish(),
15780
+ xp: exports_external.number().nullish(),
15781
+ url: exports_external.url().nullish(),
15782
+ keywords: exports_external.array(exports_external.string()).nullish(),
15783
+ learningObjectiveSet: LearningObjectiveSetSchema.nullish(),
15784
+ lessonType: exports_external.string().nullish()
15785
+ }).passthrough();
15786
+ var QtiMetadataSchema = CommonResourceMetadataSchema.extend({
15787
+ type: exports_external.literal("qti"),
15788
+ subType: QtiSubType,
15789
+ questionType: QuestionType.optional(),
15790
+ difficulty: Difficulty.optional()
15791
+ });
15792
+ var TextMetadataSchema = CommonResourceMetadataSchema.extend({
15793
+ type: exports_external.literal("text"),
15794
+ format: exports_external.string(),
15795
+ author: exports_external.string().optional(),
15796
+ pageCount: exports_external.number().optional()
15797
+ });
15798
+ var AudioMetadataSchema = CommonResourceMetadataSchema.extend({
15799
+ type: exports_external.literal("audio"),
15800
+ duration: exports_external.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),
15801
+ format: exports_external.string(),
15802
+ speaker: exports_external.string().optional()
15803
+ });
15804
+ var VideoMetadataSchema = CommonResourceMetadataSchema.extend({
15805
+ type: exports_external.literal("video"),
15806
+ duration: exports_external.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),
15807
+ captionsAvailable: exports_external.boolean().optional(),
15808
+ format: exports_external.string()
15809
+ });
15810
+ var InteractiveMetadataSchema = CommonResourceMetadataSchema.extend({
15811
+ type: exports_external.literal("interactive"),
15812
+ launchUrl: exports_external.url().optional(),
15813
+ toolProvider: exports_external.string().optional(),
15814
+ instructionalMethod: exports_external.string().optional(),
15815
+ courseIdOnFail: exports_external.string().nullable().optional(),
15816
+ fail_fast: FastFailConfigSchema
15817
+ });
15818
+ var VisualMetadataSchema = CommonResourceMetadataSchema.extend({
15819
+ type: exports_external.literal("visual"),
15820
+ format: exports_external.string(),
15821
+ resolution: exports_external.string().optional()
15822
+ });
15823
+ var CourseMaterialMetadataSchema = CommonResourceMetadataSchema.extend({
15824
+ type: exports_external.literal("course-material"),
15825
+ subType: CourseMaterialSubType,
15826
+ author: exports_external.string().optional(),
15827
+ format: exports_external.string(),
15828
+ instructionalMethod: exports_external.string().optional()
15829
+ });
15830
+ var AssessmentBankMetadataSchema = CommonResourceMetadataSchema.extend({
15831
+ type: exports_external.literal("assessment-bank"),
15832
+ resources: exports_external.array(exports_external.string())
15833
+ });
15834
+ var ResourceMetadataSchema = exports_external.discriminatedUnion("type", [
15835
+ QtiMetadataSchema,
15836
+ TextMetadataSchema,
15837
+ AudioMetadataSchema,
15838
+ VideoMetadataSchema,
15839
+ InteractiveMetadataSchema,
15840
+ VisualMetadataSchema,
15841
+ CourseMaterialMetadataSchema,
15842
+ AssessmentBankMetadataSchema
15843
+ ]);
15649
15844
  var OneRosterResourceCreateInput = exports_external.object({
15650
15845
  sourcedId: NonEmptyString2.optional(),
15651
15846
  title: NonEmptyString2.describe("title must be a non-empty string"),
@@ -15655,7 +15850,7 @@ var OneRosterResourceCreateInput = exports_external.object({
15655
15850
  vendorId: exports_external.string().optional(),
15656
15851
  applicationId: exports_external.string().optional(),
15657
15852
  status: Status.optional(),
15658
- metadata: Metadata
15853
+ metadata: ResourceMetadataSchema.nullable().optional()
15659
15854
  }).strict();
15660
15855
  var CourseStructureItem = exports_external.object({
15661
15856
  url: NonEmptyString2.describe("courseStructure.url must be a non-empty string"),
@@ -15680,6 +15875,268 @@ var OneRosterBulkResultItem = exports_external.object({
15680
15875
  student: Ref
15681
15876
  }).loose();
15682
15877
  var OneRosterBulkResultsInput = exports_external.array(OneRosterBulkResultItem).min(1, "results must have at least one item");
15878
+ // ../../types/src/zod/powerpath.ts
15879
+ var NonEmptyString3 = exports_external.string().trim().min(1);
15880
+ var ToolProvider = exports_external.enum(["edulastic", "mastery-track"]);
15881
+ var LessonTypeRequired = exports_external.enum([
15882
+ "powerpath-100",
15883
+ "quiz",
15884
+ "test-out",
15885
+ "placement",
15886
+ "unit-test",
15887
+ "alpha-read-article"
15888
+ ]);
15889
+ var GradeArray = exports_external.array(TimebackGrade);
15890
+ var ResourceMetadata = exports_external.record(exports_external.string(), exports_external.unknown()).optional();
15891
+ var ExternalTestBase = exports_external.object({
15892
+ courseId: NonEmptyString3,
15893
+ lessonTitle: NonEmptyString3.optional(),
15894
+ launchUrl: exports_external.url().optional(),
15895
+ toolProvider: ToolProvider,
15896
+ unitTitle: NonEmptyString3.optional(),
15897
+ courseComponentSourcedId: NonEmptyString3.optional(),
15898
+ vendorId: NonEmptyString3.optional(),
15899
+ description: NonEmptyString3.optional(),
15900
+ resourceMetadata: ResourceMetadata.nullable().optional(),
15901
+ grades: GradeArray
15902
+ });
15903
+ var ExternalTestOut = ExternalTestBase.extend({
15904
+ lessonType: exports_external.literal("test-out"),
15905
+ xp: exports_external.number()
15906
+ });
15907
+ var ExternalPlacement = ExternalTestBase.extend({
15908
+ lessonType: exports_external.literal("placement"),
15909
+ courseIdOnFail: NonEmptyString3.optional(),
15910
+ xp: exports_external.number().optional()
15911
+ });
15912
+ var InternalTestBase = exports_external.object({
15913
+ courseId: NonEmptyString3,
15914
+ lessonType: LessonTypeRequired,
15915
+ lessonTitle: NonEmptyString3.optional(),
15916
+ unitTitle: NonEmptyString3.optional(),
15917
+ courseComponentSourcedId: NonEmptyString3.optional(),
15918
+ resourceMetadata: ResourceMetadata.nullable().optional(),
15919
+ xp: exports_external.number().optional(),
15920
+ grades: GradeArray.optional(),
15921
+ courseIdOnFail: NonEmptyString3.optional()
15922
+ });
15923
+ var PowerPathCreateInternalTestInput = exports_external.union([
15924
+ InternalTestBase.extend({
15925
+ testType: exports_external.literal("qti"),
15926
+ qti: exports_external.object({
15927
+ url: exports_external.url(),
15928
+ title: NonEmptyString3.optional(),
15929
+ metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15930
+ })
15931
+ }),
15932
+ InternalTestBase.extend({
15933
+ testType: exports_external.literal("assessment-bank"),
15934
+ assessmentBank: exports_external.object({
15935
+ resources: exports_external.array(exports_external.object({
15936
+ url: exports_external.url(),
15937
+ title: NonEmptyString3.optional(),
15938
+ metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15939
+ }))
15940
+ })
15941
+ })
15942
+ ]);
15943
+ var PowerPathCreateNewAttemptInput = exports_external.object({
15944
+ student: NonEmptyString3,
15945
+ lesson: NonEmptyString3
15946
+ });
15947
+ var PowerPathFinalStudentAssessmentResponseInput = exports_external.object({
15948
+ student: NonEmptyString3,
15949
+ lesson: NonEmptyString3
15950
+ });
15951
+ var PowerPathLessonPlansCreateInput = exports_external.object({
15952
+ courseId: NonEmptyString3,
15953
+ userId: NonEmptyString3,
15954
+ classId: NonEmptyString3.optional()
15955
+ });
15956
+ var LessonPlanTarget = exports_external.object({
15957
+ type: exports_external.enum(["component", "resource"]),
15958
+ id: NonEmptyString3
15959
+ });
15960
+ var PowerPathLessonPlanOperationInput = exports_external.union([
15961
+ exports_external.object({
15962
+ type: exports_external.literal("set-skipped"),
15963
+ payload: exports_external.object({
15964
+ target: LessonPlanTarget,
15965
+ value: exports_external.boolean()
15966
+ })
15967
+ }),
15968
+ exports_external.object({
15969
+ type: exports_external.literal("add-custom-resource"),
15970
+ payload: exports_external.object({
15971
+ resource_id: NonEmptyString3,
15972
+ parent_component_id: NonEmptyString3,
15973
+ skipped: exports_external.boolean().optional()
15974
+ })
15975
+ }),
15976
+ exports_external.object({
15977
+ type: exports_external.literal("move-item-before"),
15978
+ payload: exports_external.object({
15979
+ target: LessonPlanTarget,
15980
+ reference_id: NonEmptyString3
15981
+ })
15982
+ }),
15983
+ exports_external.object({
15984
+ type: exports_external.literal("move-item-after"),
15985
+ payload: exports_external.object({
15986
+ target: LessonPlanTarget,
15987
+ reference_id: NonEmptyString3
15988
+ })
15989
+ }),
15990
+ exports_external.object({
15991
+ type: exports_external.literal("move-item-to-start"),
15992
+ payload: exports_external.object({
15993
+ target: LessonPlanTarget
15994
+ })
15995
+ }),
15996
+ exports_external.object({
15997
+ type: exports_external.literal("move-item-to-end"),
15998
+ payload: exports_external.object({
15999
+ target: LessonPlanTarget
16000
+ })
16001
+ }),
16002
+ exports_external.object({
16003
+ type: exports_external.literal("change-item-parent"),
16004
+ payload: exports_external.object({
16005
+ target: LessonPlanTarget,
16006
+ new_parent_id: NonEmptyString3,
16007
+ position: exports_external.enum(["start", "end"]).optional()
16008
+ })
16009
+ })
16010
+ ]);
16011
+ var PowerPathLessonPlanOperationsInput = exports_external.object({
16012
+ operation: exports_external.array(PowerPathLessonPlanOperationInput),
16013
+ reason: NonEmptyString3.optional()
16014
+ });
16015
+ var PowerPathLessonPlanUpdateStudentItemResponseInput = exports_external.object({
16016
+ studentId: NonEmptyString3,
16017
+ componentResourceId: NonEmptyString3,
16018
+ result: exports_external.object({
16019
+ status: exports_external.enum(["active", "tobedeleted"]),
16020
+ metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
16021
+ score: exports_external.number().optional(),
16022
+ textScore: NonEmptyString3.optional(),
16023
+ scoreDate: NonEmptyString3,
16024
+ scorePercentile: exports_external.number().optional(),
16025
+ scoreStatus: ScoreStatus,
16026
+ comment: NonEmptyString3.optional(),
16027
+ learningObjectiveSet: exports_external.array(exports_external.object({
16028
+ source: NonEmptyString3,
16029
+ learningObjectiveResults: exports_external.array(exports_external.object({
16030
+ learningObjectiveId: NonEmptyString3,
16031
+ score: exports_external.number().optional(),
16032
+ textScore: NonEmptyString3.optional()
16033
+ }))
16034
+ })).optional(),
16035
+ inProgress: NonEmptyString3.optional(),
16036
+ incomplete: NonEmptyString3.optional(),
16037
+ late: NonEmptyString3.optional(),
16038
+ missing: NonEmptyString3.optional()
16039
+ })
16040
+ });
16041
+ var PowerPathMakeExternalTestAssignmentInput = exports_external.object({
16042
+ student: NonEmptyString3,
16043
+ lesson: NonEmptyString3,
16044
+ applicationName: NonEmptyString3.optional(),
16045
+ testId: NonEmptyString3.optional(),
16046
+ skipCourseEnrollment: exports_external.boolean().optional()
16047
+ });
16048
+ var PowerPathPlacementResetUserPlacementInput = exports_external.object({
16049
+ student: NonEmptyString3,
16050
+ subject: TimebackSubject
16051
+ });
16052
+ var PowerPathResetAttemptInput = exports_external.object({
16053
+ student: NonEmptyString3,
16054
+ lesson: NonEmptyString3
16055
+ });
16056
+ var PowerPathScreeningResetSessionInput = exports_external.object({
16057
+ userId: NonEmptyString3
16058
+ });
16059
+ var PowerPathScreeningAssignTestInput = exports_external.object({
16060
+ userId: NonEmptyString3,
16061
+ subject: exports_external.enum(["Math", "Reading", "Language", "Science"])
16062
+ });
16063
+ var PowerPathTestAssignmentsCreateInput = exports_external.object({
16064
+ student: NonEmptyString3,
16065
+ subject: TimebackSubject,
16066
+ grade: TimebackGrade,
16067
+ testName: NonEmptyString3.optional()
16068
+ });
16069
+ var PowerPathTestAssignmentsUpdateInput = exports_external.object({
16070
+ testName: NonEmptyString3
16071
+ });
16072
+ var PowerPathTestAssignmentItemInput = exports_external.object({
16073
+ student: NonEmptyString3,
16074
+ subject: TimebackSubject,
16075
+ grade: TimebackGrade,
16076
+ testName: NonEmptyString3.optional()
16077
+ });
16078
+ var PowerPathTestAssignmentsBulkInput = exports_external.object({
16079
+ items: exports_external.array(PowerPathTestAssignmentItemInput)
16080
+ });
16081
+ var PowerPathTestAssignmentsImportInput = exports_external.object({
16082
+ spreadsheetUrl: exports_external.url(),
16083
+ sheet: NonEmptyString3
16084
+ });
16085
+ var PowerPathTestAssignmentsListParams = exports_external.object({
16086
+ student: NonEmptyString3,
16087
+ status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
16088
+ subject: NonEmptyString3.optional(),
16089
+ grade: TimebackGrade.optional(),
16090
+ limit: exports_external.number().int().positive().max(3000).optional(),
16091
+ offset: exports_external.number().int().nonnegative().optional()
16092
+ });
16093
+ var PowerPathTestAssignmentsAdminParams = exports_external.object({
16094
+ student: NonEmptyString3.optional(),
16095
+ status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
16096
+ subject: NonEmptyString3.optional(),
16097
+ grade: TimebackGrade.optional(),
16098
+ limit: exports_external.number().int().positive().max(3000).optional(),
16099
+ offset: exports_external.number().int().nonnegative().optional()
16100
+ });
16101
+ var PowerPathUpdateStudentQuestionResponseInput = exports_external.object({
16102
+ student: NonEmptyString3,
16103
+ question: NonEmptyString3,
16104
+ response: exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)]).optional(),
16105
+ responses: exports_external.record(exports_external.string(), exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)])).optional(),
16106
+ lesson: NonEmptyString3
16107
+ });
16108
+ var PowerPathGetAssessmentProgressParams = exports_external.object({
16109
+ student: NonEmptyString3,
16110
+ lesson: NonEmptyString3,
16111
+ attempt: exports_external.number().int().positive().optional()
16112
+ });
16113
+ var PowerPathGetNextQuestionParams = exports_external.object({
16114
+ student: NonEmptyString3,
16115
+ lesson: NonEmptyString3
16116
+ });
16117
+ var PowerPathGetAttemptsParams = exports_external.object({
16118
+ student: NonEmptyString3,
16119
+ lesson: NonEmptyString3
16120
+ });
16121
+ var PowerPathTestOutParams = exports_external.object({
16122
+ student: NonEmptyString3,
16123
+ lesson: NonEmptyString3.optional(),
16124
+ finalized: exports_external.boolean().optional(),
16125
+ toolProvider: NonEmptyString3.optional(),
16126
+ attempt: exports_external.number().int().positive().optional()
16127
+ });
16128
+ var PowerPathImportExternalTestAssignmentResultsParams = exports_external.object({
16129
+ student: NonEmptyString3,
16130
+ lesson: NonEmptyString3,
16131
+ applicationName: NonEmptyString3.optional()
16132
+ });
16133
+ var PowerPathPlacementQueryParams = exports_external.object({
16134
+ student: NonEmptyString3,
16135
+ subject: TimebackSubject
16136
+ });
16137
+ var PowerPathSyllabusQueryParams = exports_external.object({
16138
+ status: exports_external.enum(["active", "tobedeleted"]).optional()
16139
+ });
15683
16140
  // ../../types/src/zod/qti.ts
15684
16141
  var QtiAssessmentItemType = exports_external.enum([
15685
16142
  "choice",
@@ -15946,7 +16403,9 @@ function createActivityEvent(input) {
15946
16403
  generated: {
15947
16404
  id: metricsId,
15948
16405
  type: "TimebackActivityMetricsCollection",
15949
- items: input.metrics
16406
+ items: input.metrics,
16407
+ ...input.attempt === undefined ? {} : { attempt: input.attempt },
16408
+ ...input.generatedExtensions ? { extensions: input.generatedExtensions } : {}
15950
16409
  },
15951
16410
  extensions: input.extensions
15952
16411
  };
@@ -1 +1 @@
1
- {"version":3,"file":"event-factories.d.ts","sourceRoot":"","sources":["../../src/lib/event-factories.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACX,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,MAAM,UAAU,CAAA;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,sBAAsB,GAAG,sBAAsB,CAoBzF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAoB1E"}
1
+ {"version":3,"file":"event-factories.d.ts","sourceRoot":"","sources":["../../src/lib/event-factories.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACX,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,MAAM,UAAU,CAAA;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,sBAAsB,GAAG,sBAAsB,CAsBzF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAoB1E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timeback/caliper",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Caliper Analytics client SDK for Timeback",
5
5
  "type": "module",
6
6
  "exports": {