@timeback/qti 0.1.1 → 0.1.2

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/index.js CHANGED
@@ -487,6 +487,9 @@ var BEYONDAI_PATHS = {
487
487
  },
488
488
  edubridge: {
489
489
  base: "/edubridge"
490
+ },
491
+ powerpath: {
492
+ base: "/powerpath"
490
493
  }
491
494
  };
492
495
  var LEARNWITHAI_PATHS = {
@@ -502,7 +505,8 @@ var LEARNWITHAI_PATHS = {
502
505
  gradebook: "/gradebook/1.0",
503
506
  resources: "/resources/1.0"
504
507
  },
505
- edubridge: null
508
+ edubridge: null,
509
+ powerpath: null
506
510
  };
507
511
  var PLATFORM_PATHS = {
508
512
  BEYOND_AI: BEYONDAI_PATHS,
@@ -524,7 +528,8 @@ function resolvePathProfiles(pathProfile, customPaths) {
524
528
  return {
525
529
  caliper: customPaths?.caliper ?? basePaths.caliper,
526
530
  oneroster: customPaths?.oneroster ?? basePaths.oneroster,
527
- edubridge: customPaths?.edubridge ?? basePaths.edubridge
531
+ edubridge: customPaths?.edubridge ?? basePaths.edubridge,
532
+ powerpath: customPaths?.powerpath ?? basePaths.powerpath
528
533
  };
529
534
  }
530
535
 
@@ -560,6 +565,10 @@ class TimebackProvider {
560
565
  baseUrl: platformEndpoints.api[env],
561
566
  authUrl: this.authUrl
562
567
  },
568
+ powerpath: {
569
+ baseUrl: platformEndpoints.api[env],
570
+ authUrl: this.authUrl
571
+ },
563
572
  caliper: {
564
573
  baseUrl: platformEndpoints.caliper[env],
565
574
  authUrl: this.authUrl
@@ -576,6 +585,7 @@ class TimebackProvider {
576
585
  this.endpoints = {
577
586
  oneroster: { baseUrl: config.baseUrl, authUrl: this.authUrl },
578
587
  edubridge: { baseUrl: config.baseUrl, authUrl: this.authUrl },
588
+ powerpath: { baseUrl: config.baseUrl, authUrl: this.authUrl },
579
589
  caliper: { baseUrl: config.baseUrl, authUrl: this.authUrl },
580
590
  qti: { baseUrl: config.baseUrl, authUrl: this.authUrl }
581
591
  };
@@ -694,7 +704,17 @@ class TimebackProvider {
694
704
  // ../../internal/client-infra/src/utils/utils.ts
695
705
  function getEnv(key) {
696
706
  try {
697
- return typeof process === "undefined" ? undefined : process.env[key];
707
+ if (typeof process === "undefined")
708
+ return;
709
+ if (typeof key === "string") {
710
+ return process.env[key];
711
+ }
712
+ for (const k of key) {
713
+ const value = process.env[k];
714
+ if (value !== undefined)
715
+ return value;
716
+ }
717
+ return;
698
718
  } catch {
699
719
  return;
700
720
  }
@@ -728,6 +748,18 @@ var DEFAULT_PROVIDER_REGISTRY = {
728
748
  };
729
749
 
730
750
  // ../../internal/client-infra/src/config/resolve.ts
751
+ function primaryEnvVar(key) {
752
+ if (typeof key === "string") {
753
+ return key;
754
+ }
755
+ if (key.length === 0) {
756
+ throw new Error(`Missing env var key: ${key}`);
757
+ }
758
+ return key[0];
759
+ }
760
+ function formatEnvVarKey(key) {
761
+ return primaryEnvVar(key);
762
+ }
731
763
  function validateEnv(env) {
732
764
  if (env !== "staging" && env !== "production") {
733
765
  throw new Error(`Invalid env "${env}": must be "staging" or "production"`);
@@ -738,10 +770,10 @@ function validateAuth(auth, envVars) {
738
770
  const clientId = auth?.clientId ?? getEnv(envVars.clientId);
739
771
  const clientSecret = auth?.clientSecret ?? getEnv(envVars.clientSecret);
740
772
  if (!clientId) {
741
- throw new Error(`Missing clientId: provide in config or set ${envVars.clientId}`);
773
+ throw new Error(`Missing clientId: provide in config or set ${formatEnvVarKey(envVars.clientId)}`);
742
774
  }
743
775
  if (!clientSecret) {
744
- throw new Error(`Missing clientSecret: provide in config or set ${envVars.clientSecret}`);
776
+ throw new Error(`Missing clientSecret: provide in config or set ${formatEnvVarKey(envVars.clientSecret)}`);
745
777
  }
746
778
  return { clientId, clientSecret };
747
779
  }
@@ -757,21 +789,21 @@ function buildMissingEnvError(envVars) {
757
789
  const clientId = getEnv(envVars.clientId);
758
790
  const clientSecret = getEnv(envVars.clientSecret);
759
791
  if (baseUrl === undefined && clientId === undefined) {
760
- const hint = envVars.env ?? envVars.baseUrl;
792
+ const hint = formatEnvVarKey(envVars.env ?? envVars.baseUrl);
761
793
  return `Missing env: provide in config or set ${hint}`;
762
794
  }
763
795
  const missing = [];
764
796
  if (baseUrl === undefined) {
765
- missing.push(envVars.env ?? envVars.baseUrl);
797
+ missing.push(formatEnvVarKey(envVars.env ?? envVars.baseUrl));
766
798
  }
767
799
  if (baseUrl !== undefined && authUrl === undefined) {
768
- missing.push(envVars.authUrl);
800
+ missing.push(formatEnvVarKey(envVars.authUrl));
769
801
  }
770
802
  if (clientId === undefined) {
771
- missing.push(envVars.clientId);
803
+ missing.push(formatEnvVarKey(envVars.clientId));
772
804
  }
773
805
  if (clientSecret === undefined) {
774
- missing.push(envVars.clientSecret);
806
+ missing.push(formatEnvVarKey(envVars.clientSecret));
775
807
  }
776
808
  return `Missing environment variables: ${missing.join(", ")}`;
777
809
  }
@@ -1477,10 +1509,10 @@ function validatePageListParams(params) {
1477
1509
  }
1478
1510
  // src/constants.ts
1479
1511
  var QTI_ENV_VARS = {
1480
- baseUrl: "QTI_BASE_URL",
1481
- clientId: "QTI_CLIENT_ID",
1482
- clientSecret: "QTI_CLIENT_SECRET",
1483
- authUrl: "QTI_TOKEN_URL"
1512
+ baseUrl: ["TIMEBACK_API_BASE_URL", "TIMEBACK_BASE_URL", "QTI_BASE_URL"],
1513
+ clientId: ["TIMEBACK_API_CLIENT_ID", "TIMEBACK_CLIENT_ID", "QTI_CLIENT_ID"],
1514
+ clientSecret: ["TIMEBACK_API_CLIENT_SECRET", "TIMEBACK_CLIENT_SECRET", "QTI_CLIENT_SECRET"],
1515
+ authUrl: ["TIMEBACK_API_AUTH_URL", "TIMEBACK_AUTH_URL", "QTI_TOKEN_URL"]
1484
1516
  };
1485
1517
 
1486
1518
  // src/lib/resolve.ts
@@ -1509,7 +1541,7 @@ class Transport extends BaseTransport {
1509
1541
  }
1510
1542
  }
1511
1543
 
1512
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/external.js
1544
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/external.js
1513
1545
  var exports_external = {};
1514
1546
  __export(exports_external, {
1515
1547
  xor: () => xor,
@@ -1750,7 +1782,7 @@ __export(exports_external, {
1750
1782
  $brand: () => $brand
1751
1783
  });
1752
1784
 
1753
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/index.js
1785
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/index.js
1754
1786
  var exports_core2 = {};
1755
1787
  __export(exports_core2, {
1756
1788
  version: () => version,
@@ -2028,7 +2060,7 @@ __export(exports_core2, {
2028
2060
  $ZodAny: () => $ZodAny
2029
2061
  });
2030
2062
 
2031
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/core.js
2063
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/core.js
2032
2064
  var NEVER = Object.freeze({
2033
2065
  status: "aborted"
2034
2066
  });
@@ -2104,7 +2136,7 @@ function config(newConfig) {
2104
2136
  Object.assign(globalConfig, newConfig);
2105
2137
  return globalConfig;
2106
2138
  }
2107
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/util.js
2139
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/util.js
2108
2140
  var exports_util = {};
2109
2141
  __export(exports_util, {
2110
2142
  unwrapMessage: () => unwrapMessage,
@@ -2778,7 +2810,7 @@ class Class {
2778
2810
  constructor(..._args) {}
2779
2811
  }
2780
2812
 
2781
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/errors.js
2813
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/errors.js
2782
2814
  var initializer = (inst, def) => {
2783
2815
  inst.name = "$ZodError";
2784
2816
  Object.defineProperty(inst, "_zod", {
@@ -2915,7 +2947,7 @@ function prettifyError(error) {
2915
2947
  `);
2916
2948
  }
2917
2949
 
2918
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/parse.js
2950
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/parse.js
2919
2951
  var _parse = (_Err) => (schema, value, _ctx, _params) => {
2920
2952
  const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };
2921
2953
  const result = schema._zod.run({ value, issues: [] }, ctx);
@@ -3002,7 +3034,7 @@ var _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {
3002
3034
  return _safeParseAsync(_Err)(schema, value, _ctx);
3003
3035
  };
3004
3036
  var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync($ZodRealError);
3005
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/regexes.js
3037
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/regexes.js
3006
3038
  var exports_regexes = {};
3007
3039
  __export(exports_regexes, {
3008
3040
  xid: () => xid,
@@ -3159,7 +3191,7 @@ var sha512_hex = /^[0-9a-fA-F]{128}$/;
3159
3191
  var sha512_base64 = /* @__PURE__ */ fixedBase64(86, "==");
3160
3192
  var sha512_base64url = /* @__PURE__ */ fixedBase64url(86);
3161
3193
 
3162
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/checks.js
3194
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/checks.js
3163
3195
  var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
3164
3196
  var _a;
3165
3197
  inst._zod ?? (inst._zod = {});
@@ -3706,7 +3738,7 @@ var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (ins
3706
3738
  };
3707
3739
  });
3708
3740
 
3709
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/doc.js
3741
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/doc.js
3710
3742
  class Doc {
3711
3743
  constructor(args = []) {
3712
3744
  this.content = [];
@@ -3744,14 +3776,14 @@ class Doc {
3744
3776
  }
3745
3777
  }
3746
3778
 
3747
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/versions.js
3779
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/versions.js
3748
3780
  var version = {
3749
3781
  major: 4,
3750
3782
  minor: 3,
3751
- patch: 5
3783
+ patch: 6
3752
3784
  };
3753
3785
 
3754
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/schemas.js
3786
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/schemas.js
3755
3787
  var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
3756
3788
  var _a;
3757
3789
  inst ?? (inst = {});
@@ -5034,7 +5066,7 @@ var $ZodRecord = /* @__PURE__ */ $constructor("$ZodRecord", (inst, def) => {
5034
5066
  if (keyResult instanceof Promise) {
5035
5067
  throw new Error("Async schemas not supported in object keys currently");
5036
5068
  }
5037
- const checkNumericKey = typeof key === "string" && number.test(key) && keyResult.issues.length && keyResult.issues.some((iss) => iss.code === "invalid_type" && iss.expected === "number");
5069
+ const checkNumericKey = typeof key === "string" && number.test(key) && keyResult.issues.length;
5038
5070
  if (checkNumericKey) {
5039
5071
  const retryResult = def.keyType._zod.run({ value: Number(key), issues: [] }, ctx);
5040
5072
  if (retryResult instanceof Promise) {
@@ -5713,7 +5745,7 @@ function handleRefineResult(result, payload, input, inst) {
5713
5745
  payload.issues.push(issue2(_iss));
5714
5746
  }
5715
5747
  }
5716
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/index.js
5748
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/index.js
5717
5749
  var exports_locales = {};
5718
5750
  __export(exports_locales, {
5719
5751
  zhTW: () => zh_TW_default,
@@ -5767,7 +5799,7 @@ __export(exports_locales, {
5767
5799
  ar: () => ar_default
5768
5800
  });
5769
5801
 
5770
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ar.js
5802
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ar.js
5771
5803
  var error = () => {
5772
5804
  const Sizable = {
5773
5805
  string: { unit: "حرف", verb: "أن يحوي" },
@@ -5873,7 +5905,7 @@ function ar_default() {
5873
5905
  localeError: error()
5874
5906
  };
5875
5907
  }
5876
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/az.js
5908
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/az.js
5877
5909
  var error2 = () => {
5878
5910
  const Sizable = {
5879
5911
  string: { unit: "simvol", verb: "olmalıdır" },
@@ -5978,7 +6010,7 @@ function az_default() {
5978
6010
  localeError: error2()
5979
6011
  };
5980
6012
  }
5981
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/be.js
6013
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/be.js
5982
6014
  function getBelarusianPlural(count, one, few, many) {
5983
6015
  const absCount = Math.abs(count);
5984
6016
  const lastDigit = absCount % 10;
@@ -6134,7 +6166,7 @@ function be_default() {
6134
6166
  localeError: error3()
6135
6167
  };
6136
6168
  }
6137
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/bg.js
6169
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/bg.js
6138
6170
  var error4 = () => {
6139
6171
  const Sizable = {
6140
6172
  string: { unit: "символа", verb: "да съдържа" },
@@ -6254,7 +6286,7 @@ function bg_default() {
6254
6286
  localeError: error4()
6255
6287
  };
6256
6288
  }
6257
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ca.js
6289
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ca.js
6258
6290
  var error5 = () => {
6259
6291
  const Sizable = {
6260
6292
  string: { unit: "caràcters", verb: "contenir" },
@@ -6361,7 +6393,7 @@ function ca_default() {
6361
6393
  localeError: error5()
6362
6394
  };
6363
6395
  }
6364
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/cs.js
6396
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/cs.js
6365
6397
  var error6 = () => {
6366
6398
  const Sizable = {
6367
6399
  string: { unit: "znaků", verb: "mít" },
@@ -6472,7 +6504,7 @@ function cs_default() {
6472
6504
  localeError: error6()
6473
6505
  };
6474
6506
  }
6475
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/da.js
6507
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/da.js
6476
6508
  var error7 = () => {
6477
6509
  const Sizable = {
6478
6510
  string: { unit: "tegn", verb: "havde" },
@@ -6587,7 +6619,7 @@ function da_default() {
6587
6619
  localeError: error7()
6588
6620
  };
6589
6621
  }
6590
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/de.js
6622
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/de.js
6591
6623
  var error8 = () => {
6592
6624
  const Sizable = {
6593
6625
  string: { unit: "Zeichen", verb: "zu haben" },
@@ -6695,7 +6727,7 @@ function de_default() {
6695
6727
  localeError: error8()
6696
6728
  };
6697
6729
  }
6698
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/en.js
6730
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/en.js
6699
6731
  var error9 = () => {
6700
6732
  const Sizable = {
6701
6733
  string: { unit: "characters", verb: "to have" },
@@ -6801,7 +6833,7 @@ function en_default() {
6801
6833
  localeError: error9()
6802
6834
  };
6803
6835
  }
6804
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/eo.js
6836
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/eo.js
6805
6837
  var error10 = () => {
6806
6838
  const Sizable = {
6807
6839
  string: { unit: "karaktrojn", verb: "havi" },
@@ -6910,7 +6942,7 @@ function eo_default() {
6910
6942
  localeError: error10()
6911
6943
  };
6912
6944
  }
6913
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/es.js
6945
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/es.js
6914
6946
  var error11 = () => {
6915
6947
  const Sizable = {
6916
6948
  string: { unit: "caracteres", verb: "tener" },
@@ -7042,7 +7074,7 @@ function es_default() {
7042
7074
  localeError: error11()
7043
7075
  };
7044
7076
  }
7045
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fa.js
7077
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fa.js
7046
7078
  var error12 = () => {
7047
7079
  const Sizable = {
7048
7080
  string: { unit: "کاراکتر", verb: "داشته باشد" },
@@ -7156,7 +7188,7 @@ function fa_default() {
7156
7188
  localeError: error12()
7157
7189
  };
7158
7190
  }
7159
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fi.js
7191
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fi.js
7160
7192
  var error13 = () => {
7161
7193
  const Sizable = {
7162
7194
  string: { unit: "merkkiä", subject: "merkkijonon" },
@@ -7268,7 +7300,7 @@ function fi_default() {
7268
7300
  localeError: error13()
7269
7301
  };
7270
7302
  }
7271
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fr.js
7303
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fr.js
7272
7304
  var error14 = () => {
7273
7305
  const Sizable = {
7274
7306
  string: { unit: "caractères", verb: "avoir" },
@@ -7376,7 +7408,7 @@ function fr_default() {
7376
7408
  localeError: error14()
7377
7409
  };
7378
7410
  }
7379
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fr-CA.js
7411
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fr-CA.js
7380
7412
  var error15 = () => {
7381
7413
  const Sizable = {
7382
7414
  string: { unit: "caractères", verb: "avoir" },
@@ -7483,7 +7515,7 @@ function fr_CA_default() {
7483
7515
  localeError: error15()
7484
7516
  };
7485
7517
  }
7486
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/he.js
7518
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/he.js
7487
7519
  var error16 = () => {
7488
7520
  const TypeNames = {
7489
7521
  string: { label: "מחרוזת", gender: "f" },
@@ -7676,7 +7708,7 @@ function he_default() {
7676
7708
  localeError: error16()
7677
7709
  };
7678
7710
  }
7679
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/hu.js
7711
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/hu.js
7680
7712
  var error17 = () => {
7681
7713
  const Sizable = {
7682
7714
  string: { unit: "karakter", verb: "legyen" },
@@ -7784,7 +7816,7 @@ function hu_default() {
7784
7816
  localeError: error17()
7785
7817
  };
7786
7818
  }
7787
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/hy.js
7819
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/hy.js
7788
7820
  function getArmenianPlural(count, one, many) {
7789
7821
  return Math.abs(count) === 1 ? one : many;
7790
7822
  }
@@ -7931,7 +7963,7 @@ function hy_default() {
7931
7963
  localeError: error18()
7932
7964
  };
7933
7965
  }
7934
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/id.js
7966
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/id.js
7935
7967
  var error19 = () => {
7936
7968
  const Sizable = {
7937
7969
  string: { unit: "karakter", verb: "memiliki" },
@@ -8037,7 +8069,7 @@ function id_default() {
8037
8069
  localeError: error19()
8038
8070
  };
8039
8071
  }
8040
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/is.js
8072
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/is.js
8041
8073
  var error20 = () => {
8042
8074
  const Sizable = {
8043
8075
  string: { unit: "stafi", verb: "að hafa" },
@@ -8146,7 +8178,7 @@ function is_default() {
8146
8178
  localeError: error20()
8147
8179
  };
8148
8180
  }
8149
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/it.js
8181
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/it.js
8150
8182
  var error21 = () => {
8151
8183
  const Sizable = {
8152
8184
  string: { unit: "caratteri", verb: "avere" },
@@ -8254,7 +8286,7 @@ function it_default() {
8254
8286
  localeError: error21()
8255
8287
  };
8256
8288
  }
8257
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ja.js
8289
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ja.js
8258
8290
  var error22 = () => {
8259
8291
  const Sizable = {
8260
8292
  string: { unit: "文字", verb: "である" },
@@ -8361,7 +8393,7 @@ function ja_default() {
8361
8393
  localeError: error22()
8362
8394
  };
8363
8395
  }
8364
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ka.js
8396
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ka.js
8365
8397
  var error23 = () => {
8366
8398
  const Sizable = {
8367
8399
  string: { unit: "სიმბოლო", verb: "უნდა შეიცავდეს" },
@@ -8473,7 +8505,7 @@ function ka_default() {
8473
8505
  localeError: error23()
8474
8506
  };
8475
8507
  }
8476
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/km.js
8508
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/km.js
8477
8509
  var error24 = () => {
8478
8510
  const Sizable = {
8479
8511
  string: { unit: "តួអក្សរ", verb: "គួរមាន" },
@@ -8584,11 +8616,11 @@ function km_default() {
8584
8616
  };
8585
8617
  }
8586
8618
 
8587
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/kh.js
8619
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/kh.js
8588
8620
  function kh_default() {
8589
8621
  return km_default();
8590
8622
  }
8591
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ko.js
8623
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ko.js
8592
8624
  var error25 = () => {
8593
8625
  const Sizable = {
8594
8626
  string: { unit: "문자", verb: "to have" },
@@ -8699,7 +8731,7 @@ function ko_default() {
8699
8731
  localeError: error25()
8700
8732
  };
8701
8733
  }
8702
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/lt.js
8734
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/lt.js
8703
8735
  var capitalizeFirstCharacter = (text) => {
8704
8736
  return text.charAt(0).toUpperCase() + text.slice(1);
8705
8737
  };
@@ -8902,7 +8934,7 @@ function lt_default() {
8902
8934
  localeError: error26()
8903
8935
  };
8904
8936
  }
8905
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/mk.js
8937
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/mk.js
8906
8938
  var error27 = () => {
8907
8939
  const Sizable = {
8908
8940
  string: { unit: "знаци", verb: "да имаат" },
@@ -9011,7 +9043,7 @@ function mk_default() {
9011
9043
  localeError: error27()
9012
9044
  };
9013
9045
  }
9014
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ms.js
9046
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ms.js
9015
9047
  var error28 = () => {
9016
9048
  const Sizable = {
9017
9049
  string: { unit: "aksara", verb: "mempunyai" },
@@ -9118,7 +9150,7 @@ function ms_default() {
9118
9150
  localeError: error28()
9119
9151
  };
9120
9152
  }
9121
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/nl.js
9153
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/nl.js
9122
9154
  var error29 = () => {
9123
9155
  const Sizable = {
9124
9156
  string: { unit: "tekens", verb: "heeft" },
@@ -9228,7 +9260,7 @@ function nl_default() {
9228
9260
  localeError: error29()
9229
9261
  };
9230
9262
  }
9231
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/no.js
9263
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/no.js
9232
9264
  var error30 = () => {
9233
9265
  const Sizable = {
9234
9266
  string: { unit: "tegn", verb: "å ha" },
@@ -9336,7 +9368,7 @@ function no_default() {
9336
9368
  localeError: error30()
9337
9369
  };
9338
9370
  }
9339
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ota.js
9371
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ota.js
9340
9372
  var error31 = () => {
9341
9373
  const Sizable = {
9342
9374
  string: { unit: "harf", verb: "olmalıdır" },
@@ -9445,7 +9477,7 @@ function ota_default() {
9445
9477
  localeError: error31()
9446
9478
  };
9447
9479
  }
9448
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ps.js
9480
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ps.js
9449
9481
  var error32 = () => {
9450
9482
  const Sizable = {
9451
9483
  string: { unit: "توکي", verb: "ولري" },
@@ -9559,7 +9591,7 @@ function ps_default() {
9559
9591
  localeError: error32()
9560
9592
  };
9561
9593
  }
9562
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/pl.js
9594
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/pl.js
9563
9595
  var error33 = () => {
9564
9596
  const Sizable = {
9565
9597
  string: { unit: "znaków", verb: "mieć" },
@@ -9668,7 +9700,7 @@ function pl_default() {
9668
9700
  localeError: error33()
9669
9701
  };
9670
9702
  }
9671
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/pt.js
9703
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/pt.js
9672
9704
  var error34 = () => {
9673
9705
  const Sizable = {
9674
9706
  string: { unit: "caracteres", verb: "ter" },
@@ -9776,7 +9808,7 @@ function pt_default() {
9776
9808
  localeError: error34()
9777
9809
  };
9778
9810
  }
9779
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ru.js
9811
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ru.js
9780
9812
  function getRussianPlural(count, one, few, many) {
9781
9813
  const absCount = Math.abs(count);
9782
9814
  const lastDigit = absCount % 10;
@@ -9932,7 +9964,7 @@ function ru_default() {
9932
9964
  localeError: error35()
9933
9965
  };
9934
9966
  }
9935
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/sl.js
9967
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/sl.js
9936
9968
  var error36 = () => {
9937
9969
  const Sizable = {
9938
9970
  string: { unit: "znakov", verb: "imeti" },
@@ -10041,7 +10073,7 @@ function sl_default() {
10041
10073
  localeError: error36()
10042
10074
  };
10043
10075
  }
10044
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/sv.js
10076
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/sv.js
10045
10077
  var error37 = () => {
10046
10078
  const Sizable = {
10047
10079
  string: { unit: "tecken", verb: "att ha" },
@@ -10151,7 +10183,7 @@ function sv_default() {
10151
10183
  localeError: error37()
10152
10184
  };
10153
10185
  }
10154
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ta.js
10186
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ta.js
10155
10187
  var error38 = () => {
10156
10188
  const Sizable = {
10157
10189
  string: { unit: "எழுத்துக்கள்", verb: "கொண்டிருக்க வேண்டும்" },
@@ -10261,7 +10293,7 @@ function ta_default() {
10261
10293
  localeError: error38()
10262
10294
  };
10263
10295
  }
10264
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/th.js
10296
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/th.js
10265
10297
  var error39 = () => {
10266
10298
  const Sizable = {
10267
10299
  string: { unit: "ตัวอักษร", verb: "ควรมี" },
@@ -10371,7 +10403,7 @@ function th_default() {
10371
10403
  localeError: error39()
10372
10404
  };
10373
10405
  }
10374
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/tr.js
10406
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/tr.js
10375
10407
  var error40 = () => {
10376
10408
  const Sizable = {
10377
10409
  string: { unit: "karakter", verb: "olmalı" },
@@ -10476,7 +10508,7 @@ function tr_default() {
10476
10508
  localeError: error40()
10477
10509
  };
10478
10510
  }
10479
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/uk.js
10511
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/uk.js
10480
10512
  var error41 = () => {
10481
10513
  const Sizable = {
10482
10514
  string: { unit: "символів", verb: "матиме" },
@@ -10585,11 +10617,11 @@ function uk_default() {
10585
10617
  };
10586
10618
  }
10587
10619
 
10588
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ua.js
10620
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ua.js
10589
10621
  function ua_default() {
10590
10622
  return uk_default();
10591
10623
  }
10592
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ur.js
10624
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ur.js
10593
10625
  var error42 = () => {
10594
10626
  const Sizable = {
10595
10627
  string: { unit: "حروف", verb: "ہونا" },
@@ -10699,7 +10731,7 @@ function ur_default() {
10699
10731
  localeError: error42()
10700
10732
  };
10701
10733
  }
10702
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/uz.js
10734
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/uz.js
10703
10735
  var error43 = () => {
10704
10736
  const Sizable = {
10705
10737
  string: { unit: "belgi", verb: "bo‘lishi kerak" },
@@ -10808,7 +10840,7 @@ function uz_default() {
10808
10840
  localeError: error43()
10809
10841
  };
10810
10842
  }
10811
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/vi.js
10843
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/vi.js
10812
10844
  var error44 = () => {
10813
10845
  const Sizable = {
10814
10846
  string: { unit: "ký tự", verb: "có" },
@@ -10916,7 +10948,7 @@ function vi_default() {
10916
10948
  localeError: error44()
10917
10949
  };
10918
10950
  }
10919
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/zh-CN.js
10951
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/zh-CN.js
10920
10952
  var error45 = () => {
10921
10953
  const Sizable = {
10922
10954
  string: { unit: "字符", verb: "包含" },
@@ -11025,7 +11057,7 @@ function zh_CN_default() {
11025
11057
  localeError: error45()
11026
11058
  };
11027
11059
  }
11028
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/zh-TW.js
11060
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/zh-TW.js
11029
11061
  var error46 = () => {
11030
11062
  const Sizable = {
11031
11063
  string: { unit: "字元", verb: "擁有" },
@@ -11132,7 +11164,7 @@ function zh_TW_default() {
11132
11164
  localeError: error46()
11133
11165
  };
11134
11166
  }
11135
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/yo.js
11167
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/yo.js
11136
11168
  var error47 = () => {
11137
11169
  const Sizable = {
11138
11170
  string: { unit: "àmi", verb: "ní" },
@@ -11239,7 +11271,7 @@ function yo_default() {
11239
11271
  localeError: error47()
11240
11272
  };
11241
11273
  }
11242
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/registries.js
11274
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/registries.js
11243
11275
  var _a;
11244
11276
  var $output = Symbol("ZodOutput");
11245
11277
  var $input = Symbol("ZodInput");
@@ -11289,7 +11321,7 @@ function registry() {
11289
11321
  }
11290
11322
  (_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());
11291
11323
  var globalRegistry = globalThis.__zod_globalRegistry;
11292
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/api.js
11324
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/api.js
11293
11325
  function _string(Class2, params) {
11294
11326
  return new Class2({
11295
11327
  type: "string",
@@ -12209,7 +12241,7 @@ function _stringFormat(Class2, format, fnOrRegex, _params = {}) {
12209
12241
  const inst = new Class2(def);
12210
12242
  return inst;
12211
12243
  }
12212
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/to-json-schema.js
12244
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.js
12213
12245
  function initializeContext(params) {
12214
12246
  let target = params?.target ?? "draft-2020-12";
12215
12247
  if (target === "draft-4")
@@ -12405,7 +12437,7 @@ function finalize(ctx, schema) {
12405
12437
  }
12406
12438
  }
12407
12439
  }
12408
- if (refSchema.$ref) {
12440
+ if (refSchema.$ref && refSeen.def) {
12409
12441
  for (const key in schema2) {
12410
12442
  if (key === "$ref" || key === "allOf")
12411
12443
  continue;
@@ -12554,7 +12586,7 @@ var createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) =
12554
12586
  extractDefs(ctx, schema);
12555
12587
  return finalize(ctx, schema);
12556
12588
  };
12557
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/json-schema-processors.js
12589
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/json-schema-processors.js
12558
12590
  var formatMap = {
12559
12591
  guid: "uuid",
12560
12592
  url: "uri",
@@ -13099,7 +13131,7 @@ function toJSONSchema(input, params) {
13099
13131
  extractDefs(ctx, input);
13100
13132
  return finalize(ctx, input);
13101
13133
  }
13102
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/json-schema-generator.js
13134
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/json-schema-generator.js
13103
13135
  class JSONSchemaGenerator {
13104
13136
  get metadataRegistry() {
13105
13137
  return this.ctx.metadataRegistry;
@@ -13158,9 +13190,9 @@ class JSONSchemaGenerator {
13158
13190
  return plainResult;
13159
13191
  }
13160
13192
  }
13161
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/json-schema.js
13193
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/json-schema.js
13162
13194
  var exports_json_schema = {};
13163
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/schemas.js
13195
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/schemas.js
13164
13196
  var exports_schemas2 = {};
13165
13197
  __export(exports_schemas2, {
13166
13198
  xor: () => xor,
@@ -13329,7 +13361,7 @@ __export(exports_schemas2, {
13329
13361
  ZodAny: () => ZodAny
13330
13362
  });
13331
13363
 
13332
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/checks.js
13364
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/checks.js
13333
13365
  var exports_checks2 = {};
13334
13366
  __export(exports_checks2, {
13335
13367
  uppercase: () => _uppercase,
@@ -13363,7 +13395,7 @@ __export(exports_checks2, {
13363
13395
  endsWith: () => _endsWith
13364
13396
  });
13365
13397
 
13366
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/iso.js
13398
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/iso.js
13367
13399
  var exports_iso = {};
13368
13400
  __export(exports_iso, {
13369
13401
  time: () => time2,
@@ -13404,7 +13436,7 @@ function duration2(params) {
13404
13436
  return _isoDuration(ZodISODuration, params);
13405
13437
  }
13406
13438
 
13407
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/errors.js
13439
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/errors.js
13408
13440
  var initializer2 = (inst, issues) => {
13409
13441
  $ZodError.init(inst, issues);
13410
13442
  inst.name = "ZodError";
@@ -13439,7 +13471,7 @@ var ZodRealError = $constructor("ZodError", initializer2, {
13439
13471
  Parent: Error
13440
13472
  });
13441
13473
 
13442
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/parse.js
13474
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/parse.js
13443
13475
  var parse3 = /* @__PURE__ */ _parse(ZodRealError);
13444
13476
  var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError);
13445
13477
  var safeParse2 = /* @__PURE__ */ _safeParse(ZodRealError);
@@ -13453,7 +13485,7 @@ var safeDecode2 = /* @__PURE__ */ _safeDecode(ZodRealError);
13453
13485
  var safeEncodeAsync2 = /* @__PURE__ */ _safeEncodeAsync(ZodRealError);
13454
13486
  var safeDecodeAsync2 = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
13455
13487
 
13456
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/schemas.js
13488
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/schemas.js
13457
13489
  var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
13458
13490
  $ZodType.init(inst, def);
13459
13491
  Object.assign(inst["~standard"], {
@@ -14529,7 +14561,7 @@ function json(params) {
14529
14561
  function preprocess(fn, schema) {
14530
14562
  return pipe(transform(fn), schema);
14531
14563
  }
14532
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/compat.js
14564
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/compat.js
14533
14565
  var ZodIssueCode = {
14534
14566
  invalid_type: "invalid_type",
14535
14567
  too_big: "too_big",
@@ -14553,7 +14585,7 @@ function getErrorMap() {
14553
14585
  }
14554
14586
  var ZodFirstPartyTypeKind;
14555
14587
  (function(ZodFirstPartyTypeKind2) {})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
14556
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/from-json-schema.js
14588
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/from-json-schema.js
14557
14589
  var z = {
14558
14590
  ...exports_schemas2,
14559
14591
  ...exports_checks2,
@@ -15014,7 +15046,7 @@ function fromJSONSchema(schema, params) {
15014
15046
  };
15015
15047
  return convertSchema(schema, ctx);
15016
15048
  }
15017
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/coerce.js
15049
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/coerce.js
15018
15050
  var exports_coerce = {};
15019
15051
  __export(exports_coerce, {
15020
15052
  string: () => string3,
@@ -15039,7 +15071,7 @@ function date4(params) {
15039
15071
  return _coercedDate(ZodDate, params);
15040
15072
  }
15041
15073
 
15042
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/external.js
15074
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/external.js
15043
15075
  config(en_default());
15044
15076
  // ../../types/src/zod/primitives.ts
15045
15077
  var IsoDateTimeRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/;
@@ -15056,7 +15088,7 @@ var TimebackSubject = exports_external.enum([
15056
15088
  "Math",
15057
15089
  "None",
15058
15090
  "Other"
15059
- ]);
15091
+ ]).meta({ id: "TimebackSubject", description: "Subject area" });
15060
15092
  var TimebackGrade = exports_external.union([
15061
15093
  exports_external.literal(-1),
15062
15094
  exports_external.literal(0),
@@ -15073,7 +15105,10 @@ var TimebackGrade = exports_external.union([
15073
15105
  exports_external.literal(11),
15074
15106
  exports_external.literal(12),
15075
15107
  exports_external.literal(13)
15076
- ]);
15108
+ ]).meta({
15109
+ id: "TimebackGrade",
15110
+ description: "Grade level (-1 = Pre-K, 0 = K, 1-12 = grades, 13 = AP)"
15111
+ });
15077
15112
  var ScoreStatus = exports_external.enum([
15078
15113
  "exempt",
15079
15114
  "fully graded",
@@ -15100,6 +15135,47 @@ var OneRosterUserRole = exports_external.enum([
15100
15135
  "teacher"
15101
15136
  ]);
15102
15137
  var EnrollmentRole = exports_external.enum(["administrator", "proctor", "student", "teacher"]);
15138
+ var ResourceType = exports_external.enum([
15139
+ "qti",
15140
+ "text",
15141
+ "audio",
15142
+ "video",
15143
+ "interactive",
15144
+ "visual",
15145
+ "course-material",
15146
+ "assessment-bank"
15147
+ ]);
15148
+ var QtiSubType = exports_external.enum(["qti-test", "qti-question", "qti-stimulus", "qti-test-bank"]);
15149
+ var CourseMaterialSubType = exports_external.enum(["unit", "course", "resource-collection"]);
15150
+ var QuestionType = exports_external.enum([
15151
+ "choice",
15152
+ "order",
15153
+ "associate",
15154
+ "match",
15155
+ "hotspot",
15156
+ "hottext",
15157
+ "select-point",
15158
+ "graphic-order",
15159
+ "graphic-associate",
15160
+ "graphic-gap-match",
15161
+ "text-entry",
15162
+ "extended-text",
15163
+ "inline-choice",
15164
+ "upload",
15165
+ "slider",
15166
+ "drawing",
15167
+ "media",
15168
+ "custom"
15169
+ ]);
15170
+ var Difficulty = exports_external.enum(["easy", "medium", "hard"]);
15171
+ var LearningObjectiveSetSchema = exports_external.array(exports_external.object({
15172
+ source: exports_external.string(),
15173
+ learningObjectiveIds: exports_external.array(exports_external.string())
15174
+ }));
15175
+ var FastFailConfigSchema = exports_external.object({
15176
+ consecutive_failures: exports_external.number().int().min(1).optional(),
15177
+ stagnation_limit: exports_external.number().int().min(1).optional()
15178
+ }).optional();
15103
15179
  var LessonType = exports_external.enum(["powerpath-100", "quiz", "test-out", "placement", "unit-test", "alpha-read-article"]).nullable();
15104
15180
  var IMSErrorResponse = exports_external.object({
15105
15181
  imsx_codeMajor: exports_external.enum(["failure", "success"]),
@@ -15176,7 +15252,11 @@ var ActivityCompletedInput = exports_external.object({
15176
15252
  eventTime: IsoDateTimeString.optional(),
15177
15253
  metricsId: exports_external.string().optional(),
15178
15254
  id: exports_external.string().optional(),
15179
- extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15255
+ extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
15256
+ attempt: exports_external.number().int().min(1).optional(),
15257
+ generatedExtensions: exports_external.object({
15258
+ pctCompleteApp: exports_external.number().optional()
15259
+ }).loose().optional()
15180
15260
  }).strict();
15181
15261
  var TimeSpentInput = exports_external.object({
15182
15262
  actor: TimebackUser,
@@ -15260,51 +15340,122 @@ var CaliperListEventsParams = exports_external.object({
15260
15340
  }).strict();
15261
15341
  // ../../types/src/zod/config.ts
15262
15342
  var CourseIds = exports_external.object({
15263
- staging: exports_external.string().optional(),
15264
- production: exports_external.string().optional()
15265
- });
15266
- var CourseType = exports_external.enum(["base", "hole-filling", "optional"]);
15267
- var PublishStatus = exports_external.enum(["draft", "testing", "published", "deactivated"]);
15343
+ staging: exports_external.string().meta({ description: "Course ID in staging environment" }).optional(),
15344
+ production: exports_external.string().meta({ description: "Course ID in production environment" }).optional()
15345
+ }).meta({ id: "CourseIds", description: "Environment-specific course IDs (populated by sync)" });
15346
+ var CourseType = exports_external.enum(["base", "hole-filling", "optional"]).meta({ id: "CourseType", description: "Course classification type" });
15347
+ var PublishStatus = exports_external.enum(["draft", "testing", "published", "deactivated"]).meta({ id: "PublishStatus", description: "Course publication status" });
15268
15348
  var CourseGoals = exports_external.object({
15269
- dailyXp: exports_external.number().int().positive().optional(),
15270
- dailyLessons: exports_external.number().int().positive().optional(),
15271
- dailyActiveMinutes: exports_external.number().int().positive().optional(),
15272
- dailyAccuracy: exports_external.number().int().min(0).max(100).optional(),
15273
- dailyMasteredUnits: exports_external.number().int().positive().optional()
15274
- });
15349
+ dailyXp: exports_external.number().int().positive().meta({ description: "Target XP to earn per day" }).optional(),
15350
+ dailyLessons: exports_external.number().int().positive().meta({ description: "Target lessons to complete per day" }).optional(),
15351
+ dailyActiveMinutes: exports_external.number().int().positive().meta({ description: "Target active learning minutes per day" }).optional(),
15352
+ dailyAccuracy: exports_external.number().int().min(0).max(100).meta({ description: "Target accuracy percentage (0-100)" }).optional(),
15353
+ dailyMasteredUnits: exports_external.number().int().positive().meta({ description: "Target units to master per day" }).optional()
15354
+ }).meta({ id: "CourseGoals", description: "Daily learning goals for a course" });
15275
15355
  var CourseMetrics = exports_external.object({
15276
- totalXp: exports_external.number().int().positive().optional(),
15277
- totalLessons: exports_external.number().int().positive().optional(),
15278
- totalGrades: exports_external.number().int().positive().optional()
15279
- });
15356
+ totalXp: exports_external.number().int().positive().meta({ description: "Total XP available in the course" }).optional(),
15357
+ totalLessons: exports_external.number().int().positive().meta({ description: "Total number of lessons/activities" }).optional(),
15358
+ totalGrades: exports_external.number().int().positive().meta({ description: "Total grade levels covered" }).optional()
15359
+ }).meta({ id: "CourseMetrics", description: "Aggregate metrics for a course" });
15280
15360
  var CourseMetadata = exports_external.object({
15281
15361
  courseType: CourseType.optional(),
15282
- isSupplemental: exports_external.boolean().optional(),
15283
- isCustom: exports_external.boolean().optional(),
15362
+ isSupplemental: exports_external.boolean().meta({ description: "Whether this is supplemental to a base course" }).optional(),
15363
+ isCustom: exports_external.boolean().meta({ description: "Whether this is a custom course for an individual student" }).optional(),
15284
15364
  publishStatus: PublishStatus.optional(),
15285
- contactEmail: exports_external.email().optional(),
15286
- primaryApp: exports_external.string().optional(),
15365
+ contactEmail: exports_external.email().meta({ description: "Contact email for course issues" }).optional(),
15366
+ primaryApp: exports_external.string().meta({ description: "Primary application identifier" }).optional(),
15287
15367
  goals: CourseGoals.optional(),
15288
15368
  metrics: CourseMetrics.optional()
15289
- });
15369
+ }).meta({ id: "CourseMetadata", description: "Course metadata (matches API metadata object)" });
15290
15370
  var CourseDefaults = exports_external.object({
15291
- courseCode: exports_external.string().optional(),
15292
- level: exports_external.string().optional(),
15371
+ courseCode: exports_external.string().meta({ description: "Course code (e.g., 'MATH101')" }).optional(),
15372
+ level: exports_external.string().meta({ description: "Course level (e.g., 'AP', 'Honors')" }).optional(),
15373
+ metadata: CourseMetadata.optional()
15374
+ }).meta({
15375
+ id: "CourseDefaults",
15376
+ description: "Default properties that apply to all courses unless overridden"
15377
+ });
15378
+ var CourseEnvOverrides = exports_external.object({
15379
+ level: exports_external.string().meta({ description: "Course level for this environment" }).optional(),
15380
+ sensor: exports_external.url().meta({ description: "Caliper sensor endpoint URL for this environment" }).optional(),
15381
+ launchUrl: exports_external.url().meta({ description: "LTI launch URL for this environment" }).optional(),
15293
15382
  metadata: CourseMetadata.optional()
15383
+ }).meta({
15384
+ id: "CourseEnvOverrides",
15385
+ description: "Environment-specific course overrides (non-identity fields)"
15294
15386
  });
15387
+ var CourseOverrides = exports_external.object({
15388
+ staging: CourseEnvOverrides.meta({
15389
+ description: "Overrides for staging environment"
15390
+ }).optional(),
15391
+ production: CourseEnvOverrides.meta({
15392
+ description: "Overrides for production environment"
15393
+ }).optional()
15394
+ }).meta({ id: "CourseOverrides", description: "Per-environment course overrides" });
15295
15395
  var CourseConfig = CourseDefaults.extend({
15296
- subject: TimebackSubject,
15297
- grade: TimebackGrade,
15298
- ids: CourseIds.nullable().optional()
15396
+ subject: TimebackSubject.meta({ description: "Subject area for this course" }),
15397
+ grade: TimebackGrade.meta({
15398
+ description: "Grade level (-1 = Pre-K, 0 = K, 1-12 = grades, 13 = AP)"
15399
+ }).optional(),
15400
+ ids: CourseIds.nullable().optional(),
15401
+ sensor: exports_external.url().meta({ description: "Caliper sensor endpoint URL for this course" }).optional(),
15402
+ launchUrl: exports_external.url().meta({ description: "LTI launch URL for this course" }).optional(),
15403
+ overrides: CourseOverrides.optional()
15404
+ }).meta({
15405
+ id: "CourseConfig",
15406
+ description: "Configuration for a single course. Must have either grade or courseCode (or both)."
15299
15407
  });
15300
15408
  var TimebackConfig = exports_external.object({
15301
- name: exports_external.string().min(1, "App name is required"),
15302
- defaults: CourseDefaults.optional(),
15303
- courses: exports_external.array(CourseConfig).min(1, "At least one course is required"),
15304
- sensors: exports_external.array(exports_external.string().url()).optional()
15409
+ $schema: exports_external.string().meta({ description: "JSON Schema reference for editor support" }).optional(),
15410
+ name: exports_external.string().min(1, "App name is required").meta({ description: "Display name for your app" }),
15411
+ defaults: CourseDefaults.meta({
15412
+ description: "Default properties applied to all courses"
15413
+ }).optional(),
15414
+ courses: exports_external.array(CourseConfig).min(1, "At least one course is required").meta({ description: "Courses available in this app" }),
15415
+ sensor: exports_external.url().meta({ description: "Default Caliper sensor endpoint URL for all courses" }).optional(),
15416
+ launchUrl: exports_external.url().meta({ description: "Default LTI launch URL for all courses" }).optional()
15417
+ }).meta({
15418
+ id: "TimebackConfig",
15419
+ title: "Timeback Config",
15420
+ description: "Configuration schema for timeback.config.json files"
15421
+ }).refine((config2) => {
15422
+ return config2.courses.every((c) => c.grade !== undefined || c.courseCode !== undefined);
15423
+ }, {
15424
+ message: "Each course must have either a grade or a courseCode",
15425
+ path: ["courses"]
15426
+ }).refine((config2) => {
15427
+ const withGrade = config2.courses.filter((c) => c.grade !== undefined);
15428
+ const keys = withGrade.map((c) => `${c.subject}:${c.grade}`);
15429
+ return new Set(keys).size === keys.length;
15430
+ }, {
15431
+ message: "Duplicate (subject, grade) pair found; each must be unique",
15432
+ path: ["courses"]
15433
+ }).refine((config2) => {
15434
+ const withCode = config2.courses.filter((c) => c.courseCode !== undefined);
15435
+ const codes = withCode.map((c) => c.courseCode);
15436
+ return new Set(codes).size === codes.length;
15437
+ }, {
15438
+ message: "Duplicate courseCode found; each must be unique",
15439
+ path: ["courses"]
15440
+ }).refine((config2) => {
15441
+ return config2.courses.every((c) => {
15442
+ if (c.sensor !== undefined || config2.sensor !== undefined) {
15443
+ return true;
15444
+ }
15445
+ const launchUrls = [
15446
+ c.launchUrl,
15447
+ config2.launchUrl,
15448
+ c.overrides?.staging?.launchUrl,
15449
+ c.overrides?.production?.launchUrl
15450
+ ].filter(Boolean);
15451
+ return launchUrls.length > 0;
15452
+ });
15453
+ }, {
15454
+ 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.",
15455
+ path: ["courses"]
15305
15456
  });
15306
15457
  // ../../types/src/zod/edubridge.ts
15307
- var EdubridgeDateString = exports_external.union([IsoDateString, IsoDateTimeString]);
15458
+ var EdubridgeDateString = IsoDateTimeString;
15308
15459
  var EduBridgeEnrollment = exports_external.object({
15309
15460
  id: exports_external.string(),
15310
15461
  role: exports_external.string(),
@@ -15368,12 +15519,9 @@ var EmailOrStudentId = exports_external.object({
15368
15519
  });
15369
15520
  var SubjectTrackInput = exports_external.object({
15370
15521
  subject: NonEmptyString,
15371
- gradeLevel: NonEmptyString,
15372
- targetCourseId: NonEmptyString,
15373
- metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15374
- });
15375
- var SubjectTrackUpsertInput = SubjectTrackInput.extend({
15376
- id: NonEmptyString
15522
+ grade: NonEmptyString,
15523
+ courseId: NonEmptyString,
15524
+ orgSourcedId: NonEmptyString.optional()
15377
15525
  });
15378
15526
  var EdubridgeListEnrollmentsParams = exports_external.object({
15379
15527
  userId: NonEmptyString
@@ -15552,20 +15700,45 @@ var OneRosterScoreScaleCreateInput = exports_external.object({
15552
15700
  }).strict();
15553
15701
  var OneRosterAssessmentLineItemCreateInput = exports_external.object({
15554
15702
  sourcedId: NonEmptyString2.optional(),
15703
+ status: Status.optional(),
15704
+ dateLastModified: IsoDateTimeString.optional(),
15555
15705
  title: NonEmptyString2.describe("title must be a non-empty string"),
15556
- class: Ref,
15557
- school: Ref,
15558
- category: Ref,
15559
- assignDate: OneRosterDateString,
15560
- dueDate: OneRosterDateString,
15561
- status: Status,
15706
+ description: exports_external.string().nullable().optional(),
15707
+ class: Ref.nullable().optional(),
15708
+ parentAssessmentLineItem: Ref.nullable().optional(),
15709
+ scoreScale: Ref.nullable().optional(),
15710
+ resultValueMin: exports_external.number().nullable().optional(),
15711
+ resultValueMax: exports_external.number().nullable().optional(),
15712
+ component: Ref.nullable().optional(),
15713
+ componentResource: Ref.nullable().optional(),
15714
+ learningObjectiveSet: exports_external.array(exports_external.object({
15715
+ source: exports_external.string(),
15716
+ learningObjectiveIds: exports_external.array(exports_external.string())
15717
+ })).optional().nullable(),
15718
+ course: Ref.nullable().optional(),
15562
15719
  metadata: Metadata
15563
15720
  }).strict();
15721
+ var LearningObjectiveResult = exports_external.object({
15722
+ learningObjectiveId: exports_external.string(),
15723
+ score: exports_external.number().optional(),
15724
+ textScore: exports_external.string().optional()
15725
+ });
15726
+ var LearningObjectiveScoreSetSchema = exports_external.array(exports_external.object({
15727
+ source: exports_external.string(),
15728
+ learningObjectiveResults: exports_external.array(LearningObjectiveResult)
15729
+ }));
15564
15730
  var OneRosterAssessmentResultCreateInput = exports_external.object({
15565
15731
  sourcedId: NonEmptyString2.optional(),
15566
- lineItem: Ref,
15732
+ status: Status.optional(),
15733
+ dateLastModified: IsoDateTimeString.optional(),
15734
+ metadata: Metadata,
15735
+ assessmentLineItem: Ref,
15567
15736
  student: Ref,
15568
- scoreDate: OneRosterDateString,
15737
+ score: exports_external.number().nullable().optional(),
15738
+ textScore: exports_external.string().nullable().optional(),
15739
+ scoreDate: exports_external.string().datetime(),
15740
+ scoreScale: Ref.nullable().optional(),
15741
+ scorePercentile: exports_external.number().nullable().optional(),
15569
15742
  scoreStatus: exports_external.enum([
15570
15743
  "exempt",
15571
15744
  "fully graded",
@@ -15573,9 +15746,12 @@ var OneRosterAssessmentResultCreateInput = exports_external.object({
15573
15746
  "partially graded",
15574
15747
  "submitted"
15575
15748
  ]),
15576
- score: exports_external.string().optional(),
15577
- status: Status,
15578
- metadata: Metadata
15749
+ comment: exports_external.string().nullable().optional(),
15750
+ learningObjectiveSet: LearningObjectiveScoreSetSchema.nullable().optional(),
15751
+ inProgress: exports_external.string().nullable().optional(),
15752
+ incomplete: exports_external.string().nullable().optional(),
15753
+ late: exports_external.string().nullable().optional(),
15754
+ missing: exports_external.string().nullable().optional()
15579
15755
  }).strict();
15580
15756
  var OneRosterOrgCreateInput = exports_external.object({
15581
15757
  sourcedId: NonEmptyString2.optional(),
@@ -15643,6 +15819,75 @@ var OneRosterCredentialInput = exports_external.object({
15643
15819
  var OneRosterDemographicsCreateInput = exports_external.object({
15644
15820
  sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string")
15645
15821
  }).loose();
15822
+ var CommonResourceMetadataSchema = exports_external.object({
15823
+ type: ResourceType,
15824
+ subject: TimebackSubject.nullish(),
15825
+ grades: exports_external.array(TimebackGrade).nullish(),
15826
+ language: exports_external.string().nullish(),
15827
+ xp: exports_external.number().nullish(),
15828
+ url: exports_external.url().nullish(),
15829
+ keywords: exports_external.array(exports_external.string()).nullish(),
15830
+ learningObjectiveSet: LearningObjectiveSetSchema.nullish(),
15831
+ lessonType: exports_external.string().nullish()
15832
+ }).passthrough();
15833
+ var QtiMetadataSchema = CommonResourceMetadataSchema.extend({
15834
+ type: exports_external.literal("qti"),
15835
+ subType: QtiSubType,
15836
+ questionType: QuestionType.optional(),
15837
+ difficulty: Difficulty.optional()
15838
+ });
15839
+ var TextMetadataSchema = CommonResourceMetadataSchema.extend({
15840
+ type: exports_external.literal("text"),
15841
+ format: exports_external.string(),
15842
+ author: exports_external.string().optional(),
15843
+ pageCount: exports_external.number().optional()
15844
+ });
15845
+ var AudioMetadataSchema = CommonResourceMetadataSchema.extend({
15846
+ type: exports_external.literal("audio"),
15847
+ duration: exports_external.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),
15848
+ format: exports_external.string(),
15849
+ speaker: exports_external.string().optional()
15850
+ });
15851
+ var VideoMetadataSchema = CommonResourceMetadataSchema.extend({
15852
+ type: exports_external.literal("video"),
15853
+ duration: exports_external.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),
15854
+ captionsAvailable: exports_external.boolean().optional(),
15855
+ format: exports_external.string()
15856
+ });
15857
+ var InteractiveMetadataSchema = CommonResourceMetadataSchema.extend({
15858
+ type: exports_external.literal("interactive"),
15859
+ launchUrl: exports_external.url().optional(),
15860
+ toolProvider: exports_external.string().optional(),
15861
+ instructionalMethod: exports_external.string().optional(),
15862
+ courseIdOnFail: exports_external.string().nullable().optional(),
15863
+ fail_fast: FastFailConfigSchema
15864
+ });
15865
+ var VisualMetadataSchema = CommonResourceMetadataSchema.extend({
15866
+ type: exports_external.literal("visual"),
15867
+ format: exports_external.string(),
15868
+ resolution: exports_external.string().optional()
15869
+ });
15870
+ var CourseMaterialMetadataSchema = CommonResourceMetadataSchema.extend({
15871
+ type: exports_external.literal("course-material"),
15872
+ subType: CourseMaterialSubType,
15873
+ author: exports_external.string().optional(),
15874
+ format: exports_external.string(),
15875
+ instructionalMethod: exports_external.string().optional()
15876
+ });
15877
+ var AssessmentBankMetadataSchema = CommonResourceMetadataSchema.extend({
15878
+ type: exports_external.literal("assessment-bank"),
15879
+ resources: exports_external.array(exports_external.string())
15880
+ });
15881
+ var ResourceMetadataSchema = exports_external.discriminatedUnion("type", [
15882
+ QtiMetadataSchema,
15883
+ TextMetadataSchema,
15884
+ AudioMetadataSchema,
15885
+ VideoMetadataSchema,
15886
+ InteractiveMetadataSchema,
15887
+ VisualMetadataSchema,
15888
+ CourseMaterialMetadataSchema,
15889
+ AssessmentBankMetadataSchema
15890
+ ]);
15646
15891
  var OneRosterResourceCreateInput = exports_external.object({
15647
15892
  sourcedId: NonEmptyString2.optional(),
15648
15893
  title: NonEmptyString2.describe("title must be a non-empty string"),
@@ -15652,7 +15897,7 @@ var OneRosterResourceCreateInput = exports_external.object({
15652
15897
  vendorId: exports_external.string().optional(),
15653
15898
  applicationId: exports_external.string().optional(),
15654
15899
  status: Status.optional(),
15655
- metadata: Metadata
15900
+ metadata: ResourceMetadataSchema.nullable().optional()
15656
15901
  }).strict();
15657
15902
  var CourseStructureItem = exports_external.object({
15658
15903
  url: NonEmptyString2.describe("courseStructure.url must be a non-empty string"),
@@ -15677,6 +15922,268 @@ var OneRosterBulkResultItem = exports_external.object({
15677
15922
  student: Ref
15678
15923
  }).loose();
15679
15924
  var OneRosterBulkResultsInput = exports_external.array(OneRosterBulkResultItem).min(1, "results must have at least one item");
15925
+ // ../../types/src/zod/powerpath.ts
15926
+ var NonEmptyString3 = exports_external.string().trim().min(1);
15927
+ var ToolProvider = exports_external.enum(["edulastic", "mastery-track"]);
15928
+ var LessonTypeRequired = exports_external.enum([
15929
+ "powerpath-100",
15930
+ "quiz",
15931
+ "test-out",
15932
+ "placement",
15933
+ "unit-test",
15934
+ "alpha-read-article"
15935
+ ]);
15936
+ var GradeArray = exports_external.array(TimebackGrade);
15937
+ var ResourceMetadata = exports_external.record(exports_external.string(), exports_external.unknown()).optional();
15938
+ var ExternalTestBase = exports_external.object({
15939
+ courseId: NonEmptyString3,
15940
+ lessonTitle: NonEmptyString3.optional(),
15941
+ launchUrl: exports_external.url().optional(),
15942
+ toolProvider: ToolProvider,
15943
+ unitTitle: NonEmptyString3.optional(),
15944
+ courseComponentSourcedId: NonEmptyString3.optional(),
15945
+ vendorId: NonEmptyString3.optional(),
15946
+ description: NonEmptyString3.optional(),
15947
+ resourceMetadata: ResourceMetadata.nullable().optional(),
15948
+ grades: GradeArray
15949
+ });
15950
+ var ExternalTestOut = ExternalTestBase.extend({
15951
+ lessonType: exports_external.literal("test-out"),
15952
+ xp: exports_external.number()
15953
+ });
15954
+ var ExternalPlacement = ExternalTestBase.extend({
15955
+ lessonType: exports_external.literal("placement"),
15956
+ courseIdOnFail: NonEmptyString3.optional(),
15957
+ xp: exports_external.number().optional()
15958
+ });
15959
+ var InternalTestBase = exports_external.object({
15960
+ courseId: NonEmptyString3,
15961
+ lessonType: LessonTypeRequired,
15962
+ lessonTitle: NonEmptyString3.optional(),
15963
+ unitTitle: NonEmptyString3.optional(),
15964
+ courseComponentSourcedId: NonEmptyString3.optional(),
15965
+ resourceMetadata: ResourceMetadata.nullable().optional(),
15966
+ xp: exports_external.number().optional(),
15967
+ grades: GradeArray.optional(),
15968
+ courseIdOnFail: NonEmptyString3.optional()
15969
+ });
15970
+ var PowerPathCreateInternalTestInput = exports_external.union([
15971
+ InternalTestBase.extend({
15972
+ testType: exports_external.literal("qti"),
15973
+ qti: exports_external.object({
15974
+ url: exports_external.url(),
15975
+ title: NonEmptyString3.optional(),
15976
+ metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15977
+ })
15978
+ }),
15979
+ InternalTestBase.extend({
15980
+ testType: exports_external.literal("assessment-bank"),
15981
+ assessmentBank: exports_external.object({
15982
+ resources: exports_external.array(exports_external.object({
15983
+ url: exports_external.url(),
15984
+ title: NonEmptyString3.optional(),
15985
+ metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15986
+ }))
15987
+ })
15988
+ })
15989
+ ]);
15990
+ var PowerPathCreateNewAttemptInput = exports_external.object({
15991
+ student: NonEmptyString3,
15992
+ lesson: NonEmptyString3
15993
+ });
15994
+ var PowerPathFinalStudentAssessmentResponseInput = exports_external.object({
15995
+ student: NonEmptyString3,
15996
+ lesson: NonEmptyString3
15997
+ });
15998
+ var PowerPathLessonPlansCreateInput = exports_external.object({
15999
+ courseId: NonEmptyString3,
16000
+ userId: NonEmptyString3,
16001
+ classId: NonEmptyString3.optional()
16002
+ });
16003
+ var LessonPlanTarget = exports_external.object({
16004
+ type: exports_external.enum(["component", "resource"]),
16005
+ id: NonEmptyString3
16006
+ });
16007
+ var PowerPathLessonPlanOperationInput = exports_external.union([
16008
+ exports_external.object({
16009
+ type: exports_external.literal("set-skipped"),
16010
+ payload: exports_external.object({
16011
+ target: LessonPlanTarget,
16012
+ value: exports_external.boolean()
16013
+ })
16014
+ }),
16015
+ exports_external.object({
16016
+ type: exports_external.literal("add-custom-resource"),
16017
+ payload: exports_external.object({
16018
+ resource_id: NonEmptyString3,
16019
+ parent_component_id: NonEmptyString3,
16020
+ skipped: exports_external.boolean().optional()
16021
+ })
16022
+ }),
16023
+ exports_external.object({
16024
+ type: exports_external.literal("move-item-before"),
16025
+ payload: exports_external.object({
16026
+ target: LessonPlanTarget,
16027
+ reference_id: NonEmptyString3
16028
+ })
16029
+ }),
16030
+ exports_external.object({
16031
+ type: exports_external.literal("move-item-after"),
16032
+ payload: exports_external.object({
16033
+ target: LessonPlanTarget,
16034
+ reference_id: NonEmptyString3
16035
+ })
16036
+ }),
16037
+ exports_external.object({
16038
+ type: exports_external.literal("move-item-to-start"),
16039
+ payload: exports_external.object({
16040
+ target: LessonPlanTarget
16041
+ })
16042
+ }),
16043
+ exports_external.object({
16044
+ type: exports_external.literal("move-item-to-end"),
16045
+ payload: exports_external.object({
16046
+ target: LessonPlanTarget
16047
+ })
16048
+ }),
16049
+ exports_external.object({
16050
+ type: exports_external.literal("change-item-parent"),
16051
+ payload: exports_external.object({
16052
+ target: LessonPlanTarget,
16053
+ new_parent_id: NonEmptyString3,
16054
+ position: exports_external.enum(["start", "end"]).optional()
16055
+ })
16056
+ })
16057
+ ]);
16058
+ var PowerPathLessonPlanOperationsInput = exports_external.object({
16059
+ operation: exports_external.array(PowerPathLessonPlanOperationInput),
16060
+ reason: NonEmptyString3.optional()
16061
+ });
16062
+ var PowerPathLessonPlanUpdateStudentItemResponseInput = exports_external.object({
16063
+ studentId: NonEmptyString3,
16064
+ componentResourceId: NonEmptyString3,
16065
+ result: exports_external.object({
16066
+ status: exports_external.enum(["active", "tobedeleted"]),
16067
+ metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
16068
+ score: exports_external.number().optional(),
16069
+ textScore: NonEmptyString3.optional(),
16070
+ scoreDate: NonEmptyString3,
16071
+ scorePercentile: exports_external.number().optional(),
16072
+ scoreStatus: ScoreStatus,
16073
+ comment: NonEmptyString3.optional(),
16074
+ learningObjectiveSet: exports_external.array(exports_external.object({
16075
+ source: NonEmptyString3,
16076
+ learningObjectiveResults: exports_external.array(exports_external.object({
16077
+ learningObjectiveId: NonEmptyString3,
16078
+ score: exports_external.number().optional(),
16079
+ textScore: NonEmptyString3.optional()
16080
+ }))
16081
+ })).optional(),
16082
+ inProgress: NonEmptyString3.optional(),
16083
+ incomplete: NonEmptyString3.optional(),
16084
+ late: NonEmptyString3.optional(),
16085
+ missing: NonEmptyString3.optional()
16086
+ })
16087
+ });
16088
+ var PowerPathMakeExternalTestAssignmentInput = exports_external.object({
16089
+ student: NonEmptyString3,
16090
+ lesson: NonEmptyString3,
16091
+ applicationName: NonEmptyString3.optional(),
16092
+ testId: NonEmptyString3.optional(),
16093
+ skipCourseEnrollment: exports_external.boolean().optional()
16094
+ });
16095
+ var PowerPathPlacementResetUserPlacementInput = exports_external.object({
16096
+ student: NonEmptyString3,
16097
+ subject: TimebackSubject
16098
+ });
16099
+ var PowerPathResetAttemptInput = exports_external.object({
16100
+ student: NonEmptyString3,
16101
+ lesson: NonEmptyString3
16102
+ });
16103
+ var PowerPathScreeningResetSessionInput = exports_external.object({
16104
+ userId: NonEmptyString3
16105
+ });
16106
+ var PowerPathScreeningAssignTestInput = exports_external.object({
16107
+ userId: NonEmptyString3,
16108
+ subject: exports_external.enum(["Math", "Reading", "Language", "Science"])
16109
+ });
16110
+ var PowerPathTestAssignmentsCreateInput = exports_external.object({
16111
+ student: NonEmptyString3,
16112
+ subject: TimebackSubject,
16113
+ grade: TimebackGrade,
16114
+ testName: NonEmptyString3.optional()
16115
+ });
16116
+ var PowerPathTestAssignmentsUpdateInput = exports_external.object({
16117
+ testName: NonEmptyString3
16118
+ });
16119
+ var PowerPathTestAssignmentItemInput = exports_external.object({
16120
+ student: NonEmptyString3,
16121
+ subject: TimebackSubject,
16122
+ grade: TimebackGrade,
16123
+ testName: NonEmptyString3.optional()
16124
+ });
16125
+ var PowerPathTestAssignmentsBulkInput = exports_external.object({
16126
+ items: exports_external.array(PowerPathTestAssignmentItemInput)
16127
+ });
16128
+ var PowerPathTestAssignmentsImportInput = exports_external.object({
16129
+ spreadsheetUrl: exports_external.url(),
16130
+ sheet: NonEmptyString3
16131
+ });
16132
+ var PowerPathTestAssignmentsListParams = exports_external.object({
16133
+ student: NonEmptyString3,
16134
+ status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
16135
+ subject: NonEmptyString3.optional(),
16136
+ grade: TimebackGrade.optional(),
16137
+ limit: exports_external.number().int().positive().max(3000).optional(),
16138
+ offset: exports_external.number().int().nonnegative().optional()
16139
+ });
16140
+ var PowerPathTestAssignmentsAdminParams = exports_external.object({
16141
+ student: NonEmptyString3.optional(),
16142
+ status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
16143
+ subject: NonEmptyString3.optional(),
16144
+ grade: TimebackGrade.optional(),
16145
+ limit: exports_external.number().int().positive().max(3000).optional(),
16146
+ offset: exports_external.number().int().nonnegative().optional()
16147
+ });
16148
+ var PowerPathUpdateStudentQuestionResponseInput = exports_external.object({
16149
+ student: NonEmptyString3,
16150
+ question: NonEmptyString3,
16151
+ response: exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)]).optional(),
16152
+ responses: exports_external.record(exports_external.string(), exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)])).optional(),
16153
+ lesson: NonEmptyString3
16154
+ });
16155
+ var PowerPathGetAssessmentProgressParams = exports_external.object({
16156
+ student: NonEmptyString3,
16157
+ lesson: NonEmptyString3,
16158
+ attempt: exports_external.number().int().positive().optional()
16159
+ });
16160
+ var PowerPathGetNextQuestionParams = exports_external.object({
16161
+ student: NonEmptyString3,
16162
+ lesson: NonEmptyString3
16163
+ });
16164
+ var PowerPathGetAttemptsParams = exports_external.object({
16165
+ student: NonEmptyString3,
16166
+ lesson: NonEmptyString3
16167
+ });
16168
+ var PowerPathTestOutParams = exports_external.object({
16169
+ student: NonEmptyString3,
16170
+ lesson: NonEmptyString3.optional(),
16171
+ finalized: exports_external.boolean().optional(),
16172
+ toolProvider: NonEmptyString3.optional(),
16173
+ attempt: exports_external.number().int().positive().optional()
16174
+ });
16175
+ var PowerPathImportExternalTestAssignmentResultsParams = exports_external.object({
16176
+ student: NonEmptyString3,
16177
+ lesson: NonEmptyString3,
16178
+ applicationName: NonEmptyString3.optional()
16179
+ });
16180
+ var PowerPathPlacementQueryParams = exports_external.object({
16181
+ student: NonEmptyString3,
16182
+ subject: TimebackSubject
16183
+ });
16184
+ var PowerPathSyllabusQueryParams = exports_external.object({
16185
+ status: exports_external.enum(["active", "tobedeleted"]).optional()
16186
+ });
15680
16187
  // ../../types/src/zod/qti.ts
15681
16188
  var QtiAssessmentItemType = exports_external.enum([
15682
16189
  "choice",