@timeback/powerpath 0.1.3 → 0.1.5
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/errors.d.ts +1 -9
- package/dist/index.d.ts +1299 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -7
- package/dist/public-types.d.ts +957 -0
- package/dist/public-types.d.ts.map +1 -0
- package/dist/resources/assessment.d.ts +6 -6
- package/dist/resources/assessment.d.ts.map +1 -1
- package/package.json +3 -3
- /package/dist/{types.js → public-types.js} +0 -0
|
@@ -0,0 +1,957 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PowerPath Base Types
|
|
3
|
+
*
|
|
4
|
+
* Common types and enums for PowerPath API responses.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
8
|
+
// ENUMS
|
|
9
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Test assignment status values.
|
|
13
|
+
*/
|
|
14
|
+
type TestAssignmentStatus =
|
|
15
|
+
| 'assigned'
|
|
16
|
+
| 'in_progress'
|
|
17
|
+
| 'completed'
|
|
18
|
+
| 'failed'
|
|
19
|
+
| 'expired'
|
|
20
|
+
| 'cancelled'
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Lesson types for PowerPath assessments.
|
|
24
|
+
*/
|
|
25
|
+
type PowerPathLessonType = 'powerpath-100' | 'quiz' | 'test-out' | 'placement' | 'unit-test'
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Question difficulty levels.
|
|
29
|
+
*/
|
|
30
|
+
type PowerPathQuestionDifficulty = 'easy' | 'medium' | 'hard'
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Lesson plan operation types.
|
|
34
|
+
*/
|
|
35
|
+
type LessonPlanOperationType =
|
|
36
|
+
| 'set-skipped'
|
|
37
|
+
| 'add-custom-resource'
|
|
38
|
+
| 'move-item-before'
|
|
39
|
+
| 'move-item-after'
|
|
40
|
+
| 'move-item-to-start'
|
|
41
|
+
| 'move-item-to-end'
|
|
42
|
+
| 'change-item-parent'
|
|
43
|
+
|
|
44
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
45
|
+
// PAGINATION
|
|
46
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Pagination metadata from PowerPath list responses.
|
|
50
|
+
*/
|
|
51
|
+
interface PaginationMeta {
|
|
52
|
+
/** Total items across all pages */
|
|
53
|
+
totalCount: number
|
|
54
|
+
/** Total number of pages */
|
|
55
|
+
pageCount: number
|
|
56
|
+
/** Current page number (1-indexed) */
|
|
57
|
+
pageNumber: number
|
|
58
|
+
/**
|
|
59
|
+
* Offset for the next page of results.
|
|
60
|
+
*
|
|
61
|
+
* This API uses offset pagination: request `offset` is the number of items to skip.
|
|
62
|
+
* List responses also include an `offset` field; treat it as the server-provided
|
|
63
|
+
* next offset (and fall back to `currentOffset + limit` when implementing iterators).
|
|
64
|
+
*/
|
|
65
|
+
offset: number
|
|
66
|
+
/** Items per page (default 100, max 3000) */
|
|
67
|
+
limit: number
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* PowerPath Response Types
|
|
72
|
+
*
|
|
73
|
+
* Entity types returned by PowerPath API endpoints.
|
|
74
|
+
*/
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
79
|
+
// TEST ASSIGNMENTS
|
|
80
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* A single test assignment entity.
|
|
84
|
+
*/
|
|
85
|
+
interface TestAssignment {
|
|
86
|
+
sourcedId: string
|
|
87
|
+
studentSourcedId: string
|
|
88
|
+
studentEmail: string
|
|
89
|
+
assignedByUserSourcedId?: string
|
|
90
|
+
subject: string
|
|
91
|
+
grade: string
|
|
92
|
+
assignmentStatus: TestAssignmentStatus
|
|
93
|
+
testName?: string
|
|
94
|
+
assignedAt?: string
|
|
95
|
+
expiresAt?: string
|
|
96
|
+
completedAt?: string
|
|
97
|
+
resourceSourcedId?: string
|
|
98
|
+
componentResourceSourcedId?: string
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* List response for test assignments.
|
|
103
|
+
*/
|
|
104
|
+
interface TestAssignmentsListResponse extends PaginationMeta {
|
|
105
|
+
testAssignments: TestAssignment[]
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Result from creating a test assignment.
|
|
110
|
+
*/
|
|
111
|
+
interface AssignmentResult {
|
|
112
|
+
assignmentId: string
|
|
113
|
+
lessonId: string
|
|
114
|
+
resourceId: string
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Result from bulk operations.
|
|
119
|
+
*/
|
|
120
|
+
interface BulkResult {
|
|
121
|
+
success: boolean
|
|
122
|
+
results: AssignmentResult[]
|
|
123
|
+
errors: Array<{ row: number; message: string }>
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
127
|
+
// QUESTIONS
|
|
128
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* QTI content associated with a question.
|
|
132
|
+
*/
|
|
133
|
+
interface PowerPathQuestionContent {
|
|
134
|
+
/** The type of the question (e.g., choiceInteraction) */
|
|
135
|
+
type?: string
|
|
136
|
+
/** The raw XML question in QTI format */
|
|
137
|
+
rawXml: string
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Result of evaluating a student's response to a question.
|
|
142
|
+
*/
|
|
143
|
+
interface PowerPathQuestionResult {
|
|
144
|
+
/** Score assigned considering the student's response */
|
|
145
|
+
score: number
|
|
146
|
+
/** Feedback text for the question */
|
|
147
|
+
feedback: string
|
|
148
|
+
/** Outcome variables from response processing */
|
|
149
|
+
outcomes?: Record<string, string>
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* A question in a PowerPath test.
|
|
154
|
+
*
|
|
155
|
+
* Represents a question with its metadata, optional QTI content,
|
|
156
|
+
* and (when answered) the student's response and result.
|
|
157
|
+
*/
|
|
158
|
+
interface PowerPathTestQuestion {
|
|
159
|
+
/** ID that represents the question in the test */
|
|
160
|
+
id: string
|
|
161
|
+
/** Index of the question in the test */
|
|
162
|
+
index: number
|
|
163
|
+
/** Title of the question */
|
|
164
|
+
title: string
|
|
165
|
+
/** URL of the QTI question */
|
|
166
|
+
url: string
|
|
167
|
+
/** Difficulty of the question */
|
|
168
|
+
difficulty: PowerPathQuestionDifficulty
|
|
169
|
+
/** Whether the question has been approved by a human */
|
|
170
|
+
humanApproved?: boolean | null
|
|
171
|
+
/** QTI content of the question */
|
|
172
|
+
content?: PowerPathQuestionContent
|
|
173
|
+
/** Student's response (single value or array) */
|
|
174
|
+
response?: string | string[]
|
|
175
|
+
/** Student's responses keyed by response identifier */
|
|
176
|
+
responses?: Record<string, string | string[]>
|
|
177
|
+
/** Whether the student's response is correct */
|
|
178
|
+
correct?: boolean
|
|
179
|
+
/** Result of evaluating the response */
|
|
180
|
+
result?: PowerPathQuestionResult
|
|
181
|
+
/** sourcedId of the AssessmentResult for this question attempt */
|
|
182
|
+
resultId?: string
|
|
183
|
+
/** Learning objective IDs associated with the question */
|
|
184
|
+
learningObjectives?: string[]
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
188
|
+
// ASSESSMENTS
|
|
189
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Result from creating an external test (test-out, placement, or internal).
|
|
193
|
+
*/
|
|
194
|
+
interface ExternalTestCreateResponse {
|
|
195
|
+
lessonId: string
|
|
196
|
+
resourceId: string
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* A single attempt record.
|
|
201
|
+
*/
|
|
202
|
+
interface Attempt {
|
|
203
|
+
attempt?: number
|
|
204
|
+
score: number
|
|
205
|
+
scoreStatus: string
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Result from creating a new attempt.
|
|
210
|
+
*/
|
|
211
|
+
interface CreateAttemptResponse {
|
|
212
|
+
attempt: Attempt
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Result from getting attempts for a lesson.
|
|
217
|
+
*/
|
|
218
|
+
interface GetAttemptsResponse {
|
|
219
|
+
attempts: Attempt[]
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Result from resetting an attempt.
|
|
224
|
+
*/
|
|
225
|
+
interface ResetAttemptResponse {
|
|
226
|
+
success: boolean
|
|
227
|
+
score: number
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
231
|
+
// ASSESSMENT PROGRESS (getAssessmentProgress)
|
|
232
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Progress for a PowerPath 100 lesson.
|
|
236
|
+
*
|
|
237
|
+
* Uses `seenQuestions` (not `questions`) and includes remaining question counts
|
|
238
|
+
* per difficulty level.
|
|
239
|
+
*/
|
|
240
|
+
interface PowerPath100ProgressResponse {
|
|
241
|
+
lessonType: 'powerpath-100'
|
|
242
|
+
/** Remaining question counts per difficulty level */
|
|
243
|
+
remainingQuestionsPerDifficulty: {
|
|
244
|
+
easy: number
|
|
245
|
+
medium: number
|
|
246
|
+
hard: number
|
|
247
|
+
}
|
|
248
|
+
/** Current score for this attempt */
|
|
249
|
+
score: number
|
|
250
|
+
/** Questions the student has seen */
|
|
251
|
+
seenQuestions: PowerPathTestQuestion[]
|
|
252
|
+
/** sourcedId of the parent test AssessmentResult */
|
|
253
|
+
testResultId?: string
|
|
254
|
+
/** Attempt number */
|
|
255
|
+
attempt: number
|
|
256
|
+
/** XP earned in the lesson */
|
|
257
|
+
xp: number | null
|
|
258
|
+
/** Multiplier for XP */
|
|
259
|
+
multiplier: number | null
|
|
260
|
+
/** Accuracy of the student's attempted questions */
|
|
261
|
+
accuracy: number
|
|
262
|
+
/** Number of correct questions answered */
|
|
263
|
+
correctQuestions: number
|
|
264
|
+
/** Total number of questions in the lesson */
|
|
265
|
+
totalQuestions: number
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Progress for quiz, test-out, placement, or unit-test lessons.
|
|
270
|
+
*
|
|
271
|
+
* Uses `questions` (not `seenQuestions`). Includes `finalized` to indicate
|
|
272
|
+
* whether the lesson has been completed.
|
|
273
|
+
*/
|
|
274
|
+
interface StandardProgressResponse {
|
|
275
|
+
lessonType: 'quiz' | 'test-out' | 'placement' | 'unit-test'
|
|
276
|
+
/** Whether the lesson has been finalized in the current attempt */
|
|
277
|
+
finalized: boolean
|
|
278
|
+
/** Current score for this attempt */
|
|
279
|
+
score?: number
|
|
280
|
+
/** Questions in the test */
|
|
281
|
+
questions: PowerPathTestQuestion[]
|
|
282
|
+
/** Tool provider of the lesson if external */
|
|
283
|
+
toolProvider: string | null
|
|
284
|
+
/** Whether auto-enrollment failed (only for finalized external tests) */
|
|
285
|
+
enrollmentFailed?: boolean
|
|
286
|
+
/** sourcedId of the parent test AssessmentResult */
|
|
287
|
+
testResultId?: string
|
|
288
|
+
/** Attempt number */
|
|
289
|
+
attempt: number
|
|
290
|
+
/** XP earned in the lesson */
|
|
291
|
+
xp: number | null
|
|
292
|
+
/** Multiplier for XP */
|
|
293
|
+
multiplier: number | null
|
|
294
|
+
/** Accuracy of the student's attempted questions */
|
|
295
|
+
accuracy: number
|
|
296
|
+
/** Number of correct questions answered */
|
|
297
|
+
correctQuestions: number
|
|
298
|
+
/** Total number of questions in the lesson */
|
|
299
|
+
totalQuestions: number
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Result from getting assessment progress.
|
|
304
|
+
*
|
|
305
|
+
* Discriminated union on `lessonType`:
|
|
306
|
+
* - `'powerpath-100'` — uses `seenQuestions` and `remainingQuestionsPerDifficulty`
|
|
307
|
+
* - `'quiz' | 'test-out' | 'placement' | 'unit-test'` — uses `questions` and `finalized`
|
|
308
|
+
*/
|
|
309
|
+
type GetAssessmentProgressResponse = PowerPath100ProgressResponse | StandardProgressResponse
|
|
310
|
+
|
|
311
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
312
|
+
// GET NEXT QUESTION (getNextQuestion)
|
|
313
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Result from getting the next question in a PowerPath 100 lesson.
|
|
317
|
+
*/
|
|
318
|
+
interface GetNextQuestionResponse {
|
|
319
|
+
/** Current PowerPath score of the student in this lesson */
|
|
320
|
+
score: number
|
|
321
|
+
/** The next question to present */
|
|
322
|
+
question: PowerPathTestQuestion
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
326
|
+
// UPDATE STUDENT QUESTION RESPONSE (updateStudentQuestionResponse)
|
|
327
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Response feedback for a student's answer.
|
|
331
|
+
*/
|
|
332
|
+
interface ResponseResultFeedback {
|
|
333
|
+
identifier?: string
|
|
334
|
+
value?: string
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* Result of processing a student's response.
|
|
339
|
+
*/
|
|
340
|
+
interface ResponseResult {
|
|
341
|
+
/** Whether the student's response is correct */
|
|
342
|
+
isCorrect: boolean
|
|
343
|
+
/** Score for this specific response (0 or 1) */
|
|
344
|
+
score: number
|
|
345
|
+
/** Optional feedback */
|
|
346
|
+
feedback?: ResponseResultFeedback
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
/**
|
|
350
|
+
* Result from updating a student's response in a PowerPath 100 lesson.
|
|
351
|
+
*
|
|
352
|
+
* Includes the updated PowerPath score, response correctness, and accuracy stats.
|
|
353
|
+
*/
|
|
354
|
+
interface PowerPath100UpdateResponseResult {
|
|
355
|
+
lessonType: 'powerpath-100'
|
|
356
|
+
/** Updated PowerPath score */
|
|
357
|
+
powerpathScore: number
|
|
358
|
+
/** Result of processing the response */
|
|
359
|
+
responseResult: ResponseResult
|
|
360
|
+
/** Assessment result for the question (for debugging) */
|
|
361
|
+
questionResult?: unknown
|
|
362
|
+
/** Assessment result for the test (for debugging) */
|
|
363
|
+
testResult?: unknown
|
|
364
|
+
/** Accuracy of the student's attempted questions */
|
|
365
|
+
accuracy: number
|
|
366
|
+
/** Number of correct questions answered */
|
|
367
|
+
correctQuestions: number
|
|
368
|
+
/** Total number of questions */
|
|
369
|
+
totalQuestions: number
|
|
370
|
+
/** XP earned */
|
|
371
|
+
xp: number | null
|
|
372
|
+
/** XP multiplier */
|
|
373
|
+
multiplier: number | null
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* Result from updating a student's response in a quiz/test-out/placement/unit-test lesson.
|
|
378
|
+
*
|
|
379
|
+
* Minimal response — correctness is evaluated at finalization.
|
|
380
|
+
*/
|
|
381
|
+
interface StandardUpdateResponseResult {
|
|
382
|
+
lessonType: 'quiz' | 'test-out' | 'placement' | 'unit-test'
|
|
383
|
+
/** Assessment result for the question (for debugging) */
|
|
384
|
+
questionResult?: unknown
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
/**
|
|
388
|
+
* Result from updating a student question response.
|
|
389
|
+
*
|
|
390
|
+
* Discriminated union on `lessonType`:
|
|
391
|
+
* - `'powerpath-100'` — includes score, accuracy, and response correctness
|
|
392
|
+
* - Other lesson types — minimal, evaluated at finalization
|
|
393
|
+
*/
|
|
394
|
+
type UpdateStudentQuestionResponseResult =
|
|
395
|
+
| PowerPath100UpdateResponseResult
|
|
396
|
+
| StandardUpdateResponseResult
|
|
397
|
+
|
|
398
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
399
|
+
// FINALIZE ASSESSMENT (finalStudentAssessmentResponse)
|
|
400
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
401
|
+
|
|
402
|
+
/**
|
|
403
|
+
* Result from finalizing a test assessment.
|
|
404
|
+
*
|
|
405
|
+
* Returned after all questions have been answered and the lesson is
|
|
406
|
+
* evaluated. Not applicable to `powerpath-100` or external test lessons.
|
|
407
|
+
*/
|
|
408
|
+
interface FinalizeAssessmentResponse {
|
|
409
|
+
/** Type of the lesson that was finalized */
|
|
410
|
+
lessonType: PowerPathLessonType
|
|
411
|
+
/** Whether the lesson has been finalized */
|
|
412
|
+
finalized: boolean
|
|
413
|
+
/** The attempt number */
|
|
414
|
+
attempt: number
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
418
|
+
// TEST OUT (testOut)
|
|
419
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* Result from getting the test-out lesson for a student/course.
|
|
423
|
+
*
|
|
424
|
+
* Returns the test-out lesson reference, finalization status,
|
|
425
|
+
* and optional external tool credentials.
|
|
426
|
+
*/
|
|
427
|
+
interface TestOutResponse {
|
|
428
|
+
lessonType: 'test-out'
|
|
429
|
+
/** ID of the test-out lesson, or null if none exists */
|
|
430
|
+
lessonId: string | null
|
|
431
|
+
/** Whether the test-out has been finalized in the current attempt */
|
|
432
|
+
finalized: boolean
|
|
433
|
+
/** Tool provider for the test-out lesson, or null if internal */
|
|
434
|
+
toolProvider: string | null
|
|
435
|
+
/** Attempt number */
|
|
436
|
+
attempt?: number
|
|
437
|
+
/** Credentials for accessing the assigned test on external tool */
|
|
438
|
+
credentials?: {
|
|
439
|
+
email: string
|
|
440
|
+
password: string
|
|
441
|
+
}
|
|
442
|
+
/** Assignment ID on external tool for results retrieval */
|
|
443
|
+
assignmentId?: string
|
|
444
|
+
/** Class ID on external tool for results retrieval */
|
|
445
|
+
classId?: string
|
|
446
|
+
/** URL of the test on external tool */
|
|
447
|
+
testUrl?: string
|
|
448
|
+
/** ID of the test on external tool */
|
|
449
|
+
testId?: string
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
453
|
+
// IMPORT EXTERNAL RESULTS (importExternalTestAssignmentResults)
|
|
454
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* Result from importing external test assignment results.
|
|
458
|
+
*
|
|
459
|
+
* Response shape varies by tool provider. Contains at minimum a success indicator.
|
|
460
|
+
*/
|
|
461
|
+
interface ImportExternalResultsResponse {
|
|
462
|
+
[key: string]: unknown
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
466
|
+
// PLACEMENT
|
|
467
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
468
|
+
|
|
469
|
+
/**
|
|
470
|
+
* Result from getting all placement tests.
|
|
471
|
+
*/
|
|
472
|
+
interface GetAllPlacementTestsResponse {
|
|
473
|
+
placementTests: unknown[]
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
/**
|
|
477
|
+
* Result from getting current placement level.
|
|
478
|
+
*/
|
|
479
|
+
interface GetCurrentLevelResponse {
|
|
480
|
+
gradeLevel?: unknown
|
|
481
|
+
onboarded?: boolean
|
|
482
|
+
availableTests: number
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* Result from getting the next placement test.
|
|
487
|
+
*/
|
|
488
|
+
interface GetNextPlacementTestResponse {
|
|
489
|
+
availableTests: number
|
|
490
|
+
lesson: string
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
/**
|
|
494
|
+
* Result from getting subject progress.
|
|
495
|
+
*/
|
|
496
|
+
interface GetSubjectProgressResponse {
|
|
497
|
+
progress: unknown[]
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* Result from resetting placement.
|
|
502
|
+
*/
|
|
503
|
+
interface ResetPlacementResponse {
|
|
504
|
+
success: boolean
|
|
505
|
+
placementResultsDeleted: number
|
|
506
|
+
onboardingReset: boolean
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
510
|
+
// SCREENING
|
|
511
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
512
|
+
|
|
513
|
+
/**
|
|
514
|
+
* Result from screening getResults.
|
|
515
|
+
* Response shape depends on MAP integration configuration.
|
|
516
|
+
*/
|
|
517
|
+
interface ScreeningResultsResponse {
|
|
518
|
+
[key: string]: unknown
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
/**
|
|
522
|
+
* Result from screening getSession.
|
|
523
|
+
* Response shape depends on MAP integration configuration.
|
|
524
|
+
*/
|
|
525
|
+
interface ScreeningSessionResponse {
|
|
526
|
+
[key: string]: unknown
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
/**
|
|
530
|
+
* Result from resetting a screening session.
|
|
531
|
+
*/
|
|
532
|
+
interface ScreeningResetSessionResponse {
|
|
533
|
+
success?: boolean
|
|
534
|
+
[key: string]: unknown
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
/**
|
|
538
|
+
* Result from assigning a screening test.
|
|
539
|
+
*/
|
|
540
|
+
interface ScreeningAssignTestResponse {
|
|
541
|
+
success?: boolean
|
|
542
|
+
[key: string]: unknown
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
546
|
+
// LESSON PLANS
|
|
547
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
548
|
+
|
|
549
|
+
/**
|
|
550
|
+
* Result from creating a lesson plan.
|
|
551
|
+
*/
|
|
552
|
+
interface LessonPlanCreateResponse {
|
|
553
|
+
lessonPlanId: string
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
/**
|
|
557
|
+
* A lesson plan operation record.
|
|
558
|
+
*/
|
|
559
|
+
interface LessonPlanOperation {
|
|
560
|
+
id: string
|
|
561
|
+
type: string
|
|
562
|
+
payload?: unknown
|
|
563
|
+
reason?: string
|
|
564
|
+
createdAt: string
|
|
565
|
+
sequenceNumber: number
|
|
566
|
+
createdBy?: string
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
/**
|
|
570
|
+
* Response containing lesson plan operations.
|
|
571
|
+
*/
|
|
572
|
+
interface LessonPlanOperationsResponse {
|
|
573
|
+
operations: LessonPlanOperation[]
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
/**
|
|
577
|
+
* Result from a single lesson plan operation.
|
|
578
|
+
*/
|
|
579
|
+
interface LessonPlanOperationResult {
|
|
580
|
+
success: boolean
|
|
581
|
+
message?: string
|
|
582
|
+
operationId?: string
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
/**
|
|
586
|
+
* Result from syncing lesson plan operations.
|
|
587
|
+
*/
|
|
588
|
+
interface LessonPlanSyncResult {
|
|
589
|
+
success: boolean
|
|
590
|
+
message?: string
|
|
591
|
+
operationCount: number
|
|
592
|
+
operationResults: Array<{ success: boolean; errors?: Array<{ message: string }> }>
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
/**
|
|
596
|
+
* Result from syncing a course.
|
|
597
|
+
*/
|
|
598
|
+
interface LessonPlanCourseSyncResult {
|
|
599
|
+
lessonPlansAffected: string[]
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
/**
|
|
603
|
+
* Response containing a lesson plan.
|
|
604
|
+
*/
|
|
605
|
+
interface LessonPlanResponse {
|
|
606
|
+
lessonPlan: Record<string, unknown>
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
/**
|
|
610
|
+
* Response containing course progress.
|
|
611
|
+
*/
|
|
612
|
+
interface CourseProgressResponse {
|
|
613
|
+
lineItems: Record<string, unknown>[]
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
/**
|
|
617
|
+
* Result from updating student item response.
|
|
618
|
+
*/
|
|
619
|
+
interface UpdateStudentItemResponseResult {
|
|
620
|
+
success?: boolean
|
|
621
|
+
[key: string]: unknown
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
625
|
+
// SYLLABUS
|
|
626
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
627
|
+
|
|
628
|
+
/**
|
|
629
|
+
* Response containing syllabus data.
|
|
630
|
+
*/
|
|
631
|
+
interface SyllabusResponse {
|
|
632
|
+
syllabus?: unknown
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
type input<T> = T extends {
|
|
636
|
+
_zod: {
|
|
637
|
+
input: any;
|
|
638
|
+
};
|
|
639
|
+
} ? T["_zod"]["input"] : unknown;
|
|
640
|
+
|
|
641
|
+
/**
|
|
642
|
+
* PowerPath Schemas
|
|
643
|
+
*
|
|
644
|
+
* Zod schemas for the PowerPath adaptive learning API.
|
|
645
|
+
*/
|
|
646
|
+
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
declare const ExternalTestOut = ExternalTestBase.extend({
|
|
650
|
+
lessonType: z.literal('test-out'),
|
|
651
|
+
xp: z.number(),
|
|
652
|
+
})
|
|
653
|
+
|
|
654
|
+
declare const ExternalPlacement = ExternalTestBase.extend({
|
|
655
|
+
lessonType: z.literal('placement'),
|
|
656
|
+
courseIdOnFail: NonEmptyString.optional(),
|
|
657
|
+
xp: z.number().optional(),
|
|
658
|
+
})
|
|
659
|
+
|
|
660
|
+
declare const PowerPathCreateExternalPlacementTestInput = ExternalPlacement
|
|
661
|
+
|
|
662
|
+
declare const PowerPathCreateExternalTestOutInput = ExternalTestOut
|
|
663
|
+
|
|
664
|
+
declare const PowerPathCreateInternalTestInput = z.union([
|
|
665
|
+
InternalTestBase.extend({
|
|
666
|
+
testType: z.literal('qti'),
|
|
667
|
+
qti: z.object({
|
|
668
|
+
url: z.url(),
|
|
669
|
+
title: NonEmptyString.optional(),
|
|
670
|
+
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
671
|
+
}),
|
|
672
|
+
}),
|
|
673
|
+
InternalTestBase.extend({
|
|
674
|
+
testType: z.literal('assessment-bank'),
|
|
675
|
+
assessmentBank: z.object({
|
|
676
|
+
resources: z.array(
|
|
677
|
+
z.object({
|
|
678
|
+
url: z.url(),
|
|
679
|
+
title: NonEmptyString.optional(),
|
|
680
|
+
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
681
|
+
}),
|
|
682
|
+
),
|
|
683
|
+
}),
|
|
684
|
+
}),
|
|
685
|
+
])
|
|
686
|
+
|
|
687
|
+
declare const PowerPathCreateNewAttemptInput = z.object({
|
|
688
|
+
student: NonEmptyString,
|
|
689
|
+
lesson: NonEmptyString,
|
|
690
|
+
})
|
|
691
|
+
|
|
692
|
+
declare const PowerPathFinalStudentAssessmentResponseInput = z.object({
|
|
693
|
+
student: NonEmptyString,
|
|
694
|
+
lesson: NonEmptyString,
|
|
695
|
+
})
|
|
696
|
+
|
|
697
|
+
declare const PowerPathLessonPlansCreateInput = z.object({
|
|
698
|
+
courseId: NonEmptyString,
|
|
699
|
+
userId: NonEmptyString,
|
|
700
|
+
classId: NonEmptyString.optional(),
|
|
701
|
+
})
|
|
702
|
+
|
|
703
|
+
declare const PowerPathLessonPlanOperationInput = z.union([
|
|
704
|
+
z.object({
|
|
705
|
+
type: z.literal('set-skipped'),
|
|
706
|
+
payload: z.object({
|
|
707
|
+
target: LessonPlanTarget,
|
|
708
|
+
value: z.boolean(),
|
|
709
|
+
}),
|
|
710
|
+
}),
|
|
711
|
+
z.object({
|
|
712
|
+
type: z.literal('add-custom-resource'),
|
|
713
|
+
payload: z.object({
|
|
714
|
+
resource_id: NonEmptyString,
|
|
715
|
+
parent_component_id: NonEmptyString,
|
|
716
|
+
skipped: z.boolean().optional(),
|
|
717
|
+
}),
|
|
718
|
+
}),
|
|
719
|
+
z.object({
|
|
720
|
+
type: z.literal('move-item-before'),
|
|
721
|
+
payload: z.object({
|
|
722
|
+
target: LessonPlanTarget,
|
|
723
|
+
reference_id: NonEmptyString,
|
|
724
|
+
}),
|
|
725
|
+
}),
|
|
726
|
+
z.object({
|
|
727
|
+
type: z.literal('move-item-after'),
|
|
728
|
+
payload: z.object({
|
|
729
|
+
target: LessonPlanTarget,
|
|
730
|
+
reference_id: NonEmptyString,
|
|
731
|
+
}),
|
|
732
|
+
}),
|
|
733
|
+
z.object({
|
|
734
|
+
type: z.literal('move-item-to-start'),
|
|
735
|
+
payload: z.object({
|
|
736
|
+
target: LessonPlanTarget,
|
|
737
|
+
}),
|
|
738
|
+
}),
|
|
739
|
+
z.object({
|
|
740
|
+
type: z.literal('move-item-to-end'),
|
|
741
|
+
payload: z.object({
|
|
742
|
+
target: LessonPlanTarget,
|
|
743
|
+
}),
|
|
744
|
+
}),
|
|
745
|
+
z.object({
|
|
746
|
+
type: z.literal('change-item-parent'),
|
|
747
|
+
payload: z.object({
|
|
748
|
+
target: LessonPlanTarget,
|
|
749
|
+
new_parent_id: NonEmptyString,
|
|
750
|
+
position: z.enum(['start', 'end']).optional(),
|
|
751
|
+
}),
|
|
752
|
+
}),
|
|
753
|
+
])
|
|
754
|
+
|
|
755
|
+
declare const PowerPathLessonPlanOperationsInput = z.object({
|
|
756
|
+
operation: z.array(PowerPathLessonPlanOperationInput),
|
|
757
|
+
reason: NonEmptyString.optional(),
|
|
758
|
+
})
|
|
759
|
+
|
|
760
|
+
declare const PowerPathLessonPlanUpdateStudentItemResponseInput = z.object({
|
|
761
|
+
studentId: NonEmptyString,
|
|
762
|
+
componentResourceId: NonEmptyString,
|
|
763
|
+
result: z.object({
|
|
764
|
+
status: z.enum(['active', 'tobedeleted']),
|
|
765
|
+
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
766
|
+
score: z.number().optional(),
|
|
767
|
+
textScore: NonEmptyString.optional(),
|
|
768
|
+
scoreDate: NonEmptyString,
|
|
769
|
+
scorePercentile: z.number().optional(),
|
|
770
|
+
scoreStatus: ScoreStatus,
|
|
771
|
+
comment: NonEmptyString.optional(),
|
|
772
|
+
learningObjectiveSet: z
|
|
773
|
+
.array(
|
|
774
|
+
z.object({
|
|
775
|
+
source: NonEmptyString,
|
|
776
|
+
learningObjectiveResults: z.array(
|
|
777
|
+
z.object({
|
|
778
|
+
learningObjectiveId: NonEmptyString,
|
|
779
|
+
score: z.number().optional(),
|
|
780
|
+
textScore: NonEmptyString.optional(),
|
|
781
|
+
}),
|
|
782
|
+
),
|
|
783
|
+
}),
|
|
784
|
+
)
|
|
785
|
+
.optional(),
|
|
786
|
+
inProgress: NonEmptyString.optional(),
|
|
787
|
+
incomplete: NonEmptyString.optional(),
|
|
788
|
+
late: NonEmptyString.optional(),
|
|
789
|
+
missing: NonEmptyString.optional(),
|
|
790
|
+
}),
|
|
791
|
+
})
|
|
792
|
+
|
|
793
|
+
declare const PowerPathMakeExternalTestAssignmentInput = z.object({
|
|
794
|
+
student: NonEmptyString,
|
|
795
|
+
lesson: NonEmptyString,
|
|
796
|
+
applicationName: NonEmptyString.optional(),
|
|
797
|
+
testId: NonEmptyString.optional(),
|
|
798
|
+
skipCourseEnrollment: z.boolean().optional(),
|
|
799
|
+
})
|
|
800
|
+
|
|
801
|
+
declare const PowerPathPlacementResetUserPlacementInput = z.object({
|
|
802
|
+
student: NonEmptyString,
|
|
803
|
+
subject: TimebackSubject,
|
|
804
|
+
})
|
|
805
|
+
|
|
806
|
+
declare const PowerPathResetAttemptInput = z.object({
|
|
807
|
+
student: NonEmptyString,
|
|
808
|
+
lesson: NonEmptyString,
|
|
809
|
+
})
|
|
810
|
+
|
|
811
|
+
declare const PowerPathScreeningResetSessionInput = z.object({
|
|
812
|
+
userId: NonEmptyString,
|
|
813
|
+
})
|
|
814
|
+
|
|
815
|
+
declare const PowerPathScreeningAssignTestInput = z.object({
|
|
816
|
+
userId: NonEmptyString,
|
|
817
|
+
subject: z.enum(['Math', 'Reading', 'Language', 'Science']),
|
|
818
|
+
})
|
|
819
|
+
|
|
820
|
+
declare const PowerPathTestAssignmentsCreateInput = z.object({
|
|
821
|
+
student: NonEmptyString,
|
|
822
|
+
subject: TimebackSubject,
|
|
823
|
+
grade: TimebackGrade,
|
|
824
|
+
testName: NonEmptyString.optional(),
|
|
825
|
+
})
|
|
826
|
+
|
|
827
|
+
declare const PowerPathTestAssignmentsUpdateInput = z.object({
|
|
828
|
+
testName: NonEmptyString,
|
|
829
|
+
})
|
|
830
|
+
|
|
831
|
+
declare const PowerPathTestAssignmentsBulkInput = z.object({
|
|
832
|
+
items: z.array(PowerPathTestAssignmentItemInput),
|
|
833
|
+
})
|
|
834
|
+
|
|
835
|
+
declare const PowerPathTestAssignmentsImportInput = z.object({
|
|
836
|
+
spreadsheetUrl: z.url(),
|
|
837
|
+
sheet: NonEmptyString,
|
|
838
|
+
})
|
|
839
|
+
|
|
840
|
+
declare const PowerPathTestAssignmentsListParams = z.object({
|
|
841
|
+
student: NonEmptyString,
|
|
842
|
+
status: z
|
|
843
|
+
.enum(['assigned', 'in_progress', 'completed', 'failed', 'expired', 'cancelled'])
|
|
844
|
+
.optional(),
|
|
845
|
+
subject: NonEmptyString.optional(),
|
|
846
|
+
grade: TimebackGrade.optional(),
|
|
847
|
+
limit: z.number().int().positive().max(3000).optional(),
|
|
848
|
+
offset: z.number().int().nonnegative().optional(),
|
|
849
|
+
})
|
|
850
|
+
|
|
851
|
+
declare const PowerPathTestAssignmentsAdminParams = z.object({
|
|
852
|
+
student: NonEmptyString.optional(),
|
|
853
|
+
status: z
|
|
854
|
+
.enum(['assigned', 'in_progress', 'completed', 'failed', 'expired', 'cancelled'])
|
|
855
|
+
.optional(),
|
|
856
|
+
subject: NonEmptyString.optional(),
|
|
857
|
+
grade: TimebackGrade.optional(),
|
|
858
|
+
limit: z.number().int().positive().max(3000).optional(),
|
|
859
|
+
offset: z.number().int().nonnegative().optional(),
|
|
860
|
+
})
|
|
861
|
+
|
|
862
|
+
declare const PowerPathUpdateStudentQuestionResponseInput = z.object({
|
|
863
|
+
student: NonEmptyString,
|
|
864
|
+
question: NonEmptyString,
|
|
865
|
+
response: z.union([NonEmptyString, z.array(NonEmptyString)]).optional(),
|
|
866
|
+
responses: z.record(z.string(), z.union([NonEmptyString, z.array(NonEmptyString)])).optional(),
|
|
867
|
+
lesson: NonEmptyString,
|
|
868
|
+
})
|
|
869
|
+
|
|
870
|
+
declare const PowerPathGetAssessmentProgressParams = z.object({
|
|
871
|
+
student: NonEmptyString,
|
|
872
|
+
lesson: NonEmptyString,
|
|
873
|
+
attempt: z.number().int().positive().optional(),
|
|
874
|
+
})
|
|
875
|
+
|
|
876
|
+
declare const PowerPathGetNextQuestionParams = z.object({
|
|
877
|
+
student: NonEmptyString,
|
|
878
|
+
lesson: NonEmptyString,
|
|
879
|
+
})
|
|
880
|
+
|
|
881
|
+
declare const PowerPathGetAttemptsParams = z.object({
|
|
882
|
+
student: NonEmptyString,
|
|
883
|
+
lesson: NonEmptyString,
|
|
884
|
+
})
|
|
885
|
+
|
|
886
|
+
declare const PowerPathTestOutParams = z.object({
|
|
887
|
+
student: NonEmptyString,
|
|
888
|
+
lesson: NonEmptyString.optional(),
|
|
889
|
+
finalized: z.boolean().optional(),
|
|
890
|
+
toolProvider: NonEmptyString.optional(),
|
|
891
|
+
attempt: z.number().int().positive().optional(),
|
|
892
|
+
})
|
|
893
|
+
|
|
894
|
+
declare const PowerPathImportExternalTestAssignmentResultsParams = z.object({
|
|
895
|
+
student: NonEmptyString,
|
|
896
|
+
lesson: NonEmptyString,
|
|
897
|
+
applicationName: NonEmptyString.optional(),
|
|
898
|
+
})
|
|
899
|
+
|
|
900
|
+
declare const PowerPathPlacementQueryParams = z.object({
|
|
901
|
+
student: NonEmptyString,
|
|
902
|
+
subject: TimebackSubject,
|
|
903
|
+
})
|
|
904
|
+
|
|
905
|
+
declare const PowerPathSyllabusQueryParams = z.object({
|
|
906
|
+
status: z.enum(['active', 'tobedeleted']).optional(),
|
|
907
|
+
})
|
|
908
|
+
|
|
909
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
910
|
+
// TYPE EXPORTS (REQUEST INPUTS)
|
|
911
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
912
|
+
|
|
913
|
+
// Shorter type aliases (like OneRoster pattern: schema = OneRosterFoo, type = Foo)
|
|
914
|
+
type CreateExternalPlacementTestInput = input<
|
|
915
|
+
typeof PowerPathCreateExternalPlacementTestInput
|
|
916
|
+
>
|
|
917
|
+
type CreateExternalTestOutInput = input<typeof PowerPathCreateExternalTestOutInput>
|
|
918
|
+
type CreateInternalTestInput = input<typeof PowerPathCreateInternalTestInput>
|
|
919
|
+
type CreateNewAttemptInput = input<typeof PowerPathCreateNewAttemptInput>
|
|
920
|
+
type FinalStudentAssessmentResponseInput = input<
|
|
921
|
+
typeof PowerPathFinalStudentAssessmentResponseInput
|
|
922
|
+
>
|
|
923
|
+
type LessonPlansCreateInput = input<typeof PowerPathLessonPlansCreateInput>
|
|
924
|
+
type LessonPlanOperationInput = input<typeof PowerPathLessonPlanOperationInput>
|
|
925
|
+
type LessonPlanOperationsInput = input<typeof PowerPathLessonPlanOperationsInput>
|
|
926
|
+
type LessonPlanUpdateStudentItemResponseInput = input<
|
|
927
|
+
typeof PowerPathLessonPlanUpdateStudentItemResponseInput
|
|
928
|
+
>
|
|
929
|
+
type MakeExternalTestAssignmentInput = input<
|
|
930
|
+
typeof PowerPathMakeExternalTestAssignmentInput
|
|
931
|
+
>
|
|
932
|
+
type PlacementResetUserPlacementInput = input<
|
|
933
|
+
typeof PowerPathPlacementResetUserPlacementInput
|
|
934
|
+
>
|
|
935
|
+
type ResetAttemptInput = input<typeof PowerPathResetAttemptInput>
|
|
936
|
+
type ScreeningResetSessionInput = input<typeof PowerPathScreeningResetSessionInput>
|
|
937
|
+
type ScreeningAssignTestInput = input<typeof PowerPathScreeningAssignTestInput>
|
|
938
|
+
type TestAssignmentsCreateInput = input<typeof PowerPathTestAssignmentsCreateInput>
|
|
939
|
+
type TestAssignmentsUpdateInput = input<typeof PowerPathTestAssignmentsUpdateInput>
|
|
940
|
+
type TestAssignmentsBulkInput = input<typeof PowerPathTestAssignmentsBulkInput>
|
|
941
|
+
type TestAssignmentsImportInput = input<typeof PowerPathTestAssignmentsImportInput>
|
|
942
|
+
type TestAssignmentsListParams = input<typeof PowerPathTestAssignmentsListParams>
|
|
943
|
+
type TestAssignmentsAdminParams = input<typeof PowerPathTestAssignmentsAdminParams>
|
|
944
|
+
type UpdateStudentQuestionResponseInput = input<
|
|
945
|
+
typeof PowerPathUpdateStudentQuestionResponseInput
|
|
946
|
+
>
|
|
947
|
+
type GetAssessmentProgressParams = input<typeof PowerPathGetAssessmentProgressParams>
|
|
948
|
+
type GetNextQuestionParams = input<typeof PowerPathGetNextQuestionParams>
|
|
949
|
+
type GetAttemptsParams = input<typeof PowerPathGetAttemptsParams>
|
|
950
|
+
type TestOutParams = input<typeof PowerPathTestOutParams>
|
|
951
|
+
type ImportExternalTestAssignmentResultsParams = input<
|
|
952
|
+
typeof PowerPathImportExternalTestAssignmentResultsParams
|
|
953
|
+
>
|
|
954
|
+
type PlacementQueryParams = input<typeof PowerPathPlacementQueryParams>
|
|
955
|
+
type SyllabusQueryParams = input<typeof PowerPathSyllabusQueryParams>
|
|
956
|
+
|
|
957
|
+
export type { AssignmentResult, Attempt, BulkResult, CourseProgressResponse, CreateAttemptResponse, CreateExternalPlacementTestInput, CreateExternalTestOutInput, CreateInternalTestInput, CreateNewAttemptInput, ExternalTestCreateResponse, FinalStudentAssessmentResponseInput, FinalizeAssessmentResponse, GetAllPlacementTestsResponse, GetAssessmentProgressParams, GetAssessmentProgressResponse, GetAttemptsParams, GetAttemptsResponse, GetCurrentLevelResponse, GetNextPlacementTestResponse, GetNextQuestionParams, GetNextQuestionResponse, GetSubjectProgressResponse, ImportExternalResultsResponse, ImportExternalTestAssignmentResultsParams, LessonPlanCourseSyncResult, LessonPlanCreateResponse, LessonPlanOperation, LessonPlanOperationInput, LessonPlanOperationResult, LessonPlanOperationType, LessonPlanOperationsInput, LessonPlanOperationsResponse, LessonPlanResponse, LessonPlanSyncResult, LessonPlanUpdateStudentItemResponseInput, LessonPlansCreateInput, MakeExternalTestAssignmentInput, PaginationMeta, PlacementQueryParams, PlacementResetUserPlacementInput, PowerPath100ProgressResponse, PowerPath100UpdateResponseResult, PowerPathLessonType, PowerPathQuestionContent, PowerPathQuestionDifficulty, PowerPathQuestionResult, PowerPathTestQuestion, ResetAttemptInput, ResetAttemptResponse, ResetPlacementResponse, ResponseResult, ResponseResultFeedback, ScreeningAssignTestInput, ScreeningAssignTestResponse, ScreeningResetSessionInput, ScreeningResetSessionResponse, ScreeningResultsResponse, ScreeningSessionResponse, StandardProgressResponse, StandardUpdateResponseResult, SyllabusQueryParams, SyllabusResponse, TestAssignment, TestAssignmentStatus, TestAssignmentsAdminParams, TestAssignmentsBulkInput, TestAssignmentsCreateInput, TestAssignmentsImportInput, TestAssignmentsListParams, TestAssignmentsListResponse, TestAssignmentsUpdateInput, TestOutParams, TestOutResponse, UpdateStudentItemResponseResult, UpdateStudentQuestionResponseInput, UpdateStudentQuestionResponseResult };
|