@timeback/oneroster 0.1.2 → 0.1.4

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.
Files changed (40) hide show
  1. package/dist/errors.js +12 -2
  2. package/dist/index.js +889 -368
  3. package/dist/resources/assessment/line-items.d.ts.map +1 -1
  4. package/dist/resources/assessment/results.d.ts +6 -2
  5. package/dist/resources/assessment/results.d.ts.map +1 -1
  6. package/dist/resources/base.d.ts +10 -10
  7. package/dist/resources/base.d.ts.map +1 -1
  8. package/dist/resources/gradebook/categories.d.ts +4 -3
  9. package/dist/resources/gradebook/categories.d.ts.map +1 -1
  10. package/dist/resources/gradebook/line-items.d.ts.map +1 -1
  11. package/dist/resources/gradebook/results.d.ts +4 -3
  12. package/dist/resources/gradebook/results.d.ts.map +1 -1
  13. package/dist/resources/gradebook/score-scales.d.ts +3 -2
  14. package/dist/resources/gradebook/score-scales.d.ts.map +1 -1
  15. package/dist/resources/resources/resources.d.ts.map +1 -1
  16. package/dist/resources/resources/resources.type-test.d.ts +2 -0
  17. package/dist/resources/resources/resources.type-test.d.ts.map +1 -0
  18. package/dist/resources/rostering/academic-sessions.d.ts +8 -9
  19. package/dist/resources/rostering/academic-sessions.d.ts.map +1 -1
  20. package/dist/resources/rostering/classes.d.ts +20 -20
  21. package/dist/resources/rostering/classes.d.ts.map +1 -1
  22. package/dist/resources/rostering/courses.d.ts +7 -7
  23. package/dist/resources/rostering/courses.d.ts.map +1 -1
  24. package/dist/resources/rostering/demographics.d.ts +2 -2
  25. package/dist/resources/rostering/demographics.d.ts.map +1 -1
  26. package/dist/resources/rostering/enrollments.d.ts +5 -3
  27. package/dist/resources/rostering/enrollments.d.ts.map +1 -1
  28. package/dist/resources/rostering/orgs.d.ts +3 -3
  29. package/dist/resources/rostering/orgs.d.ts.map +1 -1
  30. package/dist/resources/rostering/schools.d.ts +23 -23
  31. package/dist/resources/rostering/schools.d.ts.map +1 -1
  32. package/dist/resources/rostering/users.d.ts +10 -11
  33. package/dist/resources/rostering/users.d.ts.map +1 -1
  34. package/dist/types/callable.d.ts +26 -27
  35. package/dist/types/callable.d.ts.map +1 -1
  36. package/dist/types/index.d.ts +1 -0
  37. package/dist/types/index.d.ts.map +1 -1
  38. package/dist/types/list-params.d.ts +15 -0
  39. package/dist/types/list-params.d.ts.map +1 -0
  40. package/package.json +1 -1
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
  };
@@ -1534,237 +1544,8 @@ class Transport extends BaseTransport {
1534
1544
  return parseHeaderPagination(response, data);
1535
1545
  }
1536
1546
  }
1537
- // src/lib/validation.ts
1538
- function validateListParams(params) {
1539
- if (!params)
1540
- return;
1541
- validateOffsetListParams(params);
1542
- const issues = [];
1543
- if (params.fields !== undefined) {
1544
- if (Array.isArray(params.fields)) {
1545
- for (let i = 0;i < params.fields.length; i++) {
1546
- const field = params.fields[i];
1547
- if (typeof field !== "string" || field.trim() === "") {
1548
- issues.push({
1549
- path: `fields[${i}]`,
1550
- message: "Must be a non-empty string"
1551
- });
1552
- }
1553
- }
1554
- } else {
1555
- issues.push({
1556
- path: "fields",
1557
- message: "Must be an array of field names"
1558
- });
1559
- }
1560
- }
1561
- if (issues.length > 0) {
1562
- throw createInputValidationError("Invalid list parameters", issues);
1563
- }
1564
- }
1565
-
1566
- // src/lib/pagination.ts
1567
- class Paginator2 extends Paginator {
1568
- constructor(transport, path, params = {}, unwrapKey, transform) {
1569
- validateListParams(params);
1570
- const { max, ...requestParams } = params;
1571
- super({
1572
- fetcher: (p, opts) => transport.requestPaginated(p, opts),
1573
- path,
1574
- params: requestParams,
1575
- max,
1576
- unwrapKey,
1577
- logger: log2,
1578
- transform
1579
- });
1580
- }
1581
- }
1582
- // src/resources/base.ts
1583
- class BaseResource {
1584
- transport;
1585
- basePath;
1586
- constructor(transport, resourceType, suffix) {
1587
- this.transport = transport;
1588
- const prefix = transport.paths[resourceType];
1589
- this.basePath = `${prefix}${suffix}`;
1590
- }
1591
- list(params) {
1592
- return this.stream(params).firstPage();
1593
- }
1594
- listAll(params) {
1595
- return this.stream(params).toArray();
1596
- }
1597
- async first(params) {
1598
- const result = await this.list({ ...params, limit: 1 });
1599
- return result.data[0];
1600
- }
1601
- stream(params) {
1602
- return new Paginator2(this.transport, this.basePath, params, this.unwrapKey, this.transform.bind(this));
1603
- }
1604
- async get(sourcedId) {
1605
- validateSourcedId(sourcedId, `get ${this.resourceName}`);
1606
- const response = await this.transport.request(`${this.basePath}/${sourcedId}`);
1607
- return this.unwrapSingle(response);
1608
- }
1609
- create(data) {
1610
- const schema = this.createSchema;
1611
- if (schema) {
1612
- validateWithSchema(schema, data, this.resourceName);
1613
- }
1614
- const body = this.wrapBody(data);
1615
- return this.transport.request(this.basePath, {
1616
- method: "POST",
1617
- body
1618
- });
1619
- }
1620
- async update(sourcedId, data) {
1621
- validateSourcedId(sourcedId, `update ${this.resourceName}`);
1622
- const schema = this.updateSchema;
1623
- if (schema) {
1624
- validateWithSchema(schema, data, `update ${this.resourceName}`);
1625
- }
1626
- const body = this.wrapBody(data);
1627
- await this.transport.request(`${this.basePath}/${sourcedId}`, {
1628
- method: "PUT",
1629
- body
1630
- });
1631
- }
1632
- async delete(sourcedId) {
1633
- validateSourcedId(sourcedId, `delete ${this.resourceName}`);
1634
- await this.transport.request(`${this.basePath}/${sourcedId}`, {
1635
- method: "DELETE"
1636
- });
1637
- }
1638
- transform(entity) {
1639
- return entity;
1640
- }
1641
- get createSchema() {
1642
- return;
1643
- }
1644
- get updateSchema() {
1645
- return;
1646
- }
1647
- get patchSchema() {
1648
- return;
1649
- }
1650
- get resourceName() {
1651
- return this.wrapKey;
1652
- }
1653
- unwrapSingle(response) {
1654
- const singularKey = this.wrapKey;
1655
- const data = response[singularKey];
1656
- if (!data) {
1657
- throw new Error(`Expected "${singularKey}" in response`);
1658
- }
1659
- return this.transform(data);
1660
- }
1661
- wrapBody(data) {
1662
- return { [this.wrapKey]: data };
1663
- }
1664
- }
1665
-
1666
- class ReadOnlyResource {
1667
- transport;
1668
- basePath;
1669
- constructor(transport, resourceType, suffix) {
1670
- this.transport = transport;
1671
- const prefix = transport.paths[resourceType];
1672
- this.basePath = `${prefix}${suffix}`;
1673
- }
1674
- list(params) {
1675
- return this.stream(params).firstPage();
1676
- }
1677
- listAll(params) {
1678
- return this.stream(params).toArray();
1679
- }
1680
- async first(params) {
1681
- const result = await this.list({ ...params, limit: 1 });
1682
- return result.data[0];
1683
- }
1684
- stream(params) {
1685
- return new Paginator2(this.transport, this.basePath, params, this.unwrapKey, this.transform.bind(this));
1686
- }
1687
- async get(sourcedId) {
1688
- validateSourcedId(sourcedId, `get ${this.wrapKey}`);
1689
- const response = await this.transport.request(`${this.basePath}/${sourcedId}`);
1690
- const data = response[this.wrapKey];
1691
- if (!data) {
1692
- throw new Error(`Expected "${this.wrapKey}" in response`);
1693
- }
1694
- return this.transform(data);
1695
- }
1696
- transform(entity) {
1697
- return entity;
1698
- }
1699
- }
1700
-
1701
- // src/resources/assessment/line-items.ts
1702
- class ScopedAssessmentLineItemResource {
1703
- transport;
1704
- basePath;
1705
- constructor(transport, lineItemId) {
1706
- this.transport = transport;
1707
- validateSourcedId(lineItemId, "assessment line item");
1708
- this.basePath = `${transport.paths.gradebook}/assessmentLineItems/${lineItemId}`;
1709
- }
1710
- async get() {
1711
- const response = await this.transport.request(this.basePath);
1712
- return response.assessmentLineItem;
1713
- }
1714
- }
1715
1547
 
1716
- class AssessmentLineItemsResourceImpl extends BaseResource {
1717
- constructor(transport) {
1718
- super(transport, "gradebook", "/assessmentLineItems");
1719
- }
1720
- async patch(sourcedId, data) {
1721
- validateSourcedId(sourcedId, "patch assessment line item");
1722
- await this.transport.request(`${this.basePath}/${sourcedId}`, {
1723
- method: "PATCH",
1724
- body: { assessmentLineItem: data }
1725
- });
1726
- }
1727
- get unwrapKey() {
1728
- return "assessmentLineItems";
1729
- }
1730
- get wrapKey() {
1731
- return "assessmentLineItem";
1732
- }
1733
- }
1734
- function createAssessmentLineItemsResource(transport) {
1735
- const impl = new AssessmentLineItemsResourceImpl(transport);
1736
- const callable = (id) => new ScopedAssessmentLineItemResource(transport, id);
1737
- callable.list = impl.list.bind(impl);
1738
- callable.listAll = impl.listAll.bind(impl);
1739
- callable.first = impl.first.bind(impl);
1740
- callable.stream = impl.stream.bind(impl);
1741
- callable.get = impl.get.bind(impl);
1742
- callable.create = impl.create.bind(impl);
1743
- callable.update = impl.update.bind(impl);
1744
- callable.patch = impl.patch.bind(impl);
1745
- callable.delete = impl.delete.bind(impl);
1746
- return callable;
1747
- }
1748
- // src/resources/assessment/results.ts
1749
- class AssessmentResultsResource extends BaseResource {
1750
- constructor(transport) {
1751
- super(transport, "gradebook", "/assessmentResults");
1752
- }
1753
- async patch(sourcedId, data) {
1754
- validateSourcedId(sourcedId, "patch assessment result");
1755
- await this.transport.request(`${this.basePath}/${sourcedId}`, {
1756
- method: "PATCH",
1757
- body: { assessmentResult: data }
1758
- });
1759
- }
1760
- get unwrapKey() {
1761
- return "assessmentResults";
1762
- }
1763
- get wrapKey() {
1764
- return "assessmentResult";
1765
- }
1766
- }
1767
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/external.js
1548
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/external.js
1768
1549
  var exports_external = {};
1769
1550
  __export(exports_external, {
1770
1551
  xor: () => xor,
@@ -2005,7 +1786,7 @@ __export(exports_external, {
2005
1786
  $brand: () => $brand
2006
1787
  });
2007
1788
 
2008
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/index.js
1789
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/index.js
2009
1790
  var exports_core2 = {};
2010
1791
  __export(exports_core2, {
2011
1792
  version: () => version,
@@ -2283,7 +2064,7 @@ __export(exports_core2, {
2283
2064
  $ZodAny: () => $ZodAny
2284
2065
  });
2285
2066
 
2286
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/core.js
2067
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/core.js
2287
2068
  var NEVER = Object.freeze({
2288
2069
  status: "aborted"
2289
2070
  });
@@ -2359,7 +2140,7 @@ function config(newConfig) {
2359
2140
  Object.assign(globalConfig, newConfig);
2360
2141
  return globalConfig;
2361
2142
  }
2362
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/util.js
2143
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/util.js
2363
2144
  var exports_util = {};
2364
2145
  __export(exports_util, {
2365
2146
  unwrapMessage: () => unwrapMessage,
@@ -3033,7 +2814,7 @@ class Class {
3033
2814
  constructor(..._args) {}
3034
2815
  }
3035
2816
 
3036
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/errors.js
2817
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/errors.js
3037
2818
  var initializer = (inst, def) => {
3038
2819
  inst.name = "$ZodError";
3039
2820
  Object.defineProperty(inst, "_zod", {
@@ -3170,7 +2951,7 @@ function prettifyError(error) {
3170
2951
  `);
3171
2952
  }
3172
2953
 
3173
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/parse.js
2954
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/parse.js
3174
2955
  var _parse = (_Err) => (schema, value, _ctx, _params) => {
3175
2956
  const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };
3176
2957
  const result = schema._zod.run({ value, issues: [] }, ctx);
@@ -3257,7 +3038,7 @@ var _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {
3257
3038
  return _safeParseAsync(_Err)(schema, value, _ctx);
3258
3039
  };
3259
3040
  var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync($ZodRealError);
3260
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/regexes.js
3041
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/regexes.js
3261
3042
  var exports_regexes = {};
3262
3043
  __export(exports_regexes, {
3263
3044
  xid: () => xid,
@@ -3414,7 +3195,7 @@ var sha512_hex = /^[0-9a-fA-F]{128}$/;
3414
3195
  var sha512_base64 = /* @__PURE__ */ fixedBase64(86, "==");
3415
3196
  var sha512_base64url = /* @__PURE__ */ fixedBase64url(86);
3416
3197
 
3417
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/checks.js
3198
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/checks.js
3418
3199
  var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
3419
3200
  var _a;
3420
3201
  inst._zod ?? (inst._zod = {});
@@ -3961,7 +3742,7 @@ var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (ins
3961
3742
  };
3962
3743
  });
3963
3744
 
3964
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/doc.js
3745
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/doc.js
3965
3746
  class Doc {
3966
3747
  constructor(args = []) {
3967
3748
  this.content = [];
@@ -3999,14 +3780,14 @@ class Doc {
3999
3780
  }
4000
3781
  }
4001
3782
 
4002
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/versions.js
3783
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/versions.js
4003
3784
  var version = {
4004
3785
  major: 4,
4005
3786
  minor: 3,
4006
- patch: 5
3787
+ patch: 6
4007
3788
  };
4008
3789
 
4009
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/schemas.js
3790
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/schemas.js
4010
3791
  var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
4011
3792
  var _a;
4012
3793
  inst ?? (inst = {});
@@ -5289,7 +5070,7 @@ var $ZodRecord = /* @__PURE__ */ $constructor("$ZodRecord", (inst, def) => {
5289
5070
  if (keyResult instanceof Promise) {
5290
5071
  throw new Error("Async schemas not supported in object keys currently");
5291
5072
  }
5292
- const checkNumericKey = typeof key === "string" && number.test(key) && keyResult.issues.length && keyResult.issues.some((iss) => iss.code === "invalid_type" && iss.expected === "number");
5073
+ const checkNumericKey = typeof key === "string" && number.test(key) && keyResult.issues.length;
5293
5074
  if (checkNumericKey) {
5294
5075
  const retryResult = def.keyType._zod.run({ value: Number(key), issues: [] }, ctx);
5295
5076
  if (retryResult instanceof Promise) {
@@ -5968,7 +5749,7 @@ function handleRefineResult(result, payload, input, inst) {
5968
5749
  payload.issues.push(issue2(_iss));
5969
5750
  }
5970
5751
  }
5971
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/index.js
5752
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/index.js
5972
5753
  var exports_locales = {};
5973
5754
  __export(exports_locales, {
5974
5755
  zhTW: () => zh_TW_default,
@@ -6022,7 +5803,7 @@ __export(exports_locales, {
6022
5803
  ar: () => ar_default
6023
5804
  });
6024
5805
 
6025
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ar.js
5806
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ar.js
6026
5807
  var error = () => {
6027
5808
  const Sizable = {
6028
5809
  string: { unit: "حرف", verb: "أن يحوي" },
@@ -6128,7 +5909,7 @@ function ar_default() {
6128
5909
  localeError: error()
6129
5910
  };
6130
5911
  }
6131
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/az.js
5912
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/az.js
6132
5913
  var error2 = () => {
6133
5914
  const Sizable = {
6134
5915
  string: { unit: "simvol", verb: "olmalıdır" },
@@ -6233,7 +6014,7 @@ function az_default() {
6233
6014
  localeError: error2()
6234
6015
  };
6235
6016
  }
6236
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/be.js
6017
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/be.js
6237
6018
  function getBelarusianPlural(count, one, few, many) {
6238
6019
  const absCount = Math.abs(count);
6239
6020
  const lastDigit = absCount % 10;
@@ -6389,7 +6170,7 @@ function be_default() {
6389
6170
  localeError: error3()
6390
6171
  };
6391
6172
  }
6392
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/bg.js
6173
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/bg.js
6393
6174
  var error4 = () => {
6394
6175
  const Sizable = {
6395
6176
  string: { unit: "символа", verb: "да съдържа" },
@@ -6509,7 +6290,7 @@ function bg_default() {
6509
6290
  localeError: error4()
6510
6291
  };
6511
6292
  }
6512
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ca.js
6293
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ca.js
6513
6294
  var error5 = () => {
6514
6295
  const Sizable = {
6515
6296
  string: { unit: "caràcters", verb: "contenir" },
@@ -6616,7 +6397,7 @@ function ca_default() {
6616
6397
  localeError: error5()
6617
6398
  };
6618
6399
  }
6619
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/cs.js
6400
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/cs.js
6620
6401
  var error6 = () => {
6621
6402
  const Sizable = {
6622
6403
  string: { unit: "znaků", verb: "mít" },
@@ -6727,7 +6508,7 @@ function cs_default() {
6727
6508
  localeError: error6()
6728
6509
  };
6729
6510
  }
6730
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/da.js
6511
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/da.js
6731
6512
  var error7 = () => {
6732
6513
  const Sizable = {
6733
6514
  string: { unit: "tegn", verb: "havde" },
@@ -6842,7 +6623,7 @@ function da_default() {
6842
6623
  localeError: error7()
6843
6624
  };
6844
6625
  }
6845
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/de.js
6626
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/de.js
6846
6627
  var error8 = () => {
6847
6628
  const Sizable = {
6848
6629
  string: { unit: "Zeichen", verb: "zu haben" },
@@ -6950,7 +6731,7 @@ function de_default() {
6950
6731
  localeError: error8()
6951
6732
  };
6952
6733
  }
6953
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/en.js
6734
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/en.js
6954
6735
  var error9 = () => {
6955
6736
  const Sizable = {
6956
6737
  string: { unit: "characters", verb: "to have" },
@@ -7056,7 +6837,7 @@ function en_default() {
7056
6837
  localeError: error9()
7057
6838
  };
7058
6839
  }
7059
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/eo.js
6840
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/eo.js
7060
6841
  var error10 = () => {
7061
6842
  const Sizable = {
7062
6843
  string: { unit: "karaktrojn", verb: "havi" },
@@ -7165,7 +6946,7 @@ function eo_default() {
7165
6946
  localeError: error10()
7166
6947
  };
7167
6948
  }
7168
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/es.js
6949
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/es.js
7169
6950
  var error11 = () => {
7170
6951
  const Sizable = {
7171
6952
  string: { unit: "caracteres", verb: "tener" },
@@ -7297,7 +7078,7 @@ function es_default() {
7297
7078
  localeError: error11()
7298
7079
  };
7299
7080
  }
7300
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fa.js
7081
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fa.js
7301
7082
  var error12 = () => {
7302
7083
  const Sizable = {
7303
7084
  string: { unit: "کاراکتر", verb: "داشته باشد" },
@@ -7411,7 +7192,7 @@ function fa_default() {
7411
7192
  localeError: error12()
7412
7193
  };
7413
7194
  }
7414
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fi.js
7195
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fi.js
7415
7196
  var error13 = () => {
7416
7197
  const Sizable = {
7417
7198
  string: { unit: "merkkiä", subject: "merkkijonon" },
@@ -7523,7 +7304,7 @@ function fi_default() {
7523
7304
  localeError: error13()
7524
7305
  };
7525
7306
  }
7526
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fr.js
7307
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fr.js
7527
7308
  var error14 = () => {
7528
7309
  const Sizable = {
7529
7310
  string: { unit: "caractères", verb: "avoir" },
@@ -7631,7 +7412,7 @@ function fr_default() {
7631
7412
  localeError: error14()
7632
7413
  };
7633
7414
  }
7634
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fr-CA.js
7415
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fr-CA.js
7635
7416
  var error15 = () => {
7636
7417
  const Sizable = {
7637
7418
  string: { unit: "caractères", verb: "avoir" },
@@ -7738,7 +7519,7 @@ function fr_CA_default() {
7738
7519
  localeError: error15()
7739
7520
  };
7740
7521
  }
7741
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/he.js
7522
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/he.js
7742
7523
  var error16 = () => {
7743
7524
  const TypeNames = {
7744
7525
  string: { label: "מחרוזת", gender: "f" },
@@ -7931,7 +7712,7 @@ function he_default() {
7931
7712
  localeError: error16()
7932
7713
  };
7933
7714
  }
7934
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/hu.js
7715
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/hu.js
7935
7716
  var error17 = () => {
7936
7717
  const Sizable = {
7937
7718
  string: { unit: "karakter", verb: "legyen" },
@@ -8039,7 +7820,7 @@ function hu_default() {
8039
7820
  localeError: error17()
8040
7821
  };
8041
7822
  }
8042
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/hy.js
7823
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/hy.js
8043
7824
  function getArmenianPlural(count, one, many) {
8044
7825
  return Math.abs(count) === 1 ? one : many;
8045
7826
  }
@@ -8186,7 +7967,7 @@ function hy_default() {
8186
7967
  localeError: error18()
8187
7968
  };
8188
7969
  }
8189
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/id.js
7970
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/id.js
8190
7971
  var error19 = () => {
8191
7972
  const Sizable = {
8192
7973
  string: { unit: "karakter", verb: "memiliki" },
@@ -8292,7 +8073,7 @@ function id_default() {
8292
8073
  localeError: error19()
8293
8074
  };
8294
8075
  }
8295
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/is.js
8076
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/is.js
8296
8077
  var error20 = () => {
8297
8078
  const Sizable = {
8298
8079
  string: { unit: "stafi", verb: "að hafa" },
@@ -8401,7 +8182,7 @@ function is_default() {
8401
8182
  localeError: error20()
8402
8183
  };
8403
8184
  }
8404
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/it.js
8185
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/it.js
8405
8186
  var error21 = () => {
8406
8187
  const Sizable = {
8407
8188
  string: { unit: "caratteri", verb: "avere" },
@@ -8509,7 +8290,7 @@ function it_default() {
8509
8290
  localeError: error21()
8510
8291
  };
8511
8292
  }
8512
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ja.js
8293
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ja.js
8513
8294
  var error22 = () => {
8514
8295
  const Sizable = {
8515
8296
  string: { unit: "文字", verb: "である" },
@@ -8616,7 +8397,7 @@ function ja_default() {
8616
8397
  localeError: error22()
8617
8398
  };
8618
8399
  }
8619
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ka.js
8400
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ka.js
8620
8401
  var error23 = () => {
8621
8402
  const Sizable = {
8622
8403
  string: { unit: "სიმბოლო", verb: "უნდა შეიცავდეს" },
@@ -8728,7 +8509,7 @@ function ka_default() {
8728
8509
  localeError: error23()
8729
8510
  };
8730
8511
  }
8731
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/km.js
8512
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/km.js
8732
8513
  var error24 = () => {
8733
8514
  const Sizable = {
8734
8515
  string: { unit: "តួអក្សរ", verb: "គួរមាន" },
@@ -8839,11 +8620,11 @@ function km_default() {
8839
8620
  };
8840
8621
  }
8841
8622
 
8842
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/kh.js
8623
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/kh.js
8843
8624
  function kh_default() {
8844
8625
  return km_default();
8845
8626
  }
8846
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ko.js
8627
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ko.js
8847
8628
  var error25 = () => {
8848
8629
  const Sizable = {
8849
8630
  string: { unit: "문자", verb: "to have" },
@@ -8954,7 +8735,7 @@ function ko_default() {
8954
8735
  localeError: error25()
8955
8736
  };
8956
8737
  }
8957
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/lt.js
8738
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/lt.js
8958
8739
  var capitalizeFirstCharacter = (text) => {
8959
8740
  return text.charAt(0).toUpperCase() + text.slice(1);
8960
8741
  };
@@ -9157,7 +8938,7 @@ function lt_default() {
9157
8938
  localeError: error26()
9158
8939
  };
9159
8940
  }
9160
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/mk.js
8941
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/mk.js
9161
8942
  var error27 = () => {
9162
8943
  const Sizable = {
9163
8944
  string: { unit: "знаци", verb: "да имаат" },
@@ -9266,7 +9047,7 @@ function mk_default() {
9266
9047
  localeError: error27()
9267
9048
  };
9268
9049
  }
9269
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ms.js
9050
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ms.js
9270
9051
  var error28 = () => {
9271
9052
  const Sizable = {
9272
9053
  string: { unit: "aksara", verb: "mempunyai" },
@@ -9373,7 +9154,7 @@ function ms_default() {
9373
9154
  localeError: error28()
9374
9155
  };
9375
9156
  }
9376
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/nl.js
9157
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/nl.js
9377
9158
  var error29 = () => {
9378
9159
  const Sizable = {
9379
9160
  string: { unit: "tekens", verb: "heeft" },
@@ -9483,7 +9264,7 @@ function nl_default() {
9483
9264
  localeError: error29()
9484
9265
  };
9485
9266
  }
9486
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/no.js
9267
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/no.js
9487
9268
  var error30 = () => {
9488
9269
  const Sizable = {
9489
9270
  string: { unit: "tegn", verb: "å ha" },
@@ -9591,7 +9372,7 @@ function no_default() {
9591
9372
  localeError: error30()
9592
9373
  };
9593
9374
  }
9594
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ota.js
9375
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ota.js
9595
9376
  var error31 = () => {
9596
9377
  const Sizable = {
9597
9378
  string: { unit: "harf", verb: "olmalıdır" },
@@ -9700,7 +9481,7 @@ function ota_default() {
9700
9481
  localeError: error31()
9701
9482
  };
9702
9483
  }
9703
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ps.js
9484
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ps.js
9704
9485
  var error32 = () => {
9705
9486
  const Sizable = {
9706
9487
  string: { unit: "توکي", verb: "ولري" },
@@ -9814,7 +9595,7 @@ function ps_default() {
9814
9595
  localeError: error32()
9815
9596
  };
9816
9597
  }
9817
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/pl.js
9598
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/pl.js
9818
9599
  var error33 = () => {
9819
9600
  const Sizable = {
9820
9601
  string: { unit: "znaków", verb: "mieć" },
@@ -9923,7 +9704,7 @@ function pl_default() {
9923
9704
  localeError: error33()
9924
9705
  };
9925
9706
  }
9926
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/pt.js
9707
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/pt.js
9927
9708
  var error34 = () => {
9928
9709
  const Sizable = {
9929
9710
  string: { unit: "caracteres", verb: "ter" },
@@ -10031,7 +9812,7 @@ function pt_default() {
10031
9812
  localeError: error34()
10032
9813
  };
10033
9814
  }
10034
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ru.js
9815
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ru.js
10035
9816
  function getRussianPlural(count, one, few, many) {
10036
9817
  const absCount = Math.abs(count);
10037
9818
  const lastDigit = absCount % 10;
@@ -10187,7 +9968,7 @@ function ru_default() {
10187
9968
  localeError: error35()
10188
9969
  };
10189
9970
  }
10190
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/sl.js
9971
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/sl.js
10191
9972
  var error36 = () => {
10192
9973
  const Sizable = {
10193
9974
  string: { unit: "znakov", verb: "imeti" },
@@ -10296,7 +10077,7 @@ function sl_default() {
10296
10077
  localeError: error36()
10297
10078
  };
10298
10079
  }
10299
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/sv.js
10080
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/sv.js
10300
10081
  var error37 = () => {
10301
10082
  const Sizable = {
10302
10083
  string: { unit: "tecken", verb: "att ha" },
@@ -10406,7 +10187,7 @@ function sv_default() {
10406
10187
  localeError: error37()
10407
10188
  };
10408
10189
  }
10409
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ta.js
10190
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ta.js
10410
10191
  var error38 = () => {
10411
10192
  const Sizable = {
10412
10193
  string: { unit: "எழுத்துக்கள்", verb: "கொண்டிருக்க வேண்டும்" },
@@ -10516,7 +10297,7 @@ function ta_default() {
10516
10297
  localeError: error38()
10517
10298
  };
10518
10299
  }
10519
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/th.js
10300
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/th.js
10520
10301
  var error39 = () => {
10521
10302
  const Sizable = {
10522
10303
  string: { unit: "ตัวอักษร", verb: "ควรมี" },
@@ -10626,7 +10407,7 @@ function th_default() {
10626
10407
  localeError: error39()
10627
10408
  };
10628
10409
  }
10629
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/tr.js
10410
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/tr.js
10630
10411
  var error40 = () => {
10631
10412
  const Sizable = {
10632
10413
  string: { unit: "karakter", verb: "olmalı" },
@@ -10731,7 +10512,7 @@ function tr_default() {
10731
10512
  localeError: error40()
10732
10513
  };
10733
10514
  }
10734
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/uk.js
10515
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/uk.js
10735
10516
  var error41 = () => {
10736
10517
  const Sizable = {
10737
10518
  string: { unit: "символів", verb: "матиме" },
@@ -10840,11 +10621,11 @@ function uk_default() {
10840
10621
  };
10841
10622
  }
10842
10623
 
10843
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ua.js
10624
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ua.js
10844
10625
  function ua_default() {
10845
10626
  return uk_default();
10846
10627
  }
10847
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ur.js
10628
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ur.js
10848
10629
  var error42 = () => {
10849
10630
  const Sizable = {
10850
10631
  string: { unit: "حروف", verb: "ہونا" },
@@ -10954,7 +10735,7 @@ function ur_default() {
10954
10735
  localeError: error42()
10955
10736
  };
10956
10737
  }
10957
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/uz.js
10738
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/uz.js
10958
10739
  var error43 = () => {
10959
10740
  const Sizable = {
10960
10741
  string: { unit: "belgi", verb: "bo‘lishi kerak" },
@@ -11063,7 +10844,7 @@ function uz_default() {
11063
10844
  localeError: error43()
11064
10845
  };
11065
10846
  }
11066
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/vi.js
10847
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/vi.js
11067
10848
  var error44 = () => {
11068
10849
  const Sizable = {
11069
10850
  string: { unit: "ký tự", verb: "có" },
@@ -11171,7 +10952,7 @@ function vi_default() {
11171
10952
  localeError: error44()
11172
10953
  };
11173
10954
  }
11174
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/zh-CN.js
10955
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/zh-CN.js
11175
10956
  var error45 = () => {
11176
10957
  const Sizable = {
11177
10958
  string: { unit: "字符", verb: "包含" },
@@ -11280,7 +11061,7 @@ function zh_CN_default() {
11280
11061
  localeError: error45()
11281
11062
  };
11282
11063
  }
11283
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/zh-TW.js
11064
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/zh-TW.js
11284
11065
  var error46 = () => {
11285
11066
  const Sizable = {
11286
11067
  string: { unit: "字元", verb: "擁有" },
@@ -11387,7 +11168,7 @@ function zh_TW_default() {
11387
11168
  localeError: error46()
11388
11169
  };
11389
11170
  }
11390
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/yo.js
11171
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/yo.js
11391
11172
  var error47 = () => {
11392
11173
  const Sizable = {
11393
11174
  string: { unit: "àmi", verb: "ní" },
@@ -11494,7 +11275,7 @@ function yo_default() {
11494
11275
  localeError: error47()
11495
11276
  };
11496
11277
  }
11497
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/registries.js
11278
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/registries.js
11498
11279
  var _a;
11499
11280
  var $output = Symbol("ZodOutput");
11500
11281
  var $input = Symbol("ZodInput");
@@ -11544,7 +11325,7 @@ function registry() {
11544
11325
  }
11545
11326
  (_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());
11546
11327
  var globalRegistry = globalThis.__zod_globalRegistry;
11547
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/api.js
11328
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/api.js
11548
11329
  function _string(Class2, params) {
11549
11330
  return new Class2({
11550
11331
  type: "string",
@@ -12464,7 +12245,7 @@ function _stringFormat(Class2, format, fnOrRegex, _params = {}) {
12464
12245
  const inst = new Class2(def);
12465
12246
  return inst;
12466
12247
  }
12467
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/to-json-schema.js
12248
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.js
12468
12249
  function initializeContext(params) {
12469
12250
  let target = params?.target ?? "draft-2020-12";
12470
12251
  if (target === "draft-4")
@@ -12660,7 +12441,7 @@ function finalize(ctx, schema) {
12660
12441
  }
12661
12442
  }
12662
12443
  }
12663
- if (refSchema.$ref) {
12444
+ if (refSchema.$ref && refSeen.def) {
12664
12445
  for (const key in schema2) {
12665
12446
  if (key === "$ref" || key === "allOf")
12666
12447
  continue;
@@ -12809,7 +12590,7 @@ var createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) =
12809
12590
  extractDefs(ctx, schema);
12810
12591
  return finalize(ctx, schema);
12811
12592
  };
12812
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/json-schema-processors.js
12593
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/json-schema-processors.js
12813
12594
  var formatMap = {
12814
12595
  guid: "uuid",
12815
12596
  url: "uri",
@@ -13354,7 +13135,7 @@ function toJSONSchema(input, params) {
13354
13135
  extractDefs(ctx, input);
13355
13136
  return finalize(ctx, input);
13356
13137
  }
13357
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/json-schema-generator.js
13138
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/json-schema-generator.js
13358
13139
  class JSONSchemaGenerator {
13359
13140
  get metadataRegistry() {
13360
13141
  return this.ctx.metadataRegistry;
@@ -13413,9 +13194,9 @@ class JSONSchemaGenerator {
13413
13194
  return plainResult;
13414
13195
  }
13415
13196
  }
13416
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/json-schema.js
13197
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/json-schema.js
13417
13198
  var exports_json_schema = {};
13418
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/schemas.js
13199
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/schemas.js
13419
13200
  var exports_schemas2 = {};
13420
13201
  __export(exports_schemas2, {
13421
13202
  xor: () => xor,
@@ -13584,7 +13365,7 @@ __export(exports_schemas2, {
13584
13365
  ZodAny: () => ZodAny
13585
13366
  });
13586
13367
 
13587
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/checks.js
13368
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/checks.js
13588
13369
  var exports_checks2 = {};
13589
13370
  __export(exports_checks2, {
13590
13371
  uppercase: () => _uppercase,
@@ -13618,7 +13399,7 @@ __export(exports_checks2, {
13618
13399
  endsWith: () => _endsWith
13619
13400
  });
13620
13401
 
13621
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/iso.js
13402
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/iso.js
13622
13403
  var exports_iso = {};
13623
13404
  __export(exports_iso, {
13624
13405
  time: () => time2,
@@ -13659,7 +13440,7 @@ function duration2(params) {
13659
13440
  return _isoDuration(ZodISODuration, params);
13660
13441
  }
13661
13442
 
13662
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/errors.js
13443
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/errors.js
13663
13444
  var initializer2 = (inst, issues) => {
13664
13445
  $ZodError.init(inst, issues);
13665
13446
  inst.name = "ZodError";
@@ -13694,7 +13475,7 @@ var ZodRealError = $constructor("ZodError", initializer2, {
13694
13475
  Parent: Error
13695
13476
  });
13696
13477
 
13697
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/parse.js
13478
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/parse.js
13698
13479
  var parse3 = /* @__PURE__ */ _parse(ZodRealError);
13699
13480
  var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError);
13700
13481
  var safeParse2 = /* @__PURE__ */ _safeParse(ZodRealError);
@@ -13708,7 +13489,7 @@ var safeDecode2 = /* @__PURE__ */ _safeDecode(ZodRealError);
13708
13489
  var safeEncodeAsync2 = /* @__PURE__ */ _safeEncodeAsync(ZodRealError);
13709
13490
  var safeDecodeAsync2 = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
13710
13491
 
13711
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/schemas.js
13492
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/schemas.js
13712
13493
  var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
13713
13494
  $ZodType.init(inst, def);
13714
13495
  Object.assign(inst["~standard"], {
@@ -14784,7 +14565,7 @@ function json(params) {
14784
14565
  function preprocess(fn, schema) {
14785
14566
  return pipe(transform(fn), schema);
14786
14567
  }
14787
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/compat.js
14568
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/compat.js
14788
14569
  var ZodIssueCode = {
14789
14570
  invalid_type: "invalid_type",
14790
14571
  too_big: "too_big",
@@ -14808,7 +14589,7 @@ function getErrorMap() {
14808
14589
  }
14809
14590
  var ZodFirstPartyTypeKind;
14810
14591
  (function(ZodFirstPartyTypeKind2) {})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
14811
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/from-json-schema.js
14592
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/from-json-schema.js
14812
14593
  var z = {
14813
14594
  ...exports_schemas2,
14814
14595
  ...exports_checks2,
@@ -15269,7 +15050,7 @@ function fromJSONSchema(schema, params) {
15269
15050
  };
15270
15051
  return convertSchema(schema, ctx);
15271
15052
  }
15272
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/coerce.js
15053
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/coerce.js
15273
15054
  var exports_coerce = {};
15274
15055
  __export(exports_coerce, {
15275
15056
  string: () => string3,
@@ -15294,7 +15075,7 @@ function date4(params) {
15294
15075
  return _coercedDate(ZodDate, params);
15295
15076
  }
15296
15077
 
15297
- // ../../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/external.js
15078
+ // ../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/external.js
15298
15079
  config(en_default());
15299
15080
  // ../../types/src/zod/primitives.ts
15300
15081
  var IsoDateTimeRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/;
@@ -15311,7 +15092,7 @@ var TimebackSubject = exports_external.enum([
15311
15092
  "Math",
15312
15093
  "None",
15313
15094
  "Other"
15314
- ]);
15095
+ ]).meta({ id: "TimebackSubject", description: "Subject area" });
15315
15096
  var TimebackGrade = exports_external.union([
15316
15097
  exports_external.literal(-1),
15317
15098
  exports_external.literal(0),
@@ -15328,7 +15109,10 @@ var TimebackGrade = exports_external.union([
15328
15109
  exports_external.literal(11),
15329
15110
  exports_external.literal(12),
15330
15111
  exports_external.literal(13)
15331
- ]);
15112
+ ]).meta({
15113
+ id: "TimebackGrade",
15114
+ description: "Grade level (-1 = Pre-K, 0 = K, 1-12 = grades, 13 = AP)"
15115
+ });
15332
15116
  var ScoreStatus = exports_external.enum([
15333
15117
  "exempt",
15334
15118
  "fully graded",
@@ -15355,6 +15139,47 @@ var OneRosterUserRole = exports_external.enum([
15355
15139
  "teacher"
15356
15140
  ]);
15357
15141
  var EnrollmentRole = exports_external.enum(["administrator", "proctor", "student", "teacher"]);
15142
+ var ResourceType = exports_external.enum([
15143
+ "qti",
15144
+ "text",
15145
+ "audio",
15146
+ "video",
15147
+ "interactive",
15148
+ "visual",
15149
+ "course-material",
15150
+ "assessment-bank"
15151
+ ]);
15152
+ var QtiSubType = exports_external.enum(["qti-test", "qti-question", "qti-stimulus", "qti-test-bank"]);
15153
+ var CourseMaterialSubType = exports_external.enum(["unit", "course", "resource-collection"]);
15154
+ var QuestionType = exports_external.enum([
15155
+ "choice",
15156
+ "order",
15157
+ "associate",
15158
+ "match",
15159
+ "hotspot",
15160
+ "hottext",
15161
+ "select-point",
15162
+ "graphic-order",
15163
+ "graphic-associate",
15164
+ "graphic-gap-match",
15165
+ "text-entry",
15166
+ "extended-text",
15167
+ "inline-choice",
15168
+ "upload",
15169
+ "slider",
15170
+ "drawing",
15171
+ "media",
15172
+ "custom"
15173
+ ]);
15174
+ var Difficulty = exports_external.enum(["easy", "medium", "hard"]);
15175
+ var LearningObjectiveSetSchema = exports_external.array(exports_external.object({
15176
+ source: exports_external.string(),
15177
+ learningObjectiveIds: exports_external.array(exports_external.string())
15178
+ }));
15179
+ var FastFailConfigSchema = exports_external.object({
15180
+ consecutive_failures: exports_external.number().int().min(1).optional(),
15181
+ stagnation_limit: exports_external.number().int().min(1).optional()
15182
+ }).optional();
15358
15183
  var LessonType = exports_external.enum(["powerpath-100", "quiz", "test-out", "placement", "unit-test", "alpha-read-article"]).nullable();
15359
15184
  var IMSErrorResponse = exports_external.object({
15360
15185
  imsx_codeMajor: exports_external.enum(["failure", "success"]),
@@ -15431,7 +15256,11 @@ var ActivityCompletedInput = exports_external.object({
15431
15256
  eventTime: IsoDateTimeString.optional(),
15432
15257
  metricsId: exports_external.string().optional(),
15433
15258
  id: exports_external.string().optional(),
15434
- extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15259
+ extensions: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
15260
+ attempt: exports_external.number().int().min(1).optional(),
15261
+ generatedExtensions: exports_external.object({
15262
+ pctCompleteApp: exports_external.number().optional()
15263
+ }).loose().optional()
15435
15264
  }).strict();
15436
15265
  var TimeSpentInput = exports_external.object({
15437
15266
  actor: TimebackUser,
@@ -15515,51 +15344,122 @@ var CaliperListEventsParams = exports_external.object({
15515
15344
  }).strict();
15516
15345
  // ../../types/src/zod/config.ts
15517
15346
  var CourseIds = exports_external.object({
15518
- staging: exports_external.string().optional(),
15519
- production: exports_external.string().optional()
15520
- });
15521
- var CourseType = exports_external.enum(["base", "hole-filling", "optional"]);
15522
- var PublishStatus = exports_external.enum(["draft", "testing", "published", "deactivated"]);
15347
+ staging: exports_external.string().meta({ description: "Course ID in staging environment" }).optional(),
15348
+ production: exports_external.string().meta({ description: "Course ID in production environment" }).optional()
15349
+ }).meta({ id: "CourseIds", description: "Environment-specific course IDs (populated by sync)" });
15350
+ var CourseType = exports_external.enum(["base", "hole-filling", "optional"]).meta({ id: "CourseType", description: "Course classification type" });
15351
+ var PublishStatus = exports_external.enum(["draft", "testing", "published", "deactivated"]).meta({ id: "PublishStatus", description: "Course publication status" });
15523
15352
  var CourseGoals = exports_external.object({
15524
- dailyXp: exports_external.number().int().positive().optional(),
15525
- dailyLessons: exports_external.number().int().positive().optional(),
15526
- dailyActiveMinutes: exports_external.number().int().positive().optional(),
15527
- dailyAccuracy: exports_external.number().int().min(0).max(100).optional(),
15528
- dailyMasteredUnits: exports_external.number().int().positive().optional()
15529
- });
15353
+ dailyXp: exports_external.number().int().positive().meta({ description: "Target XP to earn per day" }).optional(),
15354
+ dailyLessons: exports_external.number().int().positive().meta({ description: "Target lessons to complete per day" }).optional(),
15355
+ dailyActiveMinutes: exports_external.number().int().positive().meta({ description: "Target active learning minutes per day" }).optional(),
15356
+ dailyAccuracy: exports_external.number().int().min(0).max(100).meta({ description: "Target accuracy percentage (0-100)" }).optional(),
15357
+ dailyMasteredUnits: exports_external.number().int().positive().meta({ description: "Target units to master per day" }).optional()
15358
+ }).meta({ id: "CourseGoals", description: "Daily learning goals for a course" });
15530
15359
  var CourseMetrics = exports_external.object({
15531
- totalXp: exports_external.number().int().positive().optional(),
15532
- totalLessons: exports_external.number().int().positive().optional(),
15533
- totalGrades: exports_external.number().int().positive().optional()
15534
- });
15360
+ totalXp: exports_external.number().int().positive().meta({ description: "Total XP available in the course" }).optional(),
15361
+ totalLessons: exports_external.number().int().positive().meta({ description: "Total number of lessons/activities" }).optional(),
15362
+ totalGrades: exports_external.number().int().positive().meta({ description: "Total grade levels covered" }).optional()
15363
+ }).meta({ id: "CourseMetrics", description: "Aggregate metrics for a course" });
15535
15364
  var CourseMetadata = exports_external.object({
15536
15365
  courseType: CourseType.optional(),
15537
- isSupplemental: exports_external.boolean().optional(),
15538
- isCustom: exports_external.boolean().optional(),
15366
+ isSupplemental: exports_external.boolean().meta({ description: "Whether this is supplemental to a base course" }).optional(),
15367
+ isCustom: exports_external.boolean().meta({ description: "Whether this is a custom course for an individual student" }).optional(),
15539
15368
  publishStatus: PublishStatus.optional(),
15540
- contactEmail: exports_external.email().optional(),
15541
- primaryApp: exports_external.string().optional(),
15369
+ contactEmail: exports_external.email().meta({ description: "Contact email for course issues" }).optional(),
15370
+ primaryApp: exports_external.string().meta({ description: "Primary application identifier" }).optional(),
15542
15371
  goals: CourseGoals.optional(),
15543
15372
  metrics: CourseMetrics.optional()
15544
- });
15373
+ }).meta({ id: "CourseMetadata", description: "Course metadata (matches API metadata object)" });
15545
15374
  var CourseDefaults = exports_external.object({
15546
- courseCode: exports_external.string().optional(),
15547
- level: exports_external.string().optional(),
15375
+ courseCode: exports_external.string().meta({ description: "Course code (e.g., 'MATH101')" }).optional(),
15376
+ level: exports_external.string().meta({ description: "Course level (e.g., 'AP', 'Honors')" }).optional(),
15548
15377
  metadata: CourseMetadata.optional()
15378
+ }).meta({
15379
+ id: "CourseDefaults",
15380
+ description: "Default properties that apply to all courses unless overridden"
15549
15381
  });
15382
+ var CourseEnvOverrides = exports_external.object({
15383
+ level: exports_external.string().meta({ description: "Course level for this environment" }).optional(),
15384
+ sensor: exports_external.url().meta({ description: "Caliper sensor endpoint URL for this environment" }).optional(),
15385
+ launchUrl: exports_external.url().meta({ description: "LTI launch URL for this environment" }).optional(),
15386
+ metadata: CourseMetadata.optional()
15387
+ }).meta({
15388
+ id: "CourseEnvOverrides",
15389
+ description: "Environment-specific course overrides (non-identity fields)"
15390
+ });
15391
+ var CourseOverrides = exports_external.object({
15392
+ staging: CourseEnvOverrides.meta({
15393
+ description: "Overrides for staging environment"
15394
+ }).optional(),
15395
+ production: CourseEnvOverrides.meta({
15396
+ description: "Overrides for production environment"
15397
+ }).optional()
15398
+ }).meta({ id: "CourseOverrides", description: "Per-environment course overrides" });
15550
15399
  var CourseConfig = CourseDefaults.extend({
15551
- subject: TimebackSubject,
15552
- grade: TimebackGrade,
15553
- ids: CourseIds.nullable().optional()
15400
+ subject: TimebackSubject.meta({ description: "Subject area for this course" }),
15401
+ grade: TimebackGrade.meta({
15402
+ description: "Grade level (-1 = Pre-K, 0 = K, 1-12 = grades, 13 = AP)"
15403
+ }).optional(),
15404
+ ids: CourseIds.nullable().optional(),
15405
+ sensor: exports_external.url().meta({ description: "Caliper sensor endpoint URL for this course" }).optional(),
15406
+ launchUrl: exports_external.url().meta({ description: "LTI launch URL for this course" }).optional(),
15407
+ overrides: CourseOverrides.optional()
15408
+ }).meta({
15409
+ id: "CourseConfig",
15410
+ description: "Configuration for a single course. Must have either grade or courseCode (or both)."
15554
15411
  });
15555
15412
  var TimebackConfig = exports_external.object({
15556
- name: exports_external.string().min(1, "App name is required"),
15557
- defaults: CourseDefaults.optional(),
15558
- courses: exports_external.array(CourseConfig).min(1, "At least one course is required"),
15559
- sensors: exports_external.array(exports_external.string().url()).optional()
15413
+ $schema: exports_external.string().meta({ description: "JSON Schema reference for editor support" }).optional(),
15414
+ name: exports_external.string().min(1, "App name is required").meta({ description: "Display name for your app" }),
15415
+ defaults: CourseDefaults.meta({
15416
+ description: "Default properties applied to all courses"
15417
+ }).optional(),
15418
+ courses: exports_external.array(CourseConfig).min(1, "At least one course is required").meta({ description: "Courses available in this app" }),
15419
+ sensor: exports_external.url().meta({ description: "Default Caliper sensor endpoint URL for all courses" }).optional(),
15420
+ launchUrl: exports_external.url().meta({ description: "Default LTI launch URL for all courses" }).optional()
15421
+ }).meta({
15422
+ id: "TimebackConfig",
15423
+ title: "Timeback Config",
15424
+ description: "Configuration schema for timeback.config.json files"
15425
+ }).refine((config2) => {
15426
+ return config2.courses.every((c) => c.grade !== undefined || c.courseCode !== undefined);
15427
+ }, {
15428
+ message: "Each course must have either a grade or a courseCode",
15429
+ path: ["courses"]
15430
+ }).refine((config2) => {
15431
+ const withGrade = config2.courses.filter((c) => c.grade !== undefined);
15432
+ const keys = withGrade.map((c) => `${c.subject}:${c.grade}`);
15433
+ return new Set(keys).size === keys.length;
15434
+ }, {
15435
+ message: "Duplicate (subject, grade) pair found; each must be unique",
15436
+ path: ["courses"]
15437
+ }).refine((config2) => {
15438
+ const withCode = config2.courses.filter((c) => c.courseCode !== undefined);
15439
+ const codes = withCode.map((c) => c.courseCode);
15440
+ return new Set(codes).size === codes.length;
15441
+ }, {
15442
+ message: "Duplicate courseCode found; each must be unique",
15443
+ path: ["courses"]
15444
+ }).refine((config2) => {
15445
+ return config2.courses.every((c) => {
15446
+ if (c.sensor !== undefined || config2.sensor !== undefined) {
15447
+ return true;
15448
+ }
15449
+ const launchUrls = [
15450
+ c.launchUrl,
15451
+ config2.launchUrl,
15452
+ c.overrides?.staging?.launchUrl,
15453
+ c.overrides?.production?.launchUrl
15454
+ ].filter(Boolean);
15455
+ return launchUrls.length > 0;
15456
+ });
15457
+ }, {
15458
+ 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.",
15459
+ path: ["courses"]
15560
15460
  });
15561
15461
  // ../../types/src/zod/edubridge.ts
15562
- var EdubridgeDateString = exports_external.union([IsoDateString, IsoDateTimeString]);
15462
+ var EdubridgeDateString = IsoDateTimeString;
15563
15463
  var EduBridgeEnrollment = exports_external.object({
15564
15464
  id: exports_external.string(),
15565
15465
  role: exports_external.string(),
@@ -15623,12 +15523,9 @@ var EmailOrStudentId = exports_external.object({
15623
15523
  });
15624
15524
  var SubjectTrackInput = exports_external.object({
15625
15525
  subject: NonEmptyString,
15626
- gradeLevel: NonEmptyString,
15627
- targetCourseId: NonEmptyString,
15628
- metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15629
- });
15630
- var SubjectTrackUpsertInput = SubjectTrackInput.extend({
15631
- id: NonEmptyString
15526
+ grade: NonEmptyString,
15527
+ courseId: NonEmptyString,
15528
+ orgSourcedId: NonEmptyString.optional()
15632
15529
  });
15633
15530
  var EdubridgeListEnrollmentsParams = exports_external.object({
15634
15531
  userId: NonEmptyString
@@ -15807,20 +15704,45 @@ var OneRosterScoreScaleCreateInput = exports_external.object({
15807
15704
  }).strict();
15808
15705
  var OneRosterAssessmentLineItemCreateInput = exports_external.object({
15809
15706
  sourcedId: NonEmptyString2.optional(),
15707
+ status: Status.optional(),
15708
+ dateLastModified: IsoDateTimeString.optional(),
15810
15709
  title: NonEmptyString2.describe("title must be a non-empty string"),
15811
- class: Ref,
15812
- school: Ref,
15813
- category: Ref,
15814
- assignDate: OneRosterDateString,
15815
- dueDate: OneRosterDateString,
15816
- status: Status,
15710
+ description: exports_external.string().nullable().optional(),
15711
+ class: Ref.nullable().optional(),
15712
+ parentAssessmentLineItem: Ref.nullable().optional(),
15713
+ scoreScale: Ref.nullable().optional(),
15714
+ resultValueMin: exports_external.number().nullable().optional(),
15715
+ resultValueMax: exports_external.number().nullable().optional(),
15716
+ component: Ref.nullable().optional(),
15717
+ componentResource: Ref.nullable().optional(),
15718
+ learningObjectiveSet: exports_external.array(exports_external.object({
15719
+ source: exports_external.string(),
15720
+ learningObjectiveIds: exports_external.array(exports_external.string())
15721
+ })).optional().nullable(),
15722
+ course: Ref.nullable().optional(),
15817
15723
  metadata: Metadata
15818
15724
  }).strict();
15725
+ var LearningObjectiveResult = exports_external.object({
15726
+ learningObjectiveId: exports_external.string(),
15727
+ score: exports_external.number().optional(),
15728
+ textScore: exports_external.string().optional()
15729
+ });
15730
+ var LearningObjectiveScoreSetSchema = exports_external.array(exports_external.object({
15731
+ source: exports_external.string(),
15732
+ learningObjectiveResults: exports_external.array(LearningObjectiveResult)
15733
+ }));
15819
15734
  var OneRosterAssessmentResultCreateInput = exports_external.object({
15820
15735
  sourcedId: NonEmptyString2.optional(),
15821
- lineItem: Ref,
15736
+ status: Status.optional(),
15737
+ dateLastModified: IsoDateTimeString.optional(),
15738
+ metadata: Metadata,
15739
+ assessmentLineItem: Ref,
15822
15740
  student: Ref,
15823
- scoreDate: OneRosterDateString,
15741
+ score: exports_external.number().nullable().optional(),
15742
+ textScore: exports_external.string().nullable().optional(),
15743
+ scoreDate: exports_external.string().datetime(),
15744
+ scoreScale: Ref.nullable().optional(),
15745
+ scorePercentile: exports_external.number().nullable().optional(),
15824
15746
  scoreStatus: exports_external.enum([
15825
15747
  "exempt",
15826
15748
  "fully graded",
@@ -15828,9 +15750,12 @@ var OneRosterAssessmentResultCreateInput = exports_external.object({
15828
15750
  "partially graded",
15829
15751
  "submitted"
15830
15752
  ]),
15831
- score: exports_external.string().optional(),
15832
- status: Status,
15833
- metadata: Metadata
15753
+ comment: exports_external.string().nullable().optional(),
15754
+ learningObjectiveSet: LearningObjectiveScoreSetSchema.nullable().optional(),
15755
+ inProgress: exports_external.string().nullable().optional(),
15756
+ incomplete: exports_external.string().nullable().optional(),
15757
+ late: exports_external.string().nullable().optional(),
15758
+ missing: exports_external.string().nullable().optional()
15834
15759
  }).strict();
15835
15760
  var OneRosterOrgCreateInput = exports_external.object({
15836
15761
  sourcedId: NonEmptyString2.optional(),
@@ -15898,6 +15823,75 @@ var OneRosterCredentialInput = exports_external.object({
15898
15823
  var OneRosterDemographicsCreateInput = exports_external.object({
15899
15824
  sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string")
15900
15825
  }).loose();
15826
+ var CommonResourceMetadataSchema = exports_external.object({
15827
+ type: ResourceType,
15828
+ subject: TimebackSubject.nullish(),
15829
+ grades: exports_external.array(TimebackGrade).nullish(),
15830
+ language: exports_external.string().nullish(),
15831
+ xp: exports_external.number().nullish(),
15832
+ url: exports_external.url().nullish(),
15833
+ keywords: exports_external.array(exports_external.string()).nullish(),
15834
+ learningObjectiveSet: LearningObjectiveSetSchema.nullish(),
15835
+ lessonType: exports_external.string().nullish()
15836
+ }).passthrough();
15837
+ var QtiMetadataSchema = CommonResourceMetadataSchema.extend({
15838
+ type: exports_external.literal("qti"),
15839
+ subType: QtiSubType,
15840
+ questionType: QuestionType.optional(),
15841
+ difficulty: Difficulty.optional()
15842
+ });
15843
+ var TextMetadataSchema = CommonResourceMetadataSchema.extend({
15844
+ type: exports_external.literal("text"),
15845
+ format: exports_external.string(),
15846
+ author: exports_external.string().optional(),
15847
+ pageCount: exports_external.number().optional()
15848
+ });
15849
+ var AudioMetadataSchema = CommonResourceMetadataSchema.extend({
15850
+ type: exports_external.literal("audio"),
15851
+ duration: exports_external.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),
15852
+ format: exports_external.string(),
15853
+ speaker: exports_external.string().optional()
15854
+ });
15855
+ var VideoMetadataSchema = CommonResourceMetadataSchema.extend({
15856
+ type: exports_external.literal("video"),
15857
+ duration: exports_external.string().regex(/^\d{2}:\d{2}:\d{2}(\.\d{2})?$/).optional(),
15858
+ captionsAvailable: exports_external.boolean().optional(),
15859
+ format: exports_external.string()
15860
+ });
15861
+ var InteractiveMetadataSchema = CommonResourceMetadataSchema.extend({
15862
+ type: exports_external.literal("interactive"),
15863
+ launchUrl: exports_external.url().optional(),
15864
+ toolProvider: exports_external.string().optional(),
15865
+ instructionalMethod: exports_external.string().optional(),
15866
+ courseIdOnFail: exports_external.string().nullable().optional(),
15867
+ fail_fast: FastFailConfigSchema
15868
+ });
15869
+ var VisualMetadataSchema = CommonResourceMetadataSchema.extend({
15870
+ type: exports_external.literal("visual"),
15871
+ format: exports_external.string(),
15872
+ resolution: exports_external.string().optional()
15873
+ });
15874
+ var CourseMaterialMetadataSchema = CommonResourceMetadataSchema.extend({
15875
+ type: exports_external.literal("course-material"),
15876
+ subType: CourseMaterialSubType,
15877
+ author: exports_external.string().optional(),
15878
+ format: exports_external.string(),
15879
+ instructionalMethod: exports_external.string().optional()
15880
+ });
15881
+ var AssessmentBankMetadataSchema = CommonResourceMetadataSchema.extend({
15882
+ type: exports_external.literal("assessment-bank"),
15883
+ resources: exports_external.array(exports_external.string())
15884
+ });
15885
+ var ResourceMetadataSchema = exports_external.discriminatedUnion("type", [
15886
+ QtiMetadataSchema,
15887
+ TextMetadataSchema,
15888
+ AudioMetadataSchema,
15889
+ VideoMetadataSchema,
15890
+ InteractiveMetadataSchema,
15891
+ VisualMetadataSchema,
15892
+ CourseMaterialMetadataSchema,
15893
+ AssessmentBankMetadataSchema
15894
+ ]);
15901
15895
  var OneRosterResourceCreateInput = exports_external.object({
15902
15896
  sourcedId: NonEmptyString2.optional(),
15903
15897
  title: NonEmptyString2.describe("title must be a non-empty string"),
@@ -15907,7 +15901,7 @@ var OneRosterResourceCreateInput = exports_external.object({
15907
15901
  vendorId: exports_external.string().optional(),
15908
15902
  applicationId: exports_external.string().optional(),
15909
15903
  status: Status.optional(),
15910
- metadata: Metadata
15904
+ metadata: ResourceMetadataSchema.nullable().optional()
15911
15905
  }).strict();
15912
15906
  var CourseStructureItem = exports_external.object({
15913
15907
  url: NonEmptyString2.describe("courseStructure.url must be a non-empty string"),
@@ -15932,6 +15926,268 @@ var OneRosterBulkResultItem = exports_external.object({
15932
15926
  student: Ref
15933
15927
  }).loose();
15934
15928
  var OneRosterBulkResultsInput = exports_external.array(OneRosterBulkResultItem).min(1, "results must have at least one item");
15929
+ // ../../types/src/zod/powerpath.ts
15930
+ var NonEmptyString3 = exports_external.string().trim().min(1);
15931
+ var ToolProvider = exports_external.enum(["edulastic", "mastery-track"]);
15932
+ var LessonTypeRequired = exports_external.enum([
15933
+ "powerpath-100",
15934
+ "quiz",
15935
+ "test-out",
15936
+ "placement",
15937
+ "unit-test",
15938
+ "alpha-read-article"
15939
+ ]);
15940
+ var GradeArray = exports_external.array(TimebackGrade);
15941
+ var ResourceMetadata = exports_external.record(exports_external.string(), exports_external.unknown()).optional();
15942
+ var ExternalTestBase = exports_external.object({
15943
+ courseId: NonEmptyString3,
15944
+ lessonTitle: NonEmptyString3.optional(),
15945
+ launchUrl: exports_external.url().optional(),
15946
+ toolProvider: ToolProvider,
15947
+ unitTitle: NonEmptyString3.optional(),
15948
+ courseComponentSourcedId: NonEmptyString3.optional(),
15949
+ vendorId: NonEmptyString3.optional(),
15950
+ description: NonEmptyString3.optional(),
15951
+ resourceMetadata: ResourceMetadata.nullable().optional(),
15952
+ grades: GradeArray
15953
+ });
15954
+ var ExternalTestOut = ExternalTestBase.extend({
15955
+ lessonType: exports_external.literal("test-out"),
15956
+ xp: exports_external.number()
15957
+ });
15958
+ var ExternalPlacement = ExternalTestBase.extend({
15959
+ lessonType: exports_external.literal("placement"),
15960
+ courseIdOnFail: NonEmptyString3.optional(),
15961
+ xp: exports_external.number().optional()
15962
+ });
15963
+ var InternalTestBase = exports_external.object({
15964
+ courseId: NonEmptyString3,
15965
+ lessonType: LessonTypeRequired,
15966
+ lessonTitle: NonEmptyString3.optional(),
15967
+ unitTitle: NonEmptyString3.optional(),
15968
+ courseComponentSourcedId: NonEmptyString3.optional(),
15969
+ resourceMetadata: ResourceMetadata.nullable().optional(),
15970
+ xp: exports_external.number().optional(),
15971
+ grades: GradeArray.optional(),
15972
+ courseIdOnFail: NonEmptyString3.optional()
15973
+ });
15974
+ var PowerPathCreateInternalTestInput = exports_external.union([
15975
+ InternalTestBase.extend({
15976
+ testType: exports_external.literal("qti"),
15977
+ qti: exports_external.object({
15978
+ url: exports_external.url(),
15979
+ title: NonEmptyString3.optional(),
15980
+ metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15981
+ })
15982
+ }),
15983
+ InternalTestBase.extend({
15984
+ testType: exports_external.literal("assessment-bank"),
15985
+ assessmentBank: exports_external.object({
15986
+ resources: exports_external.array(exports_external.object({
15987
+ url: exports_external.url(),
15988
+ title: NonEmptyString3.optional(),
15989
+ metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
15990
+ }))
15991
+ })
15992
+ })
15993
+ ]);
15994
+ var PowerPathCreateNewAttemptInput = exports_external.object({
15995
+ student: NonEmptyString3,
15996
+ lesson: NonEmptyString3
15997
+ });
15998
+ var PowerPathFinalStudentAssessmentResponseInput = exports_external.object({
15999
+ student: NonEmptyString3,
16000
+ lesson: NonEmptyString3
16001
+ });
16002
+ var PowerPathLessonPlansCreateInput = exports_external.object({
16003
+ courseId: NonEmptyString3,
16004
+ userId: NonEmptyString3,
16005
+ classId: NonEmptyString3.optional()
16006
+ });
16007
+ var LessonPlanTarget = exports_external.object({
16008
+ type: exports_external.enum(["component", "resource"]),
16009
+ id: NonEmptyString3
16010
+ });
16011
+ var PowerPathLessonPlanOperationInput = exports_external.union([
16012
+ exports_external.object({
16013
+ type: exports_external.literal("set-skipped"),
16014
+ payload: exports_external.object({
16015
+ target: LessonPlanTarget,
16016
+ value: exports_external.boolean()
16017
+ })
16018
+ }),
16019
+ exports_external.object({
16020
+ type: exports_external.literal("add-custom-resource"),
16021
+ payload: exports_external.object({
16022
+ resource_id: NonEmptyString3,
16023
+ parent_component_id: NonEmptyString3,
16024
+ skipped: exports_external.boolean().optional()
16025
+ })
16026
+ }),
16027
+ exports_external.object({
16028
+ type: exports_external.literal("move-item-before"),
16029
+ payload: exports_external.object({
16030
+ target: LessonPlanTarget,
16031
+ reference_id: NonEmptyString3
16032
+ })
16033
+ }),
16034
+ exports_external.object({
16035
+ type: exports_external.literal("move-item-after"),
16036
+ payload: exports_external.object({
16037
+ target: LessonPlanTarget,
16038
+ reference_id: NonEmptyString3
16039
+ })
16040
+ }),
16041
+ exports_external.object({
16042
+ type: exports_external.literal("move-item-to-start"),
16043
+ payload: exports_external.object({
16044
+ target: LessonPlanTarget
16045
+ })
16046
+ }),
16047
+ exports_external.object({
16048
+ type: exports_external.literal("move-item-to-end"),
16049
+ payload: exports_external.object({
16050
+ target: LessonPlanTarget
16051
+ })
16052
+ }),
16053
+ exports_external.object({
16054
+ type: exports_external.literal("change-item-parent"),
16055
+ payload: exports_external.object({
16056
+ target: LessonPlanTarget,
16057
+ new_parent_id: NonEmptyString3,
16058
+ position: exports_external.enum(["start", "end"]).optional()
16059
+ })
16060
+ })
16061
+ ]);
16062
+ var PowerPathLessonPlanOperationsInput = exports_external.object({
16063
+ operation: exports_external.array(PowerPathLessonPlanOperationInput),
16064
+ reason: NonEmptyString3.optional()
16065
+ });
16066
+ var PowerPathLessonPlanUpdateStudentItemResponseInput = exports_external.object({
16067
+ studentId: NonEmptyString3,
16068
+ componentResourceId: NonEmptyString3,
16069
+ result: exports_external.object({
16070
+ status: exports_external.enum(["active", "tobedeleted"]),
16071
+ metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
16072
+ score: exports_external.number().optional(),
16073
+ textScore: NonEmptyString3.optional(),
16074
+ scoreDate: NonEmptyString3,
16075
+ scorePercentile: exports_external.number().optional(),
16076
+ scoreStatus: ScoreStatus,
16077
+ comment: NonEmptyString3.optional(),
16078
+ learningObjectiveSet: exports_external.array(exports_external.object({
16079
+ source: NonEmptyString3,
16080
+ learningObjectiveResults: exports_external.array(exports_external.object({
16081
+ learningObjectiveId: NonEmptyString3,
16082
+ score: exports_external.number().optional(),
16083
+ textScore: NonEmptyString3.optional()
16084
+ }))
16085
+ })).optional(),
16086
+ inProgress: NonEmptyString3.optional(),
16087
+ incomplete: NonEmptyString3.optional(),
16088
+ late: NonEmptyString3.optional(),
16089
+ missing: NonEmptyString3.optional()
16090
+ })
16091
+ });
16092
+ var PowerPathMakeExternalTestAssignmentInput = exports_external.object({
16093
+ student: NonEmptyString3,
16094
+ lesson: NonEmptyString3,
16095
+ applicationName: NonEmptyString3.optional(),
16096
+ testId: NonEmptyString3.optional(),
16097
+ skipCourseEnrollment: exports_external.boolean().optional()
16098
+ });
16099
+ var PowerPathPlacementResetUserPlacementInput = exports_external.object({
16100
+ student: NonEmptyString3,
16101
+ subject: TimebackSubject
16102
+ });
16103
+ var PowerPathResetAttemptInput = exports_external.object({
16104
+ student: NonEmptyString3,
16105
+ lesson: NonEmptyString3
16106
+ });
16107
+ var PowerPathScreeningResetSessionInput = exports_external.object({
16108
+ userId: NonEmptyString3
16109
+ });
16110
+ var PowerPathScreeningAssignTestInput = exports_external.object({
16111
+ userId: NonEmptyString3,
16112
+ subject: exports_external.enum(["Math", "Reading", "Language", "Science"])
16113
+ });
16114
+ var PowerPathTestAssignmentsCreateInput = exports_external.object({
16115
+ student: NonEmptyString3,
16116
+ subject: TimebackSubject,
16117
+ grade: TimebackGrade,
16118
+ testName: NonEmptyString3.optional()
16119
+ });
16120
+ var PowerPathTestAssignmentsUpdateInput = exports_external.object({
16121
+ testName: NonEmptyString3
16122
+ });
16123
+ var PowerPathTestAssignmentItemInput = exports_external.object({
16124
+ student: NonEmptyString3,
16125
+ subject: TimebackSubject,
16126
+ grade: TimebackGrade,
16127
+ testName: NonEmptyString3.optional()
16128
+ });
16129
+ var PowerPathTestAssignmentsBulkInput = exports_external.object({
16130
+ items: exports_external.array(PowerPathTestAssignmentItemInput)
16131
+ });
16132
+ var PowerPathTestAssignmentsImportInput = exports_external.object({
16133
+ spreadsheetUrl: exports_external.url(),
16134
+ sheet: NonEmptyString3
16135
+ });
16136
+ var PowerPathTestAssignmentsListParams = exports_external.object({
16137
+ student: NonEmptyString3,
16138
+ status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
16139
+ subject: NonEmptyString3.optional(),
16140
+ grade: TimebackGrade.optional(),
16141
+ limit: exports_external.number().int().positive().max(3000).optional(),
16142
+ offset: exports_external.number().int().nonnegative().optional()
16143
+ });
16144
+ var PowerPathTestAssignmentsAdminParams = exports_external.object({
16145
+ student: NonEmptyString3.optional(),
16146
+ status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
16147
+ subject: NonEmptyString3.optional(),
16148
+ grade: TimebackGrade.optional(),
16149
+ limit: exports_external.number().int().positive().max(3000).optional(),
16150
+ offset: exports_external.number().int().nonnegative().optional()
16151
+ });
16152
+ var PowerPathUpdateStudentQuestionResponseInput = exports_external.object({
16153
+ student: NonEmptyString3,
16154
+ question: NonEmptyString3,
16155
+ response: exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)]).optional(),
16156
+ responses: exports_external.record(exports_external.string(), exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)])).optional(),
16157
+ lesson: NonEmptyString3
16158
+ });
16159
+ var PowerPathGetAssessmentProgressParams = exports_external.object({
16160
+ student: NonEmptyString3,
16161
+ lesson: NonEmptyString3,
16162
+ attempt: exports_external.number().int().positive().optional()
16163
+ });
16164
+ var PowerPathGetNextQuestionParams = exports_external.object({
16165
+ student: NonEmptyString3,
16166
+ lesson: NonEmptyString3
16167
+ });
16168
+ var PowerPathGetAttemptsParams = exports_external.object({
16169
+ student: NonEmptyString3,
16170
+ lesson: NonEmptyString3
16171
+ });
16172
+ var PowerPathTestOutParams = exports_external.object({
16173
+ student: NonEmptyString3,
16174
+ lesson: NonEmptyString3.optional(),
16175
+ finalized: exports_external.boolean().optional(),
16176
+ toolProvider: NonEmptyString3.optional(),
16177
+ attempt: exports_external.number().int().positive().optional()
16178
+ });
16179
+ var PowerPathImportExternalTestAssignmentResultsParams = exports_external.object({
16180
+ student: NonEmptyString3,
16181
+ lesson: NonEmptyString3,
16182
+ applicationName: NonEmptyString3.optional()
16183
+ });
16184
+ var PowerPathPlacementQueryParams = exports_external.object({
16185
+ student: NonEmptyString3,
16186
+ subject: TimebackSubject
16187
+ });
16188
+ var PowerPathSyllabusQueryParams = exports_external.object({
16189
+ status: exports_external.enum(["active", "tobedeleted"]).optional()
16190
+ });
15935
16191
  // ../../types/src/zod/qti.ts
15936
16192
  var QtiAssessmentItemType = exports_external.enum([
15937
16193
  "choice",
@@ -16182,6 +16438,250 @@ var QtiLessonFeedbackInput = exports_external.object({
16182
16438
  lessonId: exports_external.string().min(1),
16183
16439
  humanApproved: exports_external.boolean().optional()
16184
16440
  }).strict();
16441
+ // src/lib/validation.ts
16442
+ function validateListParams(params) {
16443
+ if (!params)
16444
+ return;
16445
+ validateOffsetListParams(params);
16446
+ const issues = [];
16447
+ if (params.fields !== undefined) {
16448
+ if (Array.isArray(params.fields)) {
16449
+ for (let i = 0;i < params.fields.length; i++) {
16450
+ const field = params.fields[i];
16451
+ if (typeof field !== "string" || field.trim() === "") {
16452
+ issues.push({
16453
+ path: `fields[${i}]`,
16454
+ message: "Must be a non-empty string"
16455
+ });
16456
+ }
16457
+ }
16458
+ } else {
16459
+ issues.push({
16460
+ path: "fields",
16461
+ message: "Must be an array of field names"
16462
+ });
16463
+ }
16464
+ }
16465
+ if (issues.length > 0) {
16466
+ throw createInputValidationError("Invalid list parameters", issues);
16467
+ }
16468
+ }
16469
+
16470
+ // src/lib/pagination.ts
16471
+ class Paginator2 extends Paginator {
16472
+ constructor(transport, path, params = {}, unwrapKey, transform2) {
16473
+ validateListParams(params);
16474
+ const { max, ...requestParams } = params;
16475
+ super({
16476
+ fetcher: (p, opts) => transport.requestPaginated(p, opts),
16477
+ path,
16478
+ params: requestParams,
16479
+ max,
16480
+ unwrapKey,
16481
+ logger: log2,
16482
+ transform: transform2
16483
+ });
16484
+ }
16485
+ }
16486
+ // src/resources/base.ts
16487
+ class BaseResource {
16488
+ transport;
16489
+ basePath;
16490
+ constructor(transport, resourceType, suffix) {
16491
+ this.transport = transport;
16492
+ const prefix = transport.paths[resourceType];
16493
+ this.basePath = `${prefix}${suffix}`;
16494
+ }
16495
+ list(params) {
16496
+ return this.stream(params).firstPage();
16497
+ }
16498
+ listAll(params) {
16499
+ return this.stream(params).toArray();
16500
+ }
16501
+ async first(params) {
16502
+ const limitedParams = { ...params ?? {}, limit: 1 };
16503
+ const result = await new Paginator2(this.transport, this.basePath, limitedParams, this.unwrapKey, this.transform.bind(this)).firstPage();
16504
+ return result.data[0];
16505
+ }
16506
+ stream(params) {
16507
+ return new Paginator2(this.transport, this.basePath, params, this.unwrapKey, this.transform.bind(this));
16508
+ }
16509
+ async get(sourcedId) {
16510
+ validateSourcedId(sourcedId, `get ${this.resourceName}`);
16511
+ const response = await this.transport.request(`${this.basePath}/${sourcedId}`);
16512
+ return this.unwrapSingle(response);
16513
+ }
16514
+ create(data) {
16515
+ const schema = this.createSchema;
16516
+ if (schema) {
16517
+ validateWithSchema(schema, data, this.resourceName);
16518
+ }
16519
+ const body = this.wrapBody(data);
16520
+ return this.transport.request(this.basePath, {
16521
+ method: "POST",
16522
+ body
16523
+ });
16524
+ }
16525
+ async update(sourcedId, data) {
16526
+ validateSourcedId(sourcedId, `update ${this.resourceName}`);
16527
+ const schema = this.updateSchema;
16528
+ if (schema) {
16529
+ validateWithSchema(schema, data, `update ${this.resourceName}`);
16530
+ }
16531
+ const body = this.wrapBody(data);
16532
+ await this.transport.request(`${this.basePath}/${sourcedId}`, {
16533
+ method: "PUT",
16534
+ body
16535
+ });
16536
+ }
16537
+ async delete(sourcedId) {
16538
+ validateSourcedId(sourcedId, `delete ${this.resourceName}`);
16539
+ await this.transport.request(`${this.basePath}/${sourcedId}`, {
16540
+ method: "DELETE"
16541
+ });
16542
+ }
16543
+ transform(entity) {
16544
+ return entity;
16545
+ }
16546
+ get createSchema() {
16547
+ return;
16548
+ }
16549
+ get updateSchema() {
16550
+ return;
16551
+ }
16552
+ get patchSchema() {
16553
+ return;
16554
+ }
16555
+ get resourceName() {
16556
+ return this.wrapKey;
16557
+ }
16558
+ unwrapSingle(response) {
16559
+ const singularKey = this.wrapKey;
16560
+ const data = response[singularKey];
16561
+ if (!data) {
16562
+ throw new Error(`Expected "${singularKey}" in response`);
16563
+ }
16564
+ return this.transform(data);
16565
+ }
16566
+ wrapBody(data) {
16567
+ return { [this.wrapKey]: data };
16568
+ }
16569
+ }
16570
+
16571
+ class ReadOnlyResource {
16572
+ transport;
16573
+ basePath;
16574
+ constructor(transport, resourceType, suffix) {
16575
+ this.transport = transport;
16576
+ const prefix = transport.paths[resourceType];
16577
+ this.basePath = `${prefix}${suffix}`;
16578
+ }
16579
+ list(params) {
16580
+ return this.stream(params).firstPage();
16581
+ }
16582
+ listAll(params) {
16583
+ return this.stream(params).toArray();
16584
+ }
16585
+ async first(params) {
16586
+ const limitedParams = { ...params ?? {}, limit: 1 };
16587
+ const result = await new Paginator2(this.transport, this.basePath, limitedParams, this.unwrapKey, this.transform.bind(this)).firstPage();
16588
+ return result.data[0];
16589
+ }
16590
+ stream(params) {
16591
+ return new Paginator2(this.transport, this.basePath, params, this.unwrapKey, this.transform.bind(this));
16592
+ }
16593
+ async get(sourcedId) {
16594
+ validateSourcedId(sourcedId, `get ${this.wrapKey}`);
16595
+ const response = await this.transport.request(`${this.basePath}/${sourcedId}`);
16596
+ const data = response[this.wrapKey];
16597
+ if (!data) {
16598
+ throw new Error(`Expected "${this.wrapKey}" in response`);
16599
+ }
16600
+ return this.transform(data);
16601
+ }
16602
+ transform(entity) {
16603
+ return entity;
16604
+ }
16605
+ }
16606
+
16607
+ // src/resources/assessment/line-items.ts
16608
+ class ScopedAssessmentLineItemResource {
16609
+ transport;
16610
+ basePath;
16611
+ constructor(transport, lineItemId) {
16612
+ this.transport = transport;
16613
+ validateSourcedId(lineItemId, "assessment line item");
16614
+ this.basePath = `${transport.paths.gradebook}/assessmentLineItems/${lineItemId}`;
16615
+ }
16616
+ async get() {
16617
+ const response = await this.transport.request(this.basePath);
16618
+ return response.assessmentLineItem;
16619
+ }
16620
+ }
16621
+
16622
+ class AssessmentLineItemsResourceImpl extends BaseResource {
16623
+ constructor(transport) {
16624
+ super(transport, "gradebook", "/assessmentLineItems");
16625
+ }
16626
+ async patch(sourcedId, data) {
16627
+ validateSourcedId(sourcedId, "patch assessment line item");
16628
+ await this.transport.request(`${this.basePath}/${sourcedId}`, {
16629
+ method: "PATCH",
16630
+ body: { assessmentLineItem: data }
16631
+ });
16632
+ }
16633
+ get unwrapKey() {
16634
+ return "assessmentLineItems";
16635
+ }
16636
+ get wrapKey() {
16637
+ return "assessmentLineItem";
16638
+ }
16639
+ get createSchema() {
16640
+ return OneRosterAssessmentLineItemCreateInput;
16641
+ }
16642
+ get updateSchema() {
16643
+ return OneRosterAssessmentLineItemCreateInput;
16644
+ }
16645
+ }
16646
+ function createAssessmentLineItemsResource(transport) {
16647
+ const impl = new AssessmentLineItemsResourceImpl(transport);
16648
+ const callable = (id) => new ScopedAssessmentLineItemResource(transport, id);
16649
+ callable.list = impl.list.bind(impl);
16650
+ callable.listAll = impl.listAll.bind(impl);
16651
+ callable.first = impl.first.bind(impl);
16652
+ callable.stream = impl.stream.bind(impl);
16653
+ callable.get = impl.get.bind(impl);
16654
+ callable.create = impl.create.bind(impl);
16655
+ callable.update = impl.update.bind(impl);
16656
+ callable.patch = impl.patch.bind(impl);
16657
+ callable.delete = impl.delete.bind(impl);
16658
+ return callable;
16659
+ }
16660
+ // src/resources/assessment/results.ts
16661
+ class AssessmentResultsResource extends BaseResource {
16662
+ constructor(transport) {
16663
+ super(transport, "gradebook", "/assessmentResults");
16664
+ }
16665
+ async patch(sourcedId, data) {
16666
+ validateSourcedId(sourcedId, "patch assessment result");
16667
+ await this.transport.request(`${this.basePath}/${sourcedId}`, {
16668
+ method: "PATCH",
16669
+ body: { assessmentResult: data }
16670
+ });
16671
+ }
16672
+ get unwrapKey() {
16673
+ return "assessmentResults";
16674
+ }
16675
+ get wrapKey() {
16676
+ return "assessmentResult";
16677
+ }
16678
+ get createSchema() {
16679
+ return OneRosterAssessmentResultCreateInput;
16680
+ }
16681
+ get updateSchema() {
16682
+ return OneRosterAssessmentResultCreateInput;
16683
+ }
16684
+ }
16185
16685
  // src/resources/gradebook/line-items.ts
16186
16686
  class ScopedLineItemResource {
16187
16687
  transport;
@@ -16220,6 +16720,9 @@ class LineItemsResourceImpl extends BaseResource {
16220
16720
  get createSchema() {
16221
16721
  return OneRosterLineItemCreateInput;
16222
16722
  }
16723
+ get updateSchema() {
16724
+ return OneRosterLineItemCreateInput;
16725
+ }
16223
16726
  }
16224
16727
  function createLineItemsResource(transport) {
16225
16728
  const impl = new LineItemsResourceImpl(transport);
@@ -16251,6 +16754,9 @@ class ResultsResource extends BaseResource {
16251
16754
  get createSchema() {
16252
16755
  return OneRosterResultCreateInput;
16253
16756
  }
16757
+ get updateSchema() {
16758
+ return OneRosterResultCreateInput;
16759
+ }
16254
16760
  }
16255
16761
  // src/resources/gradebook/categories.ts
16256
16762
  class CategoriesResource extends BaseResource {
@@ -16266,6 +16772,9 @@ class CategoriesResource extends BaseResource {
16266
16772
  get createSchema() {
16267
16773
  return OneRosterCategoryCreateInput;
16268
16774
  }
16775
+ get updateSchema() {
16776
+ return OneRosterCategoryCreateInput;
16777
+ }
16269
16778
  }
16270
16779
  // src/resources/gradebook/score-scales.ts
16271
16780
  class ScoreScalesResource extends BaseResource {
@@ -16282,7 +16791,7 @@ class ScoreScalesResource extends BaseResource {
16282
16791
  return OneRosterScoreScaleCreateInput;
16283
16792
  }
16284
16793
  get updateSchema() {
16285
- return OneRosterScoreScaleCreateInput.partial();
16794
+ return OneRosterScoreScaleCreateInput;
16286
16795
  }
16287
16796
  }
16288
16797
  // src/resources/resources/resources.ts
@@ -16584,7 +17093,7 @@ class OrgsResource extends BaseResource {
16584
17093
  return OneRosterOrgCreateInput;
16585
17094
  }
16586
17095
  get updateSchema() {
16587
- return OneRosterOrgCreateInput.partial();
17096
+ return OneRosterOrgCreateInput;
16588
17097
  }
16589
17098
  }
16590
17099
  // src/resources/rostering/schools.ts
@@ -16711,7 +17220,7 @@ class SchoolsResourceImpl extends BaseResource {
16711
17220
  return OneRosterSchoolCreateInput;
16712
17221
  }
16713
17222
  get updateSchema() {
16714
- return OneRosterSchoolCreateInput.partial();
17223
+ return OneRosterSchoolCreateInput;
16715
17224
  }
16716
17225
  }
16717
17226
  function createSchoolsResource(transport) {
@@ -16887,6 +17396,9 @@ class ClassesResourceImpl extends BaseResource {
16887
17396
  get createSchema() {
16888
17397
  return OneRosterClassCreateInput;
16889
17398
  }
17399
+ get updateSchema() {
17400
+ return OneRosterClassCreateInput.partial();
17401
+ }
16890
17402
  transform(cls) {
16891
17403
  return {
16892
17404
  ...cls,
@@ -17034,6 +17546,9 @@ class CoursesResourceImpl extends BaseResource {
17034
17546
  get createSchema() {
17035
17547
  return OneRosterCourseCreateInput;
17036
17548
  }
17549
+ get updateSchema() {
17550
+ return OneRosterCourseCreateInput;
17551
+ }
17037
17552
  transform(course) {
17038
17553
  return {
17039
17554
  ...course,
@@ -17092,6 +17607,12 @@ class EnrollmentsResource extends BaseResource {
17092
17607
  get createSchema() {
17093
17608
  return OneRosterEnrollmentCreateInput;
17094
17609
  }
17610
+ get updateSchema() {
17611
+ return OneRosterEnrollmentCreateInput;
17612
+ }
17613
+ get patchSchema() {
17614
+ return OneRosterEnrollmentCreateInput.partial();
17615
+ }
17095
17616
  }
17096
17617
  // src/resources/rostering/academic-sessions.ts
17097
17618
  class AcademicSessionsResource extends BaseResource {
@@ -17108,7 +17629,7 @@ class AcademicSessionsResource extends BaseResource {
17108
17629
  return OneRosterAcademicSessionCreateInput;
17109
17630
  }
17110
17631
  get updateSchema() {
17111
- return OneRosterAcademicSessionCreateInput.partial();
17632
+ return OneRosterAcademicSessionCreateInput;
17112
17633
  }
17113
17634
  transform(session) {
17114
17635
  session.startDate = normalizeDateOnly(session.startDate);
@@ -17165,7 +17686,7 @@ class TermsResourceImpl extends BaseResource {
17165
17686
  return OneRosterAcademicSessionCreateInput;
17166
17687
  }
17167
17688
  get updateSchema() {
17168
- return OneRosterAcademicSessionCreateInput.partial();
17689
+ return OneRosterAcademicSessionCreateInput;
17169
17690
  }
17170
17691
  transform(term) {
17171
17692
  term.startDate = normalizeDateOnly(term.startDate);
@@ -17198,7 +17719,7 @@ class GradingPeriodsResource extends BaseResource {
17198
17719
  return OneRosterAcademicSessionCreateInput;
17199
17720
  }
17200
17721
  get updateSchema() {
17201
- return OneRosterAcademicSessionCreateInput.partial();
17722
+ return OneRosterAcademicSessionCreateInput;
17202
17723
  }
17203
17724
  transform(gp) {
17204
17725
  return {