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/bin.js
CHANGED
|
@@ -16886,7 +16886,7 @@ async function loadCredentials(environment) {
|
|
|
16886
16886
|
}
|
|
16887
16887
|
// ../internal/cli-infra/src/ui.ts
|
|
16888
16888
|
function intro(title) {
|
|
16889
|
-
console.log();
|
|
16889
|
+
console.log("");
|
|
16890
16890
|
Ie(bgCyan(black(` ${title} `)));
|
|
16891
16891
|
}
|
|
16892
16892
|
var outro = {
|
|
@@ -16929,8 +16929,11 @@ var playcademyParser = {
|
|
|
16929
16929
|
import { existsSync } from "node:fs";
|
|
16930
16930
|
import { readFile as readFile2 } from "node:fs/promises";
|
|
16931
16931
|
import { basename, relative, resolve } from "node:path";
|
|
16932
|
-
import {
|
|
16932
|
+
import { pathToFileURL } from "node:url";
|
|
16933
16933
|
// ../types/src/zod/primitives.ts
|
|
16934
|
+
var IsoDateTimeRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/;
|
|
16935
|
+
var IsoDateTimeString = exports_external.string().min(1).regex(IsoDateTimeRegex, "must be a valid ISO 8601 datetime");
|
|
16936
|
+
var IsoDateString = exports_external.string().min(1).regex(/^\d{4}-\d{2}-\d{2}$/, "must be a valid ISO 8601 date (YYYY-MM-DD)");
|
|
16934
16937
|
var TimebackSubject = exports_external.enum([
|
|
16935
16938
|
"Reading",
|
|
16936
16939
|
"Language",
|
|
@@ -16940,7 +16943,8 @@ var TimebackSubject = exports_external.enum([
|
|
|
16940
16943
|
"Science",
|
|
16941
16944
|
"FastMath",
|
|
16942
16945
|
"Math",
|
|
16943
|
-
"None"
|
|
16946
|
+
"None",
|
|
16947
|
+
"Other"
|
|
16944
16948
|
]);
|
|
16945
16949
|
var TimebackGrade = exports_external.union([
|
|
16946
16950
|
exports_external.literal(-1),
|
|
@@ -16985,6 +16989,47 @@ var OneRosterUserRole = exports_external.enum([
|
|
|
16985
16989
|
"teacher"
|
|
16986
16990
|
]);
|
|
16987
16991
|
var EnrollmentRole = exports_external.enum(["administrator", "proctor", "student", "teacher"]);
|
|
16992
|
+
var ResourceType = exports_external.enum([
|
|
16993
|
+
"qti",
|
|
16994
|
+
"text",
|
|
16995
|
+
"audio",
|
|
16996
|
+
"video",
|
|
16997
|
+
"interactive",
|
|
16998
|
+
"visual",
|
|
16999
|
+
"course-material",
|
|
17000
|
+
"assessment-bank"
|
|
17001
|
+
]);
|
|
17002
|
+
var QtiSubType = exports_external.enum(["qti-test", "qti-question", "qti-stimulus", "qti-test-bank"]);
|
|
17003
|
+
var CourseMaterialSubType = exports_external.enum(["unit", "course", "resource-collection"]);
|
|
17004
|
+
var QuestionType = exports_external.enum([
|
|
17005
|
+
"choice",
|
|
17006
|
+
"order",
|
|
17007
|
+
"associate",
|
|
17008
|
+
"match",
|
|
17009
|
+
"hotspot",
|
|
17010
|
+
"hottext",
|
|
17011
|
+
"select-point",
|
|
17012
|
+
"graphic-order",
|
|
17013
|
+
"graphic-associate",
|
|
17014
|
+
"graphic-gap-match",
|
|
17015
|
+
"text-entry",
|
|
17016
|
+
"extended-text",
|
|
17017
|
+
"inline-choice",
|
|
17018
|
+
"upload",
|
|
17019
|
+
"slider",
|
|
17020
|
+
"drawing",
|
|
17021
|
+
"media",
|
|
17022
|
+
"custom"
|
|
17023
|
+
]);
|
|
17024
|
+
var Difficulty = exports_external.enum(["easy", "medium", "hard"]);
|
|
17025
|
+
var LearningObjectiveSetSchema = exports_external.array(exports_external.object({
|
|
17026
|
+
source: exports_external.string(),
|
|
17027
|
+
learningObjectiveIds: exports_external.array(exports_external.string())
|
|
17028
|
+
}));
|
|
17029
|
+
var FastFailConfigSchema = exports_external.object({
|
|
17030
|
+
consecutive_failures: exports_external.number().int().min(1).optional(),
|
|
17031
|
+
stagnation_limit: exports_external.number().int().min(1).optional()
|
|
17032
|
+
}).optional();
|
|
16988
17033
|
var LessonType = exports_external.enum(["powerpath-100", "quiz", "test-out", "placement", "unit-test", "alpha-read-article"]).nullable();
|
|
16989
17034
|
var IMSErrorResponse = exports_external.object({
|
|
16990
17035
|
imsx_codeMajor: exports_external.enum(["failure", "success"]),
|
|
@@ -17007,16 +17052,16 @@ var TimebackActivityContext = exports_external.object({
|
|
|
17007
17052
|
id: exports_external.string(),
|
|
17008
17053
|
type: exports_external.literal("TimebackActivityContext"),
|
|
17009
17054
|
subject: TimebackSubject,
|
|
17010
|
-
app: exports_external.object({ name: exports_external.string() })
|
|
17011
|
-
activity: exports_external.object({ id: exports_external.string().optional(), name: exports_external.string()
|
|
17012
|
-
course: exports_external.object({ id: exports_external.string(), name: exports_external.string() }),
|
|
17055
|
+
app: exports_external.object({ name: exports_external.string() }),
|
|
17056
|
+
activity: exports_external.object({ id: exports_external.string().optional(), name: exports_external.string() }).strict().optional(),
|
|
17057
|
+
course: exports_external.object({ id: exports_external.string().optional(), name: exports_external.string() }).strict().optional(),
|
|
17013
17058
|
process: exports_external.boolean().optional()
|
|
17014
17059
|
});
|
|
17015
17060
|
var CaliperEventBase = exports_external.object({
|
|
17016
17061
|
"@context": exports_external.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),
|
|
17017
17062
|
id: exports_external.string(),
|
|
17018
17063
|
type: exports_external.string(),
|
|
17019
|
-
eventTime:
|
|
17064
|
+
eventTime: IsoDateTimeString,
|
|
17020
17065
|
profile: exports_external.literal("TimebackProfile"),
|
|
17021
17066
|
actor: TimebackUser,
|
|
17022
17067
|
action: exports_external.string(),
|
|
@@ -17054,13 +17099,99 @@ var TimebackTimeSpentEvent = CaliperEventBase.extend({
|
|
|
17054
17099
|
action: exports_external.literal("SpentTime"),
|
|
17055
17100
|
generated: TimebackTimeSpentMetricsCollection
|
|
17056
17101
|
});
|
|
17102
|
+
var ActivityCompletedInput = exports_external.object({
|
|
17103
|
+
actor: TimebackUser,
|
|
17104
|
+
object: TimebackActivityContext,
|
|
17105
|
+
metrics: exports_external.array(TimebackActivityMetric).min(1, "metrics must contain at least one metric"),
|
|
17106
|
+
eventTime: IsoDateTimeString.optional(),
|
|
17107
|
+
metricsId: exports_external.string().optional(),
|
|
17108
|
+
id: exports_external.string().optional(),
|
|
17109
|
+
extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
|
|
17110
|
+
attempt: exports_external.number().int().min(1).optional(),
|
|
17111
|
+
generatedExtensions: exports_external.object({
|
|
17112
|
+
pctCompleteApp: exports_external.number().optional()
|
|
17113
|
+
}).loose().optional()
|
|
17114
|
+
}).strict();
|
|
17115
|
+
var TimeSpentInput = exports_external.object({
|
|
17116
|
+
actor: TimebackUser,
|
|
17117
|
+
object: TimebackActivityContext,
|
|
17118
|
+
metrics: exports_external.array(TimebackTimeMetric).min(1, "metrics must contain at least one metric"),
|
|
17119
|
+
eventTime: IsoDateTimeString.optional(),
|
|
17120
|
+
metricsId: exports_external.string().optional(),
|
|
17121
|
+
id: exports_external.string().optional(),
|
|
17122
|
+
extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
17123
|
+
}).strict();
|
|
17057
17124
|
var TimebackEvent = exports_external.union([TimebackActivityEvent, TimebackTimeSpentEvent]);
|
|
17058
17125
|
var CaliperEnvelope = exports_external.object({
|
|
17059
17126
|
sensor: exports_external.string(),
|
|
17060
|
-
sendTime:
|
|
17127
|
+
sendTime: IsoDateTimeString,
|
|
17061
17128
|
dataVersion: exports_external.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),
|
|
17062
17129
|
data: exports_external.array(TimebackEvent)
|
|
17063
17130
|
});
|
|
17131
|
+
var CaliperProfile = exports_external.enum([
|
|
17132
|
+
"AnnotationProfile",
|
|
17133
|
+
"AssessmentProfile",
|
|
17134
|
+
"ToolUseProfile",
|
|
17135
|
+
"GeneralProfile",
|
|
17136
|
+
"FeedbackProfile",
|
|
17137
|
+
"MediaProfile",
|
|
17138
|
+
"SurveyProfile",
|
|
17139
|
+
"ResourceManagementProfile",
|
|
17140
|
+
"ForumProfile",
|
|
17141
|
+
"AssignableProfile",
|
|
17142
|
+
"GradingProfile",
|
|
17143
|
+
"ReadingProfile",
|
|
17144
|
+
"SessionProfile",
|
|
17145
|
+
"SearchProfile",
|
|
17146
|
+
"ToolLaunchProfile",
|
|
17147
|
+
"TimebackProfile"
|
|
17148
|
+
]);
|
|
17149
|
+
var CaliperEntity = exports_external.union([exports_external.string(), exports_external.record(exports_external.string(), exports_external.unknown())]);
|
|
17150
|
+
var CaliperActor = exports_external.object({
|
|
17151
|
+
id: exports_external.string(),
|
|
17152
|
+
type: exports_external.string(),
|
|
17153
|
+
extensions: exports_external.object({
|
|
17154
|
+
email: exports_external.email()
|
|
17155
|
+
}).loose()
|
|
17156
|
+
}).strict();
|
|
17157
|
+
var CaliperEvent = exports_external.object({
|
|
17158
|
+
"@context": exports_external.string().optional(),
|
|
17159
|
+
id: exports_external.string(),
|
|
17160
|
+
type: exports_external.string(),
|
|
17161
|
+
actor: exports_external.union([exports_external.string(), CaliperActor, TimebackUser]),
|
|
17162
|
+
action: exports_external.string(),
|
|
17163
|
+
object: CaliperEntity,
|
|
17164
|
+
eventTime: IsoDateTimeString,
|
|
17165
|
+
profile: CaliperProfile,
|
|
17166
|
+
edApp: CaliperEntity.optional(),
|
|
17167
|
+
generated: CaliperEntity.optional(),
|
|
17168
|
+
target: CaliperEntity.optional(),
|
|
17169
|
+
referrer: CaliperEntity.optional(),
|
|
17170
|
+
group: CaliperEntity.optional(),
|
|
17171
|
+
membership: CaliperEntity.optional(),
|
|
17172
|
+
session: CaliperEntity.optional(),
|
|
17173
|
+
federatedSession: CaliperEntity.optional(),
|
|
17174
|
+
extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
17175
|
+
}).strict();
|
|
17176
|
+
var CaliperEnvelopeInput = exports_external.object({
|
|
17177
|
+
sensor: exports_external.string().min(1, "sensor must be a non-empty string"),
|
|
17178
|
+
sendTime: IsoDateTimeString,
|
|
17179
|
+
dataVersion: exports_external.literal("http://purl.imsglobal.org/ctx/caliper/v1p2"),
|
|
17180
|
+
data: exports_external.array(CaliperEvent).min(1, "data must contain at least one event")
|
|
17181
|
+
});
|
|
17182
|
+
var CaliperSendEventsInput = exports_external.object({
|
|
17183
|
+
sensor: exports_external.string().min(1, "sensor must be a non-empty string"),
|
|
17184
|
+
events: exports_external.array(CaliperEvent).min(1, "events must contain at least one event")
|
|
17185
|
+
});
|
|
17186
|
+
var CaliperListEventsParams = exports_external.object({
|
|
17187
|
+
limit: exports_external.number().int().positive().optional(),
|
|
17188
|
+
offset: exports_external.number().int().min(0).optional(),
|
|
17189
|
+
sensor: exports_external.string().min(1).optional(),
|
|
17190
|
+
startDate: IsoDateTimeString.optional(),
|
|
17191
|
+
endDate: IsoDateTimeString.optional(),
|
|
17192
|
+
actorId: exports_external.string().min(1).optional(),
|
|
17193
|
+
actorEmail: exports_external.email().optional()
|
|
17194
|
+
}).strict();
|
|
17064
17195
|
// ../types/src/zod/config.ts
|
|
17065
17196
|
var CourseIds = exports_external.object({
|
|
17066
17197
|
staging: exports_external.string().optional(),
|
|
@@ -17095,23 +17226,67 @@ var CourseDefaults = exports_external.object({
|
|
|
17095
17226
|
level: exports_external.string().optional(),
|
|
17096
17227
|
metadata: CourseMetadata.optional()
|
|
17097
17228
|
});
|
|
17229
|
+
var CourseEnvOverrides = exports_external.object({
|
|
17230
|
+
level: exports_external.string().optional(),
|
|
17231
|
+
sensor: exports_external.string().url().optional(),
|
|
17232
|
+
launchUrl: exports_external.string().url().optional(),
|
|
17233
|
+
metadata: CourseMetadata.optional()
|
|
17234
|
+
});
|
|
17235
|
+
var CourseOverrides = exports_external.object({
|
|
17236
|
+
staging: CourseEnvOverrides.optional(),
|
|
17237
|
+
production: CourseEnvOverrides.optional()
|
|
17238
|
+
});
|
|
17098
17239
|
var CourseConfig = CourseDefaults.extend({
|
|
17099
17240
|
subject: TimebackSubject,
|
|
17100
|
-
grade: TimebackGrade,
|
|
17101
|
-
ids: CourseIds.nullable().optional()
|
|
17241
|
+
grade: TimebackGrade.optional(),
|
|
17242
|
+
ids: CourseIds.nullable().optional(),
|
|
17243
|
+
sensor: exports_external.string().url().optional(),
|
|
17244
|
+
launchUrl: exports_external.string().url().optional(),
|
|
17245
|
+
overrides: CourseOverrides.optional()
|
|
17102
17246
|
});
|
|
17103
17247
|
var TimebackConfig = exports_external.object({
|
|
17104
17248
|
name: exports_external.string().min(1, "App name is required"),
|
|
17105
17249
|
defaults: CourseDefaults.optional(),
|
|
17106
17250
|
courses: exports_external.array(CourseConfig).min(1, "At least one course is required"),
|
|
17107
|
-
|
|
17251
|
+
sensor: exports_external.string().url().optional(),
|
|
17252
|
+
launchUrl: exports_external.string().url().optional()
|
|
17253
|
+
}).refine((config2) => {
|
|
17254
|
+
return config2.courses.every((c) => c.grade !== undefined || c.courseCode !== undefined);
|
|
17255
|
+
}, {
|
|
17256
|
+
message: "Each course must have either a grade or a courseCode",
|
|
17257
|
+
path: ["courses"]
|
|
17258
|
+
}).refine((config2) => {
|
|
17259
|
+
const withGrade = config2.courses.filter((c) => c.grade !== undefined);
|
|
17260
|
+
const keys = withGrade.map((c) => `${c.subject}:${c.grade}`);
|
|
17261
|
+
return new Set(keys).size === keys.length;
|
|
17262
|
+
}, {
|
|
17263
|
+
message: "Duplicate (subject, grade) pair found; each must be unique",
|
|
17264
|
+
path: ["courses"]
|
|
17265
|
+
}).refine((config2) => {
|
|
17266
|
+
const withCode = config2.courses.filter((c) => c.courseCode !== undefined);
|
|
17267
|
+
const codes = withCode.map((c) => c.courseCode);
|
|
17268
|
+
return new Set(codes).size === codes.length;
|
|
17269
|
+
}, {
|
|
17270
|
+
message: "Duplicate courseCode found; each must be unique",
|
|
17271
|
+
path: ["courses"]
|
|
17272
|
+
}).refine((config2) => {
|
|
17273
|
+
return config2.courses.every((c) => c.sensor !== undefined || config2.sensor !== undefined);
|
|
17274
|
+
}, {
|
|
17275
|
+
message: "Each course must have an effective sensor; set a top-level `sensor` or per-course `sensor`",
|
|
17276
|
+
path: ["courses"]
|
|
17277
|
+
}).refine((config2) => {
|
|
17278
|
+
return config2.courses.every((c) => c.launchUrl !== undefined || config2.launchUrl !== undefined);
|
|
17279
|
+
}, {
|
|
17280
|
+
message: "Each course must have an effective launchUrl; set a top-level `launchUrl` or per-course `launchUrl`",
|
|
17281
|
+
path: ["courses"]
|
|
17108
17282
|
});
|
|
17109
17283
|
// ../types/src/zod/edubridge.ts
|
|
17284
|
+
var EdubridgeDateString = exports_external.union([IsoDateString, IsoDateTimeString]);
|
|
17110
17285
|
var EduBridgeEnrollment = exports_external.object({
|
|
17111
17286
|
id: exports_external.string(),
|
|
17112
17287
|
role: exports_external.string(),
|
|
17113
|
-
beginDate:
|
|
17114
|
-
endDate:
|
|
17288
|
+
beginDate: EdubridgeDateString.nullable(),
|
|
17289
|
+
endDate: EdubridgeDateString.nullable(),
|
|
17115
17290
|
metadata: exports_external.object({
|
|
17116
17291
|
goals: exports_external.object({ dailyXp: exports_external.number().optional() }).optional(),
|
|
17117
17292
|
metrics: exports_external.object({ totalXp: exports_external.number().optional(), totalLessons: exports_external.number().optional() }).optional()
|
|
@@ -17145,17 +17320,699 @@ var EduBridgeAnalyticsFacts = exports_external.record(exports_external.string(),
|
|
|
17145
17320
|
var EduBridgeEnrollmentAnalyticsResponse = exports_external.object({
|
|
17146
17321
|
message: exports_external.string(),
|
|
17147
17322
|
enrollmentId: exports_external.string(),
|
|
17148
|
-
startDate:
|
|
17149
|
-
endDate:
|
|
17323
|
+
startDate: EdubridgeDateString,
|
|
17324
|
+
endDate: EdubridgeDateString,
|
|
17150
17325
|
facts: EduBridgeAnalyticsFacts,
|
|
17151
17326
|
factsByApp: exports_external.unknown()
|
|
17152
17327
|
});
|
|
17328
|
+
var NonEmptyString = exports_external.string().trim().min(1);
|
|
17329
|
+
var EmailOrStudentId = exports_external.object({
|
|
17330
|
+
email: exports_external.email().optional(),
|
|
17331
|
+
studentId: NonEmptyString.optional()
|
|
17332
|
+
}).superRefine((value, ctx) => {
|
|
17333
|
+
if (!value.email && !value.studentId) {
|
|
17334
|
+
ctx.addIssue({
|
|
17335
|
+
code: exports_external.ZodIssueCode.custom,
|
|
17336
|
+
message: "must provide either email or studentId",
|
|
17337
|
+
path: ["email"]
|
|
17338
|
+
});
|
|
17339
|
+
ctx.addIssue({
|
|
17340
|
+
code: exports_external.ZodIssueCode.custom,
|
|
17341
|
+
message: "must provide either email or studentId",
|
|
17342
|
+
path: ["studentId"]
|
|
17343
|
+
});
|
|
17344
|
+
}
|
|
17345
|
+
});
|
|
17153
17346
|
var SubjectTrackInput = exports_external.object({
|
|
17154
|
-
subject:
|
|
17155
|
-
gradeLevel:
|
|
17156
|
-
targetCourseId:
|
|
17347
|
+
subject: NonEmptyString,
|
|
17348
|
+
gradeLevel: NonEmptyString,
|
|
17349
|
+
targetCourseId: NonEmptyString,
|
|
17157
17350
|
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
17158
17351
|
});
|
|
17352
|
+
var SubjectTrackUpsertInput = SubjectTrackInput.extend({
|
|
17353
|
+
id: NonEmptyString
|
|
17354
|
+
});
|
|
17355
|
+
var EdubridgeListEnrollmentsParams = exports_external.object({
|
|
17356
|
+
userId: NonEmptyString
|
|
17357
|
+
});
|
|
17358
|
+
var EdubridgeEnrollOptions = exports_external.object({
|
|
17359
|
+
sourcedId: NonEmptyString.optional(),
|
|
17360
|
+
role: EnrollmentRole.optional(),
|
|
17361
|
+
beginDate: EdubridgeDateString.optional(),
|
|
17362
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
17363
|
+
});
|
|
17364
|
+
var EdubridgeUsersListParams = exports_external.object({
|
|
17365
|
+
fields: exports_external.string().optional(),
|
|
17366
|
+
limit: exports_external.number().int().positive().optional(),
|
|
17367
|
+
offset: exports_external.number().int().nonnegative().optional(),
|
|
17368
|
+
sort: exports_external.string().optional(),
|
|
17369
|
+
orderBy: exports_external.enum(["asc", "desc"]).optional(),
|
|
17370
|
+
filter: exports_external.string().optional(),
|
|
17371
|
+
search: exports_external.string().optional(),
|
|
17372
|
+
roles: exports_external.array(OneRosterUserRole).min(1),
|
|
17373
|
+
orgSourcedIds: exports_external.array(NonEmptyString).optional()
|
|
17374
|
+
});
|
|
17375
|
+
var EdubridgeActivityParams = EmailOrStudentId.extend({
|
|
17376
|
+
startDate: EdubridgeDateString,
|
|
17377
|
+
endDate: EdubridgeDateString,
|
|
17378
|
+
timezone: exports_external.string().optional()
|
|
17379
|
+
});
|
|
17380
|
+
var EdubridgeWeeklyFactsParams = EmailOrStudentId.extend({
|
|
17381
|
+
weekDate: EdubridgeDateString,
|
|
17382
|
+
timezone: exports_external.string().optional()
|
|
17383
|
+
});
|
|
17384
|
+
var EdubridgeEnrollmentFactsParams = exports_external.object({
|
|
17385
|
+
enrollmentId: NonEmptyString,
|
|
17386
|
+
startDate: EdubridgeDateString.optional(),
|
|
17387
|
+
endDate: EdubridgeDateString.optional(),
|
|
17388
|
+
timezone: exports_external.string().optional()
|
|
17389
|
+
});
|
|
17390
|
+
// ../types/src/zod/oneroster.ts
|
|
17391
|
+
var NonEmptyString2 = exports_external.string().min(1);
|
|
17392
|
+
var Status = exports_external.enum(["active", "tobedeleted"]);
|
|
17393
|
+
var Metadata = exports_external.record(exports_external.string(), exports_external.unknown()).nullable().optional();
|
|
17394
|
+
var Ref = exports_external.object({
|
|
17395
|
+
sourcedId: NonEmptyString2,
|
|
17396
|
+
type: exports_external.string().optional(),
|
|
17397
|
+
href: exports_external.string().optional()
|
|
17398
|
+
}).strict();
|
|
17399
|
+
var OneRosterDateString = exports_external.union([IsoDateString, IsoDateTimeString]);
|
|
17400
|
+
var OneRosterUserRoleInput = exports_external.object({
|
|
17401
|
+
roleType: exports_external.enum(["primary", "secondary"]),
|
|
17402
|
+
role: OneRosterUserRole,
|
|
17403
|
+
org: Ref,
|
|
17404
|
+
userProfile: exports_external.string().optional(),
|
|
17405
|
+
metadata: Metadata,
|
|
17406
|
+
beginDate: OneRosterDateString.optional(),
|
|
17407
|
+
endDate: OneRosterDateString.optional()
|
|
17408
|
+
}).strict();
|
|
17409
|
+
var OneRosterUserCreateInput = exports_external.object({
|
|
17410
|
+
sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string"),
|
|
17411
|
+
status: Status.optional(),
|
|
17412
|
+
enabledUser: exports_external.boolean(),
|
|
17413
|
+
givenName: NonEmptyString2.describe("givenName must be a non-empty string"),
|
|
17414
|
+
familyName: NonEmptyString2.describe("familyName must be a non-empty string"),
|
|
17415
|
+
middleName: NonEmptyString2.optional(),
|
|
17416
|
+
username: NonEmptyString2.optional(),
|
|
17417
|
+
email: exports_external.email().optional(),
|
|
17418
|
+
roles: exports_external.array(OneRosterUserRoleInput).min(1, "roles must include at least one role"),
|
|
17419
|
+
userIds: exports_external.array(exports_external.object({
|
|
17420
|
+
type: NonEmptyString2,
|
|
17421
|
+
identifier: NonEmptyString2
|
|
17422
|
+
}).strict()).optional(),
|
|
17423
|
+
agents: exports_external.array(Ref).optional(),
|
|
17424
|
+
grades: exports_external.array(TimebackGrade).optional(),
|
|
17425
|
+
identifier: NonEmptyString2.optional(),
|
|
17426
|
+
sms: NonEmptyString2.optional(),
|
|
17427
|
+
phone: NonEmptyString2.optional(),
|
|
17428
|
+
pronouns: NonEmptyString2.optional(),
|
|
17429
|
+
password: NonEmptyString2.optional(),
|
|
17430
|
+
metadata: Metadata
|
|
17431
|
+
}).strict();
|
|
17432
|
+
var OneRosterCourseCreateInput = exports_external.object({
|
|
17433
|
+
sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string").optional(),
|
|
17434
|
+
status: Status.optional(),
|
|
17435
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
17436
|
+
org: Ref,
|
|
17437
|
+
courseCode: NonEmptyString2.optional(),
|
|
17438
|
+
subjects: exports_external.array(TimebackSubject).optional(),
|
|
17439
|
+
grades: exports_external.array(TimebackGrade).optional(),
|
|
17440
|
+
level: NonEmptyString2.optional(),
|
|
17441
|
+
metadata: Metadata
|
|
17442
|
+
}).strict();
|
|
17443
|
+
var OneRosterClassCreateInput = exports_external.object({
|
|
17444
|
+
sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string").optional(),
|
|
17445
|
+
status: Status.optional(),
|
|
17446
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
17447
|
+
terms: exports_external.array(Ref).min(1, "terms must have at least one item"),
|
|
17448
|
+
course: Ref,
|
|
17449
|
+
org: Ref,
|
|
17450
|
+
classCode: NonEmptyString2.optional(),
|
|
17451
|
+
classType: exports_external.enum(["homeroom", "scheduled"]).optional(),
|
|
17452
|
+
location: NonEmptyString2.optional(),
|
|
17453
|
+
grades: exports_external.array(TimebackGrade).optional(),
|
|
17454
|
+
subjects: exports_external.array(TimebackSubject).optional(),
|
|
17455
|
+
subjectCodes: exports_external.array(NonEmptyString2).optional(),
|
|
17456
|
+
periods: exports_external.array(NonEmptyString2).optional(),
|
|
17457
|
+
metadata: Metadata
|
|
17458
|
+
}).strict();
|
|
17459
|
+
var StringBoolean = exports_external.enum(["true", "false"]);
|
|
17460
|
+
var OneRosterEnrollmentCreateInput = exports_external.object({
|
|
17461
|
+
sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string").optional(),
|
|
17462
|
+
status: Status.optional(),
|
|
17463
|
+
user: Ref,
|
|
17464
|
+
class: Ref,
|
|
17465
|
+
school: Ref.optional(),
|
|
17466
|
+
role: OneRosterUserRole,
|
|
17467
|
+
primary: StringBoolean.optional(),
|
|
17468
|
+
beginDate: OneRosterDateString.optional(),
|
|
17469
|
+
endDate: OneRosterDateString.optional(),
|
|
17470
|
+
metadata: Metadata
|
|
17471
|
+
}).strict();
|
|
17472
|
+
var OneRosterCategoryCreateInput = exports_external.object({
|
|
17473
|
+
sourcedId: NonEmptyString2.optional(),
|
|
17474
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
17475
|
+
status: Status,
|
|
17476
|
+
weight: exports_external.number().nullable().optional(),
|
|
17477
|
+
metadata: Metadata
|
|
17478
|
+
}).strict();
|
|
17479
|
+
var OneRosterLineItemCreateInput = exports_external.object({
|
|
17480
|
+
sourcedId: NonEmptyString2.optional(),
|
|
17481
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
17482
|
+
class: Ref,
|
|
17483
|
+
school: Ref,
|
|
17484
|
+
category: Ref,
|
|
17485
|
+
assignDate: OneRosterDateString,
|
|
17486
|
+
dueDate: OneRosterDateString,
|
|
17487
|
+
status: Status,
|
|
17488
|
+
description: exports_external.string().optional(),
|
|
17489
|
+
resultValueMin: exports_external.number().nullable().optional(),
|
|
17490
|
+
resultValueMax: exports_external.number().nullable().optional(),
|
|
17491
|
+
scoreScale: Ref.optional(),
|
|
17492
|
+
metadata: Metadata
|
|
17493
|
+
}).strict();
|
|
17494
|
+
var OneRosterResultCreateInput = exports_external.object({
|
|
17495
|
+
sourcedId: NonEmptyString2.optional(),
|
|
17496
|
+
lineItem: Ref,
|
|
17497
|
+
student: Ref,
|
|
17498
|
+
class: Ref.optional(),
|
|
17499
|
+
scoreDate: OneRosterDateString,
|
|
17500
|
+
scoreStatus: exports_external.enum([
|
|
17501
|
+
"exempt",
|
|
17502
|
+
"fully graded",
|
|
17503
|
+
"not submitted",
|
|
17504
|
+
"partially graded",
|
|
17505
|
+
"submitted"
|
|
17506
|
+
]),
|
|
17507
|
+
score: exports_external.number().nullable().optional(),
|
|
17508
|
+
textScore: exports_external.string().nullable().optional(),
|
|
17509
|
+
status: Status,
|
|
17510
|
+
comment: exports_external.string().nullable().optional(),
|
|
17511
|
+
metadata: Metadata
|
|
17512
|
+
}).strict();
|
|
17513
|
+
var OneRosterScoreScaleCreateInput = exports_external.object({
|
|
17514
|
+
sourcedId: NonEmptyString2.optional(),
|
|
17515
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
17516
|
+
status: Status.optional(),
|
|
17517
|
+
type: exports_external.string().optional(),
|
|
17518
|
+
class: Ref.optional(),
|
|
17519
|
+
course: Ref.nullable().optional(),
|
|
17520
|
+
scoreScaleValue: exports_external.array(exports_external.object({
|
|
17521
|
+
itemValueLHS: NonEmptyString2,
|
|
17522
|
+
itemValueRHS: NonEmptyString2,
|
|
17523
|
+
value: exports_external.string().optional(),
|
|
17524
|
+
description: exports_external.string().optional()
|
|
17525
|
+
}).strict()).optional(),
|
|
17526
|
+
minScore: exports_external.number().optional(),
|
|
17527
|
+
maxScore: exports_external.number().optional(),
|
|
17528
|
+
metadata: Metadata
|
|
17529
|
+
}).strict();
|
|
17530
|
+
var OneRosterAssessmentLineItemCreateInput = exports_external.object({
|
|
17531
|
+
sourcedId: NonEmptyString2.optional(),
|
|
17532
|
+
status: Status.optional(),
|
|
17533
|
+
dateLastModified: IsoDateTimeString.optional(),
|
|
17534
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
17535
|
+
description: exports_external.string().nullable().optional(),
|
|
17536
|
+
class: Ref.nullable().optional(),
|
|
17537
|
+
parentAssessmentLineItem: Ref.nullable().optional(),
|
|
17538
|
+
scoreScale: Ref.nullable().optional(),
|
|
17539
|
+
resultValueMin: exports_external.number().nullable().optional(),
|
|
17540
|
+
resultValueMax: exports_external.number().nullable().optional(),
|
|
17541
|
+
component: Ref.nullable().optional(),
|
|
17542
|
+
componentResource: Ref.nullable().optional(),
|
|
17543
|
+
learningObjectiveSet: exports_external.array(exports_external.object({
|
|
17544
|
+
source: exports_external.string(),
|
|
17545
|
+
learningObjectiveIds: exports_external.array(exports_external.string())
|
|
17546
|
+
})).optional().nullable(),
|
|
17547
|
+
course: Ref.nullable().optional(),
|
|
17548
|
+
metadata: Metadata
|
|
17549
|
+
}).strict();
|
|
17550
|
+
var LearningObjectiveResult = exports_external.object({
|
|
17551
|
+
learningObjectiveId: exports_external.string(),
|
|
17552
|
+
score: exports_external.number().optional(),
|
|
17553
|
+
textScore: exports_external.string().optional()
|
|
17554
|
+
});
|
|
17555
|
+
var LearningObjectiveScoreSetSchema = exports_external.array(exports_external.object({
|
|
17556
|
+
source: exports_external.string(),
|
|
17557
|
+
learningObjectiveResults: exports_external.array(LearningObjectiveResult)
|
|
17558
|
+
}));
|
|
17559
|
+
var OneRosterAssessmentResultCreateInput = exports_external.object({
|
|
17560
|
+
sourcedId: NonEmptyString2.optional(),
|
|
17561
|
+
status: Status.optional(),
|
|
17562
|
+
dateLastModified: IsoDateTimeString.optional(),
|
|
17563
|
+
metadata: Metadata,
|
|
17564
|
+
assessmentLineItem: Ref,
|
|
17565
|
+
student: Ref,
|
|
17566
|
+
score: exports_external.number().nullable().optional(),
|
|
17567
|
+
textScore: exports_external.string().nullable().optional(),
|
|
17568
|
+
scoreDate: exports_external.string().datetime(),
|
|
17569
|
+
scoreScale: Ref.nullable().optional(),
|
|
17570
|
+
scorePercentile: exports_external.number().nullable().optional(),
|
|
17571
|
+
scoreStatus: exports_external.enum([
|
|
17572
|
+
"exempt",
|
|
17573
|
+
"fully graded",
|
|
17574
|
+
"not submitted",
|
|
17575
|
+
"partially graded",
|
|
17576
|
+
"submitted"
|
|
17577
|
+
]),
|
|
17578
|
+
comment: exports_external.string().nullable().optional(),
|
|
17579
|
+
learningObjectiveSet: LearningObjectiveScoreSetSchema.nullable().optional(),
|
|
17580
|
+
inProgress: exports_external.string().nullable().optional(),
|
|
17581
|
+
incomplete: exports_external.string().nullable().optional(),
|
|
17582
|
+
late: exports_external.string().nullable().optional(),
|
|
17583
|
+
missing: exports_external.string().nullable().optional()
|
|
17584
|
+
}).strict();
|
|
17585
|
+
var OneRosterOrgCreateInput = exports_external.object({
|
|
17586
|
+
sourcedId: NonEmptyString2.optional(),
|
|
17587
|
+
status: Status.optional(),
|
|
17588
|
+
name: NonEmptyString2.describe("name must be a non-empty string"),
|
|
17589
|
+
type: OrganizationType,
|
|
17590
|
+
identifier: NonEmptyString2.optional(),
|
|
17591
|
+
parent: Ref.optional(),
|
|
17592
|
+
metadata: Metadata
|
|
17593
|
+
}).strict();
|
|
17594
|
+
var OneRosterSchoolCreateInput = exports_external.object({
|
|
17595
|
+
sourcedId: NonEmptyString2.optional(),
|
|
17596
|
+
status: Status.optional(),
|
|
17597
|
+
name: NonEmptyString2.describe("name must be a non-empty string"),
|
|
17598
|
+
type: exports_external.literal("school").optional(),
|
|
17599
|
+
identifier: NonEmptyString2.optional(),
|
|
17600
|
+
parent: Ref.optional(),
|
|
17601
|
+
metadata: Metadata
|
|
17602
|
+
}).strict();
|
|
17603
|
+
var OneRosterAcademicSessionCreateInput = exports_external.object({
|
|
17604
|
+
sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string"),
|
|
17605
|
+
status: Status,
|
|
17606
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
17607
|
+
startDate: OneRosterDateString,
|
|
17608
|
+
endDate: OneRosterDateString,
|
|
17609
|
+
type: exports_external.enum(["gradingPeriod", "semester", "schoolYear", "term"]),
|
|
17610
|
+
schoolYear: NonEmptyString2.describe("schoolYear must be a non-empty string"),
|
|
17611
|
+
org: Ref,
|
|
17612
|
+
parent: Ref.optional(),
|
|
17613
|
+
children: exports_external.array(Ref).optional(),
|
|
17614
|
+
metadata: Metadata
|
|
17615
|
+
}).strict();
|
|
17616
|
+
var OneRosterComponentResourceCreateInput = exports_external.object({
|
|
17617
|
+
sourcedId: NonEmptyString2.optional(),
|
|
17618
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
17619
|
+
courseComponent: Ref,
|
|
17620
|
+
resource: Ref,
|
|
17621
|
+
status: Status,
|
|
17622
|
+
metadata: Metadata
|
|
17623
|
+
}).strict();
|
|
17624
|
+
var OneRosterCourseComponentCreateInput = exports_external.object({
|
|
17625
|
+
sourcedId: NonEmptyString2.optional(),
|
|
17626
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
17627
|
+
course: Ref,
|
|
17628
|
+
status: Status,
|
|
17629
|
+
metadata: Metadata
|
|
17630
|
+
}).strict();
|
|
17631
|
+
var OneRosterEnrollInput = exports_external.object({
|
|
17632
|
+
sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string"),
|
|
17633
|
+
role: exports_external.enum(["student", "teacher"]),
|
|
17634
|
+
primary: StringBoolean.optional(),
|
|
17635
|
+
beginDate: OneRosterDateString.optional(),
|
|
17636
|
+
endDate: OneRosterDateString.optional(),
|
|
17637
|
+
metadata: Metadata
|
|
17638
|
+
}).strict();
|
|
17639
|
+
var OneRosterAgentInput = exports_external.object({
|
|
17640
|
+
agentSourcedId: NonEmptyString2.describe("agentSourcedId must be a non-empty string")
|
|
17641
|
+
}).strict();
|
|
17642
|
+
var OneRosterCredentialInput = exports_external.object({
|
|
17643
|
+
type: NonEmptyString2.describe("type must be a non-empty string"),
|
|
17644
|
+
username: NonEmptyString2.describe("username must be a non-empty string"),
|
|
17645
|
+
password: exports_external.string().optional(),
|
|
17646
|
+
metadata: Metadata
|
|
17647
|
+
}).strict();
|
|
17648
|
+
var OneRosterDemographicsCreateInput = exports_external.object({
|
|
17649
|
+
sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string")
|
|
17650
|
+
}).loose();
|
|
17651
|
+
var CommonResourceMetadataSchema = exports_external.object({
|
|
17652
|
+
type: ResourceType,
|
|
17653
|
+
subject: TimebackSubject.nullish(),
|
|
17654
|
+
grades: exports_external.array(TimebackGrade).nullish(),
|
|
17655
|
+
language: exports_external.string().nullish(),
|
|
17656
|
+
xp: exports_external.number().nullish(),
|
|
17657
|
+
url: exports_external.url().nullish(),
|
|
17658
|
+
keywords: exports_external.array(exports_external.string()).nullish(),
|
|
17659
|
+
learningObjectiveSet: LearningObjectiveSetSchema.nullish(),
|
|
17660
|
+
lessonType: exports_external.string().nullish()
|
|
17661
|
+
}).passthrough();
|
|
17662
|
+
var QtiMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
17663
|
+
type: exports_external.literal("qti"),
|
|
17664
|
+
subType: QtiSubType,
|
|
17665
|
+
questionType: QuestionType.optional(),
|
|
17666
|
+
difficulty: Difficulty.optional()
|
|
17667
|
+
});
|
|
17668
|
+
var TextMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
17669
|
+
type: exports_external.literal("text"),
|
|
17670
|
+
format: exports_external.string(),
|
|
17671
|
+
author: exports_external.string().optional(),
|
|
17672
|
+
pageCount: exports_external.number().optional()
|
|
17673
|
+
});
|
|
17674
|
+
var AudioMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
17675
|
+
type: exports_external.literal("audio"),
|
|
17676
|
+
duration: exports_external.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),
|
|
17677
|
+
format: exports_external.string(),
|
|
17678
|
+
speaker: exports_external.string().optional()
|
|
17679
|
+
});
|
|
17680
|
+
var VideoMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
17681
|
+
type: exports_external.literal("video"),
|
|
17682
|
+
duration: exports_external.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),
|
|
17683
|
+
captionsAvailable: exports_external.boolean().optional(),
|
|
17684
|
+
format: exports_external.string()
|
|
17685
|
+
});
|
|
17686
|
+
var InteractiveMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
17687
|
+
type: exports_external.literal("interactive"),
|
|
17688
|
+
launchUrl: exports_external.url().optional(),
|
|
17689
|
+
toolProvider: exports_external.string().optional(),
|
|
17690
|
+
instructionalMethod: exports_external.string().optional(),
|
|
17691
|
+
courseIdOnFail: exports_external.string().nullable().optional(),
|
|
17692
|
+
fail_fast: FastFailConfigSchema
|
|
17693
|
+
});
|
|
17694
|
+
var VisualMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
17695
|
+
type: exports_external.literal("visual"),
|
|
17696
|
+
format: exports_external.string(),
|
|
17697
|
+
resolution: exports_external.string().optional()
|
|
17698
|
+
});
|
|
17699
|
+
var CourseMaterialMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
17700
|
+
type: exports_external.literal("course-material"),
|
|
17701
|
+
subType: CourseMaterialSubType,
|
|
17702
|
+
author: exports_external.string().optional(),
|
|
17703
|
+
format: exports_external.string(),
|
|
17704
|
+
instructionalMethod: exports_external.string().optional()
|
|
17705
|
+
});
|
|
17706
|
+
var AssessmentBankMetadataSchema = CommonResourceMetadataSchema.extend({
|
|
17707
|
+
type: exports_external.literal("assessment-bank"),
|
|
17708
|
+
resources: exports_external.array(exports_external.string())
|
|
17709
|
+
});
|
|
17710
|
+
var ResourceMetadataSchema = exports_external.discriminatedUnion("type", [
|
|
17711
|
+
QtiMetadataSchema,
|
|
17712
|
+
TextMetadataSchema,
|
|
17713
|
+
AudioMetadataSchema,
|
|
17714
|
+
VideoMetadataSchema,
|
|
17715
|
+
InteractiveMetadataSchema,
|
|
17716
|
+
VisualMetadataSchema,
|
|
17717
|
+
CourseMaterialMetadataSchema,
|
|
17718
|
+
AssessmentBankMetadataSchema
|
|
17719
|
+
]);
|
|
17720
|
+
var OneRosterResourceCreateInput = exports_external.object({
|
|
17721
|
+
sourcedId: NonEmptyString2.optional(),
|
|
17722
|
+
title: NonEmptyString2.describe("title must be a non-empty string"),
|
|
17723
|
+
vendorResourceId: NonEmptyString2.describe("vendorResourceId must be a non-empty string"),
|
|
17724
|
+
roles: exports_external.array(exports_external.enum(["primary", "secondary"])).optional(),
|
|
17725
|
+
importance: exports_external.enum(["primary", "secondary"]).optional(),
|
|
17726
|
+
vendorId: exports_external.string().optional(),
|
|
17727
|
+
applicationId: exports_external.string().optional(),
|
|
17728
|
+
status: Status.optional(),
|
|
17729
|
+
metadata: ResourceMetadataSchema.nullable().optional()
|
|
17730
|
+
}).strict();
|
|
17731
|
+
var CourseStructureItem = exports_external.object({
|
|
17732
|
+
url: NonEmptyString2.describe("courseStructure.url must be a non-empty string"),
|
|
17733
|
+
skillCode: NonEmptyString2.describe("courseStructure.skillCode must be a non-empty string"),
|
|
17734
|
+
lessonCode: NonEmptyString2.describe("courseStructure.lessonCode must be a non-empty string"),
|
|
17735
|
+
title: NonEmptyString2.describe("courseStructure.title must be a non-empty string"),
|
|
17736
|
+
"unit-title": NonEmptyString2.describe("courseStructure.unit-title must be a non-empty string"),
|
|
17737
|
+
status: NonEmptyString2.describe("courseStructure.status must be a non-empty string"),
|
|
17738
|
+
xp: exports_external.number()
|
|
17739
|
+
}).loose();
|
|
17740
|
+
var OneRosterCourseStructureInput = exports_external.object({
|
|
17741
|
+
course: exports_external.object({
|
|
17742
|
+
sourcedId: NonEmptyString2.describe("course.sourcedId must be a non-empty string").optional(),
|
|
17743
|
+
title: NonEmptyString2.describe("course.title must be a non-empty string"),
|
|
17744
|
+
org: Ref,
|
|
17745
|
+
status: Status,
|
|
17746
|
+
metadata: Metadata
|
|
17747
|
+
}).strict(),
|
|
17748
|
+
courseStructure: exports_external.record(exports_external.string(), CourseStructureItem)
|
|
17749
|
+
}).strict();
|
|
17750
|
+
var OneRosterBulkResultItem = exports_external.object({
|
|
17751
|
+
student: Ref
|
|
17752
|
+
}).loose();
|
|
17753
|
+
var OneRosterBulkResultsInput = exports_external.array(OneRosterBulkResultItem).min(1, "results must have at least one item");
|
|
17754
|
+
// ../types/src/zod/powerpath.ts
|
|
17755
|
+
var NonEmptyString3 = exports_external.string().trim().min(1);
|
|
17756
|
+
var ToolProvider = exports_external.enum(["edulastic", "mastery-track"]);
|
|
17757
|
+
var LessonTypeRequired = exports_external.enum([
|
|
17758
|
+
"powerpath-100",
|
|
17759
|
+
"quiz",
|
|
17760
|
+
"test-out",
|
|
17761
|
+
"placement",
|
|
17762
|
+
"unit-test",
|
|
17763
|
+
"alpha-read-article"
|
|
17764
|
+
]);
|
|
17765
|
+
var GradeArray = exports_external.array(TimebackGrade);
|
|
17766
|
+
var ResourceMetadata = exports_external.record(exports_external.string(), exports_external.unknown()).optional();
|
|
17767
|
+
var ExternalTestBase = exports_external.object({
|
|
17768
|
+
courseId: NonEmptyString3,
|
|
17769
|
+
lessonTitle: NonEmptyString3.optional(),
|
|
17770
|
+
launchUrl: exports_external.url().optional(),
|
|
17771
|
+
toolProvider: ToolProvider,
|
|
17772
|
+
unitTitle: NonEmptyString3.optional(),
|
|
17773
|
+
courseComponentSourcedId: NonEmptyString3.optional(),
|
|
17774
|
+
vendorId: NonEmptyString3.optional(),
|
|
17775
|
+
description: NonEmptyString3.optional(),
|
|
17776
|
+
resourceMetadata: ResourceMetadata.nullable().optional(),
|
|
17777
|
+
grades: GradeArray
|
|
17778
|
+
});
|
|
17779
|
+
var ExternalTestOut = ExternalTestBase.extend({
|
|
17780
|
+
lessonType: exports_external.literal("test-out"),
|
|
17781
|
+
xp: exports_external.number()
|
|
17782
|
+
});
|
|
17783
|
+
var ExternalPlacement = ExternalTestBase.extend({
|
|
17784
|
+
lessonType: exports_external.literal("placement"),
|
|
17785
|
+
courseIdOnFail: NonEmptyString3.optional(),
|
|
17786
|
+
xp: exports_external.number().optional()
|
|
17787
|
+
});
|
|
17788
|
+
var InternalTestBase = exports_external.object({
|
|
17789
|
+
courseId: NonEmptyString3,
|
|
17790
|
+
lessonType: LessonTypeRequired,
|
|
17791
|
+
lessonTitle: NonEmptyString3.optional(),
|
|
17792
|
+
unitTitle: NonEmptyString3.optional(),
|
|
17793
|
+
courseComponentSourcedId: NonEmptyString3.optional(),
|
|
17794
|
+
resourceMetadata: ResourceMetadata.nullable().optional(),
|
|
17795
|
+
xp: exports_external.number().optional(),
|
|
17796
|
+
grades: GradeArray.optional(),
|
|
17797
|
+
courseIdOnFail: NonEmptyString3.optional()
|
|
17798
|
+
});
|
|
17799
|
+
var PowerPathCreateInternalTestInput = exports_external.union([
|
|
17800
|
+
InternalTestBase.extend({
|
|
17801
|
+
testType: exports_external.literal("qti"),
|
|
17802
|
+
qti: exports_external.object({
|
|
17803
|
+
url: exports_external.url(),
|
|
17804
|
+
title: NonEmptyString3.optional(),
|
|
17805
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
17806
|
+
})
|
|
17807
|
+
}),
|
|
17808
|
+
InternalTestBase.extend({
|
|
17809
|
+
testType: exports_external.literal("assessment-bank"),
|
|
17810
|
+
assessmentBank: exports_external.object({
|
|
17811
|
+
resources: exports_external.array(exports_external.object({
|
|
17812
|
+
url: exports_external.url(),
|
|
17813
|
+
title: NonEmptyString3.optional(),
|
|
17814
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
17815
|
+
}))
|
|
17816
|
+
})
|
|
17817
|
+
})
|
|
17818
|
+
]);
|
|
17819
|
+
var PowerPathCreateNewAttemptInput = exports_external.object({
|
|
17820
|
+
student: NonEmptyString3,
|
|
17821
|
+
lesson: NonEmptyString3
|
|
17822
|
+
});
|
|
17823
|
+
var PowerPathFinalStudentAssessmentResponseInput = exports_external.object({
|
|
17824
|
+
student: NonEmptyString3,
|
|
17825
|
+
lesson: NonEmptyString3
|
|
17826
|
+
});
|
|
17827
|
+
var PowerPathLessonPlansCreateInput = exports_external.object({
|
|
17828
|
+
courseId: NonEmptyString3,
|
|
17829
|
+
userId: NonEmptyString3,
|
|
17830
|
+
classId: NonEmptyString3.optional()
|
|
17831
|
+
});
|
|
17832
|
+
var LessonPlanTarget = exports_external.object({
|
|
17833
|
+
type: exports_external.enum(["component", "resource"]),
|
|
17834
|
+
id: NonEmptyString3
|
|
17835
|
+
});
|
|
17836
|
+
var PowerPathLessonPlanOperationInput = exports_external.union([
|
|
17837
|
+
exports_external.object({
|
|
17838
|
+
type: exports_external.literal("set-skipped"),
|
|
17839
|
+
payload: exports_external.object({
|
|
17840
|
+
target: LessonPlanTarget,
|
|
17841
|
+
value: exports_external.boolean()
|
|
17842
|
+
})
|
|
17843
|
+
}),
|
|
17844
|
+
exports_external.object({
|
|
17845
|
+
type: exports_external.literal("add-custom-resource"),
|
|
17846
|
+
payload: exports_external.object({
|
|
17847
|
+
resource_id: NonEmptyString3,
|
|
17848
|
+
parent_component_id: NonEmptyString3,
|
|
17849
|
+
skipped: exports_external.boolean().optional()
|
|
17850
|
+
})
|
|
17851
|
+
}),
|
|
17852
|
+
exports_external.object({
|
|
17853
|
+
type: exports_external.literal("move-item-before"),
|
|
17854
|
+
payload: exports_external.object({
|
|
17855
|
+
target: LessonPlanTarget,
|
|
17856
|
+
reference_id: NonEmptyString3
|
|
17857
|
+
})
|
|
17858
|
+
}),
|
|
17859
|
+
exports_external.object({
|
|
17860
|
+
type: exports_external.literal("move-item-after"),
|
|
17861
|
+
payload: exports_external.object({
|
|
17862
|
+
target: LessonPlanTarget,
|
|
17863
|
+
reference_id: NonEmptyString3
|
|
17864
|
+
})
|
|
17865
|
+
}),
|
|
17866
|
+
exports_external.object({
|
|
17867
|
+
type: exports_external.literal("move-item-to-start"),
|
|
17868
|
+
payload: exports_external.object({
|
|
17869
|
+
target: LessonPlanTarget
|
|
17870
|
+
})
|
|
17871
|
+
}),
|
|
17872
|
+
exports_external.object({
|
|
17873
|
+
type: exports_external.literal("move-item-to-end"),
|
|
17874
|
+
payload: exports_external.object({
|
|
17875
|
+
target: LessonPlanTarget
|
|
17876
|
+
})
|
|
17877
|
+
}),
|
|
17878
|
+
exports_external.object({
|
|
17879
|
+
type: exports_external.literal("change-item-parent"),
|
|
17880
|
+
payload: exports_external.object({
|
|
17881
|
+
target: LessonPlanTarget,
|
|
17882
|
+
new_parent_id: NonEmptyString3,
|
|
17883
|
+
position: exports_external.enum(["start", "end"]).optional()
|
|
17884
|
+
})
|
|
17885
|
+
})
|
|
17886
|
+
]);
|
|
17887
|
+
var PowerPathLessonPlanOperationsInput = exports_external.object({
|
|
17888
|
+
operation: exports_external.array(PowerPathLessonPlanOperationInput),
|
|
17889
|
+
reason: NonEmptyString3.optional()
|
|
17890
|
+
});
|
|
17891
|
+
var PowerPathLessonPlanUpdateStudentItemResponseInput = exports_external.object({
|
|
17892
|
+
studentId: NonEmptyString3,
|
|
17893
|
+
componentResourceId: NonEmptyString3,
|
|
17894
|
+
result: exports_external.object({
|
|
17895
|
+
status: exports_external.enum(["active", "tobedeleted"]),
|
|
17896
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
|
|
17897
|
+
score: exports_external.number().optional(),
|
|
17898
|
+
textScore: NonEmptyString3.optional(),
|
|
17899
|
+
scoreDate: NonEmptyString3,
|
|
17900
|
+
scorePercentile: exports_external.number().optional(),
|
|
17901
|
+
scoreStatus: ScoreStatus,
|
|
17902
|
+
comment: NonEmptyString3.optional(),
|
|
17903
|
+
learningObjectiveSet: exports_external.array(exports_external.object({
|
|
17904
|
+
source: NonEmptyString3,
|
|
17905
|
+
learningObjectiveResults: exports_external.array(exports_external.object({
|
|
17906
|
+
learningObjectiveId: NonEmptyString3,
|
|
17907
|
+
score: exports_external.number().optional(),
|
|
17908
|
+
textScore: NonEmptyString3.optional()
|
|
17909
|
+
}))
|
|
17910
|
+
})).optional(),
|
|
17911
|
+
inProgress: NonEmptyString3.optional(),
|
|
17912
|
+
incomplete: NonEmptyString3.optional(),
|
|
17913
|
+
late: NonEmptyString3.optional(),
|
|
17914
|
+
missing: NonEmptyString3.optional()
|
|
17915
|
+
})
|
|
17916
|
+
});
|
|
17917
|
+
var PowerPathMakeExternalTestAssignmentInput = exports_external.object({
|
|
17918
|
+
student: NonEmptyString3,
|
|
17919
|
+
lesson: NonEmptyString3,
|
|
17920
|
+
applicationName: NonEmptyString3.optional(),
|
|
17921
|
+
testId: NonEmptyString3.optional(),
|
|
17922
|
+
skipCourseEnrollment: exports_external.boolean().optional()
|
|
17923
|
+
});
|
|
17924
|
+
var PowerPathPlacementResetUserPlacementInput = exports_external.object({
|
|
17925
|
+
student: NonEmptyString3,
|
|
17926
|
+
subject: TimebackSubject
|
|
17927
|
+
});
|
|
17928
|
+
var PowerPathResetAttemptInput = exports_external.object({
|
|
17929
|
+
student: NonEmptyString3,
|
|
17930
|
+
lesson: NonEmptyString3
|
|
17931
|
+
});
|
|
17932
|
+
var PowerPathScreeningResetSessionInput = exports_external.object({
|
|
17933
|
+
userId: NonEmptyString3
|
|
17934
|
+
});
|
|
17935
|
+
var PowerPathScreeningAssignTestInput = exports_external.object({
|
|
17936
|
+
userId: NonEmptyString3,
|
|
17937
|
+
subject: exports_external.enum(["Math", "Reading", "Language", "Science"])
|
|
17938
|
+
});
|
|
17939
|
+
var PowerPathTestAssignmentsCreateInput = exports_external.object({
|
|
17940
|
+
student: NonEmptyString3,
|
|
17941
|
+
subject: TimebackSubject,
|
|
17942
|
+
grade: TimebackGrade,
|
|
17943
|
+
testName: NonEmptyString3.optional()
|
|
17944
|
+
});
|
|
17945
|
+
var PowerPathTestAssignmentsUpdateInput = exports_external.object({
|
|
17946
|
+
testName: NonEmptyString3
|
|
17947
|
+
});
|
|
17948
|
+
var PowerPathTestAssignmentItemInput = exports_external.object({
|
|
17949
|
+
student: NonEmptyString3,
|
|
17950
|
+
subject: TimebackSubject,
|
|
17951
|
+
grade: TimebackGrade,
|
|
17952
|
+
testName: NonEmptyString3.optional()
|
|
17953
|
+
});
|
|
17954
|
+
var PowerPathTestAssignmentsBulkInput = exports_external.object({
|
|
17955
|
+
items: exports_external.array(PowerPathTestAssignmentItemInput)
|
|
17956
|
+
});
|
|
17957
|
+
var PowerPathTestAssignmentsImportInput = exports_external.object({
|
|
17958
|
+
spreadsheetUrl: exports_external.url(),
|
|
17959
|
+
sheet: NonEmptyString3
|
|
17960
|
+
});
|
|
17961
|
+
var PowerPathTestAssignmentsListParams = exports_external.object({
|
|
17962
|
+
student: NonEmptyString3,
|
|
17963
|
+
status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
|
|
17964
|
+
subject: NonEmptyString3.optional(),
|
|
17965
|
+
grade: TimebackGrade.optional(),
|
|
17966
|
+
limit: exports_external.number().int().positive().max(3000).optional(),
|
|
17967
|
+
offset: exports_external.number().int().nonnegative().optional()
|
|
17968
|
+
});
|
|
17969
|
+
var PowerPathTestAssignmentsAdminParams = exports_external.object({
|
|
17970
|
+
student: NonEmptyString3.optional(),
|
|
17971
|
+
status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
|
|
17972
|
+
subject: NonEmptyString3.optional(),
|
|
17973
|
+
grade: TimebackGrade.optional(),
|
|
17974
|
+
limit: exports_external.number().int().positive().max(3000).optional(),
|
|
17975
|
+
offset: exports_external.number().int().nonnegative().optional()
|
|
17976
|
+
});
|
|
17977
|
+
var PowerPathUpdateStudentQuestionResponseInput = exports_external.object({
|
|
17978
|
+
student: NonEmptyString3,
|
|
17979
|
+
question: NonEmptyString3,
|
|
17980
|
+
response: exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)]).optional(),
|
|
17981
|
+
responses: exports_external.record(exports_external.string(), exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)])).optional(),
|
|
17982
|
+
lesson: NonEmptyString3
|
|
17983
|
+
});
|
|
17984
|
+
var PowerPathGetAssessmentProgressParams = exports_external.object({
|
|
17985
|
+
student: NonEmptyString3,
|
|
17986
|
+
lesson: NonEmptyString3,
|
|
17987
|
+
attempt: exports_external.number().int().positive().optional()
|
|
17988
|
+
});
|
|
17989
|
+
var PowerPathGetNextQuestionParams = exports_external.object({
|
|
17990
|
+
student: NonEmptyString3,
|
|
17991
|
+
lesson: NonEmptyString3
|
|
17992
|
+
});
|
|
17993
|
+
var PowerPathGetAttemptsParams = exports_external.object({
|
|
17994
|
+
student: NonEmptyString3,
|
|
17995
|
+
lesson: NonEmptyString3
|
|
17996
|
+
});
|
|
17997
|
+
var PowerPathTestOutParams = exports_external.object({
|
|
17998
|
+
student: NonEmptyString3,
|
|
17999
|
+
lesson: NonEmptyString3.optional(),
|
|
18000
|
+
finalized: exports_external.boolean().optional(),
|
|
18001
|
+
toolProvider: NonEmptyString3.optional(),
|
|
18002
|
+
attempt: exports_external.number().int().positive().optional()
|
|
18003
|
+
});
|
|
18004
|
+
var PowerPathImportExternalTestAssignmentResultsParams = exports_external.object({
|
|
18005
|
+
student: NonEmptyString3,
|
|
18006
|
+
lesson: NonEmptyString3,
|
|
18007
|
+
applicationName: NonEmptyString3.optional()
|
|
18008
|
+
});
|
|
18009
|
+
var PowerPathPlacementQueryParams = exports_external.object({
|
|
18010
|
+
student: NonEmptyString3,
|
|
18011
|
+
subject: TimebackSubject
|
|
18012
|
+
});
|
|
18013
|
+
var PowerPathSyllabusQueryParams = exports_external.object({
|
|
18014
|
+
status: exports_external.enum(["active", "tobedeleted"]).optional()
|
|
18015
|
+
});
|
|
17159
18016
|
// ../types/src/zod/qti.ts
|
|
17160
18017
|
var QtiAssessmentItemType = exports_external.enum([
|
|
17161
18018
|
"choice",
|
|
@@ -17272,6 +18129,12 @@ var QtiCatalogInfo = exports_external.object({
|
|
|
17272
18129
|
support: exports_external.string(),
|
|
17273
18130
|
content: exports_external.string()
|
|
17274
18131
|
}).strict();
|
|
18132
|
+
var QtiPaginationParams = exports_external.object({
|
|
18133
|
+
page: exports_external.number().int().positive().optional(),
|
|
18134
|
+
limit: exports_external.number().int().positive().optional(),
|
|
18135
|
+
sort: exports_external.string().optional(),
|
|
18136
|
+
order: exports_external.enum(["asc", "desc"]).optional()
|
|
18137
|
+
}).strict();
|
|
17275
18138
|
var QtiAssessmentItemCreateInput = exports_external.object({
|
|
17276
18139
|
identifier: exports_external.string().min(1),
|
|
17277
18140
|
title: exports_external.string().min(1),
|
|
@@ -17288,6 +18151,7 @@ var QtiAssessmentItemCreateInput = exports_external.object({
|
|
|
17288
18151
|
feedbackBlock: exports_external.array(QtiFeedbackBlock).optional()
|
|
17289
18152
|
}).strict();
|
|
17290
18153
|
var QtiAssessmentItemUpdateInput = exports_external.object({
|
|
18154
|
+
identifier: exports_external.string().min(1).optional(),
|
|
17291
18155
|
title: exports_external.string().min(1),
|
|
17292
18156
|
type: QtiAssessmentItemType,
|
|
17293
18157
|
qtiVersion: exports_external.string().optional(),
|
|
@@ -17326,6 +18190,12 @@ var QtiTestPart = exports_external.object({
|
|
|
17326
18190
|
submissionMode: QtiSubmissionMode,
|
|
17327
18191
|
"qti-assessment-section": exports_external.union([QtiAssessmentSection, exports_external.array(QtiAssessmentSection)])
|
|
17328
18192
|
}).strict();
|
|
18193
|
+
var QtiReorderItemsInput = exports_external.object({
|
|
18194
|
+
items: exports_external.array(QtiAssessmentItemRef).min(1)
|
|
18195
|
+
}).strict();
|
|
18196
|
+
var QtiAssessmentTestMetadataUpdateInput = exports_external.object({
|
|
18197
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
18198
|
+
}).strict();
|
|
17329
18199
|
var QtiAssessmentTestCreateInput = exports_external.object({
|
|
17330
18200
|
identifier: exports_external.string().min(1),
|
|
17331
18201
|
title: exports_external.string().min(1),
|
|
@@ -17340,6 +18210,7 @@ var QtiAssessmentTestCreateInput = exports_external.object({
|
|
|
17340
18210
|
"qti-outcome-declaration": exports_external.array(QtiTestOutcomeDeclaration).optional()
|
|
17341
18211
|
}).strict();
|
|
17342
18212
|
var QtiAssessmentTestUpdateInput = exports_external.object({
|
|
18213
|
+
identifier: exports_external.string().min(1).optional(),
|
|
17343
18214
|
title: exports_external.string().min(1),
|
|
17344
18215
|
qtiVersion: exports_external.string().optional(),
|
|
17345
18216
|
toolName: exports_external.string().optional(),
|
|
@@ -17364,6 +18235,7 @@ var QtiStimulusCreateInput = exports_external.object({
|
|
|
17364
18235
|
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
17365
18236
|
}).strict();
|
|
17366
18237
|
var QtiStimulusUpdateInput = exports_external.object({
|
|
18238
|
+
identifier: exports_external.string().min(1).optional(),
|
|
17367
18239
|
title: exports_external.string().min(1),
|
|
17368
18240
|
label: exports_external.string().optional(),
|
|
17369
18241
|
language: exports_external.string().optional(),
|
|
@@ -17393,9 +18265,24 @@ var QtiLessonFeedbackInput = exports_external.object({
|
|
|
17393
18265
|
}).strict();
|
|
17394
18266
|
// ../internal/cli-infra/src/config/timeback.ts
|
|
17395
18267
|
var FILE_PATTERNS2 = ["timeback.config.ts", "timeback.config.js", "timeback.config.mjs"];
|
|
17396
|
-
var
|
|
18268
|
+
var isBun = typeof globalThis.Bun !== "undefined";
|
|
18269
|
+
var jitiInstance = null;
|
|
18270
|
+
async function getJiti() {
|
|
18271
|
+
if (jitiInstance)
|
|
18272
|
+
return jitiInstance;
|
|
18273
|
+
const { createJiti } = await import("jiti");
|
|
18274
|
+
jitiInstance = createJiti(import.meta.url, { fsCache: false });
|
|
18275
|
+
return jitiInstance;
|
|
18276
|
+
}
|
|
17397
18277
|
async function importModule(fullPath) {
|
|
17398
|
-
|
|
18278
|
+
let module;
|
|
18279
|
+
if (isBun) {
|
|
18280
|
+
const fileUrl = pathToFileURL(fullPath).href;
|
|
18281
|
+
module = await import(fileUrl);
|
|
18282
|
+
} else {
|
|
18283
|
+
const jiti = await getJiti();
|
|
18284
|
+
module = await jiti.import(fullPath);
|
|
18285
|
+
}
|
|
17399
18286
|
return module.default ?? module;
|
|
17400
18287
|
}
|
|
17401
18288
|
function deriveCourseIds(config3) {
|
|
@@ -17707,29 +18594,18 @@ function isValidUrl(url2) {
|
|
|
17707
18594
|
return false;
|
|
17708
18595
|
}
|
|
17709
18596
|
}
|
|
17710
|
-
async function
|
|
17711
|
-
const
|
|
17712
|
-
message: "Add Caliper sensor URLs for event filtering?",
|
|
17713
|
-
initialValue: false
|
|
17714
|
-
});
|
|
17715
|
-
if (isCancelled(wantSensors)) {
|
|
17716
|
-
return;
|
|
17717
|
-
}
|
|
17718
|
-
if (!wantSensors) {
|
|
17719
|
-
return [];
|
|
17720
|
-
}
|
|
18597
|
+
async function promptSensor(options) {
|
|
18598
|
+
const { defaultValue } = options ?? {};
|
|
17721
18599
|
const input = await he({
|
|
17722
|
-
message: "Sensor
|
|
17723
|
-
placeholder: "https://myapp.example.com
|
|
18600
|
+
message: "Sensor URL (your app origin, used for activity tracking)",
|
|
18601
|
+
placeholder: "https://myapp.example.com",
|
|
18602
|
+
defaultValue,
|
|
17724
18603
|
validate: (value) => {
|
|
17725
18604
|
if (!value.trim()) {
|
|
17726
|
-
return "
|
|
18605
|
+
return "Sensor URL is required for activity tracking";
|
|
17727
18606
|
}
|
|
17728
|
-
|
|
17729
|
-
|
|
17730
|
-
if (!isValidUrl(url2)) {
|
|
17731
|
-
return `Invalid URL: ${url2}`;
|
|
17732
|
-
}
|
|
18607
|
+
if (!isValidUrl(value.trim())) {
|
|
18608
|
+
return "Invalid URL format";
|
|
17733
18609
|
}
|
|
17734
18610
|
return;
|
|
17735
18611
|
}
|
|
@@ -17737,7 +18613,26 @@ async function promptSensors() {
|
|
|
17737
18613
|
if (isCancelled(input)) {
|
|
17738
18614
|
return;
|
|
17739
18615
|
}
|
|
17740
|
-
return input.
|
|
18616
|
+
return input.trim();
|
|
18617
|
+
}
|
|
18618
|
+
// ../internal/cli-infra/src/sensors/utils.ts
|
|
18619
|
+
function deriveSensorsFromConfig(config3) {
|
|
18620
|
+
const sensors = new Set;
|
|
18621
|
+
if (config3.sensor) {
|
|
18622
|
+
sensors.add(config3.sensor);
|
|
18623
|
+
}
|
|
18624
|
+
for (const course of config3.courses) {
|
|
18625
|
+
if (course.sensor) {
|
|
18626
|
+
sensors.add(course.sensor);
|
|
18627
|
+
}
|
|
18628
|
+
if (course.overrides?.staging?.sensor) {
|
|
18629
|
+
sensors.add(course.overrides.staging.sensor);
|
|
18630
|
+
}
|
|
18631
|
+
if (course.overrides?.production?.sensor) {
|
|
18632
|
+
sensors.add(course.overrides.production.sensor);
|
|
18633
|
+
}
|
|
18634
|
+
}
|
|
18635
|
+
return Array.from(sensors);
|
|
17741
18636
|
}
|
|
17742
18637
|
// src/cli/commands/credentials/add.ts
|
|
17743
18638
|
async function addCredentials(options = {}) {
|
|
@@ -18301,8 +19196,8 @@ async function promptImportApp(credentials, configuredEnvs) {
|
|
|
18301
19196
|
if (!result.success) {
|
|
18302
19197
|
return result;
|
|
18303
19198
|
}
|
|
18304
|
-
const
|
|
18305
|
-
if (
|
|
19199
|
+
const sensor = await promptSensor();
|
|
19200
|
+
if (sensor === undefined) {
|
|
18306
19201
|
return { success: false, cancelled: true };
|
|
18307
19202
|
}
|
|
18308
19203
|
return {
|
|
@@ -18310,7 +19205,7 @@ async function promptImportApp(credentials, configuredEnvs) {
|
|
|
18310
19205
|
name: result.appName,
|
|
18311
19206
|
courses: result.courses,
|
|
18312
19207
|
environment: result.environment,
|
|
18313
|
-
|
|
19208
|
+
sensor
|
|
18314
19209
|
};
|
|
18315
19210
|
} catch (error48) {
|
|
18316
19211
|
const message = error48 instanceof Error ? error48.message : "Unknown error";
|
|
@@ -18340,7 +19235,7 @@ async function promptNoConfig(credentials, configuredEnvs, opts = {}) {
|
|
|
18340
19235
|
// src/cli/commands/serve/config.ts
|
|
18341
19236
|
import { basename as basename2 } from "node:path";
|
|
18342
19237
|
function buildUserConfigFromImport(result) {
|
|
18343
|
-
const { name, courses,
|
|
19238
|
+
const { name, courses, sensor } = result;
|
|
18344
19239
|
const courseIds = {
|
|
18345
19240
|
staging: [],
|
|
18346
19241
|
production: []
|
|
@@ -18353,8 +19248,8 @@ function buildUserConfigFromImport(result) {
|
|
|
18353
19248
|
}
|
|
18354
19249
|
return {
|
|
18355
19250
|
name,
|
|
19251
|
+
sensor,
|
|
18356
19252
|
courses,
|
|
18357
|
-
sensors,
|
|
18358
19253
|
version: "0.0.0",
|
|
18359
19254
|
path: "",
|
|
18360
19255
|
courseIds
|
|
@@ -18428,21 +19323,20 @@ async function resolveFromConfigOrImport(credentials, configuredEnvs, defaultEnv
|
|
|
18428
19323
|
function parseSensors(sensors) {
|
|
18429
19324
|
return sensors.split(",").map((s) => s.trim()).filter(Boolean);
|
|
18430
19325
|
}
|
|
18431
|
-
function
|
|
19326
|
+
function getEffectiveSensors(config3, opts) {
|
|
18432
19327
|
if (opts.sensors) {
|
|
18433
|
-
|
|
19328
|
+
return parseSensors(opts.sensors);
|
|
18434
19329
|
}
|
|
19330
|
+
const derived = deriveSensorsFromConfig(config3);
|
|
19331
|
+
return derived.length > 0 ? derived : undefined;
|
|
18435
19332
|
}
|
|
18436
19333
|
async function resolveConfig(courseIds, opts, credentials, configuredEnvs, defaultEnv) {
|
|
18437
19334
|
const parserOpts = { playcademy: opts.playcademy };
|
|
18438
19335
|
const resolved = courseIds.length > 0 ? await resolveFromCourseIds(courseIds, defaultEnv, credentials, configuredEnvs) : await resolveFromConfigOrImport(credentials, configuredEnvs, defaultEnv, parserOpts);
|
|
18439
|
-
if (!resolved)
|
|
18440
|
-
return null;
|
|
18441
|
-
applyCliOverrides(resolved.userConfig, opts);
|
|
18442
19336
|
return resolved;
|
|
18443
19337
|
}
|
|
18444
19338
|
|
|
18445
|
-
// ../../node_modules/.bun/@hono+node-server@1.19.
|
|
19339
|
+
// ../../node_modules/.bun/@hono+node-server@1.19.9+fd698e00a3b2abce/node_modules/@hono/node-server/dist/index.mjs
|
|
18446
19340
|
import { createServer as createServerHTTP } from "http";
|
|
18447
19341
|
import { Http2ServerRequest as Http2ServerRequest2 } from "http2";
|
|
18448
19342
|
import { Http2ServerRequest } from "http2";
|
|
@@ -18751,17 +19645,9 @@ var buildOutgoingHttpHeaders = (headers) => {
|
|
|
18751
19645
|
return res;
|
|
18752
19646
|
};
|
|
18753
19647
|
var X_ALREADY_SENT = "x-hono-already-sent";
|
|
18754
|
-
var webFetch = global.fetch;
|
|
18755
19648
|
if (typeof global.crypto === "undefined") {
|
|
18756
19649
|
global.crypto = crypto;
|
|
18757
19650
|
}
|
|
18758
|
-
global.fetch = (info, init2) => {
|
|
18759
|
-
init2 = {
|
|
18760
|
-
compress: false,
|
|
18761
|
-
...init2
|
|
18762
|
-
};
|
|
18763
|
-
return webFetch(info, init2);
|
|
18764
|
-
};
|
|
18765
19651
|
var outgoingEnded = Symbol("outgoingEnded");
|
|
18766
19652
|
var handleRequestError = () => new Response(null, {
|
|
18767
19653
|
status: 400
|
|
@@ -21584,7 +22470,7 @@ function createEnvMiddleware(ctx, manager) {
|
|
|
21584
22470
|
}, 400);
|
|
21585
22471
|
}
|
|
21586
22472
|
const client = manager.get(env2);
|
|
21587
|
-
const sensors = ctx.
|
|
22473
|
+
const sensors = ctx.derivedSensors;
|
|
21588
22474
|
c.set("env", env2);
|
|
21589
22475
|
c.set("client", client);
|
|
21590
22476
|
c.set("sensors", sensors);
|
|
@@ -22123,7 +23009,8 @@ async function serveCommand(courseIds, opts) {
|
|
|
22123
23009
|
serverConfig,
|
|
22124
23010
|
userConfig: resolved.userConfig,
|
|
22125
23011
|
credentials,
|
|
22126
|
-
defaultEnvironment: resolved.environment
|
|
23012
|
+
defaultEnvironment: resolved.environment,
|
|
23013
|
+
derivedSensors: getEffectiveSensors(resolved.userConfig, opts)
|
|
22127
23014
|
};
|
|
22128
23015
|
startServer(ctx, serverConfig, resolved.configFile);
|
|
22129
23016
|
}
|