@timeback/qti 0.1.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.
Files changed (57) hide show
  1. package/README.md +32 -0
  2. package/dist/client.d.ts +70 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/constants.d.ts +24 -0
  5. package/dist/constants.d.ts.map +1 -0
  6. package/dist/errors.js +1405 -0
  7. package/dist/factory.d.ts +46 -0
  8. package/dist/factory.d.ts.map +1 -0
  9. package/dist/index.d.ts +48 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +1868 -0
  12. package/dist/lib/index.d.ts +10 -0
  13. package/dist/lib/index.d.ts.map +1 -0
  14. package/dist/lib/pagination.d.ts +27 -0
  15. package/dist/lib/pagination.d.ts.map +1 -0
  16. package/dist/lib/resolve.d.ts +21 -0
  17. package/dist/lib/resolve.d.ts.map +1 -0
  18. package/dist/lib/transport.d.ts +39 -0
  19. package/dist/lib/transport.d.ts.map +1 -0
  20. package/dist/resources/assessment-items.d.ts +87 -0
  21. package/dist/resources/assessment-items.d.ts.map +1 -0
  22. package/dist/resources/assessment-tests.d.ts +225 -0
  23. package/dist/resources/assessment-tests.d.ts.map +1 -0
  24. package/dist/resources/general.d.ts +26 -0
  25. package/dist/resources/general.d.ts.map +1 -0
  26. package/dist/resources/index.d.ts +10 -0
  27. package/dist/resources/index.d.ts.map +1 -0
  28. package/dist/resources/lesson.d.ts +38 -0
  29. package/dist/resources/lesson.d.ts.map +1 -0
  30. package/dist/resources/stimuli.d.ts +64 -0
  31. package/dist/resources/stimuli.d.ts.map +1 -0
  32. package/dist/resources/validate.d.ts +31 -0
  33. package/dist/resources/validate.d.ts.map +1 -0
  34. package/dist/types/api.d.ts +37 -0
  35. package/dist/types/api.d.ts.map +1 -0
  36. package/dist/types/assessment-items.d.ts +82 -0
  37. package/dist/types/assessment-items.d.ts.map +1 -0
  38. package/dist/types/assessment-tests.d.ts +180 -0
  39. package/dist/types/assessment-tests.d.ts.map +1 -0
  40. package/dist/types/base.d.ts +195 -0
  41. package/dist/types/base.d.ts.map +1 -0
  42. package/dist/types/client.d.ts +44 -0
  43. package/dist/types/client.d.ts.map +1 -0
  44. package/dist/types/index.d.ts +14 -0
  45. package/dist/types/index.d.ts.map +1 -0
  46. package/dist/types/lesson.d.ts +38 -0
  47. package/dist/types/lesson.d.ts.map +1 -0
  48. package/dist/types/stimuli.d.ts +56 -0
  49. package/dist/types/stimuli.d.ts.map +1 -0
  50. package/dist/types/validate.d.ts +39 -0
  51. package/dist/types/validate.d.ts.map +1 -0
  52. package/dist/types.d.ts +10 -0
  53. package/dist/types.d.ts.map +1 -0
  54. package/dist/types.js +0 -0
  55. package/dist/utils.d.ts +11 -0
  56. package/dist/utils.d.ts.map +1 -0
  57. package/package.json +39 -0
