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 CHANGED
@@ -16696,11 +16696,11 @@ async function validateEmailWithTimeback(environment, clientId, clientSecret, em
16696
16696
  auth: { clientId, clientSecret }
16697
16697
  });
16698
16698
  try {
16699
- const users = await client.oneroster.users.list({
16699
+ const page = await client.oneroster.users.list({
16700
16700
  where: { email: email3 },
16701
16701
  limit: 1
16702
16702
  });
16703
- if (users.length === 0) {
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.list({
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.7+fde825ba4efdc684/node_modules/@hono/node-server/dist/index.mjs
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.3/node_modules/hono/dist/compose.js
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.3/node_modules/hono/dist/request/constants.js
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.3/node_modules/hono/dist/utils/body.js
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.3/node_modules/hono/dist/utils/url.js
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.3/node_modules/hono/dist/request.js
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.3/node_modules/hono/dist/utils/html.js
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.3/node_modules/hono/dist/context.js
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.3/node_modules/hono/dist/router.js
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.3/node_modules/hono/dist/utils/constants.js
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.3/node_modules/hono/dist/hono-base.js
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.3/node_modules/hono/dist/router/reg-exp-router/matcher.js
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.3/node_modules/hono/dist/router/reg-exp-router/node.js
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.3/node_modules/hono/dist/router/reg-exp-router/trie.js
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.3/node_modules/hono/dist/router/reg-exp-router/router.js
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.3/node_modules/hono/dist/router/reg-exp-router/prepared-router.js
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.3/node_modules/hono/dist/router/smart-router/router.js
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.3/node_modules/hono/dist/router/trie-router/node.js
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.3/node_modules/hono/dist/router/trie-router/router.js
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.3/node_modules/hono/dist/hono.js
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.3/node_modules/hono/dist/middleware/cors/index.js
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.list({
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.list({
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 [user] = await this.client.oneroster.users.list({ where: { email: email3 }, limit: 1 });
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.list({
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.list({
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.3/node_modules/hono/dist/helper/factory/index.js
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.3/node_modules/hono/dist/utils/stream.js
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.3/node_modules/hono/dist/helper/streaming/utils.js
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.3/node_modules/hono/dist/helper/streaming/sse.js
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 users = await client.oneroster.users.list({
14589
+ const page = await client.oneroster.users.list({
14590
14590
  where: { email: email3 },
14591
14591
  limit: 1
14592
14592
  });
14593
- if (users.length === 0) {
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.list({
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.7+fde825ba4efdc684/node_modules/@hono/node-server/dist/index.mjs
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.3/node_modules/hono/dist/compose.js
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.3/node_modules/hono/dist/request/constants.js
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.3/node_modules/hono/dist/utils/body.js
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.3/node_modules/hono/dist/utils/url.js
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.3/node_modules/hono/dist/request.js
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.3/node_modules/hono/dist/utils/html.js
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.3/node_modules/hono/dist/context.js
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.3/node_modules/hono/dist/router.js
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.3/node_modules/hono/dist/utils/constants.js
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.3/node_modules/hono/dist/hono-base.js
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.3/node_modules/hono/dist/router/reg-exp-router/matcher.js
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.3/node_modules/hono/dist/router/reg-exp-router/node.js
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.3/node_modules/hono/dist/router/reg-exp-router/trie.js
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.3/node_modules/hono/dist/router/reg-exp-router/router.js
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.3/node_modules/hono/dist/router/reg-exp-router/prepared-router.js
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.3/node_modules/hono/dist/router/smart-router/router.js
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.3/node_modules/hono/dist/router/trie-router/node.js
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.3/node_modules/hono/dist/router/trie-router/router.js
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.3/node_modules/hono/dist/hono.js
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.3/node_modules/hono/dist/middleware/cors/index.js
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.list({
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.list({
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 [user] = await this.client.oneroster.users.list({ where: { email: email3 }, limit: 1 });
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.list({
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.list({
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.3/node_modules/hono/dist/helper/factory/index.js
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.3/node_modules/hono/dist/utils/stream.js
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.3/node_modules/hono/dist/helper/streaming/utils.js
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.3/node_modules/hono/dist/helper/streaming/sse.js
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;YAyBhB,gBAAgB;CAuD9B"}
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.0",
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.0",
30
+ "@timeback/core": "0.1.1",
31
31
  "colorette": "^2.0.20",
32
32
  "commander": "^14.0.2",
33
33
  "hono": "^4.11.1",