@intellectif/lk-core 0.22.0 → 1.0.0

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 (64) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +5 -5
  3. package/dist/{activity-CYc7SD3d.d.cts → activity-DgpBJeBc.d.cts} +11 -15
  4. package/dist/{activity-CYc7SD3d.d.ts → activity-DgpBJeBc.d.ts} +11 -15
  5. package/dist/ai-check.cjs +8 -8
  6. package/dist/ai-check.d.cts +1 -1
  7. package/dist/ai-check.d.ts +1 -1
  8. package/dist/ai-check.js +3 -3
  9. package/dist/{chunk-2CV6NU32.cjs → chunk-2JT2WUQ2.cjs} +77 -39
  10. package/dist/chunk-2JT2WUQ2.cjs.map +1 -0
  11. package/dist/{chunk-D4TOPSHV.cjs → chunk-DSDXL3JO.cjs} +1216 -1105
  12. package/dist/chunk-DSDXL3JO.cjs.map +1 -0
  13. package/dist/{chunk-D3GP5MET.js → chunk-FBKTION6.js} +1093 -982
  14. package/dist/chunk-FBKTION6.js.map +1 -0
  15. package/dist/{chunk-Q7MV3IXJ.js → chunk-IARLJ5MW.js} +15 -16
  16. package/dist/chunk-IARLJ5MW.js.map +1 -0
  17. package/dist/{chunk-5UCR4UNR.js → chunk-RCZCP5OE.js} +12 -7
  18. package/dist/chunk-RCZCP5OE.js.map +1 -0
  19. package/dist/{chunk-X5DAXBJI.js → chunk-SJVRUPJT.js} +2 -2
  20. package/dist/{chunk-EOFWSGLU.cjs → chunk-TJJFKKH2.cjs} +4 -4
  21. package/dist/{chunk-EOFWSGLU.cjs.map → chunk-TJJFKKH2.cjs.map} +1 -1
  22. package/dist/{chunk-WQVZPIN7.cjs → chunk-VSH7ECQL.cjs} +44 -45
  23. package/dist/chunk-VSH7ECQL.cjs.map +1 -0
  24. package/dist/{chunk-OPMY2MNS.cjs → chunk-W5KB3DNT.cjs} +19 -14
  25. package/dist/chunk-W5KB3DNT.cjs.map +1 -0
  26. package/dist/{chunk-Z7QQZ53L.js → chunk-XS6U2ARZ.js} +70 -32
  27. package/dist/chunk-XS6U2ARZ.js.map +1 -0
  28. package/dist/index-BVNeSCWC.d.ts +548 -0
  29. package/dist/index-BlOLlwOi.d.cts +548 -0
  30. package/dist/index.cjs +129 -206
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.d.cts +115 -15
  33. package/dist/index.d.ts +115 -15
  34. package/dist/index.js +26 -103
  35. package/dist/index.js.map +1 -1
  36. package/dist/schemas.cjs +3 -94
  37. package/dist/schemas.cjs.map +1 -1
  38. package/dist/schemas.d.cts +2 -3
  39. package/dist/schemas.d.ts +2 -3
  40. package/dist/schemas.js +6 -97
  41. package/dist/scoring.cjs +3 -3
  42. package/dist/scoring.d.cts +2 -2
  43. package/dist/scoring.d.ts +2 -2
  44. package/dist/scoring.js +2 -2
  45. package/dist/xapi.cjs +3 -3
  46. package/dist/xapi.d.cts +1 -1
  47. package/dist/xapi.d.ts +1 -1
  48. package/dist/xapi.js +2 -2
  49. package/package.json +4 -4
  50. package/vectors/README.md +32 -2
  51. package/vectors/scoring.json +1 -498
  52. package/vectors/validation.json +6742 -0
  53. package/vectors/validation.mjs +195 -0
  54. package/dist/chunk-2CV6NU32.cjs.map +0 -1
  55. package/dist/chunk-5UCR4UNR.js.map +0 -1
  56. package/dist/chunk-D3GP5MET.js.map +0 -1
  57. package/dist/chunk-D4TOPSHV.cjs.map +0 -1
  58. package/dist/chunk-OPMY2MNS.cjs.map +0 -1
  59. package/dist/chunk-Q7MV3IXJ.js.map +0 -1
  60. package/dist/chunk-WQVZPIN7.cjs.map +0 -1
  61. package/dist/chunk-Z7QQZ53L.js.map +0 -1
  62. package/dist/index-0Z3-nnAP.d.ts +0 -2303
  63. package/dist/index-CxxiNSSH.d.cts +0 -2303
  64. /package/dist/{chunk-X5DAXBJI.js.map → chunk-SJVRUPJT.js.map} +0 -0
package/dist/index.cjs CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkEOFWSGLUcjs = require('./chunk-EOFWSGLU.cjs');
7
+ var _chunkTJJFKKH2cjs = require('./chunk-TJJFKKH2.cjs');
8
8
 
9
9
 
10
10
 
@@ -27,10 +27,10 @@ var _chunkEOFWSGLUcjs = require('./chunk-EOFWSGLU.cjs');
27
27
 
28
28
 
29
29
 
30
+ var _chunk2JT2WUQ2cjs = require('./chunk-2JT2WUQ2.cjs');
30
31
 
31
32
 
32
33
 
33
- var _chunk2CV6NU32cjs = require('./chunk-2CV6NU32.cjs');
34
34
 
35
35
 
36
36
 
@@ -46,10 +46,10 @@ var _chunk2CV6NU32cjs = require('./chunk-2CV6NU32.cjs');
46
46
 
47
47
 
48
48
 
49
+ var _chunkW5KB3DNTcjs = require('./chunk-W5KB3DNT.cjs');
49
50
 
50
51
 
51
52
 
52
- var _chunkOPMY2MNScjs = require('./chunk-OPMY2MNS.cjs');
53
53
 
54
54
 
55
55
 
@@ -71,10 +71,10 @@ var _chunkOPMY2MNScjs = require('./chunk-OPMY2MNS.cjs');
71
71
 
72
72
 
73
73
 
74
+ var _chunkVSH7ECQLcjs = require('./chunk-VSH7ECQL.cjs');
74
75
 
75
76
 
76
77
 
77
- var _chunkWQVZPIN7cjs = require('./chunk-WQVZPIN7.cjs');
78
78
 
79
79
 
80
80
 
@@ -118,49 +118,7 @@ var _chunkWQVZPIN7cjs = require('./chunk-WQVZPIN7.cjs');
118
118
 
119
119
 
120
120
 
121
-
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
-
130
-
131
-
132
-
133
-
134
-
135
-
136
-
137
-
138
-
139
-
140
-
141
-
142
-
143
-
144
-
145
-
146
-
147
-
148
-
149
-
150
-
151
-
152
-
153
-
154
-
155
-
156
-
157
-
158
-
159
-
160
-
161
-
162
-
163
- var _chunkD4TOPSHVcjs = require('./chunk-D4TOPSHV.cjs');
121
+ var _chunkDSDXL3JOcjs = require('./chunk-DSDXL3JO.cjs');
164
122
 
165
123
  // src/content-hash.ts
166
124
  function canonicalJson(value, seen = /* @__PURE__ */ new Set()) {
@@ -723,14 +681,14 @@ function frozenScoring(policy) {
723
681
  if (policy === void 0 || policy === null) {
724
682
  return void 0;
725
683
  }
726
- const checked = _chunkWQVZPIN7cjs.validateItemScoringPolicy.call(void 0, policy);
684
+ const checked = _chunkVSH7ECQLcjs.validateItemScoringPolicy.call(void 0, policy);
727
685
  if (!checked.success) {
728
686
  const first = checked.issues[0];
729
687
  throw new Error(
730
688
  `planAttempt: the scoring policy is not one to record \u2014 ${_nullishCoalesce(_optionalChain([first, 'optionalAccess', _24 => _24.message]), () => ( "invalid"))}` + (checked.issues.length > 1 ? ` (and ${checked.issues.length - 1} more)` : "")
731
689
  );
732
690
  }
733
- return _chunkWQVZPIN7cjs.resolveItemScoringPolicy.call(void 0, checked.data);
691
+ return _chunkVSH7ECQLcjs.resolveItemScoringPolicy.call(void 0, checked.data);
734
692
  }
735
693
  function missingOutcome(slot, policy) {
736
694
  if (typeof policy === "function") {
@@ -884,22 +842,22 @@ function createInteractiveVideoDraft(context) {
884
842
  };
885
843
  }
886
844
  function validateItemGroupDraft(draft) {
887
- return _chunkD4TOPSHVcjs.withValidationScope.call(void 0, () => validateItemGroupDraftInScope(draft));
845
+ return _chunkDSDXL3JOcjs.withValidationScope.call(void 0, () => validateItemGroupDraftInScope(draft));
888
846
  }
889
847
  function validateItemGroupDraftInScope(draft) {
890
848
  const issues = [];
891
- if (!_chunkD4TOPSHVcjs.isRecord.call(void 0, draft)) {
849
+ if (!_chunkDSDXL3JOcjs.isRecord.call(void 0, draft)) {
892
850
  issues.push(
893
- _chunkD4TOPSHVcjs.issue.call(void 0, "ig_not_an_object", [], "A group must be an object with a stimulus and its items.")
851
+ _chunkDSDXL3JOcjs.issue.call(void 0, "ig_not_an_object", [], "A group must be an object with a stimulus and its items.")
894
852
  );
895
853
  return { status: "invalid", issues };
896
854
  }
897
855
  issues.push(...checkGroupIdentity(draft));
898
- if (_chunkD4TOPSHVcjs.isRecord.call(void 0, draft.stimulus)) {
856
+ if (_chunkDSDXL3JOcjs.isRecord.call(void 0, draft.stimulus)) {
899
857
  issues.push(...checkStimulus(draft.stimulus));
900
- } else if (_chunkD4TOPSHVcjs.isUnset.call(void 0, draft.stimulus)) {
858
+ } else if (_chunkDSDXL3JOcjs.isUnset.call(void 0, draft.stimulus)) {
901
859
  issues.push(
902
- _chunkD4TOPSHVcjs.issue.call(void 0,
860
+ _chunkDSDXL3JOcjs.issue.call(void 0,
903
861
  "ig_stimulus_required",
904
862
  ["stimulus"],
905
863
  "Add the passage, recording or image the questions are about."
@@ -910,26 +868,26 @@ function validateItemGroupDraftInScope(draft) {
910
868
  if (draft.timeline !== void 0 && draft.timeline !== null) {
911
869
  issues.push(...checkTimeline(draft));
912
870
  }
913
- const captions = _chunkD4TOPSHVcjs.groupCaptionsField.call(void 0, draft, (captionsUrl) => !_chunkD4TOPSHVcjs.isUnwritten.call(void 0, captionsUrl));
871
+ const captions = _chunkDSDXL3JOcjs.groupCaptionsField.call(void 0, draft, (captionsUrl) => !_chunkDSDXL3JOcjs.isUnwritten.call(void 0, captionsUrl));
914
872
  if (captions !== void 0) {
915
873
  issues.push(
916
- _chunkD4TOPSHVcjs.issue.call(void 0,
874
+ _chunkDSDXL3JOcjs.issue.call(void 0,
917
875
  "dc_captions_not_allowed",
918
876
  ["stimulus", "media", captions],
919
- _chunkD4TOPSHVcjs.GROUP_CAPTIONS_REVEAL_DICTATION
877
+ _chunkDSDXL3JOcjs.GROUP_CAPTIONS_REVEAL_DICTATION
920
878
  )
921
879
  );
922
880
  }
923
- const parsed = _chunk2CV6NU32cjs.ItemGroupSchema.safeParse(draft, { reportInput: true });
881
+ const parsed = _chunk2JT2WUQ2cjs.ItemGroupSchema.safeParse(draft, { reportInput: true });
924
882
  if (!parsed.success) {
925
883
  for (const schemaIssue of parsed.error.issues) {
926
884
  const path = schemaIssue.path.map(String);
927
- if (issues.some((known) => _chunkD4TOPSHVcjs.covers.call(void 0, known.path, path))) {
885
+ if (issues.some((known) => _chunkDSDXL3JOcjs.covers.call(void 0, known.path, path))) {
928
886
  continue;
929
887
  }
930
- if (path.length > 0 && _chunkD4TOPSHVcjs.refusesEmpty.call(void 0, draft, schemaIssue)) {
888
+ if (path.length > 0 && _chunkDSDXL3JOcjs.refusesEmpty.call(void 0, draft, schemaIssue)) {
931
889
  issues.push(
932
- _chunkD4TOPSHVcjs.issue.call(void 0,
890
+ _chunkDSDXL3JOcjs.issue.call(void 0,
933
891
  "null_not_allowed",
934
892
  path,
935
893
  "This field cannot be null. Leave it out if it is optional, or give it a value."
@@ -945,7 +903,7 @@ function validateItemGroupDraftInScope(draft) {
945
903
  });
946
904
  }
947
905
  }
948
- const stored = _chunk2CV6NU32cjs.validateItemGroup.call(void 0, draft);
906
+ const stored = _chunk2JT2WUQ2cjs.validateItemGroup.call(void 0, draft);
949
907
  if (issues.length === 0 && stored.success) {
950
908
  return { status: "complete", data: stored.data, issues };
951
909
  }
@@ -960,21 +918,21 @@ function validateItemGroupDraftInScope(draft) {
960
918
  function checkTimeline(draft) {
961
919
  const issues = [];
962
920
  const timeline = draft.timeline;
963
- if (!_chunkD4TOPSHVcjs.isRecord.call(void 0, timeline)) {
921
+ if (!_chunkDSDXL3JOcjs.isRecord.call(void 0, timeline)) {
964
922
  return issues;
965
923
  }
966
- const stimulus = _chunkD4TOPSHVcjs.isRecord.call(void 0, draft.stimulus) ? draft.stimulus : void 0;
967
- if (stimulus !== void 0 && !_chunkD4TOPSHVcjs.isUnwritten.call(void 0, stimulus.kind) && stimulus.kind !== "video") {
924
+ const stimulus = _chunkDSDXL3JOcjs.isRecord.call(void 0, draft.stimulus) ? draft.stimulus : void 0;
925
+ if (stimulus !== void 0 && !_chunkDSDXL3JOcjs.isUnwritten.call(void 0, stimulus.kind) && stimulus.kind !== "video") {
968
926
  issues.push(
969
- _chunkD4TOPSHVcjs.issue.call(void 0,
927
+ _chunkDSDXL3JOcjs.issue.call(void 0,
970
928
  "ig_timeline_stimulus_kind",
971
929
  ["stimulus", "kind"],
972
930
  "An interactive video needs a video: quizzes open at moments of it."
973
931
  )
974
932
  );
975
- } else if (stimulus !== void 0 && _chunkD4TOPSHVcjs.isRecord.call(void 0, stimulus.media) && !_chunkD4TOPSHVcjs.isUnwritten.call(void 0, stimulus.media.type) && stimulus.media.type !== "video") {
933
+ } else if (stimulus !== void 0 && _chunkDSDXL3JOcjs.isRecord.call(void 0, stimulus.media) && !_chunkDSDXL3JOcjs.isUnwritten.call(void 0, stimulus.media.type) && stimulus.media.type !== "video") {
976
934
  issues.push(
977
- _chunkD4TOPSHVcjs.issue.call(void 0,
935
+ _chunkDSDXL3JOcjs.issue.call(void 0,
978
936
  "ig_timeline_stimulus_kind",
979
937
  ["stimulus", "media", "type"],
980
938
  "Upload a video file. An embedded player from another site cannot be paused when a quiz opens."
@@ -983,7 +941,7 @@ function checkTimeline(draft) {
983
941
  }
984
942
  if (draft.shuffle === "within-group") {
985
943
  issues.push(
986
- _chunkD4TOPSHVcjs.issue.call(void 0,
944
+ _chunkDSDXL3JOcjs.issue.call(void 0,
987
945
  "ig_timeline_shuffle",
988
946
  ["shuffle"],
989
947
  "The questions of an interactive video appear in the order their quizzes open, so they cannot be shuffled."
@@ -993,25 +951,25 @@ function checkTimeline(draft) {
993
951
  const items = Array.isArray(draft.items) ? draft.items : [];
994
952
  const itemIndexById = /* @__PURE__ */ new Map();
995
953
  items.forEach((item, index) => {
996
- if (!_chunkD4TOPSHVcjs.isRecord.call(void 0, item)) {
954
+ if (!_chunkDSDXL3JOcjs.isRecord.call(void 0, item)) {
997
955
  return;
998
956
  }
999
957
  if (typeof item.id === "string" && item.id !== "") {
1000
958
  itemIndexById.set(item.id, index);
1001
959
  }
1002
960
  const type = item.type;
1003
- if (typeof type === "string" && type !== "" && type !== "item-group" && !_chunk2CV6NU32cjs.isInteractiveVideoItemType.call(void 0, type) && _chunkD4TOPSHVcjs.getActivityTypeDescriptor.call(void 0, type) !== void 0) {
961
+ if (typeof type === "string" && type !== "" && type !== "item-group" && !_chunk2JT2WUQ2cjs.isInteractiveVideoItemType.call(void 0, type) && _chunkDSDXL3JOcjs.getActivityTypeDescriptor.call(void 0, type) !== void 0) {
1004
962
  issues.push(
1005
- _chunkD4TOPSHVcjs.issue.call(void 0,
963
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1006
964
  "ig_timeline_item_type",
1007
965
  ["items", index, "type"],
1008
- `An interactive video can hold ${_chunk2CV6NU32cjs.INTERACTIVE_VIDEO_ITEM_TYPES.join(", ")} questions only.`
966
+ `An interactive video can hold ${_chunk2JT2WUQ2cjs.INTERACTIVE_VIDEO_ITEM_TYPES.join(", ")} questions only.`
1009
967
  )
1010
968
  );
1011
969
  }
1012
- if (type === "dictation" && _chunkD4TOPSHVcjs.isUnset.call(void 0, item.media)) {
970
+ if (type === "dictation" && _chunkDSDXL3JOcjs.isUnset.call(void 0, item.media)) {
1013
971
  issues.push(
1014
- _chunkD4TOPSHVcjs.issue.call(void 0,
972
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1015
973
  "ig_timeline_dictation_media",
1016
974
  ["items", index, "media"],
1017
975
  "Add the recording this dictation plays: inside a video it cannot play the video."
@@ -1023,7 +981,7 @@ function checkTimeline(draft) {
1023
981
  const quizIds = /* @__PURE__ */ new Set();
1024
982
  const placed = /* @__PURE__ */ new Set();
1025
983
  cues.forEach((cue, cueIndex) => {
1026
- if (!_chunkD4TOPSHVcjs.isRecord.call(void 0, cue)) {
984
+ if (!_chunkDSDXL3JOcjs.isRecord.call(void 0, cue)) {
1027
985
  return;
1028
986
  }
1029
987
  const at = (field, ...rest) => [
@@ -1033,19 +991,19 @@ function checkTimeline(draft) {
1033
991
  field,
1034
992
  ...rest
1035
993
  ];
1036
- if (_chunkD4TOPSHVcjs.isMissingId.call(void 0, cue.id)) {
1037
- issues.push(_chunkD4TOPSHVcjs.issue.call(void 0, "ig_timeline_quiz_id_required", at("id"), "This quiz has no id."));
994
+ if (_chunkDSDXL3JOcjs.isMissingId.call(void 0, cue.id)) {
995
+ issues.push(_chunkDSDXL3JOcjs.issue.call(void 0, "ig_timeline_quiz_id_required", at("id"), "This quiz has no id."));
1038
996
  } else if (typeof cue.id === "string") {
1039
997
  if (quizIds.has(cue.id)) {
1040
998
  issues.push(
1041
- _chunkD4TOPSHVcjs.issue.call(void 0, "ig_timeline_quiz_id_duplicate", at("id"), `Two quizzes share the id "${cue.id}".`)
999
+ _chunkDSDXL3JOcjs.issue.call(void 0, "ig_timeline_quiz_id_duplicate", at("id"), `Two quizzes share the id "${cue.id}".`)
1042
1000
  );
1043
1001
  }
1044
1002
  quizIds.add(cue.id);
1045
1003
  }
1046
- if (_chunkD4TOPSHVcjs.isUnset.call(void 0, cue.at)) {
1004
+ if (_chunkDSDXL3JOcjs.isUnset.call(void 0, cue.at)) {
1047
1005
  issues.push(
1048
- _chunkD4TOPSHVcjs.issue.call(void 0,
1006
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1049
1007
  "ig_timeline_quiz_time_required",
1050
1008
  at("at"),
1051
1009
  "Choose when in the video this quiz opens."
@@ -1053,16 +1011,16 @@ function checkTimeline(draft) {
1053
1011
  );
1054
1012
  } else if (typeof cue.at !== "number" || !Number.isFinite(cue.at) || cue.at < 0) {
1055
1013
  issues.push(
1056
- _chunkD4TOPSHVcjs.issue.call(void 0,
1014
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1057
1015
  "ig_timeline_quiz_time_invalid",
1058
1016
  at("at"),
1059
1017
  "A quiz opens at a number of seconds, 0 or more."
1060
1018
  )
1061
1019
  );
1062
1020
  }
1063
- if (_chunkD4TOPSHVcjs.isUnset.call(void 0, cue.itemIds) || Array.isArray(cue.itemIds) && cue.itemIds.length === 0) {
1021
+ if (_chunkDSDXL3JOcjs.isUnset.call(void 0, cue.itemIds) || Array.isArray(cue.itemIds) && cue.itemIds.length === 0) {
1064
1022
  issues.push(
1065
- _chunkD4TOPSHVcjs.issue.call(void 0, "ig_timeline_quiz_empty", at("itemIds"), "Add at least one question to this quiz.")
1023
+ _chunkDSDXL3JOcjs.issue.call(void 0, "ig_timeline_quiz_empty", at("itemIds"), "Add at least one question to this quiz.")
1066
1024
  );
1067
1025
  return;
1068
1026
  }
@@ -1075,7 +1033,7 @@ function checkTimeline(draft) {
1075
1033
  }
1076
1034
  if (!itemIndexById.has(itemId)) {
1077
1035
  issues.push(
1078
- _chunkD4TOPSHVcjs.issue.call(void 0,
1036
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1079
1037
  "ig_timeline_quiz_unknown_item",
1080
1038
  at("itemIds", position),
1081
1039
  `This quiz names a question that is not in the video ("${itemId}").`
@@ -1083,7 +1041,7 @@ function checkTimeline(draft) {
1083
1041
  );
1084
1042
  } else if (placed.has(itemId)) {
1085
1043
  issues.push(
1086
- _chunkD4TOPSHVcjs.issue.call(void 0,
1044
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1087
1045
  "ig_timeline_item_duplicate",
1088
1046
  at("itemIds", position),
1089
1047
  "This question is already in a quiz: each question belongs to one quiz."
@@ -1096,7 +1054,7 @@ function checkTimeline(draft) {
1096
1054
  for (const [itemId, index] of itemIndexById) {
1097
1055
  if (!placed.has(itemId)) {
1098
1056
  issues.push(
1099
- _chunkD4TOPSHVcjs.issue.call(void 0,
1057
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1100
1058
  "ig_timeline_item_unplaced",
1101
1059
  ["items", index],
1102
1060
  "Add this question to a quiz, or the video never shows it."
@@ -1107,12 +1065,12 @@ function checkTimeline(draft) {
1107
1065
  const chapters = Array.isArray(timeline.chapters) ? timeline.chapters : [];
1108
1066
  let previousAt;
1109
1067
  chapters.forEach((chapter, index) => {
1110
- if (!_chunkD4TOPSHVcjs.isRecord.call(void 0, chapter)) {
1068
+ if (!_chunkDSDXL3JOcjs.isRecord.call(void 0, chapter)) {
1111
1069
  return;
1112
1070
  }
1113
- if (_chunkD4TOPSHVcjs.isUnwritten.call(void 0, chapter.title)) {
1071
+ if (_chunkDSDXL3JOcjs.isUnwritten.call(void 0, chapter.title)) {
1114
1072
  issues.push(
1115
- _chunkD4TOPSHVcjs.issue.call(void 0,
1073
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1116
1074
  "ig_timeline_chapter_title",
1117
1075
  ["timeline", "chapters", index, "title"],
1118
1076
  "Give this chapter a title."
@@ -1122,7 +1080,7 @@ function checkTimeline(draft) {
1122
1080
  if (typeof chapter.at === "number" && Number.isFinite(chapter.at)) {
1123
1081
  if (previousAt !== void 0 && chapter.at <= previousAt) {
1124
1082
  issues.push(
1125
- _chunkD4TOPSHVcjs.issue.call(void 0,
1083
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1126
1084
  "ig_timeline_chapter_order",
1127
1085
  ["timeline", "chapters", index, "at"],
1128
1086
  "Chapters must start in order, each after the one before it."
@@ -1138,7 +1096,7 @@ function checkGroupIdentity(draft) {
1138
1096
  const issues = [];
1139
1097
  if (draft.schemaVersion !== "1.0") {
1140
1098
  issues.push(
1141
- _chunkD4TOPSHVcjs.issue.call(void 0,
1099
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1142
1100
  "schema_version_invalid",
1143
1101
  ["schemaVersion"],
1144
1102
  'The draft must have schemaVersion "1.0". A draft from createItemGroupDraft has it.'
@@ -1146,14 +1104,14 @@ function checkGroupIdentity(draft) {
1146
1104
  );
1147
1105
  }
1148
1106
  if (draft.type !== "item-group") {
1149
- issues.push(_chunkD4TOPSHVcjs.issue.call(void 0, "type_mismatch", ["type"], `The draft's type must be "item-group".`));
1107
+ issues.push(_chunkDSDXL3JOcjs.issue.call(void 0, "type_mismatch", ["type"], `The draft's type must be "item-group".`));
1150
1108
  }
1151
- if (_chunkD4TOPSHVcjs.isMissingId.call(void 0, draft.id)) {
1152
- issues.push(_chunkD4TOPSHVcjs.issue.call(void 0, "id_required", ["id"], "The group has no id."));
1109
+ if (_chunkDSDXL3JOcjs.isMissingId.call(void 0, draft.id)) {
1110
+ issues.push(_chunkDSDXL3JOcjs.issue.call(void 0, "id_required", ["id"], "The group has no id."));
1153
1111
  }
1154
- if (!_chunkD4TOPSHVcjs.isUnset.call(void 0, draft.shuffle) && draft.shuffle !== "none" && draft.shuffle !== "within-group") {
1112
+ if (!_chunkDSDXL3JOcjs.isUnset.call(void 0, draft.shuffle) && draft.shuffle !== "none" && draft.shuffle !== "within-group") {
1155
1113
  issues.push(
1156
- _chunkD4TOPSHVcjs.issue.call(void 0,
1114
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1157
1115
  "ig_shuffle_invalid",
1158
1116
  ["shuffle"],
1159
1117
  'Shuffling is either "none" or "within-group". Leave it out to keep the authored order.'
@@ -1172,13 +1130,13 @@ var MEDIA_FOR_KIND = {
1172
1130
  function checkStimulus(stimulus) {
1173
1131
  const issues = [];
1174
1132
  const at = (...rest) => ["stimulus", ...rest];
1175
- if (_chunkD4TOPSHVcjs.isMissingId.call(void 0, stimulus.id)) {
1176
- issues.push(_chunkD4TOPSHVcjs.issue.call(void 0, "ig_stimulus_id_required", at("id"), "The stimulus has no id."));
1133
+ if (_chunkDSDXL3JOcjs.isMissingId.call(void 0, stimulus.id)) {
1134
+ issues.push(_chunkDSDXL3JOcjs.issue.call(void 0, "ig_stimulus_id_required", at("id"), "The stimulus has no id."));
1177
1135
  }
1178
1136
  const kind = stimulus.kind;
1179
- if (_chunkD4TOPSHVcjs.isUnwritten.call(void 0, kind)) {
1137
+ if (_chunkDSDXL3JOcjs.isUnwritten.call(void 0, kind)) {
1180
1138
  issues.push(
1181
- _chunkD4TOPSHVcjs.issue.call(void 0,
1139
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1182
1140
  "ig_stimulus_kind_required",
1183
1141
  at("kind"),
1184
1142
  "Choose what the questions are about: a text, a recording, a video, an image, or a mix."
@@ -1187,71 +1145,71 @@ function checkStimulus(stimulus) {
1187
1145
  } else if (typeof kind !== "string" || !KINDS.has(kind)) {
1188
1146
  if (typeof kind === "string") {
1189
1147
  issues.push(
1190
- _chunkD4TOPSHVcjs.issue.call(void 0,
1148
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1191
1149
  "ig_stimulus_kind_invalid",
1192
1150
  at("kind"),
1193
1151
  `"${kind}" is not a stimulus kind. Use text, audio, video, image or mixed.`
1194
1152
  )
1195
1153
  );
1196
1154
  }
1197
- if (_chunkD4TOPSHVcjs.isRecord.call(void 0, stimulus.media)) {
1198
- issues.push(..._chunkD4TOPSHVcjs.checkMedia.call(void 0, stimulus.media, at("media")));
1155
+ if (_chunkDSDXL3JOcjs.isRecord.call(void 0, stimulus.media)) {
1156
+ issues.push(..._chunkDSDXL3JOcjs.checkMedia.call(void 0, stimulus.media, at("media")));
1199
1157
  }
1200
1158
  return issues;
1201
1159
  }
1202
1160
  const hasBody = typeof stimulus.body === "string" && stimulus.body.trim() !== "";
1203
- const htmlPresent = !_chunkD4TOPSHVcjs.isUnset.call(void 0, stimulus.bodyHtml);
1161
+ const htmlPresent = !_chunkDSDXL3JOcjs.isUnset.call(void 0, stimulus.bodyHtml);
1204
1162
  if (!hasBody && (kind === "text" || kind === "mixed" || htmlPresent)) {
1205
1163
  issues.push(
1206
- _chunkD4TOPSHVcjs.issue.call(void 0,
1164
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1207
1165
  "ig_stimulus_body_required",
1208
1166
  at("body"),
1209
- _chunkD4TOPSHVcjs.isUnwritten.call(void 0, stimulus.bodyHtml) ? "Write the passage." : "Write the passage as plain text too. The rich-text version is shown only where a sanitiser is supplied."
1167
+ _chunkDSDXL3JOcjs.isUnwritten.call(void 0, stimulus.bodyHtml) ? "Write the passage." : "Write the passage as plain text too. The rich-text version is shown only where a sanitiser is supplied."
1210
1168
  )
1211
1169
  );
1212
1170
  }
1213
- if (kind !== "text" && _chunkD4TOPSHVcjs.isUnset.call(void 0, stimulus.media)) {
1171
+ if (kind !== "text" && _chunkDSDXL3JOcjs.isUnset.call(void 0, stimulus.media)) {
1214
1172
  issues.push(
1215
- _chunkD4TOPSHVcjs.issue.call(void 0, "ig_stimulus_media_required", at("media"), "Add the recording, video or image.")
1173
+ _chunkDSDXL3JOcjs.issue.call(void 0, "ig_stimulus_media_required", at("media"), "Add the recording, video or image.")
1216
1174
  );
1217
- } else if (_chunkD4TOPSHVcjs.isRecord.call(void 0, stimulus.media)) {
1175
+ } else if (_chunkDSDXL3JOcjs.isRecord.call(void 0, stimulus.media)) {
1218
1176
  const allowed = MEDIA_FOR_KIND[kind];
1219
1177
  const mediaType = stimulus.media.type;
1220
1178
  if (allowed !== void 0 && typeof mediaType === "string" && !allowed.includes(mediaType)) {
1221
1179
  issues.push(
1222
- _chunkD4TOPSHVcjs.issue.call(void 0,
1180
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1223
1181
  "ig_stimulus_media_kind",
1224
1182
  at("media", "type"),
1225
1183
  `A "${kind}" stimulus cannot carry ${mediaType} media. Use ${allowed.join(" or ")}.`
1226
1184
  )
1227
1185
  );
1228
1186
  }
1229
- issues.push(..._chunkD4TOPSHVcjs.checkMedia.call(void 0, stimulus.media, at("media")));
1187
+ issues.push(..._chunkDSDXL3JOcjs.checkMedia.call(void 0, stimulus.media, at("media")));
1230
1188
  }
1231
1189
  return issues;
1232
1190
  }
1233
1191
  function checkItems(draft) {
1234
1192
  const issues = [];
1235
- const items = _chunkD4TOPSHVcjs.isUnset.call(void 0, draft.items) ? [] : draft.items;
1193
+ const items = _chunkDSDXL3JOcjs.isUnset.call(void 0, draft.items) ? [] : draft.items;
1236
1194
  if (!Array.isArray(items)) {
1237
1195
  return issues;
1238
1196
  }
1239
1197
  if (items.length === 0) {
1240
1198
  issues.push(
1241
- _chunkD4TOPSHVcjs.issue.call(void 0, "ig_items_required", ["items"], "Add at least one question about this material.")
1199
+ _chunkDSDXL3JOcjs.issue.call(void 0, "ig_items_required", ["items"], "Add at least one question about this material.")
1242
1200
  );
1243
1201
  return issues;
1244
1202
  }
1245
1203
  const seen = /* @__PURE__ */ new Set();
1246
1204
  const repeated = /* @__PURE__ */ new Set();
1247
1205
  for (const [index, item] of items.entries()) {
1248
- if (!_chunkD4TOPSHVcjs.isRecord.call(void 0, item)) {
1206
+ if (!_chunkDSDXL3JOcjs.isRecord.call(void 0, item)) {
1249
1207
  continue;
1250
1208
  }
1251
1209
  const ordinal = index + 1;
1252
- if (_chunkD4TOPSHVcjs.isMissingId.call(void 0, item.id)) {
1210
+ if (_chunkDSDXL3JOcjs.isMissingId.call(void 0, item.id)) {
1253
1211
  issues.push(
1254
- _chunkD4TOPSHVcjs.issue.call(void 0, "ig_item_id_required", ["items", index, "id"], `Question ${ordinal} has no id.`)
1212
+ _chunkDSDXL3JOcjs.issue.call(void 0, "ig_item_id_required", ["items", index, "id"], `Question ${ordinal} has no id.`)
1255
1213
  );
1256
1214
  } else if (typeof item.id === "string") {
1257
1215
  if (seen.has(item.id)) {
@@ -1261,7 +1219,7 @@ function checkItems(draft) {
1261
1219
  }
1262
1220
  if (item.type === "item-group") {
1263
1221
  issues.push(
1264
- _chunkD4TOPSHVcjs.issue.call(void 0,
1222
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1265
1223
  "ig_item_nested_group",
1266
1224
  ["items", index, "type"],
1267
1225
  "Groups do not nest: every item must be an activity."
@@ -1269,9 +1227,9 @@ function checkItems(draft) {
1269
1227
  );
1270
1228
  continue;
1271
1229
  }
1272
- if (_chunkD4TOPSHVcjs.isUnwritten.call(void 0, item.type)) {
1230
+ if (_chunkDSDXL3JOcjs.isUnwritten.call(void 0, item.type)) {
1273
1231
  issues.push(
1274
- _chunkD4TOPSHVcjs.issue.call(void 0,
1232
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1275
1233
  "ig_item_type_required",
1276
1234
  ["items", index, "type"],
1277
1235
  `Choose what kind of question ${ordinal} is.`
@@ -1286,11 +1244,11 @@ function checkItems(draft) {
1286
1244
  try {
1287
1245
  result = validateDraft(item.type, item);
1288
1246
  } catch (error) {
1289
- if (!(error instanceof _chunkD4TOPSHVcjs.UnknownActivityTypeError) || error.activityType !== item.type) {
1247
+ if (!(error instanceof _chunkDSDXL3JOcjs.UnknownActivityTypeError) || error.activityType !== item.type) {
1290
1248
  throw error;
1291
1249
  }
1292
1250
  issues.push(
1293
- _chunkD4TOPSHVcjs.issue.call(void 0,
1251
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1294
1252
  "ig_item_type_unknown",
1295
1253
  ["items", index, "type"],
1296
1254
  `"${item.type}" is not a registered activity type.`
@@ -1304,7 +1262,7 @@ function checkItems(draft) {
1304
1262
  }
1305
1263
  for (const id of repeated) {
1306
1264
  issues.push(
1307
- _chunkD4TOPSHVcjs.issue.call(void 0, "ig_item_id_duplicate", ["items"], `More than one question has the id "${id}".`)
1265
+ _chunkDSDXL3JOcjs.issue.call(void 0, "ig_item_id_duplicate", ["items"], `More than one question has the id "${id}".`)
1308
1266
  );
1309
1267
  }
1310
1268
  return issues;
@@ -1312,30 +1270,32 @@ function checkItems(draft) {
1312
1270
 
1313
1271
  // src/authoring/index.ts
1314
1272
  function validateDraft(type, draft) {
1315
- return _chunkD4TOPSHVcjs.withValidationScope.call(void 0, () => validateDraftInScope(type, draft));
1273
+ return _chunkDSDXL3JOcjs.withValidationScope.call(void 0, () => validateDraftInScope(type, draft));
1316
1274
  }
1317
1275
  function validateDraftInScope(type, draft) {
1318
- const descriptor = _chunkD4TOPSHVcjs.getActivityTypeDescriptor.call(void 0, type);
1276
+ const descriptor = _chunkDSDXL3JOcjs.getActivityTypeDescriptor.call(void 0, type);
1319
1277
  if (descriptor === void 0) {
1320
- throw new (0, _chunkD4TOPSHVcjs.UnknownActivityTypeError)(String(type));
1278
+ throw new (0, _chunkDSDXL3JOcjs.UnknownActivityTypeError)(String(type));
1321
1279
  }
1322
- const reported = _chunkD4TOPSHVcjs.isRecord.call(void 0, draft) && _optionalChain([descriptor, 'access', _25 => _25.authoring, 'optionalAccess', _26 => _26.checkDraft]) !== void 0 ? descriptor.authoring.checkDraft(draft).map(normalise) : [];
1280
+ const reported = _chunkDSDXL3JOcjs.isRecord.call(void 0, draft) && _optionalChain([descriptor, 'access', _25 => _25.authoring, 'optionalAccess', _26 => _26.checkDraft]) !== void 0 ? descriptor.authoring.checkDraft(draft).map(normalise) : [];
1323
1281
  const issues = [...reported];
1324
- const parsed = descriptor.schema.safeParse(draft, { reportInput: true });
1282
+ const parsed = _chunkDSDXL3JOcjs.readSchema.call(void 0, descriptor.schema, draft, `Activity type "${descriptor.type}"`, {
1283
+ reportInput: true
1284
+ });
1325
1285
  if (!parsed.success) {
1326
- const covered = _chunkD4TOPSHVcjs.coveredPathsOf.call(void 0, reported);
1286
+ const covered = _chunkDSDXL3JOcjs.coveredPathsOf.call(void 0, reported);
1327
1287
  const reportedEmpty = /* @__PURE__ */ new Set();
1328
- for (const schemaIssue of parsed.error.issues) {
1288
+ for (const schemaIssue of parsed.issues) {
1329
1289
  const path = schemaIssue.path.map(String);
1330
- if (covered.has(_chunkD4TOPSHVcjs.pathKey.call(void 0, path))) {
1290
+ if (covered.has(_chunkDSDXL3JOcjs.pathKey.call(void 0, path))) {
1331
1291
  continue;
1332
1292
  }
1333
- if (path.length > 0 && _chunkD4TOPSHVcjs.refusesEmpty.call(void 0, draft, schemaIssue)) {
1293
+ if (path.length > 0 && _chunkDSDXL3JOcjs.refusesEmpty.call(void 0, draft, schemaIssue)) {
1334
1294
  const key = JSON.stringify(path);
1335
1295
  if (!reportedEmpty.has(key)) {
1336
1296
  reportedEmpty.add(key);
1337
1297
  issues.push(
1338
- _chunkD4TOPSHVcjs.issue.call(void 0,
1298
+ _chunkDSDXL3JOcjs.issue.call(void 0,
1339
1299
  "null_not_allowed",
1340
1300
  path,
1341
1301
  typeof schemaIssue.path.at(-1) === "number" ? "This entry has no value. Remove it, or fill it in." : "This field cannot be null. Leave it out if it is optional, or give it a value."
@@ -1359,9 +1319,9 @@ function validateDraftInScope(type, draft) {
1359
1319
  return { status: invalid ? "invalid" : "incomplete", issues };
1360
1320
  }
1361
1321
  function createDraft(type, context) {
1362
- const descriptor = _chunkD4TOPSHVcjs.getActivityTypeDescriptor.call(void 0, type);
1322
+ const descriptor = _chunkDSDXL3JOcjs.getActivityTypeDescriptor.call(void 0, type);
1363
1323
  if (descriptor === void 0) {
1364
- throw new (0, _chunkD4TOPSHVcjs.UnknownActivityTypeError)(String(type));
1324
+ throw new (0, _chunkDSDXL3JOcjs.UnknownActivityTypeError)(String(type));
1365
1325
  }
1366
1326
  const create = _optionalChain([descriptor, 'access', _27 => _27.authoring, 'optionalAccess', _28 => _28.createDraft]);
1367
1327
  if (create === void 0) {
@@ -1386,7 +1346,7 @@ function createDraft(type, context) {
1386
1346
  return create({ newId });
1387
1347
  }
1388
1348
  function normalise(found) {
1389
- const documented = Object.hasOwn(_chunkD4TOPSHVcjs.DRAFT_ISSUE_SEVERITY, found.code) ? _chunkD4TOPSHVcjs.DRAFT_ISSUE_SEVERITY[found.code] : void 0;
1349
+ const documented = Object.hasOwn(_chunkDSDXL3JOcjs.DRAFT_ISSUE_SEVERITY, found.code) ? _chunkDSDXL3JOcjs.DRAFT_ISSUE_SEVERITY[found.code] : void 0;
1390
1350
  return {
1391
1351
  ...found,
1392
1352
  path: found.path.map(String),
@@ -1450,9 +1410,9 @@ function redactValue(value, policy, reveal) {
1450
1410
  }
1451
1411
  function redact(data, options = {}) {
1452
1412
  const reveal = _nullishCoalesce(options.reveal, () => ( "none"));
1453
- const descriptor = _chunkD4TOPSHVcjs.getActivityTypeDescriptor.call(void 0, data.type);
1413
+ const descriptor = _chunkDSDXL3JOcjs.getActivityTypeDescriptor.call(void 0, data.type);
1454
1414
  if (descriptor === void 0) {
1455
- throw new (0, _chunkD4TOPSHVcjs.UnknownActivityTypeError)(String(data.type));
1415
+ throw new (0, _chunkDSDXL3JOcjs.UnknownActivityTypeError)(String(data.type));
1456
1416
  }
1457
1417
  if (descriptor.fieldPolicy === void 0) {
1458
1418
  throw new Error(
@@ -1463,11 +1423,15 @@ function redact(data, options = {}) {
1463
1423
  const projected = redactValue(data, effectivePolicy, reveal);
1464
1424
  const result = { ...projected, redacted: true };
1465
1425
  if (reveal === "none" && descriptor.redactedSchema !== void 0) {
1466
- const parsed = descriptor.redactedSchema.safeParse(result);
1426
+ const parsed = _chunkDSDXL3JOcjs.readSchema.call(void 0,
1427
+ descriptor.redactedSchema,
1428
+ result,
1429
+ `Activity type "${descriptor.type}"`
1430
+ );
1467
1431
  if (!parsed.success) {
1468
- throw new (0, _chunkD4TOPSHVcjs.ActivitySchemaError)(
1432
+ throw new (0, _chunkDSDXL3JOcjs.ActivitySchemaError)(
1469
1433
  descriptor.type,
1470
- parsed.error.issues.map((issue2) => ({
1434
+ parsed.issues.map((issue2) => ({
1471
1435
  path: issue2.path.map(String),
1472
1436
  message: issue2.message,
1473
1437
  code: issue2.code
@@ -1479,13 +1443,13 @@ function redact(data, options = {}) {
1479
1443
  }
1480
1444
  function assertRedacted(data) {
1481
1445
  if (typeof data !== "object" || data === null) {
1482
- throw new (0, _chunkD4TOPSHVcjs.ActivitySchemaError)("unknown", [
1446
+ throw new (0, _chunkDSDXL3JOcjs.ActivitySchemaError)("unknown", [
1483
1447
  { path: [], message: "Redacted activity data must be an object.", code: "invalid_type" }
1484
1448
  ]);
1485
1449
  }
1486
1450
  const candidate = data;
1487
1451
  if (candidate.redacted !== true) {
1488
- throw new (0, _chunkD4TOPSHVcjs.ActivitySchemaError)(String(_nullishCoalesce(candidate.type, () => ( "unknown"))), [
1452
+ throw new (0, _chunkDSDXL3JOcjs.ActivitySchemaError)(String(_nullishCoalesce(candidate.type, () => ( "unknown"))), [
1489
1453
  {
1490
1454
  path: ["redacted"],
1491
1455
  message: "Missing redacted marker \u2014 this payload is not a redact() projection.",
@@ -1494,12 +1458,12 @@ function assertRedacted(data) {
1494
1458
  ]);
1495
1459
  }
1496
1460
  const type = typeof candidate.type === "string" ? candidate.type : "";
1497
- const descriptor = _chunkD4TOPSHVcjs.getActivityTypeDescriptor.call(void 0, type);
1461
+ const descriptor = _chunkDSDXL3JOcjs.getActivityTypeDescriptor.call(void 0, type);
1498
1462
  if (descriptor === void 0) {
1499
- throw new (0, _chunkD4TOPSHVcjs.UnknownActivityTypeError)(type);
1463
+ throw new (0, _chunkDSDXL3JOcjs.UnknownActivityTypeError)(type);
1500
1464
  }
1501
1465
  if (descriptor.redactedSchema === void 0) {
1502
- throw new (0, _chunkD4TOPSHVcjs.ActivitySchemaError)(descriptor.type, [
1466
+ throw new (0, _chunkDSDXL3JOcjs.ActivitySchemaError)(descriptor.type, [
1503
1467
  {
1504
1468
  path: [],
1505
1469
  message: `Activity type "${descriptor.type}" registers no redactedSchema; assertRedacted cannot prove this payload is learner-safe.`,
@@ -1507,11 +1471,15 @@ function assertRedacted(data) {
1507
1471
  }
1508
1472
  ]);
1509
1473
  }
1510
- const parsed = descriptor.redactedSchema.safeParse(candidate);
1474
+ const parsed = _chunkDSDXL3JOcjs.readSchema.call(void 0,
1475
+ descriptor.redactedSchema,
1476
+ candidate,
1477
+ `Activity type "${descriptor.type}"`
1478
+ );
1511
1479
  if (!parsed.success) {
1512
- throw new (0, _chunkD4TOPSHVcjs.ActivitySchemaError)(
1480
+ throw new (0, _chunkDSDXL3JOcjs.ActivitySchemaError)(
1513
1481
  descriptor.type,
1514
- parsed.error.issues.map((issue2) => ({
1482
+ parsed.issues.map((issue2) => ({
1515
1483
  path: issue2.path.map(String),
1516
1484
  message: issue2.message,
1517
1485
  code: issue2.code
@@ -1525,7 +1493,7 @@ var STIMULUS_FIELD_POLICY = {
1525
1493
  title: "public",
1526
1494
  body: "public",
1527
1495
  bodyHtml: "public",
1528
- media: _chunkD4TOPSHVcjs.MEDIA_FIELD_POLICY,
1496
+ media: _chunkDSDXL3JOcjs.MEDIA_FIELD_POLICY,
1529
1497
  locale: "public",
1530
1498
  attribution: "public",
1531
1499
  transcript: "author-only"
@@ -1569,9 +1537,9 @@ function redactItemGroup(group, options = {}) {
1569
1537
  redacted: true
1570
1538
  };
1571
1539
  if (reveal === "none") {
1572
- const parsed = _chunk2CV6NU32cjs.RedactedItemGroupSchema.safeParse(result);
1540
+ const parsed = _chunk2JT2WUQ2cjs.RedactedItemGroupSchema.safeParse(result);
1573
1541
  if (!parsed.success) {
1574
- throw new (0, _chunkD4TOPSHVcjs.ActivitySchemaError)(
1542
+ throw new (0, _chunkDSDXL3JOcjs.ActivitySchemaError)(
1575
1543
  "item-group",
1576
1544
  parsed.error.issues.map((issue2) => ({
1577
1545
  path: issue2.path.map(String),
@@ -1585,13 +1553,13 @@ function redactItemGroup(group, options = {}) {
1585
1553
  }
1586
1554
  function assertRedactedItemGroup(data) {
1587
1555
  if (typeof data !== "object" || data === null) {
1588
- throw new (0, _chunkD4TOPSHVcjs.ActivitySchemaError)("item-group", [
1556
+ throw new (0, _chunkDSDXL3JOcjs.ActivitySchemaError)("item-group", [
1589
1557
  { path: [], message: "Redacted item group must be an object.", code: "invalid_type" }
1590
1558
  ]);
1591
1559
  }
1592
1560
  const candidate = data;
1593
1561
  if (candidate.redacted !== true) {
1594
- throw new (0, _chunkD4TOPSHVcjs.ActivitySchemaError)("item-group", [
1562
+ throw new (0, _chunkDSDXL3JOcjs.ActivitySchemaError)("item-group", [
1595
1563
  {
1596
1564
  path: ["redacted"],
1597
1565
  message: "Missing redacted marker \u2014 this payload is not a redactItemGroup() projection.",
@@ -1599,9 +1567,9 @@ function assertRedactedItemGroup(data) {
1599
1567
  }
1600
1568
  ]);
1601
1569
  }
1602
- const parsed = _chunk2CV6NU32cjs.RedactedItemGroupSchema.safeParse(candidate);
1570
+ const parsed = _chunk2JT2WUQ2cjs.RedactedItemGroupSchema.safeParse(candidate);
1603
1571
  if (!parsed.success) {
1604
- throw new (0, _chunkD4TOPSHVcjs.ActivitySchemaError)(
1572
+ throw new (0, _chunkDSDXL3JOcjs.ActivitySchemaError)(
1605
1573
  "item-group",
1606
1574
  parsed.error.issues.map((issue2) => ({
1607
1575
  path: issue2.path.map(String),
@@ -1614,8 +1582,8 @@ function assertRedactedItemGroup(data) {
1614
1582
  try {
1615
1583
  assertRedacted(item);
1616
1584
  } catch (error) {
1617
- if (error instanceof _chunkD4TOPSHVcjs.ActivitySchemaError) {
1618
- throw new (0, _chunkD4TOPSHVcjs.ActivitySchemaError)(
1585
+ if (error instanceof _chunkDSDXL3JOcjs.ActivitySchemaError) {
1586
+ throw new (0, _chunkDSDXL3JOcjs.ActivitySchemaError)(
1619
1587
  "item-group",
1620
1588
  error.errors.map((issue2) => ({
1621
1589
  ...issue2,
@@ -1660,7 +1628,7 @@ function composeTimelineScore(entryKey, items, policy) {
1660
1628
  `composeTimelineScore: no scored item belongs to entry "${entryKey}". Pass the video's slotKey (or its position in the sequence), and the items of the attempt that holds it.`
1661
1629
  );
1662
1630
  }
1663
- return _chunkWQVZPIN7cjs.composeAssessmentScore.call(void 0, [{ id: entryKey, weight: 1, items: own }], policy);
1631
+ return _chunkVSH7ECQLcjs.composeAssessmentScore.call(void 0, [{ id: entryKey, weight: 1, items: own }], policy);
1664
1632
  }
1665
1633
 
1666
1634
 
@@ -1791,50 +1759,5 @@ function composeTimelineScore(entryKey, items, policy) {
1791
1759
 
1792
1760
 
1793
1761
 
1794
-
1795
-
1796
-
1797
-
1798
-
1799
-
1800
-
1801
-
1802
-
1803
-
1804
-
1805
-
1806
-
1807
-
1808
-
1809
-
1810
-
1811
-
1812
-
1813
-
1814
-
1815
-
1816
-
1817
-
1818
-
1819
-
1820
-
1821
-
1822
-
1823
-
1824
-
1825
-
1826
-
1827
-
1828
-
1829
-
1830
-
1831
-
1832
-
1833
-
1834
-
1835
-
1836
-
1837
-
1838
-
1839
- exports.AI_EXPLANATION_TYPES = _chunkOPMY2MNScjs.AI_EXPLANATION_TYPES; exports.AI_HINT_TYPES = _chunkOPMY2MNScjs.AI_HINT_TYPES; exports.AI_TEXT_MAX_LENGTH = _chunkOPMY2MNScjs.AI_TEXT_MAX_LENGTH; exports.AI_WRITING_MAX_CORRECTIONS = _chunkOPMY2MNScjs.AI_WRITING_MAX_CORRECTIONS; exports.AI_WRITING_MAX_FIELD_LENGTH = _chunkOPMY2MNScjs.AI_WRITING_MAX_FIELD_LENGTH; exports.ActivitySchemaError = _chunkD4TOPSHVcjs.ActivitySchemaError; exports.AiPermissionsSchema = _chunkD4TOPSHVcjs.AiPermissionsSchema; exports.BlankConfigSchema = _chunkD4TOPSHVcjs.BlankConfigSchema; exports.DEFAULT_ITEM_SCORING_POLICY = _chunkWQVZPIN7cjs.DEFAULT_ITEM_SCORING_POLICY; exports.DEFAULT_PASS_THRESHOLD = _chunkWQVZPIN7cjs.DEFAULT_PASS_THRESHOLD; exports.DICTATION_MAX_ACCEPTED_TRANSCRIPTS = _chunkD4TOPSHVcjs.DICTATION_MAX_ACCEPTED_TRANSCRIPTS; exports.DICTATION_MAX_EQUIVALENCES = _chunkD4TOPSHVcjs.DICTATION_MAX_EQUIVALENCES; exports.DICTATION_MAX_EQUIVALENCE_LENGTH = _chunkD4TOPSHVcjs.DICTATION_MAX_EQUIVALENCE_LENGTH; exports.DICTATION_MAX_TEXT_LENGTH = _chunkD4TOPSHVcjs.DICTATION_MAX_TEXT_LENGTH; exports.DICTATION_MAX_TRANSCRIPT_LENGTH = _chunkD4TOPSHVcjs.DICTATION_MAX_TRANSCRIPT_LENGTH; exports.DeferredScoringError = _chunkD4TOPSHVcjs.DeferredScoringError; exports.DictationDataSchema = _chunkD4TOPSHVcjs.DictationDataSchema; exports.DictationEquivalenceSchema = _chunkD4TOPSHVcjs.DictationEquivalenceSchema; exports.DictationSlowMediaSchema = _chunkD4TOPSHVcjs.DictationSlowMediaSchema; exports.DictationToleranceSchema = _chunkD4TOPSHVcjs.DictationToleranceSchema; exports.FeedbackSchema = _chunkD4TOPSHVcjs.FeedbackSchema; exports.FillInTheBlanksDataSchema = _chunkD4TOPSHVcjs.FillInTheBlanksDataSchema; exports.GapSelectBankSchema = _chunkD4TOPSHVcjs.GapSelectBankSchema; exports.GapSelectChoiceSchema = _chunkD4TOPSHVcjs.GapSelectChoiceSchema; exports.GapSelectDataSchema = _chunkD4TOPSHVcjs.GapSelectDataSchema; exports.GapSelectGapSchema = _chunkD4TOPSHVcjs.GapSelectGapSchema; exports.INTERACTIVE_VIDEO_ITEM_TYPES = _chunk2CV6NU32cjs.INTERACTIVE_VIDEO_ITEM_TYPES; exports.ITEM_SCORING_MAX_RETRIES = _chunkWQVZPIN7cjs.ITEM_SCORING_MAX_RETRIES; exports.ItemGroupSchema = _chunk2CV6NU32cjs.ItemGroupSchema; exports.MediaPlaybackSchema = _chunkD4TOPSHVcjs.MediaPlaybackSchema; exports.MediaSchema = _chunkD4TOPSHVcjs.MediaSchema; exports.MediaTimelineSchema = _chunk2CV6NU32cjs.MediaTimelineSchema; exports.MediaTrackSchema = _chunkD4TOPSHVcjs.MediaTrackSchema; exports.MediaUrlSchema = _chunkD4TOPSHVcjs.MediaUrlSchema; exports.MultipleChoiceDataSchema = _chunkD4TOPSHVcjs.MultipleChoiceDataSchema; exports.MultipleChoiceOptionMediaSchema = _chunkD4TOPSHVcjs.MultipleChoiceOptionMediaSchema; exports.MultipleChoiceOptionSchema = _chunkD4TOPSHVcjs.MultipleChoiceOptionSchema; exports.NativeControlHintSchema = _chunkD4TOPSHVcjs.NativeControlHintSchema; exports.OPEN_DELIVERY_POLICY = OPEN_DELIVERY_POLICY; exports.READ_ALOUD_MAX_DIMENSION_WEIGHT = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_DIMENSION_WEIGHT; exports.READ_ALOUD_MAX_REFERENCE_LENGTH = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_REFERENCE_LENGTH; exports.READ_ALOUD_MAX_SECONDS = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_SECONDS; exports.READ_ALOUD_MAX_TAKES = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_TAKES; exports.ReadAloudDataSchema = _chunkD4TOPSHVcjs.ReadAloudDataSchema; exports.ReadAloudSlowMediaSchema = _chunkD4TOPSHVcjs.ReadAloudSlowMediaSchema; exports.RedactedBlankConfigSchema = _chunkD4TOPSHVcjs.RedactedBlankConfigSchema; exports.RedactedDictationDataSchema = _chunkD4TOPSHVcjs.RedactedDictationDataSchema; exports.RedactedDictationSlowMediaSchema = _chunkD4TOPSHVcjs.RedactedDictationSlowMediaSchema; exports.RedactedFillInTheBlanksDataSchema = _chunkD4TOPSHVcjs.RedactedFillInTheBlanksDataSchema; exports.RedactedGapSelectBankSchema = _chunkD4TOPSHVcjs.RedactedGapSelectBankSchema; exports.RedactedGapSelectChoiceSchema = _chunkD4TOPSHVcjs.RedactedGapSelectChoiceSchema; exports.RedactedGapSelectDataSchema = _chunkD4TOPSHVcjs.RedactedGapSelectDataSchema; exports.RedactedGapSelectGapSchema = _chunkD4TOPSHVcjs.RedactedGapSelectGapSchema; exports.RedactedItemGroupSchema = _chunk2CV6NU32cjs.RedactedItemGroupSchema; exports.RedactedMediaSchema = _chunkD4TOPSHVcjs.RedactedMediaSchema; exports.RedactedMultipleChoiceDataSchema = _chunkD4TOPSHVcjs.RedactedMultipleChoiceDataSchema; exports.RedactedMultipleChoiceOptionMediaSchema = _chunkD4TOPSHVcjs.RedactedMultipleChoiceOptionMediaSchema; exports.RedactedMultipleChoiceOptionSchema = _chunkD4TOPSHVcjs.RedactedMultipleChoiceOptionSchema; exports.RedactedReadAloudDataSchema = _chunkD4TOPSHVcjs.RedactedReadAloudDataSchema; exports.RedactedScoringError = _chunkD4TOPSHVcjs.RedactedScoringError; exports.RedactedStimulusSchema = _chunk2CV6NU32cjs.RedactedStimulusSchema; exports.RedactedWrittenResponseDataSchema = _chunkD4TOPSHVcjs.RedactedWrittenResponseDataSchema; exports.SPEECH_ASSESSMENT_MAX_WORDS = _chunkD4TOPSHVcjs.SPEECH_ASSESSMENT_MAX_WORDS; exports.StimulusSchema = _chunk2CV6NU32cjs.StimulusSchema; exports.TIMELINE_MAX_CHAPTERS = _chunk2CV6NU32cjs.TIMELINE_MAX_CHAPTERS; exports.TIMELINE_MAX_ITEMS = _chunk2CV6NU32cjs.TIMELINE_MAX_ITEMS; exports.TIMELINE_MAX_QUIZZES = _chunk2CV6NU32cjs.TIMELINE_MAX_QUIZZES; exports.TIMELINE_MAX_TITLE_LENGTH = _chunk2CV6NU32cjs.TIMELINE_MAX_TITLE_LENGTH; exports.TextMatchPolicySchema = _chunkD4TOPSHVcjs.TextMatchPolicySchema; exports.TimelineChapterSchema = _chunk2CV6NU32cjs.TimelineChapterSchema; exports.TimelineCueSchema = _chunk2CV6NU32cjs.TimelineCueSchema; exports.UnknownActivityTypeError = _chunkD4TOPSHVcjs.UnknownActivityTypeError; exports.WrittenResponseDataSchema = _chunkD4TOPSHVcjs.WrittenResponseDataSchema; exports.WrittenResponseRubricCriterionSchema = _chunkD4TOPSHVcjs.WrittenResponseRubricCriterionSchema; exports.WrittenResponseRubricSchema = _chunkD4TOPSHVcjs.WrittenResponseRubricSchema; exports.XAPIVerb = _chunkEOFWSGLUcjs.XAPIVerb; exports.XAPI_VERB_DISPLAY = _chunkEOFWSGLUcjs.XAPI_VERB_DISPLAY; exports.aiAllowedByContent = _chunkOPMY2MNScjs.aiAllowedByContent; exports.aiExplanationRequest = _chunkOPMY2MNScjs.aiExplanationRequest; exports.aiGradeOf = _chunkOPMY2MNScjs.aiGradeOf; exports.aiHintRequest = _chunkOPMY2MNScjs.aiHintRequest; exports.aiSupports = _chunkOPMY2MNScjs.aiSupports; exports.aiWritingFeedbackRequest = _chunkOPMY2MNScjs.aiWritingFeedbackRequest; exports.alignDictation = _chunkD4TOPSHVcjs.alignDictation; exports.alignReadAloud = _chunkWQVZPIN7cjs.alignReadAloud; exports.assertRedacted = assertRedacted; exports.assertRedactedItemGroup = assertRedactedItemGroup; exports.buildAiFacts = _chunkOPMY2MNScjs.buildAiFacts; exports.canonicalJson = canonicalJson; exports.checkAiExplanation = _chunkOPMY2MNScjs.checkAiExplanation; exports.checkAiHint = _chunkOPMY2MNScjs.checkAiHint; exports.checkAiWritingFeedback = _chunkOPMY2MNScjs.checkAiWritingFeedback; exports.classifyBand = _chunkWQVZPIN7cjs.classifyBand; exports.combineDeliveryPolicies = combineDeliveryPolicies; exports.composeAssessmentScore = _chunkWQVZPIN7cjs.composeAssessmentScore; exports.composeTimelineScore = composeTimelineScore; exports.computePassThreshold = _chunkWQVZPIN7cjs.computePassThreshold; exports.contentHash = contentHash; exports.countWords = _chunkD4TOPSHVcjs.countWords; exports.createDraft = createDraft; exports.createInteractiveVideoDraft = createInteractiveVideoDraft; exports.createItemGroupDraft = createItemGroupDraft; exports.defineActivityType = _chunkD4TOPSHVcjs.defineActivityType; exports.dictationJsonSchema = _chunk2CV6NU32cjs.dictationJsonSchema; exports.dictationReferenceWords = _chunkD4TOPSHVcjs.dictationReferenceWords; exports.dictationType = _chunkD4TOPSHVcjs.dictationType; exports.diffDictationChars = _chunkWQVZPIN7cjs.diffDictationChars; exports.diffResponses = diffResponses; exports.entryKeyOf = entryKeyOf; exports.evaluate = _chunkWQVZPIN7cjs.evaluate; exports.evaluateTries = _chunkWQVZPIN7cjs.evaluateTries; exports.fillInTheBlanksJsonSchema = _chunk2CV6NU32cjs.fillInTheBlanksJsonSchema; exports.fillInTheBlanksType = _chunkD4TOPSHVcjs.fillInTheBlanksType; exports.fingerprint = fingerprint; exports.flattenSequence = flattenSequence; exports.gapSelectJsonSchema = _chunk2CV6NU32cjs.gapSelectJsonSchema; exports.gapSelectType = _chunkD4TOPSHVcjs.gapSelectType; exports.getActivityTypeDescriptor = _chunkD4TOPSHVcjs.getActivityTypeDescriptor; exports.gradeFromRubric = _chunkWQVZPIN7cjs.gradeFromRubric; exports.gradeReadAloud = _chunkWQVZPIN7cjs.gradeReadAloud; exports.gte = _chunkWQVZPIN7cjs.gte; exports.hasGrade = _chunkWQVZPIN7cjs.hasGrade; exports.hashSeed = hashSeed; exports.hintRevealsAnswer = _chunkOPMY2MNScjs.hintRevealsAnswer; exports.inspectWav = _chunkWQVZPIN7cjs.inspectWav; exports.isInteractiveVideoItemType = _chunk2CV6NU32cjs.isInteractiveVideoItemType; exports.isItemGroup = isItemGroup; exports.itemGroupJsonSchema = _chunk2CV6NU32cjs.itemGroupJsonSchema; exports.jsonSchemaFor = _chunk2CV6NU32cjs.jsonSchemaFor; exports.levenshteinDistance = _chunkD4TOPSHVcjs.levenshteinDistance; exports.matchText = _chunkD4TOPSHVcjs.matchText; exports.multipleChoiceJsonSchema = _chunk2CV6NU32cjs.multipleChoiceJsonSchema; exports.multipleChoiceType = _chunkD4TOPSHVcjs.multipleChoiceType; exports.outcomeFromGrade = _chunkWQVZPIN7cjs.outcomeFromGrade; exports.outcomeFromUnscorable = _chunkWQVZPIN7cjs.outcomeFromUnscorable; exports.planAttempt = planAttempt; exports.planMediaBudgets = planMediaBudgets; exports.readAiTextResult = _chunkOPMY2MNScjs.readAiTextResult; exports.readAloudJsonSchema = _chunk2CV6NU32cjs.readAloudJsonSchema; exports.readAloudType = _chunkD4TOPSHVcjs.readAloudType; exports.readMediaProgress = readMediaProgress; exports.redact = redact; exports.redactItemGroup = redactItemGroup; exports.registerActivityType = _chunkD4TOPSHVcjs.registerActivityType; exports.registeredActivityTypes = _chunkD4TOPSHVcjs.registeredActivityTypes; exports.resolveDeliveryPolicy = resolveDeliveryPolicy; exports.resolveItemScoringPolicy = _chunkWQVZPIN7cjs.resolveItemScoringPolicy; exports.resolvePlaybackPolicy = resolvePlaybackPolicy; exports.restoreAttemptState = restoreAttemptState; exports.restoreMediaPlayLedger = restoreMediaPlayLedger; exports.roundGrade = _chunkWQVZPIN7cjs.roundGrade; exports.score = _chunkWQVZPIN7cjs.score; exports.scoreTries = _chunkWQVZPIN7cjs.scoreTries; exports.scoredItemsFromPlan = scoredItemsFromPlan; exports.seededShuffle = seededShuffle; exports.serializeAttemptState = serializeAttemptState; exports.serializeMediaPlayLedger = serializeMediaPlayLedger; exports.slotMediaKey = slotMediaKey; exports.stimulusJsonSchema = _chunk2CV6NU32cjs.stimulusJsonSchema; exports.stimulusMediaKey = stimulusMediaKey; exports.validateActivity = _chunk2CV6NU32cjs.validateActivity; exports.validateDeliveryPolicy = validateDeliveryPolicy; exports.validateDraft = validateDraft; exports.validateItemGroup = _chunk2CV6NU32cjs.validateItemGroup; exports.validateItemGroupDraft = validateItemGroupDraft; exports.validateItemScoringPolicy = _chunkWQVZPIN7cjs.validateItemScoringPolicy; exports.validateSpeechAssessment = _chunkWQVZPIN7cjs.validateSpeechAssessment; exports.validateXAPIStatement = _chunkEOFWSGLUcjs.validateXAPIStatement; exports.verifyAttemptPlan = verifyAttemptPlan; exports.writtenResponseJsonSchema = _chunk2CV6NU32cjs.writtenResponseJsonSchema; exports.writtenResponseType = _chunkD4TOPSHVcjs.writtenResponseType; exports.xAPIBuilder = _chunkEOFWSGLUcjs.xAPIBuilder; exports.xapiDefinitionFor = _chunkEOFWSGLUcjs.xapiDefinitionFor;
1762
+ exports.AI_EXPLANATION_TYPES = _chunkW5KB3DNTcjs.AI_EXPLANATION_TYPES; exports.AI_HINT_TYPES = _chunkW5KB3DNTcjs.AI_HINT_TYPES; exports.AI_TEXT_MAX_LENGTH = _chunkW5KB3DNTcjs.AI_TEXT_MAX_LENGTH; exports.AI_WRITING_MAX_CORRECTIONS = _chunkW5KB3DNTcjs.AI_WRITING_MAX_CORRECTIONS; exports.AI_WRITING_MAX_FIELD_LENGTH = _chunkW5KB3DNTcjs.AI_WRITING_MAX_FIELD_LENGTH; exports.ActivitySchemaError = _chunkDSDXL3JOcjs.ActivitySchemaError; exports.DEFAULT_ITEM_SCORING_POLICY = _chunkVSH7ECQLcjs.DEFAULT_ITEM_SCORING_POLICY; exports.DEFAULT_PASS_THRESHOLD = _chunkVSH7ECQLcjs.DEFAULT_PASS_THRESHOLD; exports.DICTATION_MAX_ACCEPTED_TRANSCRIPTS = _chunkDSDXL3JOcjs.DICTATION_MAX_ACCEPTED_TRANSCRIPTS; exports.DICTATION_MAX_EQUIVALENCES = _chunkDSDXL3JOcjs.DICTATION_MAX_EQUIVALENCES; exports.DICTATION_MAX_EQUIVALENCE_LENGTH = _chunkDSDXL3JOcjs.DICTATION_MAX_EQUIVALENCE_LENGTH; exports.DICTATION_MAX_TEXT_LENGTH = _chunkDSDXL3JOcjs.DICTATION_MAX_TEXT_LENGTH; exports.DICTATION_MAX_TRANSCRIPT_LENGTH = _chunkDSDXL3JOcjs.DICTATION_MAX_TRANSCRIPT_LENGTH; exports.DeferredScoringError = _chunkDSDXL3JOcjs.DeferredScoringError; exports.INTERACTIVE_VIDEO_ITEM_TYPES = _chunk2JT2WUQ2cjs.INTERACTIVE_VIDEO_ITEM_TYPES; exports.ITEM_SCORING_MAX_RETRIES = _chunkVSH7ECQLcjs.ITEM_SCORING_MAX_RETRIES; exports.OPEN_DELIVERY_POLICY = OPEN_DELIVERY_POLICY; exports.READ_ALOUD_MAX_DIMENSION_WEIGHT = _chunkDSDXL3JOcjs.READ_ALOUD_MAX_DIMENSION_WEIGHT; exports.READ_ALOUD_MAX_REFERENCE_LENGTH = _chunkDSDXL3JOcjs.READ_ALOUD_MAX_REFERENCE_LENGTH; exports.READ_ALOUD_MAX_SECONDS = _chunkDSDXL3JOcjs.READ_ALOUD_MAX_SECONDS; exports.READ_ALOUD_MAX_TAKES = _chunkDSDXL3JOcjs.READ_ALOUD_MAX_TAKES; exports.RedactedScoringError = _chunkDSDXL3JOcjs.RedactedScoringError; exports.SPEECH_ASSESSMENT_MAX_WORDS = _chunkDSDXL3JOcjs.SPEECH_ASSESSMENT_MAX_WORDS; exports.TIMELINE_MAX_CHAPTERS = _chunk2JT2WUQ2cjs.TIMELINE_MAX_CHAPTERS; exports.TIMELINE_MAX_ITEMS = _chunk2JT2WUQ2cjs.TIMELINE_MAX_ITEMS; exports.TIMELINE_MAX_QUIZZES = _chunk2JT2WUQ2cjs.TIMELINE_MAX_QUIZZES; exports.TIMELINE_MAX_TITLE_LENGTH = _chunk2JT2WUQ2cjs.TIMELINE_MAX_TITLE_LENGTH; exports.UnknownActivityTypeError = _chunkDSDXL3JOcjs.UnknownActivityTypeError; exports.XAPIVerb = _chunkTJJFKKH2cjs.XAPIVerb; exports.XAPI_VERB_DISPLAY = _chunkTJJFKKH2cjs.XAPI_VERB_DISPLAY; exports.aiAllowedByContent = _chunkW5KB3DNTcjs.aiAllowedByContent; exports.aiExplanationRequest = _chunkW5KB3DNTcjs.aiExplanationRequest; exports.aiGradeOf = _chunkW5KB3DNTcjs.aiGradeOf; exports.aiHintRequest = _chunkW5KB3DNTcjs.aiHintRequest; exports.aiSupports = _chunkW5KB3DNTcjs.aiSupports; exports.aiWritingFeedbackRequest = _chunkW5KB3DNTcjs.aiWritingFeedbackRequest; exports.alignDictation = _chunkDSDXL3JOcjs.alignDictation; exports.alignReadAloud = _chunkVSH7ECQLcjs.alignReadAloud; exports.assertRedacted = assertRedacted; exports.assertRedactedItemGroup = assertRedactedItemGroup; exports.buildAiFacts = _chunkW5KB3DNTcjs.buildAiFacts; exports.canonicalJson = canonicalJson; exports.checkAiExplanation = _chunkW5KB3DNTcjs.checkAiExplanation; exports.checkAiHint = _chunkW5KB3DNTcjs.checkAiHint; exports.checkAiWritingFeedback = _chunkW5KB3DNTcjs.checkAiWritingFeedback; exports.classifyBand = _chunkVSH7ECQLcjs.classifyBand; exports.combineDeliveryPolicies = combineDeliveryPolicies; exports.composeAssessmentScore = _chunkVSH7ECQLcjs.composeAssessmentScore; exports.composeTimelineScore = composeTimelineScore; exports.computePassThreshold = _chunkVSH7ECQLcjs.computePassThreshold; exports.contentHash = contentHash; exports.countWords = _chunkDSDXL3JOcjs.countWords; exports.createDraft = createDraft; exports.createInteractiveVideoDraft = createInteractiveVideoDraft; exports.createItemGroupDraft = createItemGroupDraft; exports.defineActivityType = _chunkDSDXL3JOcjs.defineActivityType; exports.dictationJsonSchema = _chunk2JT2WUQ2cjs.dictationJsonSchema; exports.dictationReferenceWords = _chunkDSDXL3JOcjs.dictationReferenceWords; exports.dictationType = _chunkDSDXL3JOcjs.dictationType; exports.diffDictationChars = _chunkVSH7ECQLcjs.diffDictationChars; exports.diffResponses = diffResponses; exports.entryKeyOf = entryKeyOf; exports.evaluate = _chunkVSH7ECQLcjs.evaluate; exports.evaluateTries = _chunkVSH7ECQLcjs.evaluateTries; exports.fillInTheBlanksJsonSchema = _chunk2JT2WUQ2cjs.fillInTheBlanksJsonSchema; exports.fillInTheBlanksType = _chunkDSDXL3JOcjs.fillInTheBlanksType; exports.fingerprint = fingerprint; exports.flattenSequence = flattenSequence; exports.gapSelectJsonSchema = _chunk2JT2WUQ2cjs.gapSelectJsonSchema; exports.gapSelectType = _chunkDSDXL3JOcjs.gapSelectType; exports.getActivityTypeDescriptor = _chunkDSDXL3JOcjs.getActivityTypeDescriptor; exports.gradeFromRubric = _chunkVSH7ECQLcjs.gradeFromRubric; exports.gradeReadAloud = _chunkVSH7ECQLcjs.gradeReadAloud; exports.gte = _chunkVSH7ECQLcjs.gte; exports.hasGrade = _chunkVSH7ECQLcjs.hasGrade; exports.hashSeed = hashSeed; exports.hintRevealsAnswer = _chunkW5KB3DNTcjs.hintRevealsAnswer; exports.inspectWav = _chunkVSH7ECQLcjs.inspectWav; exports.isInteractiveVideoItemType = _chunk2JT2WUQ2cjs.isInteractiveVideoItemType; exports.isItemGroup = isItemGroup; exports.itemGroupJsonSchema = _chunk2JT2WUQ2cjs.itemGroupJsonSchema; exports.jsonSchemaFor = _chunk2JT2WUQ2cjs.jsonSchemaFor; exports.levenshteinDistance = _chunkDSDXL3JOcjs.levenshteinDistance; exports.matchText = _chunkDSDXL3JOcjs.matchText; exports.multipleChoiceJsonSchema = _chunk2JT2WUQ2cjs.multipleChoiceJsonSchema; exports.multipleChoiceType = _chunkDSDXL3JOcjs.multipleChoiceType; exports.outcomeFromGrade = _chunkVSH7ECQLcjs.outcomeFromGrade; exports.outcomeFromUnscorable = _chunkVSH7ECQLcjs.outcomeFromUnscorable; exports.planAttempt = planAttempt; exports.planMediaBudgets = planMediaBudgets; exports.readAiTextResult = _chunkW5KB3DNTcjs.readAiTextResult; exports.readAloudJsonSchema = _chunk2JT2WUQ2cjs.readAloudJsonSchema; exports.readAloudType = _chunkDSDXL3JOcjs.readAloudType; exports.readMediaProgress = readMediaProgress; exports.redact = redact; exports.redactItemGroup = redactItemGroup; exports.registerActivityType = _chunkDSDXL3JOcjs.registerActivityType; exports.registeredActivityTypes = _chunkDSDXL3JOcjs.registeredActivityTypes; exports.resolveDeliveryPolicy = resolveDeliveryPolicy; exports.resolveItemScoringPolicy = _chunkVSH7ECQLcjs.resolveItemScoringPolicy; exports.resolvePlaybackPolicy = resolvePlaybackPolicy; exports.restoreAttemptState = restoreAttemptState; exports.restoreMediaPlayLedger = restoreMediaPlayLedger; exports.roundGrade = _chunkVSH7ECQLcjs.roundGrade; exports.score = _chunkVSH7ECQLcjs.score; exports.scoreTries = _chunkVSH7ECQLcjs.scoreTries; exports.scoredItemsFromPlan = scoredItemsFromPlan; exports.seededShuffle = seededShuffle; exports.serializeAttemptState = serializeAttemptState; exports.serializeMediaPlayLedger = serializeMediaPlayLedger; exports.slotMediaKey = slotMediaKey; exports.stimulusJsonSchema = _chunk2JT2WUQ2cjs.stimulusJsonSchema; exports.stimulusMediaKey = stimulusMediaKey; exports.validateActivity = _chunk2JT2WUQ2cjs.validateActivity; exports.validateDeliveryPolicy = validateDeliveryPolicy; exports.validateDraft = validateDraft; exports.validateItemGroup = _chunk2JT2WUQ2cjs.validateItemGroup; exports.validateItemGroupDraft = validateItemGroupDraft; exports.validateItemScoringPolicy = _chunkVSH7ECQLcjs.validateItemScoringPolicy; exports.validateMedia = _chunk2JT2WUQ2cjs.validateMedia; exports.validateOptionMedia = _chunk2JT2WUQ2cjs.validateOptionMedia; exports.validateSpeechAssessment = _chunkVSH7ECQLcjs.validateSpeechAssessment; exports.validateXAPIStatement = _chunkTJJFKKH2cjs.validateXAPIStatement; exports.verifyAttemptPlan = verifyAttemptPlan; exports.writtenResponseJsonSchema = _chunk2JT2WUQ2cjs.writtenResponseJsonSchema; exports.writtenResponseType = _chunkDSDXL3JOcjs.writtenResponseType; exports.xAPIBuilder = _chunkTJJFKKH2cjs.xAPIBuilder; exports.xapiDefinitionFor = _chunkTJJFKKH2cjs.xapiDefinitionFor;
1840
1763
  //# sourceMappingURL=index.cjs.map