timeback-studio 0.1.1 → 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/bin.js +948 -61
- package/dist/cli/commands/serve/config.d.ts +9 -3
- package/dist/cli/commands/serve/config.d.ts.map +1 -1
- package/dist/cli/commands/serve/index.d.ts.map +1 -1
- package/dist/cli/lib/onboarding/import.d.ts.map +1 -1
- package/dist/cli/lib/onboarding/types.d.ts +1 -1
- package/dist/cli/lib/onboarding/types.d.ts.map +1 -1
- package/dist/config/types.d.ts +1 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/index.js +948 -61
- package/dist/server/controllers/bootstrap.d.ts +6 -6
- package/dist/server/controllers/status.d.ts +58 -3
- package/dist/server/controllers/status.d.ts.map +1 -1
- package/dist/server/lib/middleware.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -14776,7 +14776,7 @@ async function loadCredentials(environment) {
|
|
|
14776
14776
|
}
|
|
14777
14777
|
// ../internal/cli-infra/src/ui.ts
|
|
14778
14778
|
function intro(title) {
|
|
14779
|
-
console.log();
|
|
14779
|
+
console.log("");
|
|
14780
14780
|
Ie(bgCyan(black(` ${title} `)));
|
|
14781
14781
|
}
|
|
14782
14782
|
var outro = {
|
|
@@ -14819,8 +14819,11 @@ var playcademyParser = {
|
|
|
14819
14819
|
import { existsSync } from "node:fs";
|
|
14820
14820
|
import { readFile as readFile2 } from "node:fs/promises";
|
|
14821
14821
|
import { basename, relative, resolve } from "node:path";
|
|
14822
|
-
import {
|
|
14822
|
+
import { pathToFileURL } from "node:url";
|
|
14823
14823
|
// ../types/src/zod/primitives.ts
|
|
14824
|
+
var IsoDateTimeRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/;
|
|
14825
|
+
var IsoDateTimeString = exports_external.string().min(1).regex(IsoDateTimeRegex, "must be a valid ISO 8601 datetime");
|
|
14826
|
+
var IsoDateString = exports_external.string().min(1).regex(/^\d{4}-\d{2}-\d{2}$/, "must be a valid ISO 8601 date (YYYY-MM-DD)");
|
|
14824
14827
|
var TimebackSubject = exports_external.enum([
|
|
14825
14828
|
"Reading",
|
|
14826
14829
|
"Language",
|
|
@@ -14830,7 +14833,8 @@ var TimebackSubject = exports_external.enum([
|
|
|
14830
14833
|
"Science",
|
|
14831
14834
|
"FastMath",
|
|
14832
14835
|
"Math",
|
|
14833
|
-
"None"
|
|
14836
|
+
"None",
|
|
14837
|
+
"Other"
|
|
14834
14838
|
]);
|
|
14835
14839
|
var TimebackGrade = exports_external.union([
|
|
14836
14840
|
exports_external.literal(-1),
|
|
@@ -14875,6 +14879,47 @@ var OneRosterUserRole = exports_external.enum([
|
|
|
14875
14879
|
"teacher"
|
|
14876
14880
|
]);
|
|
14877
14881
|
var EnrollmentRole = exports_external.enum(["administrator", "proctor", "student", "teacher"]);
|
|
14882
|
+
var ResourceType = exports_external.enum([
|
|
14883
|
+
"qti",
|
|
14884
|
+
"text",
|
|
14885
|
+
"audio",
|
|
14886
|
+
"video",
|
|
14887
|
+
"interactive",
|
|
14888
|
+
"visual",
|
|
14889
|
+
"course-material",
|
|
14890
|
+
"assessment-bank"
|
|
14891
|
+
]);
|
|
14892
|
+
var QtiSubType = exports_external.enum(["qti-test", "qti-question", "qti-stimulus", "qti-test-bank"]);
|
|
14893
|
+
var CourseMaterialSubType = exports_external.enum(["unit", "course", "resource-collection"]);
|
|
14894
|
+
var QuestionType = exports_external.enum([
|
|
14895
|
+
"choice",
|
|
14896
|
+
"order",
|
|
14897
|
+
"associate",
|
|
14898
|
+
"match",
|
|
14899
|
+
"hotspot",
|
|
14900
|
+
"hottext",
|
|
14901
|
+
"select-point",
|
|
14902
|
+
"graphic-order",
|
|
14903
|
+
"graphic-associate",
|
|
14904
|
+
"graphic-gap-match",
|
|
14905
|
+
"text-entry",
|
|
14906
|
+
"extended-text",
|
|
14907
|
+
"inline-choice",
|
|
14908
|
+
"upload",
|
|
14909
|
+
"slider",
|
|
14910
|
+
"drawing",
|
|
14911
|
+
"media",
|
|
14912
|
+
"custom"
|
|
14913
|
+
]);
|
|
14914
|
+
var Difficulty = exports_external.enum(["easy", "medium", "hard"]);
|
|
14915
|
+
var LearningObjectiveSetSchema = exports_external.array(exports_external.object({
|
|
14916
|
+
source: exports_external.string(),
|
|
14917
|
+
learningObjectiveIds: exports_external.array(exports_external.string())
|
|
14918
|
+
}));
|
|
14919
|
+
var FastFailConfigSchema = exports_external.object({
|
|
14920
|
+
consecutive_failures: exports_external.number().int().min(1).optional(),
|
|
14921
|
+
stagnation_limit: exports_external.number().int().min(1).optional()
|
|
14922
|
+
}).optional();
|
|
14878
14923
|
var LessonType = exports_external.enum(["powerpath-100", "quiz", "test-out", "placement", "unit-test", "alpha-read-article"]).nullable();
|
|
14879
14924
|
var IMSErrorResponse = exports_external.object({
|
|
14880
14925
|
imsx_codeMajor: exports_external.enum(["failure", "success"]),
|
|
@@ -14897,16 +14942,16 @@ var TimebackActivityContext = exports_external.object({
|
|
|
14897
14942
|
id: exports_external.string(),
|
|
14898
14943
|
type: exports_external.literal("TimebackActivityContext"),
|
|
14899
14944
|
subject: TimebackSubject,
|
|
14900
|
-
app: exports_external.object({ name: exports_external.string() })
|
|
14901
|
-
activity: exports_external.object({ id: exports_external.string().optional(), name: exports_external.string()
|
|
14902
|
-
course: exports_external.object({ id: exports_external.string(), name: exports_external.string() }),
|
|
14945
|
+
app: exports_external.object({ name: exports_external.string() }),
|
|
14946
|
+
activity: exports_external.object({ id: exports_external.string().optional(), name: exports_external.string() }).strict().optional(),
|
|
14947
|
+
course: exports_external.object({ id: exports_external.string().optional(), name: exports_external.string() }).strict().optional(),
|
|
14903
14948
|
process: exports_external.boolean().optional()
|
|
14904
14949
|
});
|
|
14905
14950
|
var CaliperEventBase = exports_external.object({
|
|
14906
14951
|
"@context": exports_external.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),
|
|
14907
14952
|
id: exports_external.string(),
|
|
14908
14953
|
type: exports_external.string(),
|
|
14909
|
-
eventTime:
|
|
14954
|
+
eventTime: IsoDateTimeString,
|
|
14910
14955
|
profile: exports_external.literal("TimebackProfile"),
|
|
14911
14956
|
actor: TimebackUser,
|
|
14912
14957
|
action: exports_external.string(),
|
|
@@ -14944,13 +14989,99 @@ var TimebackTimeSpentEvent = CaliperEventBase.extend({
|
|
|
14944
14989
|
action: exports_external.literal("SpentTime"),
|
|
14945
14990
|
generated: TimebackTimeSpentMetricsCollection
|
|
14946
14991
|
});
|
|
14992
|
+
var ActivityCompletedInput = exports_external.object({
|
|
14993
|
+
actor: TimebackUser,
|
|
14994
|
+
object: TimebackActivityContext,
|
|
14995
|
+
metrics: exports_external.array(TimebackActivityMetric).min(1, "metrics must contain at least one metric"),
|
|
14996
|
+
eventTime: IsoDateTimeString.optional(),
|
|
14997
|
+
metricsId: exports_external.string().optional(),
|
|
14998
|
+
id: exports_external.string().optional(),
|
|
14999
|
+
extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
|
|
15000
|
+
attempt: exports_external.number().int().min(1).optional(),
|
|
15001
|
+
generatedExtensions: exports_external.object({
|
|
15002
|
+
pctCompleteApp: exports_external.number().optional()
|
|
15003
|
+
}).loose().optional()
|
|
15004
|
+
}).strict();
|
|
15005
|
+
var TimeSpentInput = exports_external.object({
|
|
15006
|
+
actor: TimebackUser,
|
|
15007
|
+
object: TimebackActivityContext,
|
|
15008
|
+
metrics: exports_external.array(TimebackTimeMetric).min(1, "metrics must contain at least one metric"),
|
|
15009
|
+
eventTime: IsoDateTimeString.optional(),
|
|
15010
|
+
metricsId: exports_external.string().optional(),
|
|
15011
|
+
id: exports_external.string().optional(),
|
|
15012
|
+
extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
15013
|
+
}).strict();
|
|
14947
15014
|
var TimebackEvent = exports_external.union([TimebackActivityEvent, TimebackTimeSpentEvent]);
|
|
14948
15015
|
var CaliperEnvelope = exports_external.object({
|
|
14949
15016
|
sensor: exports_external.string(),
|
|
14950
|
-
sendTime:
|
|
15017
|
+
sendTime: IsoDateTimeString,
|
|
14951
15018
|
dataVersion: exports_external.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),
|
|
14952
15019
|
data: exports_external.array(TimebackEvent)
|
|
14953
15020
|
});
|
|
15021
|
+
var CaliperProfile = exports_external.enum([
|
|
15022
|
+
"AnnotationProfile",
|
|
15023
|
+
"AssessmentProfile",
|
|
15024
|
+
"ToolUseProfile",
|
|
15025
|
+
"GeneralProfile",
|
|
15026
|
+
"FeedbackProfile",
|
|
15027
|
+
"MediaProfile",
|
|
15028
|
+
"SurveyProfile",
|
|
15029
|
+
"ResourceManagementProfile",
|
|
15030
|
+
"ForumProfile",
|
|
15031
|
+
"AssignableProfile",
|
|
15032
|
+
"GradingProfile",
|
|
15033
|
+
"ReadingProfile",
|
|
15034
|
+
"SessionProfile",
|
|
15035
|
+
"SearchProfile",
|
|
15036
|
+
"ToolLaunchProfile",
|
|
15037
|
+
"TimebackProfile"
|
|
15038
|
+
]);
|
|
15039
|
+
var CaliperEntity = exports_external.union([exports_external.string(), exports_external.record(exports_external.string(), exports_external.unknown())]);
|
|
15040
|
+
var CaliperActor = exports_external.object({
|
|
15041
|
+
id: exports_external.string(),
|
|
15042
|
+
type: exports_external.string(),
|
|
15043
|
+
extensions: exports_external.object({
|
|
15044
|
+
email: exports_external.email()
|
|
15045
|
+
}).loose()
|
|
15046
|
+
}).strict();
|
|
15047
|
+
var CaliperEvent = exports_external.object({
|
|
15048
|
+
"@context": exports_external.string().optional(),
|
|
15049
|
+
id: exports_external.string(),
|
|
15050
|
+
type: exports_external.string(),
|
|
15051
|
+
actor: exports_external.union([exports_external.string(), CaliperActor, TimebackUser]),
|
|
15052
|
+
action: exports_external.string(),
|
|
15053
|
+
object: CaliperEntity,
|
|
15054
|
+
eventTime: IsoDateTimeString,
|
|
15055
|
+
profile: CaliperProfile,
|
|
15056
|
+
edApp: CaliperEntity.optional(),
|
|
15057
|
+
generated: CaliperEntity.optional(),
|
|
15058
|
+
target: CaliperEntity.optional(),
|
|
15059
|
+
referrer: CaliperEntity.optional(),
|
|
15060
|
+
group: CaliperEntity.optional(),
|
|
15061
|
+
membership: CaliperEntity.optional(),
|
|
15062
|
+
session: CaliperEntity.optional(),
|
|
15063
|
+
federatedSession: CaliperEntity.optional(),
|
|
15064
|
+
extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
15065
|
+
}).strict();
|
|
15066
|
+
var CaliperEnvelopeInput = exports_external.object({
|
|
15067
|
+
sensor: exports_external.string().min(1, "sensor must be a non-empty string"),
|
|
15068
|
+
sendTime: IsoDateTimeString,
|
|
15069
|
+
dataVersion: exports_external.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),
|
|
15070
|
+
data: exports_external.array(CaliperEvent).min(1, "data must contain at least one event")
|
|
15071
|
+
});
|
|
15072
|
+
var CaliperSendEventsInput = exports_external.object({
|
|
15073
|
+
sensor: exports_external.string().min(1, "sensor must be a non-empty string"),
|
|
15074
|
+
events: exports_external.array(CaliperEvent).min(1, "events must contain at least one event")
|
|
15075
|
+
});
|
|
15076
|
+
var CaliperListEventsParams = exports_external.object({
|
|
15077
|
+
limit: exports_external.number().int().positive().optional(),
|
|
15078
|
+
offset: exports_external.number().int().min(0).optional(),
|
|
15079
|
+
sensor: exports_external.string().min(1).optional(),
|
|
15080
|
+
startDate: IsoDateTimeString.optional(),
|
|
15081
|
+
endDate: IsoDateTimeString.optional(),
|
|
15082
|
+
actorId: exports_external.string().min(1).optional(),
|
|
15083
|
+
actorEmail: exports_external.email().optional()
|
|
15084
|
+
}).strict();
|
|
14954
15085
|
// ../types/src/zod/config.ts
|
|
14955
15086
|
var CourseIds = exports_external.object({
|
|
14956
15087
|
staging: exports_external.string().optional(),
|
|
@@ -14985,23 +15116,67 @@ var CourseDefaults = exports_external.object({
|
|
|
14985
15116
|
level: exports_external.string().optional(),
|
|
14986
15117
|
metadata: CourseMetadata.optional()
|
|
14987
15118
|
});
|
|
15119
|
+
var CourseEnvOverrides = exports_external.object({
|
|
15120
|
+
level: exports_external.string().optional(),
|
|
15121
|
+
sensor: exports_external.string().url().optional(),
|
|
15122
|
+
launchUrl: exports_external.string().url().optional(),
|
|
15123
|
+
metadata: CourseMetadata.optional()
|
|
15124
|
+
});
|
|
15125
|
+
var CourseOverrides = exports_external.object({
|
|
15126
|
+
staging: CourseEnvOverrides.optional(),
|
|
15127
|
+
production: CourseEnvOverrides.optional()
|
|
15128
|
+
});
|
|
14988
15129
|
var CourseConfig = CourseDefaults.extend({
|
|
14989
15130
|
subject: TimebackSubject,
|
|
14990
|
-
grade: TimebackGrade,
|
|
14991
|
-
ids: CourseIds.nullable().optional()
|
|
15131
|
+
grade: TimebackGrade.optional(),
|
|
15132
|
+
ids: CourseIds.nullable().optional(),
|
|
15133
|
+
sensor: exports_external.string().url().optional(),
|
|
15134
|
+
launchUrl: exports_external.string().url().optional(),
|
|
15135
|
+
overrides: CourseOverrides.optional()
|
|
14992
15136
|
});
|
|
14993
15137
|
var TimebackConfig = exports_external.object({
|
|
14994
15138
|
name: exports_external.string().min(1, "App name is required"),
|
|
14995
15139
|
defaults: CourseDefaults.optional(),
|
|
14996
15140
|
courses: exports_external.array(CourseConfig).min(1, "At least one course is required"),
|
|
14997
|
-
|
|
15141
|
+
sensor: exports_external.string().url().optional(),
|
|
15142
|
+
launchUrl: exports_external.string().url().optional()
|
|
15143
|
+
}).refine((config2) => {
|
|
15144
|
+
return config2.courses.every((c) => c.grade !== undefined || c.courseCode !== undefined);
|
|
15145
|
+
}, {
|
|
15146
|
+
message: "Each course must have either a grade or a courseCode",
|
|
15147
|
+
path: ["courses"]
|
|
15148
|
+
}).refine((config2) => {
|
|
15149
|
+
const withGrade = config2.courses.filter((c) => c.grade !== undefined);
|
|
15150
|
+
const keys = withGrade.map((c) => `${c.subject}:${c.grade}`);
|
|
15151
|
+
return new Set(keys).size === keys.length;
|
|
15152
|
+
}, {
|
|
15153
|
+
message: "Duplicate (subject, grade) pair found; each must be unique",
|
|
15154
|
+
path: ["courses"]
|
|
15155
|
+
}).refine((config2) => {
|
|
15156
|
+
const withCode = config2.courses.filter((c) => c.courseCode !== undefined);
|
|
15157
|
+
const codes = withCode.map((c) => c.courseCode);
|
|
15158
|
+
return new Set(codes).size === codes.length;
|
|
15159
|
+
}, {
|
|
15160
|
+
message: "Duplicate courseCode found; each must be unique",
|
|
15161
|
+
path: ["courses"]
|
|
15162
|
+
}).refine((config2) => {
|
|
15163
|
+
return config2.courses.every((c) => c.sensor !== undefined || config2.sensor !== undefined);
|
|
15164
|
+
}, {
|
|
15165
|
+
message: "Each course must have an effective sensor; set a top-level `sensor` or per-course `sensor`",
|
|
15166
|
+
path: ["courses"]
|
|
15167
|
+
}).refine((config2) => {
|
|
15168
|
+
return config2.courses.every((c) => c.launchUrl !== undefined || config2.launchUrl !== undefined);
|
|
15169
|
+
}, {
|
|
15170
|
+
message: "Each course must have an effective launchUrl; set a top-level `launchUrl` or per-course `launchUrl`",
|
|
15171
|
+
path: ["courses"]
|
|
14998
15172
|
});
|
|
14999
15173
|
// ../types/src/zod/edubridge.ts
|
|
15174
|
+
var EdubridgeDateString = exports_external.union([IsoDateString, IsoDateTimeString]);
|
|
15000
15175
|
var EduBridgeEnrollment = exports_external.object({
|
|
15001
15176
|
id: exports_external.string(),
|
|
15002
15177
|
role: exports_external.string(),
|
|
15003
|
-
beginDate:
|
|
15004
|
-
endDate:
|
|
15178
|
+
beginDate: EdubridgeDateString.nullable(),
|
|
15179
|
+
endDate: EdubridgeDateString.nullable(),
|
|
15005
15180
|
metadata: exports_external.object({
|
|
15006
15181
|
goals: exports_external.object({ dailyXp: exports_external.number().optional() }).optional(),
|
|
15007
15182
|
metrics: exports_external.object({ totalXp: exports_external.number().optional(), totalLessons: exports_external.number().optional() }).optional()
|
|
@@ -15035,17 +15210,699 @@ var EduBridgeAnalyticsFacts = exports_external.record(exports_external.string(),
|
|
|
15035
15210
|
var EduBridgeEnrollmentAnalyticsResponse = exports_external.object({
|
|
15036
15211
|
message: exports_external.string(),
|
|
15037
15212
|
enrollmentId: exports_external.string(),
|
|
15038
|
-
startDate:
|
|
15039
|
-
endDate:
|
|
15213
|
+
startDate: EdubridgeDateString,
|
|
15214
|
+
endDate: EdubridgeDateString,
|
|
15040
15215
|
facts: EduBridgeAnalyticsFacts,
|
|
15041
15216
|
factsByApp: exports_external.unknown()
|
|
15042
15217
|
});
|
|
15218
|
+
var NonEmptyString = exports_external.string().trim().min(1);
|
|
15219
|
+
var EmailOrStudentId = exports_external.object({
|
|
15220
|
+
email: exports_external.email().optional(),
|
|
15221
|
+
studentId: NonEmptyString.optional()
|
|
15222
|
+
}).superRefine((value, ctx) => {
|
|
15223
|
+
if (!value.email && !value.studentId) {
|
|
15224
|
+
ctx.addIssue({
|
|
15225
|
+
code: exports_external.ZodIssueCode.custom,
|
|
15226
|
+
message: "must provide either email or studentId",
|
|
15227
|
+
path: ["email"]
|
|
15228
|
+
});
|
|
15229
|
+
ctx.addIssue({
|
|
15230
|
+
code: exports_external.ZodIssueCode.custom,
|
|
15231
|
+
message: "must provide either email or studentId",
|
|
15232
|
+
path: ["studentId"]
|
|
15233
|
+
});
|
|
15234
|
+
}
|
|
15235
|
+
});
|
|
15043
15236
|
var SubjectTrackInput = exports_external.object({
|
|
15044
|
-
subject:
|
|
15045
|
-
gradeLevel:
|
|
15046
|
-
targetCourseId:
|
|
15237
|
+
subject: NonEmptyString,
|
|
15238
|
+
gradeLevel: NonEmptyString,
|
|
15239
|
+
targetCourseId: NonEmptyString,
|
|
15047
15240
|
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
15048
15241
|
});
|
|
15242
|
+
var SubjectTrackUpsertInput = SubjectTrackInput.extend({
|
|
15243
|
+
id: NonEmptyString
|
|
15244
|
+
});
|
|
15245
|
+
var EdubridgeListEnrollmentsParams = exports_external.object({
|
|
15246
|
+
userId: NonEmptyString
|
|
15247
|
+
});
|
|
15248
|
+
var EdubridgeEnrollOptions = exports_external.object({
|
|
15249
|
+
sourcedId: NonEmptyString.optional(),
|
|
15250
|
+
role: EnrollmentRole.optional(),
|
|
15251
|
+
beginDate: EdubridgeDateString.optional(),
|
|
15252
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
15253
|
+
});
|
|
15254
|
+
var EdubridgeUsersListParams = exports_external.object({
|
|
15255
|
+
fields: exports_external.string().optional(),
|
|
15256
|
+
limit: exports_external.number().int().positive().optional(),
|
|
15257
|
+
offset: exports_external.number().int().nonnegative().optional(),
|
|
15258
|
+
sort: exports_external.string().optional(),
|
|
15259
|
+
orderBy: exports_external.enum(["asc", "desc"]).optional(),
|
|
15260
|
+
filter: exports_external.string().optional(),
|
|
15261
|
+
search: exports_external.string().optional(),
|
|
15262
|
+
roles: exports_external.array(OneRosterUserRole).min(1),
|
|
15263
|
+
orgSourcedIds: exports_external.array(NonEmptyString).optional()
|
|
15264
|
+
});
|
|
15265
|
+
var EdubridgeActivityParams = EmailOrStudentId.extend({
|
|
15266
|
+
startDate: EdubridgeDateString,
|
|
15267
|
+
endDate: EdubridgeDateString,
|
|
15268
|
+
timezone: exports_external.string().optional()
|
|
15269
|
+
});
|
|
15270
|
+
var EdubridgeWeeklyFactsParams = EmailOrStudentId.extend({
|
|
15271
|
+
weekDate: EdubridgeDateString,
|
|
15272
|
+
timezone: exports_external.string().optional()
|
|
15273
|
+
});
|
|
15274
|
+
var EdubridgeEnrollmentFactsParams = exports_external.object({
|
|
15275
|
+
enrollmentId: NonEmptyString,
|
|
15276
|
+
startDate: EdubridgeDateString.optional(),
|
|
15277
|
+
endDate: EdubridgeDateString.optional(),
|
|
15278
|
+
timezone: exports_external.string().optional()
|
|
15279
|
+
});
|
|
15280
|
+
// ../types/src/zod/oneroster.ts
|
|
15281
|
+
var NonEmptyString2 = exports_external.string().min(1);
|
|
15282
|
+
var Status = exports_external.enum(["active", "tobedeleted"]);
|
|
15283
|
+
var Metadata = exports_external.record(exports_external.string(), exports_external.unknown()).nullable().optional();
|
|
15284
|
+
var Ref = exports_external.object({
|
|
15285
|
+
sourcedId: NonEmptyString2,
|
|
15286
|
+
type: exports_external.string().optional(),
|
|
15287
|
+
href: exports_external.string().optional()
|
|
15288
|
+
}).strict();
|
|
15289
|
+
var OneRosterDateString = exports_external.union([IsoDateString, IsoDateTimeString]);
|
|
15290
|
+
var OneRosterUserRoleInput = exports_external.object({
|
|
15291
|
+
roleType: exports_external.enum(["primary", "secondary"]),
|
|
15292
|
+
role: OneRosterUserRole,
|
|
15293
|
+
org: Ref,
|
|
15294
|
+
userProfile: exports_external.string().optional(),
|
|
15295
|
+
metadata: Metadata,
|
|
15296
|
+
beginDate: OneRosterDateString.optional(),
|
|
15297
|
+
endDate: OneRosterDateString.optional()
|
|
15298
|
+
}).strict();
|
|
15299
|
+
var OneRosterUserCreateInput = exports_external.object({
|
|
15300
|
+
sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string"),
|
|
15301
|
+
status: Status.optional(),
|
|
15302
|
+
enabledUser: exports_external.boolean(),
|
|
15303
|
+
givenName: NonEmptyString2.describe("givenName must be a non-empty string"),
|
|
15304
|
+
familyName: NonEmptyString2.describe("familyName must be a non-empty string"),
|
|
15305
|
+
middleName: NonEmptyString2.optional(),
|
|
15306
|
+
username: NonEmptyString2.optional(),
|
|
15307
|
+
email: exports_external.email().optional(),
|
|
15308
|
+
roles: exports_external.array(OneRosterUserRoleInput).min(1, "roles must include at least one role"),
|
|
15309
|
+
userIds: exports_external.array(exports_external.object({
|
|
15310
|
+
type: NonEmptyString2,
|
|
15311
|
+
identifier: NonEmptyString2
|
|
15312
|
+
}).strict()).optional(),
|
|
15313
|
+
agents: exports_external.array(Ref).optional(),
|
|
15314
|
+
grades: exports_external.array(TimebackGrade).optional(),
|
|
15315
|
+
identifier: NonEmptyString2.optional(),
|
|
15316
|
+
sms: NonEmptyString2.optional(),
|
|
15317
|
+
phone: NonEmptyString2.optional(),
|
|
15318
|
+
pronouns: NonEmptyString2.optional(),
|
|
15319
|
+
password: NonEmptyString2.optional(),
|
|
15320
|
+
metadata: Metadata
|
|
15321
|
+
}).strict();
|
|
15322
|
+
var OneRosterCourseCreateInput = exports_external.object({
|
|
15323
|
+
sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string").optional(),
|
|
15324
|
+
status: Status.optional(),
|
|
15325
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
15326
|
+
org: Ref,
|
|
15327
|
+
courseCode: NonEmptyString2.optional(),
|
|
15328
|
+
subjects: exports_external.array(TimebackSubject).optional(),
|
|
15329
|
+
grades: exports_external.array(TimebackGrade).optional(),
|
|
15330
|
+
level: NonEmptyString2.optional(),
|
|
15331
|
+
metadata: Metadata
|
|
15332
|
+
}).strict();
|
|
15333
|
+
var OneRosterClassCreateInput = exports_external.object({
|
|
15334
|
+
sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string").optional(),
|
|
15335
|
+
status: Status.optional(),
|
|
15336
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
15337
|
+
terms: exports_external.array(Ref).min(1, "terms must have at least one item"),
|
|
15338
|
+
course: Ref,
|
|
15339
|
+
org: Ref,
|
|
15340
|
+
classCode: NonEmptyString2.optional(),
|
|
15341
|
+
classType: exports_external.enum(["homeroom", "scheduled"]).optional(),
|
|
15342
|
+
location: NonEmptyString2.optional(),
|
|
15343
|
+
grades: exports_external.array(TimebackGrade).optional(),
|
|
15344
|
+
subjects: exports_external.array(TimebackSubject).optional(),
|
|
15345
|
+
subjectCodes: exports_external.array(NonEmptyString2).optional(),
|
|
15346
|
+
periods: exports_external.array(NonEmptyString2).optional(),
|
|
15347
|
+
metadata: Metadata
|
|
15348
|
+
}).strict();
|
|
15349
|
+
var StringBoolean = exports_external.enum(["true", "false"]);
|
|
15350
|
+
var OneRosterEnrollmentCreateInput = exports_external.object({
|
|
15351
|
+
sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string").optional(),
|
|
15352
|
+
status: Status.optional(),
|
|
15353
|
+
user: Ref,
|
|
15354
|
+
class: Ref,
|
|
15355
|
+
school: Ref.optional(),
|
|
15356
|
+
role: OneRosterUserRole,
|
|
15357
|
+
primary: StringBoolean.optional(),
|
|
15358
|
+
beginDate: OneRosterDateString.optional(),
|
|
15359
|
+
endDate: OneRosterDateString.optional(),
|
|
15360
|
+
metadata: Metadata
|
|
15361
|
+
}).strict();
|
|
15362
|
+
var OneRosterCategoryCreateInput = exports_external.object({
|
|
15363
|
+
sourcedId: NonEmptyString2.optional(),
|
|
15364
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
15365
|
+
status: Status,
|
|
15366
|
+
weight: exports_external.number().nullable().optional(),
|
|
15367
|
+
metadata: Metadata
|
|
15368
|
+
}).strict();
|
|
15369
|
+
var OneRosterLineItemCreateInput = exports_external.object({
|
|
15370
|
+
sourcedId: NonEmptyString2.optional(),
|
|
15371
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
15372
|
+
class: Ref,
|
|
15373
|
+
school: Ref,
|
|
15374
|
+
category: Ref,
|
|
15375
|
+
assignDate: OneRosterDateString,
|
|
15376
|
+
dueDate: OneRosterDateString,
|
|
15377
|
+
status: Status,
|
|
15378
|
+
description: exports_external.string().optional(),
|
|
15379
|
+
resultValueMin: exports_external.number().nullable().optional(),
|
|
15380
|
+
resultValueMax: exports_external.number().nullable().optional(),
|
|
15381
|
+
scoreScale: Ref.optional(),
|
|
15382
|
+
metadata: Metadata
|
|
15383
|
+
}).strict();
|
|
15384
|
+
var OneRosterResultCreateInput = exports_external.object({
|
|
15385
|
+
sourcedId: NonEmptyString2.optional(),
|
|
15386
|
+
lineItem: Ref,
|
|
15387
|
+
student: Ref,
|
|
15388
|
+
class: Ref.optional(),
|
|
15389
|
+
scoreDate: OneRosterDateString,
|
|
15390
|
+
scoreStatus: exports_external.enum([
|
|
15391
|
+
"exempt",
|
|
15392
|
+
"fully graded",
|
|
15393
|
+
"not submitted",
|
|
15394
|
+
"partially graded",
|
|
15395
|
+
"submitted"
|
|
15396
|
+
]),
|
|
15397
|
+
score: exports_external.number().nullable().optional(),
|
|
15398
|
+
textScore: exports_external.string().nullable().optional(),
|
|
15399
|
+
status: Status,
|
|
15400
|
+
comment: exports_external.string().nullable().optional(),
|
|
15401
|
+
metadata: Metadata
|
|
15402
|
+
}).strict();
|
|
15403
|
+
var OneRosterScoreScaleCreateInput = exports_external.object({
|
|
15404
|
+
sourcedId: NonEmptyString2.optional(),
|
|
15405
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
15406
|
+
status: Status.optional(),
|
|
15407
|
+
type: exports_external.string().optional(),
|
|
15408
|
+
class: Ref.optional(),
|
|
15409
|
+
course: Ref.nullable().optional(),
|
|
15410
|
+
scoreScaleValue: exports_external.array(exports_external.object({
|
|
15411
|
+
itemValueLHS: NonEmptyString2,
|
|
15412
|
+
itemValueRHS: NonEmptyString2,
|
|
15413
|
+
value: exports_external.string().optional(),
|
|
15414
|
+
description: exports_external.string().optional()
|
|
15415
|
+
}).strict()).optional(),
|
|
15416
|
+
minScore: exports_external.number().optional(),
|
|
15417
|
+
maxScore: exports_external.number().optional(),
|
|
15418
|
+
metadata: Metadata
|
|
15419
|
+
}).strict();
|
|
15420
|
+
var OneRosterAssessmentLineItemCreateInput = exports_external.object({
|
|
15421
|
+
sourcedId: NonEmptyString2.optional(),
|
|
15422
|
+
status: Status.optional(),
|
|
15423
|
+
dateLastModified: IsoDateTimeString.optional(),
|
|
15424
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
15425
|
+
description: exports_external.string().nullable().optional(),
|
|
15426
|
+
class: Ref.nullable().optional(),
|
|
15427
|
+
parentAssessmentLineItem: Ref.nullable().optional(),
|
|
15428
|
+
scoreScale: Ref.nullable().optional(),
|
|
15429
|
+
resultValueMin: exports_external.number().nullable().optional(),
|
|
15430
|
+
resultValueMax: exports_external.number().nullable().optional(),
|
|
15431
|
+
component: Ref.nullable().optional(),
|
|
15432
|
+
componentResource: Ref.nullable().optional(),
|
|
15433
|
+
learningObjectiveSet: exports_external.array(exports_external.object({
|
|
15434
|
+
source: exports_external.string(),
|
|
15435
|
+
learningObjectiveIds: exports_external.array(exports_external.string())
|
|
15436
|
+
})).optional().nullable(),
|
|
15437
|
+
course: Ref.nullable().optional(),
|
|
15438
|
+
metadata: Metadata
|
|
15439
|
+
}).strict();
|
|
15440
|
+
var LearningObjectiveResult = exports_external.object({
|
|
15441
|
+
learningObjectiveId: exports_external.string(),
|
|
15442
|
+
score: exports_external.number().optional(),
|
|
15443
|
+
textScore: exports_external.string().optional()
|
|
15444
|
+
});
|
|
15445
|
+
var LearningObjectiveScoreSetSchema = exports_external.array(exports_external.object({
|
|
15446
|
+
source: exports_external.string(),
|
|
15447
|
+
learningObjectiveResults: exports_external.array(LearningObjectiveResult)
|
|
15448
|
+
}));
|
|
15449
|
+
var OneRosterAssessmentResultCreateInput = exports_external.object({
|
|
15450
|
+
sourcedId: NonEmptyString2.optional(),
|
|
15451
|
+
status: Status.optional(),
|
|
15452
|
+
dateLastModified: IsoDateTimeString.optional(),
|
|
15453
|
+
metadata: Metadata,
|
|
15454
|
+
assessmentLineItem: Ref,
|
|
15455
|
+
student: Ref,
|
|
15456
|
+
score: exports_external.number().nullable().optional(),
|
|
15457
|
+
textScore: exports_external.string().nullable().optional(),
|
|
15458
|
+
scoreDate: exports_external.string().datetime(),
|
|
15459
|
+
scoreScale: Ref.nullable().optional(),
|
|
15460
|
+
scorePercentile: exports_external.number().nullable().optional(),
|
|
15461
|
+
scoreStatus: exports_external.enum([
|
|
15462
|
+
"exempt",
|
|
15463
|
+
"fully graded",
|
|
15464
|
+
"not submitted",
|
|
15465
|
+
"partially graded",
|
|
15466
|
+
"submitted"
|
|
15467
|
+
]),
|
|
15468
|
+
comment: exports_external.string().nullable().optional(),
|
|
15469
|
+
learningObjectiveSet: LearningObjectiveScoreSetSchema.nullable().optional(),
|
|
15470
|
+
inProgress: exports_external.string().nullable().optional(),
|
|
15471
|
+
incomplete: exports_external.string().nullable().optional(),
|
|
15472
|
+
late: exports_external.string().nullable().optional(),
|
|
15473
|
+
missing: exports_external.string().nullable().optional()
|
|
15474
|
+
}).strict();
|
|
15475
|
+
var OneRosterOrgCreateInput = exports_external.object({
|
|
15476
|
+
sourcedId: NonEmptyString2.optional(),
|
|
15477
|
+
status: Status.optional(),
|
|
15478
|
+
name: NonEmptyString2.describe("name must be a non-empty string"),
|
|
15479
|
+
type: OrganizationType,
|
|
15480
|
+
identifier: NonEmptyString2.optional(),
|
|
15481
|
+
parent: Ref.optional(),
|
|
15482
|
+
metadata: Metadata
|
|
15483
|
+
}).strict();
|
|
15484
|
+
var OneRosterSchoolCreateInput = exports_external.object({
|
|
15485
|
+
sourcedId: NonEmptyString2.optional(),
|
|
15486
|
+
status: Status.optional(),
|
|
15487
|
+
name: NonEmptyString2.describe("name must be a non-empty string"),
|
|
15488
|
+
type: exports_external.literal("school").optional(),
|
|
15489
|
+
identifier: NonEmptyString2.optional(),
|
|
15490
|
+
parent: Ref.optional(),
|
|
15491
|
+
metadata: Metadata
|
|
15492
|
+
}).strict();
|
|
15493
|
+
var OneRosterAcademicSessionCreateInput = exports_external.object({
|
|
15494
|
+
sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string"),
|
|
15495
|
+
status: Status,
|
|
15496
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
15497
|
+
startDate: OneRosterDateString,
|
|
15498
|
+
endDate: OneRosterDateString,
|
|
15499
|
+
type: exports_external.enum(["gradingPeriod", "semester", "schoolYear", "term"]),
|
|
15500
|
+
schoolYear: NonEmptyString2.describe("schoolYear must be a non-empty string"),
|
|
15501
|
+
org: Ref,
|
|
15502
|
+
parent: Ref.optional(),
|
|
15503
|
+
children: exports_external.array(Ref).optional(),
|
|
15504
|
+
metadata: Metadata
|
|
15505
|
+
}).strict();
|
|
15506
|
+
var OneRosterComponentResourceCreateInput = exports_external.object({
|
|
15507
|
+
sourcedId: NonEmptyString2.optional(),
|
|
15508
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
15509
|
+
courseComponent: Ref,
|
|
15510
|
+
resource: Ref,
|
|
15511
|
+
status: Status,
|
|
15512
|
+
metadata: Metadata
|
|
15513
|
+
}).strict();
|
|
15514
|
+
var OneRosterCourseComponentCreateInput = exports_external.object({
|
|
15515
|
+
sourcedId: NonEmptyString2.optional(),
|
|
15516
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
15517
|
+
course: Ref,
|
|
15518
|
+
status: Status,
|
|
15519
|
+
metadata: Metadata
|
|
15520
|
+
}).strict();
|
|
15521
|
+
var OneRosterEnrollInput = exports_external.object({
|
|
15522
|
+
sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string"),
|
|
15523
|
+
role: exports_external.enum(["student", "teacher"]),
|
|
15524
|
+
primary: StringBoolean.optional(),
|
|
15525
|
+
beginDate: OneRosterDateString.optional(),
|
|
15526
|
+
endDate: OneRosterDateString.optional(),
|
|
15527
|
+
metadata: Metadata
|
|
15528
|
+
}).strict();
|
|
15529
|
+
var OneRosterAgentInput = exports_external.object({
|
|
15530
|
+
agentSourcedId: NonEmptyString2.describe("agentSourcedId must be a non-empty string")
|
|
15531
|
+
}).strict();
|
|
15532
|
+
var OneRosterCredentialInput = exports_external.object({
|
|
15533
|
+
type: NonEmptyString2.describe("type must be a non-empty string"),
|
|
15534
|
+
username: NonEmptyString2.describe("username must be a non-empty string"),
|
|
15535
|
+
password: exports_external.string().optional(),
|
|
15536
|
+
metadata: Metadata
|
|
15537
|
+
}).strict();
|
|
15538
|
+
var OneRosterDemographicsCreateInput = exports_external.object({
|
|
15539
|
+
sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string")
|
|
15540
|
+
}).loose();
|
|
15541
|
+
var CommonResourceMetadataSchema = exports_external.object({
|
|
15542
|
+
type: ResourceType,
|
|
15543
|
+
subject: TimebackSubject.nullish(),
|
|
15544
|
+
grades: exports_external.array(TimebackGrade).nullish(),
|
|
15545
|
+
language: exports_external.string().nullish(),
|
|
15546
|
+
xp: exports_external.number().nullish(),
|
|
15547
|
+
url: exports_external.url().nullish(),
|
|
15548
|
+
keywords: exports_external.array(exports_external.string()).nullish(),
|
|
15549
|
+
learningObjectiveSet: LearningObjectiveSetSchema.nullish(),
|
|
15550
|
+
lessonType: exports_external.string().nullish()
|
|
15551
|
+
}).passthrough();
|
|
15552
|
+
var QtiMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15553
|
+
type: exports_external.literal("qti"),
|
|
15554
|
+
subType: QtiSubType,
|
|
15555
|
+
questionType: QuestionType.optional(),
|
|
15556
|
+
difficulty: Difficulty.optional()
|
|
15557
|
+
});
|
|
15558
|
+
var TextMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15559
|
+
type: exports_external.literal("text"),
|
|
15560
|
+
format: exports_external.string(),
|
|
15561
|
+
author: exports_external.string().optional(),
|
|
15562
|
+
pageCount: exports_external.number().optional()
|
|
15563
|
+
});
|
|
15564
|
+
var AudioMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15565
|
+
type: exports_external.literal("audio"),
|
|
15566
|
+
duration: exports_external.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),
|
|
15567
|
+
format: exports_external.string(),
|
|
15568
|
+
speaker: exports_external.string().optional()
|
|
15569
|
+
});
|
|
15570
|
+
var VideoMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15571
|
+
type: exports_external.literal("video"),
|
|
15572
|
+
duration: exports_external.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),
|
|
15573
|
+
captionsAvailable: exports_external.boolean().optional(),
|
|
15574
|
+
format: exports_external.string()
|
|
15575
|
+
});
|
|
15576
|
+
var InteractiveMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15577
|
+
type: exports_external.literal("interactive"),
|
|
15578
|
+
launchUrl: exports_external.url().optional(),
|
|
15579
|
+
toolProvider: exports_external.string().optional(),
|
|
15580
|
+
instructionalMethod: exports_external.string().optional(),
|
|
15581
|
+
courseIdOnFail: exports_external.string().nullable().optional(),
|
|
15582
|
+
fail_fast: FastFailConfigSchema
|
|
15583
|
+
});
|
|
15584
|
+
var VisualMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15585
|
+
type: exports_external.literal("visual"),
|
|
15586
|
+
format: exports_external.string(),
|
|
15587
|
+
resolution: exports_external.string().optional()
|
|
15588
|
+
});
|
|
15589
|
+
var CourseMaterialMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15590
|
+
type: exports_external.literal("course-material"),
|
|
15591
|
+
subType: CourseMaterialSubType,
|
|
15592
|
+
author: exports_external.string().optional(),
|
|
15593
|
+
format: exports_external.string(),
|
|
15594
|
+
instructionalMethod: exports_external.string().optional()
|
|
15595
|
+
});
|
|
15596
|
+
var AssessmentBankMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
15597
|
+
type: exports_external.literal("assessment-bank"),
|
|
15598
|
+
resources: exports_external.array(exports_external.string())
|
|
15599
|
+
});
|
|
15600
|
+
var ResourceMetadataSchema = exports_external.discriminatedUnion("type", [
|
|
15601
|
+
QtiMetadataSchema,
|
|
15602
|
+
TextMetadataSchema,
|
|
15603
|
+
AudioMetadataSchema,
|
|
15604
|
+
VideoMetadataSchema,
|
|
15605
|
+
InteractiveMetadataSchema,
|
|
15606
|
+
VisualMetadataSchema,
|
|
15607
|
+
CourseMaterialMetadataSchema,
|
|
15608
|
+
AssessmentBankMetadataSchema
|
|
15609
|
+
]);
|
|
15610
|
+
var OneRosterResourceCreateInput = exports_external.object({
|
|
15611
|
+
sourcedId: NonEmptyString2.optional(),
|
|
15612
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
15613
|
+
vendorResourceId: NonEmptyString2.describe("vendorResourceId must be a non-empty string"),
|
|
15614
|
+
roles: exports_external.array(exports_external.enum(["primary", "secondary"])).optional(),
|
|
15615
|
+
importance: exports_external.enum(["primary", "secondary"]).optional(),
|
|
15616
|
+
vendorId: exports_external.string().optional(),
|
|
15617
|
+
applicationId: exports_external.string().optional(),
|
|
15618
|
+
status: Status.optional(),
|
|
15619
|
+
metadata: ResourceMetadataSchema.nullable().optional()
|
|
15620
|
+
}).strict();
|
|
15621
|
+
var CourseStructureItem = exports_external.object({
|
|
15622
|
+
url: NonEmptyString2.describe("courseStructure.url must be a non-empty string"),
|
|
15623
|
+
skillCode: NonEmptyString2.describe("courseStructure.skillCode must be a non-empty string"),
|
|
15624
|
+
lessonCode: NonEmptyString2.describe("courseStructure.lessonCode must be a non-empty string"),
|
|
15625
|
+
title: NonEmptyString2.describe("courseStructure.title must be a non-empty string"),
|
|
15626
|
+
"unit-title": NonEmptyString2.describe("courseStructure.unit-title must be a non-empty string"),
|
|
15627
|
+
status: NonEmptyString2.describe("courseStructure.status must be a non-empty string"),
|
|
15628
|
+
xp: exports_external.number()
|
|
15629
|
+
}).loose();
|
|
15630
|
+
var OneRosterCourseStructureInput = exports_external.object({
|
|
15631
|
+
course: exports_external.object({
|
|
15632
|
+
sourcedId: NonEmptyString2.describe("course.sourcedId must be a non-empty string").optional(),
|
|
15633
|
+
title: NonEmptyString2.describe("course.title must be a non-empty string"),
|
|
15634
|
+
org: Ref,
|
|
15635
|
+
status: Status,
|
|
15636
|
+
metadata: Metadata
|
|
15637
|
+
}).strict(),
|
|
15638
|
+
courseStructure: exports_external.record(exports_external.string(), CourseStructureItem)
|
|
15639
|
+
}).strict();
|
|
15640
|
+
var OneRosterBulkResultItem = exports_external.object({
|
|
15641
|
+
student: Ref
|
|
15642
|
+
}).loose();
|
|
15643
|
+
var OneRosterBulkResultsInput = exports_external.array(OneRosterBulkResultItem).min(1, "results must have at least one item");
|
|
15644
|
+
// ../types/src/zod/powerpath.ts
|
|
15645
|
+
var NonEmptyString3 = exports_external.string().trim().min(1);
|
|
15646
|
+
var ToolProvider = exports_external.enum(["edulastic", "mastery-track"]);
|
|
15647
|
+
var LessonTypeRequired = exports_external.enum([
|
|
15648
|
+
"powerpath-100",
|
|
15649
|
+
"quiz",
|
|
15650
|
+
"test-out",
|
|
15651
|
+
"placement",
|
|
15652
|
+
"unit-test",
|
|
15653
|
+
"alpha-read-article"
|
|
15654
|
+
]);
|
|
15655
|
+
var GradeArray = exports_external.array(TimebackGrade);
|
|
15656
|
+
var ResourceMetadata = exports_external.record(exports_external.string(), exports_external.unknown()).optional();
|
|
15657
|
+
var ExternalTestBase = exports_external.object({
|
|
15658
|
+
courseId: NonEmptyString3,
|
|
15659
|
+
lessonTitle: NonEmptyString3.optional(),
|
|
15660
|
+
launchUrl: exports_external.url().optional(),
|
|
15661
|
+
toolProvider: ToolProvider,
|
|
15662
|
+
unitTitle: NonEmptyString3.optional(),
|
|
15663
|
+
courseComponentSourcedId: NonEmptyString3.optional(),
|
|
15664
|
+
vendorId: NonEmptyString3.optional(),
|
|
15665
|
+
description: NonEmptyString3.optional(),
|
|
15666
|
+
resourceMetadata: ResourceMetadata.nullable().optional(),
|
|
15667
|
+
grades: GradeArray
|
|
15668
|
+
});
|
|
15669
|
+
var ExternalTestOut = ExternalTestBase.extend({
|
|
15670
|
+
lessonType: exports_external.literal("test-out"),
|
|
15671
|
+
xp: exports_external.number()
|
|
15672
|
+
});
|
|
15673
|
+
var ExternalPlacement = ExternalTestBase.extend({
|
|
15674
|
+
lessonType: exports_external.literal("placement"),
|
|
15675
|
+
courseIdOnFail: NonEmptyString3.optional(),
|
|
15676
|
+
xp: exports_external.number().optional()
|
|
15677
|
+
});
|
|
15678
|
+
var InternalTestBase = exports_external.object({
|
|
15679
|
+
courseId: NonEmptyString3,
|
|
15680
|
+
lessonType: LessonTypeRequired,
|
|
15681
|
+
lessonTitle: NonEmptyString3.optional(),
|
|
15682
|
+
unitTitle: NonEmptyString3.optional(),
|
|
15683
|
+
courseComponentSourcedId: NonEmptyString3.optional(),
|
|
15684
|
+
resourceMetadata: ResourceMetadata.nullable().optional(),
|
|
15685
|
+
xp: exports_external.number().optional(),
|
|
15686
|
+
grades: GradeArray.optional(),
|
|
15687
|
+
courseIdOnFail: NonEmptyString3.optional()
|
|
15688
|
+
});
|
|
15689
|
+
var PowerPathCreateInternalTestInput = exports_external.union([
|
|
15690
|
+
InternalTestBase.extend({
|
|
15691
|
+
testType: exports_external.literal("qti"),
|
|
15692
|
+
qti: exports_external.object({
|
|
15693
|
+
url: exports_external.url(),
|
|
15694
|
+
title: NonEmptyString3.optional(),
|
|
15695
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
15696
|
+
})
|
|
15697
|
+
}),
|
|
15698
|
+
InternalTestBase.extend({
|
|
15699
|
+
testType: exports_external.literal("assessment-bank"),
|
|
15700
|
+
assessmentBank: exports_external.object({
|
|
15701
|
+
resources: exports_external.array(exports_external.object({
|
|
15702
|
+
url: exports_external.url(),
|
|
15703
|
+
title: NonEmptyString3.optional(),
|
|
15704
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
15705
|
+
}))
|
|
15706
|
+
})
|
|
15707
|
+
})
|
|
15708
|
+
]);
|
|
15709
|
+
var PowerPathCreateNewAttemptInput = exports_external.object({
|
|
15710
|
+
student: NonEmptyString3,
|
|
15711
|
+
lesson: NonEmptyString3
|
|
15712
|
+
});
|
|
15713
|
+
var PowerPathFinalStudentAssessmentResponseInput = exports_external.object({
|
|
15714
|
+
student: NonEmptyString3,
|
|
15715
|
+
lesson: NonEmptyString3
|
|
15716
|
+
});
|
|
15717
|
+
var PowerPathLessonPlansCreateInput = exports_external.object({
|
|
15718
|
+
courseId: NonEmptyString3,
|
|
15719
|
+
userId: NonEmptyString3,
|
|
15720
|
+
classId: NonEmptyString3.optional()
|
|
15721
|
+
});
|
|
15722
|
+
var LessonPlanTarget = exports_external.object({
|
|
15723
|
+
type: exports_external.enum(["component", "resource"]),
|
|
15724
|
+
id: NonEmptyString3
|
|
15725
|
+
});
|
|
15726
|
+
var PowerPathLessonPlanOperationInput = exports_external.union([
|
|
15727
|
+
exports_external.object({
|
|
15728
|
+
type: exports_external.literal("set-skipped"),
|
|
15729
|
+
payload: exports_external.object({
|
|
15730
|
+
target: LessonPlanTarget,
|
|
15731
|
+
value: exports_external.boolean()
|
|
15732
|
+
})
|
|
15733
|
+
}),
|
|
15734
|
+
exports_external.object({
|
|
15735
|
+
type: exports_external.literal("add-custom-resource"),
|
|
15736
|
+
payload: exports_external.object({
|
|
15737
|
+
resource_id: NonEmptyString3,
|
|
15738
|
+
parent_component_id: NonEmptyString3,
|
|
15739
|
+
skipped: exports_external.boolean().optional()
|
|
15740
|
+
})
|
|
15741
|
+
}),
|
|
15742
|
+
exports_external.object({
|
|
15743
|
+
type: exports_external.literal("move-item-before"),
|
|
15744
|
+
payload: exports_external.object({
|
|
15745
|
+
target: LessonPlanTarget,
|
|
15746
|
+
reference_id: NonEmptyString3
|
|
15747
|
+
})
|
|
15748
|
+
}),
|
|
15749
|
+
exports_external.object({
|
|
15750
|
+
type: exports_external.literal("move-item-after"),
|
|
15751
|
+
payload: exports_external.object({
|
|
15752
|
+
target: LessonPlanTarget,
|
|
15753
|
+
reference_id: NonEmptyString3
|
|
15754
|
+
})
|
|
15755
|
+
}),
|
|
15756
|
+
exports_external.object({
|
|
15757
|
+
type: exports_external.literal("move-item-to-start"),
|
|
15758
|
+
payload: exports_external.object({
|
|
15759
|
+
target: LessonPlanTarget
|
|
15760
|
+
})
|
|
15761
|
+
}),
|
|
15762
|
+
exports_external.object({
|
|
15763
|
+
type: exports_external.literal("move-item-to-end"),
|
|
15764
|
+
payload: exports_external.object({
|
|
15765
|
+
target: LessonPlanTarget
|
|
15766
|
+
})
|
|
15767
|
+
}),
|
|
15768
|
+
exports_external.object({
|
|
15769
|
+
type: exports_external.literal("change-item-parent"),
|
|
15770
|
+
payload: exports_external.object({
|
|
15771
|
+
target: LessonPlanTarget,
|
|
15772
|
+
new_parent_id: NonEmptyString3,
|
|
15773
|
+
position: exports_external.enum(["start", "end"]).optional()
|
|
15774
|
+
})
|
|
15775
|
+
})
|
|
15776
|
+
]);
|
|
15777
|
+
var PowerPathLessonPlanOperationsInput = exports_external.object({
|
|
15778
|
+
operation: exports_external.array(PowerPathLessonPlanOperationInput),
|
|
15779
|
+
reason: NonEmptyString3.optional()
|
|
15780
|
+
});
|
|
15781
|
+
var PowerPathLessonPlanUpdateStudentItemResponseInput = exports_external.object({
|
|
15782
|
+
studentId: NonEmptyString3,
|
|
15783
|
+
componentResourceId: NonEmptyString3,
|
|
15784
|
+
result: exports_external.object({
|
|
15785
|
+
status: exports_external.enum(["active", "tobedeleted"]),
|
|
15786
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
|
|
15787
|
+
score: exports_external.number().optional(),
|
|
15788
|
+
textScore: NonEmptyString3.optional(),
|
|
15789
|
+
scoreDate: NonEmptyString3,
|
|
15790
|
+
scorePercentile: exports_external.number().optional(),
|
|
15791
|
+
scoreStatus: ScoreStatus,
|
|
15792
|
+
comment: NonEmptyString3.optional(),
|
|
15793
|
+
learningObjectiveSet: exports_external.array(exports_external.object({
|
|
15794
|
+
source: NonEmptyString3,
|
|
15795
|
+
learningObjectiveResults: exports_external.array(exports_external.object({
|
|
15796
|
+
learningObjectiveId: NonEmptyString3,
|
|
15797
|
+
score: exports_external.number().optional(),
|
|
15798
|
+
textScore: NonEmptyString3.optional()
|
|
15799
|
+
}))
|
|
15800
|
+
})).optional(),
|
|
15801
|
+
inProgress: NonEmptyString3.optional(),
|
|
15802
|
+
incomplete: NonEmptyString3.optional(),
|
|
15803
|
+
late: NonEmptyString3.optional(),
|
|
15804
|
+
missing: NonEmptyString3.optional()
|
|
15805
|
+
})
|
|
15806
|
+
});
|
|
15807
|
+
var PowerPathMakeExternalTestAssignmentInput = exports_external.object({
|
|
15808
|
+
student: NonEmptyString3,
|
|
15809
|
+
lesson: NonEmptyString3,
|
|
15810
|
+
applicationName: NonEmptyString3.optional(),
|
|
15811
|
+
testId: NonEmptyString3.optional(),
|
|
15812
|
+
skipCourseEnrollment: exports_external.boolean().optional()
|
|
15813
|
+
});
|
|
15814
|
+
var PowerPathPlacementResetUserPlacementInput = exports_external.object({
|
|
15815
|
+
student: NonEmptyString3,
|
|
15816
|
+
subject: TimebackSubject
|
|
15817
|
+
});
|
|
15818
|
+
var PowerPathResetAttemptInput = exports_external.object({
|
|
15819
|
+
student: NonEmptyString3,
|
|
15820
|
+
lesson: NonEmptyString3
|
|
15821
|
+
});
|
|
15822
|
+
var PowerPathScreeningResetSessionInput = exports_external.object({
|
|
15823
|
+
userId: NonEmptyString3
|
|
15824
|
+
});
|
|
15825
|
+
var PowerPathScreeningAssignTestInput = exports_external.object({
|
|
15826
|
+
userId: NonEmptyString3,
|
|
15827
|
+
subject: exports_external.enum(["Math", "Reading", "Language", "Science"])
|
|
15828
|
+
});
|
|
15829
|
+
var PowerPathTestAssignmentsCreateInput = exports_external.object({
|
|
15830
|
+
student: NonEmptyString3,
|
|
15831
|
+
subject: TimebackSubject,
|
|
15832
|
+
grade: TimebackGrade,
|
|
15833
|
+
testName: NonEmptyString3.optional()
|
|
15834
|
+
});
|
|
15835
|
+
var PowerPathTestAssignmentsUpdateInput = exports_external.object({
|
|
15836
|
+
testName: NonEmptyString3
|
|
15837
|
+
});
|
|
15838
|
+
var PowerPathTestAssignmentItemInput = exports_external.object({
|
|
15839
|
+
student: NonEmptyString3,
|
|
15840
|
+
subject: TimebackSubject,
|
|
15841
|
+
grade: TimebackGrade,
|
|
15842
|
+
testName: NonEmptyString3.optional()
|
|
15843
|
+
});
|
|
15844
|
+
var PowerPathTestAssignmentsBulkInput = exports_external.object({
|
|
15845
|
+
items: exports_external.array(PowerPathTestAssignmentItemInput)
|
|
15846
|
+
});
|
|
15847
|
+
var PowerPathTestAssignmentsImportInput = exports_external.object({
|
|
15848
|
+
spreadsheetUrl: exports_external.url(),
|
|
15849
|
+
sheet: NonEmptyString3
|
|
15850
|
+
});
|
|
15851
|
+
var PowerPathTestAssignmentsListParams = exports_external.object({
|
|
15852
|
+
student: NonEmptyString3,
|
|
15853
|
+
status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
|
|
15854
|
+
subject: NonEmptyString3.optional(),
|
|
15855
|
+
grade: TimebackGrade.optional(),
|
|
15856
|
+
limit: exports_external.number().int().positive().max(3000).optional(),
|
|
15857
|
+
offset: exports_external.number().int().nonnegative().optional()
|
|
15858
|
+
});
|
|
15859
|
+
var PowerPathTestAssignmentsAdminParams = exports_external.object({
|
|
15860
|
+
student: NonEmptyString3.optional(),
|
|
15861
|
+
status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
|
|
15862
|
+
subject: NonEmptyString3.optional(),
|
|
15863
|
+
grade: TimebackGrade.optional(),
|
|
15864
|
+
limit: exports_external.number().int().positive().max(3000).optional(),
|
|
15865
|
+
offset: exports_external.number().int().nonnegative().optional()
|
|
15866
|
+
});
|
|
15867
|
+
var PowerPathUpdateStudentQuestionResponseInput = exports_external.object({
|
|
15868
|
+
student: NonEmptyString3,
|
|
15869
|
+
question: NonEmptyString3,
|
|
15870
|
+
response: exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)]).optional(),
|
|
15871
|
+
responses: exports_external.record(exports_external.string(), exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)])).optional(),
|
|
15872
|
+
lesson: NonEmptyString3
|
|
15873
|
+
});
|
|
15874
|
+
var PowerPathGetAssessmentProgressParams = exports_external.object({
|
|
15875
|
+
student: NonEmptyString3,
|
|
15876
|
+
lesson: NonEmptyString3,
|
|
15877
|
+
attempt: exports_external.number().int().positive().optional()
|
|
15878
|
+
});
|
|
15879
|
+
var PowerPathGetNextQuestionParams = exports_external.object({
|
|
15880
|
+
student: NonEmptyString3,
|
|
15881
|
+
lesson: NonEmptyString3
|
|
15882
|
+
});
|
|
15883
|
+
var PowerPathGetAttemptsParams = exports_external.object({
|
|
15884
|
+
student: NonEmptyString3,
|
|
15885
|
+
lesson: NonEmptyString3
|
|
15886
|
+
});
|
|
15887
|
+
var PowerPathTestOutParams = exports_external.object({
|
|
15888
|
+
student: NonEmptyString3,
|
|
15889
|
+
lesson: NonEmptyString3.optional(),
|
|
15890
|
+
finalized: exports_external.boolean().optional(),
|
|
15891
|
+
toolProvider: NonEmptyString3.optional(),
|
|
15892
|
+
attempt: exports_external.number().int().positive().optional()
|
|
15893
|
+
});
|
|
15894
|
+
var PowerPathImportExternalTestAssignmentResultsParams = exports_external.object({
|
|
15895
|
+
student: NonEmptyString3,
|
|
15896
|
+
lesson: NonEmptyString3,
|
|
15897
|
+
applicationName: NonEmptyString3.optional()
|
|
15898
|
+
});
|
|
15899
|
+
var PowerPathPlacementQueryParams = exports_external.object({
|
|
15900
|
+
student: NonEmptyString3,
|
|
15901
|
+
subject: TimebackSubject
|
|
15902
|
+
});
|
|
15903
|
+
var PowerPathSyllabusQueryParams = exports_external.object({
|
|
15904
|
+
status: exports_external.enum(["active", "tobedeleted"]).optional()
|
|
15905
|
+
});
|
|
15049
15906
|
// ../types/src/zod/qti.ts
|
|
15050
15907
|
var QtiAssessmentItemType = exports_external.enum([
|
|
15051
15908
|
"choice",
|
|
@@ -15162,6 +16019,12 @@ var QtiCatalogInfo = exports_external.object({
|
|
|
15162
16019
|
support: exports_external.string(),
|
|
15163
16020
|
content: exports_external.string()
|
|
15164
16021
|
}).strict();
|
|
16022
|
+
var QtiPaginationParams = exports_external.object({
|
|
16023
|
+
page: exports_external.number().int().positive().optional(),
|
|
16024
|
+
limit: exports_external.number().int().positive().optional(),
|
|
16025
|
+
sort: exports_external.string().optional(),
|
|
16026
|
+
order: exports_external.enum(["asc", "desc"]).optional()
|
|
16027
|
+
}).strict();
|
|
15165
16028
|
var QtiAssessmentItemCreateInput = exports_external.object({
|
|
15166
16029
|
identifier: exports_external.string().min(1),
|
|
15167
16030
|
title: exports_external.string().min(1),
|
|
@@ -15178,6 +16041,7 @@ var QtiAssessmentItemCreateInput = exports_external.object({
|
|
|
15178
16041
|
feedbackBlock: exports_external.array(QtiFeedbackBlock).optional()
|
|
15179
16042
|
}).strict();
|
|
15180
16043
|
var QtiAssessmentItemUpdateInput = exports_external.object({
|
|
16044
|
+
identifier: exports_external.string().min(1).optional(),
|
|
15181
16045
|
title: exports_external.string().min(1),
|
|
15182
16046
|
type: QtiAssessmentItemType,
|
|
15183
16047
|
qtiVersion: exports_external.string().optional(),
|
|
@@ -15216,6 +16080,12 @@ var QtiTestPart = exports_external.object({
|
|
|
15216
16080
|
submissionMode: QtiSubmissionMode,
|
|
15217
16081
|
"qti-assessment-section": exports_external.union([QtiAssessmentSection, exports_external.array(QtiAssessmentSection)])
|
|
15218
16082
|
}).strict();
|
|
16083
|
+
var QtiReorderItemsInput = exports_external.object({
|
|
16084
|
+
items: exports_external.array(QtiAssessmentItemRef).min(1)
|
|
16085
|
+
}).strict();
|
|
16086
|
+
var QtiAssessmentTestMetadataUpdateInput = exports_external.object({
|
|
16087
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
16088
|
+
}).strict();
|
|
15219
16089
|
var QtiAssessmentTestCreateInput = exports_external.object({
|
|
15220
16090
|
identifier: exports_external.string().min(1),
|
|
15221
16091
|
title: exports_external.string().min(1),
|
|
@@ -15230,6 +16100,7 @@ var QtiAssessmentTestCreateInput = exports_external.object({
|
|
|
15230
16100
|
"qti-outcome-declaration": exports_external.array(QtiTestOutcomeDeclaration).optional()
|
|
15231
16101
|
}).strict();
|
|
15232
16102
|
var QtiAssessmentTestUpdateInput = exports_external.object({
|
|
16103
|
+
identifier: exports_external.string().min(1).optional(),
|
|
15233
16104
|
title: exports_external.string().min(1),
|
|
15234
16105
|
qtiVersion: exports_external.string().optional(),
|
|
15235
16106
|
toolName: exports_external.string().optional(),
|
|
@@ -15254,6 +16125,7 @@ var QtiStimulusCreateInput = exports_external.object({
|
|
|
15254
16125
|
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
15255
16126
|
}).strict();
|
|
15256
16127
|
var QtiStimulusUpdateInput = exports_external.object({
|
|
16128
|
+
identifier: exports_external.string().min(1).optional(),
|
|
15257
16129
|
title: exports_external.string().min(1),
|
|
15258
16130
|
label: exports_external.string().optional(),
|
|
15259
16131
|
language: exports_external.string().optional(),
|
|
@@ -15283,9 +16155,24 @@ var QtiLessonFeedbackInput = exports_external.object({
|
|
|
15283
16155
|
}).strict();
|
|
15284
16156
|
// ../internal/cli-infra/src/config/timeback.ts
|
|
15285
16157
|
var FILE_PATTERNS2 = ["timeback.config.ts", "timeback.config.js", "timeback.config.mjs"];
|
|
15286
|
-
var
|
|
16158
|
+
var isBun = typeof globalThis.Bun !== "undefined";
|
|
16159
|
+
var jitiInstance = null;
|
|
16160
|
+
async function getJiti() {
|
|
16161
|
+
if (jitiInstance)
|
|
16162
|
+
return jitiInstance;
|
|
16163
|
+
const { createJiti } = await import("jiti");
|
|
16164
|
+
jitiInstance = createJiti(import.meta.url, { fsCache: false });
|
|
16165
|
+
return jitiInstance;
|
|
16166
|
+
}
|
|
15287
16167
|
async function importModule(fullPath) {
|
|
15288
|
-
|
|
16168
|
+
let module;
|
|
16169
|
+
if (isBun) {
|
|
16170
|
+
const fileUrl = pathToFileURL(fullPath).href;
|
|
16171
|
+
module = await import(fileUrl);
|
|
16172
|
+
} else {
|
|
16173
|
+
const jiti = await getJiti();
|
|
16174
|
+
module = await jiti.import(fullPath);
|
|
16175
|
+
}
|
|
15289
16176
|
return module.default ?? module;
|
|
15290
16177
|
}
|
|
15291
16178
|
function deriveCourseIds(config3) {
|
|
@@ -15597,29 +16484,18 @@ function isValidUrl(url2) {
|
|
|
15597
16484
|
return false;
|
|
15598
16485
|
}
|
|
15599
16486
|
}
|
|
15600
|
-
async function
|
|
15601
|
-
const
|
|
15602
|
-
message: "Add Caliper sensor URLs for event filtering?",
|
|
15603
|
-
initialValue: false
|
|
15604
|
-
});
|
|
15605
|
-
if (isCancelled(wantSensors)) {
|
|
15606
|
-
return;
|
|
15607
|
-
}
|
|
15608
|
-
if (!wantSensors) {
|
|
15609
|
-
return [];
|
|
15610
|
-
}
|
|
16487
|
+
async function promptSensor(options) {
|
|
16488
|
+
const { defaultValue } = options ?? {};
|
|
15611
16489
|
const input = await he({
|
|
15612
|
-
message: "Sensor
|
|
15613
|
-
placeholder: "https://myapp.example.com
|
|
16490
|
+
message: "Sensor URL (your app origin, used for activity tracking)",
|
|
16491
|
+
placeholder: "https://myapp.example.com",
|
|
16492
|
+
defaultValue,
|
|
15614
16493
|
validate: (value) => {
|
|
15615
16494
|
if (!value.trim()) {
|
|
15616
|
-
return "
|
|
16495
|
+
return "Sensor URL is required for activity tracking";
|
|
15617
16496
|
}
|
|
15618
|
-
|
|
15619
|
-
|
|
15620
|
-
if (!isValidUrl(url2)) {
|
|
15621
|
-
return `Invalid URL: ${url2}`;
|
|
15622
|
-
}
|
|
16497
|
+
if (!isValidUrl(value.trim())) {
|
|
16498
|
+
return "Invalid URL format";
|
|
15623
16499
|
}
|
|
15624
16500
|
return;
|
|
15625
16501
|
}
|
|
@@ -15627,7 +16503,26 @@ async function promptSensors() {
|
|
|
15627
16503
|
if (isCancelled(input)) {
|
|
15628
16504
|
return;
|
|
15629
16505
|
}
|
|
15630
|
-
return input.
|
|
16506
|
+
return input.trim();
|
|
16507
|
+
}
|
|
16508
|
+
// ../internal/cli-infra/src/sensors/utils.ts
|
|
16509
|
+
function deriveSensorsFromConfig(config3) {
|
|
16510
|
+
const sensors = new Set;
|
|
16511
|
+
if (config3.sensor) {
|
|
16512
|
+
sensors.add(config3.sensor);
|
|
16513
|
+
}
|
|
16514
|
+
for (const course of config3.courses) {
|
|
16515
|
+
if (course.sensor) {
|
|
16516
|
+
sensors.add(course.sensor);
|
|
16517
|
+
}
|
|
16518
|
+
if (course.overrides?.staging?.sensor) {
|
|
16519
|
+
sensors.add(course.overrides.staging.sensor);
|
|
16520
|
+
}
|
|
16521
|
+
if (course.overrides?.production?.sensor) {
|
|
16522
|
+
sensors.add(course.overrides.production.sensor);
|
|
16523
|
+
}
|
|
16524
|
+
}
|
|
16525
|
+
return Array.from(sensors);
|
|
15631
16526
|
}
|
|
15632
16527
|
// src/config/constants.ts
|
|
15633
16528
|
var configValues = {
|
|
@@ -16191,8 +17086,8 @@ async function promptImportApp(credentials, configuredEnvs) {
|
|
|
16191
17086
|
if (!result.success) {
|
|
16192
17087
|
return result;
|
|
16193
17088
|
}
|
|
16194
|
-
const
|
|
16195
|
-
if (
|
|
17089
|
+
const sensor = await promptSensor();
|
|
17090
|
+
if (sensor === undefined) {
|
|
16196
17091
|
return { success: false, cancelled: true };
|
|
16197
17092
|
}
|
|
16198
17093
|
return {
|
|
@@ -16200,7 +17095,7 @@ async function promptImportApp(credentials, configuredEnvs) {
|
|
|
16200
17095
|
name: result.appName,
|
|
16201
17096
|
courses: result.courses,
|
|
16202
17097
|
environment: result.environment,
|
|
16203
|
-
|
|
17098
|
+
sensor
|
|
16204
17099
|
};
|
|
16205
17100
|
} catch (error48) {
|
|
16206
17101
|
const message = error48 instanceof Error ? error48.message : "Unknown error";
|
|
@@ -16230,7 +17125,7 @@ async function promptNoConfig(credentials, configuredEnvs, opts = {}) {
|
|
|
16230
17125
|
// src/cli/commands/serve/config.ts
|
|
16231
17126
|
import { basename as basename2 } from "node:path";
|
|
16232
17127
|
function buildUserConfigFromImport(result) {
|
|
16233
|
-
const { name, courses,
|
|
17128
|
+
const { name, courses, sensor } = result;
|
|
16234
17129
|
const courseIds = {
|
|
16235
17130
|
staging: [],
|
|
16236
17131
|
production: []
|
|
@@ -16243,8 +17138,8 @@ function buildUserConfigFromImport(result) {
|
|
|
16243
17138
|
}
|
|
16244
17139
|
return {
|
|
16245
17140
|
name,
|
|
17141
|
+
sensor,
|
|
16246
17142
|
courses,
|
|
16247
|
-
sensors,
|
|
16248
17143
|
version: "0.0.0",
|
|
16249
17144
|
path: "",
|
|
16250
17145
|
courseIds
|
|
@@ -16318,21 +17213,20 @@ async function resolveFromConfigOrImport(credentials, configuredEnvs, defaultEnv
|
|
|
16318
17213
|
function parseSensors(sensors) {
|
|
16319
17214
|
return sensors.split(",").map((s) => s.trim()).filter(Boolean);
|
|
16320
17215
|
}
|
|
16321
|
-
function
|
|
17216
|
+
function getEffectiveSensors(config3, opts) {
|
|
16322
17217
|
if (opts.sensors) {
|
|
16323
|
-
|
|
17218
|
+
return parseSensors(opts.sensors);
|
|
16324
17219
|
}
|
|
17220
|
+
const derived = deriveSensorsFromConfig(config3);
|
|
17221
|
+
return derived.length > 0 ? derived : undefined;
|
|
16325
17222
|
}
|
|
16326
17223
|
async function resolveConfig(courseIds, opts, credentials, configuredEnvs, defaultEnv) {
|
|
16327
17224
|
const parserOpts = { playcademy: opts.playcademy };
|
|
16328
17225
|
const resolved = courseIds.length > 0 ? await resolveFromCourseIds(courseIds, defaultEnv, credentials, configuredEnvs) : await resolveFromConfigOrImport(credentials, configuredEnvs, defaultEnv, parserOpts);
|
|
16329
|
-
if (!resolved)
|
|
16330
|
-
return null;
|
|
16331
|
-
applyCliOverrides(resolved.userConfig, opts);
|
|
16332
17226
|
return resolved;
|
|
16333
17227
|
}
|
|
16334
17228
|
|
|
16335
|
-
// ../../node_modules/.bun/@hono+node-server@1.19.
|
|
17229
|
+
// ../../node_modules/.bun/@hono+node-server@1.19.9+fd698e00a3b2abce/node_modules/@hono/node-server/dist/index.mjs
|
|
16336
17230
|
import { createServer as createServerHTTP } from "http";
|
|
16337
17231
|
import { Http2ServerRequest as Http2ServerRequest2 } from "http2";
|
|
16338
17232
|
import { Http2ServerRequest } from "http2";
|
|
@@ -16641,17 +17535,9 @@ var buildOutgoingHttpHeaders = (headers) => {
|
|
|
16641
17535
|
return res;
|
|
16642
17536
|
};
|
|
16643
17537
|
var X_ALREADY_SENT = "x-hono-already-sent";
|
|
16644
|
-
var webFetch = global.fetch;
|
|
16645
17538
|
if (typeof global.crypto === "undefined") {
|
|
16646
17539
|
global.crypto = crypto;
|
|
16647
17540
|
}
|
|
16648
|
-
global.fetch = (info, init2) => {
|
|
16649
|
-
init2 = {
|
|
16650
|
-
compress: false,
|
|
16651
|
-
...init2
|
|
16652
|
-
};
|
|
16653
|
-
return webFetch(info, init2);
|
|
16654
|
-
};
|
|
16655
17541
|
var outgoingEnded = Symbol("outgoingEnded");
|
|
16656
17542
|
var handleRequestError = () => new Response(null, {
|
|
16657
17543
|
status: 400
|
|
@@ -19474,7 +20360,7 @@ function createEnvMiddleware(ctx, manager) {
|
|
|
19474
20360
|
}, 400);
|
|
19475
20361
|
}
|
|
19476
20362
|
const client = manager.get(env2);
|
|
19477
|
-
const sensors = ctx.
|
|
20363
|
+
const sensors = ctx.derivedSensors;
|
|
19478
20364
|
c.set("env", env2);
|
|
19479
20365
|
c.set("client", client);
|
|
19480
20366
|
c.set("sensors", sensors);
|
|
@@ -20013,7 +20899,8 @@ async function serveCommand(courseIds, opts) {
|
|
|
20013
20899
|
serverConfig,
|
|
20014
20900
|
userConfig: resolved.userConfig,
|
|
20015
20901
|
credentials,
|
|
20016
|
-
defaultEnvironment: resolved.environment
|
|
20902
|
+
defaultEnvironment: resolved.environment,
|
|
20903
|
+
derivedSensors: getEffectiveSensors(resolved.userConfig, opts)
|
|
20017
20904
|
};
|
|
20018
20905
|
startServer(ctx, serverConfig, resolved.configFile);
|
|
20019
20906
|
}
|