@timeback/caliper 0.1.7-beta.20260309185602 → 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/dist/{chunk-xkrn9zda.js → chunk-m7qcd4j8.js} +14 -6
- package/dist/{chunk-9wzc4pgh.js → chunk-mr61jp0f.js} +2 -1
- package/dist/constants.d.ts +4 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/errors.js +1 -1
- package/dist/factory.d.ts.map +1 -1
- package/dist/index.d.ts +348 -109
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +473 -335
- package/dist/lib/event-factories.d.ts +68 -2
- package/dist/lib/event-factories.d.ts.map +1 -1
- package/dist/lib/index.d.ts +3 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/lwai-event-transformer.d.ts.map +1 -1
- package/dist/public-types.d.ts +110 -13
- package/dist/public-types.d.ts.map +1 -1
- package/dist/public-types.js +1 -1
- package/dist/resources/events.d.ts +75 -3
- package/dist/resources/events.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Event Factory Functions
|
|
3
3
|
*
|
|
4
|
-
* Pure factory functions for creating
|
|
4
|
+
* Pure factory functions for creating Caliper events.
|
|
5
5
|
* Use these when you want to batch multiple events into a single envelope.
|
|
6
6
|
*/
|
|
7
|
-
import type { ActivityCompletedEvent, ActivityCompletedInput, TimeSpentEvent, TimeSpentInput } from '../types';
|
|
7
|
+
import type { ActivityCompletedEvent, ActivityCompletedInput, AssessmentItemEvent, QuestionAnsweredInput, QuestionGradedInput, QuestionGradeEvent, QuestionSeenInput, TimeSpentEvent, TimeSpentInput } from '../types';
|
|
8
8
|
/**
|
|
9
9
|
* Create an ActivityEvent from input.
|
|
10
10
|
*
|
|
@@ -64,4 +64,70 @@ export declare function createActivityEvent(input: ActivityCompletedInput): Acti
|
|
|
64
64
|
* ```
|
|
65
65
|
*/
|
|
66
66
|
export declare function createTimeSpentEvent(input: TimeSpentInput): TimeSpentEvent;
|
|
67
|
+
/**
|
|
68
|
+
* Create a Question Seen event (AssessmentItemEvent.Started).
|
|
69
|
+
*
|
|
70
|
+
* Fired when a question is presented to the student.
|
|
71
|
+
*
|
|
72
|
+
* @param input - Minimal question seen data
|
|
73
|
+
* @returns A fully-formed AssessmentItemEvent ready to send
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* const event = createQuestionSeenEvent({
|
|
78
|
+
* actor: 'urn:uuid:student-123',
|
|
79
|
+
* object: { id: 'urn:uuid:q-456', name: 'What is 2+2?' },
|
|
80
|
+
* edApp: 'https://myapp.example.com',
|
|
81
|
+
* })
|
|
82
|
+
*
|
|
83
|
+
* await client.events.send(sensor, [event])
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export declare function createQuestionSeenEvent(input: QuestionSeenInput): AssessmentItemEvent;
|
|
87
|
+
/**
|
|
88
|
+
* Create a Question Answered event (AssessmentItemEvent.Completed).
|
|
89
|
+
*
|
|
90
|
+
* Fired when a student submits an answer to a question.
|
|
91
|
+
*
|
|
92
|
+
* @param input - Minimal question answered data
|
|
93
|
+
* @returns A fully-formed AssessmentItemEvent ready to send
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* const event = createQuestionAnsweredEvent({
|
|
98
|
+
* actor: 'urn:uuid:student-123',
|
|
99
|
+
* object: { id: 'urn:uuid:q-456', name: 'What is 2+2?' },
|
|
100
|
+
* edApp: 'https://myapp.example.com',
|
|
101
|
+
* generated: {
|
|
102
|
+
* id: 'urn:uuid:response-789',
|
|
103
|
+
* attempt: 'urn:uuid:attempt-101',
|
|
104
|
+
* },
|
|
105
|
+
* })
|
|
106
|
+
*
|
|
107
|
+
* await client.events.send(sensor, [event])
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export declare function createQuestionAnsweredEvent(input: QuestionAnsweredInput): AssessmentItemEvent;
|
|
111
|
+
/**
|
|
112
|
+
* Create a Question Graded event (GradeEvent.Graded).
|
|
113
|
+
*
|
|
114
|
+
* Fired when a question response is scored. The Score entity is auto-filled
|
|
115
|
+
* with `type: "Score"` and `scoreType: "QUESTION_RESULT"`.
|
|
116
|
+
*
|
|
117
|
+
* @param input - Minimal question graded data
|
|
118
|
+
* @returns A fully-formed QuestionGradeEvent ready to send
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* const event = createQuestionGradedEvent({
|
|
123
|
+
* actor: 'urn:uuid:student-123',
|
|
124
|
+
* object: 'urn:uuid:attempt-101',
|
|
125
|
+
* generated: { scoreGiven: 1, maxScore: 1, attempt: 'urn:uuid:attempt-101' },
|
|
126
|
+
* edApp: 'https://myapp.example.com',
|
|
127
|
+
* })
|
|
128
|
+
*
|
|
129
|
+
* await client.events.send(sensor, [event])
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
export declare function createQuestionGradedEvent(input: QuestionGradedInput): QuestionGradeEvent;
|
|
67
133
|
//# sourceMappingURL=event-factories.d.ts.map
|
|
@@ -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,CAwBzF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAsB1E"}
|
|
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,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,MAAM,UAAU,CAAA;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,sBAAsB,GAAG,sBAAsB,CAwBzF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAsB1E;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,GAAG,mBAAmB,CAcrF;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,qBAAqB,GAAG,mBAAmB,CAiB7F;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,mBAAmB,GAAG,kBAAkB,CAsBxF"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -4,4 +4,7 @@
|
|
|
4
4
|
* @internal
|
|
5
5
|
*/
|
|
6
6
|
export { Transport } from './transport';
|
|
7
|
+
export { Paginator } from './pagination';
|
|
8
|
+
export { createActivityEvent, createQuestionAnsweredEvent, createQuestionGradedEvent, createQuestionSeenEvent, createTimeSpentEvent, } from './event-factories';
|
|
9
|
+
export { LwaiEventTransformer } from './lwai-event-transformer';
|
|
7
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EACN,mBAAmB,EACnB,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lwai-event-transformer.d.ts","sourceRoot":"","sources":["../../src/lib/lwai-event-transformer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"lwai-event-transformer.d.ts","sourceRoot":"","sources":["../../src/lib/lwai-event-transformer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AA4BhD;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAC5D;;;;;OAKG;IACH,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASpE;CACD"}
|
package/dist/public-types.d.ts
CHANGED
|
@@ -465,23 +465,28 @@ type CaliperProfile =
|
|
|
465
465
|
| 'TimebackProfile'
|
|
466
466
|
|
|
467
467
|
/**
|
|
468
|
-
* Base Caliper entity
|
|
468
|
+
* Base Caliper entity representation.
|
|
469
|
+
*
|
|
470
|
+
* Many Caliper fields can be provided either as an IRI string or as an
|
|
471
|
+
* object-shaped entity, so the shared protocol model keeps this flexible.
|
|
469
472
|
*/
|
|
470
473
|
type CaliperEntity = string | { [key: string]: unknown }
|
|
471
474
|
|
|
472
475
|
/**
|
|
473
|
-
*
|
|
476
|
+
* One actor-object shape for sending events.
|
|
474
477
|
*
|
|
475
|
-
*
|
|
478
|
+
* This is a structured actor object with an `id`, a `type`, and an
|
|
479
|
+
* `extensions` bag containing `email`. It is one valid actor-object shape,
|
|
480
|
+
* not the only representation allowed by `CaliperEvent.actor`.
|
|
476
481
|
*/
|
|
477
482
|
interface CaliperActor {
|
|
478
483
|
/** Unique identifier (IRI format) */
|
|
479
484
|
id: string
|
|
480
485
|
/** Entity type (e.g., 'Person', 'TimebackUser') */
|
|
481
486
|
type: string
|
|
482
|
-
/** Extensions
|
|
487
|
+
/** Extensions carried on this actor-object shape */
|
|
483
488
|
extensions: {
|
|
484
|
-
/** Actor
|
|
489
|
+
/** Actor email on this actor-object shape */
|
|
485
490
|
email: string
|
|
486
491
|
/** Additional extension properties */
|
|
487
492
|
[key: string]: unknown
|
|
@@ -500,8 +505,8 @@ interface CaliperEvent {
|
|
|
500
505
|
id: string
|
|
501
506
|
/** Event type */
|
|
502
507
|
type: string
|
|
503
|
-
/** The agent who initiated the event (string
|
|
504
|
-
actor:
|
|
508
|
+
/** The agent who initiated the event (IRI string, CaliperActor, TimebackUser, or generic entity) */
|
|
509
|
+
actor: CaliperEntity | CaliperActor | TimebackUser
|
|
505
510
|
/** The action or predicate */
|
|
506
511
|
action: string
|
|
507
512
|
/** The object of the interaction */
|
|
@@ -552,8 +557,8 @@ interface CaliperEnvelope {
|
|
|
552
557
|
* Result of sending events.
|
|
553
558
|
*/
|
|
554
559
|
interface SendEventsResult {
|
|
555
|
-
/** Job ID for tracking async processing */
|
|
556
|
-
jobId: string
|
|
560
|
+
/** Job ID for tracking async processing (undefined when the platform does not return one) */
|
|
561
|
+
jobId: string | undefined
|
|
557
562
|
}
|
|
558
563
|
|
|
559
564
|
/**
|
|
@@ -651,6 +656,34 @@ interface ListEventsResult {
|
|
|
651
656
|
pagination: PaginationMeta
|
|
652
657
|
}
|
|
653
658
|
|
|
659
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
660
|
+
// QUESTION EVENT TYPES (Standard Caliper)
|
|
661
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
662
|
+
|
|
663
|
+
/**
|
|
664
|
+
* AssessmentItemEvent (Question Seen / Question Answered).
|
|
665
|
+
*
|
|
666
|
+
* Represents when a student is presented with a question (Started)
|
|
667
|
+
* or submits an answer (Completed).
|
|
668
|
+
*/
|
|
669
|
+
interface AssessmentItemEvent extends CaliperEvent {
|
|
670
|
+
type: 'AssessmentItemEvent'
|
|
671
|
+
action: 'Started' | 'Completed'
|
|
672
|
+
profile: 'AssessmentProfile'
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
/**
|
|
676
|
+
* GradeEvent for question-level grading.
|
|
677
|
+
*
|
|
678
|
+
* Represents when a question response is graded, with a Score entity
|
|
679
|
+
* containing `scoreType: "QUESTION_RESULT"` in the `generated` field.
|
|
680
|
+
*/
|
|
681
|
+
interface QuestionGradeEvent extends CaliperEvent {
|
|
682
|
+
type: 'GradeEvent'
|
|
683
|
+
action: 'Graded'
|
|
684
|
+
profile: 'GradingProfile'
|
|
685
|
+
}
|
|
686
|
+
|
|
654
687
|
/**
|
|
655
688
|
* API Response Types
|
|
656
689
|
*
|
|
@@ -858,18 +891,82 @@ declare const TimeSpentInput = z
|
|
|
858
891
|
.strict()
|
|
859
892
|
type TimeSpentInput = input<typeof TimeSpentInput>
|
|
860
893
|
|
|
894
|
+
declare const QuestionSeenInput = z
|
|
895
|
+
.object({
|
|
896
|
+
/** Actor (Person IRI or entity object with id, type, name, etc.) */
|
|
897
|
+
actor: z.union([z.string(), CaliperActor, TimebackUser]),
|
|
898
|
+
/** AssessmentItem being presented */
|
|
899
|
+
object: AssessmentItemObject,
|
|
900
|
+
/** Application identifier (IRI or entity) */
|
|
901
|
+
edApp: CaliperEntity,
|
|
902
|
+
/** Event identifier (auto-generated if omitted) */
|
|
903
|
+
id: z.string().optional(),
|
|
904
|
+
/** ISO 8601 datetime (defaults to now) */
|
|
905
|
+
eventTime: IsoDateTimeString.optional(),
|
|
906
|
+
/** Session context (IRI or entity) */
|
|
907
|
+
session: CaliperEntity.optional(),
|
|
908
|
+
/** Event-level extensions */
|
|
909
|
+
extensions: z.record(z.string(), z.unknown()).optional(),
|
|
910
|
+
})
|
|
911
|
+
.strict()
|
|
912
|
+
type QuestionSeenInput = input<typeof QuestionSeenInput>
|
|
913
|
+
|
|
914
|
+
declare const QuestionAnsweredInput = z
|
|
915
|
+
.object({
|
|
916
|
+
/** Actor (Person IRI or entity object with id, type, name, etc.) */
|
|
917
|
+
actor: z.union([z.string(), CaliperActor, TimebackUser]),
|
|
918
|
+
/** AssessmentItem being answered */
|
|
919
|
+
object: AssessmentItemObject,
|
|
920
|
+
/** Application identifier (IRI or entity) */
|
|
921
|
+
edApp: CaliperEntity,
|
|
922
|
+
/** Response entity with optional attempt and timing */
|
|
923
|
+
generated: ResponseGenerated.optional(),
|
|
924
|
+
/** Event identifier (auto-generated if omitted) */
|
|
925
|
+
id: z.string().optional(),
|
|
926
|
+
/** ISO 8601 datetime (defaults to now) */
|
|
927
|
+
eventTime: IsoDateTimeString.optional(),
|
|
928
|
+
/** Session context (IRI or entity) */
|
|
929
|
+
session: CaliperEntity.optional(),
|
|
930
|
+
/** Event-level extensions */
|
|
931
|
+
extensions: z.record(z.string(), z.unknown()).optional(),
|
|
932
|
+
})
|
|
933
|
+
.strict()
|
|
934
|
+
type QuestionAnsweredInput = input<typeof QuestionAnsweredInput>
|
|
935
|
+
|
|
936
|
+
declare const QuestionGradedInput = z
|
|
937
|
+
.object({
|
|
938
|
+
/** Actor (Person IRI or entity object with id, type, name, etc.) */
|
|
939
|
+
actor: z.union([z.string(), CaliperActor, TimebackUser]),
|
|
940
|
+
/** Attempt being graded (IRI) */
|
|
941
|
+
object: z.string(),
|
|
942
|
+
/** Score awarded for the question */
|
|
943
|
+
generated: ScoreGenerated,
|
|
944
|
+
/** Application identifier (IRI or entity) */
|
|
945
|
+
edApp: CaliperEntity,
|
|
946
|
+
/** Event identifier (auto-generated if omitted) */
|
|
947
|
+
id: z.string().optional(),
|
|
948
|
+
/** ISO 8601 datetime (defaults to now) */
|
|
949
|
+
eventTime: IsoDateTimeString.optional(),
|
|
950
|
+
/** Session context (IRI or entity) */
|
|
951
|
+
session: CaliperEntity.optional(),
|
|
952
|
+
/** Event-level extensions */
|
|
953
|
+
extensions: z.record(z.string(), z.unknown()).optional(),
|
|
954
|
+
})
|
|
955
|
+
.strict()
|
|
956
|
+
type QuestionGradedInput = input<typeof QuestionGradedInput>
|
|
957
|
+
|
|
861
958
|
declare const CaliperListEventsParams = z
|
|
862
959
|
.object({
|
|
863
960
|
limit: z.number().int().positive().optional(),
|
|
864
961
|
offset: z.number().int().min(0).optional(),
|
|
865
|
-
sensor:
|
|
962
|
+
sensor: NonEmptyString.optional(),
|
|
866
963
|
startDate: IsoDateTimeString.optional(),
|
|
867
964
|
endDate: IsoDateTimeString.optional(),
|
|
868
|
-
actorId:
|
|
965
|
+
actorId: NonEmptyString.optional(),
|
|
869
966
|
actorEmail: z.email().optional(),
|
|
870
967
|
})
|
|
871
968
|
.strict()
|
|
872
969
|
type CaliperListEventsParams = input<typeof CaliperListEventsParams>
|
|
873
970
|
|
|
874
|
-
export { ActivityCompletedInput, CALIPER_DATA_VERSION, CaliperListEventsParams as ListEventsParams, TimeSpentInput };
|
|
875
|
-
export type { ActivityCompletedEvent, ActivityMetricType, ApiResponse, CaliperActor, CaliperEntity, CaliperEnvelope, CaliperEvent, CaliperProfile, EventResult, GetEventResponse, JobStatus, JobStatusResponse, ListEventsResponse, ListEventsResult, PaginationMeta, SendEventsResponse, SendEventsResult, StoredEvent, TimeSpentEvent, TimeSpentMetric, TimeSpentMetricType, TimebackActivity, TimebackActivityContext, TimebackActivityMetric, TimebackActivityMetricsCollection, TimebackApp, TimebackCourse, TimebackEvent, TimebackEventBase, TimebackSubject, TimebackTimeSpentMetricsCollection, TimebackUser, TimebackUserRole, ValidationResult, WaitForCompletionOptions };
|
|
971
|
+
export { ActivityCompletedInput, CALIPER_DATA_VERSION, CaliperListEventsParams as ListEventsParams, QuestionAnsweredInput, QuestionGradedInput, QuestionSeenInput, TimeSpentInput };
|
|
972
|
+
export type { ActivityCompletedEvent, ActivityMetricType, ApiResponse, AssessmentItemEvent, CaliperActor, CaliperEntity, CaliperEnvelope, CaliperEvent, CaliperProfile, EventResult, GetEventResponse, JobStatus, JobStatusResponse, ListEventsResponse, ListEventsResult, PaginationMeta, QuestionGradeEvent, SendEventsResponse, SendEventsResult, StoredEvent, TimeSpentEvent, TimeSpentMetric, TimeSpentMetricType, TimebackActivity, TimebackActivityContext, TimebackActivityMetric, TimebackActivityMetricsCollection, TimebackApp, TimebackCourse, TimebackEvent, TimebackEventBase, TimebackSubject, TimebackTimeSpentMetricsCollection, TimebackUser, TimebackUserRole, ValidationResult, WaitForCompletionOptions };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-types.d.ts","sourceRoot":"","sources":["../src/public-types.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,YAAY,EACX,sBAAsB,EACtB,cAAc,EACd,uBAAuB,IAAI,gBAAgB,GAC3C,MAAM,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"public-types.d.ts","sourceRoot":"","sources":["../src/public-types.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,YAAY,EACX,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,IAAI,gBAAgB,GAC3C,MAAM,qBAAqB,CAAA"}
|
package/dist/public-types.js
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Manage Caliper events - send, list, and retrieve.
|
|
5
5
|
*/
|
|
6
|
-
import { Paginator } from '../lib
|
|
7
|
-
import type { ActivityCompletedInput, CaliperListEventsParams as CaliperListEventsParamsType, TimeSpentInput } from '@timeback/types/zod';
|
|
8
|
-
import type {
|
|
6
|
+
import { Paginator } from '../lib';
|
|
7
|
+
import type { ActivityCompletedInput, CaliperListEventsParams as CaliperListEventsParamsType, QuestionAnsweredInput, QuestionGradedInput, QuestionSeenInput, TimeSpentInput } from '@timeback/types/zod';
|
|
8
|
+
import type { CaliperEnvelope, CaliperEvent, CaliperTransportLike, EventTransformer, ListEventsResult, SendEventsResult, StoredEvent, ValidationResult } from '../types';
|
|
9
9
|
/**
|
|
10
10
|
* Caliper Events resource.
|
|
11
11
|
*
|
|
@@ -244,5 +244,77 @@ export declare class EventsResource {
|
|
|
244
244
|
* ```
|
|
245
245
|
*/
|
|
246
246
|
sendTimeSpent(sensor: string, input: TimeSpentInput): Promise<SendEventsResult>;
|
|
247
|
+
/**
|
|
248
|
+
* Send a "question seen" event (AssessmentItemEvent.Started).
|
|
249
|
+
*
|
|
250
|
+
* Records when a question is presented to a student.
|
|
251
|
+
*
|
|
252
|
+
* @param sensor - Sensor identifier (IRI format)
|
|
253
|
+
* @param input - Question seen data
|
|
254
|
+
* @returns Job ID for tracking processing status
|
|
255
|
+
*
|
|
256
|
+
* @example
|
|
257
|
+
* ```typescript
|
|
258
|
+
* await client.events.sendQuestionSeen(
|
|
259
|
+
* 'https://myapp.example.com/sensors/main',
|
|
260
|
+
* {
|
|
261
|
+
* actor: 'urn:uuid:student-123',
|
|
262
|
+
* object: { id: 'urn:uuid:q-456', name: 'What is 2+2?' },
|
|
263
|
+
* edApp: 'https://myapp.example.com',
|
|
264
|
+
* },
|
|
265
|
+
* )
|
|
266
|
+
* ```
|
|
267
|
+
*/
|
|
268
|
+
sendQuestionSeen(sensor: string, input: QuestionSeenInput): Promise<SendEventsResult>;
|
|
269
|
+
/**
|
|
270
|
+
* Send a "question answered" event (AssessmentItemEvent.Completed).
|
|
271
|
+
*
|
|
272
|
+
* Records when a student submits an answer to a question.
|
|
273
|
+
*
|
|
274
|
+
* @param sensor - Sensor identifier (IRI format)
|
|
275
|
+
* @param input - Question answered data
|
|
276
|
+
* @returns Job ID for tracking processing status
|
|
277
|
+
*
|
|
278
|
+
* @example
|
|
279
|
+
* ```typescript
|
|
280
|
+
* await client.events.sendQuestionAnswered(
|
|
281
|
+
* 'https://myapp.example.com/sensors/main',
|
|
282
|
+
* {
|
|
283
|
+
* actor: 'urn:uuid:student-123',
|
|
284
|
+
* object: { id: 'urn:uuid:q-456', name: 'What is 2+2?' },
|
|
285
|
+
* edApp: 'https://myapp.example.com',
|
|
286
|
+
* generated: {
|
|
287
|
+
* id: 'urn:uuid:response-789',
|
|
288
|
+
* attempt: 'urn:uuid:attempt-101',
|
|
289
|
+
* },
|
|
290
|
+
* },
|
|
291
|
+
* )
|
|
292
|
+
* ```
|
|
293
|
+
*/
|
|
294
|
+
sendQuestionAnswered(sensor: string, input: QuestionAnsweredInput): Promise<SendEventsResult>;
|
|
295
|
+
/**
|
|
296
|
+
* Send a "question graded" event (GradeEvent.Graded).
|
|
297
|
+
*
|
|
298
|
+
* Records when a question response is scored. The Score entity is
|
|
299
|
+
* auto-filled with `scoreType: "QUESTION_RESULT"`.
|
|
300
|
+
*
|
|
301
|
+
* @param sensor - Sensor identifier (IRI format)
|
|
302
|
+
* @param input - Question graded data
|
|
303
|
+
* @returns Job ID for tracking processing status
|
|
304
|
+
*
|
|
305
|
+
* @example
|
|
306
|
+
* ```typescript
|
|
307
|
+
* await client.events.sendQuestionGraded(
|
|
308
|
+
* 'https://myapp.example.com/sensors/main',
|
|
309
|
+
* {
|
|
310
|
+
* actor: 'urn:uuid:student-123',
|
|
311
|
+
* object: 'urn:uuid:attempt-101',
|
|
312
|
+
* generated: { scoreGiven: 1, maxScore: 1, attempt: 'urn:uuid:attempt-101' },
|
|
313
|
+
* edApp: 'https://myapp.example.com',
|
|
314
|
+
* },
|
|
315
|
+
* )
|
|
316
|
+
* ```
|
|
317
|
+
*/
|
|
318
|
+
sendQuestionGraded(sensor: string, input: QuestionGradedInput): Promise<SendEventsResult>;
|
|
247
319
|
}
|
|
248
320
|
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/resources/events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/resources/events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH,OAAO,EAMN,SAAS,EACT,MAAM,QAAQ,CAAA;AAGf,OAAO,KAAK,EACX,sBAAsB,EACtB,uBAAuB,IAAI,2BAA2B,EACtD,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EACX,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAGhB,gBAAgB,EAEhB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,MAAM,UAAU,CAAA;AAEjB;;;;GAIG;AACH,qBAAa,cAAc;IAIzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAH3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAkB;IAEpD,YACkB,SAAS,EAAE,oBAAoB,EAChD,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;KAAE,EAGjD;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAUtE;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoBvE;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsBnE;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,IAAI,CAAC,MAAM,GAAE,2BAAgC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8B9E;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,MAAM,CAAC,MAAM,GAAE,2BAA2B,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,SAAS,CAAC,WAAW,CAAC,CA2B1F;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACG,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAiBlD;IAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAYrF;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAY9E;IAMD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAWpF;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAW5F;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAYxF;CACD"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from '@timeback/types/protocols/caliper';
|
|
2
2
|
export * from './client';
|
|
3
|
-
export type { ActivityCompletedInput, TimeSpentInput, CaliperListEventsParams as ListEventsParams, } from '@timeback/types/zod';
|
|
3
|
+
export type { ActivityCompletedInput, QuestionAnsweredInput, QuestionGradedInput, QuestionSeenInput, TimeSpentInput, CaliperListEventsParams as ListEventsParams, } from '@timeback/types/zod';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA;AACjD,cAAc,UAAU,CAAA;AAExB,YAAY,EACX,sBAAsB,EACtB,cAAc,EACd,uBAAuB,IAAI,gBAAgB,GAC3C,MAAM,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA;AACjD,cAAc,UAAU,CAAA;AAExB,YAAY,EACX,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,IAAI,gBAAgB,GAC3C,MAAM,qBAAqB,CAAA"}
|