@timeback/core 0.1.4 → 0.1.6-beta.20260219190739

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,28 @@ 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"
899
+ },
900
+ webhooks: {
901
+ webhookList: "/webhooks/",
902
+ webhookGet: "/webhooks/{id}",
903
+ webhookCreate: "/webhooks/",
904
+ webhookUpdate: "/webhooks/{id}",
905
+ webhookDelete: "/webhooks/{id}",
906
+ webhookActivate: "/webhooks/{id}/activate",
907
+ webhookDeactivate: "/webhooks/{id}/deactivate",
908
+ webhookFilterList: "/webhook-filters/",
909
+ webhookFilterGet: "/webhook-filters/{id}",
910
+ webhookFilterCreate: "/webhook-filters/",
911
+ webhookFilterUpdate: "/webhook-filters/{id}",
912
+ webhookFilterDelete: "/webhook-filters/{id}",
913
+ webhookFiltersByWebhook: "/webhook-filters/webhook/{webhookId}"
491
914
  }
492
915
  };
493
916
  var LEARNWITHAI_PATHS = {
@@ -503,8 +926,11 @@ var LEARNWITHAI_PATHS = {
503
926
  gradebook: "/gradebook/1.0",
504
927
  resources: "/resources/1.0"
505
928
  },
929
+ webhooks: null,
506
930
  edubridge: null,
507
- powerpath: null
931
+ powerpath: null,
932
+ clr: null,
933
+ case: null
508
934
  };
