@timeback/oneroster 0.1.7 → 0.1.8-beta.20260219221746

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/errors.js CHANGED
@@ -884,6 +884,28 @@ var BEYONDAI_PATHS = {
884
884
  },
885
885
  powerpath: {
886
886
  base: "/powerpath"
887
+ },
888
+ clr: {
889
+ credentials: "/ims/clr/v2p0/credentials",
890
+ discovery: "/ims/clr/v2p0/discovery"
891
+ },
892
+ case: {
893
+ base: "/ims/case/v1p1"
894
+ },
895
+ webhooks: {
896
+ webhookList: "/webhooks/",
897
+ webhookGet: "/webhooks/{id}",
898
+ webhookCreate: "/webhooks/",
899
+ webhookUpdate: "/webhooks/{id}",
900
+ webhookDelete: "/webhooks/{id}",
901
+ webhookActivate: "/webhooks/{id}/activate",
902
+ webhookDeactivate: "/webhooks/{id}/deactivate",
903
+ webhookFilterList: "/webhook-filters/",
904
+ webhookFilterGet: "/webhook-filters/{id}",
905
+ webhookFilterCreate: "/webhook-filters/",
906
+ webhookFilterUpdate: "/webhook-filters/{id}",
907
+ webhookFilterDelete: "/webhook-filters/{id}",
908
+ webhookFiltersByWebhook: "/webhook-filters/webhook/{webhookId}"
887
909
  }
888
910
  };
889
911
  var LEARNWITHAI_PATHS = {
@@ -899,8 +921,11 @@ var LEARNWITHAI_PATHS = {
899
921
  gradebook: "/gradebook/1.0",
900
922
  resources: "/resources/1.0"
901
923
  },
924
+ webhooks: null,
902
925
  edubridge: null,
903
- powerpath: null
926
+ powerpath: null,
927
+ clr: null,
928
+ case: null
904
929
  };