@@ -0,0 +1,37 @@
1
+ /**
2
+ * API Response Types
3
+ *
4
+ * Types for QTI API responses.
5
+ */
6
+ /**
7
+ * Paginated list response from QTI API.
8
+ *
9
+ * QTI returns pagination metadata directly in the response body alongside items.
10
+ */
11
+ export interface ListResponse<T> {
12
+ /** Array of items in this page */
13
+ items: T[];
14
+ /** Total items across all pages */
15
+ total: number;
16
+ /** Current page number (1-indexed) */
17
+ page: number;
18
+ /** Total number of pages */
19
+ pages: number;
20
+ /** Items per page */
21
+ limit: number;
22
+ /** Sort field */
23
+ sort: string;
24
+ /** Sort order */
25
+ order: 'asc' | 'desc';
26
+ }
27
+ /**
28
+ * Raw paginated response shape from QTI API (alias for internal use).
29
+ */
30
+ export type RawPaginatedResponse<T> = ListResponse<T>;
31
+ /**
32
+ * Response from DELETE operations.
33
+ */
34
+ export interface DeleteResponse {
35
+ message: string;
36
+ }
37
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;;;GAIG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC9B,kCAAkC;IAClC,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB;IACjB,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;AAMrD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,MAAM,CAAA;CACf"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Assessment Items Types
3
+ *
4
+ * Types for QTI assessment item resources.
5
+ */
6
+ import type { AssessmentItemType, FeedbackBlock, FeedbackInline, ItemMetadata, ModalFeedback, OutcomeDeclaration, PaginationParams, ResponseDeclaration, ResponseProcessing } from './base';
7
+ /**
8
+ * Assessment item entity.
9
+ */
10
+ export interface AssessmentItem {
11
+ identifier: string;
12
+ title: string;
13
+ type: AssessmentItemType;
14
+ qtiVersion: string;
15
+ timeDependent: boolean;
16
+ adaptive: boolean;
17
+ responseDeclarations?: ResponseDeclaration[];
18
+ outcomeDeclarations?: OutcomeDeclaration[];
19
+ responseProcessing?: ResponseProcessing;
20
+ metadata?: ItemMetadata;
21
+ /** Raw QTI XML string */
22
+ rawXml: string;
23
+ /**
24
+ * Parsed XML→JSON content.
25
+ * Structure varies by item type.
26
+ */
27
+ content: Record<string, unknown>;
28
+ modalFeedback?: ModalFeedback[];
29
+ feedbackInline?: FeedbackInline[];
30
+ feedbackBlock?: FeedbackBlock[];
31
+ createdAt: string;
32
+ updatedAt: string;
33
+ __v?: number;
34
+ }
35
+ /**
36
+ * Parameters for listing assessment items.
37
+ */
38
+ export interface ListAssessmentItemsParams extends PaginationParams {
39
+ }
40
+ /**
41
+ * Request body for creating an assessment item.
42
+ */
43
+ export interface CreateAssessmentItemRequest {
44
+ identifier: string;
45
+ title: string;
46
+ type: AssessmentItemType;
47
+ qtiVersion?: string;
48
+ timeDependent?: boolean;
49
+ adaptive?: boolean;
50
+ responseDeclarations?: ResponseDeclaration[];
51
+ outcomeDeclarations?: OutcomeDeclaration[];
52
+ responseProcessing?: ResponseProcessing;
53
+ metadata?: ItemMetadata;
54
+ modalFeedback?: ModalFeedback[];
55
+ feedbackInline?: FeedbackInline[];
56
+ feedbackBlock?: FeedbackBlock[];
57
+ }
58
+ /**
59
+ * Request body for updating an assessment item.
60
+ */
61
+ export interface UpdateAssessmentItemRequest extends CreateAssessmentItemRequest {
62
+ rawXml: string;
63
+ content: Record<string, unknown>;
64
+ }
65
+ /**
66
+ * Request body for processing a response.
67
+ */
68
+ export interface ProcessResponseRequest {
69
+ identifier: string;
70
+ response: string | string[];
71
+ }
72
+ /**
73
+ * Result of processing a response.
74
+ */
75
+ export interface ProcessResponseResult {
76
+ score: number;
77
+ feedback: {
78
+ identifier: string;
79
+ value: string;
80
+ };
81
+ }
82
+ //# sourceMappingURL=assessment-items.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assessment-items.d.ts","sourceRoot":"","sources":["../../src/types/assessment-items.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACX,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,QAAQ,CAAA;AAMf;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,kBAAkB,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,OAAO,CAAA;IACtB,QAAQ,EAAE,OAAO,CAAA;IACjB,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC5C,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAC1C,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,aAAa,CAAC,EAAE,aAAa,EAAE,CAAA;IAC/B,cAAc,CAAC,EAAE,cAAc,EAAE,CAAA;IACjC,aAAa,CAAC,EAAE,aAAa,EAAE,CAAA;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ;AAMD;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;CAElE;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,kBAAkB,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC5C,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAC1C,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAA;IAC/B,cAAc,CAAC,EAAE,cAAc,EAAE,CAAA;IACjC,aAAa,CAAC,EAAE,aAAa,EAAE,CAAA;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,2BAA2B;IAC/E,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE;QACT,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,CAAA;KACb,CAAA;CACD"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Assessment Tests Types
3
+ *
4
+ * Types for QTI assessment test resources including test parts and sections.
5
+ */
6
+ import type { NavigationMode, PaginationParams, SubmissionMode, TestOutcomeDeclaration } from './base';
7
+ /**
8
+ * Reference to an assessment item within a section.
9
+ */
10
+ export interface AssessmentItemRef {
11
+ identifier: string;
12
+ /**
13
+ * Item reference href.
14
+ *
15
+ * The QTI docs show this field as `string` in most responses, but it can also
16
+ * appear as an array (and in one place, a nested array) in request/response
17
+ * examples for test-part payloads.
18
+ */
19
+ href?: string | string[] | string[][];
20
+ sequence?: number;
21
+ }
22
+ /**
23
+ * Assessment section within a test part.
24
+ */
25
+ export interface AssessmentSection {
26
+ identifier: string;
27
+ title: string;
28
+ visible: boolean;
29
+ required?: boolean;
30
+ fixed?: boolean;
31
+ sequence?: number;
32
+ 'qti-assessment-item-ref'?: AssessmentItemRef[];
33
+ }
34
+ /**
35
+ * Test part within an assessment test.
36
+ */
37
+ export interface TestPart {
38
+ identifier: string;
39
+ navigationMode: NavigationMode;
40
+ submissionMode: SubmissionMode;
41
+ 'qti-assessment-section': AssessmentSection | AssessmentSection[];
42
+ }
43
+ /**
44
+ * Assessment test entity.
45
+ */
46
+ export interface AssessmentTest {
47
+ identifier: string;
48
+ title: string;
49
+ qtiVersion: string;
50
+ 'qti-test-part': TestPart[];
51
+ 'qti-outcome-declaration': TestOutcomeDeclaration[];
52
+ timeLimit?: number;
53
+ maxAttempts?: number;
54
+ toolsEnabled?: Record<string, boolean>;
55
+ metadata?: Record<string, unknown>;
56
+ /** Raw QTI XML string */
57
+ rawXml: string;
58
+ /**
59
+ * Parsed XML→JSON content.
60
+ * Structure varies by test.
61
+ */
62
+ content: Record<string, unknown>;
63
+ createdAt: string;
64
+ updatedAt: string;
65
+ __v?: number;
66
+ isValidXml?: boolean;
67
+ }
68
+ /**
69
+ * Parameters for listing assessment tests.
70
+ */
71
+ export interface ListAssessmentTestsParams extends PaginationParams {
72
+ }
73
+ /**
74
+ * Request body for creating an assessment test.
75
+ */
76
+ export interface CreateAssessmentTestRequest {
77
+ identifier: string;
78
+ title: string;
79
+ qtiVersion?: string;
80
+ toolName?: string;
81
+ toolVersion?: string;
82
+ timeLimit?: number;
83
+ maxAttempts?: number;
84
+ toolsEnabled?: Record<string, boolean>;
85
+ metadata?: Record<string, unknown>;
86
+ 'qti-test-part': TestPart;
87
+ 'qti-outcome-declaration'?: TestOutcomeDeclaration[];
88
+ }
89
+ /**
90
+ * Request body for updating an assessment test.
91
+ */
92
+ export interface UpdateAssessmentTestRequest extends CreateAssessmentTestRequest {
93
+ }
94
+ /**
95
+ * Request body for updating test metadata.
96
+ */
97
+ export interface UpdateTestMetadataRequest {
98
+ metadata?: Record<string, unknown>;
99
+ }
100
+ /**
101
+ * Parameters for listing test parts.
102
+ */
103
+ export interface ListTestPartsParams extends PaginationParams {
104
+ }
105
+ /**
106
+ * Request body for creating a test part.
107
+ */
108
+ export interface CreateTestPartRequest {
109
+ identifier: string;
110
+ navigationMode: NavigationMode;
111
+ submissionMode: SubmissionMode;
112
+ 'qti-assessment-section': AssessmentSection;
113
+ }
114
+ /**
115
+ * Request body for updating a test part.
116
+ */
117
+ export interface UpdateTestPartRequest extends CreateTestPartRequest {
118
+ }
119
+ /**
120
+ * Parameters for listing sections.
121
+ */
122
+ export interface ListSectionsParams extends PaginationParams {
123
+ }
124
+ /**
125
+ * Request body for creating a section.
126
+ */
127
+ export interface CreateSectionRequest {
128
+ identifier: string;
129
+ title: string;
130
+ visible: boolean;
131
+ required?: boolean;
132
+ fixed?: boolean;
133
+ sequence?: number;
134
+ 'qti-assessment-item-ref'?: AssessmentItemRef[];
135
+ }
136
+ /**
137
+ * Request body for updating a section.
138
+ */
139
+ export interface UpdateSectionRequest extends CreateSectionRequest {
140
+ }
141
+ /**
142
+ * Request body for adding an item to a section.
143
+ */
144
+ export interface AddItemRequest {
145
+ identifier: string;
146
+ href?: string;
147
+ sequence?: number;
148
+ }
149
+ /**
150
+ * Request body for reordering items in a section.
151
+ */
152
+ export interface ReorderItemsRequest {
153
+ items: AddItemRequest[];
154
+ }
155
+ /**
156
+ * Question reference within a test.
157
+ */
158
+ export interface QuestionReference {
159
+ identifier: string;
160
+ href: string;
161
+ testPart: string;
162
+ section: string;
163
+ }
164
+ /**
165
+ * Question with full item details.
166
+ */
167
+ export interface QuestionWithItem {
168
+ reference: QuestionReference;
169
+ question: import('./assessment-items').AssessmentItem;
170
+ }
171
+ /**
172
+ * Response from GET /assessment-tests/{identifier}/questions.
173
+ */
174
+ export interface QuestionsResponse {
175
+ assessmentTest: string;
176
+ title: string;
177
+ totalQuestions: number;
178
+ questions: QuestionWithItem[];
179
+ }
180
+ //# sourceMappingURL=assessment-tests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assessment-tests.d.ts","sourceRoot":"","sources":["../../src/types/assessment-tests.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACX,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,MAAM,QAAQ,CAAA;AAMf;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAA;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yBAAyB,CAAC,EAAE,iBAAiB,EAAE,CAAA;CAC/C;AAMD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B,cAAc,EAAE,cAAc,CAAA;IAC9B,wBAAwB,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAAA;CACjE;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,QAAQ,EAAE,CAAA;IAC3B,yBAAyB,EAAE,sBAAsB,EAAE,CAAA;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,OAAO,CAAA;CACpB;AAMD;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;CAElE;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,eAAe,EAAE,QAAQ,CAAA;IACzB,yBAAyB,CAAC,EAAE,sBAAsB,EAAE,CAAA;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,2BAA2B;CAAG;AAEnF;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAMD;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;CAAG;AAEhE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B,cAAc,EAAE,cAAc,CAAA;IAC9B,wBAAwB,EAAE,iBAAiB,CAAA;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;CAAG;AAMvE;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;CAAG;AAE/D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yBAAyB,CAAC,EAAE,iBAAiB,EAAE,CAAA;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;CAAG;AAMrE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,cAAc,EAAE,CAAA;CACvB;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,SAAS,EAAE,iBAAiB,CAAA;IAC5B,QAAQ,EAAE,OAAO,oBAAoB,EAAE,cAAc,CAAA;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,gBAAgB,EAAE,CAAA;CAC7B"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Base Types
3
+ *
4
+ * Common types shared across QTI resources.
5
+ */
6
+ /**
7
+ * Assessment item interaction types.
8
+ */
9
+ export type AssessmentItemType = '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';
10
+ /**
11
+ * Cardinality of a response or outcome variable.
12
+ */
13
+ export type Cardinality = 'single' | 'multiple' | 'ordered' | 'record';
14
+ /**
15
+ * Base type of a response or outcome variable.
16
+ */
17
+ export type BaseType = 'identifier' | 'boolean' | 'integer' | 'float' | 'string' | 'point' | 'pair' | 'directedPair' | 'duration' | 'file' | 'uri';
18
+ /**
19
+ * Difficulty level for assessment items.
20
+ */
21
+ export type Difficulty = 'easy' | 'medium' | 'hard';
22
+ /**
23
+ * Grade level (K-12 + pre-K as -1).
24
+ */
25
+ export type Grade = -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13;
26
+ /**
27
+ * Navigation mode for test parts.
28
+ */
29
+ export type NavigationMode = 'linear' | 'nonlinear';
30
+ /**
31
+ * Submission mode for test parts.
32
+ */
33
+ export type SubmissionMode = 'individual' | 'simultaneous';
34
+ /**
35
+ * Show/hide indicator for feedback.
36
+ */
37
+ export type ShowHide = 'show' | 'hide';
38
+ /**
39
+ * Schema type for validation.
40
+ */
41
+ export type ValidationSchema = 'test' | 'item' | 'stimulus';
42
+ /**
43
+ * Sort order for list responses.
44
+ */
45
+ export type SortOrder = 'asc' | 'desc';
46
+ /**
47
+ * Feedback type.
48
+ */
49
+ export type FeedbackType = 'QUESTION' | 'LESSON';
50
+ /**
51
+ * Correct response value.
52
+ */
53
+ export interface CorrectResponse {
54
+ value: string[];
55
+ }
56
+ /**
57
+ * Response declaration for assessment items.
58
+ */
59
+ export interface ResponseDeclaration {
60
+ identifier: string;
61
+ cardinality: Cardinality;
62
+ baseType?: BaseType;
63
+ correctResponse: CorrectResponse;
64
+ }
65
+ /**
66
+ * Outcome declaration for items and tests.
67
+ */
68
+ export interface OutcomeDeclaration {
69
+ identifier: string;
70
+ cardinality: Cardinality;
71
+ baseType?: BaseType;
72
+ }
73
+ /**
74
+ * Test outcome declaration with additional properties.
75
+ */
76
+ export interface TestOutcomeDeclaration {
77
+ identifier: string;
78
+ cardinality?: Cardinality;
79
+ baseType: BaseType;
80
+ normalMaximum?: number;
81
+ normalMinimum?: number;
82
+ defaultValue?: {
83
+ value?: unknown;
84
+ };
85
+ }
86
+ /**
87
+ * Inline feedback configuration.
88
+ */
89
+ export interface InlineFeedback {
90
+ outcomeIdentifier: string;
91
+ variableIdentifier: string;
92
+ }
93
+ /**
94
+ * Response processing configuration.
95
+ */
96
+ export interface ResponseProcessing {
97
+ templateType: 'match_correct' | 'map_response';
98
+ responseDeclarationIdentifier: string;
99
+ outcomeIdentifier: string;
100
+ correctResponseIdentifier: string;
101
+ incorrectResponseIdentifier: string;
102
+ inlineFeedback?: InlineFeedback;
103
+ }
104
+ /**
105
+ * Learning objective set for metadata.
106
+ */
107
+ export interface LearningObjectiveSet {
108
+ source: string;
109
+ learningObjectiveIds: string[];
110
+ }
111
+ /**
112
+ * Item metadata.
113
+ */
114
+ export interface ItemMetadata {
115
+ subject?: string;
116
+ grade?: Grade;
117
+ difficulty?: Difficulty;
118
+ learningObjectiveSet?: LearningObjectiveSet[];
119
+ }
120
+ /**
121
+ * Modal feedback element.
122
+ */
123
+ export interface ModalFeedback {
124
+ outcomeIdentifier: string;
125
+ identifier: string;
126
+ showHide: ShowHide;
127
+ content: string;
128
+ title: string;
129
+ }
130
+ /**
131
+ * Inline feedback element.
132
+ */
133
+ export interface FeedbackInline {
134
+ outcomeIdentifier: string;
135
+ identifier: string;
136
+ showHide: ShowHide;
137
+ content: string;
138
+ class: string[];
139
+ }
140
+ /**
141
+ * Block feedback element.
142
+ */
143
+ export interface FeedbackBlock {
144
+ outcomeIdentifier: string;
145
+ identifier: string;
146
+ showHide: ShowHide;
147
+ content: string;
148
+ class: string[];
149
+ }
150
+ /**
151
+ * Stylesheet reference.
152
+ */
153
+ export interface Stylesheet {
154
+ href: string;
155
+ type: string;
156
+ }
157
+ /**
158
+ * Catalog info entry.
159
+ */
160
+ export interface CatalogInfo {
161
+ id: string;
162
+ support: string;
163
+ content: string;
164
+ }
165
+ /**
166
+ * Standard QTI pagination parameters.
167
+ */
168
+ export interface PaginationParams {
169
+ /** Page number (1-indexed) */
170
+ page?: number;
171
+ /** Items per page */
172
+ limit?: number;
173
+ /** Field to sort by */
174
+ sort?: string;
175
+ /** Sort order */
176
+ order?: SortOrder;
177
+ }
178
+ /**
179
+ * Pagination metadata from QTI list responses.
180
+ */
181
+ export interface PaginationMeta {
182
+ /** Total items across all pages */
183
+ total: number;
184
+ /** Current page number (1-indexed) */
185
+ page: number;
186
+ /** Total number of pages */
187
+ pages: number;
188
+ /** Items per page */
189
+ limit: number;
190
+ /** Sort field */
191
+ sort: string;
192
+ /** Sort order */
193
+ order: SortOrder;
194
+ }
195
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Client Configuration Types
3
+ */
4
+ import type { ClientConfig, PaginatedResponse, ProviderClientConfig, RequestOptions, ResolvedProvider, TransportOnlyConfig } from '@timeback/internal-client-infra';
5
+ /**
6
+ * Re-export vital config types for SDK users.
7
+ */
8
+ export type { Environment, EnvAuth, ExplicitAuth, Platform } from '@timeback/internal-client-infra';
9
+ /**
10
+ * Transport interface for QTI client.
11
+ *
12
+ * Required when using transport mode with QtiClient.
13
+ */
14
+ export interface QtiTransportLike {
15
+ /** Base URL of the API */
16
+ baseUrl: string;
17
+ /** Make an authenticated request */
18
+ request<T>(path: string, options?: RequestOptions): Promise<T>;
19
+ /** Make a paginated request */
20
+ requestPaginated<T>(path: string, options?: RequestOptions): Promise<PaginatedResponse<T>>;
21
+ }
22
+ /**
23
+ * All supported QTI client configuration types.
24
+ *
25
+ * Supports four modes:
26
+ * - **Provider mode**: `{ provider: TimebackProvider }` — pre-built provider with token sharing
27
+ * - **Environment mode**: `{ platform?, env, auth }` — Timeback hosted APIs
28
+ * - **Explicit mode**: `{ baseUrl, auth: { authUrl } }` — custom API URLs
29
+ * - **Transport mode**: `{ transport }` — custom transport
30
+ *
31
+ * The `platform` field (in env mode) selects which Timeback implementation to use:
32
+ * - `'BEYOND_AI'` (default): BeyondAI's Timeback platform
33
+ * - `'LEARNWITH_AI'`: Samy's LearnWith.AI platform
34
+ */
35
+ export type QtiClientConfig = ClientConfig | TransportOnlyConfig<QtiTransportLike> | ProviderClientConfig;
36
+ /**
37
+ * Resolved provider type for QTI client.
38
+ */
39
+ export type QtiResolvedProvider = ResolvedProvider<QtiTransportLike>;
40
+ /**
41
+ * Instance type of QtiClient.
42
+ */
43
+ export type QtiClientInstance = InstanceType<typeof import('../client').QtiClient>;
44
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACX,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,iCAAiC,CAAA;AAExC;;GAEG;AACH,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAEnG;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAChC,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,oCAAoC;IACpC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC9D,+BAA+B;IAC/B,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;CAC1F;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe,GACxB,YAAY,GACZ,mBAAmB,CAAC,gBAAgB,CAAC,GACrC,oBAAoB,CAAA;AAEvB;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAA;AAEpE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,cAAc,WAAW,EAAE,SAAS,CAAC,CAAA"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * QTI Types
3
+ *
4
+ * All entity and domain types for `@timeback/qti`.
5
+ */
6
+ export * from './api';
7
+ export * from './assessment-items';
8
+ export * from './assessment-tests';
9
+ export * from './base';
10
+ export * from './client';
11
+ export * from './lesson';
12
+ export * from './stimuli';
13
+ export * from './validate';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,OAAO,CAAA;AACrB,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Lesson Types
3
+ *
4
+ * Types for QTI lesson and question feedback resources.
5
+ */
6
+ import type { FeedbackType } from './base';
7
+ /**
8
+ * Lesson feedback entity.
9
+ */
10
+ export interface LessonFeedback {
11
+ questionId?: string;
12
+ userId: string;
13
+ feedback: string;
14
+ type: FeedbackType;
15
+ lessonId: string;
16
+ humanApproved?: boolean | boolean[];
17
+ }
18
+ /**
19
+ * Request body for submitting lesson feedback.
20
+ */
21
+ export interface SubmitLessonRequest {
22
+ questionId?: string;
23
+ userId: string;
24
+ feedback: string;
25
+ lessonId: string;
26
+ humanApproved?: boolean;
27
+ }
28
+ /**
29
+ * Request body for submitting question feedback.
30
+ */
31
+ export interface SubmitQuestionRequest {
32
+ questionId?: string;
33
+ userId: string;
34
+ feedback: string;
35
+ lessonId: string;
36
+ humanApproved?: boolean;
37
+ }
38
+ //# sourceMappingURL=lesson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson.d.ts","sourceRoot":"","sources":["../../src/types/lesson.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAM1C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;CACnC;AAMD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Stimuli Types
3
+ *
4
+ * Types for QTI stimulus resources.
5
+ */
6
+ import type { CatalogInfo, PaginationParams, Stylesheet } from './base';
7
+ /**
8
+ * Stimulus entity.
9
+ */
10
+ export interface Stimulus {
11
+ identifier: string;
12
+ title: string;
13
+ label?: string;
14
+ language?: string;
15
+ stylesheet?: Stylesheet;
16
+ catalogInfo: CatalogInfo[];
17
+ toolName?: string;
18
+ toolVersion?: string;
19
+ metadata?: Record<string, unknown>;
20
+ /** Raw QTI XML string */
21
+ rawXml: string;
22
+ /**
23
+ * Parsed XML→JSON content.
24
+ * Structure varies.
25
+ */
26
+ content: Record<string, unknown>;
27
+ createdAt: string;
28
+ updatedAt: string;
29
+ __v?: number;
30
+ }
31
+ /**
32
+ * Parameters for listing stimuli.
33
+ */
34
+ export interface ListStimuliParams extends PaginationParams {
35
+ }
36
+ /**
37
+ * Request body for creating a stimulus.
38
+ */
39
+ export interface CreateStimulusRequest {
40
+ identifier: string;
41
+ title: string;
42
+ label?: string;
43
+ language?: string;
44
+ stylesheet?: Stylesheet;
45
+ content: string;
46
+ catalogInfo?: CatalogInfo[];
47
+ toolName?: string;
48
+ toolVersion?: string;
49
+ metadata?: Record<string, unknown>;
50
+ }
51
+ /**
52
+ * Request body for updating a stimulus.
53
+ */
54
+ export interface UpdateStimulusRequest extends CreateStimulusRequest {
55
+ }
56
+ //# sourceMappingURL=stimuli.d.ts.map