@timeback/core 0.1.4 → 0.1.6

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/utils.js CHANGED
@@ -1,20 +1,4 @@
1
- import { createRequire } from "node:module";
2
- var __create = Object.create;
3
- var __getProtoOf = Object.getPrototypeOf;
4
1
  var __defProp = Object.defineProperty;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __toESM = (mod, isNodeMode, target) => {
8
- target = mod != null ? __create(__getProtoOf(mod)) : {};
9
- const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
10
- for (let key of __getOwnPropNames(mod))
11
- if (!__hasOwnProp.call(to, key))
12
- __defProp(to, key, {
13
- get: () => mod[key],
14
- enumerable: true
15
- });
16
- return to;
17
- };
18
2
  var __export = (target, all) => {
19
3
  for (var name in all)
20
4
  __defProp(target, name, {
@@ -24,7 +8,7 @@ var __export = (target, all) => {
24
8
  set: (newValue) => all[name] = () => newValue
25
9
  });
26
10
  };
27
- var __require = /* @__PURE__ */ createRequire(import.meta.url);
11
+ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
28
12
 
29
13
  // ../edubridge/dist/index.js
30
14
  var __defProp2 = Object.defineProperty;
@@ -37,6 +21,423 @@ var __export2 = (target, all) => {
37
21
  set: (newValue) => all[name] = () => newValue
38
22
  });
39
23
  };
24
+ var __esm2 = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
25
+ var exports_util = {};
26
+ __export2(exports_util, {
27
+ types: () => types,
28
+ promisify: () => promisify,
29
+ log: () => log,
30
+ isUndefined: () => isUndefined,
31
+ isSymbol: () => isSymbol,
32
+ isString: () => isString,
33
+ isRegExp: () => isRegExp,
34
+ isPrimitive: () => isPrimitive,
35
+ isObject: () => isObject,
36
+ isNumber: () => isNumber,
37
+ isNullOrUndefined: () => isNullOrUndefined,
38
+ isNull: () => isNull,
39
+ isFunction: () => isFunction,
40
+ isError: () => isError,
41
+ isDate: () => isDate,
42
+ isBuffer: () => isBuffer,
43
+ isBoolean: () => isBoolean,
44
+ isArray: () => isArray,
45
+ inspect: () => inspect,
46
+ inherits: () => inherits,
47
+ format: () => format,
48
+ deprecate: () => deprecate,
49
+ default: () => util_default,
50
+ debuglog: () => debuglog,
51
+ callbackifyOnRejected: () => callbackifyOnRejected,
52
+ callbackify: () => callbackify,
53
+ _extend: () => _extend,
54
+ TextEncoder: () => TextEncoder,
55
+ TextDecoder: () => TextDecoder
56
+ });
57
+ function format(f, ...args) {
58
+ if (!isString(f)) {
59
+ var objects = [f];
60
+ for (var i = 0;i < args.length; i++)
61
+ objects.push(inspect(args[i]));
62
+ return objects.join(" ");
63
+ }
64
+ var i = 0, len = args.length, str = String(f).replace(formatRegExp, function(x2) {
65
+ if (x2 === "%%")
66
+ return "%";
67
+ if (i >= len)
68
+ return x2;
69
+ switch (x2) {
70
+ case "%s":
71
+ return String(args[i++]);
72
+ case "%d":
73
+ return Number(args[i++]);
74
+ case "%j":
75
+ try {
76
+ return JSON.stringify(args[i++]);
77
+ } catch (_) {
78
+ return "[Circular]";
79
+ }
80
+ default:
81
+ return x2;
82
+ }
83
+ });
84
+ for (var x = args[i];i < len; x = args[++i])
85
+ if (isNull(x) || !isObject(x))
86
+ str += " " + x;
87
+ else
88
+ str += " " + inspect(x);
89
+ return str;
90
+ }
91
+ function deprecate(fn, msg) {
92
+ if (typeof process > "u" || process?.noDeprecation === true)
93
+ return fn;
94
+ var warned = false;
95
+ function deprecated(...args) {
96
+ if (!warned) {
97
+ if (process.throwDeprecation)
98
+ throw Error(msg);
99
+ else if (process.traceDeprecation)
100
+ console.trace(msg);
101
+ else
102
+ console.error(msg);
103
+ warned = true;
104
+ }
105
+ return fn.apply(this, ...args);
106
+ }
107
+ return deprecated;
108
+ }
109
+ function stylizeWithColor(str, styleType) {
110
+ var style = inspect.styles[styleType];
111
+ if (style)
112
+ return "\x1B[" + inspect.colors[style][0] + "m" + str + "\x1B[" + inspect.colors[style][1] + "m";
113
+ else
114
+ return str;
115
+ }
116
+ function stylizeNoColor(str, styleType) {
117
+ return str;
118
+ }
119
+ function arrayToHash(array) {
120
+ var hash = {};
121
+ return array.forEach(function(val, idx) {
122
+ hash[val] = true;
123
+ }), hash;
124
+ }
125
+ function formatValue(ctx, value, recurseTimes) {
126
+ if (ctx.customInspect && value && isFunction(value.inspect) && value.inspect !== inspect && !(value.constructor && value.constructor.prototype === value)) {
127
+ var ret = value.inspect(recurseTimes, ctx);
128
+ if (!isString(ret))
129
+ ret = formatValue(ctx, ret, recurseTimes);
130
+ return ret;
131
+ }
132
+ var primitive = formatPrimitive(ctx, value);
133
+ if (primitive)
134
+ return primitive;
135
+ var keys = Object.keys(value), visibleKeys = arrayToHash(keys);
136
+ if (ctx.showHidden)
137
+ keys = Object.getOwnPropertyNames(value);
138
+ if (isError(value) && (keys.indexOf("message") >= 0 || keys.indexOf("description") >= 0))
139
+ return formatError(value);
140
+ if (keys.length === 0) {
141
+ if (isFunction(value)) {
142
+ var name = value.name ? ": " + value.name : "";
143
+ return ctx.stylize("[Function" + name + "]", "special");
144
+ }
145
+ if (isRegExp(value))
146
+ return ctx.stylize(RegExp.prototype.toString.call(value), "regexp");
147
+ if (isDate(value))
148
+ return ctx.stylize(Date.prototype.toString.call(value), "date");
149
+ if (isError(value))
150
+ return formatError(value);
151
+ }
152
+ var base = "", array = false, braces = ["{", "}"];
153
+ if (isArray(value))
154
+ array = true, braces = ["[", "]"];
155
+ if (isFunction(value)) {
156
+ var n = value.name ? ": " + value.name : "";
157
+ base = " [Function" + n + "]";
158
+ }
159
+ if (isRegExp(value))
160
+ base = " " + RegExp.prototype.toString.call(value);
161
+ if (isDate(value))
162
+ base = " " + Date.prototype.toUTCString.call(value);
163
+ if (isError(value))
164
+ base = " " + formatError(value);
165
+ if (keys.length === 0 && (!array || value.length == 0))
166
+ return braces[0] + base + braces[1];
167
+ if (recurseTimes < 0)
168
+ if (isRegExp(value))
169
+ return ctx.stylize(RegExp.prototype.toString.call(value), "regexp");
170
+ else
171
+ return ctx.stylize("[Object]", "special");
172
+ ctx.seen.push(value);
173
+ var output;
174
+ if (array)
175
+ output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
176
+ else
177
+ output = keys.map(function(key) {
178
+ return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
179
+ });
180
+ return ctx.seen.pop(), reduceToSingleString(output, base, braces);
181
+ }
182
+ function formatPrimitive(ctx, value) {
183
+ if (isUndefined(value))
184
+ return ctx.stylize("undefined", "undefined");
185
+ if (isString(value)) {
186
+ var simple = "'" + JSON.stringify(value).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'";
187
+ return ctx.stylize(simple, "string");
188
+ }
189
+ if (isNumber(value))
190
+ return ctx.stylize("" + value, "number");
191
+ if (isBoolean(value))
192
+ return ctx.stylize("" + value, "boolean");
193
+ if (isNull(value))
194
+ return ctx.stylize("null", "null");
195
+ }
196
+ function formatError(value) {
197
+ return "[" + Error.prototype.toString.call(value) + "]";
198
+ }
199
+ function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
200
+ var output = [];
201
+ for (var i = 0, l = value.length;i < l; ++i)
202
+ if (hasOwnProperty(value, String(i)))
203
+ output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true));
204
+ else
205
+ output.push("");
206
+ return keys.forEach(function(key) {
207
+ if (!key.match(/^\d+$/))
208
+ output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true));
209
+ }), output;
210
+ }
211
+ function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
212
+ var name, str, desc;
213
+ if (desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }, desc.get)
214
+ if (desc.set)
215
+ str = ctx.stylize("[Getter/Setter]", "special");
216
+ else
217
+ str = ctx.stylize("[Getter]", "special");
218
+ else if (desc.set)
219
+ str = ctx.stylize("[Setter]", "special");
220
+ if (!hasOwnProperty(visibleKeys, key))
221
+ name = "[" + key + "]";
222
+ if (!str)
223
+ if (ctx.seen.indexOf(desc.value) < 0) {
224
+ if (isNull(recurseTimes))
225
+ str = formatValue(ctx, desc.value, null);
226
+ else
227
+ str = formatValue(ctx, desc.value, recurseTimes - 1);
228
+ if (str.indexOf(`
229
+ `) > -1)
230
+ if (array)
231
+ str = str.split(`
232
+ `).map(function(line) {
233
+ return " " + line;
234
+ }).join(`
235
+ `).slice(2);
236
+ else
237
+ str = `
238
+ ` + str.split(`
239
+ `).map(function(line) {
240
+ return " " + line;
241
+ }).join(`
242
+ `);
243
+ } else
244
+ str = ctx.stylize("[Circular]", "special");
245
+ if (isUndefined(name)) {
246
+ if (array && key.match(/^\d+$/))
247
+ return str;
248
+ if (name = JSON.stringify("" + key), name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/))
249
+ name = name.slice(1, -1), name = ctx.stylize(name, "name");
250
+ else
251
+ name = name.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"), name = ctx.stylize(name, "string");
252
+ }
253
+ return name + ": " + str;
254
+ }
255
+ function reduceToSingleString(output, base, braces) {
256
+ var numLinesEst = 0, length = output.reduce(function(prev, cur) {
257
+ if (numLinesEst++, cur.indexOf(`
258
+ `) >= 0)
259
+ numLinesEst++;
260
+ return prev + cur.replace(/\u001b\[\d\d?m/g, "").length + 1;
261
+ }, 0);
262
+ if (length > 60)
263
+ return braces[0] + (base === "" ? "" : base + `
264
+ `) + " " + output.join(`,
265
+ `) + " " + braces[1];
266
+ return braces[0] + base + " " + output.join(", ") + " " + braces[1];
267
+ }
268
+ function isArray(ar) {
269
+ return Array.isArray(ar);
270
+ }
271
+ function isBoolean(arg) {
272
+ return typeof arg === "boolean";
273
+ }
274
+ function isNull(arg) {
275
+ return arg === null;
276
+ }
277
+ function isNullOrUndefined(arg) {
278
+ return arg == null;
279
+ }
280
+ function isNumber(arg) {
281
+ return typeof arg === "number";
282
+ }
283
+ function isString(arg) {
284
+ return typeof arg === "string";
285
+ }
286
+ function isSymbol(arg) {
287
+ return typeof arg === "symbol";
288
+ }
289
+ function isUndefined(arg) {
290
+ return arg === undefined;
291
+ }
292
+ function isRegExp(re) {
293
+ return isObject(re) && objectToString(re) === "[object RegExp]";
294
+ }
295
+ function isObject(arg) {
296
+ return typeof arg === "object" && arg !== null;
297
+ }
298
+ function isDate(d) {
299
+ return isObject(d) && objectToString(d) === "[object Date]";
300
+ }
301
+ function isError(e) {
302
+ return isObject(e) && (objectToString(e) === "[object Error]" || e instanceof Error);
303
+ }
304
+ function isFunction(arg) {
305
+ return typeof arg === "function";
306
+ }
307
+ function isPrimitive(arg) {
308
+ return arg === null || typeof arg === "boolean" || typeof arg === "number" || typeof arg === "string" || typeof arg === "symbol" || typeof arg > "u";
309
+ }
310
+ function isBuffer(arg) {
311
+ return arg instanceof Buffer;
312
+ }
313
+ function objectToString(o) {
314
+ return Object.prototype.toString.call(o);
315
+ }
316
+ function pad(n) {
317
+ return n < 10 ? "0" + n.toString(10) : n.toString(10);
318
+ }
319
+ function timestamp() {
320
+ var d = new Date, time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(":");
321
+ return [d.getDate(), months[d.getMonth()], time].join(" ");
322
+ }
323
+ function log(...args) {
324
+ console.log("%s - %s", timestamp(), format.apply(null, args));
325
+ }
326
+ function inherits(ctor, superCtor) {
327
+ if (superCtor)
328
+ ctor.super_ = superCtor, ctor.prototype = Object.create(superCtor.prototype, { constructor: { value: ctor, enumerable: false, writable: true, configurable: true } });
329
+ }
330
+ function _extend(origin, add) {
331
+ if (!add || !isObject(add))
332
+ return origin;
333
+ var keys = Object.keys(add), i = keys.length;
334
+ while (i--)
335
+ origin[keys[i]] = add[keys[i]];
336
+ return origin;
337
+ }
338
+ function hasOwnProperty(obj, prop) {
339
+ return Object.prototype.hasOwnProperty.call(obj, prop);
340
+ }
341
+ function callbackifyOnRejected(reason, cb) {
342
+ if (!reason) {
343
+ var newReason = Error("Promise was rejected with a falsy value");
344
+ newReason.reason = reason, reason = newReason;
345
+ }
346
+ return cb(reason);
347
+ }
348
+ function callbackify(original) {
349
+ if (typeof original !== "function")
350
+ throw TypeError('The "original" argument must be of type Function');
351
+ function callbackified(...args) {
352
+ var maybeCb = args.pop();
353
+ if (typeof maybeCb !== "function")
354
+ throw TypeError("The last argument must be of type Function");
355
+ var self = this, cb = function(...args2) {
356
+ return maybeCb.apply(self, ...args2);
357
+ };
358
+ original.apply(this, args).then(function(ret) {
359
+ process.nextTick(cb.bind(null, null, ret));
360
+ }, function(rej) {
361
+ process.nextTick(callbackifyOnRejected.bind(null, rej, cb));
362
+ });
363
+ }
364
+ return Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original)), Object.defineProperties(callbackified, Object.getOwnPropertyDescriptors(original)), callbackified;
365
+ }
366
+ var formatRegExp;
367
+ var debuglog;
368
+ var inspect;
369
+ var types = () => {};
370
+ var months;
371
+ var promisify;
372
+ var TextEncoder;
373
+ var TextDecoder;
374
+ var util_default;
375
+ var init_util = __esm2(() => {
376
+ formatRegExp = /%[sdj%]/g;
377
+ debuglog = ((debugs = {}, debugEnvRegex = {}, debugEnv) => ((debugEnv = typeof process < "u" && false) && (debugEnv = debugEnv.replace(/[|\\{}()[\]^$+?.]/g, "\\$&").replace(/\*/g, ".*").replace(/,/g, "$|^").toUpperCase()), debugEnvRegex = new RegExp("^" + debugEnv + "$", "i"), (set) => {
378
+ if (set = set.toUpperCase(), !debugs[set])
379
+ if (debugEnvRegex.test(set))
380
+ debugs[set] = function(...args) {
381
+ console.error("%s: %s", set, pid, format.apply(null, ...args));
382
+ };
383
+ else
384
+ debugs[set] = function() {};
385
+ return debugs[set];
386
+ }))();
387
+ inspect = ((i) => (i.colors = { bold: [1, 22], italic: [3, 23], underline: [4, 24], inverse: [7, 27], white: [37, 39], grey: [90, 39], black: [30, 39], blue: [34, 39], cyan: [36, 39], green: [32, 39], magenta: [35, 39], red: [31, 39], yellow: [33, 39] }, i.styles = { special: "cyan", number: "yellow", boolean: "yellow", undefined: "grey", null: "bold", string: "green", date: "magenta", regexp: "red" }, i.custom = Symbol.for("nodejs.util.inspect.custom"), i))(function(obj, opts, ...rest) {
388
+ var ctx = { seen: [], stylize: stylizeNoColor };
389
+ if (rest.length >= 1)
390
+ ctx.depth = rest[0];
391
+ if (rest.length >= 2)
392
+ ctx.colors = rest[1];
393
+ if (isBoolean(opts))
394
+ ctx.showHidden = opts;
395
+ else if (opts)
396
+ _extend(ctx, opts);
397
+ if (isUndefined(ctx.showHidden))
398
+ ctx.showHidden = false;
399
+ if (isUndefined(ctx.depth))
400
+ ctx.depth = 2;
401
+ if (isUndefined(ctx.colors))
402
+ ctx.colors = false;
403
+ if (ctx.colors)
404
+ ctx.stylize = stylizeWithColor;
405
+ return formatValue(ctx, obj, ctx.depth);
406
+ });
407
+ months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
408
+ promisify = ((x) => (x.custom = Symbol.for("nodejs.util.promisify.custom"), x))(function(original) {
409
+ if (typeof original !== "function")
410
+ throw TypeError('The "original" argument must be of type Function');
411
+ if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {
412
+ var fn = original[kCustomPromisifiedSymbol];
413
+ if (typeof fn !== "function")
414
+ throw TypeError('The "nodejs.util.promisify.custom" argument must be of type Function');
415
+ return Object.defineProperty(fn, kCustomPromisifiedSymbol, { value: fn, enumerable: false, writable: false, configurable: true }), fn;
416
+ }
417
+ function fn(...args) {
418
+ var promiseResolve, promiseReject, promise = new Promise(function(resolve, reject) {
419
+ promiseResolve = resolve, promiseReject = reject;
420
+ });
421
+ args.push(function(err, value) {
422
+ if (err)
423
+ promiseReject(err);
424
+ else
425
+ promiseResolve(value);
426
+ });
427
+ try {
428
+ original.apply(this, args);
429
+ } catch (err) {
430
+ promiseReject(err);
431
+ }
432
+ return promise;
433
+ }
434
+ if (Object.setPrototypeOf(fn, Object.getPrototypeOf(original)), kCustomPromisifiedSymbol)
435
+ Object.defineProperty(fn, kCustomPromisifiedSymbol, { value: fn, enumerable: false, writable: false, configurable: true });
436
+ return Object.defineProperties(fn, Object.getOwnPropertyDescriptors(original));
437
+ });
438
+ ({ TextEncoder, TextDecoder } = globalThis);
439
+ util_default = { TextEncoder, TextDecoder, promisify, log, inherits, _extend, callbackifyOnRejected, callbackify };
440
+ });
40
441
  var DEFAULT_PLATFORM = "BEYOND_AI";