905
930
  var PLATFORM_PATHS = {
906
931
  BEYOND_AI: BEYONDAI_PATHS,
@@ -922,8 +947,11 @@ function resolvePathProfiles(pathProfile, customPaths) {
922
947
  return {
923
948
  caliper: customPaths?.caliper ?? basePaths.caliper,
924
949
  oneroster: customPaths?.oneroster ?? basePaths.oneroster,
950
+ webhooks: customPaths?.webhooks ?? basePaths.webhooks,
925
951
  edubridge: customPaths?.edubridge ?? basePaths.edubridge,
926
- powerpath: customPaths?.powerpath ?? basePaths.powerpath
952
+ powerpath: customPaths?.powerpath ?? basePaths.powerpath,
953
+ clr: customPaths?.clr ?? basePaths.clr,
954
+ case: customPaths?.case ?? basePaths.case
927
955
  };
928
956
  }
929
957
 
@@ -963,10 +991,22 @@ class TimebackProvider {
963
991
  baseUrl: platformEndpoints.api[env],
964
992
  authUrl: this.authUrl
965
993
  },
994
+ clr: {
995
+ baseUrl: platformEndpoints.api[env],
996
+ authUrl: this.authUrl
997
+ },
998
+ case: {
999
+ baseUrl: platformEndpoints.api[env],
1000
+ authUrl: this.authUrl
1001
+ },
966
1002
  caliper: {
967
1003
  baseUrl: platformEndpoints.caliper[env],
968
1004
  authUrl: this.authUrl
969
1005
  },
1006
+ webhooks: {
1007
+ baseUrl: platformEndpoints.caliper[env],
1008
+ authUrl: this.authUrl
1009
+ },
970
1010
  qti: {
971
1011
  baseUrl: platformEndpoints.qti[env],
972
1012
  authUrl: this.authUrl
@@ -980,7 +1020,10 @@ class TimebackProvider {
980
1020
  oneroster: { baseUrl: config.baseUrl, authUrl: this.authUrl },
981
1021
  edubridge: { baseUrl: config.baseUrl, authUrl: this.authUrl },
982
1022
  powerpath: { baseUrl: config.baseUrl, authUrl: this.authUrl },
1023
+ clr: { baseUrl: config.baseUrl, authUrl: this.authUrl },
1024
+ case: { baseUrl: config.baseUrl, authUrl: this.authUrl },
983
1025
  caliper: { baseUrl: config.baseUrl, authUrl: this.authUrl },
1026
+ webhooks: { baseUrl: config.baseUrl, authUrl: this.authUrl },
984
1027
  qti: { baseUrl: config.baseUrl, authUrl: this.authUrl }
985
1028
  };
986
1029
  } else if (isServicesConfig(config)) {
@@ -999,10 +1042,19 @@ class TimebackProvider {
999
1042
  } else {
1000
1043
  throw new Error("Invalid provider configuration");
1001
1044
  }
1045
+ for (const service of Object.keys(this.pathProfiles)) {
1046
+ if (this.pathProfiles[service] === null) {
1047
+ delete this.endpoints[service];
1048
+ }
1049
+ }
1002
1050
  }
1003
1051
  getEndpoint(service) {
1004
1052
  const endpoint = this.endpoints[service];
1005
1053
  if (!endpoint) {
1054
+ const pathKey = service;
1055
+ if (pathKey in this.pathProfiles && this.pathProfiles[pathKey] === null) {
1056
+ throw new Error(`Service "${service}" is not supported on ${this.platform ?? "this"} platform.`);
1057
+ }
1006
1058
  throw new Error(`Service "${service}" is not configured in this provider`);
1007
1059
  }
1008
1060
  return endpoint;
package/dist/index.js CHANGED
@@ -884,6 +884,28 @@ var BEYONDAI_PATHS = {
884
884
  },
885
885
  powerpath: {
886
886
  base: "/powerpath"
887
+ },
888
+ clr: {
889
+ credentials: "/ims/clr/v2p0/credentials",
890
+ discovery: "/ims/clr/v2p0/discovery"
891
+ },
892
+ case: {
893
+ base: "/ims/case/v1p1"
894
+ },
895
+ webhooks: {
896
+ webhookList: "/webhooks/",
897
+ webhookGet: "/webhooks/{id}",
898
+ webhookCreate: "/webhooks/",
899
+ webhookUpdate: "/webhooks/{id}",
900
+ webhookDelete: "/webhooks/{id}",
901
+ webhookActivate: "/webhooks/{id}/activate",
902
+ webhookDeactivate: "/webhooks/{id}/deactivate",
903
+ webhookFilterList: "/webhook-filters/",
904
+ webhookFilterGet: "/webhook-filters/{id}",
905
+ webhookFilterCreate: "/webhook-filters/",
906
+ webhookFilterUpdate: "/webhook-filters/{id}",
907
+ webhookFilterDelete: "/webhook-filters/{id}",
908
+ webhookFiltersByWebhook: "/webhook-filters/webhook/{webhookId}"
887
909
  }
888
910
  };
889
911
  var LEARNWITHAI_PATHS = {
@@ -899,8 +921,11 @@ var LEARNWITHAI_PATHS = {
899
921
  gradebook: "/gradebook/1.0",
900
922
  resources: "/resources/1.0"
901
923
  },
924
+ webhooks: null,
902
925
  edubridge: null,
903
- powerpath: null
926
+ powerpath: null,
927
+ clr: null,
928
+ case: null
904
929
  };
905
930
  var PLATFORM_PATHS = {
906
931
  BEYOND_AI: BEYONDAI_PATHS,
@@ -922,8 +947,11 @@ function resolvePathProfiles(pathProfile, customPaths) {
922
947
  return {
923
948
  caliper: customPaths?.caliper ?? basePaths.caliper,
924
949
  oneroster: customPaths?.oneroster ?? basePaths.oneroster,
950
+ webhooks: customPaths?.webhooks ?? basePaths.webhooks,
925
951
  edubridge: customPaths?.edubridge ?? basePaths.edubridge,
926
- powerpath: customPaths?.powerpath ?? basePaths.powerpath
952
+ powerpath: customPaths?.powerpath ?? basePaths.powerpath,
953
+ clr: customPaths?.clr ?? basePaths.clr,
954
+ case: customPaths?.case ?? basePaths.case
927
955
  };
928
956
  }
929
957
 
@@ -963,10 +991,22 @@ class TimebackProvider {
963
991
  baseUrl: platformEndpoints.api[env],
964
992
  authUrl: this.authUrl
965
993
  },
994
+ clr: {
995
+ baseUrl: platformEndpoints.api[env],
996
+ authUrl: this.authUrl
997
+ },
998
+ case: {
999
+ baseUrl: platformEndpoints.api[env],
1000
+ authUrl: this.authUrl
1001
+ },
966
1002
  caliper: {
967
1003
  baseUrl: platformEndpoints.caliper[env],
968
1004
  authUrl: this.authUrl
969
1005
  },
1006
+ webhooks: {
1007
+ baseUrl: platformEndpoints.caliper[env],
1008
+ authUrl: this.authUrl
1009
+ },
970
1010
  qti: {
971
1011
  baseUrl: platformEndpoints.qti[env],
972
1012
  authUrl: this.authUrl
@@ -980,7 +1020,10 @@ class TimebackProvider {
980
1020
  oneroster: { baseUrl: config.baseUrl, authUrl: this.authUrl },
981
1021
  edubridge: { baseUrl: config.baseUrl, authUrl: this.authUrl },
982
1022
  powerpath: { baseUrl: config.baseUrl, authUrl: this.authUrl },
1023
+ clr: { baseUrl: config.baseUrl, authUrl: this.authUrl },
1024
+ case: { baseUrl: config.baseUrl, authUrl: this.authUrl },
983
1025
  caliper: { baseUrl: config.baseUrl, authUrl: this.authUrl },
1026
+ webhooks: { baseUrl: config.baseUrl, authUrl: this.authUrl },
984
1027
  qti: { baseUrl: config.baseUrl, authUrl: this.authUrl }
985
1028
  };
986
1029
  } else if (isServicesConfig(config)) {
@@ -999,10 +1042,19 @@ class TimebackProvider {
999
1042
  } else {
1000
1043
  throw new Error("Invalid provider configuration");
1001
1044
  }
1045
+ for (const service of Object.keys(this.pathProfiles)) {
1046
+ if (this.pathProfiles[service] === null) {
1047
+ delete this.endpoints[service];
1048
+ }
1049
+ }
1002
1050
  }
1003
1051
  getEndpoint(service) {
1004
1052
  const endpoint = this.endpoints[service];
1005
1053
  if (!endpoint) {
1054
+ const pathKey = service;
1055
+ if (pathKey in this.pathProfiles && this.pathProfiles[pathKey] === null) {
1056
+ throw new Error(`Service "${service}" is not supported on ${this.platform ?? "this"} platform.`);
1057
+ }
1006
1058
  throw new Error(`Service "${service}" is not configured in this provider`);
1007
1059
  }
1008
1060
  return endpoint;
@@ -15762,6 +15814,213 @@ var CaliperListEventsParams = exports_external.object({
15762
15814
  actorId: exports_external.string().min(1).optional(),
15763
15815
  actorEmail: exports_external.email().optional()
15764
15816
  }).strict();
15817
+ // ../../types/src/zod/webhooks.ts
15818
+ var WebhookCreateInput = exports_external.object({
15819
+ name: exports_external.string().min(1, "name must be a non-empty string"),
15820
+ targetUrl: exports_external.url("targetUrl must be a valid URL"),
15821
+ secret: exports_external.string().min(1, "secret must be a non-empty string"),
15822
+ active: exports_external.boolean(),
15823
+ sensor: exports_external.string().nullable().optional(),
15824
+ description: exports_external.string().nullable().optional()
15825
+ }).strict();
15826
+ var WebhookFilterType = exports_external.enum(["string", "number", "boolean"]);
15827
+ var WebhookFilterOperation = exports_external.enum([
15828
+ "eq",
15829
+ "neq",
15830
+ "gt",
15831
+ "gte",
15832
+ "lt",
15833
+ "lte",
15834
+ "contains",
15835
+ "notContains",
15836
+ "in",
15837
+ "notIn",
15838
+ "startsWith",
15839
+ "endsWith",
15840
+ "regexp"
15841
+ ]);
15842
+ var WebhookFilterCreateInput = exports_external.object({
15843
+ webhookId: exports_external.string().min(1, "webhookId must be a non-empty string"),
15844
+ filterKey: exports_external.string().min(1, "filterKey must be a non-empty string"),
15845
+ filterValue: exports_external.string().min(1, "filterValue must be a non-empty string"),
15846
+ filterType: WebhookFilterType,
15847
+ filterOperator: WebhookFilterOperation,
15848
+ active: exports_external.boolean()
15849
+ }).strict();
15850
+ // ../../types/src/zod/case.ts
15851
+ var NonEmptyString = exports_external.string().trim().min(1);
15852
+ var InputNodeURISchema = exports_external.object({
15853
+ title: NonEmptyString,
15854
+ identifier: NonEmptyString,
15855
+ uri: NonEmptyString
15856
+ });
15857
+ var CFDocumentInputSchema = exports_external.object({
15858
+ identifier: NonEmptyString,
15859
+ uri: NonEmptyString,
15860
+ lastChangeDateTime: NonEmptyString,
15861
+ title: NonEmptyString,
15862
+ creator: NonEmptyString,
15863
+ officialSourceURL: exports_external.string().optional(),
15864
+ publisher: exports_external.string().optional(),
15865
+ description: exports_external.string().optional(),
15866
+ language: exports_external.string().optional(),
15867
+ version: exports_external.string().optional(),
15868
+ caseVersion: exports_external.string().optional(),
15869
+ adoptionStatus: exports_external.string().optional(),
15870
+ statusStartDate: exports_external.string().optional(),
15871
+ statusEndDate: exports_external.string().optional(),
15872
+ licenseUri: exports_external.string().optional(),
15873
+ notes: exports_external.string().optional(),
15874
+ subject: exports_external.array(exports_external.string()).optional(),
15875
+ extensions: exports_external.unknown().optional()
15876
+ });
15877
+ var CFItemInputSchema = exports_external.object({
15878
+ identifier: NonEmptyString,
15879
+ uri: NonEmptyString,
15880
+ lastChangeDateTime: NonEmptyString,
15881
+ fullStatement: NonEmptyString,
15882
+ alternativeLabel: exports_external.string().optional(),
15883
+ CFItemType: exports_external.string().optional(),
15884
+ cfItemType: exports_external.string().optional(),
15885
+ humanCodingScheme: exports_external.string().optional(),
15886
+ listEnumeration: exports_external.string().optional(),
15887
+ abbreviatedStatement: exports_external.string().optional(),
15888
+ conceptKeywords: exports_external.array(exports_external.string()).optional(),
15889
+ notes: exports_external.string().optional(),
15890
+ subject: exports_external.array(exports_external.string()).optional(),
15891
+ language: exports_external.string().optional(),
15892
+ educationLevel: exports_external.array(exports_external.string()).optional(),
15893
+ CFItemTypeURI: exports_external.unknown().optional(),
15894
+ licenseURI: exports_external.unknown().optional(),
15895
+ statusStartDate: exports_external.string().optional(),
15896
+ statusEndDate: exports_external.string().optional(),
15897
+ extensions: exports_external.unknown().optional()
15898
+ });
15899
+ var CFAssociationInputSchema = exports_external.object({
15900
+ identifier: NonEmptyString,
15901
+ uri: NonEmptyString,
15902
+ lastChangeDateTime: NonEmptyString,
15903
+ associationType: NonEmptyString,
15904
+ originNodeURI: InputNodeURISchema,
15905
+ destinationNodeURI: InputNodeURISchema,
15906
+ sequenceNumber: exports_external.number().optional(),
15907
+ extensions: exports_external.unknown().optional()
15908
+ });
15909
+ var CFDefinitionsSchema = exports_external.object({
15910
+ CFItemTypes: exports_external.array(exports_external.unknown()).optional(),
15911
+ CFSubjects: exports_external.array(exports_external.unknown()).optional(),
15912
+ CFConcepts: exports_external.array(exports_external.unknown()).optional(),
15913
+ CFLicenses: exports_external.array(exports_external.unknown()).optional(),
15914
+ CFAssociationGroupings: exports_external.array(exports_external.unknown()).optional(),
15915
+ extensions: exports_external.unknown().optional()
15916
+ });
15917
+ var CasePackageInput = exports_external.object({
15918
+ CFDocument: CFDocumentInputSchema,
15919
+ CFItems: exports_external.array(CFItemInputSchema),
15920
+ CFAssociations: exports_external.array(CFAssociationInputSchema),
15921
+ CFDefinitions: CFDefinitionsSchema.optional(),
15922
+ extensions: exports_external.unknown().optional()
15923
+ });
15924
+ // ../../types/src/zod/clr.ts
15925
+ var NonEmptyString2 = exports_external.string().trim().min(1);
15926
+ var NonEmptyStringArray = exports_external.array(exports_external.string()).min(1);
15927
+ var ClrImageSchema = exports_external.object({
15928
+ id: NonEmptyString2,
15929
+ type: exports_external.literal("Image"),
15930
+ caption: exports_external.string().optional()
15931
+ });
15932
+ var ClrProfileSchema = exports_external.object({
15933
+ id: NonEmptyString2,
15934
+ type: NonEmptyStringArray,
15935
+ name: exports_external.string().optional(),
15936
+ url: exports_external.string().optional(),
15937
+ phone: exports_external.string().optional(),
15938
+ description: exports_external.string().optional(),
15939
+ image: ClrImageSchema.optional(),
15940
+ email: exports_external.string().optional()
15941
+ });
15942
+ var ClrProofSchema = exports_external.object({
15943
+ type: NonEmptyString2,
15944
+ proofPurpose: NonEmptyString2,
15945
+ verificationMethod: NonEmptyString2,
15946
+ created: NonEmptyString2,
15947
+ proofValue: NonEmptyString2,
15948
+ cryptosuite: exports_external.string().optional()
15949
+ });
15950
+ var ClrCredentialSchemaSchema = exports_external.object({
15951
+ id: NonEmptyString2,
15952
+ type: exports_external.literal("1EdTechJsonSchemaValidator2019")
15953
+ });
15954
+ var AchievementCriteriaSchema = exports_external.object({
15955
+ id: exports_external.string().optional(),
15956
+ narrative: exports_external.string().optional()
15957
+ });
15958
+ var AchievementSchema = exports_external.object({
15959
+ id: NonEmptyString2,
15960
+ type: NonEmptyStringArray,
15961
+ name: NonEmptyString2,
15962
+ description: NonEmptyString2,
15963
+ criteria: AchievementCriteriaSchema,
15964
+ image: ClrImageSchema.optional(),
15965
+ achievementType: exports_external.string().optional(),
15966
+ creator: ClrProfileSchema.optional()
15967
+ });
15968
+ var IdentityObjectSchema = exports_external.object({
15969
+ type: exports_external.literal("IdentityObject"),
15970
+ identityHash: NonEmptyString2,
15971
+ identityType: NonEmptyString2,
15972
+ hashed: exports_external.boolean(),
15973
+ salt: exports_external.string().optional()
15974
+ });
15975
+ var AssociationTypeSchema = exports_external.enum([
15976
+ "exactMatchOf",
15977
+ "isChildOf",
15978
+ "isParentOf",
15979
+ "isPartOf",
15980
+ "isPeerOf",
15981
+ "isRelatedTo",
15982
+ "precedes",
15983
+ "replacedBy"
15984
+ ]);
15985
+ var AssociationSchema = exports_external.object({
15986
+ type: exports_external.literal("Association"),
15987
+ associationType: AssociationTypeSchema,
15988
+ sourceId: NonEmptyString2,
15989
+ targetId: NonEmptyString2
15990
+ });
15991
+ var VerifiableCredentialSchema = exports_external.object({
15992
+ "@context": NonEmptyStringArray,
15993
+ id: NonEmptyString2,
15994
+ type: NonEmptyStringArray,
15995
+ issuer: ClrProfileSchema,
15996
+ validFrom: NonEmptyString2,
15997
+ validUntil: exports_external.string().optional(),
15998
+ credentialSubject: exports_external.object({
15999
+ id: exports_external.string().optional()
16000
+ }),
16001
+ proof: exports_external.array(ClrProofSchema).optional()
16002
+ });
16003
+ var ClrCredentialSubjectSchema = exports_external.object({
16004
+ id: exports_external.string().optional(),
16005
+ type: NonEmptyStringArray,
16006
+ identifier: exports_external.array(IdentityObjectSchema).optional(),
16007
+ achievement: exports_external.array(AchievementSchema).optional(),
16008
+ verifiableCredential: exports_external.array(VerifiableCredentialSchema).min(1),
16009
+ association: exports_external.array(AssociationSchema).optional()
16010
+ });
16011
+ var ClrCredentialInput = exports_external.object({
16012
+ "@context": NonEmptyStringArray,
16013
+ id: NonEmptyString2,
16014
+ type: NonEmptyStringArray,
16015
+ issuer: ClrProfileSchema,
16016
+ name: NonEmptyString2,
16017
+ description: exports_external.string().optional(),
16018
+ validFrom: NonEmptyString2,
16019
+ validUntil: exports_external.string().optional(),
16020
+ credentialSubject: ClrCredentialSubjectSchema,
16021
+ proof: exports_external.array(ClrProofSchema).optional(),
16022
+ credentialSchema: exports_external.array(ClrCredentialSchemaSchema).optional()
16023
+ });
15765
16024
  // ../../types/src/zod/config.ts
15766
16025
  var CourseIds = exports_external.object({
15767
16026
  staging: exports_external.string().meta({ description: "Course ID in staging environment" }).optional(),
@@ -15837,7 +16096,12 @@ var TimebackConfig = exports_external.object({
15837
16096
  }).optional(),
15838
16097
  courses: exports_external.array(CourseConfig).min(1, "At least one course is required").meta({ description: "Courses available in this app" }),
15839
16098
  sensor: exports_external.url().meta({ description: "Default Caliper sensor endpoint URL for all courses" }).optional(),
15840
- launchUrl: exports_external.url().meta({ description: "Default LTI launch URL for all courses" }).optional()
16099
+ launchUrl: exports_external.url().meta({ description: "Default LTI launch URL for all courses" }).optional(),
16100
+ studio: exports_external.object({
16101
+ telemetry: exports_external.boolean().meta({
16102
+ description: "Enable anonymous usage telemetry for Studio (default: true)"
16103
+ }).optional().default(true)
16104
+ }).meta({ description: "Studio-specific configuration" }).optional()
15841
16105
  }).meta({
15842
16106
  id: "TimebackConfig",
15843
16107
  title: "Timeback Config",
@@ -15923,10 +16187,10 @@ var EduBridgeEnrollmentAnalyticsResponse = exports_external.object({
15923
16187
  facts: EduBridgeAnalyticsFacts,
15924
16188
  factsByApp: exports_external.unknown()
15925
16189
  });
15926
- var NonEmptyString = exports_external.string().trim().min(1);
16190
+ var NonEmptyString3 = exports_external.string().trim().min(1);
15927
16191
  var EmailOrStudentId = exports_external.object({
15928
16192
  email: exports_external.email().optional(),
15929
- studentId: NonEmptyString.optional()
16193
+ studentId: NonEmptyString3.optional()
15930
16194
  }).superRefine((value, ctx) => {
15931
16195
  if (!value.email && !value.studentId) {
15932
16196
  ctx.addIssue({
@@ -15942,16 +16206,16 @@ var EmailOrStudentId = exports_external.object({
15942
16206
  }
15943
16207
  });
15944
16208
  var SubjectTrackInput = exports_external.object({
15945
- subject: NonEmptyString,
15946
- grade: NonEmptyString,
15947
- courseId: NonEmptyString,
15948
- orgSourcedId: NonEmptyString.optional()
16209
+ subject: NonEmptyString3,
16210
+ grade: NonEmptyString3,
16211
+ courseId: NonEmptyString3,
16212
+ orgSourcedId: NonEmptyString3.optional()
15949
16213
  });
15950
16214
  var EdubridgeListEnrollmentsParams = exports_external.object({
15951
- userId: NonEmptyString
16215
+ userId: NonEmptyString3
15952
16216
  });
15953
16217
  var EdubridgeEnrollOptions = exports_external.object({
15954
- sourcedId: NonEmptyString.optional(),
16218
+ sourcedId: NonEmptyString3.optional(),
15955
16219
  role: EnrollmentRole.optional(),
15956
16220
  beginDate: EdubridgeDateString.optional(),
15957
16221
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
@@ -15965,7 +16229,7 @@ var EdubridgeUsersListParams = exports_external.object({
15965
16229
  filter: exports_external.string().optional(),
15966
16230
  search: exports_external.string().optional(),
15967
16231
  roles: exports_external.array(OneRosterUserRole).min(1),
15968
- orgSourcedIds: exports_external.array(NonEmptyString).optional()
16232
+ orgSourcedIds: exports_external.array(NonEmptyString3).optional()
15969
16233
  });
15970
16234
  var EdubridgeActivityParams = EmailOrStudentId.extend({
15971
16235
  startDate: EdubridgeDateString,
@@ -15977,17 +16241,94 @@ var EdubridgeWeeklyFactsParams = EmailOrStudentId.extend({
15977
16241
  timezone: exports_external.string().optional()
15978
16242
  });
15979
16243
  var EdubridgeEnrollmentFactsParams = exports_external.object({
15980
- enrollmentId: NonEmptyString,
16244
+ enrollmentId: NonEmptyString3,
15981
16245
  startDate: EdubridgeDateString.optional(),
15982
16246
  endDate: EdubridgeDateString.optional(),
15983
16247
  timezone: exports_external.string().optional()
15984
16248
  });
16249
+ // ../../types/src/zod/masterytrack.ts
16250
+ var NonEmptyString4 = exports_external.string().trim().min(1);
16251
+ var MasteryTrackAuthorizerInput = exports_external.object({
16252
+ email: exports_external.email()
16253
+ });
16254
+ var MasteryTrackInventorySearchParams = exports_external.object({
16255
+ name: NonEmptyString4.optional(),
16256
+ timeback_id: NonEmptyString4.optional(),
16257
+ grade: NonEmptyString4.optional(),
16258
+ subject: NonEmptyString4.optional(),
16259
+ all: exports_external.boolean().optional()
16260
+ });
16261
+ var MasteryTrackAssignmentInput = exports_external.object({
16262
+ student_email: exports_external.email(),
16263
+ timeback_id: NonEmptyString4.optional(),
16264
+ subject: NonEmptyString4.optional(),
16265
+ grade_rank: exports_external.number().int().min(0).max(12).optional(),
16266
+ assessment_line_item_sourced_id: NonEmptyString4.optional(),
16267
+ assessment_result_sourced_id: NonEmptyString4.optional()
16268
+ }).superRefine((value, ctx) => {
16269
+ const hasTimebackId = !!value.timeback_id;
16270
+ const hasSubject = !!value.subject;
16271
+ const hasGradeRank = value.grade_rank !== undefined;
16272
+ if (!hasTimebackId && !hasSubject) {
16273
+ ctx.addIssue({
16274
+ code: exports_external.ZodIssueCode.custom,
16275
+ message: "must provide either timeback_id or subject",
16276
+ path: ["timeback_id"]
16277
+ });
16278
+ ctx.addIssue({
16279
+ code: exports_external.ZodIssueCode.custom,
16280
+ message: "must provide either timeback_id or subject",
16281
+ path: ["subject"]
16282
+ });
16283
+ }
16284
+ if (hasGradeRank && !hasSubject) {
16285
+ ctx.addIssue({
16286
+ code: exports_external.ZodIssueCode.custom,
16287
+ message: "grade_rank requires subject",
16288
+ path: ["grade_rank"]
16289
+ });
16290
+ }
16291
+ const hasLineItem = !!value.assessment_line_item_sourced_id;
16292
+ const hasResultId = !!value.assessment_result_sourced_id;
16293
+ if (hasLineItem !== hasResultId) {
16294
+ ctx.addIssue({
16295
+ code: exports_external.ZodIssueCode.custom,
16296
+ message: "assessment_line_item_sourced_id and assessment_result_sourced_id must be provided together",
16297
+ path: hasLineItem ? ["assessment_result_sourced_id"] : ["assessment_line_item_sourced_id"]
16298
+ });
16299
+ }
16300
+ });
16301
+ var MasteryTrackInvalidateAssignmentInput = exports_external.object({
16302
+ student_email: exports_external.email(),
16303
+ assignment_id: exports_external.number().int().positive().optional(),
16304
+ timeback_id: NonEmptyString4.optional(),
16305
+ subject: NonEmptyString4.optional(),
16306
+ grade_rank: exports_external.number().int().min(0).max(12).optional()
16307
+ }).superRefine((value, ctx) => {
16308
+ const byAssignment = value.assignment_id !== undefined;
16309
+ const byTimeback = !!value.timeback_id;
16310
+ const bySubjectGrade = !!value.subject && value.grade_rank !== undefined;
16311
+ if (!byAssignment && !byTimeback && !bySubjectGrade) {
16312
+ ctx.addIssue({
16313
+ code: exports_external.ZodIssueCode.custom,
16314
+ message: "Either assignment_id, timeback_id, or (subject and grade_rank) is required",
16315
+ path: ["assignment_id"]
16316
+ });
16317
+ }
16318
+ if (value.grade_rank !== undefined && !value.subject) {
16319
+ ctx.addIssue({
16320
+ code: exports_external.ZodIssueCode.custom,
16321
+ message: "grade_rank requires subject",
16322
+ path: ["grade_rank"]
16323
+ });
16324
+ }
16325
+ });
15985
16326
  // ../../types/src/zod/oneroster.ts
15986
- var NonEmptyString2 = exports_external.string().min(1);
16327
+ var NonEmptyString5 = exports_external.string().min(1);
15987
16328
  var Status = exports_external.enum(["active", "tobedeleted"]);
15988
16329
  var Metadata = exports_external.record(exports_external.string(), exports_external.unknown()).nullable().optional();
15989
16330
  var Ref = exports_external.object({
15990
- sourcedId: NonEmptyString2,
16331
+ sourcedId: NonEmptyString5,
15991
16332
  type: exports_external.string().optional(),
15992
16333
  href: exports_external.string().optional()
15993
16334
  }).strict();
@@ -16002,58 +16343,58 @@ var OneRosterUserRoleInput = exports_external.object({
16002
16343
  endDate: OneRosterDateString.optional()
16003
16344
  }).strict();
16004
16345
  var OneRosterUserCreateInput = exports_external.object({
16005
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string"),
16346
+ sourcedId: NonEmptyString5.describe("sourcedId must be a non-empty string"),
16006
16347
  status: Status.optional(),
16007
16348
  enabledUser: exports_external.boolean(),
16008
- givenName: NonEmptyString2.describe("givenName must be a non-empty string"),
16009
- familyName: NonEmptyString2.describe("familyName must be a non-empty string"),
16010
- middleName: NonEmptyString2.optional(),
16011
- username: NonEmptyString2.optional(),
16349
+ givenName: NonEmptyString5.describe("givenName must be a non-empty string"),
16350
+ familyName: NonEmptyString5.describe("familyName must be a non-empty string"),
16351
+ middleName: NonEmptyString5.optional(),
16352
+ username: NonEmptyString5.optional(),
16012
16353
  email: exports_external.email().optional(),
16013
16354
  roles: exports_external.array(OneRosterUserRoleInput).min(1, "roles must include at least one role"),
16014
16355
  userIds: exports_external.array(exports_external.object({
16015
- type: NonEmptyString2,
16016
- identifier: NonEmptyString2
16356
+ type: NonEmptyString5,
16357
+ identifier: NonEmptyString5
16017
16358
  }).strict()).optional(),
16018
16359
  agents: exports_external.array(Ref).optional(),
16019
16360
  grades: exports_external.array(TimebackGrade).optional(),
16020
- identifier: NonEmptyString2.optional(),
16021
- sms: NonEmptyString2.optional(),
16022
- phone: NonEmptyString2.optional(),
16023
- pronouns: NonEmptyString2.optional(),
16024
- password: NonEmptyString2.optional(),
16361
+ identifier: NonEmptyString5.optional(),
16362
+ sms: NonEmptyString5.optional(),
16363
+ phone: NonEmptyString5.optional(),
16364
+ pronouns: NonEmptyString5.optional(),
16365
+ password: NonEmptyString5.optional(),
16025
16366
  metadata: Metadata
16026
16367
  }).strict();
16027
16368
  var OneRosterCourseCreateInput = exports_external.object({
16028
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string").optional(),
16369
+ sourcedId: NonEmptyString5.describe("sourcedId must be a non-empty string").optional(),
16029
16370
  status: Status.optional(),
16030
- title: NonEmptyString2.describe("title must be a non-empty string"),
16371
+ title: NonEmptyString5.describe("title must be a non-empty string"),
16031
16372
  org: Ref,
16032
- courseCode: NonEmptyString2.optional(),
16373
+ courseCode: NonEmptyString5.optional(),
16033
16374
  subjects: exports_external.array(TimebackSubject).optional(),
16034
16375
  grades: exports_external.array(TimebackGrade).optional(),
16035
- level: NonEmptyString2.optional(),
16376
+ level: NonEmptyString5.optional(),
16036
16377
  metadata: Metadata
16037
16378
  }).strict();
16038
16379
  var OneRosterClassCreateInput = exports_external.object({
16039
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string").optional(),
16380
+ sourcedId: NonEmptyString5.describe("sourcedId must be a non-empty string").optional(),
16040
16381
  status: Status.optional(),
16041
- title: NonEmptyString2.describe("title must be a non-empty string"),
16382
+ title: NonEmptyString5.describe("title must be a non-empty string"),
16042
16383
  terms: exports_external.array(Ref).min(1, "terms must have at least one item"),
16043
16384
  course: Ref,
16044
16385
  org: Ref,
16045
- classCode: NonEmptyString2.optional(),
16386
+ classCode: NonEmptyString5.optional(),
16046
16387
  classType: exports_external.enum(["homeroom", "scheduled"]).optional(),
16047
- location: NonEmptyString2.optional(),
16388
+ location: NonEmptyString5.optional(),
16048
16389
  grades: exports_external.array(TimebackGrade).optional(),
16049
16390
  subjects: exports_external.array(TimebackSubject).optional(),
16050
- subjectCodes: exports_external.array(NonEmptyString2).optional(),
16051
- periods: exports_external.array(NonEmptyString2).optional(),
16391
+ subjectCodes: exports_external.array(NonEmptyString5).optional(),
16392
+ periods: exports_external.array(NonEmptyString5).optional(),
16052
16393
  metadata: Metadata
16053
16394
  }).strict();
16054
16395
  var StringBoolean = exports_external.enum(["true", "false"]);
16055
16396
  var OneRosterEnrollmentCreateInput = exports_external.object({
16056
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string").optional(),
16397
+ sourcedId: NonEmptyString5.describe("sourcedId must be a non-empty string").optional(),
16057
16398
  status: Status.optional(),
16058
16399
  user: Ref,
16059
16400
  class: Ref,
@@ -16065,15 +16406,15 @@ var OneRosterEnrollmentCreateInput = exports_external.object({
16065
16406
  metadata: Metadata
16066
16407
  }).strict();
16067
16408
  var OneRosterCategoryCreateInput = exports_external.object({
16068
- sourcedId: NonEmptyString2.optional(),
16069
- title: NonEmptyString2.describe("title must be a non-empty string"),
16409
+ sourcedId: NonEmptyString5.optional(),
16410
+ title: NonEmptyString5.describe("title must be a non-empty string"),
16070
16411
  status: Status,
16071
16412
  weight: exports_external.number().nullable().optional(),
16072
16413
  metadata: Metadata
16073
16414
  }).strict();
16074
16415
  var OneRosterLineItemCreateInput = exports_external.object({
16075
- sourcedId: NonEmptyString2.optional(),
16076
- title: NonEmptyString2.describe("title must be a non-empty string"),
16416
+ sourcedId: NonEmptyString5.optional(),
16417
+ title: NonEmptyString5.describe("title must be a non-empty string"),
16077
16418
  class: Ref,
16078
16419
  school: Ref,
16079
16420
  category: Ref,
@@ -16087,7 +16428,7 @@ var OneRosterLineItemCreateInput = exports_external.object({
16087
16428
  metadata: Metadata
16088
16429
  }).strict();
16089
16430
  var OneRosterResultCreateInput = exports_external.object({
16090
- sourcedId: NonEmptyString2.optional(),
16431
+ sourcedId: NonEmptyString5.optional(),
16091
16432
  lineItem: Ref,
16092
16433
  student: Ref,
16093
16434
  class: Ref.optional(),
@@ -16106,15 +16447,15 @@ var OneRosterResultCreateInput = exports_external.object({
16106
16447
  metadata: Metadata
16107
16448
  }).strict();
16108
16449
  var OneRosterScoreScaleCreateInput = exports_external.object({
16109
- sourcedId: NonEmptyString2.optional(),
16110
- title: NonEmptyString2.describe("title must be a non-empty string"),
16450
+ sourcedId: NonEmptyString5.optional(),
16451
+ title: NonEmptyString5.describe("title must be a non-empty string"),
16111
16452
  status: Status.optional(),
16112
16453
  type: exports_external.string().optional(),
16113
16454
  class: Ref.optional(),
16114
16455
  course: Ref.nullable().optional(),
16115
16456
  scoreScaleValue: exports_external.array(exports_external.object({
16116
- itemValueLHS: NonEmptyString2,
16117
- itemValueRHS: NonEmptyString2,
16457
+ itemValueLHS: NonEmptyString5,
16458
+ itemValueRHS: NonEmptyString5,
16118
16459
  value: exports_external.string().optional(),
16119
16460
  description: exports_external.string().optional()
16120
16461
  }).strict()).optional(),
@@ -16123,10 +16464,10 @@ var OneRosterScoreScaleCreateInput = exports_external.object({
16123
16464
  metadata: Metadata
16124
16465
  }).strict();
16125
16466
  var OneRosterAssessmentLineItemCreateInput = exports_external.object({
16126
- sourcedId: NonEmptyString2.optional(),
16467
+ sourcedId: NonEmptyString5.optional(),
16127
16468
  status: Status.optional(),
16128
16469
  dateLastModified: IsoDateTimeString.optional(),
16129
- title: NonEmptyString2.describe("title must be a non-empty string"),
16470
+ title: NonEmptyString5.describe("title must be a non-empty string"),
16130
16471
  description: exports_external.string().nullable().optional(),
16131
16472
  class: Ref.nullable().optional(),
16132
16473
  parentAssessmentLineItem: Ref.nullable().optional(),
@@ -16152,7 +16493,7 @@ var LearningObjectiveScoreSetSchema = exports_external.array(exports_external.ob
16152
16493
  learningObjectiveResults: exports_external.array(LearningObjectiveResult)
16153
16494
  }));
16154
16495
  var OneRosterAssessmentResultCreateInput = exports_external.object({
16155
- sourcedId: NonEmptyString2.optional(),
16496
+ sourcedId: NonEmptyString5.optional(),
16156
16497
  status: Status.optional(),
16157
16498
  dateLastModified: IsoDateTimeString.optional(),
16158
16499
  metadata: Metadata,
@@ -16178,53 +16519,53 @@ var OneRosterAssessmentResultCreateInput = exports_external.object({
16178
16519
  missing: exports_external.string().nullable().optional()
16179
16520
  }).strict();
16180
16521
  var OneRosterOrgCreateInput = exports_external.object({
16181
- sourcedId: NonEmptyString2.optional(),
16522
+ sourcedId: NonEmptyString5.optional(),
16182
16523
  status: Status.optional(),
16183
- name: NonEmptyString2.describe("name must be a non-empty string"),
16524
+ name: NonEmptyString5.describe("name must be a non-empty string"),
16184
16525
  type: OrganizationType,
16185
- identifier: NonEmptyString2.optional(),
16526
+ identifier: NonEmptyString5.optional(),
16186
16527
  parent: Ref.optional(),
16187
16528
  metadata: Metadata
16188
16529
  }).strict();
16189
16530
  var OneRosterSchoolCreateInput = exports_external.object({
16190
- sourcedId: NonEmptyString2.optional(),
16531
+ sourcedId: NonEmptyString5.optional(),
16191
16532
  status: Status.optional(),
16192
- name: NonEmptyString2.describe("name must be a non-empty string"),
16533
+ name: NonEmptyString5.describe("name must be a non-empty string"),
16193
16534
  type: exports_external.literal("school").optional(),
16194
- identifier: NonEmptyString2.optional(),
16535
+ identifier: NonEmptyString5.optional(),
16195
16536
  parent: Ref.optional(),
16196
16537
  metadata: Metadata
16197
16538
  }).strict();
16198
16539
  var OneRosterAcademicSessionCreateInput = exports_external.object({
16199
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string"),
16540
+ sourcedId: NonEmptyString5.describe("sourcedId must be a non-empty string"),
16200
16541
  status: Status,
16201
- title: NonEmptyString2.describe("title must be a non-empty string"),
16542
+ title: NonEmptyString5.describe("title must be a non-empty string"),
16202
16543
  startDate: OneRosterDateString,
16203
16544
  endDate: OneRosterDateString,
16204
16545
  type: exports_external.enum(["gradingPeriod", "semester", "schoolYear", "term"]),
16205
- schoolYear: NonEmptyString2.describe("schoolYear must be a non-empty string"),
16546
+ schoolYear: NonEmptyString5.describe("schoolYear must be a non-empty string"),
16206
16547
  org: Ref,
16207
16548
  parent: Ref.optional(),
16208
16549
  children: exports_external.array(Ref).optional(),
16209
16550
  metadata: Metadata
16210
16551
  }).strict();
16211
16552
  var OneRosterComponentResourceCreateInput = exports_external.object({
16212
- sourcedId: NonEmptyString2.optional(),
16213
- title: NonEmptyString2.describe("title must be a non-empty string"),
16553
+ sourcedId: NonEmptyString5.optional(),
16554
+ title: NonEmptyString5.describe("title must be a non-empty string"),
16214
16555
  courseComponent: Ref,
16215
16556
  resource: Ref,
16216
16557
  status: Status,
16217
16558
  metadata: Metadata
16218
16559
  }).strict();
16219
16560
  var OneRosterCourseComponentCreateInput = exports_external.object({
16220
- sourcedId: NonEmptyString2.optional(),
16221
- title: NonEmptyString2.describe("title must be a non-empty string"),
16561
+ sourcedId: NonEmptyString5.optional(),
16562
+ title: NonEmptyString5.describe("title must be a non-empty string"),
16222
16563
  course: Ref,
16223
16564
  status: Status,
16224
16565
  metadata: Metadata
16225
16566
  }).strict();
16226
16567
  var OneRosterEnrollInput = exports_external.object({
16227
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string"),
16568
+ sourcedId: NonEmptyString5.describe("sourcedId must be a non-empty string"),
16228
16569
  role: exports_external.enum(["student", "teacher"]),
16229
16570
  primary: StringBoolean.optional(),
16230
16571
  beginDate: OneRosterDateString.optional(),
@@ -16232,16 +16573,16 @@ var OneRosterEnrollInput = exports_external.object({
16232
16573
  metadata: Metadata
16233
16574
  }).strict();
16234
16575
  var OneRosterAgentInput = exports_external.object({
16235
- agentSourcedId: NonEmptyString2.describe("agentSourcedId must be a non-empty string")
16576
+ agentSourcedId: NonEmptyString5.describe("agentSourcedId must be a non-empty string")
16236
16577
  }).strict();
16237
16578
  var OneRosterCredentialInput = exports_external.object({
16238
- type: NonEmptyString2.describe("type must be a non-empty string"),
16239
- username: NonEmptyString2.describe("username must be a non-empty string"),
16579
+ type: NonEmptyString5.describe("type must be a non-empty string"),
16580
+ username: NonEmptyString5.describe("username must be a non-empty string"),
16240
16581
  password: exports_external.string().optional(),
16241
16582
  metadata: Metadata
16242
16583
  }).strict();
16243
16584
  var OneRosterDemographicsCreateInput = exports_external.object({
16244
- sourcedId: NonEmptyString2.describe("sourcedId must be a non-empty string")
16585
+ sourcedId: NonEmptyString5.describe("sourcedId must be a non-empty string")
16245
16586
  }).loose();
16246
16587
  var CommonResourceMetadataSchema = exports_external.object({
16247
16588
  type: ResourceType,
@@ -16313,9 +16654,9 @@ var ResourceMetadataSchema = exports_external.discriminatedUnion("type", [
16313
16654
  AssessmentBankMetadataSchema
16314
16655
  ]);
16315
16656
  var OneRosterResourceCreateInput = exports_external.object({
16316
- sourcedId: NonEmptyString2.optional(),
16317
- title: NonEmptyString2.describe("title must be a non-empty string"),
16318
- vendorResourceId: NonEmptyString2.describe("vendorResourceId must be a non-empty string"),
16657
+ sourcedId: NonEmptyString5.optional(),
16658
+ title: NonEmptyString5.describe("title must be a non-empty string"),
16659
+ vendorResourceId: NonEmptyString5.describe("vendorResourceId must be a non-empty string"),
16319
16660
  roles: exports_external.array(exports_external.enum(["primary", "secondary"])).optional(),
16320
16661
  importance: exports_external.enum(["primary", "secondary"]).optional(),
16321
16662
  vendorId: exports_external.string().optional(),
@@ -16324,18 +16665,18 @@ var OneRosterResourceCreateInput = exports_external.object({
16324
16665
  metadata: ResourceMetadataSchema.nullable().optional()
16325
16666
  }).strict();
16326
16667
  var CourseStructureItem = exports_external.object({
16327
- url: NonEmptyString2.describe("courseStructure.url must be a non-empty string"),
16328
- skillCode: NonEmptyString2.describe("courseStructure.skillCode must be a non-empty string"),
16329
- lessonCode: NonEmptyString2.describe("courseStructure.lessonCode must be a non-empty string"),
16330
- title: NonEmptyString2.describe("courseStructure.title must be a non-empty string"),
16331
- "unit-title": NonEmptyString2.describe("courseStructure.unit-title must be a non-empty string"),
16332
- status: NonEmptyString2.describe("courseStructure.status must be a non-empty string"),
16668
+ url: NonEmptyString5.describe("courseStructure.url must be a non-empty string"),
16669
+ skillCode: NonEmptyString5.describe("courseStructure.skillCode must be a non-empty string"),
16670
+ lessonCode: NonEmptyString5.describe("courseStructure.lessonCode must be a non-empty string"),
16671
+ title: NonEmptyString5.describe("courseStructure.title must be a non-empty string"),
16672
+ "unit-title": NonEmptyString5.describe("courseStructure.unit-title must be a non-empty string"),
16673
+ status: NonEmptyString5.describe("courseStructure.status must be a non-empty string"),
16333
16674
  xp: exports_external.number()
16334
16675
  }).loose();
16335
16676
  var OneRosterCourseStructureInput = exports_external.object({
16336
16677
  course: exports_external.object({
16337
- sourcedId: NonEmptyString2.describe("course.sourcedId must be a non-empty string").optional(),
16338
- title: NonEmptyString2.describe("course.title must be a non-empty string"),
16678
+ sourcedId: NonEmptyString5.describe("course.sourcedId must be a non-empty string").optional(),
16679
+ title: NonEmptyString5.describe("course.title must be a non-empty string"),
16339
16680
  org: Ref,
16340
16681
  status: Status,
16341
16682
  metadata: Metadata
@@ -16347,7 +16688,7 @@ var OneRosterBulkResultItem = exports_external.object({
16347
16688
  }).loose();
16348
16689
  var OneRosterBulkResultsInput = exports_external.array(OneRosterBulkResultItem).min(1, "results must have at least one item");
16349
16690
  // ../../types/src/zod/powerpath.ts
16350
- var NonEmptyString3 = exports_external.string().trim().min(1);
16691
+ var NonEmptyString6 = exports_external.string().trim().min(1);
16351
16692
  var ToolProvider = exports_external.enum(["edulastic", "mastery-track"]);
16352
16693
  var LessonTypeRequired = exports_external.enum([
16353
16694
  "powerpath-100",
@@ -16360,14 +16701,14 @@ var LessonTypeRequired = exports_external.enum([
16360
16701
  var GradeArray = exports_external.array(TimebackGrade);
16361
16702
  var ResourceMetadata = exports_external.record(exports_external.string(), exports_external.unknown()).optional();
16362
16703
  var ExternalTestBase = exports_external.object({
16363
- courseId: NonEmptyString3,
16364
- lessonTitle: NonEmptyString3.optional(),
16704
+ courseId: NonEmptyString6,
16705
+ lessonTitle: NonEmptyString6.optional(),
16365
16706
  launchUrl: exports_external.url().optional(),
16366
16707
  toolProvider: ToolProvider,
16367
- unitTitle: NonEmptyString3.optional(),
16368
- courseComponentSourcedId: NonEmptyString3.optional(),
16369
- vendorId: NonEmptyString3.optional(),
16370
- description: NonEmptyString3.optional(),
16708
+ unitTitle: NonEmptyString6.optional(),
16709
+ courseComponentSourcedId: NonEmptyString6.optional(),
16710
+ vendorId: NonEmptyString6.optional(),
16711
+ description: NonEmptyString6.optional(),
16371
16712
  resourceMetadata: ResourceMetadata.nullable().optional(),
16372
16713
  grades: GradeArray
16373
16714
  });
@@ -16377,26 +16718,26 @@ var ExternalTestOut = ExternalTestBase.extend({
16377
16718
  });
16378
16719
  var ExternalPlacement = ExternalTestBase.extend({
16379
16720
  lessonType: exports_external.literal("placement"),
16380
- courseIdOnFail: NonEmptyString3.optional(),
16721
+ courseIdOnFail: NonEmptyString6.optional(),
16381
16722
  xp: exports_external.number().optional()
16382
16723
  });
16383
16724
  var InternalTestBase = exports_external.object({
16384
- courseId: NonEmptyString3,
16725
+ courseId: NonEmptyString6,
16385
16726
  lessonType: LessonTypeRequired,
16386
- lessonTitle: NonEmptyString3.optional(),
16387
- unitTitle: NonEmptyString3.optional(),
16388
- courseComponentSourcedId: NonEmptyString3.optional(),
16727
+ lessonTitle: NonEmptyString6.optional(),
16728
+ unitTitle: NonEmptyString6.optional(),
16729
+ courseComponentSourcedId: NonEmptyString6.optional(),
16389
16730
  resourceMetadata: ResourceMetadata.nullable().optional(),
16390
16731
  xp: exports_external.number().optional(),
16391
16732
  grades: GradeArray.optional(),
16392
- courseIdOnFail: NonEmptyString3.optional()
16733
+ courseIdOnFail: NonEmptyString6.optional()
16393
16734
  });
16394
16735
  var PowerPathCreateInternalTestInput = exports_external.union([
16395
16736
  InternalTestBase.extend({
16396
16737
  testType: exports_external.literal("qti"),
16397
16738
  qti: exports_external.object({
16398
16739
  url: exports_external.url(),
16399
- title: NonEmptyString3.optional(),
16740
+ title: NonEmptyString6.optional(),
16400
16741
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
16401
16742
  })
16402
16743
  }),
@@ -16405,28 +16746,28 @@ var PowerPathCreateInternalTestInput = exports_external.union([
16405
16746
  assessmentBank: exports_external.object({
16406
16747
  resources: exports_external.array(exports_external.object({
16407
16748
  url: exports_external.url(),
16408
- title: NonEmptyString3.optional(),
16749
+ title: NonEmptyString6.optional(),
16409
16750
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
16410
16751
  }))
16411
16752
  })
16412
16753
  })
16413
16754
  ]);
16414
16755
  var PowerPathCreateNewAttemptInput = exports_external.object({
16415
- student: NonEmptyString3,
16416
- lesson: NonEmptyString3
16756
+ student: NonEmptyString6,
16757
+ lesson: NonEmptyString6
16417
16758
  });
16418
16759
  var PowerPathFinalStudentAssessmentResponseInput = exports_external.object({
16419
- student: NonEmptyString3,
16420
- lesson: NonEmptyString3
16760
+ student: NonEmptyString6,
16761
+ lesson: NonEmptyString6
16421
16762
  });
16422
16763
  var PowerPathLessonPlansCreateInput = exports_external.object({
16423
- courseId: NonEmptyString3,
16424
- userId: NonEmptyString3,
16425
- classId: NonEmptyString3.optional()
16764
+ courseId: NonEmptyString6,
16765
+ userId: NonEmptyString6,
16766
+ classId: NonEmptyString6.optional()
16426
16767
  });
16427
16768
  var LessonPlanTarget = exports_external.object({
16428
16769
  type: exports_external.enum(["component", "resource"]),
16429
- id: NonEmptyString3
16770
+ id: NonEmptyString6
16430
16771
  });
16431
16772
  var PowerPathLessonPlanOperationInput = exports_external.union([
16432
16773
  exports_external.object({
@@ -16439,8 +16780,8 @@ var PowerPathLessonPlanOperationInput = exports_external.union([
16439
16780
  exports_external.object({
16440
16781
  type: exports_external.literal("add-custom-resource"),
16441
16782
  payload: exports_external.object({
16442
- resource_id: NonEmptyString3,
16443
- parent_component_id: NonEmptyString3,
16783
+ resource_id: NonEmptyString6,
16784
+ parent_component_id: NonEmptyString6,
16444
16785
  skipped: exports_external.boolean().optional()
16445
16786
  })
16446
16787
  }),
@@ -16448,14 +16789,14 @@ var PowerPathLessonPlanOperationInput = exports_external.union([
16448
16789
  type: exports_external.literal("move-item-before"),
16449
16790
  payload: exports_external.object({
16450
16791
  target: LessonPlanTarget,
16451
- reference_id: NonEmptyString3
16792
+ reference_id: NonEmptyString6
16452
16793
  })
16453
16794
  }),
16454
16795
  exports_external.object({
16455
16796
  type: exports_external.literal("move-item-after"),
16456
16797
  payload: exports_external.object({
16457
16798
  target: LessonPlanTarget,
16458
- reference_id: NonEmptyString3
16799
+ reference_id: NonEmptyString6
16459
16800
  })
16460
16801
  }),
16461
16802
  exports_external.object({
@@ -16474,135 +16815,135 @@ var PowerPathLessonPlanOperationInput = exports_external.union([
16474
16815
  type: exports_external.literal("change-item-parent"),
16475
16816
  payload: exports_external.object({
16476
16817
  target: LessonPlanTarget,
16477
- new_parent_id: NonEmptyString3,
16818
+ new_parent_id: NonEmptyString6,
16478
16819
  position: exports_external.enum(["start", "end"]).optional()
16479
16820
  })
16480
16821
  })
16481
16822
  ]);
16482
16823
  var PowerPathLessonPlanOperationsInput = exports_external.object({
16483
16824
  operation: exports_external.array(PowerPathLessonPlanOperationInput),
16484
- reason: NonEmptyString3.optional()
16825
+ reason: NonEmptyString6.optional()
16485
16826
  });
16486
16827
  var PowerPathLessonPlanUpdateStudentItemResponseInput = exports_external.object({
16487
- studentId: NonEmptyString3,
16488
- componentResourceId: NonEmptyString3,
16828
+ studentId: NonEmptyString6,
16829
+ componentResourceId: NonEmptyString6,
16489
16830
  result: exports_external.object({
16490
16831
  status: exports_external.enum(["active", "tobedeleted"]),
16491
16832
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
16492
16833
  score: exports_external.number().optional(),
16493
- textScore: NonEmptyString3.optional(),
16494
- scoreDate: NonEmptyString3,
16834
+ textScore: NonEmptyString6.optional(),
16835
+ scoreDate: NonEmptyString6,
16495
16836
  scorePercentile: exports_external.number().optional(),
16496
16837
  scoreStatus: ScoreStatus,
16497
- comment: NonEmptyString3.optional(),
16838
+ comment: NonEmptyString6.optional(),
16498
16839
  learningObjectiveSet: exports_external.array(exports_external.object({
16499
- source: NonEmptyString3,
16840
+ source: NonEmptyString6,
16500
16841
  learningObjectiveResults: exports_external.array(exports_external.object({
16501
- learningObjectiveId: NonEmptyString3,
16842
+ learningObjectiveId: NonEmptyString6,
16502
16843
  score: exports_external.number().optional(),
16503
- textScore: NonEmptyString3.optional()
16844
+ textScore: NonEmptyString6.optional()
16504
16845
  }))
16505
16846
  })).optional(),
16506
- inProgress: NonEmptyString3.optional(),
16507
- incomplete: NonEmptyString3.optional(),
16508
- late: NonEmptyString3.optional(),
16509
- missing: NonEmptyString3.optional()
16847
+ inProgress: NonEmptyString6.optional(),
16848
+ incomplete: NonEmptyString6.optional(),
16849
+ late: NonEmptyString6.optional(),
16850
+ missing: NonEmptyString6.optional()
16510
16851
  })
16511
16852
  });
16512
16853
  var PowerPathMakeExternalTestAssignmentInput = exports_external.object({
16513
- student: NonEmptyString3,
16514
- lesson: NonEmptyString3,
16515
- applicationName: NonEmptyString3.optional(),
16516
- testId: NonEmptyString3.optional(),
16854
+ student: NonEmptyString6,
16855
+ lesson: NonEmptyString6,
16856
+ applicationName: NonEmptyString6.optional(),
16857
+ testId: NonEmptyString6.optional(),
16517
16858
  skipCourseEnrollment: exports_external.boolean().optional()
16518
16859
  });
16519
16860
  var PowerPathPlacementResetUserPlacementInput = exports_external.object({
16520
- student: NonEmptyString3,
16861
+ student: NonEmptyString6,
16521
16862
  subject: TimebackSubject
16522
16863
  });
16523
16864
  var PowerPathResetAttemptInput = exports_external.object({
16524
- student: NonEmptyString3,
16525
- lesson: NonEmptyString3
16865
+ student: NonEmptyString6,
16866
+ lesson: NonEmptyString6
16526
16867
  });
16527
16868
  var PowerPathScreeningResetSessionInput = exports_external.object({
16528
- userId: NonEmptyString3
16869
+ userId: NonEmptyString6
16529
16870
  });
16530
16871
  var PowerPathScreeningAssignTestInput = exports_external.object({
16531
- userId: NonEmptyString3,
16872
+ userId: NonEmptyString6,
16532
16873
  subject: exports_external.enum(["Math", "Reading", "Language", "Science"])
16533
16874
  });
16534
16875
  var PowerPathTestAssignmentsCreateInput = exports_external.object({
16535
- student: NonEmptyString3,
16876
+ student: NonEmptyString6,
16536
16877
  subject: TimebackSubject,
16537
16878
  grade: TimebackGrade,
16538
- testName: NonEmptyString3.optional()
16879
+ testName: NonEmptyString6.optional()
16539
16880
  });
16540
16881
  var PowerPathTestAssignmentsUpdateInput = exports_external.object({
16541
- testName: NonEmptyString3
16882
+ testName: NonEmptyString6
16542
16883
  });
16543
16884
  var PowerPathTestAssignmentItemInput = exports_external.object({
16544
- student: NonEmptyString3,
16885
+ student: NonEmptyString6,
16545
16886
  subject: TimebackSubject,
16546
16887
  grade: TimebackGrade,
16547
- testName: NonEmptyString3.optional()
16888
+ testName: NonEmptyString6.optional()
16548
16889
  });
16549
16890
  var PowerPathTestAssignmentsBulkInput = exports_external.object({
16550
16891
  items: exports_external.array(PowerPathTestAssignmentItemInput)
16551
16892
  });
16552
16893
  var PowerPathTestAssignmentsImportInput = exports_external.object({
16553
16894
  spreadsheetUrl: exports_external.url(),
16554
- sheet: NonEmptyString3
16895
+ sheet: NonEmptyString6
16555
16896
  });
16556
16897
  var PowerPathTestAssignmentsListParams = exports_external.object({
16557
- student: NonEmptyString3,
16898
+ student: NonEmptyString6,
16558
16899
  status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
16559
- subject: NonEmptyString3.optional(),
16900
+ subject: NonEmptyString6.optional(),
16560
16901
  grade: TimebackGrade.optional(),
16561
16902
  limit: exports_external.number().int().positive().max(3000).optional(),
16562
16903
  offset: exports_external.number().int().nonnegative().optional()
16563
16904
  });
16564
16905
  var PowerPathTestAssignmentsAdminParams = exports_external.object({
16565
- student: NonEmptyString3.optional(),
16906
+ student: NonEmptyString6.optional(),
16566
16907
  status: exports_external.enum(["assigned", "in_progress", "completed", "failed", "expired", "cancelled"]).optional(),
16567
- subject: NonEmptyString3.optional(),
16908
+ subject: NonEmptyString6.optional(),
16568
16909
  grade: TimebackGrade.optional(),
16569
16910
  limit: exports_external.number().int().positive().max(3000).optional(),
16570
16911
  offset: exports_external.number().int().nonnegative().optional()
16571
16912
  });
16572
16913
  var PowerPathUpdateStudentQuestionResponseInput = exports_external.object({
16573
- student: NonEmptyString3,
16574
- question: NonEmptyString3,
16575
- response: exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)]).optional(),
16576
- responses: exports_external.record(exports_external.string(), exports_external.union([NonEmptyString3, exports_external.array(NonEmptyString3)])).optional(),
16577
- lesson: NonEmptyString3
16914
+ student: NonEmptyString6,
16915
+ question: NonEmptyString6,
16916
+ response: exports_external.union([NonEmptyString6, exports_external.array(NonEmptyString6)]).optional(),
16917
+ responses: exports_external.record(exports_external.string(), exports_external.union([NonEmptyString6, exports_external.array(NonEmptyString6)])).optional(),
16918
+ lesson: NonEmptyString6
16578
16919
  });
16579
16920
  var PowerPathGetAssessmentProgressParams = exports_external.object({
16580
- student: NonEmptyString3,
16581
- lesson: NonEmptyString3,
16921
+ student: NonEmptyString6,
16922
+ lesson: NonEmptyString6,
16582
16923
  attempt: exports_external.number().int().positive().optional()
16583
16924
  });
16584
16925
  var PowerPathGetNextQuestionParams = exports_external.object({
16585
- student: NonEmptyString3,
16586
- lesson: NonEmptyString3
16926
+ student: NonEmptyString6,
16927
+ lesson: NonEmptyString6
16587
16928
  });
16588
16929
  var PowerPathGetAttemptsParams = exports_external.object({
16589
- student: NonEmptyString3,
16590
- lesson: NonEmptyString3
16930
+ student: NonEmptyString6,
16931
+ lesson: NonEmptyString6
16591
16932
  });
16592
16933
  var PowerPathTestOutParams = exports_external.object({
16593
- student: NonEmptyString3,
16594
- lesson: NonEmptyString3.optional(),
16934
+ student: NonEmptyString6,
16935
+ lesson: NonEmptyString6.optional(),
16595
16936
  finalized: exports_external.boolean().optional(),
16596
- toolProvider: NonEmptyString3.optional(),
16937
+ toolProvider: NonEmptyString6.optional(),
16597
16938
  attempt: exports_external.number().int().positive().optional()
16598
16939
  });
16599
16940
  var PowerPathImportExternalTestAssignmentResultsParams = exports_external.object({
16600
- student: NonEmptyString3,
16601
- lesson: NonEmptyString3,
16602
- applicationName: NonEmptyString3.optional()
16941
+ student: NonEmptyString6,
16942
+ lesson: NonEmptyString6,
16943
+ applicationName: NonEmptyString6.optional()
16603
16944
  });
16604
16945
  var PowerPathPlacementQueryParams = exports_external.object({
16605
- student: NonEmptyString3,
16946
+ student: NonEmptyString6,
16606
16947
  subject: TimebackSubject
16607
16948
  });
16608
16949
  var PowerPathSyllabusQueryParams = exports_external.object({
@@ -16693,7 +17034,7 @@ var QtiItemMetadata = exports_external.object({
16693
17034
  grade: TimebackGrade.optional(),
16694
17035
  difficulty: QtiDifficulty.optional(),
16695
17036
  learningObjectiveSet: exports_external.array(QtiLearningObjectiveSet).optional()
16696
- }).strict();
17037
+ }).loose();
16697
17038
  var QtiModalFeedback = exports_external.object({
16698
17039
  outcomeIdentifier: exports_external.string().min(1),
16699
17040
  identifier: exports_external.string().min(1),
@@ -16730,7 +17071,12 @@ var QtiPaginationParams = exports_external.object({
16730
17071
  sort: exports_external.string().optional(),
16731
17072
  order: exports_external.enum(["asc", "desc"]).optional()
16732
17073
  }).strict();
16733
- var QtiAssessmentItemCreateInput = exports_external.object({
17074
+ var QtiAssessmentItemXmlCreateInput = exports_external.object({
17075
+ format: exports_external.string().pipe(exports_external.literal("xml")),
17076
+ xml: exports_external.string().min(1),
17077
+ metadata: QtiItemMetadata.optional()
17078
+ }).strict();
17079
+ var QtiAssessmentItemJsonCreateInput = exports_external.object({
16734
17080
  identifier: exports_external.string().min(1),
16735
17081
  title: exports_external.string().min(1),
16736
17082
  type: QtiAssessmentItemType,
@@ -16745,6 +17091,10 @@ var QtiAssessmentItemCreateInput = exports_external.object({
16745
17091
  feedbackInline: exports_external.array(QtiFeedbackInline).optional(),
16746
17092
  feedbackBlock: exports_external.array(QtiFeedbackBlock).optional()
16747
17093
  }).strict();
17094
+ var QtiAssessmentItemCreateInput = exports_external.union([
17095
+ QtiAssessmentItemXmlCreateInput,
17096
+ QtiAssessmentItemJsonCreateInput
17097
+ ]);
16748
17098
  var QtiAssessmentItemUpdateInput = exports_external.object({
16749
17099
  identifier: exports_external.string().min(1).optional(),
16750
17100
  title: exports_external.string().min(1),
@@ -16781,9 +17131,9 @@ var QtiAssessmentSection = exports_external.object({
16781
17131
  }).strict();
16782
17132
  var QtiTestPart = exports_external.object({
16783
17133
  identifier: exports_external.string().min(1),
16784
- navigationMode: QtiNavigationMode,
16785
- submissionMode: QtiSubmissionMode,
16786
- "qti-assessment-section": exports_external.union([QtiAssessmentSection, exports_external.array(QtiAssessmentSection)])
17134
+ navigationMode: exports_external.string().pipe(QtiNavigationMode),
17135
+ submissionMode: exports_external.string().pipe(QtiSubmissionMode),
17136
+ "qti-assessment-section": exports_external.array(QtiAssessmentSection)
16787
17137
  }).strict();
16788
17138
  var QtiReorderItemsInput = exports_external.object({
16789
17139
  items: exports_external.array(QtiAssessmentItemRef).min(1)
@@ -16801,7 +17151,7 @@ var QtiAssessmentTestCreateInput = exports_external.object({
16801
17151
  maxAttempts: exports_external.number().optional(),
16802
17152
  toolsEnabled: exports_external.record(exports_external.string(), exports_external.boolean()).optional(),
16803
17153
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
16804
- "qti-test-part": QtiTestPart,
17154
+ "qti-test-part": exports_external.array(QtiTestPart),
16805
17155
  "qti-outcome-declaration": exports_external.array(QtiTestOutcomeDeclaration).optional()
16806
17156
  }).strict();
16807
17157
  var QtiAssessmentTestUpdateInput = exports_external.object({
@@ -16814,7 +17164,7 @@ var QtiAssessmentTestUpdateInput = exports_external.object({
16814
17164
  maxAttempts: exports_external.number().optional(),
16815
17165
  toolsEnabled: exports_external.record(exports_external.string(), exports_external.boolean()).optional(),
16816
17166
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
16817
- "qti-test-part": QtiTestPart,
17167
+ "qti-test-part": exports_external.array(QtiTestPart),
16818
17168
  "qti-outcome-declaration": exports_external.array(QtiTestOutcomeDeclaration).optional()
16819
17169
  }).strict();
16820
17170
  var QtiStimulusCreateInput = exports_external.object({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timeback/oneroster",
3
- "version": "0.1.7",
3
+ "version": "0.1.8-beta.20260219221746",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {