@timeback/core 0.1.2 → 0.1.3
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/client.d.ts +13 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/errors.js +12 -2
- package/dist/index.js +19226 -728
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types.js +7 -0
- package/dist/utils.js +474 -18
- package/package.json +4 -3
package/dist/types/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export * as OneRoster from '@timeback/oneroster/types';
|
|
|
15
15
|
export * as Caliper from '@timeback/caliper/types';
|
|
16
16
|
export * as Edubridge from '@timeback/edubridge/types';
|
|
17
17
|
export * as Qti from '@timeback/qti/types';
|
|
18
|
+
export * as PowerPath from '@timeback/powerpath/types';
|
|
18
19
|
/**
|
|
19
20
|
* Supported Timeback platform implementations.
|
|
20
21
|
* Derived from PLATFORMS constant in {@link @timeback/internal-constants.PLATFORMS}.
|
|
@@ -33,6 +34,7 @@ export interface EnvServiceUrls {
|
|
|
33
34
|
caliper: string;
|
|
34
35
|
edubridge: string;
|
|
35
36
|
qti: string;
|
|
37
|
+
powerpath?: string;
|
|
36
38
|
authUrl: string;
|
|
37
39
|
}
|
|
38
40
|
/**
|
|
@@ -73,6 +75,8 @@ export interface ServiceUrls {
|
|
|
73
75
|
edubridge?: ServiceEndpoint;
|
|
74
76
|
/** QTI API endpoint */
|
|
75
77
|
qti?: ServiceEndpoint;
|
|
78
|
+
/** PowerPath API endpoint */
|
|
79
|
+
powerpath?: ServiceEndpoint;
|
|
76
80
|
}
|
|
77
81
|
/**
|
|
78
82
|
* Environment mode: URLs derived from platform and environment.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAM7D,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAA;AACtD,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAA;AAClD,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAA;AACtD,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -58,8 +58,15 @@ __export(exports_types4, {
|
|
|
58
58
|
default: () => types_default3
|
|
59
59
|
});
|
|
60
60
|
var types_default3 = undefined;
|
|
61
|
+
// ../powerpath/dist/types.js
|
|
62
|
+
var exports_types5 = {};
|
|
63
|
+
__export(exports_types5, {
|
|
64
|
+
default: () => types_default4
|
|
65
|
+
});
|
|
66
|
+
var types_default4 = undefined;
|
|
61
67
|
export {
|
|
62
68
|
exports_types4 as Qti,
|
|
69
|
+
exports_types5 as PowerPath,
|
|
63
70
|
exports_types as OneRoster,
|
|
64
71
|
exports_types3 as Edubridge,
|
|
65
72
|
exports_types2 as Caliper
|
package/dist/utils.js
CHANGED
|
@@ -485,6 +485,9 @@ var BEYONDAI_PATHS = {
|
|
|
485
485
|
},
|
|
486
486
|
edubridge: {
|
|
487
487
|
base: "/edubridge"
|
|
488
|
+
},
|
|
489
|
+
powerpath: {
|
|
490
|
+
base: "/powerpath"
|
|
488
491
|
}
|
|
489
492
|
};
|
|
490
493
|
var LEARNWITHAI_PATHS = {
|
|
@@ -500,7 +503,8 @@ var LEARNWITHAI_PATHS = {
|
|
|
500
503
|
gradebook: "/gradebook/1.0",
|
|
501
504
|
resources: "/resources/1.0"
|
|
502
505
|
},
|
|
503
|
-
edubridge: null
|
|
506
|
+
edubridge: null,
|
|
507
|
+
powerpath: null
|
|
504
508
|
};
|
|
505
509
|
var PLATFORM_PATHS = {
|
|
506
510
|
BEYOND_AI: BEYONDAI_PATHS,
|
|
@@ -520,7 +524,8 @@ function resolvePathProfiles(pathProfile, customPaths) {
|
|
|
520
524
|
return {
|
|
521
525
|
caliper: customPaths?.caliper ?? basePaths.caliper,
|
|
522
526
|
oneroster: customPaths?.oneroster ?? basePaths.oneroster,
|
|
523
|
-
edubridge: customPaths?.edubridge ?? basePaths.edubridge
|
|
527
|
+
edubridge: customPaths?.edubridge ?? basePaths.edubridge,
|
|
528
|
+
powerpath: customPaths?.powerpath ?? basePaths.powerpath
|
|
524
529
|
};
|
|
525
530
|
}
|
|
526
531
|
|
|
@@ -556,6 +561,10 @@ class TimebackProvider {
|
|
|
556
561
|
baseUrl: platformEndpoints.api[env],
|
|
557
562
|
authUrl: this.authUrl
|
|
558
563
|
},
|
|
564
|
+
powerpath: {
|
|
565
|
+
baseUrl: platformEndpoints.api[env],
|
|
566
|
+
authUrl: this.authUrl
|
|
567
|
+
},
|
|
559
568
|
caliper: {
|
|
560
569
|
baseUrl: platformEndpoints.caliper[env],
|
|
561
570
|
authUrl: this.authUrl
|
|
@@ -572,6 +581,7 @@ class TimebackProvider {
|
|
|
572
581
|
this.endpoints = {
|
|
573
582
|
oneroster: { baseUrl: config.baseUrl, authUrl: this.authUrl },
|
|
574
583
|
edubridge: { baseUrl: config.baseUrl, authUrl: this.authUrl },
|
|
584
|
+
powerpath: { baseUrl: config.baseUrl, authUrl: this.authUrl },
|
|
575
585
|
caliper: { baseUrl: config.baseUrl, authUrl: this.authUrl },
|
|
576
586
|
qti: { baseUrl: config.baseUrl, authUrl: this.authUrl }
|
|
577
587
|
};
|
|
@@ -14862,6 +14872,47 @@ var OneRosterUserRole = exports_external.enum([
|
|
|
14862
14872
|
"teacher"
|
|
14863
14873
|
]);
|
|
14864
14874
|
var EnrollmentRole = exports_external.enum(["administrator", "proctor", "student", "teacher"]);
|
|
14875
|
+
var ResourceType = exports_external.enum([
|
|
14876
|
+
"qti",
|
|
14877
|
+
"text",
|
|
14878
|
+
"audio",
|
|
14879
|
+
"video",
|
|
14880
|
+
"interactive",
|
|
14881
|
+
"visual",
|
|
14882
|
+
"course-material",
|
|
14883
|
+
"assessment-bank"
|
|
14884
|
+
]);
|
|
14885
|
+
var QtiSubType = exports_external.enum(["qti-test", "qti-question", "qti-stimulus", "qti-test-bank"]);
|
|
14886
|
+
var CourseMaterialSubType = exports_external.enum(["unit", "course", "resource-collection"]);
|
|
14887
|
+
var QuestionType = exports_external.enum([
|
|
14888
|
+
"choice",
|
|
14889
|
+
"order",
|
|
14890
|
+
"associate",
|
|
14891
|
+
"match",
|
|
14892
|
+
"hotspot",
|
|
14893
|
+
"hottext",
|
|
14894
|
+
"select-point",
|
|
14895
|
+
"graphic-order",
|
|
14896
|
+
"graphic-associate",
|
|
14897
|
+
"graphic-gap-match",
|
|
14898
|
+
"text-entry",
|
|
14899
|
+
"extended-text",
|
|
14900
|
+
"inline-choice",
|
|
14901
|
+
"upload",
|
|
14902
|
+
"slider",
|
|
14903
|
+
"drawing",
|
|
14904
|
+
"media",
|
|
14905
|
+
"custom"
|
|
14906
|
+
]);
|
|
14907
|
+
var Difficulty = exports_external.enum(["easy", "medium", "hard"]);
|
|
14908
|
+
var LearningObjectiveSetSchema = exports_external.array(exports_external.object({
|
|
14909
|
+
source: exports_external.string(),
|
|
14910
|
+
learningObjectiveIds: exports_external.array(exports_external.string())
|
|
14911
|
+
}));
|
|
14912
|
+
var FastFailConfigSchema = exports_external.object({
|
|
14913
|
+
consecutive_failures: exports_external.number().int().min(1).optional(),
|
|
14914
|
+
stagnation_limit: exports_external.number().int().min(1).optional()
|
|
14915
|
+
}).optional();
|
|
14865
14916
|
var LessonType = exports_external.enum(["powerpath-100", "quiz", "test-out", "placement", "unit-test", "alpha-read-article"]).nullable();
|
|
14866
14917
|
var IMSErrorResponse = exports_external.object({
|
|
14867
14918
|
imsx_codeMajor: exports_external.enum(["failure", "success"]),
|
|
@@ -14937,7 +14988,11 @@ var ActivityCompletedInput = exports_external.object({
|
|
|
14937
14988
|
eventTime: IsoDateTimeString.optional(),
|
|
14938
14989
|
metricsId: exports_external.string().optional(),
|
|
14939
14990
|
id: exports_external.string().optional(),
|
|
14940
|
-
extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
14991
|
+
extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
|
|
14992
|
+
attempt: exports_external.number().int().min(1).optional(),
|
|
14993
|
+
generatedExtensions: exports_external.object({
|
|
14994
|
+
pctCompleteApp: exports_external.number().optional()
|
|
14995
|
+
}).loose().optional()
|
|
14941
14996
|
}).strict();
|
|
14942
14997
|
var TimeSpentInput = exports_external.object({
|
|
14943
14998
|
actor: TimebackUser,
|
|
@@ -15052,16 +15107,59 @@ var CourseDefaults = exports_external.object({
|
|
|
15052
15107
|
level: exports_external.string().optional(),
|
|
15053
15108
|
metadata: CourseMetadata.optional()
|
|
15054
15109
|
});
|
|
15110
|
+
var CourseEnvOverrides = exports_external.object({
|
|
15111
|
+
level: exports_external.string().optional(),
|
|
15112
|
+
sensor: exports_external.string().url().optional(),
|
|
15113
|
+
launchUrl: exports_external.string().url().optional(),
|
|
15114
|
+
metadata: CourseMetadata.optional()
|
|
15115
|
+
});
|
|
15116
|
+
var CourseOverrides = exports_external.object({
|
|
15117
|
+
staging: CourseEnvOverrides.optional(),
|
|
15118
|
+
production: CourseEnvOverrides.optional()
|
|
15119
|
+
});
|
|
15055
15120
|
var CourseConfig = CourseDefaults.extend({
|
|
15056
15121
|
subject: TimebackSubject,
|
|
15057
|
-
grade: TimebackGrade,
|
|
15058
|
-
ids: CourseIds.nullable().optional()
|
|
15122
|
+
grade: TimebackGrade.optional(),
|
|
15123
|
+
ids: CourseIds.nullable().optional(),
|
|
15124
|
+
sensor: exports_external.string().url().optional(),
|
|
15125
|
+
launchUrl: exports_external.string().url().optional(),
|
|
15126
|
+
overrides: CourseOverrides.optional()
|
|
15059
15127
|
});
|
|
15060
15128
|
var TimebackConfig = exports_external.object({
|
|
15061
15129
|
name: exports_external.string().min(1, "App name is required"),
|
|
15062
15130
|
defaults: CourseDefaults.optional(),
|
|
15063
15131
|
courses: exports_external.array(CourseConfig).min(1, "At least one course is required"),
|
|
15064
|
-
|
|
15132
|
+
sensor: exports_external.string().url().optional(),
|
|
15133
|
+
launchUrl: exports_external.string().url().optional()
|
|
15134
|
+
}).refine((config2) => {
|
|
15135
|
+
return config2.courses.every((c) => c.grade !== undefined || c.courseCode !== undefined);
|
|
15136
|
+
}, {
|
|
15137
|
+
message: "Each course must have either a grade or a courseCode",
|
|
15138
|
+
path: ["courses"]
|
|
15139
|
+
}).refine((config2) => {
|
|
15140
|
+
const withGrade = config2.courses.filter((c) => c.grade !== undefined);
|
|
15141
|
+
const keys = withGrade.map((c) => `${c.subject}:${c.grade}`);
|
|
15142
|
+
return new Set(keys).size === keys.length;
|
|
15143
|
+
}, {
|
|
15144
|
+
message: "Duplicate (subject, grade) pair found; each must be unique",
|
|
15145
|
+
path: ["courses"]
|
|
15146
|
+
}).refine((config2) => {
|
|
15147
|
+
const withCode = config2.courses.filter((c) => c.courseCode !== undefined);
|
|
15148
|
+
const codes = withCode.map((c) => c.courseCode);
|
|
15149
|
+
return new Set(codes).size === codes.length;
|
|
15150
|
+
}, {
|
|
15151
|
+
message: "Duplicate courseCode found; each must be unique",
|
|
15152
|
+
path: ["courses"]
|
|
15153
|
+
}).refine((config2) => {
|
|
15154
|
+
return config2.courses.every((c) => c.sensor !== undefined || config2.sensor !== undefined);
|
|
15155
|
+
}, {
|
|
15156
|
+
message: "Each course must have an effective sensor; set a top-level `sensor` or per-course `sensor`",
|
|
15157
|
+
path: ["courses"]
|
|
15158
|
+
}).refine((config2) => {
|
|
15159
|
+
return config2.courses.every((c) => c.launchUrl !== undefined || config2.launchUrl !== undefined);
|
|
15160
|
+
}, {
|
|
15161
|
+
message: "Each course must have an effective launchUrl; set a top-level `launchUrl` or per-course `launchUrl`",
|
|
15162
|
+
path: ["courses"]
|
|
15065
15163
|
});
|
|
15066
15164
|
var EdubridgeDateString = exports_external.union([IsoDateString, IsoDateTimeString]);
|
|
15067
15165
|
var EduBridgeEnrollment = exports_external.object({
|
|
@@ -15310,20 +15408,45 @@ var OneRosterScoreScaleCreateInput = exports_external.object({
|
|
|
15310
15408
|
}).strict();
|
|
15311
15409
|
var OneRosterAssessmentLineItemCreateInput = exports_external.object({
|
|
15312
15410
|
sourcedId: NonEmptyString2.optional(),
|
|
15411
|
+
status: Status.optional(),
|
|
15412
|
+
dateLastModified: IsoDateTimeString.optional(),
|
|
15313
15413
|
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
15314
|
-
|
|
15315
|
-
|
|
15316
|
-
|
|
15317
|
-
|
|
15318
|
-
|
|
15319
|
-
|
|
15414
|
+
description: exports_external.string().nullable().optional(),
|
|
15415
|
+
class: Ref.nullable().optional(),
|
|
15416
|
+
parentAssessmentLineItem: Ref.nullable().optional(),
|
|
15417
|
+
scoreScale: Ref.nullable().optional(),
|
|
15418
|
+
resultValueMin: exports_external.number().nullable().optional(),
|
|
15419
|
+
resultValueMax: exports_external.number().nullable().optional(),
|
|
15420
|
+
component: Ref.nullable().optional(),
|
|
15421
|
+
componentResource: Ref.nullable().optional(),
|
|
15422
|
+
learningObjectiveSet: exports_external.array(exports_external.object({
|
|
15423
|
+
source: exports_external.string(),
|
|
15424
|
+
learningObjectiveIds: exports_external.array(exports_external.string())
|
|
15425
|
+
})).optional().nullable(),
|
|
15426
|
+
course: Ref.nullable().optional(),
|
|
15320
15427
|
metadata: Metadata
|
|
15321
15428
|
}).strict();
|
|
15429
|
+
var LearningObjectiveResult = exports_external.object({
|
|
15430
|
+
learningObjectiveId: exports_external.string(),
|
|
15431
|
+
score: exports_external.number().optional(),
|
|
15432
|
+
textScore: exports_external.string().optional()
|
|
15433
|
+
});
|
|
15434
|
+
var LearningObjectiveScoreSetSchema = exports_external.array(exports_external.object({
|
|
15435
|
+
source: exports_external.string(),
|
|
15436
|
+
learningObjectiveResults: exports_external.array(LearningObjectiveResult)
|
|
15437
|
+
}));
|
|
15322
15438
|
var OneRosterAssessmentResultCreateInput = exports_external.object({
|
|
15323
15439
|
sourcedId: NonEmptyString2.optional(),
|
|
15324
|
-
|
|
15440
|
+
status: Status.optional(),
|
|
15441
|
+
dateLastModified: IsoDateTimeString.optional(),
|
|
15442
|
+
metadata: Metadata,
|
|
15443
|
+
assessmentLineItem: Ref,
|
|
15325
15444
|
student: Ref,
|
|
15326
|
-
|
|
15445
|
+
score: exports_external.number().nullable().optional(),
|
|
15446
|
+
textScore: exports_external.string().nullable().optional(),
|
|
15447
|
+
scoreDate: exports_external.string().datetime(),
|
|
15448
|
+
scoreScale: Ref.nullable().optional(),
|
|
15449
|
+
scorePercentile: exports_external.number().nullable().optional(),
|
|
15327
15450
|
scoreStatus: exports_external.enum([
|
|
15328
15451
|
"exempt",
|
|
15329
15452
|
"fully graded",
|
|
@@ -15331,9 +15454,12 @@ var OneRosterAssessmentResultCreateInput = exports_external.object({
|
|
|
15331
15454
|
"partially graded",
|
|
15332
15455
|
"submitted"
|
|
15333
15456
|
]),
|
|
15334
|
-
|
|
15335
|
-
|
|
15336
|
-
|
|
15457
|
+
comment: exports_external.string().nullable().optional(),
|
|
15458
|
+
learningObjectiveSet: LearningObjectiveScoreSetSchema.nullable().optional(),
|
|
15459
|
+
inProgress: exports_external.string().nullable().optional(),
|
|
15460
|
+
incomplete: exports_external.string().nullable().optional(),
|
|
15461
|
+
late: exports_external.string().nullable().optional(),
|
|
15462
|
+
missing: exports_external.string().nullable().optional()
|
|
15337
15463
|
}).strict();
|
|
15338
15464
|
var OneRosterOrgCreateInput = exports_external.object({
|
|
15339
15465
|
sourcedId: NonEmptyString2.optional(),
|
|
@@ -15401,6 +15527,75 @@ var OneRosterCredentialInput = exports_external.object({
|
|
|
15401
15527
|
var OneRosterDemographicsCreateInput = exports_external.object({
|
|
15402
15528
|
sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string")
|
|
15403
15529
|
}).loose();
|
|
15530
|
+
var CommonResourceMetadataSchema = exports_external.object({
|
|
15531
|
+
type: ResourceType,
|
|
15532
|
+
subject: TimebackSubject.nullish(),
|
|
15533
|
+
grades: exports_external.array(TimebackGrade).nullish(),
|
|
15534
|
+
language: exports_external.string().nullish(),
|
|
15535
|
+
xp: exports_external.number().nullish(),
|
|
15536
|
+
url: exports_external.url().nullish(),
|
|
15537
|
+
keywords: exports_external.array(exports_external.string()).nullish(),
|
|
15538
|
+
learningObjectiveSet: LearningObjectiveSetSchema.nullish(),
|
|
15539
|
+
lessonType: exports_external.string().nullish()
|
|
15540
|
+
}).passthrough();
|
|
15541
|
+
var QtiMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15542
|
+
type: exports_external.literal("qti"),
|
|
15543
|
+
subType: QtiSubType,
|
|
15544
|
+
questionType: QuestionType.optional(),
|
|
15545
|
+
difficulty: Difficulty.optional()
|
|
15546
|
+
});
|
|
15547
|
+
var TextMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15548
|
+
type: exports_external.literal("text"),
|
|
15549
|
+
format: exports_external.string(),
|
|
15550
|
+
author: exports_external.string().optional(),
|
|
15551
|
+
pageCount: exports_external.number().optional()
|
|
15552
|
+
});
|
|
15553
|
+
var AudioMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15554
|
+
type: exports_external.literal("audio"),
|
|
15555
|
+
duration: exports_external.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),
|
|
15556
|
+
format: exports_external.string(),
|
|
15557
|
+
speaker: exports_external.string().optional()
|
|
15558
|
+
});
|
|
15559
|
+
var VideoMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15560
|
+
type: exports_external.literal("video"),
|
|
15561
|
+
duration: exports_external.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),
|
|
15562
|
+
captionsAvailable: exports_external.boolean().optional(),
|
|
15563
|
+
format: exports_external.string()
|
|
15564
|
+
});
|
|
15565
|
+
var InteractiveMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15566
|
+
type: exports_external.literal("interactive"),
|
|
15567
|
+
launchUrl: exports_external.url().optional(),
|
|
15568
|
+
toolProvider: exports_external.string().optional(),
|
|
15569
|
+
instructionalMethod: exports_external.string().optional(),
|
|
15570
|
+
courseIdOnFail: exports_external.string().nullable().optional(),
|
|
15571
|
+
fail_fast: FastFailConfigSchema
|
|
15572
|
+
});
|
|
15573
|
+
var VisualMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15574
|
+
type: exports_external.literal("visual"),
|
|
15575
|
+
format: exports_external.string(),
|
|
15576
|
+
resolution: exports_external.string().optional()
|
|
15577
|
+
});
|
|
15578
|
+
var CourseMaterialMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15579
|
+
type: exports_external.literal("course-material"),
|
|
15580
|
+
subType: CourseMaterialSubType,
|
|
15581
|
+
author: exports_external.string().optional(),
|
|
15582
|
+
format: exports_external.string(),
|
|
15583
|
+
instructionalMethod: exports_external.string().optional()
|
|
15584
|
+
});
|
|
15585
|
+
var AssessmentBankMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15586
|
+
type: exports_external.literal("assessment-bank"),
|
|
15587
|
+
resources: exports_external.array(exports_external.string())
|
|
15588
|
+
});
|
|
15589
|
+
var ResourceMetadataSchema = exports_external.discriminatedUnion("type", [
|
|
15590
|
+
QtiMetadataSchema,
|
|
15591
|
+
TextMetadataSchema,
|
|
15592
|
+
AudioMetadataSchema,
|
|
15593
|
+
VideoMetadataSchema,
|
|
15594
|
+
InteractiveMetadataSchema,
|
|
15595
|
+
VisualMetadataSchema,
|
|
15596
|
+
CourseMaterialMetadataSchema,
|
|
15597
|
+
AssessmentBankMetadataSchema
|
|
15598
|
+
]);
|
|
15404
15599
|
var OneRosterResourceCreateInput = exports_external.object({
|
|
15405
15600
|
sourcedId: NonEmptyString2.optional(),
|
|
15406
15601
|
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
@@ -15410,7 +15605,7 @@ var OneRosterResourceCreateInput = exports_external.object({
|
|
|
15410
15605
|
vendorId: exports_external.string().optional(),
|
|
15411
15606
|
applicationId: exports_external.string().optional(),
|
|
15412
15607
|
status: Status.optional(),
|
|
15413
|
-
metadata:
|
|
15608
|
+
metadata: ResourceMetadataSchema.nullable().optional()
|
|
15414
15609
|
}).strict();
|
|
15415
15610
|
var CourseStructureItem = exports_external.object({
|
|
15416
15611
|
url: NonEmptyString2.describe("courseStructure.url must be a non-empty string"),
|
|
@@ -15435,6 +15630,267 @@ var OneRosterBulkResultItem = exports_external.object({
|
|
|
15435
15630
|
student: Ref
|
|
15436
15631
|
}).loose();
|
|
15437
15632
|
var OneRosterBulkResultsInput = exports_external.array(OneRosterBulkResultItem).min(1, "results must have at least one item");
|
|
15633
|
+
var NonEmptyString3 = exports_external.string().trim().min(1);
|
|
15634
|
+
var ToolProvider = exports_external.enum(["edulastic", "mastery-track"]);
|
|
15635
|
+
var LessonTypeRequired = exports_external.enum([
|
|
15636
|
+
"powerpath-100",
|
|
15637
|
+
"quiz",
|
|
15638
|
+
"test-out",
|
|
15639
|
+
"placement",
|
|
15640
|
+
"unit-test",
|
|
15641
|
+
"alpha-read-article"
|
|
15642
|
+
]);
|
|
15643
|
+
var GradeArray = exports_external.array(TimebackGrade);
|
|
15644
|
+
var ResourceMetadata = exports_external.record(exports_external.string(), exports_external.unknown()).optional();
|
|
15645
|
+
var ExternalTestBase = exports_external.object({
|
|
15646
|
+
courseId: NonEmptyString3,
|
|
15647
|
+
lessonTitle: NonEmptyString3.optional(),
|
|
15648
|
+
launchUrl: exports_external.url().optional(),
|
|
15649
|
+
toolProvider: ToolProvider,
|
|
15650
|
+
unitTitle: NonEmptyString3.optional(),
|
|
15651
|
+
courseComponentSourcedId: NonEmptyString3.optional(),
|
|
15652
|
+
vendorId: NonEmptyString3.optional(),
|
|
15653
|
+
description: NonEmptyString3.optional(),
|
|
15654
|
+
resourceMetadata: ResourceMetadata.nullable().optional(),
|
|
15655
|
+
grades: GradeArray
|
|
15656
|
+
});
|
|
15657
|
+
var ExternalTestOut = ExternalTestBase.extend({
|
|
15658
|
+
lessonType: exports_external.literal("test-out"),
|
|
15659
|
+
xp: exports_external.number()
|
|
15660
|
+
});
|
|
15661
|
+
var ExternalPlacement = ExternalTestBase.extend({
|
|
15662
|
+
lessonType: exports_external.literal("placement"),
|
|
15663
|
+
courseIdOnFail: NonEmptyString3.optional(),
|
|
15664
|
+
xp: exports_external.number().optional()
|
|
15665
|
+
});
|
|
15666
|
+
var InternalTestBase = exports_external.object({
|
|
15667
|
+
courseId: NonEmptyString3,
|
|
15668
|
+
lessonType: LessonTypeRequired,
|
|
15669
|
+
lessonTitle: NonEmptyString3.optional(),
|
|
15670
|
+
unitTitle: NonEmptyString3.optional(),
|
|
15671
|
+
courseComponentSourcedId: NonEmptyString3.optional(),
|
|
15672
|
+
resourceMetadata: ResourceMetadata.nullable().optional(),
|
|
15673
|
+
xp: exports_external.number().optional(),
|
|
15674
|
+
grades: GradeArray.optional(),
|
|
15675
|
+
courseIdOnFail: NonEmptyString3.optional()
|
|
15676
|
+
});
|
|
15677
|
+
var PowerPathCreateInternalTestInput = exports_external.union([
|
|
15678
|
+
InternalTestBase.extend({
|
|
15679
|
+
testType: exports_external.literal("qti"),
|
|
15680
|
+
qti: exports_external.object({
|
|
15681
|
+
url: exports_external.url(),
|
|
15682
|
+
title: NonEmptyString3.optional(),
|
|
15683
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
15684
|
+
})
|
|
15685
|
+
}),
|
|
15686
|
+
InternalTestBase.extend({
|
|
15687
|
+
testType: exports_external.literal("assessment-bank"),
|
|
15688
|
+
assessmentBank: exports_external.object({
|
|
15689
|
+
resources: exports_external.array(exports_external.object({
|
|
15690
|
+
url: exports_external.url(),
|
|
15691
|
+
title: NonEmptyString3.optional(),
|
|
15692
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
15693
|
+
}))
|
|
15694
|
+
})
|
|
15695
|
+
})
|
|
15696
|
+
]);
|
|
15697
|
+
var PowerPathCreateNewAttemptInput = exports_external.object({
|
|
15698
|
+
student: NonEmptyString3,
|
|
15699
|
+
lesson: NonEmptyString3
|
|
15700
|
+
});
|
|
15701
|
+
var PowerPathFinalStudentAssessmentResponseInput = exports_external.object({
|
|
15702
|
+
student: NonEmptyString3,
|
|
15703
|
+
lesson: NonEmptyString3
|
|
15704
|
+
});
|
|
15705
|
+
var PowerPathLessonPlansCreateInput = exports_external.object({
|
|
15706
|
+
courseId: NonEmptyString3,
|
|
15707
|
+
userId: NonEmptyString3,
|
|
15708
|
+
classId: NonEmptyString3.optional()
|
|
15709
|
+
});
|
|
15710
|
+
var LessonPlanTarget = exports_external.object({
|
|
15711
|
+
type: exports_external.enum(["component", "resource"]),
|
|
15712
|
+
id: NonEmptyString3
|
|
15713
|
+
});
|
|
15714
|
+
var PowerPathLessonPlanOperationInput = exports_external.union([
|
|
15715
|
+
exports_external.object({
|
|
15716
|
+
type: exports_external.literal("set-skipped"),
|
|
15717
|
+
payload: exports_external.object({
|
|
15718
|
+
target: LessonPlanTarget,
|
|
15719
|
+
value: exports_external.boolean()
|
|
15720
|
+
})
|
|
15721
|
+
}),
|
|
15722
|
+
exports_external.object({
|
|
15723
|
+
type: exports_external.literal("add-custom-resource"),
|
|
15724
|
+
payload: exports_external.object({
|
|
15725
|
+
resource_id: NonEmptyString3,
|
|
15726
|
+
parent_component_id: NonEmptyString3,
|
|
15727
|
+
skipped: exports_external.boolean().optional()
|
|
15728
|
+
})
|
|
15729
|
+
}),
|
|
15730
|
+
exports_external.object({
|
|
15731
|
+
type: exports_external.literal("move-item-before"),
|
|
15732
|
+
payload: exports_external.object({
|
|
15733
|
+
target: LessonPlanTarget,
|
|
15734
|
+
reference_id: NonEmptyString3
|
|
15735
|
+
})
|
|
15736
|
+
}),
|
|
15737
|
+
exports_external.object({
|
|
15738
|
+
type: exports_external.literal("move-item-after"),
|
|
15739
|
+
payload: exports_external.object({
|
|
15740
|
+
target: LessonPlanTarget,
|
|
15741
|
+
reference_id: NonEmptyString3
|
|
15742
|
+
})
|
|
15743
|
+
}),
|
|
15744
|
+
exports_external.object({
|
|
15745
|
+
type: exports_external.literal("move-item-to-start"),
|
|
15746
|
+
payload: exports_external.object({
|
|
15747
|
+
target: LessonPlanTarget
|
|
15748
|
+
})
|
|
15749
|
+
}),
|
|
15750
|
+
exports_external.object({
|
|
15751
|
+
type: exports_external.literal("move-item-to-end"),
|
|
15752
|
+
payload: exports_external.object({
|
|
15753
|
+
target: LessonPlanTarget
|
|
15754
|
+
})
|
|
15755
|
+
}),
|
|
15756
|
+
exports_external.object({
|
|
15757
|
+
type: exports_external.literal("change-item-parent"),
|
|
15758
|
+
payload: exports_external.object({
|
|
15759
|
+
target: LessonPlanTarget,
|
|
15760
|
+
new_parent_id: NonEmptyString3,
|
|
15761
|
+
position: exports_external.enum(["start", "end"]).optional()
|
|
15762
|
+
})
|
|
15763
|
+
})
|
|
15764
|
+
]);
|
|
15765
|
+
var PowerPathLessonPlanOperationsInput = exports_external.object({
|
|
15766
|
+
operation: exports_external.array(PowerPathLessonPlanOperationInput),
|
|
15767
|
+
reason: NonEmptyString3.optional()
|
|
15768
|
+
});
|
|
15769
|
+
var PowerPathLessonPlanUpdateStudentItemResponseInput = exports_external.object({
|
|
15770
|
+
studentId: NonEmptyString3,
|
|
15771
|
+
componentResourceId: NonEmptyString3,
|
|
15772
|
+
result: exports_external.object({
|
|
15773
|
+
status: exports_external.enum(["active", "tobedeleted"]),
|
|
15774
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
|
|
15775
|
+
score: exports_external.number().optional(),
|
|
15776
|
+
textScore: NonEmptyString3.optional(),
|
|
15777
|
+
scoreDate: NonEmptyString3,
|
|
15778
|
+
scorePercentile: exports_external.number().optional(),
|
|
15779
|
+
scoreStatus: ScoreStatus,
|
|
15780
|
+
comment: NonEmptyString3.optional(),
|
|
15781
|
+
learningObjectiveSet: exports_external.array(exports_external.object({
|
|
15782
|
+
source: NonEmptyString3,
|
|
15783
|
+
learningObjectiveResults: exports_external.array(exports_external.object({
|
|
15784
|
+
learningObjectiveId: NonEmptyString3,
|
|
15785
|
+
score: exports_external.number().optional(),
|
|
15786
|
+
textScore: NonEmptyString3.optional()
|
|
15787
|
+
}))
|
|
15788
|
+
})).optional(),
|
|
15789
|
+
inProgress: NonEmptyString3.optional(),
|
|
15790
|
+
incomplete: NonEmptyString3.optional(),
|
|
15791
|
+
late: NonEmptyString3.optional(),
|
|
15792
|
+
missing: NonEmptyString3.optional()
|
|
15793
|
+
})
|
|
15794
|
+
});
|
|
15795
|
+
var PowerPathMakeExternalTestAssignmentInput = exports_external.object({
|
|
15796
|
+
student: NonEmptyString3,
|
|
15797
|
+
lesson: NonEmptyString3,
|
|
15798
|
+
applicationName: NonEmptyString3.optional(),
|
|
15799
|
+
testId: NonEmptyString3.optional(),
|
|
15800
|
+
skipCourseEnrollment: exports_external.boolean().optional()
|
|
15801
|
+
});
|
|
15802
|
+
var PowerPathPlacementResetUserPlacementInput = exports_external.object({
|
|
15803
|
+
student: NonEmptyString3,
|
|
15804
|
+
subject: TimebackSubject
|
|
15805
|
+
});
|
|
15806
|
+
var PowerPathResetAttemptInput = exports_external.object({
|
|
15807
|
+
student: NonEmptyString3,
|
|
15808
|
+
lesson: NonEmptyString3
|
|
15809
|
+
});
|
|
15810
|
+
var PowerPathScreeningResetSessionInput = exports_external.object({
|
|
15811
|
+
userId: NonEmptyString3
|
|
15812
|
+
});
|
|
15813
|
+
var PowerPathScreeningAssignTestInput = exports_external.object({
|
|
15814
|
+
userId: NonEmptyString3,
|
|
15815
|
+
subject: exports_external.enum(["Math", "Reading", "Language", "Science"])
|
|
15816
|
+
});
|
|
15817
|
+
var PowerPathTestAssignmentsCreateInput = exports_external.object({
|
|
15818
|
+
student: NonEmptyString3,
|
|
15819
|
+
subject: TimebackSubject,
|
|
15820
|
+
grade: TimebackGrade,
|
|
15821
|
+
testName: NonEmptyString3.optional()
|
|
15822
|
+
});
|
|
15823
|
+
var PowerPathTestAssignmentsUpdateInput = exports_external.object({
|
|
15824
|
+
testName: NonEmptyString3
|
|
15825
|
+
});
|
|
15826
|
+
var PowerPathTestAssignmentItemInput = exports_external.object({
|
|
15827
|
+
student: NonEmptyString3,
|
|
15828
|
+
subject: TimebackSubject,
|
|
15829
|
+
grade: TimebackGrade,
|
|
15830
|
+
testName: NonEmptyString3.optional()
|
|
15831
|
+
});
|
|
15832
|
+
var PowerPathTestAssignmentsBulkInput = exports_external.object({
|
|
15833
|
+
items: exports_external.array(PowerPathTestAssignmentItemInput)
|
|
15834
|
+
});
|
|
15835
|
+
var PowerPathTestAssignmentsImportInput = exports_external.object({
|
|
15836
|
+
spreadsheetUrl: exports_external.url(),
|
|
15837
|
+
sheet: NonEmptyString3
|
|
15838
|
+
});
|
|
15839
|
+
var PowerPathTestAssignmentsListParams = exports_external.object({
|
|
15840
|
+
student: NonEmptyString3,
|
|
15841
|
+
status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
|
|
15842
|
+
subject: NonEmptyString3.optional(),
|
|
15843
|
+
grade: TimebackGrade.optional(),
|
|
15844
|
+
limit: exports_external.number().int().positive().max(3000).optional(),
|
|
15845
|
+
offset: exports_external.number().int().nonnegative().optional()
|
|
15846
|
+
});
|
|
15847
|
+
var PowerPathTestAssignmentsAdminParams = exports_external.object({
|
|
15848
|
+
student: NonEmptyString3.optional(),
|
|
15849
|
+
status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
|
|
15850
|
+
subject: NonEmptyString3.optional(),
|
|
15851
|
+
grade: TimebackGrade.optional(),
|
|
15852
|
+
limit: exports_external.number().int().positive().max(3000).optional(),
|
|
15853
|
+
offset: exports_external.number().int().nonnegative().optional()
|
|
15854
|
+
});
|
|
15855
|
+
var PowerPathUpdateStudentQuestionResponseInput = exports_external.object({
|
|
15856
|
+
student: NonEmptyString3,
|
|
15857
|
+
question: NonEmptyString3,
|
|
15858
|
+
response: exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)]).optional(),
|
|
15859
|
+
responses: exports_external.record(exports_external.string(), exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)])).optional(),
|
|
15860
|
+
lesson: NonEmptyString3
|
|
15861
|
+
});
|
|
15862
|
+
var PowerPathGetAssessmentProgressParams = exports_external.object({
|
|
15863
|
+
student: NonEmptyString3,
|
|
15864
|
+
lesson: NonEmptyString3,
|
|
15865
|
+
attempt: exports_external.number().int().positive().optional()
|
|
15866
|
+
});
|
|
15867
|
+
var PowerPathGetNextQuestionParams = exports_external.object({
|
|
15868
|
+
student: NonEmptyString3,
|
|
15869
|
+
lesson: NonEmptyString3
|
|
15870
|
+
});
|
|
15871
|
+
var PowerPathGetAttemptsParams = exports_external.object({
|
|
15872
|
+
student: NonEmptyString3,
|
|
15873
|
+
lesson: NonEmptyString3
|
|
15874
|
+
});
|
|
15875
|
+
var PowerPathTestOutParams = exports_external.object({
|
|
15876
|
+
student: NonEmptyString3,
|
|
15877
|
+
lesson: NonEmptyString3.optional(),
|
|
15878
|
+
finalized: exports_external.boolean().optional(),
|
|
15879
|
+
toolProvider: NonEmptyString3.optional(),
|
|
15880
|
+
attempt: exports_external.number().int().positive().optional()
|
|
15881
|
+
});
|
|
15882
|
+
var PowerPathImportExternalTestAssignmentResultsParams = exports_external.object({
|
|
15883
|
+
student: NonEmptyString3,
|
|
15884
|
+
lesson: NonEmptyString3,
|
|
15885
|
+
applicationName: NonEmptyString3.optional()
|
|
15886
|
+
});
|
|
15887
|
+
var PowerPathPlacementQueryParams = exports_external.object({
|
|
15888
|
+
student: NonEmptyString3,
|
|
15889
|
+
subject: TimebackSubject
|
|
15890
|
+
});
|
|
15891
|
+
var PowerPathSyllabusQueryParams = exports_external.object({
|
|
15892
|
+
status: exports_external.enum(["active", "tobedeleted"]).optional()
|
|
15893
|
+
});
|
|
15438
15894
|
var QtiAssessmentItemType = exports_external.enum([
|
|
15439
15895
|
"choice",
|
|
15440
15896
|
"text-entry",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@timeback/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -30,12 +30,13 @@
|
|
|
30
30
|
"test": "bun test --no-env-file unit.test.ts"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@timeback/caliper": "0.1.
|
|
33
|
+
"@timeback/caliper": "0.1.2",
|
|
34
34
|
"@timeback/edubridge": "0.1.1",
|
|
35
35
|
"@timeback/internal-client-infra": "0.0.0",
|
|
36
36
|
"@timeback/internal-constants": "0.0.0",
|
|
37
37
|
"@timeback/internal-utils": "0.0.0",
|
|
38
|
-
"@timeback/oneroster": "0.1.
|
|
38
|
+
"@timeback/oneroster": "0.1.3",
|
|
39
|
+
"@timeback/powerpath": "0.1.1",
|
|
39
40
|
"@timeback/qti": "0.1.1",
|
|
40
41
|
"@types/bun": "latest"
|
|
41
42
|
},
|