timeback-studio 0.1.0 → 0.1.1
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 +268 -33
- package/dist/index.js +268 -33
- package/dist/server/services/bootstrap.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/bin.js
CHANGED
|
@@ -16696,11 +16696,11 @@ async function validateEmailWithTimeback(environment, clientId, clientSecret, em
|
|
|
16696
16696
|
auth: { clientId, clientSecret }
|
|
16697
16697
|
});
|
|
16698
16698
|
try {
|
|
16699
|
-
const
|
|
16699
|
+
const page = await client.oneroster.users.list({
|
|
16700
16700
|
where: { email: email3 },
|
|
16701
16701
|
limit: 1
|
|
16702
16702
|
});
|
|
16703
|
-
if (
|
|
16703
|
+
if (page.data.length === 0) {
|
|
16704
16704
|
return {
|
|
16705
16705
|
valid: false,
|
|
16706
16706
|
error: `No user found with email "${email3}" in ${environment}`
|
|
@@ -17156,6 +17156,241 @@ var SubjectTrackInput = exports_external.object({
|
|
|
17156
17156
|
targetCourseId: exports_external.string(),
|
|
17157
17157
|
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
17158
17158
|
});
|
|
17159
|
+
// ../types/src/zod/qti.ts
|
|
17160
|
+
var QtiAssessmentItemType = exports_external.enum([
|
|
17161
|
+
"choice",
|
|
17162
|
+
"text-entry",
|
|
17163
|
+
"extended-text",
|
|
17164
|
+
"inline-choice",
|
|
17165
|
+
"match",
|
|
17166
|
+
"order",
|
|
17167
|
+
"associate",
|
|
17168
|
+
"select-point",
|
|
17169
|
+
"graphic-order",
|
|
17170
|
+
"graphic-associate",
|
|
17171
|
+
"graphic-gap-match",
|
|
17172
|
+
"hotspot",
|
|
17173
|
+
"hottext",
|
|
17174
|
+
"slider",
|
|
17175
|
+
"drawing",
|
|
17176
|
+
"media",
|
|
17177
|
+
"upload"
|
|
17178
|
+
]);
|
|
17179
|
+
var QtiCardinality = exports_external.enum(["single", "multiple", "ordered", "record"]);
|
|
17180
|
+
var QtiBaseType = exports_external.enum([
|
|
17181
|
+
"identifier",
|
|
17182
|
+
"boolean",
|
|
17183
|
+
"integer",
|
|
17184
|
+
"float",
|
|
17185
|
+
"string",
|
|
17186
|
+
"point",
|
|
17187
|
+
"pair",
|
|
17188
|
+
"directedPair",
|
|
17189
|
+
"duration",
|
|
17190
|
+
"file",
|
|
17191
|
+
"uri"
|
|
17192
|
+
]);
|
|
17193
|
+
var QtiDifficulty = exports_external.enum(["easy", "medium", "hard"]);
|
|
17194
|
+
var QtiNavigationMode = exports_external.enum(["linear", "nonlinear"]);
|
|
17195
|
+
var QtiSubmissionMode = exports_external.enum(["individual", "simultaneous"]);
|
|
17196
|
+
var QtiShowHide = exports_external.enum(["show", "hide"]);
|
|
17197
|
+
var QtiValidationSchema = exports_external.enum(["test", "item", "stimulus"]);
|
|
17198
|
+
var QtiFeedbackType = exports_external.enum(["QUESTION", "LESSON"]);
|
|
17199
|
+
var QtiCorrectResponse = exports_external.object({
|
|
17200
|
+
value: exports_external.array(exports_external.string())
|
|
17201
|
+
}).strict();
|
|
17202
|
+
var QtiResponseDeclaration = exports_external.object({
|
|
17203
|
+
identifier: exports_external.string().min(1),
|
|
17204
|
+
cardinality: QtiCardinality,
|
|
17205
|
+
baseType: QtiBaseType.optional(),
|
|
17206
|
+
correctResponse: QtiCorrectResponse
|
|
17207
|
+
}).strict();
|
|
17208
|
+
var QtiOutcomeDeclaration = exports_external.object({
|
|
17209
|
+
identifier: exports_external.string().min(1),
|
|
17210
|
+
cardinality: QtiCardinality,
|
|
17211
|
+
baseType: QtiBaseType.optional()
|
|
17212
|
+
}).strict();
|
|
17213
|
+
var QtiTestOutcomeDeclaration = exports_external.object({
|
|
17214
|
+
identifier: exports_external.string().min(1),
|
|
17215
|
+
cardinality: QtiCardinality.optional(),
|
|
17216
|
+
baseType: QtiBaseType,
|
|
17217
|
+
normalMaximum: exports_external.number().optional(),
|
|
17218
|
+
normalMinimum: exports_external.number().optional(),
|
|
17219
|
+
defaultValue: exports_external.object({
|
|
17220
|
+
value: exports_external.unknown().optional()
|
|
17221
|
+
}).strict().optional()
|
|
17222
|
+
}).strict();
|
|
17223
|
+
var QtiInlineFeedback = exports_external.object({
|
|
17224
|
+
outcomeIdentifier: exports_external.string().min(1),
|
|
17225
|
+
variableIdentifier: exports_external.string().min(1)
|
|
17226
|
+
}).strict();
|
|
17227
|
+
var QtiResponseProcessing = exports_external.object({
|
|
17228
|
+
templateType: exports_external.enum(["match_correct", "map_response"]),
|
|
17229
|
+
responseDeclarationIdentifier: exports_external.string().min(1),
|
|
17230
|
+
outcomeIdentifier: exports_external.string().min(1),
|
|
17231
|
+
correctResponseIdentifier: exports_external.string().min(1),
|
|
17232
|
+
incorrectResponseIdentifier: exports_external.string().min(1),
|
|
17233
|
+
inlineFeedback: QtiInlineFeedback.optional()
|
|
17234
|
+
}).strict();
|
|
17235
|
+
var QtiLearningObjectiveSet = exports_external.object({
|
|
17236
|
+
source: exports_external.string().min(1),
|
|
17237
|
+
learningObjectiveIds: exports_external.array(exports_external.string())
|
|
17238
|
+
}).strict();
|
|
17239
|
+
var QtiItemMetadata = exports_external.object({
|
|
17240
|
+
subject: exports_external.string().optional(),
|
|
17241
|
+
grade: TimebackGrade.optional(),
|
|
17242
|
+
difficulty: QtiDifficulty.optional(),
|
|
17243
|
+
learningObjectiveSet: exports_external.array(QtiLearningObjectiveSet).optional()
|
|
17244
|
+
}).strict();
|
|
17245
|
+
var QtiModalFeedback = exports_external.object({
|
|
17246
|
+
outcomeIdentifier: exports_external.string().min(1),
|
|
17247
|
+
identifier: exports_external.string().min(1),
|
|
17248
|
+
showHide: QtiShowHide,
|
|
17249
|
+
content: exports_external.string(),
|
|
17250
|
+
title: exports_external.string()
|
|
17251
|
+
}).strict();
|
|
17252
|
+
var QtiFeedbackInline = exports_external.object({
|
|
17253
|
+
outcomeIdentifier: exports_external.string().min(1),
|
|
17254
|
+
identifier: exports_external.string().min(1),
|
|
17255
|
+
showHide: QtiShowHide,
|
|
17256
|
+
content: exports_external.string(),
|
|
17257
|
+
class: exports_external.array(exports_external.string())
|
|
17258
|
+
}).strict();
|
|
17259
|
+
var QtiFeedbackBlock = exports_external.object({
|
|
17260
|
+
outcomeIdentifier: exports_external.string().min(1),
|
|
17261
|
+
identifier: exports_external.string().min(1),
|
|
17262
|
+
showHide: QtiShowHide,
|
|
17263
|
+
content: exports_external.string(),
|
|
17264
|
+
class: exports_external.array(exports_external.string())
|
|
17265
|
+
}).strict();
|
|
17266
|
+
var QtiStylesheet = exports_external.object({
|
|
17267
|
+
href: exports_external.string().min(1),
|
|
17268
|
+
type: exports_external.string().min(1)
|
|
17269
|
+
}).strict();
|
|
17270
|
+
var QtiCatalogInfo = exports_external.object({
|
|
17271
|
+
id: exports_external.string().min(1),
|
|
17272
|
+
support: exports_external.string(),
|
|
17273
|
+
content: exports_external.string()
|
|
17274
|
+
}).strict();
|
|
17275
|
+
var QtiAssessmentItemCreateInput = exports_external.object({
|
|
17276
|
+
identifier: exports_external.string().min(1),
|
|
17277
|
+
title: exports_external.string().min(1),
|
|
17278
|
+
type: QtiAssessmentItemType,
|
|
17279
|
+
qtiVersion: exports_external.string().optional(),
|
|
17280
|
+
timeDependent: exports_external.boolean().optional(),
|
|
17281
|
+
adaptive: exports_external.boolean().optional(),
|
|
17282
|
+
responseDeclarations: exports_external.array(QtiResponseDeclaration).optional(),
|
|
17283
|
+
outcomeDeclarations: exports_external.array(QtiOutcomeDeclaration).optional(),
|
|
17284
|
+
responseProcessing: QtiResponseProcessing.optional(),
|
|
17285
|
+
metadata: QtiItemMetadata.optional(),
|
|
17286
|
+
modalFeedback: exports_external.array(QtiModalFeedback).optional(),
|
|
17287
|
+
feedbackInline: exports_external.array(QtiFeedbackInline).optional(),
|
|
17288
|
+
feedbackBlock: exports_external.array(QtiFeedbackBlock).optional()
|
|
17289
|
+
}).strict();
|
|
17290
|
+
var QtiAssessmentItemUpdateInput = exports_external.object({
|
|
17291
|
+
title: exports_external.string().min(1),
|
|
17292
|
+
type: QtiAssessmentItemType,
|
|
17293
|
+
qtiVersion: exports_external.string().optional(),
|
|
17294
|
+
timeDependent: exports_external.boolean().optional(),
|
|
17295
|
+
adaptive: exports_external.boolean().optional(),
|
|
17296
|
+
responseDeclarations: exports_external.array(QtiResponseDeclaration).optional(),
|
|
17297
|
+
outcomeDeclarations: exports_external.array(QtiOutcomeDeclaration).optional(),
|
|
17298
|
+
responseProcessing: QtiResponseProcessing.optional(),
|
|
17299
|
+
metadata: QtiItemMetadata.optional(),
|
|
17300
|
+
modalFeedback: exports_external.array(QtiModalFeedback).optional(),
|
|
17301
|
+
feedbackInline: exports_external.array(QtiFeedbackInline).optional(),
|
|
17302
|
+
feedbackBlock: exports_external.array(QtiFeedbackBlock).optional(),
|
|
17303
|
+
rawXml: exports_external.string(),
|
|
17304
|
+
content: exports_external.record(exports_external.string(), exports_external.unknown())
|
|
17305
|
+
}).strict();
|
|
17306
|
+
var QtiAssessmentItemProcessResponseInput = exports_external.object({
|
|
17307
|
+
response: exports_external.union([exports_external.string(), exports_external.array(exports_external.string())])
|
|
17308
|
+
}).strict();
|
|
17309
|
+
var QtiAssessmentItemRef = exports_external.object({
|
|
17310
|
+
identifier: exports_external.string().min(1),
|
|
17311
|
+
href: exports_external.union([exports_external.string(), exports_external.array(exports_external.string()), exports_external.array(exports_external.array(exports_external.string()))]).optional(),
|
|
17312
|
+
sequence: exports_external.number().optional()
|
|
17313
|
+
}).strict();
|
|
17314
|
+
var QtiAssessmentSection = exports_external.object({
|
|
17315
|
+
identifier: exports_external.string().min(1),
|
|
17316
|
+
title: exports_external.string().min(1),
|
|
17317
|
+
visible: exports_external.boolean(),
|
|
17318
|
+
required: exports_external.boolean().optional(),
|
|
17319
|
+
fixed: exports_external.boolean().optional(),
|
|
17320
|
+
sequence: exports_external.number().optional(),
|
|
17321
|
+
"qti-assessment-item-ref": exports_external.array(QtiAssessmentItemRef).optional()
|
|
17322
|
+
}).strict();
|
|
17323
|
+
var QtiTestPart = exports_external.object({
|
|
17324
|
+
identifier: exports_external.string().min(1),
|
|
17325
|
+
navigationMode: QtiNavigationMode,
|
|
17326
|
+
submissionMode: QtiSubmissionMode,
|
|
17327
|
+
"qti-assessment-section": exports_external.union([QtiAssessmentSection, exports_external.array(QtiAssessmentSection)])
|
|
17328
|
+
}).strict();
|
|
17329
|
+
var QtiAssessmentTestCreateInput = exports_external.object({
|
|
17330
|
+
identifier: exports_external.string().min(1),
|
|
17331
|
+
title: exports_external.string().min(1),
|
|
17332
|
+
qtiVersion: exports_external.string().optional(),
|
|
17333
|
+
toolName: exports_external.string().optional(),
|
|
17334
|
+
toolVersion: exports_external.string().optional(),
|
|
17335
|
+
timeLimit: exports_external.number().optional(),
|
|
17336
|
+
maxAttempts: exports_external.number().optional(),
|
|
17337
|
+
toolsEnabled: exports_external.record(exports_external.string(), exports_external.boolean()).optional(),
|
|
17338
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
|
|
17339
|
+
"qti-test-part": QtiTestPart,
|
|
17340
|
+
"qti-outcome-declaration": exports_external.array(QtiTestOutcomeDeclaration).optional()
|
|
17341
|
+
}).strict();
|
|
17342
|
+
var QtiAssessmentTestUpdateInput = exports_external.object({
|
|
17343
|
+
title: exports_external.string().min(1),
|
|
17344
|
+
qtiVersion: exports_external.string().optional(),
|
|
17345
|
+
toolName: exports_external.string().optional(),
|
|
17346
|
+
toolVersion: exports_external.string().optional(),
|
|
17347
|
+
timeLimit: exports_external.number().optional(),
|
|
17348
|
+
maxAttempts: exports_external.number().optional(),
|
|
17349
|
+
toolsEnabled: exports_external.record(exports_external.string(), exports_external.boolean()).optional(),
|
|
17350
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
|
|
17351
|
+
"qti-test-part": QtiTestPart,
|
|
17352
|
+
"qti-outcome-declaration": exports_external.array(QtiTestOutcomeDeclaration).optional()
|
|
17353
|
+
}).strict();
|
|
17354
|
+
var QtiStimulusCreateInput = exports_external.object({
|
|
17355
|
+
identifier: exports_external.string().min(1),
|
|
17356
|
+
title: exports_external.string().min(1),
|
|
17357
|
+
label: exports_external.string().optional(),
|
|
17358
|
+
language: exports_external.string().optional(),
|
|
17359
|
+
stylesheet: QtiStylesheet.optional(),
|
|
17360
|
+
content: exports_external.string(),
|
|
17361
|
+
catalogInfo: exports_external.array(QtiCatalogInfo).optional(),
|
|
17362
|
+
toolName: exports_external.string().optional(),
|
|
17363
|
+
toolVersion: exports_external.string().optional(),
|
|
17364
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
17365
|
+
}).strict();
|
|
17366
|
+
var QtiStimulusUpdateInput = exports_external.object({
|
|
17367
|
+
title: exports_external.string().min(1),
|
|
17368
|
+
label: exports_external.string().optional(),
|
|
17369
|
+
language: exports_external.string().optional(),
|
|
17370
|
+
stylesheet: QtiStylesheet.optional(),
|
|
17371
|
+
content: exports_external.string(),
|
|
17372
|
+
catalogInfo: exports_external.array(QtiCatalogInfo).optional(),
|
|
17373
|
+
toolName: exports_external.string().optional(),
|
|
17374
|
+
toolVersion: exports_external.string().optional(),
|
|
17375
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
17376
|
+
}).strict();
|
|
17377
|
+
var QtiValidateInput = exports_external.object({
|
|
17378
|
+
xml: exports_external.string().optional(),
|
|
17379
|
+
schema: QtiValidationSchema,
|
|
17380
|
+
entityId: exports_external.string().optional()
|
|
17381
|
+
}).strict();
|
|
17382
|
+
var QtiValidateBatchInput = exports_external.object({
|
|
17383
|
+
xml: exports_external.array(exports_external.string()),
|
|
17384
|
+
schema: QtiValidationSchema,
|
|
17385
|
+
entityIds: exports_external.array(exports_external.string())
|
|
17386
|
+
}).strict();
|
|
17387
|
+
var QtiLessonFeedbackInput = exports_external.object({
|
|
17388
|
+
questionId: exports_external.string().optional(),
|
|
17389
|
+
userId: exports_external.string().min(1),
|
|
17390
|
+
feedback: exports_external.string().min(1),
|
|
17391
|
+
lessonId: exports_external.string().min(1),
|
|
17392
|
+
humanApproved: exports_external.boolean().optional()
|
|
17393
|
+
}).strict();
|
|
17159
17394
|
// ../internal/cli-infra/src/config/timeback.ts
|
|
17160
17395
|
var FILE_PATTERNS2 = ["timeback.config.ts", "timeback.config.js", "timeback.config.mjs"];
|
|
17161
17396
|
var jiti = createJiti(import.meta.url, { fsCache: false });
|
|
@@ -17301,7 +17536,7 @@ function getParser(opts = {}) {
|
|
|
17301
17536
|
|
|
17302
17537
|
// ../internal/cli-infra/src/search/search.ts
|
|
17303
17538
|
function searchCourses(client, query, max = 50) {
|
|
17304
|
-
return client.oneroster.courses.
|
|
17539
|
+
return client.oneroster.courses.listAll({
|
|
17305
17540
|
search: query,
|
|
17306
17541
|
where: { status: "active" },
|
|
17307
17542
|
max
|
|
@@ -18207,7 +18442,7 @@ async function resolveConfig(courseIds, opts, credentials, configuredEnvs, defau
|
|
|
18207
18442
|
return resolved;
|
|
18208
18443
|
}
|
|
18209
18444
|
|
|
18210
|
-
// ../../node_modules/.bun/@hono+node-server@1.19.
|
|
18445
|
+
// ../../node_modules/.bun/@hono+node-server@1.19.8+fd698e00a3b2abce/node_modules/@hono/node-server/dist/index.mjs
|
|
18211
18446
|
import { createServer as createServerHTTP } from "http";
|
|
18212
18447
|
import { Http2ServerRequest as Http2ServerRequest2 } from "http2";
|
|
18213
18448
|
import { Http2ServerRequest } from "http2";
|
|
@@ -18749,7 +18984,7 @@ var serve = (options, listeningListener) => {
|
|
|
18749
18984
|
return server;
|
|
18750
18985
|
};
|
|
18751
18986
|
|
|
18752
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
18987
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/compose.js
|
|
18753
18988
|
var compose = (middleware, onError, onNotFound) => {
|
|
18754
18989
|
return (context, next) => {
|
|
18755
18990
|
let index = -1;
|
|
@@ -18793,10 +19028,10 @@ var compose = (middleware, onError, onNotFound) => {
|
|
|
18793
19028
|
};
|
|
18794
19029
|
};
|
|
18795
19030
|
|
|
18796
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19031
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/request/constants.js
|
|
18797
19032
|
var GET_MATCH_RESULT = /* @__PURE__ */ Symbol();
|
|
18798
19033
|
|
|
18799
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19034
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/utils/body.js
|
|
18800
19035
|
var parseBody = async (request, options = /* @__PURE__ */ Object.create(null)) => {
|
|
18801
19036
|
const { all = false, dot = false } = options;
|
|
18802
19037
|
const headers = request instanceof HonoRequest ? request.raw.headers : request.headers;
|
|
@@ -18864,7 +19099,7 @@ var handleParsingNestedValues = (form, key, value) => {
|
|
|
18864
19099
|
});
|
|
18865
19100
|
};
|
|
18866
19101
|
|
|
18867
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19102
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/utils/url.js
|
|
18868
19103
|
var splitPath = (path) => {
|
|
18869
19104
|
const paths = path.split("/");
|
|
18870
19105
|
if (paths[0] === "") {
|
|
@@ -19062,7 +19297,7 @@ var getQueryParams = (url2, key) => {
|
|
|
19062
19297
|
};
|
|
19063
19298
|
var decodeURIComponent_ = decodeURIComponent;
|
|
19064
19299
|
|
|
19065
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19300
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/request.js
|
|
19066
19301
|
var tryDecodeURIComponent = (str) => tryDecode(str, decodeURIComponent_);
|
|
19067
19302
|
var HonoRequest = class {
|
|
19068
19303
|
raw;
|
|
@@ -19173,7 +19408,7 @@ var HonoRequest = class {
|
|
|
19173
19408
|
}
|
|
19174
19409
|
};
|
|
19175
19410
|
|
|
19176
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19411
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/utils/html.js
|
|
19177
19412
|
var HtmlEscapedCallbackPhase = {
|
|
19178
19413
|
Stringify: 1,
|
|
19179
19414
|
BeforeStream: 2,
|
|
@@ -19211,7 +19446,7 @@ var resolveCallback = async (str, phase, preserveCallbacks, context, buffer) =>
|
|
|
19211
19446
|
}
|
|
19212
19447
|
};
|
|
19213
19448
|
|
|
19214
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19449
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/context.js
|
|
19215
19450
|
var TEXT_PLAIN = "text/plain; charset=UTF-8";
|
|
19216
19451
|
var setDefaultContentType = (contentType, headers) => {
|
|
19217
19452
|
return {
|
|
@@ -19377,7 +19612,7 @@ var Context = class {
|
|
|
19377
19612
|
};
|
|
19378
19613
|
};
|
|
19379
19614
|
|
|
19380
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19615
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router.js
|
|
19381
19616
|
var METHOD_NAME_ALL = "ALL";
|
|
19382
19617
|
var METHOD_NAME_ALL_LOWERCASE = "all";
|
|
19383
19618
|
var METHODS = ["get", "post", "put", "delete", "options", "patch"];
|
|
@@ -19385,10 +19620,10 @@ var MESSAGE_MATCHER_IS_ALREADY_BUILT = "Can not add a route since the matcher is
|
|
|
19385
19620
|
var UnsupportedPathError = class extends Error {
|
|
19386
19621
|
};
|
|
19387
19622
|
|
|
19388
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19623
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/utils/constants.js
|
|
19389
19624
|
var COMPOSED_HANDLER = "__COMPOSED_HANDLER";
|
|
19390
19625
|
|
|
19391
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19626
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/hono-base.js
|
|
19392
19627
|
var notFoundHandler = (c) => {
|
|
19393
19628
|
return c.text("404 Not Found", 404);
|
|
19394
19629
|
};
|
|
@@ -19607,7 +19842,7 @@ var Hono = class _Hono {
|
|
|
19607
19842
|
};
|
|
19608
19843
|
};
|
|
19609
19844
|
|
|
19610
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19845
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/reg-exp-router/matcher.js
|
|
19611
19846
|
var emptyParam = [];
|
|
19612
19847
|
function match(method, path) {
|
|
19613
19848
|
const matchers = this.buildAllMatchers();
|
|
@@ -19628,7 +19863,7 @@ function match(method, path) {
|
|
|
19628
19863
|
return match2(method, path);
|
|
19629
19864
|
}
|
|
19630
19865
|
|
|
19631
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19866
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/reg-exp-router/node.js
|
|
19632
19867
|
var LABEL_REG_EXP_STR = "[^/]+";
|
|
19633
19868
|
var ONLY_WILDCARD_REG_EXP_STR = ".*";
|
|
19634
19869
|
var TAIL_WILDCARD_REG_EXP_STR = "(?:|/.*)";
|
|
@@ -19732,7 +19967,7 @@ var Node = class _Node {
|
|
|
19732
19967
|
}
|
|
19733
19968
|
};
|
|
19734
19969
|
|
|
19735
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19970
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/reg-exp-router/trie.js
|
|
19736
19971
|
var Trie = class {
|
|
19737
19972
|
#context = { varIndex: 0 };
|
|
19738
19973
|
#root = new Node;
|
|
@@ -19788,7 +20023,7 @@ var Trie = class {
|
|
|
19788
20023
|
}
|
|
19789
20024
|
};
|
|
19790
20025
|
|
|
19791
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
20026
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/reg-exp-router/router.js
|
|
19792
20027
|
var nullMatcher = [/^$/, [], /* @__PURE__ */ Object.create(null)];
|
|
19793
20028
|
var wildcardRegExpCache = /* @__PURE__ */ Object.create(null);
|
|
19794
20029
|
function buildWildcardRegExp(path) {
|
|
@@ -19953,7 +20188,7 @@ var RegExpRouter = class {
|
|
|
19953
20188
|
}
|
|
19954
20189
|
};
|
|
19955
20190
|
|
|
19956
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
20191
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/reg-exp-router/prepared-router.js
|
|
19957
20192
|
var PreparedRegExpRouter = class {
|
|
19958
20193
|
name = "PreparedRegExpRouter";
|
|
19959
20194
|
#matchers;
|
|
@@ -20025,7 +20260,7 @@ var PreparedRegExpRouter = class {
|
|
|
20025
20260
|
match = match;
|
|
20026
20261
|
};
|
|
20027
20262
|
|
|
20028
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
20263
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/smart-router/router.js
|
|
20029
20264
|
var SmartRouter = class {
|
|
20030
20265
|
name = "SmartRouter";
|
|
20031
20266
|
#routers = [];
|
|
@@ -20080,7 +20315,7 @@ var SmartRouter = class {
|
|
|
20080
20315
|
}
|
|
20081
20316
|
};
|
|
20082
20317
|
|
|
20083
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
20318
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/trie-router/node.js
|
|
20084
20319
|
var emptyParams = /* @__PURE__ */ Object.create(null);
|
|
20085
20320
|
var Node2 = class _Node2 {
|
|
20086
20321
|
#methods;
|
|
@@ -20234,7 +20469,7 @@ var Node2 = class _Node2 {
|
|
|
20234
20469
|
}
|
|
20235
20470
|
};
|
|
20236
20471
|
|
|
20237
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
20472
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/trie-router/router.js
|
|
20238
20473
|
var TrieRouter = class {
|
|
20239
20474
|
name = "TrieRouter";
|
|
20240
20475
|
#node;
|
|
@@ -20256,7 +20491,7 @@ var TrieRouter = class {
|
|
|
20256
20491
|
}
|
|
20257
20492
|
};
|
|
20258
20493
|
|
|
20259
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
20494
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/hono.js
|
|
20260
20495
|
var Hono2 = class extends Hono {
|
|
20261
20496
|
constructor(options = {}) {
|
|
20262
20497
|
super(options);
|
|
@@ -20266,7 +20501,7 @@ var Hono2 = class extends Hono {
|
|
|
20266
20501
|
}
|
|
20267
20502
|
};
|
|
20268
20503
|
|
|
20269
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
20504
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/middleware/cors/index.js
|
|
20270
20505
|
var cors = (options) => {
|
|
20271
20506
|
const defaults = {
|
|
20272
20507
|
origin: "*",
|
|
@@ -20793,7 +21028,7 @@ class BootstrapService {
|
|
|
20793
21028
|
return enrollmentData.enrollments;
|
|
20794
21029
|
}
|
|
20795
21030
|
try {
|
|
20796
|
-
const users = await this.client.oneroster.users.
|
|
21031
|
+
const users = await this.client.oneroster.users.listAll({
|
|
20797
21032
|
where: { sourcedId: { in: studentUserIds } }
|
|
20798
21033
|
});
|
|
20799
21034
|
const userMap = new Map(users.map((u2) => [u2.sourcedId, u2]));
|
|
@@ -20816,7 +21051,7 @@ class BootstrapService {
|
|
|
20816
21051
|
}
|
|
20817
21052
|
const uniqueResourceIds = [...new Set(resourceIds)];
|
|
20818
21053
|
try {
|
|
20819
|
-
const resources = await this.client.oneroster.resources.
|
|
21054
|
+
const resources = await this.client.oneroster.resources.listAll({
|
|
20820
21055
|
where: { sourcedId: { in: uniqueResourceIds } }
|
|
20821
21056
|
});
|
|
20822
21057
|
const resourceMap = new Map(resources.map((r2) => [r2.sourcedId, r2]));
|
|
@@ -20852,7 +21087,7 @@ class BootstrapService {
|
|
|
20852
21087
|
return null;
|
|
20853
21088
|
}
|
|
20854
21089
|
try {
|
|
20855
|
-
const
|
|
21090
|
+
const user = await this.client.oneroster.users.first({ where: { email: email3 } });
|
|
20856
21091
|
return user ?? null;
|
|
20857
21092
|
} catch (error48) {
|
|
20858
21093
|
const message = getErrorMessage(error48);
|
|
@@ -20871,7 +21106,7 @@ class BootstrapService {
|
|
|
20871
21106
|
return { enrollments, studentIds, teacherIds, studentsByClass };
|
|
20872
21107
|
}
|
|
20873
21108
|
try {
|
|
20874
|
-
const fetchedEnrollments = await this.client.oneroster.enrollments.
|
|
21109
|
+
const fetchedEnrollments = await this.client.oneroster.enrollments.listAll({
|
|
20875
21110
|
where: {
|
|
20876
21111
|
"class.sourcedId": { in: classIds }
|
|
20877
21112
|
}
|
|
@@ -21216,7 +21451,7 @@ class StudentSearchService {
|
|
|
21216
21451
|
const trimmedQuery = query.trim();
|
|
21217
21452
|
log5.debug("Searching students", { query: trimmedQuery, max });
|
|
21218
21453
|
try {
|
|
21219
|
-
const users = await this.client.oneroster.students.
|
|
21454
|
+
const users = await this.client.oneroster.students.listAll({
|
|
21220
21455
|
search: trimmedQuery,
|
|
21221
21456
|
where: { status: "active" },
|
|
21222
21457
|
max
|
|
@@ -21294,7 +21529,7 @@ function createManager(ctx) {
|
|
|
21294
21529
|
log6.debug("Manager ready", { environments: manager.names });
|
|
21295
21530
|
return manager;
|
|
21296
21531
|
}
|
|
21297
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
21532
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/helper/factory/index.js
|
|
21298
21533
|
var Factory = class {
|
|
21299
21534
|
initApp;
|
|
21300
21535
|
#defaultAppOptions;
|
|
@@ -21357,7 +21592,7 @@ function createEnvMiddleware(ctx, manager) {
|
|
|
21357
21592
|
await next();
|
|
21358
21593
|
});
|
|
21359
21594
|
}
|
|
21360
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
21595
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/utils/stream.js
|
|
21361
21596
|
var StreamingApi = class {
|
|
21362
21597
|
writer;
|
|
21363
21598
|
encoder;
|
|
@@ -21423,7 +21658,7 @@ var StreamingApi = class {
|
|
|
21423
21658
|
}
|
|
21424
21659
|
};
|
|
21425
21660
|
|
|
21426
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
21661
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/helper/streaming/utils.js
|
|
21427
21662
|
var isOldBunVersion = () => {
|
|
21428
21663
|
const version2 = typeof Bun !== "undefined" ? Bun.version : undefined;
|
|
21429
21664
|
if (version2 === undefined) {
|
|
@@ -21434,7 +21669,7 @@ var isOldBunVersion = () => {
|
|
|
21434
21669
|
return result;
|
|
21435
21670
|
};
|
|
21436
21671
|
|
|
21437
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
21672
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/helper/streaming/sse.js
|
|
21438
21673
|
var SSEStreamingApi = class extends StreamingApi {
|
|
21439
21674
|
constructor(writable, readable) {
|
|
21440
21675
|
super(writable, readable);
|
package/dist/index.js
CHANGED
|
@@ -14586,11 +14586,11 @@ async function validateEmailWithTimeback(environment, clientId, clientSecret, em
|
|
|
14586
14586
|
auth: { clientId, clientSecret }
|
|
14587
14587
|
});
|
|
14588
14588
|
try {
|
|
14589
|
-
const
|
|
14589
|
+
const page = await client.oneroster.users.list({
|
|
14590
14590
|
where: { email: email3 },
|
|
14591
14591
|
limit: 1
|
|
14592
14592
|
});
|
|
14593
|
-
if (
|
|
14593
|
+
if (page.data.length === 0) {
|
|
14594
14594
|
return {
|
|
14595
14595
|
valid: false,
|
|
14596
14596
|
error: `No user found with email "${email3}" in ${environment}`
|
|
@@ -15046,6 +15046,241 @@ var SubjectTrackInput = exports_external.object({
|
|
|
15046
15046
|
targetCourseId: exports_external.string(),
|
|
15047
15047
|
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
15048
15048
|
});
|
|
15049
|
+
// ../types/src/zod/qti.ts
|
|
15050
|
+
var QtiAssessmentItemType = exports_external.enum([
|
|
15051
|
+
"choice",
|
|
15052
|
+
"text-entry",
|
|
15053
|
+
"extended-text",
|
|
15054
|
+
"inline-choice",
|
|
15055
|
+
"match",
|
|
15056
|
+
"order",
|
|
15057
|
+
"associate",
|
|
15058
|
+
"select-point",
|
|
15059
|
+
"graphic-order",
|
|
15060
|
+
"graphic-associate",
|
|
15061
|
+
"graphic-gap-match",
|
|
15062
|
+
"hotspot",
|
|
15063
|
+
"hottext",
|
|
15064
|
+
"slider",
|
|
15065
|
+
"drawing",
|
|
15066
|
+
"media",
|
|
15067
|
+
"upload"
|
|
15068
|
+
]);
|
|
15069
|
+
var QtiCardinality = exports_external.enum(["single", "multiple", "ordered", "record"]);
|
|
15070
|
+
var QtiBaseType = exports_external.enum([
|
|
15071
|
+
"identifier",
|
|
15072
|
+
"boolean",
|
|
15073
|
+
"integer",
|
|
15074
|
+
"float",
|
|
15075
|
+
"string",
|
|
15076
|
+
"point",
|
|
15077
|
+
"pair",
|
|
15078
|
+
"directedPair",
|
|
15079
|
+
"duration",
|
|
15080
|
+
"file",
|
|
15081
|
+
"uri"
|
|
15082
|
+
]);
|
|
15083
|
+
var QtiDifficulty = exports_external.enum(["easy", "medium", "hard"]);
|
|
15084
|
+
var QtiNavigationMode = exports_external.enum(["linear", "nonlinear"]);
|
|
15085
|
+
var QtiSubmissionMode = exports_external.enum(["individual", "simultaneous"]);
|
|
15086
|
+
var QtiShowHide = exports_external.enum(["show", "hide"]);
|
|
15087
|
+
var QtiValidationSchema = exports_external.enum(["test", "item", "stimulus"]);
|
|
15088
|
+
var QtiFeedbackType = exports_external.enum(["QUESTION", "LESSON"]);
|
|
15089
|
+
var QtiCorrectResponse = exports_external.object({
|
|
15090
|
+
value: exports_external.array(exports_external.string())
|
|
15091
|
+
}).strict();
|
|
15092
|
+
var QtiResponseDeclaration = exports_external.object({
|
|
15093
|
+
identifier: exports_external.string().min(1),
|
|
15094
|
+
cardinality: QtiCardinality,
|
|
15095
|
+
baseType: QtiBaseType.optional(),
|
|
15096
|
+
correctResponse: QtiCorrectResponse
|
|
15097
|
+
}).strict();
|
|
15098
|
+
var QtiOutcomeDeclaration = exports_external.object({
|
|
15099
|
+
identifier: exports_external.string().min(1),
|
|
15100
|
+
cardinality: QtiCardinality,
|
|
15101
|
+
baseType: QtiBaseType.optional()
|
|
15102
|
+
}).strict();
|
|
15103
|
+
var QtiTestOutcomeDeclaration = exports_external.object({
|
|
15104
|
+
identifier: exports_external.string().min(1),
|
|
15105
|
+
cardinality: QtiCardinality.optional(),
|
|
15106
|
+
baseType: QtiBaseType,
|
|
15107
|
+
normalMaximum: exports_external.number().optional(),
|
|
15108
|
+
normalMinimum: exports_external.number().optional(),
|
|
15109
|
+
defaultValue: exports_external.object({
|
|
15110
|
+
value: exports_external.unknown().optional()
|
|
15111
|
+
}).strict().optional()
|
|
15112
|
+
}).strict();
|
|
15113
|
+
var QtiInlineFeedback = exports_external.object({
|
|
15114
|
+
outcomeIdentifier: exports_external.string().min(1),
|
|
15115
|
+
variableIdentifier: exports_external.string().min(1)
|
|
15116
|
+
}).strict();
|
|
15117
|
+
var QtiResponseProcessing = exports_external.object({
|
|
15118
|
+
templateType: exports_external.enum(["match_correct", "map_response"]),
|
|
15119
|
+
responseDeclarationIdentifier: exports_external.string().min(1),
|
|
15120
|
+
outcomeIdentifier: exports_external.string().min(1),
|
|
15121
|
+
correctResponseIdentifier: exports_external.string().min(1),
|
|
15122
|
+
incorrectResponseIdentifier: exports_external.string().min(1),
|
|
15123
|
+
inlineFeedback: QtiInlineFeedback.optional()
|
|
15124
|
+
}).strict();
|
|
15125
|
+
var QtiLearningObjectiveSet = exports_external.object({
|
|
15126
|
+
source: exports_external.string().min(1),
|
|
15127
|
+
learningObjectiveIds: exports_external.array(exports_external.string())
|
|
15128
|
+
}).strict();
|
|
15129
|
+
var QtiItemMetadata = exports_external.object({
|
|
15130
|
+
subject: exports_external.string().optional(),
|
|
15131
|
+
grade: TimebackGrade.optional(),
|
|
15132
|
+
difficulty: QtiDifficulty.optional(),
|
|
15133
|
+
learningObjectiveSet: exports_external.array(QtiLearningObjectiveSet).optional()
|
|
15134
|
+
}).strict();
|
|
15135
|
+
var QtiModalFeedback = exports_external.object({
|
|
15136
|
+
outcomeIdentifier: exports_external.string().min(1),
|
|
15137
|
+
identifier: exports_external.string().min(1),
|
|
15138
|
+
showHide: QtiShowHide,
|
|
15139
|
+
content: exports_external.string(),
|
|
15140
|
+
title: exports_external.string()
|
|
15141
|
+
}).strict();
|
|
15142
|
+
var QtiFeedbackInline = exports_external.object({
|
|
15143
|
+
outcomeIdentifier: exports_external.string().min(1),
|
|
15144
|
+
identifier: exports_external.string().min(1),
|
|
15145
|
+
showHide: QtiShowHide,
|
|
15146
|
+
content: exports_external.string(),
|
|
15147
|
+
class: exports_external.array(exports_external.string())
|
|
15148
|
+
}).strict();
|
|
15149
|
+
var QtiFeedbackBlock = exports_external.object({
|
|
15150
|
+
outcomeIdentifier: exports_external.string().min(1),
|
|
15151
|
+
identifier: exports_external.string().min(1),
|
|
15152
|
+
showHide: QtiShowHide,
|
|
15153
|
+
content: exports_external.string(),
|
|
15154
|
+
class: exports_external.array(exports_external.string())
|
|
15155
|
+
}).strict();
|
|
15156
|
+
var QtiStylesheet = exports_external.object({
|
|
15157
|
+
href: exports_external.string().min(1),
|
|
15158
|
+
type: exports_external.string().min(1)
|
|
15159
|
+
}).strict();
|
|
15160
|
+
var QtiCatalogInfo = exports_external.object({
|
|
15161
|
+
id: exports_external.string().min(1),
|
|
15162
|
+
support: exports_external.string(),
|
|
15163
|
+
content: exports_external.string()
|
|
15164
|
+
}).strict();
|
|
15165
|
+
var QtiAssessmentItemCreateInput = exports_external.object({
|
|
15166
|
+
identifier: exports_external.string().min(1),
|
|
15167
|
+
title: exports_external.string().min(1),
|
|
15168
|
+
type: QtiAssessmentItemType,
|
|
15169
|
+
qtiVersion: exports_external.string().optional(),
|
|
15170
|
+
timeDependent: exports_external.boolean().optional(),
|
|
15171
|
+
adaptive: exports_external.boolean().optional(),
|
|
15172
|
+
responseDeclarations: exports_external.array(QtiResponseDeclaration).optional(),
|
|
15173
|
+
outcomeDeclarations: exports_external.array(QtiOutcomeDeclaration).optional(),
|
|
15174
|
+
responseProcessing: QtiResponseProcessing.optional(),
|
|
15175
|
+
metadata: QtiItemMetadata.optional(),
|
|
15176
|
+
modalFeedback: exports_external.array(QtiModalFeedback).optional(),
|
|
15177
|
+
feedbackInline: exports_external.array(QtiFeedbackInline).optional(),
|
|
15178
|
+
feedbackBlock: exports_external.array(QtiFeedbackBlock).optional()
|
|
15179
|
+
}).strict();
|
|
15180
|
+
var QtiAssessmentItemUpdateInput = exports_external.object({
|
|
15181
|
+
title: exports_external.string().min(1),
|
|
15182
|
+
type: QtiAssessmentItemType,
|
|
15183
|
+
qtiVersion: exports_external.string().optional(),
|
|
15184
|
+
timeDependent: exports_external.boolean().optional(),
|
|
15185
|
+
adaptive: exports_external.boolean().optional(),
|
|
15186
|
+
responseDeclarations: exports_external.array(QtiResponseDeclaration).optional(),
|
|
15187
|
+
outcomeDeclarations: exports_external.array(QtiOutcomeDeclaration).optional(),
|
|
15188
|
+
responseProcessing: QtiResponseProcessing.optional(),
|
|
15189
|
+
metadata: QtiItemMetadata.optional(),
|
|
15190
|
+
modalFeedback: exports_external.array(QtiModalFeedback).optional(),
|
|
15191
|
+
feedbackInline: exports_external.array(QtiFeedbackInline).optional(),
|
|
15192
|
+
feedbackBlock: exports_external.array(QtiFeedbackBlock).optional(),
|
|
15193
|
+
rawXml: exports_external.string(),
|
|
15194
|
+
content: exports_external.record(exports_external.string(), exports_external.unknown())
|
|
15195
|
+
}).strict();
|
|
15196
|
+
var QtiAssessmentItemProcessResponseInput = exports_external.object({
|
|
15197
|
+
response: exports_external.union([exports_external.string(), exports_external.array(exports_external.string())])
|
|
15198
|
+
}).strict();
|
|
15199
|
+
var QtiAssessmentItemRef = exports_external.object({
|
|
15200
|
+
identifier: exports_external.string().min(1),
|
|
15201
|
+
href: exports_external.union([exports_external.string(), exports_external.array(exports_external.string()), exports_external.array(exports_external.array(exports_external.string()))]).optional(),
|
|
15202
|
+
sequence: exports_external.number().optional()
|
|
15203
|
+
}).strict();
|
|
15204
|
+
var QtiAssessmentSection = exports_external.object({
|
|
15205
|
+
identifier: exports_external.string().min(1),
|
|
15206
|
+
title: exports_external.string().min(1),
|
|
15207
|
+
visible: exports_external.boolean(),
|
|
15208
|
+
required: exports_external.boolean().optional(),
|
|
15209
|
+
fixed: exports_external.boolean().optional(),
|
|
15210
|
+
sequence: exports_external.number().optional(),
|
|
15211
|
+
"qti-assessment-item-ref": exports_external.array(QtiAssessmentItemRef).optional()
|
|
15212
|
+
}).strict();
|
|
15213
|
+
var QtiTestPart = exports_external.object({
|
|
15214
|
+
identifier: exports_external.string().min(1),
|
|
15215
|
+
navigationMode: QtiNavigationMode,
|
|
15216
|
+
submissionMode: QtiSubmissionMode,
|
|
15217
|
+
"qti-assessment-section": exports_external.union([QtiAssessmentSection, exports_external.array(QtiAssessmentSection)])
|
|
15218
|
+
}).strict();
|
|
15219
|
+
var QtiAssessmentTestCreateInput = exports_external.object({
|
|
15220
|
+
identifier: exports_external.string().min(1),
|
|
15221
|
+
title: exports_external.string().min(1),
|
|
15222
|
+
qtiVersion: exports_external.string().optional(),
|
|
15223
|
+
toolName: exports_external.string().optional(),
|
|
15224
|
+
toolVersion: exports_external.string().optional(),
|
|
15225
|
+
timeLimit: exports_external.number().optional(),
|
|
15226
|
+
maxAttempts: exports_external.number().optional(),
|
|
15227
|
+
toolsEnabled: exports_external.record(exports_external.string(), exports_external.boolean()).optional(),
|
|
15228
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
|
|
15229
|
+
"qti-test-part": QtiTestPart,
|
|
15230
|
+
"qti-outcome-declaration": exports_external.array(QtiTestOutcomeDeclaration).optional()
|
|
15231
|
+
}).strict();
|
|
15232
|
+
var QtiAssessmentTestUpdateInput = exports_external.object({
|
|
15233
|
+
title: exports_external.string().min(1),
|
|
15234
|
+
qtiVersion: exports_external.string().optional(),
|
|
15235
|
+
toolName: exports_external.string().optional(),
|
|
15236
|
+
toolVersion: exports_external.string().optional(),
|
|
15237
|
+
timeLimit: exports_external.number().optional(),
|
|
15238
|
+
maxAttempts: exports_external.number().optional(),
|
|
15239
|
+
toolsEnabled: exports_external.record(exports_external.string(), exports_external.boolean()).optional(),
|
|
15240
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
|
|
15241
|
+
"qti-test-part": QtiTestPart,
|
|
15242
|
+
"qti-outcome-declaration": exports_external.array(QtiTestOutcomeDeclaration).optional()
|
|
15243
|
+
}).strict();
|
|
15244
|
+
var QtiStimulusCreateInput = exports_external.object({
|
|
15245
|
+
identifier: exports_external.string().min(1),
|
|
15246
|
+
title: exports_external.string().min(1),
|
|
15247
|
+
label: exports_external.string().optional(),
|
|
15248
|
+
language: exports_external.string().optional(),
|
|
15249
|
+
stylesheet: QtiStylesheet.optional(),
|
|
15250
|
+
content: exports_external.string(),
|
|
15251
|
+
catalogInfo: exports_external.array(QtiCatalogInfo).optional(),
|
|
15252
|
+
toolName: exports_external.string().optional(),
|
|
15253
|
+
toolVersion: exports_external.string().optional(),
|
|
15254
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
15255
|
+
}).strict();
|
|
15256
|
+
var QtiStimulusUpdateInput = exports_external.object({
|
|
15257
|
+
title: exports_external.string().min(1),
|
|
15258
|
+
label: exports_external.string().optional(),
|
|
15259
|
+
language: exports_external.string().optional(),
|
|
15260
|
+
stylesheet: QtiStylesheet.optional(),
|
|
15261
|
+
content: exports_external.string(),
|
|
15262
|
+
catalogInfo: exports_external.array(QtiCatalogInfo).optional(),
|
|
15263
|
+
toolName: exports_external.string().optional(),
|
|
15264
|
+
toolVersion: exports_external.string().optional(),
|
|
15265
|
+
metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
|
|
15266
|
+
}).strict();
|
|
15267
|
+
var QtiValidateInput = exports_external.object({
|
|
15268
|
+
xml: exports_external.string().optional(),
|
|
15269
|
+
schema: QtiValidationSchema,
|
|
15270
|
+
entityId: exports_external.string().optional()
|
|
15271
|
+
}).strict();
|
|
15272
|
+
var QtiValidateBatchInput = exports_external.object({
|
|
15273
|
+
xml: exports_external.array(exports_external.string()),
|
|
15274
|
+
schema: QtiValidationSchema,
|
|
15275
|
+
entityIds: exports_external.array(exports_external.string())
|
|
15276
|
+
}).strict();
|
|
15277
|
+
var QtiLessonFeedbackInput = exports_external.object({
|
|
15278
|
+
questionId: exports_external.string().optional(),
|
|
15279
|
+
userId: exports_external.string().min(1),
|
|
15280
|
+
feedback: exports_external.string().min(1),
|
|
15281
|
+
lessonId: exports_external.string().min(1),
|
|
15282
|
+
humanApproved: exports_external.boolean().optional()
|
|
15283
|
+
}).strict();
|
|
15049
15284
|
// ../internal/cli-infra/src/config/timeback.ts
|
|
15050
15285
|
var FILE_PATTERNS2 = ["timeback.config.ts", "timeback.config.js", "timeback.config.mjs"];
|
|
15051
15286
|
var jiti = createJiti(import.meta.url, { fsCache: false });
|
|
@@ -15191,7 +15426,7 @@ function getParser(opts = {}) {
|
|
|
15191
15426
|
|
|
15192
15427
|
// ../internal/cli-infra/src/search/search.ts
|
|
15193
15428
|
function searchCourses(client, query, max = 50) {
|
|
15194
|
-
return client.oneroster.courses.
|
|
15429
|
+
return client.oneroster.courses.listAll({
|
|
15195
15430
|
search: query,
|
|
15196
15431
|
where: { status: "active" },
|
|
15197
15432
|
max
|
|
@@ -16097,7 +16332,7 @@ async function resolveConfig(courseIds, opts, credentials, configuredEnvs, defau
|
|
|
16097
16332
|
return resolved;
|
|
16098
16333
|
}
|
|
16099
16334
|
|
|
16100
|
-
// ../../node_modules/.bun/@hono+node-server@1.19.
|
|
16335
|
+
// ../../node_modules/.bun/@hono+node-server@1.19.8+fd698e00a3b2abce/node_modules/@hono/node-server/dist/index.mjs
|
|
16101
16336
|
import { createServer as createServerHTTP } from "http";
|
|
16102
16337
|
import { Http2ServerRequest as Http2ServerRequest2 } from "http2";
|
|
16103
16338
|
import { Http2ServerRequest } from "http2";
|
|
@@ -16639,7 +16874,7 @@ var serve = (options, listeningListener) => {
|
|
|
16639
16874
|
return server;
|
|
16640
16875
|
};
|
|
16641
16876
|
|
|
16642
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
16877
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/compose.js
|
|
16643
16878
|
var compose = (middleware, onError, onNotFound) => {
|
|
16644
16879
|
return (context, next) => {
|
|
16645
16880
|
let index = -1;
|
|
@@ -16683,10 +16918,10 @@ var compose = (middleware, onError, onNotFound) => {
|
|
|
16683
16918
|
};
|
|
16684
16919
|
};
|
|
16685
16920
|
|
|
16686
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
16921
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/request/constants.js
|
|
16687
16922
|
var GET_MATCH_RESULT = /* @__PURE__ */ Symbol();
|
|
16688
16923
|
|
|
16689
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
16924
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/utils/body.js
|
|
16690
16925
|
var parseBody = async (request, options = /* @__PURE__ */ Object.create(null)) => {
|
|
16691
16926
|
const { all = false, dot = false } = options;
|
|
16692
16927
|
const headers = request instanceof HonoRequest ? request.raw.headers : request.headers;
|
|
@@ -16754,7 +16989,7 @@ var handleParsingNestedValues = (form, key, value) => {
|
|
|
16754
16989
|
});
|
|
16755
16990
|
};
|
|
16756
16991
|
|
|
16757
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
16992
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/utils/url.js
|
|
16758
16993
|
var splitPath = (path) => {
|
|
16759
16994
|
const paths = path.split("/");
|
|
16760
16995
|
if (paths[0] === "") {
|
|
@@ -16952,7 +17187,7 @@ var getQueryParams = (url2, key) => {
|
|
|
16952
17187
|
};
|
|
16953
17188
|
var decodeURIComponent_ = decodeURIComponent;
|
|
16954
17189
|
|
|
16955
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
17190
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/request.js
|
|
16956
17191
|
var tryDecodeURIComponent = (str) => tryDecode(str, decodeURIComponent_);
|
|
16957
17192
|
var HonoRequest = class {
|
|
16958
17193
|
raw;
|
|
@@ -17063,7 +17298,7 @@ var HonoRequest = class {
|
|
|
17063
17298
|
}
|
|
17064
17299
|
};
|
|
17065
17300
|
|
|
17066
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
17301
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/utils/html.js
|
|
17067
17302
|
var HtmlEscapedCallbackPhase = {
|
|
17068
17303
|
Stringify: 1,
|
|
17069
17304
|
BeforeStream: 2,
|
|
@@ -17101,7 +17336,7 @@ var resolveCallback = async (str, phase, preserveCallbacks, context, buffer) =>
|
|
|
17101
17336
|
}
|
|
17102
17337
|
};
|
|
17103
17338
|
|
|
17104
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
17339
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/context.js
|
|
17105
17340
|
var TEXT_PLAIN = "text/plain; charset=UTF-8";
|
|
17106
17341
|
var setDefaultContentType = (contentType, headers) => {
|
|
17107
17342
|
return {
|
|
@@ -17267,7 +17502,7 @@ var Context = class {
|
|
|
17267
17502
|
};
|
|
17268
17503
|
};
|
|
17269
17504
|
|
|
17270
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
17505
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router.js
|
|
17271
17506
|
var METHOD_NAME_ALL = "ALL";
|
|
17272
17507
|
var METHOD_NAME_ALL_LOWERCASE = "all";
|
|
17273
17508
|
var METHODS = ["get", "post", "put", "delete", "options", "patch"];
|
|
@@ -17275,10 +17510,10 @@ var MESSAGE_MATCHER_IS_ALREADY_BUILT = "Can not add a route since the matcher is
|
|
|
17275
17510
|
var UnsupportedPathError = class extends Error {
|
|
17276
17511
|
};
|
|
17277
17512
|
|
|
17278
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
17513
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/utils/constants.js
|
|
17279
17514
|
var COMPOSED_HANDLER = "__COMPOSED_HANDLER";
|
|
17280
17515
|
|
|
17281
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
17516
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/hono-base.js
|
|
17282
17517
|
var notFoundHandler = (c) => {
|
|
17283
17518
|
return c.text("404 Not Found", 404);
|
|
17284
17519
|
};
|
|
@@ -17497,7 +17732,7 @@ var Hono = class _Hono {
|
|
|
17497
17732
|
};
|
|
17498
17733
|
};
|
|
17499
17734
|
|
|
17500
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
17735
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/reg-exp-router/matcher.js
|
|
17501
17736
|
var emptyParam = [];
|
|
17502
17737
|
function match(method, path) {
|
|
17503
17738
|
const matchers = this.buildAllMatchers();
|
|
@@ -17518,7 +17753,7 @@ function match(method, path) {
|
|
|
17518
17753
|
return match2(method, path);
|
|
17519
17754
|
}
|
|
17520
17755
|
|
|
17521
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
17756
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/reg-exp-router/node.js
|
|
17522
17757
|
var LABEL_REG_EXP_STR = "[^/]+";
|
|
17523
17758
|
var ONLY_WILDCARD_REG_EXP_STR = ".*";
|
|
17524
17759
|
var TAIL_WILDCARD_REG_EXP_STR = "(?:|/.*)";
|
|
@@ -17622,7 +17857,7 @@ var Node = class _Node {
|
|
|
17622
17857
|
}
|
|
17623
17858
|
};
|
|
17624
17859
|
|
|
17625
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
17860
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/reg-exp-router/trie.js
|
|
17626
17861
|
var Trie = class {
|
|
17627
17862
|
#context = { varIndex: 0 };
|
|
17628
17863
|
#root = new Node;
|
|
@@ -17678,7 +17913,7 @@ var Trie = class {
|
|
|
17678
17913
|
}
|
|
17679
17914
|
};
|
|
17680
17915
|
|
|
17681
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
17916
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/reg-exp-router/router.js
|
|
17682
17917
|
var nullMatcher = [/^$/, [], /* @__PURE__ */ Object.create(null)];
|
|
17683
17918
|
var wildcardRegExpCache = /* @__PURE__ */ Object.create(null);
|
|
17684
17919
|
function buildWildcardRegExp(path) {
|
|
@@ -17843,7 +18078,7 @@ var RegExpRouter = class {
|
|
|
17843
18078
|
}
|
|
17844
18079
|
};
|
|
17845
18080
|
|
|
17846
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
18081
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/reg-exp-router/prepared-router.js
|
|
17847
18082
|
var PreparedRegExpRouter = class {
|
|
17848
18083
|
name = "PreparedRegExpRouter";
|
|
17849
18084
|
#matchers;
|
|
@@ -17915,7 +18150,7 @@ var PreparedRegExpRouter = class {
|
|
|
17915
18150
|
match = match;
|
|
17916
18151
|
};
|
|
17917
18152
|
|
|
17918
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
18153
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/smart-router/router.js
|
|
17919
18154
|
var SmartRouter = class {
|
|
17920
18155
|
name = "SmartRouter";
|
|
17921
18156
|
#routers = [];
|
|
@@ -17970,7 +18205,7 @@ var SmartRouter = class {
|
|
|
17970
18205
|
}
|
|
17971
18206
|
};
|
|
17972
18207
|
|
|
17973
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
18208
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/trie-router/node.js
|
|
17974
18209
|
var emptyParams = /* @__PURE__ */ Object.create(null);
|
|
17975
18210
|
var Node2 = class _Node2 {
|
|
17976
18211
|
#methods;
|
|
@@ -18124,7 +18359,7 @@ var Node2 = class _Node2 {
|
|
|
18124
18359
|
}
|
|
18125
18360
|
};
|
|
18126
18361
|
|
|
18127
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
18362
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/router/trie-router/router.js
|
|
18128
18363
|
var TrieRouter = class {
|
|
18129
18364
|
name = "TrieRouter";
|
|
18130
18365
|
#node;
|
|
@@ -18146,7 +18381,7 @@ var TrieRouter = class {
|
|
|
18146
18381
|
}
|
|
18147
18382
|
};
|
|
18148
18383
|
|
|
18149
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
18384
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/hono.js
|
|
18150
18385
|
var Hono2 = class extends Hono {
|
|
18151
18386
|
constructor(options = {}) {
|
|
18152
18387
|
super(options);
|
|
@@ -18156,7 +18391,7 @@ var Hono2 = class extends Hono {
|
|
|
18156
18391
|
}
|
|
18157
18392
|
};
|
|
18158
18393
|
|
|
18159
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
18394
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/middleware/cors/index.js
|
|
18160
18395
|
var cors = (options) => {
|
|
18161
18396
|
const defaults = {
|
|
18162
18397
|
origin: "*",
|
|
@@ -18683,7 +18918,7 @@ class BootstrapService {
|
|
|
18683
18918
|
return enrollmentData.enrollments;
|
|
18684
18919
|
}
|
|
18685
18920
|
try {
|
|
18686
|
-
const users = await this.client.oneroster.users.
|
|
18921
|
+
const users = await this.client.oneroster.users.listAll({
|
|
18687
18922
|
where: { sourcedId: { in: studentUserIds } }
|
|
18688
18923
|
});
|
|
18689
18924
|
const userMap = new Map(users.map((u2) => [u2.sourcedId, u2]));
|
|
@@ -18706,7 +18941,7 @@ class BootstrapService {
|
|
|
18706
18941
|
}
|
|
18707
18942
|
const uniqueResourceIds = [...new Set(resourceIds)];
|
|
18708
18943
|
try {
|
|
18709
|
-
const resources = await this.client.oneroster.resources.
|
|
18944
|
+
const resources = await this.client.oneroster.resources.listAll({
|
|
18710
18945
|
where: { sourcedId: { in: uniqueResourceIds } }
|
|
18711
18946
|
});
|
|
18712
18947
|
const resourceMap = new Map(resources.map((r2) => [r2.sourcedId, r2]));
|
|
@@ -18742,7 +18977,7 @@ class BootstrapService {
|
|
|
18742
18977
|
return null;
|
|
18743
18978
|
}
|
|
18744
18979
|
try {
|
|
18745
|
-
const
|
|
18980
|
+
const user = await this.client.oneroster.users.first({ where: { email: email3 } });
|
|
18746
18981
|
return user ?? null;
|
|
18747
18982
|
} catch (error48) {
|
|
18748
18983
|
const message = getErrorMessage(error48);
|
|
@@ -18761,7 +18996,7 @@ class BootstrapService {
|
|
|
18761
18996
|
return { enrollments, studentIds, teacherIds, studentsByClass };
|
|
18762
18997
|
}
|
|
18763
18998
|
try {
|
|
18764
|
-
const fetchedEnrollments = await this.client.oneroster.enrollments.
|
|
18999
|
+
const fetchedEnrollments = await this.client.oneroster.enrollments.listAll({
|
|
18765
19000
|
where: {
|
|
18766
19001
|
"class.sourcedId": { in: classIds }
|
|
18767
19002
|
}
|
|
@@ -19106,7 +19341,7 @@ class StudentSearchService {
|
|
|
19106
19341
|
const trimmedQuery = query.trim();
|
|
19107
19342
|
log5.debug("Searching students", { query: trimmedQuery, max });
|
|
19108
19343
|
try {
|
|
19109
|
-
const users = await this.client.oneroster.students.
|
|
19344
|
+
const users = await this.client.oneroster.students.listAll({
|
|
19110
19345
|
search: trimmedQuery,
|
|
19111
19346
|
where: { status: "active" },
|
|
19112
19347
|
max
|
|
@@ -19184,7 +19419,7 @@ function createManager(ctx) {
|
|
|
19184
19419
|
log6.debug("Manager ready", { environments: manager.names });
|
|
19185
19420
|
return manager;
|
|
19186
19421
|
}
|
|
19187
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19422
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/helper/factory/index.js
|
|
19188
19423
|
var Factory = class {
|
|
19189
19424
|
initApp;
|
|
19190
19425
|
#defaultAppOptions;
|
|
@@ -19247,7 +19482,7 @@ function createEnvMiddleware(ctx, manager) {
|
|
|
19247
19482
|
await next();
|
|
19248
19483
|
});
|
|
19249
19484
|
}
|
|
19250
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19485
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/utils/stream.js
|
|
19251
19486
|
var StreamingApi = class {
|
|
19252
19487
|
writer;
|
|
19253
19488
|
encoder;
|
|
@@ -19313,7 +19548,7 @@ var StreamingApi = class {
|
|
|
19313
19548
|
}
|
|
19314
19549
|
};
|
|
19315
19550
|
|
|
19316
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19551
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/helper/streaming/utils.js
|
|
19317
19552
|
var isOldBunVersion = () => {
|
|
19318
19553
|
const version2 = typeof Bun !== "undefined" ? Bun.version : undefined;
|
|
19319
19554
|
if (version2 === undefined) {
|
|
@@ -19324,7 +19559,7 @@ var isOldBunVersion = () => {
|
|
|
19324
19559
|
return result;
|
|
19325
19560
|
};
|
|
19326
19561
|
|
|
19327
|
-
// ../../node_modules/.bun/hono@4.11.
|
|
19562
|
+
// ../../node_modules/.bun/hono@4.11.4/node_modules/hono/dist/helper/streaming/sse.js
|
|
19328
19563
|
var SSEStreamingApi = class extends StreamingApi {
|
|
19329
19564
|
constructor(writable, readable) {
|
|
19330
19565
|
super(writable, readable);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/server/services/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAGpD,OAAO,KAAK,EACX,eAAe,EAIf,mBAAmB,EACnB,MAAM,SAAS,CAAA;AAyBhB;;;;GAIG;AACH,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC,YAAY,MAAM,EAAE,cAAc,EAEjC;IAED;;;;;OAKG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CA8CzE;IAMD;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;YAkBN,oBAAoB;YAoEpB,0BAA0B;YAuC1B,cAAc;YA0Cd,YAAY;YAgCZ,gBAAgB;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/server/services/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAGpD,OAAO,KAAK,EACX,eAAe,EAIf,mBAAmB,EACnB,MAAM,SAAS,CAAA;AAyBhB;;;;GAIG;AACH,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC,YAAY,MAAM,EAAE,cAAc,EAEjC;IAED;;;;;OAKG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CA8CzE;IAMD;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;YAkBN,oBAAoB;YAoEpB,0BAA0B;YAuC1B,cAAc;YA0Cd,YAAY;YAgCZ,gBAAgB;YA0BhB,gBAAgB;CAuD9B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "timeback-studio",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@clack/prompts": "^0.11.0",
|
|
29
29
|
"@hono/node-server": "^1.19.7",
|
|
30
|
-
"@timeback/core": "0.1.
|
|
30
|
+
"@timeback/core": "0.1.1",
|
|
31
31
|
"colorette": "^2.0.20",
|
|
32
32
|
"commander": "^14.0.2",
|
|
33
33
|
"hono": "^4.11.1",
|