509
935
  var PLATFORM_PATHS = {
510
936
  BEYOND_AI: BEYONDAI_PATHS,
@@ -524,8 +950,11 @@ function resolvePathProfiles(pathProfile, customPaths) {
524
950
  return {
525
951
  caliper: customPaths?.caliper ?? basePaths.caliper,
526
952
  oneroster: customPaths?.oneroster ?? basePaths.oneroster,
953
+ webhooks: customPaths?.webhooks ?? basePaths.webhooks,
527
954
  edubridge: customPaths?.edubridge ?? basePaths.edubridge,
528
- powerpath: customPaths?.powerpath ?? basePaths.powerpath
955
+ powerpath: customPaths?.powerpath ?? basePaths.powerpath,
956
+ clr: customPaths?.clr ?? basePaths.clr,
957
+ case: customPaths?.case ?? basePaths.case
529
958
  };
530
959
  }
531
960
 
@@ -565,10 +994,22 @@ class TimebackProvider {
565
994
  baseUrl: platformEndpoints.api[env],
566
995
  authUrl: this.authUrl
567
996
  },
997
+ clr: {
998
+ baseUrl: platformEndpoints.api[env],
999
+ authUrl: this.authUrl
1000
+ },
1001
+ case: {
1002
+ baseUrl: platformEndpoints.api[env],
1003
+ authUrl: this.authUrl
1004
+ },
568
1005
  caliper: {
569
1006
  baseUrl: platformEndpoints.caliper[env],
570
1007
  authUrl: this.authUrl
571
1008
  },
1009
+ webhooks: {
1010
+ baseUrl: platformEndpoints.caliper[env],
1011
+ authUrl: this.authUrl
1012
+ },
572
1013
  qti: {
573
1014
  baseUrl: platformEndpoints.qti[env],
574
1015
  authUrl: this.authUrl
@@ -582,7 +1023,10 @@ class TimebackProvider {
582
1023
  oneroster: { baseUrl: config.baseUrl, authUrl: this.authUrl },
583
1024
  edubridge: { baseUrl: config.baseUrl, authUrl: this.authUrl },
584
1025
  powerpath: { baseUrl: config.baseUrl, authUrl: this.authUrl },
1026
+ clr: { baseUrl: config.baseUrl, authUrl: this.authUrl },
1027
+ case: { baseUrl: config.baseUrl, authUrl: this.authUrl },
585
1028
  caliper: { baseUrl: config.baseUrl, authUrl: this.authUrl },
1029
+ webhooks: { baseUrl: config.baseUrl, authUrl: this.authUrl },
586
1030
  qti: { baseUrl: config.baseUrl, authUrl: this.authUrl }
587
1031
  };
588
1032
  } else if (isServicesConfig(config)) {
@@ -601,10 +1045,19 @@ class TimebackProvider {
601
1045
  } else {
602
1046
  throw new Error("Invalid provider configuration");
603
1047
  }
1048
+ for (const service of Object.keys(this.pathProfiles)) {
1049
+ if (this.pathProfiles[service] === null) {
1050
+ delete this.endpoints[service];
1051
+ }
1052
+ }
604
1053
  }
605
1054
  getEndpoint(service) {
606
1055
  const endpoint = this.endpoints[service];
607
1056
  if (!endpoint) {
1057
+ const pathKey = service;
1058
+ if (pathKey in this.pathProfiles && this.pathProfiles[pathKey] === null) {
1059
+ throw new Error(`Service "${service}" is not supported on ${this.platform ?? "this"} platform.`);
1060
+ }
608
1061
  throw new Error(`Service "${service}" is not configured in this provider`);
609
1062
  }
610
1063
  return endpoint;
@@ -934,7 +1387,7 @@ var MODE_TOKEN_PROVIDER = {
934
1387
  return "tokenProvider" in config;
935
1388
  },
936
1389
  resolve() {
937
- throw new Error("TokenProvider mode is not supported with provider pattern. Use { provider: TimebackProvider } or { env, auth } instead.");
1390
+ throw new Error("TokenProvider mode is not supported with provider pattern. " + "Use { provider: TimebackProvider } or { env, auth } instead.");
938
1391
  }
939
1392
  };
940
1393
  var MODES = [
@@ -1294,7 +1747,7 @@ var EDUBRIDGE_ENV_VARS = {
1294
1747
  function resolveToProvider2(config, registry = DEFAULT_PROVIDER_REGISTRY) {
1295
1748
  return resolveToProvider(config, EDUBRIDGE_ENV_VARS, registry);
1296
1749
  }
1297
- var log2 = createScopedLogger("edubridge");
1750
+ var log3 = createScopedLogger("edubridge");
1298
1751
  function normalizeBoolean(value) {
1299
1752
  if (typeof value === "boolean")
1300
1753
  return value;
@@ -1359,7 +1812,7 @@ function aggregateActivityMetrics(data) {
1359
1812
  class Transport extends BaseTransport {
1360
1813
  paths;
1361
1814
  constructor(config) {
1362
- super({ config, logger: log2 });
1815
+ super({ config, logger: log3 });
1363
1816
  this.paths = config.paths;
1364
1817
  }
1365
1818
  async requestPaginated(path, options = {}) {
@@ -1403,7 +1856,7 @@ __export2(exports_external, {
1403
1856
  uuidv6: () => uuidv6,
1404
1857
  uuidv4: () => uuidv4,
1405
1858
  uuid: () => uuid2,
1406
- util: () => exports_util,
1859
+ util: () => exports_util2,
1407
1860
  url: () => url,
1408
1861
  uppercase: () => _uppercase,
1409
1862
  unknown: () => unknown,
@@ -1512,7 +1965,7 @@ __export2(exports_external, {
1512
1965
  getErrorMap: () => getErrorMap,
1513
1966
  function: () => _function,
1514
1967
  fromJSONSchema: () => fromJSONSchema,
1515
- formatError: () => formatError,
1968
+ formatError: () => formatError2,
1516
1969
  float64: () => float64,
1517
1970
  float32: () => float32,
1518
1971
  flattenError: () => flattenError,
@@ -1636,7 +2089,7 @@ __export2(exports_external, {
1636
2089
  var exports_core2 = {};
1637
2090
  __export2(exports_core2, {
1638
2091
  version: () => version,
1639
- util: () => exports_util,
2092
+ util: () => exports_util2,
1640
2093
  treeifyError: () => treeifyError,
1641
2094
  toJSONSchema: () => toJSONSchema,
1642
2095
  toDotPath: () => toDotPath,
@@ -1660,7 +2113,7 @@ __export2(exports_core2, {
1660
2113
  initializeContext: () => initializeContext,
1661
2114
  globalRegistry: () => globalRegistry,
1662
2115
  globalConfig: () => globalConfig,
1663
- formatError: () => formatError,
2116
+ formatError: () => formatError2,
1664
2117
  flattenError: () => flattenError,
1665
2118
  finalize: () => finalize,
1666
2119
  extractDefs: () => extractDefs,
@@ -1984,8 +2437,8 @@ function config(newConfig) {
1984
2437
  Object.assign(globalConfig, newConfig);
1985
2438
  return globalConfig;
1986
2439
  }
1987
- var exports_util = {};
1988
- __export2(exports_util, {
2440
+ var exports_util2 = {};
2441
+ __export2(exports_util2, {
1989
2442
  unwrapMessage: () => unwrapMessage,
1990
2443
  uint8ArrayToHex: () => uint8ArrayToHex,
1991
2444
  uint8ArrayToBase64url: () => uint8ArrayToBase64url,
@@ -2015,7 +2468,7 @@ __export2(exports_util, {
2015
2468
  joinValues: () => joinValues,
2016
2469
  issue: () => issue2,
2017
2470
  isPlainObject: () => isPlainObject,
2018
- isObject: () => isObject,
2471
+ isObject: () => isObject2,
2019
2472
  hexToUint8Array: () => hexToUint8Array,
2020
2473
  getSizableOrigin: () => getSizableOrigin,
2021
2474
  getParsedType: () => getParsedType,
@@ -2184,7 +2637,7 @@ function slugify(input) {
2184
2637
  return input.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "-").replace(/^-+|-+$/g, "");
2185
2638
  }
2186
2639
  var captureStackTrace = "captureStackTrace" in Error ? Error.captureStackTrace : (..._args) => {};
2187
- function isObject(data) {
2640
+ function isObject2(data) {
2188
2641
  return typeof data === "object" && data !== null && !Array.isArray(data);
2189
2642
  }
2190
2643
  var allowsEval = cached(() => {
@@ -2200,7 +2653,7 @@ var allowsEval = cached(() => {
2200
2653
  }
2201
2654
  });
2202
2655
  function isPlainObject(o) {
2203
- if (isObject(o) === false)
2656
+ if (isObject2(o) === false)
2204
2657
  return false;
2205
2658
  const ctor = o.constructor;
2206
2659
  if (ctor === undefined)
@@ -2208,7 +2661,7 @@ function isPlainObject(o) {
2208
2661
  if (typeof ctor !== "function")
2209
2662
  return true;
2210
2663
  const prot = ctor.prototype;
2211
- if (isObject(prot) === false)
2664
+ if (isObject2(prot) === false)
2212
2665
  return false;
2213
2666
  if (Object.prototype.hasOwnProperty.call(prot, "isPrototypeOf") === false) {
2214
2667
  return false;
@@ -2687,7 +3140,7 @@ function flattenError(error, mapper = (issue3) => issue3.message) {
2687
3140
  }
2688
3141
  return { formErrors, fieldErrors };
2689
3142
  }
2690
- function formatError(error, mapper = (issue3) => issue3.message) {
3143
+ function formatError2(error, mapper = (issue3) => issue3.message) {
2691
3144
  const fieldErrors = { _errors: [] };
2692
3145
  const processError = (error2) => {
2693
3146
  for (const issue3 of error2.issues) {
@@ -4202,15 +4655,15 @@ var $ZodDate = /* @__PURE__ */ $constructor("$ZodDate", (inst, def) => {
4202
4655
  } catch (_err) {}
4203
4656
  }
4204
4657
  const input = payload.value;
4205
- const isDate = input instanceof Date;
4206
- const isValidDate = isDate && !Number.isNaN(input.getTime());
4658
+ const isDate2 = input instanceof Date;
4659
+ const isValidDate = isDate2 && !Number.isNaN(input.getTime());
4207
4660
  if (isValidDate)
4208
4661
  return payload;
4209
4662
  payload.issues.push({
4210
4663
  expected: "date",
4211
4664
  code: "invalid_type",
4212
4665
  input,
4213
- ...isDate ? { received: "Invalid Date" } : {},
4666
+ ...isDate2 ? { received: "Invalid Date" } : {},
4214
4667
  inst
4215
4668
  });
4216
4669
  return payload;
@@ -4349,13 +4802,13 @@ var $ZodObject = /* @__PURE__ */ $constructor("$ZodObject", (inst, def) => {
4349
4802
  }
4350
4803
  return propValues;
4351
4804
  });
4352
- const isObject2 = isObject;
4805
+ const isObject3 = isObject2;
4353
4806
  const catchall = def.catchall;
4354
4807
  let value;
4355
4808
  inst._zod.parse = (payload, ctx) => {
4356
4809
  value ?? (value = _normalized.value);
4357
4810
  const input = payload.value;
4358
- if (!isObject2(input)) {
4811
+ if (!isObject3(input)) {
4359
4812
  payload.issues.push({
4360
4813
  expected: "object",
4361
4814
  code: "invalid_type",
@@ -4453,7 +4906,7 @@ var $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def) =>
4453
4906
  return (payload, ctx) => fn(shape, payload, ctx);
4454
4907
  };
4455
4908
  let fastpass;
4456
- const isObject2 = isObject;
4909
+ const isObject3 = isObject2;
4457
4910
  const jit = !globalConfig.jitless;
4458
4911
  const allowsEval2 = allowsEval;
4459
4912
  const fastEnabled = jit && allowsEval2.value;
@@ -4462,7 +4915,7 @@ var $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def) =>
4462
4915
  inst._zod.parse = (payload, ctx) => {
4463
4916
  value ?? (value = _normalized.value);
4464
4917
  const input = payload.value;
4465
- if (!isObject2(input)) {
4918
+ if (!isObject3(input)) {
4466
4919
  payload.issues.push({
4467
4920
  expected: "object",
4468
4921
  code: "invalid_type",
@@ -4640,7 +5093,7 @@ var $ZodDiscriminatedUnion = /* @__PURE__ */ $constructor("$ZodDiscriminatedUnio
4640
5093
  });
4641
5094
  inst._zod.parse = (payload, ctx) => {
4642
5095
  const input = payload.value;
4643
- if (!isObject(input)) {
5096
+ if (!isObject2(input)) {
4644
5097
  payload.issues.push({
4645
5098
  code: "invalid_type",
4646
5099
  expected: "object",
@@ -4761,7 +5214,7 @@ function handleIntersectionResults(result, left, right) {
4761
5214
  return result;
4762
5215
  const merged = mergeValues(left.value, right.value);
4763
5216
  if (!merged.valid) {
4764
- throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(merged.mergeErrorPath)}`);
5217
+ throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);
4765
5218
  }
4766
5219
  result.value = merged.data;
4767
5220
  return result;
@@ -11679,10 +12132,10 @@ function _property(property, schema, params) {
11679
12132
  ...normalizeParams(params)
11680
12133
  });
11681
12134
  }
11682
- function _mime(types, params) {
12135
+ function _mime(types2, params) {
11683
12136
  return new $ZodCheckMimeType({
11684
12137
  check: "mime_type",
11685
- mime: types,
12138
+ mime: types2,
11686
12139
  ...normalizeParams(params)
11687
12140
  });
11688
12141
  }
@@ -12005,13 +12458,13 @@ function _stringbool(Classes, _params) {
12005
12458
  });
12006
12459
  return codec;
12007
12460
  }
12008
- function _stringFormat(Class2, format, fnOrRegex, _params = {}) {
12461
+ function _stringFormat(Class2, format2, fnOrRegex, _params = {}) {
12009
12462
  const params = normalizeParams(_params);
12010
12463
  const def = {
12011
12464
  ...normalizeParams(_params),
12012
12465
  check: "string_format",
12013
12466
  type: "string",
12014
- format,
12467
+ format: format2,
12015
12468
  fn: typeof fnOrRegex === "function" ? fnOrRegex : (val) => fnOrRegex.test(val),
12016
12469
  ...params
12017
12470
  };
@@ -12149,9 +12602,7 @@ function extractDefs(ctx, schema) {
12149
12602
  for (const entry of ctx.seen.entries()) {
12150
12603
  const seen = entry[1];
12151
12604
  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.`);
12605
+ throw new Error("Cycle detected: " + `#/${seen.cycle?.join("/")}/<root>` + '\n\nSet the `cycles` parameter to `"ref"` to resolve cyclical schemas with defs.');
12155
12606
  }
12156
12607
  }
12157
12608
  }
@@ -12377,16 +12828,16 @@ var formatMap = {
12377
12828
  var stringProcessor = (schema, ctx, _json, _params) => {
12378
12829
  const json = _json;
12379
12830
  json.type = "string";
12380
- const { minimum, maximum, format, patterns: patterns2, contentEncoding } = schema._zod.bag;
12831
+ const { minimum, maximum, format: format2, patterns: patterns2, contentEncoding } = schema._zod.bag;
12381
12832
  if (typeof minimum === "number")
12382
12833
  json.minLength = minimum;
12383
12834
  if (typeof maximum === "number")
12384
12835
  json.maxLength = maximum;
12385
- if (format) {
12386
- json.format = formatMap[format] ?? format;
12836
+ if (format2) {
12837
+ json.format = formatMap[format2] ?? format2;
12387
12838
  if (json.format === "")
12388
12839
  delete json.format;
12389
- if (format === "time") {
12840
+ if (format2 === "time") {
12390
12841
  delete json.format;
12391
12842
  }
12392
12843
  }
@@ -12408,8 +12859,8 @@ var stringProcessor = (schema, ctx, _json, _params) => {
12408
12859
  };
12409
12860
  var numberProcessor = (schema, ctx, _json, _params) => {
12410
12861
  const json = _json;
12411
- const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag;
12412
- if (typeof format === "string" && format.includes("int"))
12862
+ const { minimum, maximum, format: format2, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag;
12863
+ if (typeof format2 === "string" && format2.includes("int"))
12413
12864
  json.type = "integer";
12414
12865
  else
12415
12866
  json.type = "number";
@@ -13214,7 +13665,7 @@ var initializer2 = (inst, issues) => {
13214
13665
  inst.name = "ZodError";
13215
13666
  Object.defineProperties(inst, {
13216
13667
  format: {
13217
- value: (mapper) => formatError(inst, mapper)
13668
+ value: (mapper) => formatError2(inst, mapper)
13218
13669
  },
13219
13670
  flatten: {
13220
13671
  value: (mapper) => flattenError(inst, mapper)
@@ -13267,7 +13718,7 @@ var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
13267
13718
  inst.type = def.type;
13268
13719
  Object.defineProperty(inst, "_def", { value: def });
13269
13720
  inst.check = (...checks2) => {
13270
- return inst.clone(exports_util.mergeDefs(def, {
13721
+ return inst.clone(exports_util2.mergeDefs(def, {
13271
13722
  checks: [
13272
13723
  ...def.checks ?? [],
13273
13724
  ...checks2.map((ch) => typeof ch === "function" ? { _zod: { check: ch, def: { check: "custom" }, onattach: [] } } : ch)
@@ -13440,7 +13891,7 @@ function httpUrl(params) {
13440
13891
  return _url(ZodURL, {
13441
13892
  protocol: /^https?$/,
13442
13893
  hostname: exports_regexes.domain,
13443
- ...exports_util.normalizeParams(params)
13894
+ ...exports_util2.normalizeParams(params)
13444
13895
  });
13445
13896
  }
13446
13897
  var ZodEmoji = /* @__PURE__ */ $constructor("ZodEmoji", (inst, def) => {
@@ -13559,8 +14010,8 @@ var ZodCustomStringFormat = /* @__PURE__ */ $constructor("ZodCustomStringFormat"
13559
14010
  $ZodCustomStringFormat.init(inst, def);
13560
14011
  ZodStringFormat.init(inst, def);
13561
14012
  });
13562
- function stringFormat(format, fnOrRegex, _params = {}) {
13563
- return _stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);
14013
+ function stringFormat(format2, fnOrRegex, _params = {}) {
14014
+ return _stringFormat(ZodCustomStringFormat, format2, fnOrRegex, _params);
13564
14015
  }
13565
14016
  function hostname2(_params) {
13566
14017
  return _stringFormat(ZodCustomStringFormat, "hostname", exports_regexes.hostname, _params);
@@ -13570,11 +14021,11 @@ function hex2(_params) {
13570
14021
  }
13571
14022
  function hash(alg, params) {
13572
14023
  const enc = params?.enc ?? "hex";
13573
- const format = `${alg}_${enc}`;
13574
- const regex = exports_regexes[format];
14024
+ const format2 = `${alg}_${enc}`;
14025
+ const regex = exports_regexes[format2];
13575
14026
  if (!regex)
13576
- throw new Error(`Unrecognized hash format: ${format}`);
13577
- return _stringFormat(ZodCustomStringFormat, format, regex, params);
14027
+ throw new Error(`Unrecognized hash format: ${format2}`);
14028
+ return _stringFormat(ZodCustomStringFormat, format2, regex, params);
13578
14029
  }
13579
14030
  var ZodNumber = /* @__PURE__ */ $constructor("ZodNumber", (inst, def) => {
13580
14031
  $ZodNumber.init(inst, def);
@@ -13758,7 +14209,7 @@ var ZodObject = /* @__PURE__ */ $constructor("ZodObject", (inst, def) => {
13758
14209
  $ZodObjectJIT.init(inst, def);
13759
14210
  ZodType.init(inst, def);
13760
14211
  inst._zod.processJSONSchema = (ctx, json, params) => objectProcessor(inst, ctx, json, params);
13761
- exports_util.defineLazy(inst, "shape", () => {
14212
+ exports_util2.defineLazy(inst, "shape", () => {
13762
14213
  return def.shape;
13763
14214
  });
13764
14215
  inst.keyof = () => _enum2(Object.keys(inst._zod.def.shape));
@@ -13768,22 +14219,22 @@ var ZodObject = /* @__PURE__ */ $constructor("ZodObject", (inst, def) => {
13768
14219
  inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });
13769
14220
  inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });
13770
14221
  inst.extend = (incoming) => {
13771
- return exports_util.extend(inst, incoming);
14222
+ return exports_util2.extend(inst, incoming);
13772
14223
  };
13773
14224
  inst.safeExtend = (incoming) => {
13774
- return exports_util.safeExtend(inst, incoming);
14225
+ return exports_util2.safeExtend(inst, incoming);
13775
14226
  };
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]);
14227
+ inst.merge = (other) => exports_util2.merge(inst, other);
14228
+ inst.pick = (mask) => exports_util2.pick(inst, mask);
14229
+ inst.omit = (mask) => exports_util2.omit(inst, mask);
14230
+ inst.partial = (...args) => exports_util2.partial(ZodOptional, inst, args[0]);
14231
+ inst.required = (...args) => exports_util2.required(ZodNonOptional, inst, args[0]);
13781
14232
  });
13782
14233
  function object(shape, params) {
13783
14234
  const def = {
13784
14235
  type: "object",
13785
14236
  shape: shape ?? {},
13786
- ...exports_util.normalizeParams(params)
14237
+ ...exports_util2.normalizeParams(params)
13787
14238
  };
13788
14239
  return new ZodObject(def);
13789
14240
  }
@@ -13792,7 +14243,7 @@ function strictObject(shape, params) {
13792
14243
  type: "object",
13793
14244
  shape,
13794
14245
  catchall: never(),
13795
- ...exports_util.normalizeParams(params)
14246
+ ...exports_util2.normalizeParams(params)
13796
14247
  });
13797
14248
  }
13798
14249
  function looseObject(shape, params) {
@@ -13800,7 +14251,7 @@ function looseObject(shape, params) {
13800
14251
  type: "object",
13801
14252
  shape,
13802
14253
  catchall: unknown(),
13803
- ...exports_util.normalizeParams(params)
14254
+ ...exports_util2.normalizeParams(params)
13804
14255
  });
13805
14256
  }
13806
14257
  var ZodUnion = /* @__PURE__ */ $constructor("ZodUnion", (inst, def) => {
@@ -13813,7 +14264,7 @@ function union(options, params) {
13813
14264
  return new ZodUnion({
13814
14265
  type: "union",
13815
14266
  options,
13816
- ...exports_util.normalizeParams(params)
14267
+ ...exports_util2.normalizeParams(params)
13817
14268
  });
13818
14269
  }
13819
14270
  var ZodXor = /* @__PURE__ */ $constructor("ZodXor", (inst, def) => {
@@ -13827,7 +14278,7 @@ function xor(options, params) {
13827
14278
  type: "union",
13828
14279
  options,
13829
14280
  inclusive: false,
13830
- ...exports_util.normalizeParams(params)
14281
+ ...exports_util2.normalizeParams(params)
13831
14282
  });
13832
14283
  }
13833
14284
  var ZodDiscriminatedUnion = /* @__PURE__ */ $constructor("ZodDiscriminatedUnion", (inst, def) => {
@@ -13839,7 +14290,7 @@ function discriminatedUnion(discriminator, options, params) {
13839
14290
  type: "union",
13840
14291
  options,
13841
14292
  discriminator,
13842
- ...exports_util.normalizeParams(params)
14293
+ ...exports_util2.normalizeParams(params)
13843
14294
  });
13844
14295
  }
13845
14296
  var ZodIntersection = /* @__PURE__ */ $constructor("ZodIntersection", (inst, def) => {
@@ -13871,7 +14322,7 @@ function tuple(items, _paramsOrRest, _params) {
13871
14322
  type: "tuple",
13872
14323
  items,
13873
14324
  rest,
13874
- ...exports_util.normalizeParams(params)
14325
+ ...exports_util2.normalizeParams(params)
13875
14326
  });
13876
14327
  }
13877
14328
  var ZodRecord = /* @__PURE__ */ $constructor("ZodRecord", (inst, def) => {
@@ -13886,7 +14337,7 @@ function record(keyType, valueType, params) {
13886
14337
  type: "record",
13887
14338
  keyType,
13888
14339
  valueType,
13889
- ...exports_util.normalizeParams(params)
14340
+ ...exports_util2.normalizeParams(params)
13890
14341
  });
13891
14342
  }
13892
14343
  function partialRecord(keyType, valueType, params) {
@@ -13896,7 +14347,7 @@ function partialRecord(keyType, valueType, params) {
13896
14347
  type: "record",
13897
14348
  keyType: k,
13898
14349
  valueType,
13899
- ...exports_util.normalizeParams(params)
14350
+ ...exports_util2.normalizeParams(params)
13900
14351
  });
13901
14352
  }
13902
14353
  function looseRecord(keyType, valueType, params) {
@@ -13905,7 +14356,7 @@ function looseRecord(keyType, valueType, params) {
13905
14356
  keyType,
13906
14357
  valueType,
13907
14358
  mode: "loose",
13908
- ...exports_util.normalizeParams(params)
14359
+ ...exports_util2.normalizeParams(params)
13909
14360
  });
13910
14361
  }
13911
14362
  var ZodMap = /* @__PURE__ */ $constructor("ZodMap", (inst, def) => {
@@ -13924,7 +14375,7 @@ function map(keyType, valueType, params) {
13924
14375
  type: "map",
13925
14376
  keyType,
13926
14377
  valueType,
13927
- ...exports_util.normalizeParams(params)
14378
+ ...exports_util2.normalizeParams(params)
13928
14379
  });
13929
14380
  }
13930
14381
  var ZodSet = /* @__PURE__ */ $constructor("ZodSet", (inst, def) => {
@@ -13940,7 +14391,7 @@ function set(valueType, params) {
13940
14391
  return new ZodSet({
13941
14392
  type: "set",
13942
14393
  valueType,
13943
- ...exports_util.normalizeParams(params)
14394
+ ...exports_util2.normalizeParams(params)
13944
14395
  });
13945
14396
  }
13946
14397
  var ZodEnum = /* @__PURE__ */ $constructor("ZodEnum", (inst, def) => {
@@ -13961,7 +14412,7 @@ var ZodEnum = /* @__PURE__ */ $constructor("ZodEnum", (inst, def) => {
13961
14412
  return new ZodEnum({
13962
14413
  ...def,
13963
14414
  checks: [],
13964
- ...exports_util.normalizeParams(params),
14415
+ ...exports_util2.normalizeParams(params),
13965
14416
  entries: newEntries
13966
14417
  });
13967
14418
  };
@@ -13976,7 +14427,7 @@ var ZodEnum = /* @__PURE__ */ $constructor("ZodEnum", (inst, def) => {
13976
14427
  return new ZodEnum({
13977
14428
  ...def,
13978
14429
  checks: [],
13979
- ...exports_util.normalizeParams(params),
14430
+ ...exports_util2.normalizeParams(params),
13980
14431
  entries: newEntries
13981
14432
  });
13982
14433
  };
@@ -13986,14 +14437,14 @@ function _enum2(values, params) {
13986
14437
  return new ZodEnum({
13987
14438
  type: "enum",
13988
14439
  entries,
13989
- ...exports_util.normalizeParams(params)
14440
+ ...exports_util2.normalizeParams(params)
13990
14441
  });
13991
14442
  }
13992
14443
  function nativeEnum(entries, params) {
13993
14444
  return new ZodEnum({
13994
14445
  type: "enum",
13995
14446
  entries,
13996
- ...exports_util.normalizeParams(params)
14447
+ ...exports_util2.normalizeParams(params)
13997
14448
  });
13998
14449
  }
13999
14450
  var ZodLiteral = /* @__PURE__ */ $constructor("ZodLiteral", (inst, def) => {
@@ -14014,7 +14465,7 @@ function literal(value, params) {
14014
14465
  return new ZodLiteral({
14015
14466
  type: "literal",
14016
14467
  values: Array.isArray(value) ? value : [value],
14017
- ...exports_util.normalizeParams(params)
14468
+ ...exports_util2.normalizeParams(params)
14018
14469
  });
14019
14470
  }
14020
14471
  var ZodFile = /* @__PURE__ */ $constructor("ZodFile", (inst, def) => {
@@ -14023,7 +14474,7 @@ var ZodFile = /* @__PURE__ */ $constructor("ZodFile", (inst, def) => {
14023
14474
  inst._zod.processJSONSchema = (ctx, json, params) => fileProcessor(inst, ctx, json, params);
14024
14475
  inst.min = (size, params) => inst.check(_minSize(size, params));
14025
14476
  inst.max = (size, params) => inst.check(_maxSize(size, params));
14026
- inst.mime = (types, params) => inst.check(_mime(Array.isArray(types) ? types : [types], params));
14477
+ inst.mime = (types2, params) => inst.check(_mime(Array.isArray(types2) ? types2 : [types2], params));
14027
14478
  });
14028
14479
  function file(params) {
14029
14480
  return _file(ZodFile, params);
@@ -14038,7 +14489,7 @@ var ZodTransform = /* @__PURE__ */ $constructor("ZodTransform", (inst, def) => {
14038
14489
  }
14039
14490
  payload.addIssue = (issue3) => {
14040
14491
  if (typeof issue3 === "string") {
14041
- payload.issues.push(exports_util.issue(issue3, payload.value, def));
14492
+ payload.issues.push(exports_util2.issue(issue3, payload.value, def));
14042
14493
  } else {
14043
14494
  const _issue = issue3;
14044
14495
  if (_issue.fatal)
@@ -14046,7 +14497,7 @@ var ZodTransform = /* @__PURE__ */ $constructor("ZodTransform", (inst, def) => {
14046
14497
  _issue.code ?? (_issue.code = "custom");
14047
14498
  _issue.input ?? (_issue.input = payload.value);
14048
14499
  _issue.inst ?? (_issue.inst = inst);
14049
- payload.issues.push(exports_util.issue(_issue));
14500
+ payload.issues.push(exports_util2.issue(_issue));
14050
14501
  }
14051
14502
  };
14052
14503
  const output = def.transform(payload.value, payload);
@@ -14117,7 +14568,7 @@ function _default2(innerType, defaultValue) {
14117
14568
  type: "default",
14118
14569
  innerType,
14119
14570
  get defaultValue() {
14120
- return typeof defaultValue === "function" ? defaultValue() : exports_util.shallowClone(defaultValue);
14571
+ return typeof defaultValue === "function" ? defaultValue() : exports_util2.shallowClone(defaultValue);
14121
14572
  }
14122
14573
  });
14123
14574
  }
@@ -14132,7 +14583,7 @@ function prefault(innerType, defaultValue) {
14132
14583
  type: "prefault",
14133
14584
  innerType,
14134
14585
  get defaultValue() {
14135
- return typeof defaultValue === "function" ? defaultValue() : exports_util.shallowClone(defaultValue);
14586
+ return typeof defaultValue === "function" ? defaultValue() : exports_util2.shallowClone(defaultValue);
14136
14587
  }
14137
14588
  });
14138
14589
  }
@@ -14146,7 +14597,7 @@ function nonoptional(innerType, params) {
14146
14597
  return new ZodNonOptional({
14147
14598
  type: "nonoptional",
14148
14599
  innerType,
14149
- ...exports_util.normalizeParams(params)
14600
+ ...exports_util2.normalizeParams(params)
14150
14601
  });
14151
14602
  }
14152
14603
  var ZodSuccess = /* @__PURE__ */ $constructor("ZodSuccess", (inst, def) => {
@@ -14231,7 +14682,7 @@ function templateLiteral(parts, params) {
14231
14682
  return new ZodTemplateLiteral({
14232
14683
  type: "template_literal",
14233
14684
  parts,
14234
- ...exports_util.normalizeParams(params)
14685
+ ...exports_util2.normalizeParams(params)
14235
14686
  });
14236
14687
  }
14237
14688
  var ZodLazy = /* @__PURE__ */ $constructor("ZodLazy", (inst, def) => {
@@ -14299,7 +14750,7 @@ function _instanceof(cls, params = {}) {
14299
14750
  check: "custom",
14300
14751
  fn: (data) => data instanceof cls,
14301
14752
  abort: true,
14302
- ...exports_util.normalizeParams(params)
14753
+ ...exports_util2.normalizeParams(params)
14303
14754
  });
14304
14755
  inst._zod.bag.Class = cls;
14305
14756
  inst._zod.check = (payload) => {
@@ -14531,52 +14982,52 @@ function convertBaseSchema(schema, ctx) {
14531
14982
  case "string": {
14532
14983
  let stringSchema = z.string();
14533
14984
  if (schema.format) {
14534
- const format = schema.format;
14535
- if (format === "email") {
14985
+ const format2 = schema.format;
14986
+ if (format2 === "email") {
14536
14987
  stringSchema = stringSchema.check(z.email());
14537
- } else if (format === "uri" || format === "uri-reference") {
14988
+ } else if (format2 === "uri" || format2 === "uri-reference") {
14538
14989
  stringSchema = stringSchema.check(z.url());
14539
- } else if (format === "uuid" || format === "guid") {
14990
+ } else if (format2 === "uuid" || format2 === "guid") {
14540
14991
  stringSchema = stringSchema.check(z.uuid());
14541
- } else if (format === "date-time") {
14992
+ } else if (format2 === "date-time") {
14542
14993
  stringSchema = stringSchema.check(z.iso.datetime());
14543
- } else if (format === "date") {
14994
+ } else if (format2 === "date") {
14544
14995
  stringSchema = stringSchema.check(z.iso.date());
14545
- } else if (format === "time") {
14996
+ } else if (format2 === "time") {
14546
14997
  stringSchema = stringSchema.check(z.iso.time());
14547
- } else if (format === "duration") {
14998
+ } else if (format2 === "duration") {
14548
14999
  stringSchema = stringSchema.check(z.iso.duration());
14549
- } else if (format === "ipv4") {
15000
+ } else if (format2 === "ipv4") {
14550
15001
  stringSchema = stringSchema.check(z.ipv4());
14551
- } else if (format === "ipv6") {
15002
+ } else if (format2 === "ipv6") {
14552
15003
  stringSchema = stringSchema.check(z.ipv6());
14553
- } else if (format === "mac") {
15004
+ } else if (format2 === "mac") {
14554
15005
  stringSchema = stringSchema.check(z.mac());
14555
- } else if (format === "cidr") {
15006
+ } else if (format2 === "cidr") {
14556
15007
  stringSchema = stringSchema.check(z.cidrv4());
14557
- } else if (format === "cidr-v6") {
15008
+ } else if (format2 === "cidr-v6") {
14558
15009
  stringSchema = stringSchema.check(z.cidrv6());
14559
- } else if (format === "base64") {
15010
+ } else if (format2 === "base64") {
14560
15011
  stringSchema = stringSchema.check(z.base64());
14561
- } else if (format === "base64url") {
15012
+ } else if (format2 === "base64url") {
14562
15013
  stringSchema = stringSchema.check(z.base64url());
14563
- } else if (format === "e164") {
15014
+ } else if (format2 === "e164") {
14564
15015
  stringSchema = stringSchema.check(z.e164());
14565
- } else if (format === "jwt") {
15016
+ } else if (format2 === "jwt") {
14566
15017
  stringSchema = stringSchema.check(z.jwt());
14567
- } else if (format === "emoji") {
15018
+ } else if (format2 === "emoji") {
14568
15019
  stringSchema = stringSchema.check(z.emoji());
14569
- } else if (format === "nanoid") {
15020
+ } else if (format2 === "nanoid") {
14570
15021
  stringSchema = stringSchema.check(z.nanoid());
14571
- } else if (format === "cuid") {
15022
+ } else if (format2 === "cuid") {
14572
15023
  stringSchema = stringSchema.check(z.cuid());
14573
- } else if (format === "cuid2") {
15024
+ } else if (format2 === "cuid2") {
14574
15025
  stringSchema = stringSchema.check(z.cuid2());
14575
- } else if (format === "ulid") {
15026
+ } else if (format2 === "ulid") {
14576
15027
  stringSchema = stringSchema.check(z.ulid());
14577
- } else if (format === "xid") {
15028
+ } else if (format2 === "xid") {
14578
15029
  stringSchema = stringSchema.check(z.xid());
14579
- } else if (format === "ksuid") {
15030
+ } else if (format2 === "ksuid") {
14580
15031
  stringSchema = stringSchema.check(z.ksuid());
14581
15032
  }
14582
15033
  }
@@ -15014,6 +15465,8 @@ var ActivityCompletedInput = exports_external.object({
15014
15465
  metricsId: exports_external.string().optional(),
15015
15466
  id: exports_external.string().optional(),
15016
15467
  extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
15468
+ edApp: exports_external.union([exports_external.string(), exports_external.record(exports_external.string(), exports_external.unknown())]).optional(),
15469
+ session: exports_external.union([exports_external.string(), exports_external.record(exports_external.string(), exports_external.unknown())]).optional(),
15017
15470
  attempt: exports_external.number().int().min(1).optional(),
15018
15471
  generatedExtensions: exports_external.object({
15019
15472
  pctCompleteApp: exports_external.number().optional()
@@ -15026,7 +15479,9 @@ var TimeSpentInput = exports_external.object({
15026
15479
  eventTime: IsoDateTimeString.optional(),
15027
15480
  metricsId: exports_external.string().optional(),
15028
15481
  id: exports_external.string().optional(),
15029
- extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15482
+ extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
15483
+ edApp: exports_external.union([exports_external.string(), exports_external.record(exports_external.string(), exports_external.unknown())]).optional(),
15484
+ session: exports_external.union([exports_external.string(), exports_external.record(exports_external.string(), exports_external.unknown())]).optional()
15030
15485
  }).strict();
15031
15486
  var TimebackEvent = exports_external.union([TimebackActivityEvent, TimebackTimeSpentEvent]);
15032
15487
  var CaliperEnvelope = exports_external.object({
@@ -15099,6 +15554,210 @@ var CaliperListEventsParams = exports_external.object({
15099
15554
  actorId: exports_external.string().min(1).optional(),
15100
15555
  actorEmail: exports_external.email().optional()
15101
15556
  }).strict();
15557
+ var WebhookCreateInput = exports_external.object({
15558
+ name: exports_external.string().min(1, "name must be a non-empty string"),
15559
+ targetUrl: exports_external.url("targetUrl must be a valid URL"),
15560
+ secret: exports_external.string().min(1, "secret must be a non-empty string"),
15561
+ active: exports_external.boolean(),
15562
+ sensor: exports_external.string().nullable().optional(),
15563
+ description: exports_external.string().nullable().optional()
15564
+ }).strict();
15565
+ var WebhookFilterType = exports_external.enum(["string", "number", "boolean"]);
15566
+ var WebhookFilterOperation = exports_external.enum([
15567
+ "eq",
15568
+ "neq",
15569
+ "gt",
15570
+ "gte",
15571
+ "lt",
15572
+ "lte",
15573
+ "contains",
15574
+ "notContains",
15575
+ "in",
15576
+ "notIn",
15577
+ "startsWith",
15578
+ "endsWith",
15579
+ "regexp"
15580
+ ]);
15581
+ var WebhookFilterCreateInput = exports_external.object({
15582
+ webhookId: exports_external.string().min(1, "webhookId must be a non-empty string"),
15583
+ filterKey: exports_external.string().min(1, "filterKey must be a non-empty string"),
15584
+ filterValue: exports_external.string().min(1, "filterValue must be a non-empty string"),
15585
+ filterType: WebhookFilterType,
15586
+ filterOperator: WebhookFilterOperation,
15587
+ active: exports_external.boolean()
15588
+ }).strict();
15589
+ var NonEmptyString = exports_external.string().trim().min(1);
15590
+ var InputNodeURISchema = exports_external.object({
15591
+ title: NonEmptyString,
15592
+ identifier: NonEmptyString,
15593
+ uri: NonEmptyString
15594
+ });
15595
+ var CFDocumentInputSchema = exports_external.object({
15596
+ identifier: NonEmptyString,
15597
+ uri: NonEmptyString,
15598
+ lastChangeDateTime: NonEmptyString,
15599
+ title: NonEmptyString,
15600
+ creator: NonEmptyString,
15601
+ officialSourceURL: exports_external.string().optional(),
15602
+ publisher: exports_external.string().optional(),
15603
+ description: exports_external.string().optional(),
15604
+ language: exports_external.string().optional(),
15605
+ version: exports_external.string().optional(),
15606
+ caseVersion: exports_external.string().optional(),
15607
+ adoptionStatus: exports_external.string().optional(),
15608
+ statusStartDate: exports_external.string().optional(),
15609
+ statusEndDate: exports_external.string().optional(),
15610
+ licenseUri: exports_external.string().optional(),
15611
+ notes: exports_external.string().optional(),
15612
+ subject: exports_external.array(exports_external.string()).optional(),
15613
+ extensions: exports_external.unknown().optional()
15614
+ });
15615
+ var CFItemInputSchema = exports_external.object({
15616
+ identifier: NonEmptyString,
15617
+ uri: NonEmptyString,
15618
+ lastChangeDateTime: NonEmptyString,
15619
+ fullStatement: NonEmptyString,
15620
+ alternativeLabel: exports_external.string().optional(),
15621
+ CFItemType: exports_external.string().optional(),
15622
+ cfItemType: exports_external.string().optional(),
15623
+ humanCodingScheme: exports_external.string().optional(),
15624
+ listEnumeration: exports_external.string().optional(),
15625
+ abbreviatedStatement: exports_external.string().optional(),
15626
+ conceptKeywords: exports_external.array(exports_external.string()).optional(),
15627
+ notes: exports_external.string().optional(),
15628
+ subject: exports_external.array(exports_external.string()).optional(),
15629
+ language: exports_external.string().optional(),
15630
+ educationLevel: exports_external.array(exports_external.string()).optional(),
15631
+ CFItemTypeURI: exports_external.unknown().optional(),
15632
+ licenseURI: exports_external.unknown().optional(),
15633
+ statusStartDate: exports_external.string().optional(),
15634
+ statusEndDate: exports_external.string().optional(),
15635
+ extensions: exports_external.unknown().optional()
15636
+ });
15637
+ var CFAssociationInputSchema = exports_external.object({
15638
+ identifier: NonEmptyString,
15639
+ uri: NonEmptyString,
15640
+ lastChangeDateTime: NonEmptyString,
15641
+ associationType: NonEmptyString,
15642
+ originNodeURI: InputNodeURISchema,
15643
+ destinationNodeURI: InputNodeURISchema,
15644
+ sequenceNumber: exports_external.number().optional(),
15645
+ extensions: exports_external.unknown().optional()
15646
+ });
15647
+ var CFDefinitionsSchema = exports_external.object({
15648
+ CFItemTypes: exports_external.array(exports_external.unknown()).optional(),
15649
+ CFSubjects: exports_external.array(exports_external.unknown()).optional(),
15650
+ CFConcepts: exports_external.array(exports_external.unknown()).optional(),
15651
+ CFLicenses: exports_external.array(exports_external.unknown()).optional(),
15652
+ CFAssociationGroupings: exports_external.array(exports_external.unknown()).optional(),
15653
+ extensions: exports_external.unknown().optional()
15654
+ });
15655
+ var CasePackageInput = exports_external.object({
15656
+ CFDocument: CFDocumentInputSchema,
15657
+ CFItems: exports_external.array(CFItemInputSchema),
15658
+ CFAssociations: exports_external.array(CFAssociationInputSchema),
15659
+ CFDefinitions: CFDefinitionsSchema.optional(),
15660
+ extensions: exports_external.unknown().optional()
15661
+ });
15662
+ var NonEmptyString2 = exports_external.string().trim().min(1);
15663
+ var NonEmptyStringArray = exports_external.array(exports_external.string()).min(1);
15664
+ var ClrImageSchema = exports_external.object({
15665
+ id: NonEmptyString2,
15666
+ type: exports_external.literal("Image"),
15667
+ caption: exports_external.string().optional()
15668
+ });
15669
+ var ClrProfileSchema = exports_external.object({
15670
+ id: NonEmptyString2,
15671
+ type: NonEmptyStringArray,
15672
+ name: exports_external.string().optional(),
15673
+ url: exports_external.string().optional(),
15674
+ phone: exports_external.string().optional(),
15675
+ description: exports_external.string().optional(),
15676
+ image: ClrImageSchema.optional(),
15677
+ email: exports_external.string().optional()
15678
+ });
15679
+ var ClrProofSchema = exports_external.object({
15680
+ type: NonEmptyString2,
15681
+ proofPurpose: NonEmptyString2,
15682
+ verificationMethod: NonEmptyString2,
15683
+ created: NonEmptyString2,
15684
+ proofValue: NonEmptyString2,
15685
+ cryptosuite: exports_external.string().optional()
15686
+ });
15687
+ var ClrCredentialSchemaSchema = exports_external.object({
15688
+ id: NonEmptyString2,
15689
+ type: exports_external.literal("1EdTechJsonSchemaValidator2019")
15690
+ });
15691
+ var AchievementCriteriaSchema = exports_external.object({
15692
+ id: exports_external.string().optional(),
15693
+ narrative: exports_external.string().optional()
15694
+ });
15695
+ var AchievementSchema = exports_external.object({
15696
+ id: NonEmptyString2,
15697
+ type: NonEmptyStringArray,
15698
+ name: NonEmptyString2,
15699
+ description: NonEmptyString2,
15700
+ criteria: AchievementCriteriaSchema,
15701
+ image: ClrImageSchema.optional(),
15702
+ achievementType: exports_external.string().optional(),
15703
+ creator: ClrProfileSchema.optional()
15704
+ });
15705
+ var IdentityObjectSchema = exports_external.object({
15706
+ type: exports_external.literal("IdentityObject"),
15707
+ identityHash: NonEmptyString2,
15708
+ identityType: NonEmptyString2,
15709
+ hashed: exports_external.boolean(),
15710
+ salt: exports_external.string().optional()
15711
+ });
15712
+ var AssociationTypeSchema = exports_external.enum([
15713
+ "exactMatchOf",
15714
+ "isChildOf",
15715
+ "isParentOf",
15716
+ "isPartOf",
15717
+ "isPeerOf",
15718
+ "isRelatedTo",
15719
+ "precedes",
15720
+ "replacedBy"
15721
+ ]);
15722
+ var AssociationSchema = exports_external.object({
15723
+ type: exports_external.literal("Association"),
15724
+ associationType: AssociationTypeSchema,
15725
+ sourceId: NonEmptyString2,
15726
+ targetId: NonEmptyString2
15727
+ });
15728
+ var VerifiableCredentialSchema = exports_external.object({
15729
+ "@context": NonEmptyStringArray,
15730
+ id: NonEmptyString2,
15731
+ type: NonEmptyStringArray,
15732
+ issuer: ClrProfileSchema,
15733
+ validFrom: NonEmptyString2,
15734
+ validUntil: exports_external.string().optional(),
15735
+ credentialSubject: exports_external.object({
15736
+ id: exports_external.string().optional()
15737
+ }),
15738
+ proof: exports_external.array(ClrProofSchema).optional()
15739
+ });
15740
+ var ClrCredentialSubjectSchema = exports_external.object({
15741
+ id: exports_external.string().optional(),
15742
+ type: NonEmptyStringArray,
15743
+ identifier: exports_external.array(IdentityObjectSchema).optional(),
15744
+ achievement: exports_external.array(AchievementSchema).optional(),
15745
+ verifiableCredential: exports_external.array(VerifiableCredentialSchema).min(1),
15746
+ association: exports_external.array(AssociationSchema).optional()
15747
+ });
15748
+ var ClrCredentialInput = exports_external.object({
15749
+ "@context": NonEmptyStringArray,
15750
+ id: NonEmptyString2,
15751
+ type: NonEmptyStringArray,
15752
+ issuer: ClrProfileSchema,
15753
+ name: NonEmptyString2,
15754
+ description: exports_external.string().optional(),
15755
+ validFrom: NonEmptyString2,
15756
+ validUntil: exports_external.string().optional(),
15757
+ credentialSubject: ClrCredentialSubjectSchema,
15758
+ proof: exports_external.array(ClrProofSchema).optional(),
15759
+ credentialSchema: exports_external.array(ClrCredentialSchemaSchema).optional()
15760
+ });
15102
15761
  var CourseIds = exports_external.object({
15103
15762
  staging: exports_external.string().meta({ description: "Course ID in staging environment" }).optional(),
15104
15763
  production: exports_external.string().meta({ description: "Course ID in production environment" }).optional()
@@ -15173,7 +15832,12 @@ var TimebackConfig = exports_external.object({
15173
15832
  }).optional(),
15174
15833
  courses: exports_external.array(CourseConfig).min(1, "At least one course is required").meta({ description: "Courses available in this app" }),
15175
15834
  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()
15835
+ launchUrl: exports_external.url().meta({ description: "Default LTI launch URL for all courses" }).optional(),
15836
+ studio: exports_external.object({
15837
+ telemetry: exports_external.boolean().meta({
15838
+ description: "Enable anonymous usage telemetry for Studio (default: true)"
15839
+ }).optional().default(true)
15840
+ }).meta({ description: "Studio-specific configuration" }).optional()
15177
15841
  }).meta({
15178
15842
  id: "TimebackConfig",
15179
15843
  title: "Timeback Config",
@@ -15214,7 +15878,7 @@ var TimebackConfig = exports_external.object({
15214
15878
  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
15879
  path: ["courses"]
15216
15880
  });
15217
- var EdubridgeDateString = IsoDateTimeString;
15881
+ var EdubridgeDateString = exports_external.union([IsoDateTimeString, IsoDateString]);
15218
15882
  var EduBridgeEnrollment = exports_external.object({
15219
15883
  id: exports_external.string(),
15220
15884
  role: exports_external.string(),
@@ -15258,10 +15922,10 @@ var EduBridgeEnrollmentAnalyticsResponse = exports_external.object({
15258
15922
  facts: EduBridgeAnalyticsFacts,
15259
15923
  factsByApp: exports_external.unknown()
15260
15924
  });
15261
- var NonEmptyString = exports_external.string().trim().min(1);
15925
+ var NonEmptyString3 = exports_external.string().trim().min(1);
15262
15926
  var EmailOrStudentId = exports_external.object({
15263
15927
  email: exports_external.email().optional(),
15264
- studentId: NonEmptyString.optional()
15928
+ studentId: NonEmptyString3.optional()
15265
15929
  }).superRefine((value, ctx) => {
15266
15930
  if (!value.email && !value.studentId) {
15267
15931
  ctx.addIssue({
@@ -15277,17 +15941,17 @@ var EmailOrStudentId = exports_external.object({
15277
15941
  }
15278
15942
  });
15279
15943
  var SubjectTrackInput = exports_external.object({
15280
- subject: NonEmptyString,
15281
- grade: NonEmptyString,
15282
- courseId: NonEmptyString,
15283
- orgSourcedId: NonEmptyString.optional()
15944
+ subject: NonEmptyString3,
15945
+ grade: NonEmptyString3,
15946
+ courseId: NonEmptyString3,
15947
+ orgSourcedId: NonEmptyString3.optional()
15284
15948
  });
15285
15949
  var SubjectTrackUpsertInput = SubjectTrackInput;
15286
15950
  var EdubridgeListEnrollmentsParams = exports_external.object({
15287
- userId: NonEmptyString
15951
+ userId: NonEmptyString3
15288
15952
  });
15289
15953
  var EdubridgeEnrollOptions = exports_external.object({
15290
- sourcedId: NonEmptyString.optional(),
15954
+ sourcedId: NonEmptyString3.optional(),
15291
15955
  role: EnrollmentRole.optional(),
15292
15956
  beginDate: EdubridgeDateString.optional(),
15293
15957
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
@@ -15301,7 +15965,7 @@ var EdubridgeUsersListParams = exports_external.object({
15301
15965
  filter: exports_external.string().optional(),
15302
15966
  search: exports_external.string().optional(),
15303
15967
  roles: exports_external.array(OneRosterUserRole).min(1),
15304
- orgSourcedIds: exports_external.array(NonEmptyString).optional()
15968
+ orgSourcedIds: exports_external.array(NonEmptyString3).optional()
15305
15969
  });
15306
15970
  var EdubridgeActivityParams = EmailOrStudentId.extend({
15307
15971
  startDate: EdubridgeDateString,
@@ -15313,16 +15977,92 @@ var EdubridgeWeeklyFactsParams = EmailOrStudentId.extend({
15313
15977
  timezone: exports_external.string().optional()
15314
15978
  });
15315
15979
  var EdubridgeEnrollmentFactsParams = exports_external.object({
15316
- enrollmentId: NonEmptyString,
15980
+ enrollmentId: NonEmptyString3,
15317
15981
  startDate: EdubridgeDateString.optional(),
15318
15982
  endDate: EdubridgeDateString.optional(),
15319
15983
  timezone: exports_external.string().optional()
15320
15984
  });
15321
- var NonEmptyString2 = exports_external.string().min(1);
15985
+ var NonEmptyString4 = exports_external.string().trim().min(1);
15986
+ var MasteryTrackAuthorizerInput = exports_external.object({
15987
+ email: exports_external.email()
15988
+ });
15989
+ var MasteryTrackInventorySearchParams = exports_external.object({
15990
+ name: NonEmptyString4.optional(),
15991
+ timeback_id: NonEmptyString4.optional(),
15992
+ grade: NonEmptyString4.optional(),
15993
+ subject: NonEmptyString4.optional(),
15994
+ all: exports_external.boolean().optional()
15995
+ });
15996
+ var MasteryTrackAssignmentInput = exports_external.object({
15997
+ student_email: exports_external.email(),
15998
+ timeback_id: NonEmptyString4.optional(),
15999
+ subject: NonEmptyString4.optional(),
16000
+ grade_rank: exports_external.number().int().min(0).max(12).optional(),
16001
+ assessment_line_item_sourced_id: NonEmptyString4.optional(),
16002
+ assessment_result_sourced_id: NonEmptyString4.optional()
16003
+ }).superRefine((value, ctx) => {
16004
+ const hasTimebackId = !!value.timeback_id;
16005
+ const hasSubject = !!value.subject;
16006
+ const hasGradeRank = value.grade_rank !== undefined;
16007
+ if (!hasTimebackId && !hasSubject) {
16008
+ ctx.addIssue({
16009
+ code: exports_external.ZodIssueCode.custom,
16010
+ message: "must provide either timeback_id or subject",
16011
+ path: ["timeback_id"]
16012
+ });
16013
+ ctx.addIssue({
16014
+ code: exports_external.ZodIssueCode.custom,
16015
+ message: "must provide either timeback_id or subject",
16016
+ path: ["subject"]
16017
+ });
16018
+ }
16019
+ if (hasGradeRank && !hasSubject) {
16020
+ ctx.addIssue({
16021
+ code: exports_external.ZodIssueCode.custom,
16022
+ message: "grade_rank requires subject",
16023
+ path: ["grade_rank"]
16024
+ });
16025
+ }
16026
+ const hasLineItem = !!value.assessment_line_item_sourced_id;
16027
+ const hasResultId = !!value.assessment_result_sourced_id;
16028
+ if (hasLineItem !== hasResultId) {
16029
+ ctx.addIssue({
16030
+ code: exports_external.ZodIssueCode.custom,
16031
+ message: "assessment_line_item_sourced_id and assessment_result_sourced_id must be provided together",
16032
+ path: hasLineItem ? ["assessment_result_sourced_id"] : ["assessment_line_item_sourced_id"]
16033
+ });
16034
+ }
16035
+ });
16036
+ var MasteryTrackInvalidateAssignmentInput = exports_external.object({
16037
+ student_email: exports_external.email(),
16038
+ assignment_id: exports_external.number().int().positive().optional(),
16039
+ timeback_id: NonEmptyString4.optional(),
16040
+ subject: NonEmptyString4.optional(),
16041
+ grade_rank: exports_external.number().int().min(0).max(12).optional()
16042
+ }).superRefine((value, ctx) => {
16043
+ const byAssignment = value.assignment_id !== undefined;
16044
+ const byTimeback = !!value.timeback_id;
16045
+ const bySubjectGrade = !!value.subject && value.grade_rank !== undefined;
16046
+ if (!byAssignment && !byTimeback && !bySubjectGrade) {
16047
+ ctx.addIssue({
16048
+ code: exports_external.ZodIssueCode.custom,
16049
+ message: "Either assignment_id, timeback_id, or (subject and grade_rank) is required",
16050
+ path: ["assignment_id"]
16051
+ });
16052
+ }
16053
+ if (value.grade_rank !== undefined && !value.subject) {
16054
+ ctx.addIssue({
16055
+ code: exports_external.ZodIssueCode.custom,
16056
+ message: "grade_rank requires subject",
16057
+ path: ["grade_rank"]
16058
+ });
16059
+ }
16060
+ });
16061
+ var NonEmptyString5 = exports_external.string().min(1);
15322
16062
  var Status = exports_external.enum(["active", "tobedeleted"]);
15323
16063
  var Metadata = exports_external.record(exports_external.string(), exports_external.unknown()).nullable().optional();
15324
16064
  var Ref = exports_external.object({
15325
- sourcedId: NonEmptyString2,
16065
+ sourcedId: NonEmptyString5,
15326
16066
  type: exports_external.string().optional(),
15327
16067
  href: exports_external.string().optional()
15328
16068
  }).strict();
@@ -15337,58 +16077,58 @@ var OneRosterUserRoleInput = exports_external.object({
15337
16077
  endDate: OneRosterDateString.optional()
15338
16078
  }).strict();
15339
16079
  var OneRosterUserCreateInput = exports_external.object({
15340
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string"),
16080
+ sourcedId: NonEmptyString5.describe("sourcedId must be a non-empty string"),
15341
16081
  status: Status.optional(),
15342
16082
  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(),
16083
+ givenName: NonEmptyString5.describe("givenName must be a non-empty string"),
16084
+ familyName: NonEmptyString5.describe("familyName must be a non-empty string"),
16085
+ middleName: NonEmptyString5.optional(),
16086
+ username: NonEmptyString5.optional(),
15347
16087
  email: exports_external.email().optional(),
15348
16088
  roles: exports_external.array(OneRosterUserRoleInput).min(1, "roles must include at least one role"),
15349
16089
  userIds: exports_external.array(exports_external.object({
15350
- type: NonEmptyString2,
15351
- identifier: NonEmptyString2
16090
+ type: NonEmptyString5,
16091
+ identifier: NonEmptyString5
15352
16092
  }).strict()).optional(),
15353
16093
  agents: exports_external.array(Ref).optional(),
15354
16094
  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(),
16095
+ identifier: NonEmptyString5.optional(),
16096
+ sms: NonEmptyString5.optional(),
16097
+ phone: NonEmptyString5.optional(),
16098
+ pronouns: NonEmptyString5.optional(),
16099
+ password: NonEmptyString5.optional(),
15360
16100
  metadata: Metadata
15361
16101
  }).strict();
15362
16102
  var OneRosterCourseCreateInput = exports_external.object({
15363
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string").optional(),
16103
+ sourcedId: NonEmptyString5.describe("sourcedId must be a non-empty string").optional(),
15364
16104
  status: Status.optional(),
15365
- title: NonEmptyString2.describe("title must be a non-empty string"),
16105
+ title: NonEmptyString5.describe("title must be a non-empty string"),
15366
16106
  org: Ref,
15367
- courseCode: NonEmptyString2.optional(),
16107
+ courseCode: NonEmptyString5.optional(),
15368
16108
  subjects: exports_external.array(TimebackSubject).optional(),
15369
16109
  grades: exports_external.array(TimebackGrade).optional(),
15370
- level: NonEmptyString2.optional(),
16110
+ level: NonEmptyString5.optional(),
15371
16111
  metadata: Metadata
15372
16112
  }).strict();
15373
16113
  var OneRosterClassCreateInput = exports_external.object({
15374
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string").optional(),
16114
+ sourcedId: NonEmptyString5.describe("sourcedId must be a non-empty string").optional(),
15375
16115
  status: Status.optional(),
15376
- title: NonEmptyString2.describe("title must be a non-empty string"),
16116
+ title: NonEmptyString5.describe("title must be a non-empty string"),
15377
16117
  terms: exports_external.array(Ref).min(1, "terms must have at least one item"),
15378
16118
  course: Ref,
15379
16119
  org: Ref,
15380
- classCode: NonEmptyString2.optional(),
16120
+ classCode: NonEmptyString5.optional(),
15381
16121
  classType: exports_external.enum(["homeroom", "scheduled"]).optional(),
15382
- location: NonEmptyString2.optional(),
16122
+ location: NonEmptyString5.optional(),
15383
16123
  grades: exports_external.array(TimebackGrade).optional(),
15384
16124
  subjects: exports_external.array(TimebackSubject).optional(),
15385
- subjectCodes: exports_external.array(NonEmptyString2).optional(),
15386
- periods: exports_external.array(NonEmptyString2).optional(),
16125
+ subjectCodes: exports_external.array(NonEmptyString5).optional(),
16126
+ periods: exports_external.array(NonEmptyString5).optional(),
15387
16127
  metadata: Metadata
15388
16128
  }).strict();
15389
16129
  var StringBoolean = exports_external.enum(["true", "false"]);
15390
16130
  var OneRosterEnrollmentCreateInput = exports_external.object({
15391
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string").optional(),
16131
+ sourcedId: NonEmptyString5.describe("sourcedId must be a non-empty string").optional(),
15392
16132
  status: Status.optional(),
15393
16133
  user: Ref,
15394
16134
  class: Ref,
@@ -15400,15 +16140,15 @@ var OneRosterEnrollmentCreateInput = exports_external.object({
15400
16140
  metadata: Metadata
15401
16141
  }).strict();
15402
16142
  var OneRosterCategoryCreateInput = exports_external.object({
15403
- sourcedId: NonEmptyString2.optional(),
15404
- title: NonEmptyString2.describe("title must be a non-empty string"),
16143
+ sourcedId: NonEmptyString5.optional(),
16144
+ title: NonEmptyString5.describe("title must be a non-empty string"),
15405
16145
  status: Status,
15406
16146
  weight: exports_external.number().nullable().optional(),
15407
16147
  metadata: Metadata
15408
16148
  }).strict();
15409
16149
  var OneRosterLineItemCreateInput = exports_external.object({
15410
- sourcedId: NonEmptyString2.optional(),
15411
- title: NonEmptyString2.describe("title must be a non-empty string"),
16150
+ sourcedId: NonEmptyString5.optional(),
16151
+ title: NonEmptyString5.describe("title must be a non-empty string"),
15412
16152
  class: Ref,
15413
16153
  school: Ref,
15414
16154
  category: Ref,
@@ -15422,7 +16162,7 @@ var OneRosterLineItemCreateInput = exports_external.object({
15422
16162
  metadata: Metadata
15423
16163
  }).strict();
15424
16164
  var OneRosterResultCreateInput = exports_external.object({
15425
- sourcedId: NonEmptyString2.optional(),
16165
+ sourcedId: NonEmptyString5.optional(),
15426
16166
  lineItem: Ref,
15427
16167
  student: Ref,
15428
16168
  class: Ref.optional(),
@@ -15441,15 +16181,15 @@ var OneRosterResultCreateInput = exports_external.object({
15441
16181
  metadata: Metadata
15442
16182
  }).strict();
15443
16183
  var OneRosterScoreScaleCreateInput = exports_external.object({
15444
- sourcedId: NonEmptyString2.optional(),
15445
- title: NonEmptyString2.describe("title must be a non-empty string"),
16184
+ sourcedId: NonEmptyString5.optional(),
16185
+ title: NonEmptyString5.describe("title must be a non-empty string"),
15446
16186
  status: Status.optional(),
15447
16187
  type: exports_external.string().optional(),
15448
16188
  class: Ref.optional(),
15449
16189
  course: Ref.nullable().optional(),
15450
16190
  scoreScaleValue: exports_external.array(exports_external.object({
15451
- itemValueLHS: NonEmptyString2,
15452
- itemValueRHS: NonEmptyString2,
16191
+ itemValueLHS: NonEmptyString5,
16192
+ itemValueRHS: NonEmptyString5,
15453
16193
  value: exports_external.string().optional(),
15454
16194
  description: exports_external.string().optional()
15455
16195
  }).strict()).optional(),
@@ -15458,10 +16198,10 @@ var OneRosterScoreScaleCreateInput = exports_external.object({
15458
16198
  metadata: Metadata
15459
16199
  }).strict();
15460
16200
  var OneRosterAssessmentLineItemCreateInput = exports_external.object({
15461
- sourcedId: NonEmptyString2.optional(),
16201
+ sourcedId: NonEmptyString5.optional(),
15462
16202
  status: Status.optional(),
15463
16203
  dateLastModified: IsoDateTimeString.optional(),
15464
- title: NonEmptyString2.describe("title must be a non-empty string"),
16204
+ title: NonEmptyString5.describe("title must be a non-empty string"),
15465
16205
  description: exports_external.string().nullable().optional(),
15466
16206
  class: Ref.nullable().optional(),
15467
16207
  parentAssessmentLineItem: Ref.nullable().optional(),
@@ -15487,7 +16227,7 @@ var LearningObjectiveScoreSetSchema = exports_external.array(exports_external.ob
15487
16227
  learningObjectiveResults: exports_external.array(LearningObjectiveResult)
15488
16228
  }));
15489
16229
  var OneRosterAssessmentResultCreateInput = exports_external.object({
15490
- sourcedId: NonEmptyString2.optional(),
16230
+ sourcedId: NonEmptyString5.optional(),
15491
16231
  status: Status.optional(),
15492
16232
  dateLastModified: IsoDateTimeString.optional(),
15493
16233
  metadata: Metadata,
@@ -15513,53 +16253,53 @@ var OneRosterAssessmentResultCreateInput = exports_external.object({
15513
16253
  missing: exports_external.string().nullable().optional()
15514
16254
  }).strict();
15515
16255
  var OneRosterOrgCreateInput = exports_external.object({
15516
- sourcedId: NonEmptyString2.optional(),
16256
+ sourcedId: NonEmptyString5.optional(),
15517
16257
  status: Status.optional(),
15518
- name: NonEmptyString2.describe("name must be a non-empty string"),
16258
+ name: NonEmptyString5.describe("name must be a non-empty string"),
15519
16259
  type: OrganizationType,
15520
- identifier: NonEmptyString2.optional(),
16260
+ identifier: NonEmptyString5.optional(),
15521
16261
  parent: Ref.optional(),
15522
16262
  metadata: Metadata
15523
16263
  }).strict();
15524
16264
  var OneRosterSchoolCreateInput = exports_external.object({
15525
- sourcedId: NonEmptyString2.optional(),
16265
+ sourcedId: NonEmptyString5.optional(),
15526
16266
  status: Status.optional(),
15527
- name: NonEmptyString2.describe("name must be a non-empty string"),
16267
+ name: NonEmptyString5.describe("name must be a non-empty string"),
15528
16268
  type: exports_external.literal("school").optional(),
15529
- identifier: NonEmptyString2.optional(),
16269
+ identifier: NonEmptyString5.optional(),
15530
16270
  parent: Ref.optional(),
15531
16271
  metadata: Metadata
15532
16272
  }).strict();
15533
16273
  var OneRosterAcademicSessionCreateInput = exports_external.object({
15534
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string"),
16274
+ sourcedId: NonEmptyString5.describe("sourcedId must be a non-empty string"),
15535
16275
  status: Status,
15536
- title: NonEmptyString2.describe("title must be a non-empty string"),
16276
+ title: NonEmptyString5.describe("title must be a non-empty string"),
15537
16277
  startDate: OneRosterDateString,
15538
16278
  endDate: OneRosterDateString,
15539
16279
  type: exports_external.enum(["gradingPeriod", "semester", "schoolYear", "term"]),
15540
- schoolYear: NonEmptyString2.describe("schoolYear must be a non-empty string"),
16280
+ schoolYear: NonEmptyString5.describe("schoolYear must be a non-empty string"),
15541
16281
  org: Ref,
15542
16282
  parent: Ref.optional(),
15543
16283
  children: exports_external.array(Ref).optional(),
15544
16284
  metadata: Metadata
15545
16285
  }).strict();
15546
16286
  var OneRosterComponentResourceCreateInput = exports_external.object({
15547
- sourcedId: NonEmptyString2.optional(),
15548
- title: NonEmptyString2.describe("title must be a non-empty string"),
16287
+ sourcedId: NonEmptyString5.optional(),
16288
+ title: NonEmptyString5.describe("title must be a non-empty string"),
15549
16289
  courseComponent: Ref,
15550
16290
  resource: Ref,
15551
16291
  status: Status,
15552
16292
  metadata: Metadata
15553
16293
  }).strict();
15554
16294
  var OneRosterCourseComponentCreateInput = exports_external.object({
15555
- sourcedId: NonEmptyString2.optional(),
15556
- title: NonEmptyString2.describe("title must be a non-empty string"),
16295
+ sourcedId: NonEmptyString5.optional(),
16296
+ title: NonEmptyString5.describe("title must be a non-empty string"),
15557
16297
  course: Ref,
15558
16298
  status: Status,
15559
16299
  metadata: Metadata
15560
16300
  }).strict();
15561
16301
  var OneRosterEnrollInput = exports_external.object({
15562
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string"),
16302
+ sourcedId: NonEmptyString5.describe("sourcedId must be a non-empty string"),
15563
16303
  role: exports_external.enum(["student", "teacher"]),
15564
16304
  primary: StringBoolean.optional(),
15565
16305
  beginDate: OneRosterDateString.optional(),
@@ -15567,16 +16307,16 @@ var OneRosterEnrollInput = exports_external.object({
15567
16307
  metadata: Metadata
15568
16308
  }).strict();
15569
16309
  var OneRosterAgentInput = exports_external.object({
15570
- agentSourcedId: NonEmptyString2.describe("agentSourcedId must be a non-empty string")
16310
+ agentSourcedId: NonEmptyString5.describe("agentSourcedId must be a non-empty string")
15571
16311
  }).strict();
15572
16312
  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"),
16313
+ type: NonEmptyString5.describe("type must be a non-empty string"),
16314
+ username: NonEmptyString5.describe("username must be a non-empty string"),
15575
16315
  password: exports_external.string().optional(),
15576
16316
  metadata: Metadata
15577
16317
  }).strict();
15578
16318
  var OneRosterDemographicsCreateInput = exports_external.object({
15579
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string")
16319
+ sourcedId: NonEmptyString5.describe("sourcedId must be a non-empty string")
15580
16320
  }).loose();
15581
16321
  var CommonResourceMetadataSchema = exports_external.object({
15582
16322
  type: ResourceType,
@@ -15648,9 +16388,9 @@ var ResourceMetadataSchema = exports_external.discriminatedUnion("type", [
15648
16388
  AssessmentBankMetadataSchema
15649
16389
  ]);
15650
16390
  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"),
16391
+ sourcedId: NonEmptyString5.optional(),
16392
+ title: NonEmptyString5.describe("title must be a non-empty string"),
16393
+ vendorResourceId: NonEmptyString5.describe("vendorResourceId must be a non-empty string"),
15654
16394
  roles: exports_external.array(exports_external.enum(["primary", "secondary"])).optional(),
15655
16395
  importance: exports_external.enum(["primary", "secondary"]).optional(),
15656
16396
  vendorId: exports_external.string().optional(),
@@ -15659,18 +16399,18 @@ var OneRosterResourceCreateInput = exports_external.object({
15659
16399
  metadata: ResourceMetadataSchema.nullable().optional()
15660
16400
  }).strict();
15661
16401
  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"),
16402
+ url: NonEmptyString5.describe("courseStructure.url must be a non-empty string"),
16403
+ skillCode: NonEmptyString5.describe("courseStructure.skillCode must be a non-empty string"),
16404
+ lessonCode: NonEmptyString5.describe("courseStructure.lessonCode must be a non-empty string"),
16405
+ title: NonEmptyString5.describe("courseStructure.title must be a non-empty string"),
16406
+ "unit-title": NonEmptyString5.describe("courseStructure.unit-title must be a non-empty string"),
16407
+ status: NonEmptyString5.describe("courseStructure.status must be a non-empty string"),
15668
16408
  xp: exports_external.number()
15669
16409
  }).loose();
15670
16410
  var OneRosterCourseStructureInput = exports_external.object({
15671
16411
  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"),
16412
+ sourcedId: NonEmptyString5.describe("course.sourcedId must be a non-empty string").optional(),
16413
+ title: NonEmptyString5.describe("course.title must be a non-empty string"),
15674
16414
  org: Ref,
15675
16415
  status: Status,
15676
16416
  metadata: Metadata
@@ -15681,7 +16421,7 @@ var OneRosterBulkResultItem = exports_external.object({
15681
16421
  student: Ref
15682
16422
  }).loose();
15683
16423
  var OneRosterBulkResultsInput = exports_external.array(OneRosterBulkResultItem).min(1, "results must have at least one item");
15684
- var NonEmptyString3 = exports_external.string().trim().min(1);
16424
+ var NonEmptyString6 = exports_external.string().trim().min(1);
15685
16425
  var ToolProvider = exports_external.enum(["edulastic", "mastery-track"]);
15686
16426
  var LessonTypeRequired = exports_external.enum([
15687
16427
  "powerpath-100",
@@ -15694,14 +16434,14 @@ var LessonTypeRequired = exports_external.enum([
15694
16434
  var GradeArray = exports_external.array(TimebackGrade);
15695
16435
  var ResourceMetadata = exports_external.record(exports_external.string(), exports_external.unknown()).optional();
15696
16436
  var ExternalTestBase = exports_external.object({
15697
- courseId: NonEmptyString3,
15698
- lessonTitle: NonEmptyString3.optional(),
16437
+ courseId: NonEmptyString6,
16438
+ lessonTitle: NonEmptyString6.optional(),
15699
16439
  launchUrl: exports_external.url().optional(),
15700
16440
  toolProvider: ToolProvider,
15701
- unitTitle: NonEmptyString3.optional(),
15702
- courseComponentSourcedId: NonEmptyString3.optional(),
15703
- vendorId: NonEmptyString3.optional(),
15704
- description: NonEmptyString3.optional(),
16441
+ unitTitle: NonEmptyString6.optional(),
16442
+ courseComponentSourcedId: NonEmptyString6.optional(),
16443
+ vendorId: NonEmptyString6.optional(),
16444
+ description: NonEmptyString6.optional(),
15705
16445
  resourceMetadata: ResourceMetadata.nullable().optional(),
15706
16446
  grades: GradeArray
15707
16447
  });
@@ -15711,26 +16451,26 @@ var ExternalTestOut = ExternalTestBase.extend({
15711
16451
  });
15712
16452
  var ExternalPlacement = ExternalTestBase.extend({
15713
16453
  lessonType: exports_external.literal("placement"),
15714
- courseIdOnFail: NonEmptyString3.optional(),
16454
+ courseIdOnFail: NonEmptyString6.optional(),
15715
16455
  xp: exports_external.number().optional()
15716
16456
  });
15717
16457
  var InternalTestBase = exports_external.object({
15718
- courseId: NonEmptyString3,
16458
+ courseId: NonEmptyString6,
15719
16459
  lessonType: LessonTypeRequired,
15720
- lessonTitle: NonEmptyString3.optional(),
15721
- unitTitle: NonEmptyString3.optional(),
15722
- courseComponentSourcedId: NonEmptyString3.optional(),
16460
+ lessonTitle: NonEmptyString6.optional(),
16461
+ unitTitle: NonEmptyString6.optional(),
16462
+ courseComponentSourcedId: NonEmptyString6.optional(),
15723
16463
  resourceMetadata: ResourceMetadata.nullable().optional(),
15724
16464
  xp: exports_external.number().optional(),
15725
16465
  grades: GradeArray.optional(),
15726
- courseIdOnFail: NonEmptyString3.optional()
16466
+ courseIdOnFail: NonEmptyString6.optional()
15727
16467
  });
15728
16468
  var PowerPathCreateInternalTestInput = exports_external.union([
15729
16469
  InternalTestBase.extend({
15730
16470
  testType: exports_external.literal("qti"),
15731
16471
  qti: exports_external.object({
15732
16472
  url: exports_external.url(),
15733
- title: NonEmptyString3.optional(),
16473
+ title: NonEmptyString6.optional(),
15734
16474
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15735
16475
  })
15736
16476
  }),
@@ -15739,28 +16479,28 @@ var PowerPathCreateInternalTestInput = exports_external.union([
15739
16479
  assessmentBank: exports_external.object({
15740
16480
  resources: exports_external.array(exports_external.object({
15741
16481
  url: exports_external.url(),
15742
- title: NonEmptyString3.optional(),
16482
+ title: NonEmptyString6.optional(),
15743
16483
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15744
16484
  }))
15745
16485
  })
15746
16486
  })
15747
16487
  ]);
15748
16488
  var PowerPathCreateNewAttemptInput = exports_external.object({
15749
- student: NonEmptyString3,
15750
- lesson: NonEmptyString3
16489
+ student: NonEmptyString6,
16490
+ lesson: NonEmptyString6
15751
16491
  });
15752
16492
  var PowerPathFinalStudentAssessmentResponseInput = exports_external.object({
15753
- student: NonEmptyString3,
15754
- lesson: NonEmptyString3
16493
+ student: NonEmptyString6,
16494
+ lesson: NonEmptyString6
15755
16495
  });
15756
16496
  var PowerPathLessonPlansCreateInput = exports_external.object({
15757
- courseId: NonEmptyString3,
15758
- userId: NonEmptyString3,
15759
- classId: NonEmptyString3.optional()
16497
+ courseId: NonEmptyString6,
16498
+ userId: NonEmptyString6,
16499
+ classId: NonEmptyString6.optional()
15760
16500
  });
15761
16501
  var LessonPlanTarget = exports_external.object({
15762
16502
  type: exports_external.enum(["component", "resource"]),
15763
- id: NonEmptyString3
16503
+ id: NonEmptyString6
15764
16504
  });
15765
16505
  var PowerPathLessonPlanOperationInput = exports_external.union([
15766
16506
  exports_external.object({
@@ -15773,8 +16513,8 @@ var PowerPathLessonPlanOperationInput = exports_external.union([
15773
16513
  exports_external.object({
15774
16514
  type: exports_external.literal("add-custom-resource"),
15775
16515
  payload: exports_external.object({
15776
- resource_id: NonEmptyString3,
15777
- parent_component_id: NonEmptyString3,
16516
+ resource_id: NonEmptyString6,
16517
+ parent_component_id: NonEmptyString6,
15778
16518
  skipped: exports_external.boolean().optional()
15779
16519
  })
15780
16520
  }),
@@ -15782,14 +16522,14 @@ var PowerPathLessonPlanOperationInput = exports_external.union([
15782
16522
  type: exports_external.literal("move-item-before"),
15783
16523
  payload: exports_external.object({
15784
16524
  target: LessonPlanTarget,
15785
- reference_id: NonEmptyString3
16525
+ reference_id: NonEmptyString6
15786
16526
  })
15787
16527
  }),
15788
16528
  exports_external.object({
15789
16529
  type: exports_external.literal("move-item-after"),
15790
16530
  payload: exports_external.object({
15791
16531
  target: LessonPlanTarget,
15792
- reference_id: NonEmptyString3
16532
+ reference_id: NonEmptyString6
15793
16533
  })
15794
16534
  }),
15795
16535
  exports_external.object({
@@ -15808,135 +16548,135 @@ var PowerPathLessonPlanOperationInput = exports_external.union([
15808
16548
  type: exports_external.literal("change-item-parent"),
15809
16549
  payload: exports_external.object({
15810
16550
  target: LessonPlanTarget,
15811
- new_parent_id: NonEmptyString3,
16551
+ new_parent_id: NonEmptyString6,
15812
16552
  position: exports_external.enum(["start", "end"]).optional()
15813
16553
  })
15814
16554
  })
15815
16555
  ]);
15816
16556
  var PowerPathLessonPlanOperationsInput = exports_external.object({
15817
16557
  operation: exports_external.array(PowerPathLessonPlanOperationInput),
15818
- reason: NonEmptyString3.optional()
16558
+ reason: NonEmptyString6.optional()
15819
16559
  });
15820
16560
  var PowerPathLessonPlanUpdateStudentItemResponseInput = exports_external.object({
15821
- studentId: NonEmptyString3,
15822
- componentResourceId: NonEmptyString3,
16561
+ studentId: NonEmptyString6,
16562
+ componentResourceId: NonEmptyString6,
15823
16563
  result: exports_external.object({
15824
16564
  status: exports_external.enum(["active", "tobedeleted"]),
15825
16565
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
15826
16566
  score: exports_external.number().optional(),
15827
- textScore: NonEmptyString3.optional(),
15828
- scoreDate: NonEmptyString3,
16567
+ textScore: NonEmptyString6.optional(),
16568
+ scoreDate: NonEmptyString6,
15829
16569
  scorePercentile: exports_external.number().optional(),
15830
16570
  scoreStatus: ScoreStatus,
15831
- comment: NonEmptyString3.optional(),
16571
+ comment: NonEmptyString6.optional(),
15832
16572
  learningObjectiveSet: exports_external.array(exports_external.object({
15833
- source: NonEmptyString3,
16573
+ source: NonEmptyString6,
15834
16574
  learningObjectiveResults: exports_external.array(exports_external.object({
15835
- learningObjectiveId: NonEmptyString3,
16575
+ learningObjectiveId: NonEmptyString6,
15836
16576
  score: exports_external.number().optional(),
15837
- textScore: NonEmptyString3.optional()
16577
+ textScore: NonEmptyString6.optional()
15838
16578
  }))
15839
16579
  })).optional(),
15840
- inProgress: NonEmptyString3.optional(),
15841
- incomplete: NonEmptyString3.optional(),
15842
- late: NonEmptyString3.optional(),
15843
- missing: NonEmptyString3.optional()
16580
+ inProgress: NonEmptyString6.optional(),
16581
+ incomplete: NonEmptyString6.optional(),
16582
+ late: NonEmptyString6.optional(),
16583
+ missing: NonEmptyString6.optional()
15844
16584
  })
15845
16585
  });
15846
16586
  var PowerPathMakeExternalTestAssignmentInput = exports_external.object({
15847
- student: NonEmptyString3,
15848
- lesson: NonEmptyString3,
15849
- applicationName: NonEmptyString3.optional(),
15850
- testId: NonEmptyString3.optional(),
16587
+ student: NonEmptyString6,
16588
+ lesson: NonEmptyString6,
16589
+ applicationName: NonEmptyString6.optional(),
16590
+ testId: NonEmptyString6.optional(),
15851
16591
  skipCourseEnrollment: exports_external.boolean().optional()
15852
16592
  });
15853
16593
  var PowerPathPlacementResetUserPlacementInput = exports_external.object({
15854
- student: NonEmptyString3,
16594
+ student: NonEmptyString6,
15855
16595
  subject: TimebackSubject
15856
16596
  });
15857
16597
  var PowerPathResetAttemptInput = exports_external.object({
15858
- student: NonEmptyString3,
15859
- lesson: NonEmptyString3
16598
+ student: NonEmptyString6,
16599
+ lesson: NonEmptyString6
15860
16600
  });
15861
16601
  var PowerPathScreeningResetSessionInput = exports_external.object({
15862
- userId: NonEmptyString3
16602
+ userId: NonEmptyString6
15863
16603
  });
15864
16604
  var PowerPathScreeningAssignTestInput = exports_external.object({
15865
- userId: NonEmptyString3,
16605
+ userId: NonEmptyString6,
15866
16606
  subject: exports_external.enum(["Math", "Reading", "Language", "Science"])
15867
16607
  });
15868
16608
  var PowerPathTestAssignmentsCreateInput = exports_external.object({
15869
- student: NonEmptyString3,
16609
+ student: NonEmptyString6,
15870
16610
  subject: TimebackSubject,
15871
16611
  grade: TimebackGrade,
15872
- testName: NonEmptyString3.optional()
16612
+ testName: NonEmptyString6.optional()
15873
16613
  });
15874
16614
  var PowerPathTestAssignmentsUpdateInput = exports_external.object({
15875
- testName: NonEmptyString3
16615
+ testName: NonEmptyString6
15876
16616
  });
15877
16617
  var PowerPathTestAssignmentItemInput = exports_external.object({
15878
- student: NonEmptyString3,
16618
+ student: NonEmptyString6,
15879
16619
  subject: TimebackSubject,
15880
16620
  grade: TimebackGrade,
15881
- testName: NonEmptyString3.optional()
16621
+ testName: NonEmptyString6.optional()
15882
16622
  });
15883
16623
  var PowerPathTestAssignmentsBulkInput = exports_external.object({
15884
16624
  items: exports_external.array(PowerPathTestAssignmentItemInput)
15885
16625
  });
15886
16626
  var PowerPathTestAssignmentsImportInput = exports_external.object({
15887
16627
  spreadsheetUrl: exports_external.url(),
15888
- sheet: NonEmptyString3
16628
+ sheet: NonEmptyString6
15889
16629
  });
15890
16630
  var PowerPathTestAssignmentsListParams = exports_external.object({
15891
- student: NonEmptyString3,
16631
+ student: NonEmptyString6,
15892
16632
  status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
15893
- subject: NonEmptyString3.optional(),
16633
+ subject: NonEmptyString6.optional(),
15894
16634
  grade: TimebackGrade.optional(),
15895
16635
  limit: exports_external.number().int().positive().max(3000).optional(),
15896
16636
  offset: exports_external.number().int().nonnegative().optional()
15897
16637
  });
15898
16638
  var PowerPathTestAssignmentsAdminParams = exports_external.object({
15899
- student: NonEmptyString3.optional(),
16639
+ student: NonEmptyString6.optional(),
15900
16640
  status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
15901
- subject: NonEmptyString3.optional(),
16641
+ subject: NonEmptyString6.optional(),
15902
16642
  grade: TimebackGrade.optional(),
15903
16643
  limit: exports_external.number().int().positive().max(3000).optional(),
15904
16644
  offset: exports_external.number().int().nonnegative().optional()
15905
16645
  });
15906
16646
  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
16647
+ student: NonEmptyString6,
16648
+ question: NonEmptyString6,
16649
+ response: exports_external.union([NonEmptyString6, exports_external.array(NonEmptyString6)]).optional(),
16650
+ responses: exports_external.record(exports_external.string(), exports_external.union([NonEmptyString6, exports_external.array(NonEmptyString6)])).optional(),
16651
+ lesson: NonEmptyString6
15912
16652
  });
15913
16653
  var PowerPathGetAssessmentProgressParams = exports_external.object({
15914
- student: NonEmptyString3,
15915
- lesson: NonEmptyString3,
16654
+ student: NonEmptyString6,
16655
+ lesson: NonEmptyString6,
15916
16656
  attempt: exports_external.number().int().positive().optional()
15917
16657
  });
15918
16658
  var PowerPathGetNextQuestionParams = exports_external.object({
15919
- student: NonEmptyString3,
15920
- lesson: NonEmptyString3
16659
+ student: NonEmptyString6,
16660
+ lesson: NonEmptyString6
15921
16661
  });
15922
16662
  var PowerPathGetAttemptsParams = exports_external.object({
15923
- student: NonEmptyString3,
15924
- lesson: NonEmptyString3
16663
+ student: NonEmptyString6,
16664
+ lesson: NonEmptyString6
15925
16665
  });
15926
16666
  var PowerPathTestOutParams = exports_external.object({
15927
- student: NonEmptyString3,
15928
- lesson: NonEmptyString3.optional(),
16667
+ student: NonEmptyString6,
16668
+ lesson: NonEmptyString6.optional(),
15929
16669
  finalized: exports_external.boolean().optional(),
15930
- toolProvider: NonEmptyString3.optional(),
16670
+ toolProvider: NonEmptyString6.optional(),
15931
16671
  attempt: exports_external.number().int().positive().optional()
15932
16672
  });
15933
16673
  var PowerPathImportExternalTestAssignmentResultsParams = exports_external.object({
15934
- student: NonEmptyString3,
15935
- lesson: NonEmptyString3,
15936
- applicationName: NonEmptyString3.optional()
16674
+ student: NonEmptyString6,
16675
+ lesson: NonEmptyString6,
16676
+ applicationName: NonEmptyString6.optional()
15937
16677
  });
15938
16678
  var PowerPathPlacementQueryParams = exports_external.object({
15939
- student: NonEmptyString3,
16679
+ student: NonEmptyString6,
15940
16680
  subject: TimebackSubject
15941
16681
  });
15942
16682
  var PowerPathSyllabusQueryParams = exports_external.object({
@@ -16026,7 +16766,7 @@ var QtiItemMetadata = exports_external.object({
16026
16766
  grade: TimebackGrade.optional(),
16027
16767
  difficulty: QtiDifficulty.optional(),
16028
16768
  learningObjectiveSet: exports_external.array(QtiLearningObjectiveSet).optional()
16029
- }).strict();
16769
+ }).loose();
16030
16770
  var QtiModalFeedback = exports_external.object({
16031
16771
  outcomeIdentifier: exports_external.string().min(1),
16032
16772
  identifier: exports_external.string().min(1),
@@ -16063,7 +16803,12 @@ var QtiPaginationParams = exports_external.object({
16063
16803
  sort: exports_external.string().optional(),
16064
16804
  order: exports_external.enum(["asc", "desc"]).optional()
16065
16805
  }).strict();
16066
- var QtiAssessmentItemCreateInput = exports_external.object({
16806
+ var QtiAssessmentItemXmlCreateInput = exports_external.object({
16807
+ format: exports_external.string().pipe(exports_external.literal("xml")),
16808
+ xml: exports_external.string().min(1),
16809
+ metadata: QtiItemMetadata.optional()
16810
+ }).strict();
16811
+ var QtiAssessmentItemJsonCreateInput = exports_external.object({
16067
16812
  identifier: exports_external.string().min(1),
16068
16813
  title: exports_external.string().min(1),
16069
16814
  type: QtiAssessmentItemType,
@@ -16078,6 +16823,10 @@ var QtiAssessmentItemCreateInput = exports_external.object({
16078
16823
  feedbackInline: exports_external.array(QtiFeedbackInline).optional(),
16079
16824
  feedbackBlock: exports_external.array(QtiFeedbackBlock).optional()
16080
16825
  }).strict();
16826
+ var QtiAssessmentItemCreateInput = exports_external.union([
16827
+ QtiAssessmentItemXmlCreateInput,
16828
+ QtiAssessmentItemJsonCreateInput
16829
+ ]);
16081
16830
  var QtiAssessmentItemUpdateInput = exports_external.object({
16082
16831
  identifier: exports_external.string().min(1).optional(),
16083
16832
  title: exports_external.string().min(1),
@@ -16114,9 +16863,9 @@ var QtiAssessmentSection = exports_external.object({
16114
16863
  }).strict();
16115
16864
  var QtiTestPart = exports_external.object({
16116
16865
  identifier: exports_external.string().min(1),
16117
- navigationMode: QtiNavigationMode,
16118
- submissionMode: QtiSubmissionMode,
16119
- "qti-assessment-section": exports_external.union([QtiAssessmentSection, exports_external.array(QtiAssessmentSection)])
16866
+ navigationMode: exports_external.string().pipe(QtiNavigationMode),
16867
+ submissionMode: exports_external.string().pipe(QtiSubmissionMode),
16868
+ "qti-assessment-section": exports_external.array(QtiAssessmentSection)
16120
16869
  }).strict();
16121
16870
  var QtiReorderItemsInput = exports_external.object({
16122
16871
  items: exports_external.array(QtiAssessmentItemRef).min(1)
@@ -16134,7 +16883,7 @@ var QtiAssessmentTestCreateInput = exports_external.object({
16134
16883
  maxAttempts: exports_external.number().optional(),
16135
16884
  toolsEnabled: exports_external.record(exports_external.string(), exports_external.boolean()).optional(),
16136
16885
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
16137
- "qti-test-part": QtiTestPart,
16886
+ "qti-test-part": exports_external.array(QtiTestPart),
16138
16887
  "qti-outcome-declaration": exports_external.array(QtiTestOutcomeDeclaration).optional()
16139
16888
  }).strict();
16140
16889
  var QtiAssessmentTestUpdateInput = exports_external.object({
@@ -16147,7 +16896,7 @@ var QtiAssessmentTestUpdateInput = exports_external.object({
16147
16896
  maxAttempts: exports_external.number().optional(),
16148
16897
  toolsEnabled: exports_external.record(exports_external.string(), exports_external.boolean()).optional(),
16149
16898
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
16150
- "qti-test-part": QtiTestPart,
16899
+ "qti-test-part": exports_external.array(QtiTestPart),
16151
16900
  "qti-outcome-declaration": exports_external.array(QtiTestOutcomeDeclaration).optional()
16152
16901
  }).strict();
16153
16902
  var QtiStimulusCreateInput = exports_external.object({
@@ -16412,7 +17161,7 @@ function createEdubridgeClient(registry2 = DEFAULT_PROVIDER_REGISTRY) {
16412
17161
  const resolved = resolveToProvider2(config3, registry2);
16413
17162
  if (resolved.mode === "transport") {
16414
17163
  this.transport = resolved.transport;
16415
- log2.info("Client initialized with custom transport");
17164
+ log3.info("Client initialized with custom transport");
16416
17165
  } else {
16417
17166
  const { provider } = resolved;
16418
17167
  const { baseUrl, paths } = provider.getEndpointWithPaths("edubridge");
@@ -16427,7 +17176,7 @@ function createEdubridgeClient(registry2 = DEFAULT_PROVIDER_REGISTRY) {
16427
17176
  timeout: provider.timeout,
16428
17177
  paths
16429
17178
  });
16430
- log2.info("Client initialized", {
17179
+ log3.info("Client initialized", {
16431
17180
  platform: provider.platform,
16432
17181
  env: provider.env,
16433
17182
  baseUrl