41
442
  var BEYONDAI_TOKEN_URLS = {
42
443
  staging: "https://staging-beyond-timeback-api-2-idp.auth.us-east-1.amazoncognito.com/oauth2/token",
@@ -184,7 +585,7 @@ function detectEnvironment() {
184
585
  var nodeInspect;
185
586
  if (!isBrowser()) {
186
587
  try {
187
- const util = await import("node:util");
588
+ const util = await Promise.resolve().then(() => (init_util(), exports_util));
188
589
  nodeInspect = util.inspect;
189
590
  } catch {}
190
591
  }
@@ -237,10 +638,10 @@ var terminalFormatter = (entry) => {
237
638
  const consoleMethod = getConsoleMethod(entry.level);
238
639
  const levelUpper = entry.level.toUpperCase().padEnd(5);
239
640
  const isoString = entry.timestamp.toISOString().replace(/\.\d{3}Z$/, "");
240
- const timestamp = `${colors.dim}[${isoString}]${colors.reset}`;
641
+ const timestamp2 = `${colors.dim}[${isoString}]${colors.reset}`;
241
642
  const level = `${levelColor}${levelUpper}${colors.reset}`;
242
643
  const scope = entry.scope ? `${colors.bold}[${entry.scope}]${colors.reset} ` : "";
243
- const prefix = `${timestamp} ${level} ${scope}${entry.message}`;
644
+ const prefix = `${timestamp2} ${level} ${scope}${entry.message}`;
244
645
  if (entry.context && Object.keys(entry.context).length > 0) {
245
646
  consoleMethod(prefix, formatContext(entry.context));
246
647
  } else {
@@ -254,9 +655,9 @@ var LEVEL_PREFIX = {
254
655
  error: "[ERROR]"
255
656
  };
256
657
  function formatContext2(context) {
257
- return Object.entries(context).map(([key, value]) => `${key}=${formatValue(value)}`).join(" ");
658
+ return Object.entries(context).map(([key, value]) => `${key}=${formatValue2(value)}`).join(" ");
258
659
  }
259
- function formatValue(value) {
660
+ function formatValue2(value) {
260
661
  if (typeof value === "string")
261
662
  return value;
262
663
  if (typeof value === "number")
@@ -412,7 +813,7 @@ function isDebug() {
412
813
  return false;
413
814
  }
414
815
  }
415
- var log = createLogger({ scope: "auth", minLevel: isDebug() ? "debug" : "warn" });
816
+ var log2 = createLogger({ scope: "auth", minLevel: isDebug() ? "debug" : "warn" });
416
817
 
417
818
  class TokenManager {
418
819
  config;
@@ -426,11 +827,11 @@ class TokenManager {
426
827
  }
427
828
  async getToken() {
428
829
  if (this.accessToken && Date.now() < this.tokenExpiry) {
429
- log.debug("Using cached token");
830
+ log2.debug("Using cached token");
430
831
  return this.accessToken;
431
832
  }
432
833
  if (this.pendingRequest) {
433
- log.debug("Waiting for in-flight token request");
834
+ log2.debug("Waiting for in-flight token request");
434
835
  return this.pendingRequest;
435
836
  }
436
837
  this.pendingRequest = this.fetchToken();
@@ -441,7 +842,7 @@ class TokenManager {
441
842
  }
442
843
  }
443
844
  async fetchToken() {
444
- log.debug("Fetching new access token...");
845
+ log2.debug("Fetching new access token...");
445
846
  const { clientId, clientSecret } = this.config.credentials;
446
847
  const credentials = btoa(`${clientId}:${clientSecret}`);
447
848
  const start = performance.now();
@@ -455,17 +856,17 @@ class TokenManager {
455
856
  });
456
857
  const duration = Math.round(performance.now() - start);
457
858
  if (!response.ok) {
458
- log.error(`Token request failed: ${response.status} ${response.statusText}`);
859
+ log2.error(`Token request failed: ${response.status} ${response.statusText}`);
459
860
  throw new Error(`Failed to obtain access token: ${response.status} ${response.statusText}`);
460
861
  }
461
862
  const data = await response.json();
462
863
  this.accessToken = data.access_token;
463
864
  this.tokenExpiry = Date.now() + (data.expires_in - 60) * 1000;
464
- log.debug(`Token acquired (${duration}ms, expires in ${data.expires_in}s)`);
865
+ log2.debug(`Token acquired (${duration}ms, expires in ${data.expires_in}s)`);
465
866
  return this.accessToken;
466
867
  }
467
868
  invalidate() {
468
- log.debug("Token invalidated");
869
+ log2.debug("Token invalidated");
469
870
  this.accessToken = null;
470
871
  this.tokenExpiry = 0;
471
872
  }
@@ -488,6 +889,13 @@ var BEYONDAI_PATHS = {
488
889
  },
489
890
  powerpath: {
490
891
  base: "/powerpath"
892
+ },
893
+ clr: {
894
+ credentials: "/ims/clr/v2p0/credentials",
895
+ discovery: "/ims/clr/v2p0/discovery"
896
+ },
897
+ case: {
898
+ base: "/ims/case/v1p1"
491
899
  }
492
900
  };
493
901
  var LEARNWITHAI_PATHS = {
@@ -504,7 +912,9 @@ var LEARNWITHAI_PATHS = {
504
912
  resources: "/resources/1.0"
505
913
  },
506
914
  edubridge: null,
507
- powerpath: null
915
+ powerpath: null,
916
+ clr: null,
917
+ case: null
508
918
  };
509
919
  var PLATFORM_PATHS = {
510
920
  BEYOND_AI: BEYONDAI_PATHS,
@@ -525,7 +935,9 @@ function resolvePathProfiles(pathProfile, customPaths) {
525
935
  caliper: customPaths?.caliper ?? basePaths.caliper,
526
936
  oneroster: customPaths?.oneroster ?? basePaths.oneroster,
527
937
  edubridge: customPaths?.edubridge ?? basePaths.edubridge,
528
- powerpath: customPaths?.powerpath ?? basePaths.powerpath
938
+ powerpath: customPaths?.powerpath ?? basePaths.powerpath,
939
+ clr: customPaths?.clr ?? basePaths.clr,
940
+ case: customPaths?.case ?? basePaths.case
529
941
  };
530
942
  }
531
943
 
@@ -565,6 +977,14 @@ class TimebackProvider {
565
977
  baseUrl: platformEndpoints.api[env],
566
978
  authUrl: this.authUrl
567
979
  },
980
+ clr: {
981
+ baseUrl: platformEndpoints.api[env],
982
+ authUrl: this.authUrl
983
+ },
984
+ case: {
985
+ baseUrl: platformEndpoints.api[env],
986
+ authUrl: this.authUrl
987
+ },
568
988
  caliper: {
569
989
  baseUrl: platformEndpoints.caliper[env],
570
990
  authUrl: this.authUrl
@@ -582,6 +1002,8 @@ class TimebackProvider {
582
1002
  oneroster: { baseUrl: config.baseUrl, authUrl: this.authUrl },
583
1003
  edubridge: { baseUrl: config.baseUrl, authUrl: this.authUrl },
584
1004
  powerpath: { baseUrl: config.baseUrl, authUrl: this.authUrl },
1005
+ clr: { baseUrl: config.baseUrl, authUrl: this.authUrl },
1006
+ case: { baseUrl: config.baseUrl, authUrl: this.authUrl },
585
1007
  caliper: { baseUrl: config.baseUrl, authUrl: this.authUrl },
586
1008
  qti: { baseUrl: config.baseUrl, authUrl: this.authUrl }
587
1009
  };
@@ -934,7 +1356,7 @@ var MODE_TOKEN_PROVIDER = {
934
1356
  return "tokenProvider" in config;
935
1357
  },
936
1358
  resolve() {
937
- throw new Error("TokenProvider mode is not supported with provider pattern. Use { provider: TimebackProvider } or { env, auth } instead.");
1359
+ throw new Error("TokenProvider mode is not supported with provider pattern. " + "Use { provider: TimebackProvider } or { env, auth } instead.");
938
1360
  }
939
1361
  };
940
1362
  var MODES = [
@@ -1294,7 +1716,7 @@ var EDUBRIDGE_ENV_VARS = {
1294
1716
  function resolveToProvider2(config, registry = DEFAULT_PROVIDER_REGISTRY) {
1295
1717
  return resolveToProvider(config, EDUBRIDGE_ENV_VARS, registry);
1296
1718
  }
1297
- var log2 = createScopedLogger("edubridge");
1719
+ var log3 = createScopedLogger("edubridge");
1298
1720
  function normalizeBoolean(value) {
1299
1721
  if (typeof value === "boolean")
1300
1722
  return value;
@@ -1359,7 +1781,7 @@ function aggregateActivityMetrics(data) {
1359
1781
  class Transport extends BaseTransport {
1360
1782
  paths;
1361
1783
  constructor(config) {
1362
- super({ config, logger: log2 });
1784
+ super({ config, logger: log3 });
1363
1785
  this.paths = config.paths;
1364
1786
  }
1365
1787
  async requestPaginated(path, options = {}) {
@@ -1403,7 +1825,7 @@ __export2(exports_external, {
1403
1825
  uuidv6: () => uuidv6,
1404
1826
  uuidv4: () => uuidv4,
1405
1827
  uuid: () => uuid2,
1406
- util: () => exports_util,
1828
+ util: () => exports_util2,
1407
1829
  url: () => url,
1408
1830
  uppercase: () => _uppercase,
1409
1831
  unknown: () => unknown,
@@ -1512,7 +1934,7 @@ __export2(exports_external, {
1512
1934
  getErrorMap: () => getErrorMap,
1513
1935
  function: () => _function,
1514
1936
  fromJSONSchema: () => fromJSONSchema,
1515
- formatError: () => formatError,
1937
+ formatError: () => formatError2,
1516
1938
  float64: () => float64,
1517
1939
  float32: () => float32,
1518
1940
  flattenError: () => flattenError,
@@ -1636,7 +2058,7 @@ __export2(exports_external, {
1636
2058
  var exports_core2 = {};
1637
2059
  __export2(exports_core2, {
1638
2060
  version: () => version,
1639
- util: () => exports_util,
2061
+ util: () => exports_util2,
1640
2062
  treeifyError: () => treeifyError,
1641
2063
  toJSONSchema: () => toJSONSchema,
1642
2064
  toDotPath: () => toDotPath,
@@ -1660,7 +2082,7 @@ __export2(exports_core2, {
1660
2082
  initializeContext: () => initializeContext,
1661
2083
  globalRegistry: () => globalRegistry,
1662
2084
  globalConfig: () => globalConfig,
1663
- formatError: () => formatError,
2085
+ formatError: () => formatError2,
1664
2086
  flattenError: () => flattenError,
1665
2087
  finalize: () => finalize,
1666
2088
  extractDefs: () => extractDefs,
@@ -1984,8 +2406,8 @@ function config(newConfig) {
1984
2406
  Object.assign(globalConfig, newConfig);
1985
2407
  return globalConfig;
1986
2408
  }
1987
- var exports_util = {};
1988
- __export2(exports_util, {
2409
+ var exports_util2 = {};
2410
+ __export2(exports_util2, {
1989
2411
  unwrapMessage: () => unwrapMessage,
1990
2412
  uint8ArrayToHex: () => uint8ArrayToHex,
1991
2413
  uint8ArrayToBase64url: () => uint8ArrayToBase64url,
@@ -2015,7 +2437,7 @@ __export2(exports_util, {
2015
2437
  joinValues: () => joinValues,
2016
2438
  issue: () => issue2,
2017
2439
  isPlainObject: () => isPlainObject,
2018
- isObject: () => isObject,
2440
+ isObject: () => isObject2,
2019
2441
  hexToUint8Array: () => hexToUint8Array,
2020
2442
  getSizableOrigin: () => getSizableOrigin,
2021
2443
  getParsedType: () => getParsedType,
@@ -2184,7 +2606,7 @@ function slugify(input) {
2184
2606
  return input.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "-").replace(/^-+|-+$/g, "");
2185
2607
  }
2186
2608
  var captureStackTrace = "captureStackTrace" in Error ? Error.captureStackTrace : (..._args) => {};
2187
- function isObject(data) {
2609
+ function isObject2(data) {
2188
2610
  return typeof data === "object" && data !== null && !Array.isArray(data);
2189
2611
  }
2190
2612
  var allowsEval = cached(() => {
@@ -2200,7 +2622,7 @@ var allowsEval = cached(() => {
2200
2622
  }
2201
2623
  });
2202
2624
  function isPlainObject(o) {
2203
- if (isObject(o) === false)
2625
+ if (isObject2(o) === false)
2204
2626
  return false;
2205
2627
  const ctor = o.constructor;
2206
2628
  if (ctor === undefined)
@@ -2208,7 +2630,7 @@ function isPlainObject(o) {
2208
2630
  if (typeof ctor !== "function")
2209
2631
  return true;
2210
2632
  const prot = ctor.prototype;
2211
- if (isObject(prot) === false)
2633
+ if (isObject2(prot) === false)
2212
2634
  return false;
2213
2635
  if (Object.prototype.hasOwnProperty.call(prot, "isPrototypeOf") === false) {
2214
2636
  return false;
@@ -2687,7 +3109,7 @@ function flattenError(error, mapper = (issue3) => issue3.message) {
2687
3109
  }
2688
3110
  return { formErrors, fieldErrors };
2689
3111
  }
2690
- function formatError(error, mapper = (issue3) => issue3.message) {
3112
+ function formatError2(error, mapper = (issue3) => issue3.message) {
2691
3113
  const fieldErrors = { _errors: [] };
2692
3114
  const processError = (error2) => {
2693
3115
  for (const issue3 of error2.issues) {
@@ -4202,15 +4624,15 @@ var $ZodDate = /* @__PURE__ */ $constructor("$ZodDate", (inst, def) => {
4202
4624
  } catch (_err) {}
4203
4625
  }
4204
4626
  const input = payload.value;
4205
- const isDate = input instanceof Date;
4206
- const isValidDate = isDate && !Number.isNaN(input.getTime());
4627
+ const isDate2 = input instanceof Date;
4628
+ const isValidDate = isDate2 && !Number.isNaN(input.getTime());
4207
4629
  if (isValidDate)
4208
4630
  return payload;
4209
4631
  payload.issues.push({
4210
4632
  expected: "date",
4211
4633
  code: "invalid_type",
4212
4634
  input,
4213
- ...isDate ? { received: "Invalid Date" } : {},
4635
+ ...isDate2 ? { received: "Invalid Date" } : {},
4214
4636
  inst
4215
4637
  });
4216
4638
  return payload;
@@ -4349,13 +4771,13 @@ var $ZodObject = /* @__PURE__ */ $constructor("$ZodObject", (inst, def) => {
4349
4771
  }
4350
4772
  return propValues;
4351
4773
  });
4352
- const isObject2 = isObject;
4774
+ const isObject3 = isObject2;
4353
4775
  const catchall = def.catchall;
4354
4776
  let value;
4355
4777
  inst._zod.parse = (payload, ctx) => {
4356
4778
  value ?? (value = _normalized.value);
4357
4779
  const input = payload.value;
4358
- if (!isObject2(input)) {
4780
+ if (!isObject3(input)) {
4359
4781
  payload.issues.push({
4360
4782
  expected: "object",
4361
4783
  code: "invalid_type",
@@ -4453,7 +4875,7 @@ var $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def) =>
4453
4875
  return (payload, ctx) => fn(shape, payload, ctx);
4454
4876
  };
4455
4877
  let fastpass;
4456
- const isObject2 = isObject;
4878
+ const isObject3 = isObject2;
4457
4879
  const jit = !globalConfig.jitless;
4458
4880
  const allowsEval2 = allowsEval;
4459
4881
  const fastEnabled = jit && allowsEval2.value;
@@ -4462,7 +4884,7 @@ var $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def) =>
4462
4884
  inst._zod.parse = (payload, ctx) => {
4463
4885
  value ?? (value = _normalized.value);
4464
4886
  const input = payload.value;
4465
- if (!isObject2(input)) {
4887
+ if (!isObject3(input)) {
4466
4888
  payload.issues.push({
4467
4889
  expected: "object",
4468
4890
  code: "invalid_type",
@@ -4640,7 +5062,7 @@ var $ZodDiscriminatedUnion = /* @__PURE__ */ $constructor("$ZodDiscriminatedUnio
4640
5062
  });
4641
5063
  inst._zod.parse = (payload, ctx) => {
4642
5064
  const input = payload.value;
4643
- if (!isObject(input)) {
5065
+ if (!isObject2(input)) {
4644
5066
  payload.issues.push({
4645
5067
  code: "invalid_type",
4646
5068
  expected: "object",
@@ -4761,7 +5183,7 @@ function handleIntersectionResults(result, left, right) {
4761
5183
  return result;
4762
5184
  const merged = mergeValues(left.value, right.value);
4763
5185
  if (!merged.valid) {
4764
- throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(merged.mergeErrorPath)}`);
5186
+ throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);
4765
5187
  }
4766
5188
  result.value = merged.data;
4767
5189
  return result;
@@ -11679,10 +12101,10 @@ function _property(property, schema, params) {
11679
12101
  ...normalizeParams(params)
11680
12102
  });
11681
12103
  }
11682
- function _mime(types, params) {
12104
+ function _mime(types2, params) {
11683
12105
  return new $ZodCheckMimeType({
11684
12106
  check: "mime_type",
11685
- mime: types,
12107
+ mime: types2,
11686
12108
  ...normalizeParams(params)
11687
12109
  });
11688
12110
  }
@@ -12005,13 +12427,13 @@ function _stringbool(Classes, _params) {
12005
12427
  });
12006
12428
  return codec;
12007
12429
  }
12008
- function _stringFormat(Class2, format, fnOrRegex, _params = {}) {
12430
+ function _stringFormat(Class2, format2, fnOrRegex, _params = {}) {
12009
12431
  const params = normalizeParams(_params);
12010
12432
  const def = {
12011
12433
  ...normalizeParams(_params),
12012
12434
  check: "string_format",
12013
12435
  type: "string",
12014
- format,
12436
+ format: format2,
12015
12437
  fn: typeof fnOrRegex === "function" ? fnOrRegex : (val) => fnOrRegex.test(val),
12016
12438
  ...params
12017
12439
  };
@@ -12149,9 +12571,7 @@ function extractDefs(ctx, schema) {
12149
12571
  for (const entry of ctx.seen.entries()) {
12150
12572
  const seen = entry[1];
12151
12573
  if (seen.cycle) {
12152
- throw new Error(`Cycle detected: #/${seen.cycle?.join("/")}/<root>
12153
-
12154
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`);
12574
+ throw new Error("Cycle detected: " + `#/${seen.cycle?.join("/")}/<root>` + '\n\nSet the `cycles` parameter to `"ref"` to resolve cyclical schemas with defs.');
12155
12575
  }
12156
12576
  }
12157
12577
  }
@@ -12377,16 +12797,16 @@ var formatMap = {
12377
12797
  var stringProcessor = (schema, ctx, _json, _params) => {
12378
12798
  const json = _json;
12379
12799
  json.type = "string";
12380
- const { minimum, maximum, format, patterns: patterns2, contentEncoding } = schema._zod.bag;
12800
+ const { minimum, maximum, format: format2, patterns: patterns2, contentEncoding } = schema._zod.bag;
12381
12801
  if (typeof minimum === "number")
12382
12802
  json.minLength = minimum;
12383
12803
  if (typeof maximum === "number")
12384
12804
  json.maxLength = maximum;
12385
- if (format) {
12386
- json.format = formatMap[format] ?? format;
12805
+ if (format2) {
12806
+ json.format = formatMap[format2] ?? format2;
12387
12807
  if (json.format === "")
12388
12808
  delete json.format;
12389
- if (format === "time") {
12809
+ if (format2 === "time") {
12390
12810
  delete json.format;
12391
12811
  }
12392
12812
  }
@@ -12408,8 +12828,8 @@ var stringProcessor = (schema, ctx, _json, _params) => {
12408
12828
  };
12409
12829
  var numberProcessor = (schema, ctx, _json, _params) => {
12410
12830
  const json = _json;
12411
- const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag;
12412
- if (typeof format === "string" && format.includes("int"))
12831
+ const { minimum, maximum, format: format2, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag;
12832
+ if (typeof format2 === "string" && format2.includes("int"))
12413
12833
  json.type = "integer";
12414
12834
  else
12415
12835
  json.type = "number";
@@ -13214,7 +13634,7 @@ var initializer2 = (inst, issues) => {
13214
13634
  inst.name = "ZodError";
13215
13635
  Object.defineProperties(inst, {
13216
13636
  format: {
13217
- value: (mapper) => formatError(inst, mapper)
13637
+ value: (mapper) => formatError2(inst, mapper)
13218
13638
  },
13219
13639
  flatten: {
13220
13640
  value: (mapper) => flattenError(inst, mapper)
@@ -13267,7 +13687,7 @@ var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
13267
13687
  inst.type = def.type;
13268
13688
  Object.defineProperty(inst, "_def", { value: def });
13269
13689
  inst.check = (...checks2) => {
13270
- return inst.clone(exports_util.mergeDefs(def, {
13690
+ return inst.clone(exports_util2.mergeDefs(def, {
13271
13691
  checks: [
13272
13692
  ...def.checks ?? [],
13273
13693
  ...checks2.map((ch) => typeof ch === "function" ? { _zod: { check: ch, def: { check: "custom" }, onattach: [] } } : ch)
@@ -13440,7 +13860,7 @@ function httpUrl(params) {
13440
13860
  return _url(ZodURL, {
13441
13861
  protocol: /^https?$/,
13442
13862
  hostname: exports_regexes.domain,
13443
- ...exports_util.normalizeParams(params)
13863
+ ...exports_util2.normalizeParams(params)
13444
13864
  });
13445
13865
  }
13446
13866
  var ZodEmoji = /* @__PURE__ */ $constructor("ZodEmoji", (inst, def) => {
@@ -13559,8 +13979,8 @@ var ZodCustomStringFormat = /* @__PURE__ */ $constructor("ZodCustomStringFormat"
13559
13979
  $ZodCustomStringFormat.init(inst, def);
13560
13980
  ZodStringFormat.init(inst, def);
13561
13981
  });
13562
- function stringFormat(format, fnOrRegex, _params = {}) {
13563
- return _stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);
13982
+ function stringFormat(format2, fnOrRegex, _params = {}) {
13983
+ return _stringFormat(ZodCustomStringFormat, format2, fnOrRegex, _params);
13564
13984
  }
13565
13985
  function hostname2(_params) {
13566
13986
  return _stringFormat(ZodCustomStringFormat, "hostname", exports_regexes.hostname, _params);
@@ -13570,11 +13990,11 @@ function hex2(_params) {
13570
13990
  }
13571
13991
  function hash(alg, params) {
13572
13992
  const enc = params?.enc ?? "hex";
13573
- const format = `${alg}_${enc}`;
13574
- const regex = exports_regexes[format];
13993
+ const format2 = `${alg}_${enc}`;
13994
+ const regex = exports_regexes[format2];
13575
13995
  if (!regex)
13576
- throw new Error(`Unrecognized hash format: ${format}`);
13577
- return _stringFormat(ZodCustomStringFormat, format, regex, params);
13996
+ throw new Error(`Unrecognized hash format: ${format2}`);
13997
+ return _stringFormat(ZodCustomStringFormat, format2, regex, params);
13578
13998
  }
13579
13999
  var ZodNumber = /* @__PURE__ */ $constructor("ZodNumber", (inst, def) => {
13580
14000
  $ZodNumber.init(inst, def);
@@ -13758,7 +14178,7 @@ var ZodObject = /* @__PURE__ */ $constructor("ZodObject", (inst, def) => {
13758
14178
  $ZodObjectJIT.init(inst, def);
13759
14179
  ZodType.init(inst, def);
13760
14180
  inst._zod.processJSONSchema = (ctx, json, params) => objectProcessor(inst, ctx, json, params);
13761
- exports_util.defineLazy(inst, "shape", () => {
14181
+ exports_util2.defineLazy(inst, "shape", () => {
13762
14182
  return def.shape;
13763
14183
  });
13764
14184
  inst.keyof = () => _enum2(Object.keys(inst._zod.def.shape));
@@ -13768,22 +14188,22 @@ var ZodObject = /* @__PURE__ */ $constructor("ZodObject", (inst, def) => {
13768
14188
  inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });
13769
14189
  inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });
13770
14190
  inst.extend = (incoming) => {
13771
- return exports_util.extend(inst, incoming);
14191
+ return exports_util2.extend(inst, incoming);
13772
14192
  };
13773
14193
  inst.safeExtend = (incoming) => {
13774
- return exports_util.safeExtend(inst, incoming);
14194
+ return exports_util2.safeExtend(inst, incoming);
13775
14195
  };
13776
- inst.merge = (other) => exports_util.merge(inst, other);
13777
- inst.pick = (mask) => exports_util.pick(inst, mask);
13778
- inst.omit = (mask) => exports_util.omit(inst, mask);
13779
- inst.partial = (...args) => exports_util.partial(ZodOptional, inst, args[0]);
13780
- inst.required = (...args) => exports_util.required(ZodNonOptional, inst, args[0]);
14196
+ inst.merge = (other) => exports_util2.merge(inst, other);
14197
+ inst.pick = (mask) => exports_util2.pick(inst, mask);
14198
+ inst.omit = (mask) => exports_util2.omit(inst, mask);
14199
+ inst.partial = (...args) => exports_util2.partial(ZodOptional, inst, args[0]);
14200
+ inst.required = (...args) => exports_util2.required(ZodNonOptional, inst, args[0]);
13781
14201
  });
13782
14202
  function object(shape, params) {
13783
14203
  const def = {
13784
14204
  type: "object",
13785
14205
  shape: shape ?? {},
13786
- ...exports_util.normalizeParams(params)
14206
+ ...exports_util2.normalizeParams(params)
13787
14207
  };
13788
14208
  return new ZodObject(def);
13789
14209
  }
@@ -13792,7 +14212,7 @@ function strictObject(shape, params) {
13792
14212
  type: "object",
13793
14213
  shape,
13794
14214
  catchall: never(),
13795
- ...exports_util.normalizeParams(params)
14215
+ ...exports_util2.normalizeParams(params)
13796
14216
  });
13797
14217
  }
13798
14218
  function looseObject(shape, params) {
@@ -13800,7 +14220,7 @@ function looseObject(shape, params) {
13800
14220
  type: "object",
13801
14221
  shape,
13802
14222
  catchall: unknown(),
13803
- ...exports_util.normalizeParams(params)
14223
+ ...exports_util2.normalizeParams(params)
13804
14224
  });
13805
14225
  }
13806
14226
  var ZodUnion = /* @__PURE__ */ $constructor("ZodUnion", (inst, def) => {
@@ -13813,7 +14233,7 @@ function union(options, params) {
13813
14233
  return new ZodUnion({
13814
14234
  type: "union",
13815
14235
  options,
13816
- ...exports_util.normalizeParams(params)
14236
+ ...exports_util2.normalizeParams(params)
13817
14237
  });
13818
14238
  }
13819
14239
  var ZodXor = /* @__PURE__ */ $constructor("ZodXor", (inst, def) => {
@@ -13827,7 +14247,7 @@ function xor(options, params) {
13827
14247
  type: "union",
13828
14248
  options,
13829
14249
  inclusive: false,
13830
- ...exports_util.normalizeParams(params)
14250
+ ...exports_util2.normalizeParams(params)
13831
14251
  });
13832
14252
  }
13833
14253
  var ZodDiscriminatedUnion = /* @__PURE__ */ $constructor("ZodDiscriminatedUnion", (inst, def) => {
@@ -13839,7 +14259,7 @@ function discriminatedUnion(discriminator, options, params) {
13839
14259
  type: "union",
13840
14260
  options,
13841
14261
  discriminator,
13842
- ...exports_util.normalizeParams(params)
14262
+ ...exports_util2.normalizeParams(params)
13843
14263
  });
13844
14264
  }
13845
14265
  var ZodIntersection = /* @__PURE__ */ $constructor("ZodIntersection", (inst, def) => {
@@ -13871,7 +14291,7 @@ function tuple(items, _paramsOrRest, _params) {
13871
14291
  type: "tuple",
13872
14292
  items,
13873
14293
  rest,
13874
- ...exports_util.normalizeParams(params)
14294
+ ...exports_util2.normalizeParams(params)
13875
14295
  });
13876
14296
  }
13877
14297
  var ZodRecord = /* @__PURE__ */ $constructor("ZodRecord", (inst, def) => {
@@ -13886,7 +14306,7 @@ function record(keyType, valueType, params) {
13886
14306
  type: "record",
13887
14307
  keyType,
13888
14308
  valueType,
13889
- ...exports_util.normalizeParams(params)
14309
+ ...exports_util2.normalizeParams(params)
13890
14310
  });
13891
14311
  }
13892
14312
  function partialRecord(keyType, valueType, params) {
@@ -13896,7 +14316,7 @@ function partialRecord(keyType, valueType, params) {
13896
14316
  type: "record",
13897
14317
  keyType: k,
13898
14318
  valueType,
13899
- ...exports_util.normalizeParams(params)
14319
+ ...exports_util2.normalizeParams(params)
13900
14320
  });
13901
14321
  }
13902
14322
  function looseRecord(keyType, valueType, params) {
@@ -13905,7 +14325,7 @@ function looseRecord(keyType, valueType, params) {
13905
14325
  keyType,
13906
14326
  valueType,
13907
14327
  mode: "loose",
13908
- ...exports_util.normalizeParams(params)
14328
+ ...exports_util2.normalizeParams(params)
13909
14329
  });
13910
14330
  }
13911
14331
  var ZodMap = /* @__PURE__ */ $constructor("ZodMap", (inst, def) => {
@@ -13924,7 +14344,7 @@ function map(keyType, valueType, params) {
13924
14344
  type: "map",
13925
14345
  keyType,
13926
14346
  valueType,
13927
- ...exports_util.normalizeParams(params)
14347
+ ...exports_util2.normalizeParams(params)
13928
14348
  });
13929
14349
  }
13930
14350
  var ZodSet = /* @__PURE__ */ $constructor("ZodSet", (inst, def) => {
@@ -13940,7 +14360,7 @@ function set(valueType, params) {
13940
14360
  return new ZodSet({
13941
14361
  type: "set",
13942
14362
  valueType,
13943
- ...exports_util.normalizeParams(params)
14363
+ ...exports_util2.normalizeParams(params)
13944
14364
  });
13945
14365
  }
13946
14366
  var ZodEnum = /* @__PURE__ */ $constructor("ZodEnum", (inst, def) => {
@@ -13961,7 +14381,7 @@ var ZodEnum = /* @__PURE__ */ $constructor("ZodEnum", (inst, def) => {
13961
14381
  return new ZodEnum({
13962
14382
  ...def,
13963
14383
  checks: [],
13964
- ...exports_util.normalizeParams(params),
14384
+ ...exports_util2.normalizeParams(params),
13965
14385
  entries: newEntries
13966
14386
  });
13967
14387
  };
@@ -13976,7 +14396,7 @@ var ZodEnum = /* @__PURE__ */ $constructor("ZodEnum", (inst, def) => {
13976
14396
  return new ZodEnum({
13977
14397
  ...def,
13978
14398
  checks: [],
13979
- ...exports_util.normalizeParams(params),
14399
+ ...exports_util2.normalizeParams(params),
13980
14400
  entries: newEntries
13981
14401
  });
13982
14402
  };
@@ -13986,14 +14406,14 @@ function _enum2(values, params) {
13986
14406
  return new ZodEnum({
13987
14407
  type: "enum",
13988
14408
  entries,
13989
- ...exports_util.normalizeParams(params)
14409
+ ...exports_util2.normalizeParams(params)
13990
14410
  });
13991
14411
  }
13992
14412
  function nativeEnum(entries, params) {
13993
14413
  return new ZodEnum({
13994
14414
  type: "enum",
13995
14415
  entries,
13996
- ...exports_util.normalizeParams(params)
14416
+ ...exports_util2.normalizeParams(params)
13997
14417
  });
13998
14418
  }
13999
14419
  var ZodLiteral = /* @__PURE__ */ $constructor("ZodLiteral", (inst, def) => {
@@ -14014,7 +14434,7 @@ function literal(value, params) {
14014
14434
  return new ZodLiteral({
14015
14435
  type: "literal",
14016
14436
  values: Array.isArray(value) ? value : [value],
14017
- ...exports_util.normalizeParams(params)
14437
+ ...exports_util2.normalizeParams(params)
14018
14438
  });
14019
14439
  }
14020
14440
  var ZodFile = /* @__PURE__ */ $constructor("ZodFile", (inst, def) => {
@@ -14023,7 +14443,7 @@ var ZodFile = /* @__PURE__ */ $constructor("ZodFile", (inst, def) => {
14023
14443
  inst._zod.processJSONSchema = (ctx, json, params) => fileProcessor(inst, ctx, json, params);
14024
14444
  inst.min = (size, params) => inst.check(_minSize(size, params));
14025
14445
  inst.max = (size, params) => inst.check(_maxSize(size, params));
14026
- inst.mime = (types, params) => inst.check(_mime(Array.isArray(types) ? types : [types], params));
14446
+ inst.mime = (types2, params) => inst.check(_mime(Array.isArray(types2) ? types2 : [types2], params));
14027
14447
  });
14028
14448
  function file(params) {
14029
14449
  return _file(ZodFile, params);
@@ -14038,7 +14458,7 @@ var ZodTransform = /* @__PURE__ */ $constructor("ZodTransform", (inst, def) => {
14038
14458
  }
14039
14459
  payload.addIssue = (issue3) => {
14040
14460
  if (typeof issue3 === "string") {
14041
- payload.issues.push(exports_util.issue(issue3, payload.value, def));
14461
+ payload.issues.push(exports_util2.issue(issue3, payload.value, def));
14042
14462
  } else {
14043
14463
  const _issue = issue3;
14044
14464
  if (_issue.fatal)
@@ -14046,7 +14466,7 @@ var ZodTransform = /* @__PURE__ */ $constructor("ZodTransform", (inst, def) => {
14046
14466
  _issue.code ?? (_issue.code = "custom");
14047
14467
  _issue.input ?? (_issue.input = payload.value);
14048
14468
  _issue.inst ?? (_issue.inst = inst);
14049
- payload.issues.push(exports_util.issue(_issue));
14469
+ payload.issues.push(exports_util2.issue(_issue));
14050
14470
  }
14051
14471
  };
14052
14472
  const output = def.transform(payload.value, payload);
@@ -14117,7 +14537,7 @@ function _default2(innerType, defaultValue) {
14117
14537
  type: "default",
14118
14538
  innerType,
14119
14539
  get defaultValue() {
14120
- return typeof defaultValue === "function" ? defaultValue() : exports_util.shallowClone(defaultValue);
14540
+ return typeof defaultValue === "function" ? defaultValue() : exports_util2.shallowClone(defaultValue);
14121
14541
  }
14122
14542
  });
14123
14543
  }
@@ -14132,7 +14552,7 @@ function prefault(innerType, defaultValue) {
14132
14552
  type: "prefault",
14133
14553
  innerType,
14134
14554
  get defaultValue() {
14135
- return typeof defaultValue === "function" ? defaultValue() : exports_util.shallowClone(defaultValue);
14555
+ return typeof defaultValue === "function" ? defaultValue() : exports_util2.shallowClone(defaultValue);
14136
14556
  }
14137
14557
  });
14138
14558
  }
@@ -14146,7 +14566,7 @@ function nonoptional(innerType, params) {
14146
14566
  return new ZodNonOptional({
14147
14567
  type: "nonoptional",
14148
14568
  innerType,
14149
- ...exports_util.normalizeParams(params)
14569
+ ...exports_util2.normalizeParams(params)
14150
14570
  });
14151
14571
  }
14152
14572
  var ZodSuccess = /* @__PURE__ */ $constructor("ZodSuccess", (inst, def) => {
@@ -14231,7 +14651,7 @@ function templateLiteral(parts, params) {
14231
14651
  return new ZodTemplateLiteral({
14232
14652
  type: "template_literal",
14233
14653
  parts,
14234
- ...exports_util.normalizeParams(params)
14654
+ ...exports_util2.normalizeParams(params)
14235
14655
  });
14236
14656
  }
14237
14657
  var ZodLazy = /* @__PURE__ */ $constructor("ZodLazy", (inst, def) => {
@@ -14299,7 +14719,7 @@ function _instanceof(cls, params = {}) {
14299
14719
  check: "custom",
14300
14720
  fn: (data) => data instanceof cls,
14301
14721
  abort: true,
14302
- ...exports_util.normalizeParams(params)
14722
+ ...exports_util2.normalizeParams(params)
14303
14723
  });
14304
14724
  inst._zod.bag.Class = cls;
14305
14725
  inst._zod.check = (payload) => {
@@ -14531,52 +14951,52 @@ function convertBaseSchema(schema, ctx) {
14531
14951
  case "string": {
14532
14952
  let stringSchema = z.string();
14533
14953
  if (schema.format) {
14534
- const format = schema.format;
14535
- if (format === "email") {
14954
+ const format2 = schema.format;
14955
+ if (format2 === "email") {
14536
14956
  stringSchema = stringSchema.check(z.email());
14537
- } else if (format === "uri" || format === "uri-reference") {
14957
+ } else if (format2 === "uri" || format2 === "uri-reference") {
14538
14958
  stringSchema = stringSchema.check(z.url());
14539
- } else if (format === "uuid" || format === "guid") {
14959
+ } else if (format2 === "uuid" || format2 === "guid") {
14540
14960
  stringSchema = stringSchema.check(z.uuid());
14541
- } else if (format === "date-time") {
14961
+ } else if (format2 === "date-time") {
14542
14962
  stringSchema = stringSchema.check(z.iso.datetime());
14543
- } else if (format === "date") {
14963
+ } else if (format2 === "date") {
14544
14964
  stringSchema = stringSchema.check(z.iso.date());
14545
- } else if (format === "time") {
14965
+ } else if (format2 === "time") {
14546
14966
  stringSchema = stringSchema.check(z.iso.time());
14547
- } else if (format === "duration") {
14967
+ } else if (format2 === "duration") {
14548
14968
  stringSchema = stringSchema.check(z.iso.duration());
14549
- } else if (format === "ipv4") {
14969
+ } else if (format2 === "ipv4") {
14550
14970
  stringSchema = stringSchema.check(z.ipv4());
14551
- } else if (format === "ipv6") {
14971
+ } else if (format2 === "ipv6") {
14552
14972
  stringSchema = stringSchema.check(z.ipv6());
14553
- } else if (format === "mac") {
14973
+ } else if (format2 === "mac") {
14554
14974
  stringSchema = stringSchema.check(z.mac());
14555
- } else if (format === "cidr") {
14975
+ } else if (format2 === "cidr") {
14556
14976
  stringSchema = stringSchema.check(z.cidrv4());
14557
- } else if (format === "cidr-v6") {
14977
+ } else if (format2 === "cidr-v6") {
14558
14978
  stringSchema = stringSchema.check(z.cidrv6());
14559
- } else if (format === "base64") {
14979
+ } else if (format2 === "base64") {
14560
14980
  stringSchema = stringSchema.check(z.base64());
14561
- } else if (format === "base64url") {
14981
+ } else if (format2 === "base64url") {
14562
14982
  stringSchema = stringSchema.check(z.base64url());
14563
- } else if (format === "e164") {
14983
+ } else if (format2 === "e164") {
14564
14984
  stringSchema = stringSchema.check(z.e164());
14565
- } else if (format === "jwt") {
14985
+ } else if (format2 === "jwt") {
14566
14986
  stringSchema = stringSchema.check(z.jwt());
14567
- } else if (format === "emoji") {
14987
+ } else if (format2 === "emoji") {
14568
14988
  stringSchema = stringSchema.check(z.emoji());
14569
- } else if (format === "nanoid") {
14989
+ } else if (format2 === "nanoid") {
14570
14990
  stringSchema = stringSchema.check(z.nanoid());
14571
- } else if (format === "cuid") {
14991
+ } else if (format2 === "cuid") {
14572
14992
  stringSchema = stringSchema.check(z.cuid());
14573
- } else if (format === "cuid2") {
14993
+ } else if (format2 === "cuid2") {
14574
14994
  stringSchema = stringSchema.check(z.cuid2());
14575
- } else if (format === "ulid") {
14995
+ } else if (format2 === "ulid") {
14576
14996
  stringSchema = stringSchema.check(z.ulid());
14577
- } else if (format === "xid") {
14997
+ } else if (format2 === "xid") {
14578
14998
  stringSchema = stringSchema.check(z.xid());
14579
- } else if (format === "ksuid") {
14999
+ } else if (format2 === "ksuid") {
14580
15000
  stringSchema = stringSchema.check(z.ksuid());
14581
15001
  }
14582
15002
  }
@@ -15014,6 +15434,8 @@ var ActivityCompletedInput = exports_external.object({
15014
15434
  metricsId: exports_external.string().optional(),
15015
15435
  id: exports_external.string().optional(),
15016
15436
  extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
15437
+ edApp: exports_external.union([exports_external.string(), exports_external.record(exports_external.string(), exports_external.unknown())]).optional(),
15438
+ session: exports_external.union([exports_external.string(), exports_external.record(exports_external.string(), exports_external.unknown())]).optional(),
15017
15439
  attempt: exports_external.number().int().min(1).optional(),
15018
15440
  generatedExtensions: exports_external.object({
15019
15441
  pctCompleteApp: exports_external.number().optional()
@@ -15026,7 +15448,9 @@ var TimeSpentInput = exports_external.object({
15026
15448
  eventTime: IsoDateTimeString.optional(),
15027
15449
  metricsId: exports_external.string().optional(),
15028
15450
  id: exports_external.string().optional(),
15029
- extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15451
+ extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
15452
+ edApp: exports_external.union([exports_external.string(), exports_external.record(exports_external.string(), exports_external.unknown())]).optional(),
15453
+ session: exports_external.union([exports_external.string(), exports_external.record(exports_external.string(), exports_external.unknown())]).optional()
15030
15454
  }).strict();
15031
15455
  var TimebackEvent = exports_external.union([TimebackActivityEvent, TimebackTimeSpentEvent]);
15032
15456
  var CaliperEnvelope = exports_external.object({
@@ -15099,6 +15523,178 @@ var CaliperListEventsParams = exports_external.object({
15099
15523
  actorId: exports_external.string().min(1).optional(),
15100
15524
  actorEmail: exports_external.email().optional()
15101
15525
  }).strict();
15526
+ var NonEmptyString = exports_external.string().trim().min(1);
15527
+ var InputNodeURISchema = exports_external.object({
15528
+ title: NonEmptyString,
15529
+ identifier: NonEmptyString,
15530
+ uri: NonEmptyString
15531
+ });
15532
+ var CFDocumentInputSchema = exports_external.object({
15533
+ identifier: NonEmptyString,
15534
+ uri: NonEmptyString,
15535
+ lastChangeDateTime: NonEmptyString,
15536
+ title: NonEmptyString,
15537
+ creator: NonEmptyString,
15538
+ officialSourceURL: exports_external.string().optional(),
15539
+ publisher: exports_external.string().optional(),
15540
+ description: exports_external.string().optional(),
15541
+ language: exports_external.string().optional(),
15542
+ version: exports_external.string().optional(),
15543
+ caseVersion: exports_external.string().optional(),
15544
+ adoptionStatus: exports_external.string().optional(),
15545
+ statusStartDate: exports_external.string().optional(),
15546
+ statusEndDate: exports_external.string().optional(),
15547
+ licenseUri: exports_external.string().optional(),
15548
+ notes: exports_external.string().optional(),
15549
+ subject: exports_external.array(exports_external.string()).optional(),
15550
+ extensions: exports_external.unknown().optional()
15551
+ });
15552
+ var CFItemInputSchema = exports_external.object({
15553
+ identifier: NonEmptyString,
15554
+ uri: NonEmptyString,
15555
+ lastChangeDateTime: NonEmptyString,
15556
+ fullStatement: NonEmptyString,
15557
+ alternativeLabel: exports_external.string().optional(),
15558
+ CFItemType: exports_external.string().optional(),
15559
+ cfItemType: exports_external.string().optional(),
15560
+ humanCodingScheme: exports_external.string().optional(),
15561
+ listEnumeration: exports_external.string().optional(),
15562
+ abbreviatedStatement: exports_external.string().optional(),
15563
+ conceptKeywords: exports_external.array(exports_external.string()).optional(),
15564
+ notes: exports_external.string().optional(),
15565
+ subject: exports_external.array(exports_external.string()).optional(),
15566
+ language: exports_external.string().optional(),
15567
+ educationLevel: exports_external.array(exports_external.string()).optional(),
15568
+ CFItemTypeURI: exports_external.unknown().optional(),
15569
+ licenseURI: exports_external.unknown().optional(),
15570
+ statusStartDate: exports_external.string().optional(),
15571
+ statusEndDate: exports_external.string().optional(),
15572
+ extensions: exports_external.unknown().optional()
15573
+ });
15574
+ var CFAssociationInputSchema = exports_external.object({
15575
+ identifier: NonEmptyString,
15576
+ uri: NonEmptyString,
15577
+ lastChangeDateTime: NonEmptyString,
15578
+ associationType: NonEmptyString,
15579
+ originNodeURI: InputNodeURISchema,
15580
+ destinationNodeURI: InputNodeURISchema,
15581
+ sequenceNumber: exports_external.number().optional(),
15582
+ extensions: exports_external.unknown().optional()
15583
+ });
15584
+ var CFDefinitionsSchema = exports_external.object({
15585
+ CFItemTypes: exports_external.array(exports_external.unknown()).optional(),
15586
+ CFSubjects: exports_external.array(exports_external.unknown()).optional(),
15587
+ CFConcepts: exports_external.array(exports_external.unknown()).optional(),
15588
+ CFLicenses: exports_external.array(exports_external.unknown()).optional(),
15589
+ CFAssociationGroupings: exports_external.array(exports_external.unknown()).optional(),
15590
+ extensions: exports_external.unknown().optional()
15591
+ });
15592
+ var CasePackageInput = exports_external.object({
15593
+ CFDocument: CFDocumentInputSchema,
15594
+ CFItems: exports_external.array(CFItemInputSchema),
15595
+ CFAssociations: exports_external.array(CFAssociationInputSchema),
15596
+ CFDefinitions: CFDefinitionsSchema.optional(),
15597
+ extensions: exports_external.unknown().optional()
15598
+ });
15599
+ var NonEmptyString2 = exports_external.string().trim().min(1);
15600
+ var NonEmptyStringArray = exports_external.array(exports_external.string()).min(1);
15601
+ var ClrImageSchema = exports_external.object({
15602
+ id: NonEmptyString2,
15603
+ type: exports_external.literal("Image"),
15604
+ caption: exports_external.string().optional()
15605
+ });
15606
+ var ClrProfileSchema = exports_external.object({
15607
+ id: NonEmptyString2,
15608
+ type: NonEmptyStringArray,
15609
+ name: exports_external.string().optional(),
15610
+ url: exports_external.string().optional(),
15611
+ phone: exports_external.string().optional(),
15612
+ description: exports_external.string().optional(),
15613
+ image: ClrImageSchema.optional(),
15614
+ email: exports_external.string().optional()
15615
+ });
15616
+ var ClrProofSchema = exports_external.object({
15617
+ type: NonEmptyString2,
15618
+ proofPurpose: NonEmptyString2,
15619
+ verificationMethod: NonEmptyString2,
15620
+ created: NonEmptyString2,
15621
+ proofValue: NonEmptyString2,
15622
+ cryptosuite: exports_external.string().optional()
15623
+ });
15624
+ var ClrCredentialSchemaSchema = exports_external.object({
15625
+ id: NonEmptyString2,
15626
+ type: exports_external.literal("1EdTechJsonSchemaValidator2019")
15627
+ });
15628
+ var AchievementCriteriaSchema = exports_external.object({
15629
+ id: exports_external.string().optional(),
15630
+ narrative: exports_external.string().optional()
15631
+ });
15632
+ var AchievementSchema = exports_external.object({
15633
+ id: NonEmptyString2,
15634
+ type: NonEmptyStringArray,
15635
+ name: NonEmptyString2,
15636
+ description: NonEmptyString2,
15637
+ criteria: AchievementCriteriaSchema,
15638
+ image: ClrImageSchema.optional(),
15639
+ achievementType: exports_external.string().optional(),
15640
+ creator: ClrProfileSchema.optional()
15641
+ });
15642
+ var IdentityObjectSchema = exports_external.object({
15643
+ type: exports_external.literal("IdentityObject"),
15644
+ identityHash: NonEmptyString2,
15645
+ identityType: NonEmptyString2,
15646
+ hashed: exports_external.boolean(),
15647
+ salt: exports_external.string().optional()
15648
+ });
15649
+ var AssociationTypeSchema = exports_external.enum([
15650
+ "exactMatchOf",
15651
+ "isChildOf",
15652
+ "isParentOf",
15653
+ "isPartOf",
15654
+ "isPeerOf",
15655
+ "isRelatedTo",
15656
+ "precedes",
15657
+ "replacedBy"
15658
+ ]);
15659
+ var AssociationSchema = exports_external.object({
15660
+ type: exports_external.literal("Association"),
15661
+ associationType: AssociationTypeSchema,
15662
+ sourceId: NonEmptyString2,
15663
+ targetId: NonEmptyString2
15664
+ });
15665
+ var VerifiableCredentialSchema = exports_external.object({
15666
+ "@context": NonEmptyStringArray,
15667
+ id: NonEmptyString2,
15668
+ type: NonEmptyStringArray,
15669
+ issuer: ClrProfileSchema,
15670
+ validFrom: NonEmptyString2,
15671
+ validUntil: exports_external.string().optional(),
15672
+ credentialSubject: exports_external.object({
15673
+ id: exports_external.string().optional()
15674
+ }),
15675
+ proof: exports_external.array(ClrProofSchema).optional()
15676
+ });
15677
+ var ClrCredentialSubjectSchema = exports_external.object({
15678
+ id: exports_external.string().optional(),
15679
+ type: NonEmptyStringArray,
15680
+ identifier: exports_external.array(IdentityObjectSchema).optional(),
15681
+ achievement: exports_external.array(AchievementSchema).optional(),
15682
+ verifiableCredential: exports_external.array(VerifiableCredentialSchema).min(1),
15683
+ association: exports_external.array(AssociationSchema).optional()
15684
+ });
15685
+ var ClrCredentialInput = exports_external.object({
15686
+ "@context": NonEmptyStringArray,
15687
+ id: NonEmptyString2,
15688
+ type: NonEmptyStringArray,
15689
+ issuer: ClrProfileSchema,
15690
+ name: NonEmptyString2,
15691
+ description: exports_external.string().optional(),
15692
+ validFrom: NonEmptyString2,
15693
+ validUntil: exports_external.string().optional(),
15694
+ credentialSubject: ClrCredentialSubjectSchema,
15695
+ proof: exports_external.array(ClrProofSchema).optional(),
15696
+ credentialSchema: exports_external.array(ClrCredentialSchemaSchema).optional()
15697
+ });
15102
15698
  var CourseIds = exports_external.object({
15103
15699
  staging: exports_external.string().meta({ description: "Course ID in staging environment" }).optional(),
15104
15700
  production: exports_external.string().meta({ description: "Course ID in production environment" }).optional()
@@ -15173,7 +15769,12 @@ var TimebackConfig = exports_external.object({
15173
15769
  }).optional(),
15174
15770
  courses: exports_external.array(CourseConfig).min(1, "At least one course is required").meta({ description: "Courses available in this app" }),
15175
15771
  sensor: exports_external.url().meta({ description: "Default Caliper sensor endpoint URL for all courses" }).optional(),
15176
- launchUrl: exports_external.url().meta({ description: "Default LTI launch URL for all courses" }).optional()
15772
+ launchUrl: exports_external.url().meta({ description: "Default LTI launch URL for all courses" }).optional(),
15773
+ studio: exports_external.object({
15774
+ telemetry: exports_external.boolean().meta({
15775
+ description: "Enable anonymous usage telemetry for Studio (default: true)"
15776
+ }).optional().default(true)
15777
+ }).meta({ description: "Studio-specific configuration" }).optional()
15177
15778
  }).meta({
15178
15779
  id: "TimebackConfig",
15179
15780
  title: "Timeback Config",
@@ -15214,7 +15815,7 @@ var TimebackConfig = exports_external.object({
15214
15815
  message: "Each course must have an effective sensor. Either set `sensor` explicitly (top-level or per-course), or provide a `launchUrl` so sensor can be derived from its origin.",
15215
15816
  path: ["courses"]
15216
15817
  });
15217
- var EdubridgeDateString = IsoDateTimeString;
15818
+ var EdubridgeDateString = exports_external.union([IsoDateTimeString, IsoDateString]);
15218
15819
  var EduBridgeEnrollment = exports_external.object({
15219
15820
  id: exports_external.string(),
15220
15821
  role: exports_external.string(),
@@ -15258,10 +15859,10 @@ var EduBridgeEnrollmentAnalyticsResponse = exports_external.object({
15258
15859
  facts: EduBridgeAnalyticsFacts,
15259
15860
  factsByApp: exports_external.unknown()
15260
15861
  });
15261
- var NonEmptyString = exports_external.string().trim().min(1);
15862
+ var NonEmptyString3 = exports_external.string().trim().min(1);
15262
15863
  var EmailOrStudentId = exports_external.object({
15263
15864
  email: exports_external.email().optional(),
15264
- studentId: NonEmptyString.optional()
15865
+ studentId: NonEmptyString3.optional()
15265
15866
  }).superRefine((value, ctx) => {
15266
15867
  if (!value.email && !value.studentId) {
15267
15868
  ctx.addIssue({
@@ -15277,17 +15878,17 @@ var EmailOrStudentId = exports_external.object({
15277
15878
  }
15278
15879
  });
15279
15880
  var SubjectTrackInput = exports_external.object({
15280
- subject: NonEmptyString,
15281
- grade: NonEmptyString,
15282
- courseId: NonEmptyString,
15283
- orgSourcedId: NonEmptyString.optional()
15881
+ subject: NonEmptyString3,
15882
+ grade: NonEmptyString3,
15883
+ courseId: NonEmptyString3,
15884
+ orgSourcedId: NonEmptyString3.optional()
15284
15885
  });
15285
15886
  var SubjectTrackUpsertInput = SubjectTrackInput;
15286
15887
  var EdubridgeListEnrollmentsParams = exports_external.object({
15287
- userId: NonEmptyString
15888
+ userId: NonEmptyString3
15288
15889
  });
15289
15890
  var EdubridgeEnrollOptions = exports_external.object({
15290
- sourcedId: NonEmptyString.optional(),
15891
+ sourcedId: NonEmptyString3.optional(),
15291
15892
  role: EnrollmentRole.optional(),
15292
15893
  beginDate: EdubridgeDateString.optional(),
15293
15894
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
@@ -15301,7 +15902,7 @@ var EdubridgeUsersListParams = exports_external.object({
15301
15902
  filter: exports_external.string().optional(),
15302
15903
  search: exports_external.string().optional(),
15303
15904
  roles: exports_external.array(OneRosterUserRole).min(1),
15304
- orgSourcedIds: exports_external.array(NonEmptyString).optional()
15905
+ orgSourcedIds: exports_external.array(NonEmptyString3).optional()
15305
15906
  });
15306
15907
  var EdubridgeActivityParams = EmailOrStudentId.extend({
15307
15908
  startDate: EdubridgeDateString,
@@ -15313,16 +15914,16 @@ var EdubridgeWeeklyFactsParams = EmailOrStudentId.extend({
15313
15914
  timezone: exports_external.string().optional()
15314
15915
  });
15315
15916
  var EdubridgeEnrollmentFactsParams = exports_external.object({
15316
- enrollmentId: NonEmptyString,
15917
+ enrollmentId: NonEmptyString3,
15317
15918
  startDate: EdubridgeDateString.optional(),
15318
15919
  endDate: EdubridgeDateString.optional(),
15319
15920
  timezone: exports_external.string().optional()
15320
15921
  });
15321
- var NonEmptyString2 = exports_external.string().min(1);
15922
+ var NonEmptyString4 = exports_external.string().min(1);
15322
15923
  var Status = exports_external.enum(["active", "tobedeleted"]);
15323
15924
  var Metadata = exports_external.record(exports_external.string(), exports_external.unknown()).nullable().optional();
15324
15925
  var Ref = exports_external.object({
15325
- sourcedId: NonEmptyString2,
15926
+ sourcedId: NonEmptyString4,
15326
15927
  type: exports_external.string().optional(),
15327
15928
  href: exports_external.string().optional()
15328
15929
  }).strict();
@@ -15337,58 +15938,58 @@ var OneRosterUserRoleInput = exports_external.object({
15337
15938
  endDate: OneRosterDateString.optional()
15338
15939
  }).strict();
15339
15940
  var OneRosterUserCreateInput = exports_external.object({
15340
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string"),
15941
+ sourcedId: NonEmptyString4.describe("sourcedId must be a non-empty string"),
15341
15942
  status: Status.optional(),
15342
15943
  enabledUser: exports_external.boolean(),
15343
- givenName: NonEmptyString2.describe("givenName must be a non-empty string"),
15344
- familyName: NonEmptyString2.describe("familyName must be a non-empty string"),
15345
- middleName: NonEmptyString2.optional(),
15346
- username: NonEmptyString2.optional(),
15944
+ givenName: NonEmptyString4.describe("givenName must be a non-empty string"),
15945
+ familyName: NonEmptyString4.describe("familyName must be a non-empty string"),
15946
+ middleName: NonEmptyString4.optional(),
15947
+ username: NonEmptyString4.optional(),
15347
15948
  email: exports_external.email().optional(),
15348
15949
  roles: exports_external.array(OneRosterUserRoleInput).min(1, "roles must include at least one role"),
15349
15950
  userIds: exports_external.array(exports_external.object({
15350
- type: NonEmptyString2,
15351
- identifier: NonEmptyString2
15951
+ type: NonEmptyString4,
15952
+ identifier: NonEmptyString4
15352
15953
  }).strict()).optional(),
15353
15954
  agents: exports_external.array(Ref).optional(),
15354
15955
  grades: exports_external.array(TimebackGrade).optional(),
15355
- identifier: NonEmptyString2.optional(),
15356
- sms: NonEmptyString2.optional(),
15357
- phone: NonEmptyString2.optional(),
15358
- pronouns: NonEmptyString2.optional(),
15359
- password: NonEmptyString2.optional(),
15956
+ identifier: NonEmptyString4.optional(),
15957
+ sms: NonEmptyString4.optional(),
15958
+ phone: NonEmptyString4.optional(),
15959
+ pronouns: NonEmptyString4.optional(),
15960
+ password: NonEmptyString4.optional(),
15360
15961
  metadata: Metadata
15361
15962
  }).strict();
15362
15963
  var OneRosterCourseCreateInput = exports_external.object({
15363
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string").optional(),
15964
+ sourcedId: NonEmptyString4.describe("sourcedId must be a non-empty string").optional(),
15364
15965
  status: Status.optional(),
15365
- title: NonEmptyString2.describe("title must be a non-empty string"),
15966
+ title: NonEmptyString4.describe("title must be a non-empty string"),
15366
15967
  org: Ref,
15367
- courseCode: NonEmptyString2.optional(),
15968
+ courseCode: NonEmptyString4.optional(),
15368
15969
  subjects: exports_external.array(TimebackSubject).optional(),
15369
15970
  grades: exports_external.array(TimebackGrade).optional(),
15370
- level: NonEmptyString2.optional(),
15971
+ level: NonEmptyString4.optional(),
15371
15972
  metadata: Metadata
15372
15973
  }).strict();
15373
15974
  var OneRosterClassCreateInput = exports_external.object({
15374
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string").optional(),
15975
+ sourcedId: NonEmptyString4.describe("sourcedId must be a non-empty string").optional(),
15375
15976
  status: Status.optional(),
15376
- title: NonEmptyString2.describe("title must be a non-empty string"),
15977
+ title: NonEmptyString4.describe("title must be a non-empty string"),
15377
15978
  terms: exports_external.array(Ref).min(1, "terms must have at least one item"),
15378
15979
  course: Ref,
15379
15980
  org: Ref,
15380
- classCode: NonEmptyString2.optional(),
15981
+ classCode: NonEmptyString4.optional(),
15381
15982
  classType: exports_external.enum(["homeroom", "scheduled"]).optional(),
15382
- location: NonEmptyString2.optional(),
15983
+ location: NonEmptyString4.optional(),
15383
15984
  grades: exports_external.array(TimebackGrade).optional(),
15384
15985
  subjects: exports_external.array(TimebackSubject).optional(),
15385
- subjectCodes: exports_external.array(NonEmptyString2).optional(),
15386
- periods: exports_external.array(NonEmptyString2).optional(),
15986
+ subjectCodes: exports_external.array(NonEmptyString4).optional(),
15987
+ periods: exports_external.array(NonEmptyString4).optional(),
15387
15988
  metadata: Metadata
15388
15989
  }).strict();
15389
15990
  var StringBoolean = exports_external.enum(["true", "false"]);
15390
15991
  var OneRosterEnrollmentCreateInput = exports_external.object({
15391
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string").optional(),
15992
+ sourcedId: NonEmptyString4.describe("sourcedId must be a non-empty string").optional(),
15392
15993
  status: Status.optional(),
15393
15994
  user: Ref,
15394
15995
  class: Ref,
@@ -15400,15 +16001,15 @@ var OneRosterEnrollmentCreateInput = exports_external.object({
15400
16001
  metadata: Metadata
15401
16002
  }).strict();
15402
16003
  var OneRosterCategoryCreateInput = exports_external.object({
15403
- sourcedId: NonEmptyString2.optional(),
15404
- title: NonEmptyString2.describe("title must be a non-empty string"),
16004
+ sourcedId: NonEmptyString4.optional(),
16005
+ title: NonEmptyString4.describe("title must be a non-empty string"),
15405
16006
  status: Status,
15406
16007
  weight: exports_external.number().nullable().optional(),
15407
16008
  metadata: Metadata
15408
16009
  }).strict();
15409
16010
  var OneRosterLineItemCreateInput = exports_external.object({
15410
- sourcedId: NonEmptyString2.optional(),
15411
- title: NonEmptyString2.describe("title must be a non-empty string"),
16011
+ sourcedId: NonEmptyString4.optional(),
16012
+ title: NonEmptyString4.describe("title must be a non-empty string"),
15412
16013
  class: Ref,
15413
16014
  school: Ref,
15414
16015
  category: Ref,
@@ -15422,7 +16023,7 @@ var OneRosterLineItemCreateInput = exports_external.object({
15422
16023
  metadata: Metadata
15423
16024
  }).strict();
15424
16025
  var OneRosterResultCreateInput = exports_external.object({
15425
- sourcedId: NonEmptyString2.optional(),
16026
+ sourcedId: NonEmptyString4.optional(),
15426
16027
  lineItem: Ref,
15427
16028
  student: Ref,
15428
16029
  class: Ref.optional(),
@@ -15441,15 +16042,15 @@ var OneRosterResultCreateInput = exports_external.object({
15441
16042
  metadata: Metadata
15442
16043
  }).strict();
15443
16044
  var OneRosterScoreScaleCreateInput = exports_external.object({
15444
- sourcedId: NonEmptyString2.optional(),
15445
- title: NonEmptyString2.describe("title must be a non-empty string"),
16045
+ sourcedId: NonEmptyString4.optional(),
16046
+ title: NonEmptyString4.describe("title must be a non-empty string"),
15446
16047
  status: Status.optional(),
15447
16048
  type: exports_external.string().optional(),
15448
16049
  class: Ref.optional(),
15449
16050
  course: Ref.nullable().optional(),
15450
16051
  scoreScaleValue: exports_external.array(exports_external.object({
15451
- itemValueLHS: NonEmptyString2,
15452
- itemValueRHS: NonEmptyString2,
16052
+ itemValueLHS: NonEmptyString4,
16053
+ itemValueRHS: NonEmptyString4,
15453
16054
  value: exports_external.string().optional(),
15454
16055
  description: exports_external.string().optional()
15455
16056
  }).strict()).optional(),
@@ -15458,10 +16059,10 @@ var OneRosterScoreScaleCreateInput = exports_external.object({
15458
16059
  metadata: Metadata
15459
16060
  }).strict();
15460
16061
  var OneRosterAssessmentLineItemCreateInput = exports_external.object({
15461
- sourcedId: NonEmptyString2.optional(),
16062
+ sourcedId: NonEmptyString4.optional(),
15462
16063
  status: Status.optional(),
15463
16064
  dateLastModified: IsoDateTimeString.optional(),
15464
- title: NonEmptyString2.describe("title must be a non-empty string"),
16065
+ title: NonEmptyString4.describe("title must be a non-empty string"),
15465
16066
  description: exports_external.string().nullable().optional(),
15466
16067
  class: Ref.nullable().optional(),
15467
16068
  parentAssessmentLineItem: Ref.nullable().optional(),
@@ -15487,7 +16088,7 @@ var LearningObjectiveScoreSetSchema = exports_external.array(exports_external.ob
15487
16088
  learningObjectiveResults: exports_external.array(LearningObjectiveResult)
15488
16089
  }));
15489
16090
  var OneRosterAssessmentResultCreateInput = exports_external.object({
15490
- sourcedId: NonEmptyString2.optional(),
16091
+ sourcedId: NonEmptyString4.optional(),
15491
16092
  status: Status.optional(),
15492
16093
  dateLastModified: IsoDateTimeString.optional(),
15493
16094
  metadata: Metadata,
@@ -15513,53 +16114,53 @@ var OneRosterAssessmentResultCreateInput = exports_external.object({
15513
16114
  missing: exports_external.string().nullable().optional()
15514
16115
  }).strict();
15515
16116
  var OneRosterOrgCreateInput = exports_external.object({
15516
- sourcedId: NonEmptyString2.optional(),
16117
+ sourcedId: NonEmptyString4.optional(),
15517
16118
  status: Status.optional(),
15518
- name: NonEmptyString2.describe("name must be a non-empty string"),
16119
+ name: NonEmptyString4.describe("name must be a non-empty string"),
15519
16120
  type: OrganizationType,
15520
- identifier: NonEmptyString2.optional(),
16121
+ identifier: NonEmptyString4.optional(),
15521
16122
  parent: Ref.optional(),
15522
16123
  metadata: Metadata
15523
16124
  }).strict();
15524
16125
  var OneRosterSchoolCreateInput = exports_external.object({
15525
- sourcedId: NonEmptyString2.optional(),
16126
+ sourcedId: NonEmptyString4.optional(),
15526
16127
  status: Status.optional(),
15527
- name: NonEmptyString2.describe("name must be a non-empty string"),
16128
+ name: NonEmptyString4.describe("name must be a non-empty string"),
15528
16129
  type: exports_external.literal("school").optional(),
15529
- identifier: NonEmptyString2.optional(),
16130
+ identifier: NonEmptyString4.optional(),
15530
16131
  parent: Ref.optional(),
15531
16132
  metadata: Metadata
15532
16133
  }).strict();
15533
16134
  var OneRosterAcademicSessionCreateInput = exports_external.object({
15534
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string"),
16135
+ sourcedId: NonEmptyString4.describe("sourcedId must be a non-empty string"),
15535
16136
  status: Status,
15536
- title: NonEmptyString2.describe("title must be a non-empty string"),
16137
+ title: NonEmptyString4.describe("title must be a non-empty string"),
15537
16138
  startDate: OneRosterDateString,
15538
16139
  endDate: OneRosterDateString,
15539
16140
  type: exports_external.enum(["gradingPeriod", "semester", "schoolYear", "term"]),
15540
- schoolYear: NonEmptyString2.describe("schoolYear must be a non-empty string"),
16141
+ schoolYear: NonEmptyString4.describe("schoolYear must be a non-empty string"),
15541
16142
  org: Ref,
15542
16143
  parent: Ref.optional(),
15543
16144
  children: exports_external.array(Ref).optional(),
15544
16145
  metadata: Metadata
15545
16146
  }).strict();
15546
16147
  var OneRosterComponentResourceCreateInput = exports_external.object({
15547
- sourcedId: NonEmptyString2.optional(),
15548
- title: NonEmptyString2.describe("title must be a non-empty string"),
16148
+ sourcedId: NonEmptyString4.optional(),
16149
+ title: NonEmptyString4.describe("title must be a non-empty string"),
15549
16150
  courseComponent: Ref,
15550
16151
  resource: Ref,
15551
16152
  status: Status,
15552
16153
  metadata: Metadata
15553
16154
  }).strict();
15554
16155
  var OneRosterCourseComponentCreateInput = exports_external.object({
15555
- sourcedId: NonEmptyString2.optional(),
15556
- title: NonEmptyString2.describe("title must be a non-empty string"),
16156
+ sourcedId: NonEmptyString4.optional(),
16157
+ title: NonEmptyString4.describe("title must be a non-empty string"),
15557
16158
  course: Ref,
15558
16159
  status: Status,
15559
16160
  metadata: Metadata
15560
16161
  }).strict();
15561
16162
  var OneRosterEnrollInput = exports_external.object({
15562
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string"),
16163
+ sourcedId: NonEmptyString4.describe("sourcedId must be a non-empty string"),
15563
16164
  role: exports_external.enum(["student", "teacher"]),
15564
16165
  primary: StringBoolean.optional(),
15565
16166
  beginDate: OneRosterDateString.optional(),
@@ -15567,16 +16168,16 @@ var OneRosterEnrollInput = exports_external.object({
15567
16168
  metadata: Metadata
15568
16169
  }).strict();
15569
16170
  var OneRosterAgentInput = exports_external.object({
15570
- agentSourcedId: NonEmptyString2.describe("agentSourcedId must be a non-empty string")
16171
+ agentSourcedId: NonEmptyString4.describe("agentSourcedId must be a non-empty string")
15571
16172
  }).strict();
15572
16173
  var OneRosterCredentialInput = exports_external.object({
15573
- type: NonEmptyString2.describe("type must be a non-empty string"),
15574
- username: NonEmptyString2.describe("username must be a non-empty string"),
16174
+ type: NonEmptyString4.describe("type must be a non-empty string"),
16175
+ username: NonEmptyString4.describe("username must be a non-empty string"),
15575
16176
  password: exports_external.string().optional(),
15576
16177
  metadata: Metadata
15577
16178
  }).strict();
15578
16179
  var OneRosterDemographicsCreateInput = exports_external.object({
15579
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string")
16180
+ sourcedId: NonEmptyString4.describe("sourcedId must be a non-empty string")
15580
16181
  }).loose();
15581
16182
  var CommonResourceMetadataSchema = exports_external.object({
15582
16183
  type: ResourceType,
@@ -15648,9 +16249,9 @@ var ResourceMetadataSchema = exports_external.discriminatedUnion("type", [
15648
16249
  AssessmentBankMetadataSchema
15649
16250
  ]);
15650
16251
  var OneRosterResourceCreateInput = exports_external.object({
15651
- sourcedId: NonEmptyString2.optional(),
15652
- title: NonEmptyString2.describe("title must be a non-empty string"),
15653
- vendorResourceId: NonEmptyString2.describe("vendorResourceId must be a non-empty string"),
16252
+ sourcedId: NonEmptyString4.optional(),
16253
+ title: NonEmptyString4.describe("title must be a non-empty string"),
16254
+ vendorResourceId: NonEmptyString4.describe("vendorResourceId must be a non-empty string"),
15654
16255
  roles: exports_external.array(exports_external.enum(["primary", "secondary"])).optional(),
15655
16256
  importance: exports_external.enum(["primary", "secondary"]).optional(),
15656
16257
  vendorId: exports_external.string().optional(),
@@ -15659,18 +16260,18 @@ var OneRosterResourceCreateInput = exports_external.object({
15659
16260
  metadata: ResourceMetadataSchema.nullable().optional()
15660
16261
  }).strict();
15661
16262
  var CourseStructureItem = exports_external.object({
15662
- url: NonEmptyString2.describe("courseStructure.url must be a non-empty string"),
15663
- skillCode: NonEmptyString2.describe("courseStructure.skillCode must be a non-empty string"),
15664
- lessonCode: NonEmptyString2.describe("courseStructure.lessonCode must be a non-empty string"),
15665
- title: NonEmptyString2.describe("courseStructure.title must be a non-empty string"),
15666
- "unit-title": NonEmptyString2.describe("courseStructure.unit-title must be a non-empty string"),
15667
- status: NonEmptyString2.describe("courseStructure.status must be a non-empty string"),
16263
+ url: NonEmptyString4.describe("courseStructure.url must be a non-empty string"),
16264
+ skillCode: NonEmptyString4.describe("courseStructure.skillCode must be a non-empty string"),
16265
+ lessonCode: NonEmptyString4.describe("courseStructure.lessonCode must be a non-empty string"),
16266
+ title: NonEmptyString4.describe("courseStructure.title must be a non-empty string"),
16267
+ "unit-title": NonEmptyString4.describe("courseStructure.unit-title must be a non-empty string"),
16268
+ status: NonEmptyString4.describe("courseStructure.status must be a non-empty string"),
15668
16269
  xp: exports_external.number()
15669
16270
  }).loose();
15670
16271
  var OneRosterCourseStructureInput = exports_external.object({
15671
16272
  course: exports_external.object({
15672
- sourcedId: NonEmptyString2.describe("course.sourcedId must be a non-empty string").optional(),
15673
- title: NonEmptyString2.describe("course.title must be a non-empty string"),
16273
+ sourcedId: NonEmptyString4.describe("course.sourcedId must be a non-empty string").optional(),
16274
+ title: NonEmptyString4.describe("course.title must be a non-empty string"),
15674
16275
  org: Ref,
15675
16276
  status: Status,
15676
16277
  metadata: Metadata
@@ -15681,7 +16282,7 @@ var OneRosterBulkResultItem = exports_external.object({
15681
16282
  student: Ref
15682
16283
  }).loose();
15683
16284
  var OneRosterBulkResultsInput = exports_external.array(OneRosterBulkResultItem).min(1, "results must have at least one item");
15684
- var NonEmptyString3 = exports_external.string().trim().min(1);
16285
+ var NonEmptyString5 = exports_external.string().trim().min(1);
15685
16286
  var ToolProvider = exports_external.enum(["edulastic", "mastery-track"]);
15686
16287
  var LessonTypeRequired = exports_external.enum([
15687
16288
  "powerpath-100",
@@ -15694,14 +16295,14 @@ var LessonTypeRequired = exports_external.enum([
15694
16295
  var GradeArray = exports_external.array(TimebackGrade);
15695
16296
  var ResourceMetadata = exports_external.record(exports_external.string(), exports_external.unknown()).optional();
15696
16297
  var ExternalTestBase = exports_external.object({
15697
- courseId: NonEmptyString3,
15698
- lessonTitle: NonEmptyString3.optional(),
16298
+ courseId: NonEmptyString5,
16299
+ lessonTitle: NonEmptyString5.optional(),
15699
16300
  launchUrl: exports_external.url().optional(),
15700
16301
  toolProvider: ToolProvider,
15701
- unitTitle: NonEmptyString3.optional(),
15702
- courseComponentSourcedId: NonEmptyString3.optional(),
15703
- vendorId: NonEmptyString3.optional(),
15704
- description: NonEmptyString3.optional(),
16302
+ unitTitle: NonEmptyString5.optional(),
16303
+ courseComponentSourcedId: NonEmptyString5.optional(),
16304
+ vendorId: NonEmptyString5.optional(),
16305
+ description: NonEmptyString5.optional(),
15705
16306
  resourceMetadata: ResourceMetadata.nullable().optional(),
15706
16307
  grades: GradeArray
15707
16308
  });
@@ -15711,26 +16312,26 @@ var ExternalTestOut = ExternalTestBase.extend({
15711
16312
  });
15712
16313
  var ExternalPlacement = ExternalTestBase.extend({
15713
16314
  lessonType: exports_external.literal("placement"),
15714
- courseIdOnFail: NonEmptyString3.optional(),
16315
+ courseIdOnFail: NonEmptyString5.optional(),
15715
16316
  xp: exports_external.number().optional()
15716
16317
  });
15717
16318
  var InternalTestBase = exports_external.object({
15718
- courseId: NonEmptyString3,
16319
+ courseId: NonEmptyString5,
15719
16320
  lessonType: LessonTypeRequired,
15720
- lessonTitle: NonEmptyString3.optional(),
15721
- unitTitle: NonEmptyString3.optional(),
15722
- courseComponentSourcedId: NonEmptyString3.optional(),
16321
+ lessonTitle: NonEmptyString5.optional(),
16322
+ unitTitle: NonEmptyString5.optional(),
16323
+ courseComponentSourcedId: NonEmptyString5.optional(),
15723
16324
  resourceMetadata: ResourceMetadata.nullable().optional(),
15724
16325
  xp: exports_external.number().optional(),
15725
16326
  grades: GradeArray.optional(),
15726
- courseIdOnFail: NonEmptyString3.optional()
16327
+ courseIdOnFail: NonEmptyString5.optional()
15727
16328
  });
15728
16329
  var PowerPathCreateInternalTestInput = exports_external.union([
15729
16330
  InternalTestBase.extend({
15730
16331
  testType: exports_external.literal("qti"),
15731
16332
  qti: exports_external.object({
15732
16333
  url: exports_external.url(),
15733
- title: NonEmptyString3.optional(),
16334
+ title: NonEmptyString5.optional(),
15734
16335
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15735
16336
  })
15736
16337
  }),
@@ -15739,28 +16340,28 @@ var PowerPathCreateInternalTestInput = exports_external.union([
15739
16340
  assessmentBank: exports_external.object({
15740
16341
  resources: exports_external.array(exports_external.object({
15741
16342
  url: exports_external.url(),
15742
- title: NonEmptyString3.optional(),
16343
+ title: NonEmptyString5.optional(),
15743
16344
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15744
16345
  }))
15745
16346
  })
15746
16347
  })
15747
16348
  ]);
15748
16349
  var PowerPathCreateNewAttemptInput = exports_external.object({
15749
- student: NonEmptyString3,
15750
- lesson: NonEmptyString3
16350
+ student: NonEmptyString5,
16351
+ lesson: NonEmptyString5
15751
16352
  });
15752
16353
  var PowerPathFinalStudentAssessmentResponseInput = exports_external.object({
15753
- student: NonEmptyString3,
15754
- lesson: NonEmptyString3
16354
+ student: NonEmptyString5,
16355
+ lesson: NonEmptyString5
15755
16356
  });
15756
16357
  var PowerPathLessonPlansCreateInput = exports_external.object({
15757
- courseId: NonEmptyString3,
15758
- userId: NonEmptyString3,
15759
- classId: NonEmptyString3.optional()
16358
+ courseId: NonEmptyString5,
16359
+ userId: NonEmptyString5,
16360
+ classId: NonEmptyString5.optional()
15760
16361
  });
15761
16362
  var LessonPlanTarget = exports_external.object({
15762
16363
  type: exports_external.enum(["component", "resource"]),
15763
- id: NonEmptyString3
16364
+ id: NonEmptyString5
15764
16365
  });
15765
16366
  var PowerPathLessonPlanOperationInput = exports_external.union([
15766
16367
  exports_external.object({
@@ -15773,8 +16374,8 @@ var PowerPathLessonPlanOperationInput = exports_external.union([
15773
16374
  exports_external.object({
15774
16375
  type: exports_external.literal("add-custom-resource"),
15775
16376
  payload: exports_external.object({
15776
- resource_id: NonEmptyString3,
15777
- parent_component_id: NonEmptyString3,
16377
+ resource_id: NonEmptyString5,
16378
+ parent_component_id: NonEmptyString5,
15778
16379
  skipped: exports_external.boolean().optional()
15779
16380
  })
15780
16381
  }),
@@ -15782,14 +16383,14 @@ var PowerPathLessonPlanOperationInput = exports_external.union([
15782
16383
  type: exports_external.literal("move-item-before"),
15783
16384
  payload: exports_external.object({
15784
16385
  target: LessonPlanTarget,
15785
- reference_id: NonEmptyString3
16386
+ reference_id: NonEmptyString5
15786
16387
  })
15787
16388
  }),
15788
16389
  exports_external.object({
15789
16390
  type: exports_external.literal("move-item-after"),
15790
16391
  payload: exports_external.object({
15791
16392
  target: LessonPlanTarget,
15792
- reference_id: NonEmptyString3
16393
+ reference_id: NonEmptyString5
15793
16394
  })
15794
16395
  }),
15795
16396
  exports_external.object({
@@ -15808,135 +16409,135 @@ var PowerPathLessonPlanOperationInput = exports_external.union([
15808
16409
  type: exports_external.literal("change-item-parent"),
15809
16410
  payload: exports_external.object({
15810
16411
  target: LessonPlanTarget,
15811
- new_parent_id: NonEmptyString3,
16412
+ new_parent_id: NonEmptyString5,
15812
16413
  position: exports_external.enum(["start", "end"]).optional()
15813
16414
  })
15814
16415
  })
15815
16416
  ]);
15816
16417
  var PowerPathLessonPlanOperationsInput = exports_external.object({
15817
16418
  operation: exports_external.array(PowerPathLessonPlanOperationInput),
15818
- reason: NonEmptyString3.optional()
16419
+ reason: NonEmptyString5.optional()
15819
16420
  });
15820
16421
  var PowerPathLessonPlanUpdateStudentItemResponseInput = exports_external.object({
15821
- studentId: NonEmptyString3,
15822
- componentResourceId: NonEmptyString3,
16422
+ studentId: NonEmptyString5,
16423
+ componentResourceId: NonEmptyString5,
15823
16424
  result: exports_external.object({
15824
16425
  status: exports_external.enum(["active", "tobedeleted"]),
15825
16426
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
15826
16427
  score: exports_external.number().optional(),
15827
- textScore: NonEmptyString3.optional(),
15828
- scoreDate: NonEmptyString3,
16428
+ textScore: NonEmptyString5.optional(),
16429
+ scoreDate: NonEmptyString5,
15829
16430
  scorePercentile: exports_external.number().optional(),
15830
16431
  scoreStatus: ScoreStatus,
15831
- comment: NonEmptyString3.optional(),
16432
+ comment: NonEmptyString5.optional(),
15832
16433
  learningObjectiveSet: exports_external.array(exports_external.object({
15833
- source: NonEmptyString3,
16434
+ source: NonEmptyString5,
15834
16435
  learningObjectiveResults: exports_external.array(exports_external.object({
15835
- learningObjectiveId: NonEmptyString3,
16436
+ learningObjectiveId: NonEmptyString5,
15836
16437
  score: exports_external.number().optional(),
15837
- textScore: NonEmptyString3.optional()
16438
+ textScore: NonEmptyString5.optional()
15838
16439
  }))
15839
16440
  })).optional(),
15840
- inProgress: NonEmptyString3.optional(),
15841
- incomplete: NonEmptyString3.optional(),
15842
- late: NonEmptyString3.optional(),
15843
- missing: NonEmptyString3.optional()
16441
+ inProgress: NonEmptyString5.optional(),
16442
+ incomplete: NonEmptyString5.optional(),
16443
+ late: NonEmptyString5.optional(),
16444
+ missing: NonEmptyString5.optional()
15844
16445
  })
15845
16446
  });
15846
16447
  var PowerPathMakeExternalTestAssignmentInput = exports_external.object({
15847
- student: NonEmptyString3,
15848
- lesson: NonEmptyString3,
15849
- applicationName: NonEmptyString3.optional(),
15850
- testId: NonEmptyString3.optional(),
16448
+ student: NonEmptyString5,
16449
+ lesson: NonEmptyString5,
16450
+ applicationName: NonEmptyString5.optional(),
16451
+ testId: NonEmptyString5.optional(),
15851
16452
  skipCourseEnrollment: exports_external.boolean().optional()
15852
16453
  });
15853
16454
  var PowerPathPlacementResetUserPlacementInput = exports_external.object({
15854
- student: NonEmptyString3,
16455
+ student: NonEmptyString5,
15855
16456
  subject: TimebackSubject
15856
16457
  });
15857
16458
  var PowerPathResetAttemptInput = exports_external.object({
15858
- student: NonEmptyString3,
15859
- lesson: NonEmptyString3
16459
+ student: NonEmptyString5,
16460
+ lesson: NonEmptyString5
15860
16461
  });
15861
16462
  var PowerPathScreeningResetSessionInput = exports_external.object({
15862
- userId: NonEmptyString3
16463
+ userId: NonEmptyString5
15863
16464
  });
15864
16465
  var PowerPathScreeningAssignTestInput = exports_external.object({
15865
- userId: NonEmptyString3,
16466
+ userId: NonEmptyString5,
15866
16467
  subject: exports_external.enum(["Math", "Reading", "Language", "Science"])
15867
16468
  });
15868
16469
  var PowerPathTestAssignmentsCreateInput = exports_external.object({
15869
- student: NonEmptyString3,
16470
+ student: NonEmptyString5,
15870
16471
  subject: TimebackSubject,
15871
16472
  grade: TimebackGrade,
15872
- testName: NonEmptyString3.optional()
16473
+ testName: NonEmptyString5.optional()
15873
16474
  });
15874
16475
  var PowerPathTestAssignmentsUpdateInput = exports_external.object({
15875
- testName: NonEmptyString3
16476
+ testName: NonEmptyString5
15876
16477
  });
15877
16478
  var PowerPathTestAssignmentItemInput = exports_external.object({
15878
- student: NonEmptyString3,
16479
+ student: NonEmptyString5,
15879
16480
  subject: TimebackSubject,
15880
16481
  grade: TimebackGrade,
15881
- testName: NonEmptyString3.optional()
16482
+ testName: NonEmptyString5.optional()
15882
16483
  });
15883
16484
  var PowerPathTestAssignmentsBulkInput = exports_external.object({
15884
16485
  items: exports_external.array(PowerPathTestAssignmentItemInput)
15885
16486
  });
15886
16487
  var PowerPathTestAssignmentsImportInput = exports_external.object({
15887
16488
  spreadsheetUrl: exports_external.url(),
15888
- sheet: NonEmptyString3
16489
+ sheet: NonEmptyString5
15889
16490
  });
15890
16491
  var PowerPathTestAssignmentsListParams = exports_external.object({
15891
- student: NonEmptyString3,
16492
+ student: NonEmptyString5,
15892
16493
  status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
15893
- subject: NonEmptyString3.optional(),
16494
+ subject: NonEmptyString5.optional(),
15894
16495
  grade: TimebackGrade.optional(),
15895
16496
  limit: exports_external.number().int().positive().max(3000).optional(),
15896
16497
  offset: exports_external.number().int().nonnegative().optional()
15897
16498
  });
15898
16499
  var PowerPathTestAssignmentsAdminParams = exports_external.object({
15899
- student: NonEmptyString3.optional(),
16500
+ student: NonEmptyString5.optional(),
15900
16501
  status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
15901
- subject: NonEmptyString3.optional(),
16502
+ subject: NonEmptyString5.optional(),
15902
16503
  grade: TimebackGrade.optional(),
15903
16504
  limit: exports_external.number().int().positive().max(3000).optional(),
15904
16505
  offset: exports_external.number().int().nonnegative().optional()
15905
16506
  });
15906
16507
  var PowerPathUpdateStudentQuestionResponseInput = exports_external.object({
15907
- student: NonEmptyString3,
15908
- question: NonEmptyString3,
15909
- response: exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)]).optional(),
15910
- responses: exports_external.record(exports_external.string(), exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)])).optional(),
15911
- lesson: NonEmptyString3
16508
+ student: NonEmptyString5,
16509
+ question: NonEmptyString5,
16510
+ response: exports_external.union([NonEmptyString5, exports_external.array(NonEmptyString5)]).optional(),
16511
+ responses: exports_external.record(exports_external.string(), exports_external.union([NonEmptyString5, exports_external.array(NonEmptyString5)])).optional(),
16512
+ lesson: NonEmptyString5
15912
16513
  });
15913
16514
  var PowerPathGetAssessmentProgressParams = exports_external.object({
15914
- student: NonEmptyString3,
15915
- lesson: NonEmptyString3,
16515
+ student: NonEmptyString5,
16516
+ lesson: NonEmptyString5,
15916
16517
  attempt: exports_external.number().int().positive().optional()
15917
16518
  });
15918
16519
  var PowerPathGetNextQuestionParams = exports_external.object({
15919
- student: NonEmptyString3,
15920
- lesson: NonEmptyString3
16520
+ student: NonEmptyString5,
16521
+ lesson: NonEmptyString5
15921
16522
  });
15922
16523
  var PowerPathGetAttemptsParams = exports_external.object({
15923
- student: NonEmptyString3,
15924
- lesson: NonEmptyString3
16524
+ student: NonEmptyString5,
16525
+ lesson: NonEmptyString5
15925
16526
  });
15926
16527
  var PowerPathTestOutParams = exports_external.object({
15927
- student: NonEmptyString3,
15928
- lesson: NonEmptyString3.optional(),
16528
+ student: NonEmptyString5,
16529
+ lesson: NonEmptyString5.optional(),
15929
16530
  finalized: exports_external.boolean().optional(),
15930
- toolProvider: NonEmptyString3.optional(),
16531
+ toolProvider: NonEmptyString5.optional(),
15931
16532
  attempt: exports_external.number().int().positive().optional()
15932
16533
  });
15933
16534
  var PowerPathImportExternalTestAssignmentResultsParams = exports_external.object({
15934
- student: NonEmptyString3,
15935
- lesson: NonEmptyString3,
15936
- applicationName: NonEmptyString3.optional()
16535
+ student: NonEmptyString5,
16536
+ lesson: NonEmptyString5,
16537
+ applicationName: NonEmptyString5.optional()
15937
16538
  });
15938
16539
  var PowerPathPlacementQueryParams = exports_external.object({
15939
- student: NonEmptyString3,
16540
+ student: NonEmptyString5,
15940
16541
  subject: TimebackSubject
15941
16542
  });
15942
16543
  var PowerPathSyllabusQueryParams = exports_external.object({
@@ -16026,7 +16627,7 @@ var QtiItemMetadata = exports_external.object({
16026
16627
  grade: TimebackGrade.optional(),
16027
16628
  difficulty: QtiDifficulty.optional(),
16028
16629
  learningObjectiveSet: exports_external.array(QtiLearningObjectiveSet).optional()
16029
- }).strict();
16630
+ }).loose();
16030
16631
  var QtiModalFeedback = exports_external.object({
16031
16632
  outcomeIdentifier: exports_external.string().min(1),
16032
16633
  identifier: exports_external.string().min(1),
@@ -16063,7 +16664,12 @@ var QtiPaginationParams = exports_external.object({
16063
16664
  sort: exports_external.string().optional(),
16064
16665
  order: exports_external.enum(["asc", "desc"]).optional()
16065
16666
  }).strict();
16066
- var QtiAssessmentItemCreateInput = exports_external.object({
16667
+ var QtiAssessmentItemXmlCreateInput = exports_external.object({
16668
+ format: exports_external.string().pipe(exports_external.literal("xml")),
16669
+ xml: exports_external.string().min(1),
16670
+ metadata: QtiItemMetadata.optional()
16671
+ }).strict();
16672
+ var QtiAssessmentItemJsonCreateInput = exports_external.object({
16067
16673
  identifier: exports_external.string().min(1),
16068
16674
  title: exports_external.string().min(1),
16069
16675
  type: QtiAssessmentItemType,
@@ -16078,6 +16684,10 @@ var QtiAssessmentItemCreateInput = exports_external.object({
16078
16684
  feedbackInline: exports_external.array(QtiFeedbackInline).optional(),
16079
16685
  feedbackBlock: exports_external.array(QtiFeedbackBlock).optional()
16080
16686
  }).strict();
16687
+ var QtiAssessmentItemCreateInput = exports_external.union([
16688
+ QtiAssessmentItemXmlCreateInput,
16689
+ QtiAssessmentItemJsonCreateInput
16690
+ ]);
16081
16691
  var QtiAssessmentItemUpdateInput = exports_external.object({
16082
16692
  identifier: exports_external.string().min(1).optional(),
16083
16693
  title: exports_external.string().min(1),
@@ -16114,9 +16724,9 @@ var QtiAssessmentSection = exports_external.object({
16114
16724
  }).strict();
16115
16725
  var QtiTestPart = exports_external.object({
16116
16726
  identifier: exports_external.string().min(1),
16117
- navigationMode: QtiNavigationMode,
16118
- submissionMode: QtiSubmissionMode,
16119
- "qti-assessment-section": exports_external.union([QtiAssessmentSection, exports_external.array(QtiAssessmentSection)])
16727
+ navigationMode: exports_external.string().pipe(QtiNavigationMode),
16728
+ submissionMode: exports_external.string().pipe(QtiSubmissionMode),
16729
+ "qti-assessment-section": exports_external.array(QtiAssessmentSection)
16120
16730
  }).strict();
16121
16731
  var QtiReorderItemsInput = exports_external.object({
16122
16732
  items: exports_external.array(QtiAssessmentItemRef).min(1)
@@ -16134,7 +16744,7 @@ var QtiAssessmentTestCreateInput = exports_external.object({
16134
16744
  maxAttempts: exports_external.number().optional(),
16135
16745
  toolsEnabled: exports_external.record(exports_external.string(), exports_external.boolean()).optional(),
16136
16746
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
16137
- "qti-test-part": QtiTestPart,
16747
+ "qti-test-part": exports_external.array(QtiTestPart),
16138
16748
  "qti-outcome-declaration": exports_external.array(QtiTestOutcomeDeclaration).optional()
16139
16749
  }).strict();
16140
16750
  var QtiAssessmentTestUpdateInput = exports_external.object({
@@ -16147,7 +16757,7 @@ var QtiAssessmentTestUpdateInput = exports_external.object({
16147
16757
  maxAttempts: exports_external.number().optional(),
16148
16758
  toolsEnabled: exports_external.record(exports_external.string(), exports_external.boolean()).optional(),
16149
16759
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
16150
- "qti-test-part": QtiTestPart,
16760
+ "qti-test-part": exports_external.array(QtiTestPart),
16151
16761
  "qti-outcome-declaration": exports_external.array(QtiTestOutcomeDeclaration).optional()
16152
16762
  }).strict();
16153
16763
  var QtiStimulusCreateInput = exports_external.object({
@@ -16412,7 +17022,7 @@ function createEdubridgeClient(registry2 = DEFAULT_PROVIDER_REGISTRY) {
16412
17022
  const resolved = resolveToProvider2(config3, registry2);
16413
17023
  if (resolved.mode === "transport") {
16414
17024
  this.transport = resolved.transport;
16415
- log2.info("Client initialized with custom transport");
17025
+ log3.info("Client initialized with custom transport");
16416
17026
  } else {
16417
17027
  const { provider } = resolved;
16418
17028
  const { baseUrl, paths } = provider.getEndpointWithPaths("edubridge");
@@ -16427,7 +17037,7 @@ function createEdubridgeClient(registry2 = DEFAULT_PROVIDER_REGISTRY) {
16427
17037
  timeout: provider.timeout,
16428
17038
  paths
16429
17039
  });
16430
- log2.info("Client initialized", {
17040
+ log3.info("Client initialized", {
16431
17041
  platform: provider.platform,
16432
17042
  env: provider.env,
16433
17043
  baseUrl