@intellectif/lk-core 0.15.0 → 0.16.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 (44) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/{activity-C7cR8U9n.d.cts → activity-DcxtpX7Z.d.cts} +5 -1
  3. package/dist/{activity-C7cR8U9n.d.ts → activity-DcxtpX7Z.d.ts} +5 -1
  4. package/dist/{chunk-5KWF34LJ.cjs → chunk-6P6XK2LI.cjs} +31 -31
  5. package/dist/{chunk-5KWF34LJ.cjs.map → chunk-6P6XK2LI.cjs.map} +1 -1
  6. package/dist/{chunk-QFWEF5ST.cjs → chunk-F7UOLKWV.cjs} +34 -23
  7. package/dist/chunk-F7UOLKWV.cjs.map +1 -0
  8. package/dist/{chunk-W7AQP6AV.cjs → chunk-FJJ2GVBA.cjs} +24 -22
  9. package/dist/chunk-FJJ2GVBA.cjs.map +1 -0
  10. package/dist/{chunk-EEMVWBPP.js → chunk-GOZGBVJP.js} +10 -8
  11. package/dist/chunk-GOZGBVJP.js.map +1 -0
  12. package/dist/{chunk-DPHX4E7X.js → chunk-IRUD73IQ.js} +34 -23
  13. package/dist/chunk-IRUD73IQ.js.map +1 -0
  14. package/dist/{chunk-54XYQ3CS.js → chunk-OXF7VT7S.js} +2 -2
  15. package/dist/{chunk-L6YBQXSB.js → chunk-S63IOKFP.js} +2 -2
  16. package/dist/{chunk-7ETU6EXQ.cjs → chunk-VFTVZJO5.cjs} +4 -4
  17. package/dist/{chunk-7ETU6EXQ.cjs.map → chunk-VFTVZJO5.cjs.map} +1 -1
  18. package/dist/{index-D10NaztZ.d.ts → index-BWpwZRQw.d.cts} +1 -1
  19. package/dist/{index-BWyMDlUS.d.cts → index-DRJqwO2y.d.ts} +1 -1
  20. package/dist/index.cjs +112 -111
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +17 -4
  23. package/dist/index.d.ts +17 -4
  24. package/dist/index.js +8 -7
  25. package/dist/index.js.map +1 -1
  26. package/dist/schemas.cjs +3 -3
  27. package/dist/schemas.d.cts +2 -2
  28. package/dist/schemas.d.ts +2 -2
  29. package/dist/schemas.js +2 -2
  30. package/dist/scoring.cjs +3 -3
  31. package/dist/scoring.d.cts +2 -2
  32. package/dist/scoring.d.ts +2 -2
  33. package/dist/scoring.js +2 -2
  34. package/dist/xapi.cjs +3 -3
  35. package/dist/xapi.d.cts +1 -1
  36. package/dist/xapi.d.ts +1 -1
  37. package/dist/xapi.js +2 -2
  38. package/package.json +1 -1
  39. package/dist/chunk-DPHX4E7X.js.map +0 -1
  40. package/dist/chunk-EEMVWBPP.js.map +0 -1
  41. package/dist/chunk-QFWEF5ST.cjs.map +0 -1
  42. package/dist/chunk-W7AQP6AV.cjs.map +0 -1
  43. /package/dist/{chunk-54XYQ3CS.js.map → chunk-OXF7VT7S.js.map} +0 -0
  44. /package/dist/{chunk-L6YBQXSB.js.map → chunk-S63IOKFP.js.map} +0 -0
package/dist/index.cjs CHANGED
@@ -16,14 +16,14 @@
16
16
 
17
17
 
18
18
 
19
- var _chunk5KWF34LJcjs = require('./chunk-5KWF34LJ.cjs');
19
+ var _chunk6P6XK2LIcjs = require('./chunk-6P6XK2LI.cjs');
20
20
 
21
21
 
22
22
 
23
23
 
24
24
 
25
25
 
26
- var _chunk7ETU6EXQcjs = require('./chunk-7ETU6EXQ.cjs');
26
+ var _chunkVFTVZJO5cjs = require('./chunk-VFTVZJO5.cjs');
27
27
 
28
28
 
29
29
 
@@ -49,7 +49,7 @@ var _chunk7ETU6EXQcjs = require('./chunk-7ETU6EXQ.cjs');
49
49
 
50
50
 
51
51
 
52
- var _chunkW7AQP6AVcjs = require('./chunk-W7AQP6AV.cjs');
52
+ var _chunkFJJ2GVBAcjs = require('./chunk-FJJ2GVBA.cjs');
53
53
 
54
54
 
55
55
 
@@ -134,7 +134,7 @@ var _chunkW7AQP6AVcjs = require('./chunk-W7AQP6AV.cjs');
134
134
 
135
135
 
136
136
 
137
- var _chunkQFWEF5STcjs = require('./chunk-QFWEF5ST.cjs');
137
+ var _chunkF7UOLKWVcjs = require('./chunk-F7UOLKWV.cjs');
138
138
 
139
139
  // src/content-hash.ts
140
140
  function canonicalJson(value, seen = /* @__PURE__ */ new Set()) {
@@ -708,22 +708,22 @@ function createInteractiveVideoDraft(context) {
708
708
  };
709
709
  }
710
710
  function validateItemGroupDraft(draft) {
711
- return _chunkQFWEF5STcjs.withValidationScope.call(void 0, () => validateItemGroupDraftInScope(draft));
711
+ return _chunkF7UOLKWVcjs.withValidationScope.call(void 0, () => validateItemGroupDraftInScope(draft));
712
712
  }
713
713
  function validateItemGroupDraftInScope(draft) {
714
714
  const issues = [];
715
- if (!_chunkQFWEF5STcjs.isRecord.call(void 0, draft)) {
715
+ if (!_chunkF7UOLKWVcjs.isRecord.call(void 0, draft)) {
716
716
  issues.push(
717
- _chunkQFWEF5STcjs.issue.call(void 0, "ig_not_an_object", [], "A group must be an object with a stimulus and its items.")
717
+ _chunkF7UOLKWVcjs.issue.call(void 0, "ig_not_an_object", [], "A group must be an object with a stimulus and its items.")
718
718
  );
719
719
  return { status: "invalid", issues };
720
720
  }
721
721
  issues.push(...checkGroupIdentity(draft));
722
- if (_chunkQFWEF5STcjs.isRecord.call(void 0, draft.stimulus)) {
722
+ if (_chunkF7UOLKWVcjs.isRecord.call(void 0, draft.stimulus)) {
723
723
  issues.push(...checkStimulus(draft.stimulus));
724
- } else if (_chunkQFWEF5STcjs.isUnset.call(void 0, draft.stimulus)) {
724
+ } else if (_chunkF7UOLKWVcjs.isUnset.call(void 0, draft.stimulus)) {
725
725
  issues.push(
726
- _chunkQFWEF5STcjs.issue.call(void 0,
726
+ _chunkF7UOLKWVcjs.issue.call(void 0,
727
727
  "ig_stimulus_required",
728
728
  ["stimulus"],
729
729
  "Add the passage, recording or image the questions are about."
@@ -734,25 +734,26 @@ function validateItemGroupDraftInScope(draft) {
734
734
  if (draft.timeline !== void 0 && draft.timeline !== null) {
735
735
  issues.push(...checkTimeline(draft));
736
736
  }
737
- if (_chunkQFWEF5STcjs.groupCaptionsRevealDictation.call(void 0, draft, (captionsUrl) => !_chunkQFWEF5STcjs.isUnwritten.call(void 0, captionsUrl))) {
737
+ const captions = _chunkF7UOLKWVcjs.groupCaptionsField.call(void 0, draft, (captionsUrl) => !_chunkF7UOLKWVcjs.isUnwritten.call(void 0, captionsUrl));
738
+ if (captions !== void 0) {
738
739
  issues.push(
739
- _chunkQFWEF5STcjs.issue.call(void 0,
740
+ _chunkF7UOLKWVcjs.issue.call(void 0,
740
741
  "dc_captions_not_allowed",
741
- ["stimulus", "media", "captionsUrl"],
742
- _chunkQFWEF5STcjs.GROUP_CAPTIONS_REVEAL_DICTATION
742
+ ["stimulus", "media", captions],
743
+ _chunkF7UOLKWVcjs.GROUP_CAPTIONS_REVEAL_DICTATION
743
744
  )
744
745
  );
745
746
  }
746
- const parsed = _chunkW7AQP6AVcjs.ItemGroupSchema.safeParse(draft, { reportInput: true });
747
+ const parsed = _chunkFJJ2GVBAcjs.ItemGroupSchema.safeParse(draft, { reportInput: true });
747
748
  if (!parsed.success) {
748
749
  for (const schemaIssue of parsed.error.issues) {
749
750
  const path = schemaIssue.path.map(String);
750
- if (issues.some((known) => _chunkQFWEF5STcjs.covers.call(void 0, known.path, path))) {
751
+ if (issues.some((known) => _chunkF7UOLKWVcjs.covers.call(void 0, known.path, path))) {
751
752
  continue;
752
753
  }
753
- if (path.length > 0 && _chunkQFWEF5STcjs.refusesEmpty.call(void 0, draft, schemaIssue)) {
754
+ if (path.length > 0 && _chunkF7UOLKWVcjs.refusesEmpty.call(void 0, draft, schemaIssue)) {
754
755
  issues.push(
755
- _chunkQFWEF5STcjs.issue.call(void 0,
756
+ _chunkF7UOLKWVcjs.issue.call(void 0,
756
757
  "null_not_allowed",
757
758
  path,
758
759
  "This field cannot be null. Leave it out if it is optional, or give it a value."
@@ -768,7 +769,7 @@ function validateItemGroupDraftInScope(draft) {
768
769
  });
769
770
  }
770
771
  }
771
- const stored = _chunkW7AQP6AVcjs.validateItemGroup.call(void 0, draft);
772
+ const stored = _chunkFJJ2GVBAcjs.validateItemGroup.call(void 0, draft);
772
773
  if (issues.length === 0 && stored.success) {
773
774
  return { status: "complete", data: stored.data, issues };
774
775
  }
@@ -783,21 +784,21 @@ function validateItemGroupDraftInScope(draft) {
783
784
  function checkTimeline(draft) {
784
785
  const issues = [];
785
786
  const timeline = draft.timeline;
786
- if (!_chunkQFWEF5STcjs.isRecord.call(void 0, timeline)) {
787
+ if (!_chunkF7UOLKWVcjs.isRecord.call(void 0, timeline)) {
787
788
  return issues;
788
789
  }
789
- const stimulus = _chunkQFWEF5STcjs.isRecord.call(void 0, draft.stimulus) ? draft.stimulus : void 0;
790
- if (stimulus !== void 0 && !_chunkQFWEF5STcjs.isUnwritten.call(void 0, stimulus.kind) && stimulus.kind !== "video") {
790
+ const stimulus = _chunkF7UOLKWVcjs.isRecord.call(void 0, draft.stimulus) ? draft.stimulus : void 0;
791
+ if (stimulus !== void 0 && !_chunkF7UOLKWVcjs.isUnwritten.call(void 0, stimulus.kind) && stimulus.kind !== "video") {
791
792
  issues.push(
792
- _chunkQFWEF5STcjs.issue.call(void 0,
793
+ _chunkF7UOLKWVcjs.issue.call(void 0,
793
794
  "ig_timeline_stimulus_kind",
794
795
  ["stimulus", "kind"],
795
796
  "An interactive video needs a video: quizzes open at moments of it."
796
797
  )
797
798
  );
798
- } else if (stimulus !== void 0 && _chunkQFWEF5STcjs.isRecord.call(void 0, stimulus.media) && !_chunkQFWEF5STcjs.isUnwritten.call(void 0, stimulus.media.type) && stimulus.media.type !== "video") {
799
+ } else if (stimulus !== void 0 && _chunkF7UOLKWVcjs.isRecord.call(void 0, stimulus.media) && !_chunkF7UOLKWVcjs.isUnwritten.call(void 0, stimulus.media.type) && stimulus.media.type !== "video") {
799
800
  issues.push(
800
- _chunkQFWEF5STcjs.issue.call(void 0,
801
+ _chunkF7UOLKWVcjs.issue.call(void 0,
801
802
  "ig_timeline_stimulus_kind",
802
803
  ["stimulus", "media", "type"],
803
804
  "Upload a video file. An embedded player from another site cannot be paused when a quiz opens."
@@ -806,7 +807,7 @@ function checkTimeline(draft) {
806
807
  }
807
808
  if (draft.shuffle === "within-group") {
808
809
  issues.push(
809
- _chunkQFWEF5STcjs.issue.call(void 0,
810
+ _chunkF7UOLKWVcjs.issue.call(void 0,
810
811
  "ig_timeline_shuffle",
811
812
  ["shuffle"],
812
813
  "The questions of an interactive video appear in the order their quizzes open, so they cannot be shuffled."
@@ -816,25 +817,25 @@ function checkTimeline(draft) {
816
817
  const items = Array.isArray(draft.items) ? draft.items : [];
817
818
  const itemIndexById = /* @__PURE__ */ new Map();
818
819
  items.forEach((item, index) => {
819
- if (!_chunkQFWEF5STcjs.isRecord.call(void 0, item)) {
820
+ if (!_chunkF7UOLKWVcjs.isRecord.call(void 0, item)) {
820
821
  return;
821
822
  }
822
823
  if (typeof item.id === "string" && item.id !== "") {
823
824
  itemIndexById.set(item.id, index);
824
825
  }
825
826
  const type = item.type;
826
- if (typeof type === "string" && type !== "" && type !== "item-group" && !_chunkW7AQP6AVcjs.isInteractiveVideoItemType.call(void 0, type) && _chunkQFWEF5STcjs.getActivityTypeDescriptor.call(void 0, type) !== void 0) {
827
+ if (typeof type === "string" && type !== "" && type !== "item-group" && !_chunkFJJ2GVBAcjs.isInteractiveVideoItemType.call(void 0, type) && _chunkF7UOLKWVcjs.getActivityTypeDescriptor.call(void 0, type) !== void 0) {
827
828
  issues.push(
828
- _chunkQFWEF5STcjs.issue.call(void 0,
829
+ _chunkF7UOLKWVcjs.issue.call(void 0,
829
830
  "ig_timeline_item_type",
830
831
  ["items", index, "type"],
831
- `An interactive video can hold ${_chunkW7AQP6AVcjs.INTERACTIVE_VIDEO_ITEM_TYPES.join(", ")} questions only.`
832
+ `An interactive video can hold ${_chunkFJJ2GVBAcjs.INTERACTIVE_VIDEO_ITEM_TYPES.join(", ")} questions only.`
832
833
  )
833
834
  );
834
835
  }
835
- if (type === "dictation" && _chunkQFWEF5STcjs.isUnset.call(void 0, item.media)) {
836
+ if (type === "dictation" && _chunkF7UOLKWVcjs.isUnset.call(void 0, item.media)) {
836
837
  issues.push(
837
- _chunkQFWEF5STcjs.issue.call(void 0,
838
+ _chunkF7UOLKWVcjs.issue.call(void 0,
838
839
  "ig_timeline_dictation_media",
839
840
  ["items", index, "media"],
840
841
  "Add the recording this dictation plays: inside a video it cannot play the video."
@@ -846,7 +847,7 @@ function checkTimeline(draft) {
846
847
  const quizIds = /* @__PURE__ */ new Set();
847
848
  const placed = /* @__PURE__ */ new Set();
848
849
  cues.forEach((cue, cueIndex) => {
849
- if (!_chunkQFWEF5STcjs.isRecord.call(void 0, cue)) {
850
+ if (!_chunkF7UOLKWVcjs.isRecord.call(void 0, cue)) {
850
851
  return;
851
852
  }
852
853
  const at = (field, ...rest) => [
@@ -856,19 +857,19 @@ function checkTimeline(draft) {
856
857
  field,
857
858
  ...rest
858
859
  ];
859
- if (_chunkQFWEF5STcjs.isMissingId.call(void 0, cue.id)) {
860
- issues.push(_chunkQFWEF5STcjs.issue.call(void 0, "ig_timeline_quiz_id_required", at("id"), "This quiz has no id."));
860
+ if (_chunkF7UOLKWVcjs.isMissingId.call(void 0, cue.id)) {
861
+ issues.push(_chunkF7UOLKWVcjs.issue.call(void 0, "ig_timeline_quiz_id_required", at("id"), "This quiz has no id."));
861
862
  } else if (typeof cue.id === "string") {
862
863
  if (quizIds.has(cue.id)) {
863
864
  issues.push(
864
- _chunkQFWEF5STcjs.issue.call(void 0, "ig_timeline_quiz_id_duplicate", at("id"), `Two quizzes share the id "${cue.id}".`)
865
+ _chunkF7UOLKWVcjs.issue.call(void 0, "ig_timeline_quiz_id_duplicate", at("id"), `Two quizzes share the id "${cue.id}".`)
865
866
  );
866
867
  }
867
868
  quizIds.add(cue.id);
868
869
  }
869
- if (_chunkQFWEF5STcjs.isUnset.call(void 0, cue.at)) {
870
+ if (_chunkF7UOLKWVcjs.isUnset.call(void 0, cue.at)) {
870
871
  issues.push(
871
- _chunkQFWEF5STcjs.issue.call(void 0,
872
+ _chunkF7UOLKWVcjs.issue.call(void 0,
872
873
  "ig_timeline_quiz_time_required",
873
874
  at("at"),
874
875
  "Choose when in the video this quiz opens."
@@ -876,16 +877,16 @@ function checkTimeline(draft) {
876
877
  );
877
878
  } else if (typeof cue.at !== "number" || !Number.isFinite(cue.at) || cue.at < 0) {
878
879
  issues.push(
879
- _chunkQFWEF5STcjs.issue.call(void 0,
880
+ _chunkF7UOLKWVcjs.issue.call(void 0,
880
881
  "ig_timeline_quiz_time_invalid",
881
882
  at("at"),
882
883
  "A quiz opens at a number of seconds, 0 or more."
883
884
  )
884
885
  );
885
886
  }
886
- if (_chunkQFWEF5STcjs.isUnset.call(void 0, cue.itemIds) || Array.isArray(cue.itemIds) && cue.itemIds.length === 0) {
887
+ if (_chunkF7UOLKWVcjs.isUnset.call(void 0, cue.itemIds) || Array.isArray(cue.itemIds) && cue.itemIds.length === 0) {
887
888
  issues.push(
888
- _chunkQFWEF5STcjs.issue.call(void 0, "ig_timeline_quiz_empty", at("itemIds"), "Add at least one question to this quiz.")
889
+ _chunkF7UOLKWVcjs.issue.call(void 0, "ig_timeline_quiz_empty", at("itemIds"), "Add at least one question to this quiz.")
889
890
  );
890
891
  return;
891
892
  }
@@ -898,7 +899,7 @@ function checkTimeline(draft) {
898
899
  }
899
900
  if (!itemIndexById.has(itemId)) {
900
901
  issues.push(
901
- _chunkQFWEF5STcjs.issue.call(void 0,
902
+ _chunkF7UOLKWVcjs.issue.call(void 0,
902
903
  "ig_timeline_quiz_unknown_item",
903
904
  at("itemIds", position),
904
905
  `This quiz names a question that is not in the video ("${itemId}").`
@@ -906,7 +907,7 @@ function checkTimeline(draft) {
906
907
  );
907
908
  } else if (placed.has(itemId)) {
908
909
  issues.push(
909
- _chunkQFWEF5STcjs.issue.call(void 0,
910
+ _chunkF7UOLKWVcjs.issue.call(void 0,
910
911
  "ig_timeline_item_duplicate",
911
912
  at("itemIds", position),
912
913
  "This question is already in a quiz: each question belongs to one quiz."
@@ -919,7 +920,7 @@ function checkTimeline(draft) {
919
920
  for (const [itemId, index] of itemIndexById) {
920
921
  if (!placed.has(itemId)) {
921
922
  issues.push(
922
- _chunkQFWEF5STcjs.issue.call(void 0,
923
+ _chunkF7UOLKWVcjs.issue.call(void 0,
923
924
  "ig_timeline_item_unplaced",
924
925
  ["items", index],
925
926
  "Add this question to a quiz, or the video never shows it."
@@ -930,12 +931,12 @@ function checkTimeline(draft) {
930
931
  const chapters = Array.isArray(timeline.chapters) ? timeline.chapters : [];
931
932
  let previousAt;
932
933
  chapters.forEach((chapter, index) => {
933
- if (!_chunkQFWEF5STcjs.isRecord.call(void 0, chapter)) {
934
+ if (!_chunkF7UOLKWVcjs.isRecord.call(void 0, chapter)) {
934
935
  return;
935
936
  }
936
- if (_chunkQFWEF5STcjs.isUnwritten.call(void 0, chapter.title)) {
937
+ if (_chunkF7UOLKWVcjs.isUnwritten.call(void 0, chapter.title)) {
937
938
  issues.push(
938
- _chunkQFWEF5STcjs.issue.call(void 0,
939
+ _chunkF7UOLKWVcjs.issue.call(void 0,
939
940
  "ig_timeline_chapter_title",
940
941
  ["timeline", "chapters", index, "title"],
941
942
  "Give this chapter a title."
@@ -945,7 +946,7 @@ function checkTimeline(draft) {
945
946
  if (typeof chapter.at === "number" && Number.isFinite(chapter.at)) {
946
947
  if (previousAt !== void 0 && chapter.at <= previousAt) {
947
948
  issues.push(
948
- _chunkQFWEF5STcjs.issue.call(void 0,
949
+ _chunkF7UOLKWVcjs.issue.call(void 0,
949
950
  "ig_timeline_chapter_order",
950
951
  ["timeline", "chapters", index, "at"],
951
952
  "Chapters must start in order, each after the one before it."
@@ -961,7 +962,7 @@ function checkGroupIdentity(draft) {
961
962
  const issues = [];
962
963
  if (draft.schemaVersion !== "1.0") {
963
964
  issues.push(
964
- _chunkQFWEF5STcjs.issue.call(void 0,
965
+ _chunkF7UOLKWVcjs.issue.call(void 0,
965
966
  "schema_version_invalid",
966
967
  ["schemaVersion"],
967
968
  'The draft must have schemaVersion "1.0". A draft from createItemGroupDraft has it.'
@@ -969,14 +970,14 @@ function checkGroupIdentity(draft) {
969
970
  );
970
971
  }
971
972
  if (draft.type !== "item-group") {
972
- issues.push(_chunkQFWEF5STcjs.issue.call(void 0, "type_mismatch", ["type"], `The draft's type must be "item-group".`));
973
+ issues.push(_chunkF7UOLKWVcjs.issue.call(void 0, "type_mismatch", ["type"], `The draft's type must be "item-group".`));
973
974
  }
974
- if (_chunkQFWEF5STcjs.isMissingId.call(void 0, draft.id)) {
975
- issues.push(_chunkQFWEF5STcjs.issue.call(void 0, "id_required", ["id"], "The group has no id."));
975
+ if (_chunkF7UOLKWVcjs.isMissingId.call(void 0, draft.id)) {
976
+ issues.push(_chunkF7UOLKWVcjs.issue.call(void 0, "id_required", ["id"], "The group has no id."));
976
977
  }
977
- if (!_chunkQFWEF5STcjs.isUnset.call(void 0, draft.shuffle) && draft.shuffle !== "none" && draft.shuffle !== "within-group") {
978
+ if (!_chunkF7UOLKWVcjs.isUnset.call(void 0, draft.shuffle) && draft.shuffle !== "none" && draft.shuffle !== "within-group") {
978
979
  issues.push(
979
- _chunkQFWEF5STcjs.issue.call(void 0,
980
+ _chunkF7UOLKWVcjs.issue.call(void 0,
980
981
  "ig_shuffle_invalid",
981
982
  ["shuffle"],
982
983
  'Shuffling is either "none" or "within-group". Leave it out to keep the authored order.'
@@ -995,13 +996,13 @@ var MEDIA_FOR_KIND = {
995
996
  function checkStimulus(stimulus) {
996
997
  const issues = [];
997
998
  const at = (...rest) => ["stimulus", ...rest];
998
- if (_chunkQFWEF5STcjs.isMissingId.call(void 0, stimulus.id)) {
999
- issues.push(_chunkQFWEF5STcjs.issue.call(void 0, "ig_stimulus_id_required", at("id"), "The stimulus has no id."));
999
+ if (_chunkF7UOLKWVcjs.isMissingId.call(void 0, stimulus.id)) {
1000
+ issues.push(_chunkF7UOLKWVcjs.issue.call(void 0, "ig_stimulus_id_required", at("id"), "The stimulus has no id."));
1000
1001
  }
1001
1002
  const kind = stimulus.kind;
1002
- if (_chunkQFWEF5STcjs.isUnwritten.call(void 0, kind)) {
1003
+ if (_chunkF7UOLKWVcjs.isUnwritten.call(void 0, kind)) {
1003
1004
  issues.push(
1004
- _chunkQFWEF5STcjs.issue.call(void 0,
1005
+ _chunkF7UOLKWVcjs.issue.call(void 0,
1005
1006
  "ig_stimulus_kind_required",
1006
1007
  at("kind"),
1007
1008
  "Choose what the questions are about: a text, a recording, a video, an image, or a mix."
@@ -1010,71 +1011,71 @@ function checkStimulus(stimulus) {
1010
1011
  } else if (typeof kind !== "string" || !KINDS.has(kind)) {
1011
1012
  if (typeof kind === "string") {
1012
1013
  issues.push(
1013
- _chunkQFWEF5STcjs.issue.call(void 0,
1014
+ _chunkF7UOLKWVcjs.issue.call(void 0,
1014
1015
  "ig_stimulus_kind_invalid",
1015
1016
  at("kind"),
1016
1017
  `"${kind}" is not a stimulus kind. Use text, audio, video, image or mixed.`
1017
1018
  )
1018
1019
  );
1019
1020
  }
1020
- if (_chunkQFWEF5STcjs.isRecord.call(void 0, stimulus.media)) {
1021
- issues.push(..._chunkQFWEF5STcjs.checkMedia.call(void 0, stimulus.media, at("media")));
1021
+ if (_chunkF7UOLKWVcjs.isRecord.call(void 0, stimulus.media)) {
1022
+ issues.push(..._chunkF7UOLKWVcjs.checkMedia.call(void 0, stimulus.media, at("media")));
1022
1023
  }
1023
1024
  return issues;
1024
1025
  }
1025
1026
  const hasBody = typeof stimulus.body === "string" && stimulus.body.trim() !== "";
1026
- const htmlPresent = !_chunkQFWEF5STcjs.isUnset.call(void 0, stimulus.bodyHtml);
1027
+ const htmlPresent = !_chunkF7UOLKWVcjs.isUnset.call(void 0, stimulus.bodyHtml);
1027
1028
  if (!hasBody && (kind === "text" || kind === "mixed" || htmlPresent)) {
1028
1029
  issues.push(
1029
- _chunkQFWEF5STcjs.issue.call(void 0,
1030
+ _chunkF7UOLKWVcjs.issue.call(void 0,
1030
1031
  "ig_stimulus_body_required",
1031
1032
  at("body"),
1032
- _chunkQFWEF5STcjs.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."
1033
+ _chunkF7UOLKWVcjs.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."
1033
1034
  )
1034
1035
  );
1035
1036
  }
1036
- if (kind !== "text" && _chunkQFWEF5STcjs.isUnset.call(void 0, stimulus.media)) {
1037
+ if (kind !== "text" && _chunkF7UOLKWVcjs.isUnset.call(void 0, stimulus.media)) {
1037
1038
  issues.push(
1038
- _chunkQFWEF5STcjs.issue.call(void 0, "ig_stimulus_media_required", at("media"), "Add the recording, video or image.")
1039
+ _chunkF7UOLKWVcjs.issue.call(void 0, "ig_stimulus_media_required", at("media"), "Add the recording, video or image.")
1039
1040
  );
1040
- } else if (_chunkQFWEF5STcjs.isRecord.call(void 0, stimulus.media)) {
1041
+ } else if (_chunkF7UOLKWVcjs.isRecord.call(void 0, stimulus.media)) {
1041
1042
  const allowed = MEDIA_FOR_KIND[kind];
1042
1043
  const mediaType = stimulus.media.type;
1043
1044
  if (allowed !== void 0 && typeof mediaType === "string" && !allowed.includes(mediaType)) {
1044
1045
  issues.push(
1045
- _chunkQFWEF5STcjs.issue.call(void 0,
1046
+ _chunkF7UOLKWVcjs.issue.call(void 0,
1046
1047
  "ig_stimulus_media_kind",
1047
1048
  at("media", "type"),
1048
1049
  `A "${kind}" stimulus cannot carry ${mediaType} media. Use ${allowed.join(" or ")}.`
1049
1050
  )
1050
1051
  );
1051
1052
  }
1052
- issues.push(..._chunkQFWEF5STcjs.checkMedia.call(void 0, stimulus.media, at("media")));
1053
+ issues.push(..._chunkF7UOLKWVcjs.checkMedia.call(void 0, stimulus.media, at("media")));
1053
1054
  }
1054
1055
  return issues;
1055
1056
  }
1056
1057
  function checkItems(draft) {
1057
1058
  const issues = [];
1058
- const items = _chunkQFWEF5STcjs.isUnset.call(void 0, draft.items) ? [] : draft.items;
1059
+ const items = _chunkF7UOLKWVcjs.isUnset.call(void 0, draft.items) ? [] : draft.items;
1059
1060
  if (!Array.isArray(items)) {
1060
1061
  return issues;
1061
1062
  }
1062
1063
  if (items.length === 0) {
1063
1064
  issues.push(
1064
- _chunkQFWEF5STcjs.issue.call(void 0, "ig_items_required", ["items"], "Add at least one question about this material.")
1065
+ _chunkF7UOLKWVcjs.issue.call(void 0, "ig_items_required", ["items"], "Add at least one question about this material.")
1065
1066
  );
1066
1067
  return issues;
1067
1068
  }
1068
1069
  const seen = /* @__PURE__ */ new Set();
1069
1070
  const repeated = /* @__PURE__ */ new Set();
1070
1071
  for (const [index, item] of items.entries()) {
1071
- if (!_chunkQFWEF5STcjs.isRecord.call(void 0, item)) {
1072
+ if (!_chunkF7UOLKWVcjs.isRecord.call(void 0, item)) {
1072
1073
  continue;
1073
1074
  }
1074
1075
  const ordinal = index + 1;
1075
- if (_chunkQFWEF5STcjs.isMissingId.call(void 0, item.id)) {
1076
+ if (_chunkF7UOLKWVcjs.isMissingId.call(void 0, item.id)) {
1076
1077
  issues.push(
1077
- _chunkQFWEF5STcjs.issue.call(void 0, "ig_item_id_required", ["items", index, "id"], `Question ${ordinal} has no id.`)
1078
+ _chunkF7UOLKWVcjs.issue.call(void 0, "ig_item_id_required", ["items", index, "id"], `Question ${ordinal} has no id.`)
1078
1079
  );
1079
1080
  } else if (typeof item.id === "string") {
1080
1081
  if (seen.has(item.id)) {
@@ -1084,7 +1085,7 @@ function checkItems(draft) {
1084
1085
  }
1085
1086
  if (item.type === "item-group") {
1086
1087
  issues.push(
1087
- _chunkQFWEF5STcjs.issue.call(void 0,
1088
+ _chunkF7UOLKWVcjs.issue.call(void 0,
1088
1089
  "ig_item_nested_group",
1089
1090
  ["items", index, "type"],
1090
1091
  "Groups do not nest: every item must be an activity."
@@ -1092,9 +1093,9 @@ function checkItems(draft) {
1092
1093
  );
1093
1094
  continue;
1094
1095
  }
1095
- if (_chunkQFWEF5STcjs.isUnwritten.call(void 0, item.type)) {
1096
+ if (_chunkF7UOLKWVcjs.isUnwritten.call(void 0, item.type)) {
1096
1097
  issues.push(
1097
- _chunkQFWEF5STcjs.issue.call(void 0,
1098
+ _chunkF7UOLKWVcjs.issue.call(void 0,
1098
1099
  "ig_item_type_required",
1099
1100
  ["items", index, "type"],
1100
1101
  `Choose what kind of question ${ordinal} is.`
@@ -1109,11 +1110,11 @@ function checkItems(draft) {
1109
1110
  try {
1110
1111
  result = validateDraft(item.type, item);
1111
1112
  } catch (error) {
1112
- if (!(error instanceof _chunkQFWEF5STcjs.UnknownActivityTypeError) || error.activityType !== item.type) {
1113
+ if (!(error instanceof _chunkF7UOLKWVcjs.UnknownActivityTypeError) || error.activityType !== item.type) {
1113
1114
  throw error;
1114
1115
  }
1115
1116
  issues.push(
1116
- _chunkQFWEF5STcjs.issue.call(void 0,
1117
+ _chunkF7UOLKWVcjs.issue.call(void 0,
1117
1118
  "ig_item_type_unknown",
1118
1119
  ["items", index, "type"],
1119
1120
  `"${item.type}" is not a registered activity type.`
@@ -1127,7 +1128,7 @@ function checkItems(draft) {
1127
1128
  }
1128
1129
  for (const id of repeated) {
1129
1130
  issues.push(
1130
- _chunkQFWEF5STcjs.issue.call(void 0, "ig_item_id_duplicate", ["items"], `More than one question has the id "${id}".`)
1131
+ _chunkF7UOLKWVcjs.issue.call(void 0, "ig_item_id_duplicate", ["items"], `More than one question has the id "${id}".`)
1131
1132
  );
1132
1133
  }
1133
1134
  return issues;
@@ -1135,30 +1136,30 @@ function checkItems(draft) {
1135
1136
 
1136
1137
  // src/authoring/index.ts
1137
1138
  function validateDraft(type, draft) {
1138
- return _chunkQFWEF5STcjs.withValidationScope.call(void 0, () => validateDraftInScope(type, draft));
1139
+ return _chunkF7UOLKWVcjs.withValidationScope.call(void 0, () => validateDraftInScope(type, draft));
1139
1140
  }
1140
1141
  function validateDraftInScope(type, draft) {
1141
- const descriptor = _chunkQFWEF5STcjs.getActivityTypeDescriptor.call(void 0, type);
1142
+ const descriptor = _chunkF7UOLKWVcjs.getActivityTypeDescriptor.call(void 0, type);
1142
1143
  if (descriptor === void 0) {
1143
- throw new (0, _chunkQFWEF5STcjs.UnknownActivityTypeError)(String(type));
1144
+ throw new (0, _chunkF7UOLKWVcjs.UnknownActivityTypeError)(String(type));
1144
1145
  }
1145
- const reported = _chunkQFWEF5STcjs.isRecord.call(void 0, draft) && _optionalChain([descriptor, 'access', _23 => _23.authoring, 'optionalAccess', _24 => _24.checkDraft]) !== void 0 ? descriptor.authoring.checkDraft(draft).map(normalise) : [];
1146
+ const reported = _chunkF7UOLKWVcjs.isRecord.call(void 0, draft) && _optionalChain([descriptor, 'access', _23 => _23.authoring, 'optionalAccess', _24 => _24.checkDraft]) !== void 0 ? descriptor.authoring.checkDraft(draft).map(normalise) : [];
1146
1147
  const issues = [...reported];
1147
1148
  const parsed = descriptor.schema.safeParse(draft, { reportInput: true });
1148
1149
  if (!parsed.success) {
1149
- const covered = _chunkQFWEF5STcjs.coveredPathsOf.call(void 0, reported);
1150
+ const covered = _chunkF7UOLKWVcjs.coveredPathsOf.call(void 0, reported);
1150
1151
  const reportedEmpty = /* @__PURE__ */ new Set();
1151
1152
  for (const schemaIssue of parsed.error.issues) {
1152
1153
  const path = schemaIssue.path.map(String);
1153
- if (covered.has(_chunkQFWEF5STcjs.pathKey.call(void 0, path))) {
1154
+ if (covered.has(_chunkF7UOLKWVcjs.pathKey.call(void 0, path))) {
1154
1155
  continue;
1155
1156
  }
1156
- if (path.length > 0 && _chunkQFWEF5STcjs.refusesEmpty.call(void 0, draft, schemaIssue)) {
1157
+ if (path.length > 0 && _chunkF7UOLKWVcjs.refusesEmpty.call(void 0, draft, schemaIssue)) {
1157
1158
  const key = JSON.stringify(path);
1158
1159
  if (!reportedEmpty.has(key)) {
1159
1160
  reportedEmpty.add(key);
1160
1161
  issues.push(
1161
- _chunkQFWEF5STcjs.issue.call(void 0,
1162
+ _chunkF7UOLKWVcjs.issue.call(void 0,
1162
1163
  "null_not_allowed",
1163
1164
  path,
1164
1165
  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."
@@ -1182,9 +1183,9 @@ function validateDraftInScope(type, draft) {
1182
1183
  return { status: invalid ? "invalid" : "incomplete", issues };
1183
1184
  }
1184
1185
  function createDraft(type, context) {
1185
- const descriptor = _chunkQFWEF5STcjs.getActivityTypeDescriptor.call(void 0, type);
1186
+ const descriptor = _chunkF7UOLKWVcjs.getActivityTypeDescriptor.call(void 0, type);
1186
1187
  if (descriptor === void 0) {
1187
- throw new (0, _chunkQFWEF5STcjs.UnknownActivityTypeError)(String(type));
1188
+ throw new (0, _chunkF7UOLKWVcjs.UnknownActivityTypeError)(String(type));
1188
1189
  }
1189
1190
  const create = _optionalChain([descriptor, 'access', _25 => _25.authoring, 'optionalAccess', _26 => _26.createDraft]);
1190
1191
  if (create === void 0) {
@@ -1209,7 +1210,7 @@ function createDraft(type, context) {
1209
1210
  return create({ newId });
1210
1211
  }
1211
1212
  function normalise(found) {
1212
- const documented = Object.hasOwn(_chunkQFWEF5STcjs.DRAFT_ISSUE_SEVERITY, found.code) ? _chunkQFWEF5STcjs.DRAFT_ISSUE_SEVERITY[found.code] : void 0;
1213
+ const documented = Object.hasOwn(_chunkF7UOLKWVcjs.DRAFT_ISSUE_SEVERITY, found.code) ? _chunkF7UOLKWVcjs.DRAFT_ISSUE_SEVERITY[found.code] : void 0;
1213
1214
  return {
1214
1215
  ...found,
1215
1216
  path: found.path.map(String),
@@ -1273,9 +1274,9 @@ function redactValue(value, policy, reveal) {
1273
1274
  }
1274
1275
  function redact(data, options = {}) {
1275
1276
  const reveal = _nullishCoalesce(options.reveal, () => ( "none"));
1276
- const descriptor = _chunkQFWEF5STcjs.getActivityTypeDescriptor.call(void 0, data.type);
1277
+ const descriptor = _chunkF7UOLKWVcjs.getActivityTypeDescriptor.call(void 0, data.type);
1277
1278
  if (descriptor === void 0) {
1278
- throw new (0, _chunkQFWEF5STcjs.UnknownActivityTypeError)(String(data.type));
1279
+ throw new (0, _chunkF7UOLKWVcjs.UnknownActivityTypeError)(String(data.type));
1279
1280
  }
1280
1281
  if (descriptor.fieldPolicy === void 0) {
1281
1282
  throw new Error(
@@ -1288,7 +1289,7 @@ function redact(data, options = {}) {
1288
1289
  if (reveal === "none" && descriptor.redactedSchema !== void 0) {
1289
1290
  const parsed = descriptor.redactedSchema.safeParse(result);
1290
1291
  if (!parsed.success) {
1291
- throw new (0, _chunkQFWEF5STcjs.ActivitySchemaError)(
1292
+ throw new (0, _chunkF7UOLKWVcjs.ActivitySchemaError)(
1292
1293
  descriptor.type,
1293
1294
  parsed.error.issues.map((issue2) => ({
1294
1295
  path: issue2.path.map(String),
@@ -1302,13 +1303,13 @@ function redact(data, options = {}) {
1302
1303
  }
1303
1304
  function assertRedacted(data) {
1304
1305
  if (typeof data !== "object" || data === null) {
1305
- throw new (0, _chunkQFWEF5STcjs.ActivitySchemaError)("unknown", [
1306
+ throw new (0, _chunkF7UOLKWVcjs.ActivitySchemaError)("unknown", [
1306
1307
  { path: [], message: "Redacted activity data must be an object.", code: "invalid_type" }
1307
1308
  ]);
1308
1309
  }
1309
1310
  const candidate = data;
1310
1311
  if (candidate.redacted !== true) {
1311
- throw new (0, _chunkQFWEF5STcjs.ActivitySchemaError)(String(_nullishCoalesce(candidate.type, () => ( "unknown"))), [
1312
+ throw new (0, _chunkF7UOLKWVcjs.ActivitySchemaError)(String(_nullishCoalesce(candidate.type, () => ( "unknown"))), [
1312
1313
  {
1313
1314
  path: ["redacted"],
1314
1315
  message: "Missing redacted marker \u2014 this payload is not a redact() projection.",
@@ -1317,12 +1318,12 @@ function assertRedacted(data) {
1317
1318
  ]);
1318
1319
  }
1319
1320
  const type = typeof candidate.type === "string" ? candidate.type : "";
1320
- const descriptor = _chunkQFWEF5STcjs.getActivityTypeDescriptor.call(void 0, type);
1321
+ const descriptor = _chunkF7UOLKWVcjs.getActivityTypeDescriptor.call(void 0, type);
1321
1322
  if (descriptor === void 0) {
1322
- throw new (0, _chunkQFWEF5STcjs.UnknownActivityTypeError)(type);
1323
+ throw new (0, _chunkF7UOLKWVcjs.UnknownActivityTypeError)(type);
1323
1324
  }
1324
1325
  if (descriptor.redactedSchema === void 0) {
1325
- throw new (0, _chunkQFWEF5STcjs.ActivitySchemaError)(descriptor.type, [
1326
+ throw new (0, _chunkF7UOLKWVcjs.ActivitySchemaError)(descriptor.type, [
1326
1327
  {
1327
1328
  path: [],
1328
1329
  message: `Activity type "${descriptor.type}" registers no redactedSchema; assertRedacted cannot prove this payload is learner-safe.`,
@@ -1332,7 +1333,7 @@ function assertRedacted(data) {
1332
1333
  }
1333
1334
  const parsed = descriptor.redactedSchema.safeParse(candidate);
1334
1335
  if (!parsed.success) {
1335
- throw new (0, _chunkQFWEF5STcjs.ActivitySchemaError)(
1336
+ throw new (0, _chunkF7UOLKWVcjs.ActivitySchemaError)(
1336
1337
  descriptor.type,
1337
1338
  parsed.error.issues.map((issue2) => ({
1338
1339
  path: issue2.path.map(String),
@@ -1348,7 +1349,7 @@ var STIMULUS_FIELD_POLICY = {
1348
1349
  title: "public",
1349
1350
  body: "public",
1350
1351
  bodyHtml: "public",
1351
- media: _chunkQFWEF5STcjs.MEDIA_FIELD_POLICY,
1352
+ media: _chunkF7UOLKWVcjs.MEDIA_FIELD_POLICY,
1352
1353
  locale: "public",
1353
1354
  attribution: "public",
1354
1355
  transcript: "author-only"
@@ -1392,9 +1393,9 @@ function redactItemGroup(group, options = {}) {
1392
1393
  redacted: true
1393
1394
  };
1394
1395
  if (reveal === "none") {
1395
- const parsed = _chunkW7AQP6AVcjs.RedactedItemGroupSchema.safeParse(result);
1396
+ const parsed = _chunkFJJ2GVBAcjs.RedactedItemGroupSchema.safeParse(result);
1396
1397
  if (!parsed.success) {
1397
- throw new (0, _chunkQFWEF5STcjs.ActivitySchemaError)(
1398
+ throw new (0, _chunkF7UOLKWVcjs.ActivitySchemaError)(
1398
1399
  "item-group",
1399
1400
  parsed.error.issues.map((issue2) => ({
1400
1401
  path: issue2.path.map(String),
@@ -1408,13 +1409,13 @@ function redactItemGroup(group, options = {}) {
1408
1409
  }
1409
1410
  function assertRedactedItemGroup(data) {
1410
1411
  if (typeof data !== "object" || data === null) {
1411
- throw new (0, _chunkQFWEF5STcjs.ActivitySchemaError)("item-group", [
1412
+ throw new (0, _chunkF7UOLKWVcjs.ActivitySchemaError)("item-group", [
1412
1413
  { path: [], message: "Redacted item group must be an object.", code: "invalid_type" }
1413
1414
  ]);
1414
1415
  }
1415
1416
  const candidate = data;
1416
1417
  if (candidate.redacted !== true) {
1417
- throw new (0, _chunkQFWEF5STcjs.ActivitySchemaError)("item-group", [
1418
+ throw new (0, _chunkF7UOLKWVcjs.ActivitySchemaError)("item-group", [
1418
1419
  {
1419
1420
  path: ["redacted"],
1420
1421
  message: "Missing redacted marker \u2014 this payload is not a redactItemGroup() projection.",
@@ -1422,9 +1423,9 @@ function assertRedactedItemGroup(data) {
1422
1423
  }
1423
1424
  ]);
1424
1425
  }
1425
- const parsed = _chunkW7AQP6AVcjs.RedactedItemGroupSchema.safeParse(candidate);
1426
+ const parsed = _chunkFJJ2GVBAcjs.RedactedItemGroupSchema.safeParse(candidate);
1426
1427
  if (!parsed.success) {
1427
- throw new (0, _chunkQFWEF5STcjs.ActivitySchemaError)(
1428
+ throw new (0, _chunkF7UOLKWVcjs.ActivitySchemaError)(
1428
1429
  "item-group",
1429
1430
  parsed.error.issues.map((issue2) => ({
1430
1431
  path: issue2.path.map(String),
@@ -1437,8 +1438,8 @@ function assertRedactedItemGroup(data) {
1437
1438
  try {
1438
1439
  assertRedacted(item);
1439
1440
  } catch (error) {
1440
- if (error instanceof _chunkQFWEF5STcjs.ActivitySchemaError) {
1441
- throw new (0, _chunkQFWEF5STcjs.ActivitySchemaError)(
1441
+ if (error instanceof _chunkF7UOLKWVcjs.ActivitySchemaError) {
1442
+ throw new (0, _chunkF7UOLKWVcjs.ActivitySchemaError)(
1442
1443
  "item-group",
1443
1444
  error.errors.map((issue2) => ({
1444
1445
  ...issue2,
@@ -1483,7 +1484,7 @@ function composeTimelineScore(entryKey, items, policy) {
1483
1484
  `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.`
1484
1485
  );
1485
1486
  }
1486
- return _chunk5KWF34LJcjs.composeAssessmentScore.call(void 0, [{ id: entryKey, weight: 1, items: own }], policy);
1487
+ return _chunk6P6XK2LIcjs.composeAssessmentScore.call(void 0, [{ id: entryKey, weight: 1, items: own }], policy);
1487
1488
  }
1488
1489
 
1489
1490
 
@@ -1631,5 +1632,5 @@ function composeTimelineScore(entryKey, items, policy) {
1631
1632
 
1632
1633
 
1633
1634
 
1634
- exports.ActivitySchemaError = _chunkQFWEF5STcjs.ActivitySchemaError; exports.BlankConfigSchema = _chunkQFWEF5STcjs.BlankConfigSchema; exports.DEFAULT_PASS_THRESHOLD = _chunk5KWF34LJcjs.DEFAULT_PASS_THRESHOLD; exports.DICTATION_MAX_ACCEPTED_TRANSCRIPTS = _chunkQFWEF5STcjs.DICTATION_MAX_ACCEPTED_TRANSCRIPTS; exports.DICTATION_MAX_EQUIVALENCES = _chunkQFWEF5STcjs.DICTATION_MAX_EQUIVALENCES; exports.DICTATION_MAX_EQUIVALENCE_LENGTH = _chunkQFWEF5STcjs.DICTATION_MAX_EQUIVALENCE_LENGTH; exports.DICTATION_MAX_TEXT_LENGTH = _chunkQFWEF5STcjs.DICTATION_MAX_TEXT_LENGTH; exports.DICTATION_MAX_TRANSCRIPT_LENGTH = _chunkQFWEF5STcjs.DICTATION_MAX_TRANSCRIPT_LENGTH; exports.DeferredScoringError = _chunkQFWEF5STcjs.DeferredScoringError; exports.DictationDataSchema = _chunkQFWEF5STcjs.DictationDataSchema; exports.DictationEquivalenceSchema = _chunkQFWEF5STcjs.DictationEquivalenceSchema; exports.DictationSlowMediaSchema = _chunkQFWEF5STcjs.DictationSlowMediaSchema; exports.DictationToleranceSchema = _chunkQFWEF5STcjs.DictationToleranceSchema; exports.FeedbackSchema = _chunkQFWEF5STcjs.FeedbackSchema; exports.FillInTheBlanksDataSchema = _chunkQFWEF5STcjs.FillInTheBlanksDataSchema; exports.GapSelectBankSchema = _chunkQFWEF5STcjs.GapSelectBankSchema; exports.GapSelectChoiceSchema = _chunkQFWEF5STcjs.GapSelectChoiceSchema; exports.GapSelectDataSchema = _chunkQFWEF5STcjs.GapSelectDataSchema; exports.GapSelectGapSchema = _chunkQFWEF5STcjs.GapSelectGapSchema; exports.INTERACTIVE_VIDEO_ITEM_TYPES = _chunkW7AQP6AVcjs.INTERACTIVE_VIDEO_ITEM_TYPES; exports.ItemGroupSchema = _chunkW7AQP6AVcjs.ItemGroupSchema; exports.MediaPlaybackSchema = _chunkQFWEF5STcjs.MediaPlaybackSchema; exports.MediaSchema = _chunkQFWEF5STcjs.MediaSchema; exports.MediaTimelineSchema = _chunkW7AQP6AVcjs.MediaTimelineSchema; exports.MediaTrackSchema = _chunkQFWEF5STcjs.MediaTrackSchema; exports.MediaUrlSchema = _chunkQFWEF5STcjs.MediaUrlSchema; exports.MultipleChoiceDataSchema = _chunkQFWEF5STcjs.MultipleChoiceDataSchema; exports.MultipleChoiceOptionMediaSchema = _chunkQFWEF5STcjs.MultipleChoiceOptionMediaSchema; exports.MultipleChoiceOptionSchema = _chunkQFWEF5STcjs.MultipleChoiceOptionSchema; exports.NativeControlHintSchema = _chunkQFWEF5STcjs.NativeControlHintSchema; exports.READ_ALOUD_MAX_DIMENSION_WEIGHT = _chunkQFWEF5STcjs.READ_ALOUD_MAX_DIMENSION_WEIGHT; exports.READ_ALOUD_MAX_REFERENCE_LENGTH = _chunkQFWEF5STcjs.READ_ALOUD_MAX_REFERENCE_LENGTH; exports.READ_ALOUD_MAX_SECONDS = _chunkQFWEF5STcjs.READ_ALOUD_MAX_SECONDS; exports.READ_ALOUD_MAX_TAKES = _chunkQFWEF5STcjs.READ_ALOUD_MAX_TAKES; exports.ReadAloudDataSchema = _chunkQFWEF5STcjs.ReadAloudDataSchema; exports.ReadAloudSlowMediaSchema = _chunkQFWEF5STcjs.ReadAloudSlowMediaSchema; exports.RedactedBlankConfigSchema = _chunkQFWEF5STcjs.RedactedBlankConfigSchema; exports.RedactedDictationDataSchema = _chunkQFWEF5STcjs.RedactedDictationDataSchema; exports.RedactedDictationSlowMediaSchema = _chunkQFWEF5STcjs.RedactedDictationSlowMediaSchema; exports.RedactedFillInTheBlanksDataSchema = _chunkQFWEF5STcjs.RedactedFillInTheBlanksDataSchema; exports.RedactedGapSelectBankSchema = _chunkQFWEF5STcjs.RedactedGapSelectBankSchema; exports.RedactedGapSelectChoiceSchema = _chunkQFWEF5STcjs.RedactedGapSelectChoiceSchema; exports.RedactedGapSelectDataSchema = _chunkQFWEF5STcjs.RedactedGapSelectDataSchema; exports.RedactedGapSelectGapSchema = _chunkQFWEF5STcjs.RedactedGapSelectGapSchema; exports.RedactedItemGroupSchema = _chunkW7AQP6AVcjs.RedactedItemGroupSchema; exports.RedactedMediaSchema = _chunkQFWEF5STcjs.RedactedMediaSchema; exports.RedactedMultipleChoiceDataSchema = _chunkQFWEF5STcjs.RedactedMultipleChoiceDataSchema; exports.RedactedMultipleChoiceOptionMediaSchema = _chunkQFWEF5STcjs.RedactedMultipleChoiceOptionMediaSchema; exports.RedactedMultipleChoiceOptionSchema = _chunkQFWEF5STcjs.RedactedMultipleChoiceOptionSchema; exports.RedactedReadAloudDataSchema = _chunkQFWEF5STcjs.RedactedReadAloudDataSchema; exports.RedactedScoringError = _chunkQFWEF5STcjs.RedactedScoringError; exports.RedactedStimulusSchema = _chunkW7AQP6AVcjs.RedactedStimulusSchema; exports.RedactedWrittenResponseDataSchema = _chunkQFWEF5STcjs.RedactedWrittenResponseDataSchema; exports.SPEECH_ASSESSMENT_MAX_WORDS = _chunkQFWEF5STcjs.SPEECH_ASSESSMENT_MAX_WORDS; exports.StimulusSchema = _chunkW7AQP6AVcjs.StimulusSchema; exports.TIMELINE_MAX_CHAPTERS = _chunkW7AQP6AVcjs.TIMELINE_MAX_CHAPTERS; exports.TIMELINE_MAX_ITEMS = _chunkW7AQP6AVcjs.TIMELINE_MAX_ITEMS; exports.TIMELINE_MAX_QUIZZES = _chunkW7AQP6AVcjs.TIMELINE_MAX_QUIZZES; exports.TIMELINE_MAX_TITLE_LENGTH = _chunkW7AQP6AVcjs.TIMELINE_MAX_TITLE_LENGTH; exports.TextMatchPolicySchema = _chunkQFWEF5STcjs.TextMatchPolicySchema; exports.TimelineChapterSchema = _chunkW7AQP6AVcjs.TimelineChapterSchema; exports.TimelineCueSchema = _chunkW7AQP6AVcjs.TimelineCueSchema; exports.UnknownActivityTypeError = _chunkQFWEF5STcjs.UnknownActivityTypeError; exports.WrittenResponseDataSchema = _chunkQFWEF5STcjs.WrittenResponseDataSchema; exports.WrittenResponseRubricCriterionSchema = _chunkQFWEF5STcjs.WrittenResponseRubricCriterionSchema; exports.WrittenResponseRubricSchema = _chunkQFWEF5STcjs.WrittenResponseRubricSchema; exports.XAPIVerb = _chunk7ETU6EXQcjs.XAPIVerb; exports.XAPI_VERB_DISPLAY = _chunk7ETU6EXQcjs.XAPI_VERB_DISPLAY; exports.alignDictation = _chunkQFWEF5STcjs.alignDictation; exports.alignReadAloud = _chunk5KWF34LJcjs.alignReadAloud; exports.assertRedacted = assertRedacted; exports.assertRedactedItemGroup = assertRedactedItemGroup; exports.canonicalJson = canonicalJson; exports.classifyBand = _chunk5KWF34LJcjs.classifyBand; exports.composeAssessmentScore = _chunk5KWF34LJcjs.composeAssessmentScore; exports.composeTimelineScore = composeTimelineScore; exports.computePassThreshold = _chunk5KWF34LJcjs.computePassThreshold; exports.contentHash = contentHash; exports.countWords = _chunkQFWEF5STcjs.countWords; exports.createDraft = createDraft; exports.createInteractiveVideoDraft = createInteractiveVideoDraft; exports.createItemGroupDraft = createItemGroupDraft; exports.defineActivityType = _chunkQFWEF5STcjs.defineActivityType; exports.dictationJsonSchema = _chunkW7AQP6AVcjs.dictationJsonSchema; exports.dictationReferenceWords = _chunkQFWEF5STcjs.dictationReferenceWords; exports.dictationType = _chunkQFWEF5STcjs.dictationType; exports.diffDictationChars = _chunk5KWF34LJcjs.diffDictationChars; exports.diffResponses = diffResponses; exports.entryKeyOf = entryKeyOf; exports.evaluate = _chunk5KWF34LJcjs.evaluate; exports.fillInTheBlanksJsonSchema = _chunkW7AQP6AVcjs.fillInTheBlanksJsonSchema; exports.fillInTheBlanksType = _chunkQFWEF5STcjs.fillInTheBlanksType; exports.fingerprint = fingerprint; exports.flattenSequence = flattenSequence; exports.gapSelectJsonSchema = _chunkW7AQP6AVcjs.gapSelectJsonSchema; exports.gapSelectType = _chunkQFWEF5STcjs.gapSelectType; exports.getActivityTypeDescriptor = _chunkQFWEF5STcjs.getActivityTypeDescriptor; exports.gradeFromRubric = _chunk5KWF34LJcjs.gradeFromRubric; exports.gradeReadAloud = _chunk5KWF34LJcjs.gradeReadAloud; exports.gte = _chunk5KWF34LJcjs.gte; exports.hasGrade = _chunk5KWF34LJcjs.hasGrade; exports.hashSeed = hashSeed; exports.inspectWav = _chunk5KWF34LJcjs.inspectWav; exports.isInteractiveVideoItemType = _chunkW7AQP6AVcjs.isInteractiveVideoItemType; exports.isItemGroup = isItemGroup; exports.itemGroupJsonSchema = _chunkW7AQP6AVcjs.itemGroupJsonSchema; exports.jsonSchemaFor = _chunkW7AQP6AVcjs.jsonSchemaFor; exports.levenshteinDistance = _chunkQFWEF5STcjs.levenshteinDistance; exports.matchText = _chunkQFWEF5STcjs.matchText; exports.multipleChoiceJsonSchema = _chunkW7AQP6AVcjs.multipleChoiceJsonSchema; exports.multipleChoiceType = _chunkQFWEF5STcjs.multipleChoiceType; exports.outcomeFromGrade = _chunk5KWF34LJcjs.outcomeFromGrade; exports.outcomeFromUnscorable = _chunk5KWF34LJcjs.outcomeFromUnscorable; exports.planAttempt = planAttempt; exports.planMediaBudgets = planMediaBudgets; exports.readAloudJsonSchema = _chunkW7AQP6AVcjs.readAloudJsonSchema; exports.readAloudType = _chunkQFWEF5STcjs.readAloudType; exports.readMediaProgress = readMediaProgress; exports.redact = redact; exports.redactItemGroup = redactItemGroup; exports.registerActivityType = _chunkQFWEF5STcjs.registerActivityType; exports.registeredActivityTypes = _chunkQFWEF5STcjs.registeredActivityTypes; exports.resolvePlaybackPolicy = resolvePlaybackPolicy; exports.restoreAttemptState = restoreAttemptState; exports.restoreMediaPlayLedger = restoreMediaPlayLedger; exports.roundGrade = _chunk5KWF34LJcjs.roundGrade; exports.score = _chunk5KWF34LJcjs.score; exports.scoredItemsFromPlan = scoredItemsFromPlan; exports.seededShuffle = seededShuffle; exports.serializeAttemptState = serializeAttemptState; exports.serializeMediaPlayLedger = serializeMediaPlayLedger; exports.slotMediaKey = slotMediaKey; exports.stimulusJsonSchema = _chunkW7AQP6AVcjs.stimulusJsonSchema; exports.stimulusMediaKey = stimulusMediaKey; exports.validateActivity = _chunkW7AQP6AVcjs.validateActivity; exports.validateDraft = validateDraft; exports.validateItemGroup = _chunkW7AQP6AVcjs.validateItemGroup; exports.validateItemGroupDraft = validateItemGroupDraft; exports.validateSpeechAssessment = _chunk5KWF34LJcjs.validateSpeechAssessment; exports.validateXAPIStatement = _chunk7ETU6EXQcjs.validateXAPIStatement; exports.verifyAttemptPlan = verifyAttemptPlan; exports.writtenResponseJsonSchema = _chunkW7AQP6AVcjs.writtenResponseJsonSchema; exports.writtenResponseType = _chunkQFWEF5STcjs.writtenResponseType; exports.xAPIBuilder = _chunk7ETU6EXQcjs.xAPIBuilder; exports.xapiDefinitionFor = _chunk7ETU6EXQcjs.xapiDefinitionFor;
1635
+ exports.ActivitySchemaError = _chunkF7UOLKWVcjs.ActivitySchemaError; exports.BlankConfigSchema = _chunkF7UOLKWVcjs.BlankConfigSchema; exports.DEFAULT_PASS_THRESHOLD = _chunk6P6XK2LIcjs.DEFAULT_PASS_THRESHOLD; exports.DICTATION_MAX_ACCEPTED_TRANSCRIPTS = _chunkF7UOLKWVcjs.DICTATION_MAX_ACCEPTED_TRANSCRIPTS; exports.DICTATION_MAX_EQUIVALENCES = _chunkF7UOLKWVcjs.DICTATION_MAX_EQUIVALENCES; exports.DICTATION_MAX_EQUIVALENCE_LENGTH = _chunkF7UOLKWVcjs.DICTATION_MAX_EQUIVALENCE_LENGTH; exports.DICTATION_MAX_TEXT_LENGTH = _chunkF7UOLKWVcjs.DICTATION_MAX_TEXT_LENGTH; exports.DICTATION_MAX_TRANSCRIPT_LENGTH = _chunkF7UOLKWVcjs.DICTATION_MAX_TRANSCRIPT_LENGTH; exports.DeferredScoringError = _chunkF7UOLKWVcjs.DeferredScoringError; exports.DictationDataSchema = _chunkF7UOLKWVcjs.DictationDataSchema; exports.DictationEquivalenceSchema = _chunkF7UOLKWVcjs.DictationEquivalenceSchema; exports.DictationSlowMediaSchema = _chunkF7UOLKWVcjs.DictationSlowMediaSchema; exports.DictationToleranceSchema = _chunkF7UOLKWVcjs.DictationToleranceSchema; exports.FeedbackSchema = _chunkF7UOLKWVcjs.FeedbackSchema; exports.FillInTheBlanksDataSchema = _chunkF7UOLKWVcjs.FillInTheBlanksDataSchema; exports.GapSelectBankSchema = _chunkF7UOLKWVcjs.GapSelectBankSchema; exports.GapSelectChoiceSchema = _chunkF7UOLKWVcjs.GapSelectChoiceSchema; exports.GapSelectDataSchema = _chunkF7UOLKWVcjs.GapSelectDataSchema; exports.GapSelectGapSchema = _chunkF7UOLKWVcjs.GapSelectGapSchema; exports.INTERACTIVE_VIDEO_ITEM_TYPES = _chunkFJJ2GVBAcjs.INTERACTIVE_VIDEO_ITEM_TYPES; exports.ItemGroupSchema = _chunkFJJ2GVBAcjs.ItemGroupSchema; exports.MediaPlaybackSchema = _chunkF7UOLKWVcjs.MediaPlaybackSchema; exports.MediaSchema = _chunkF7UOLKWVcjs.MediaSchema; exports.MediaTimelineSchema = _chunkFJJ2GVBAcjs.MediaTimelineSchema; exports.MediaTrackSchema = _chunkF7UOLKWVcjs.MediaTrackSchema; exports.MediaUrlSchema = _chunkF7UOLKWVcjs.MediaUrlSchema; exports.MultipleChoiceDataSchema = _chunkF7UOLKWVcjs.MultipleChoiceDataSchema; exports.MultipleChoiceOptionMediaSchema = _chunkF7UOLKWVcjs.MultipleChoiceOptionMediaSchema; exports.MultipleChoiceOptionSchema = _chunkF7UOLKWVcjs.MultipleChoiceOptionSchema; exports.NativeControlHintSchema = _chunkF7UOLKWVcjs.NativeControlHintSchema; exports.READ_ALOUD_MAX_DIMENSION_WEIGHT = _chunkF7UOLKWVcjs.READ_ALOUD_MAX_DIMENSION_WEIGHT; exports.READ_ALOUD_MAX_REFERENCE_LENGTH = _chunkF7UOLKWVcjs.READ_ALOUD_MAX_REFERENCE_LENGTH; exports.READ_ALOUD_MAX_SECONDS = _chunkF7UOLKWVcjs.READ_ALOUD_MAX_SECONDS; exports.READ_ALOUD_MAX_TAKES = _chunkF7UOLKWVcjs.READ_ALOUD_MAX_TAKES; exports.ReadAloudDataSchema = _chunkF7UOLKWVcjs.ReadAloudDataSchema; exports.ReadAloudSlowMediaSchema = _chunkF7UOLKWVcjs.ReadAloudSlowMediaSchema; exports.RedactedBlankConfigSchema = _chunkF7UOLKWVcjs.RedactedBlankConfigSchema; exports.RedactedDictationDataSchema = _chunkF7UOLKWVcjs.RedactedDictationDataSchema; exports.RedactedDictationSlowMediaSchema = _chunkF7UOLKWVcjs.RedactedDictationSlowMediaSchema; exports.RedactedFillInTheBlanksDataSchema = _chunkF7UOLKWVcjs.RedactedFillInTheBlanksDataSchema; exports.RedactedGapSelectBankSchema = _chunkF7UOLKWVcjs.RedactedGapSelectBankSchema; exports.RedactedGapSelectChoiceSchema = _chunkF7UOLKWVcjs.RedactedGapSelectChoiceSchema; exports.RedactedGapSelectDataSchema = _chunkF7UOLKWVcjs.RedactedGapSelectDataSchema; exports.RedactedGapSelectGapSchema = _chunkF7UOLKWVcjs.RedactedGapSelectGapSchema; exports.RedactedItemGroupSchema = _chunkFJJ2GVBAcjs.RedactedItemGroupSchema; exports.RedactedMediaSchema = _chunkF7UOLKWVcjs.RedactedMediaSchema; exports.RedactedMultipleChoiceDataSchema = _chunkF7UOLKWVcjs.RedactedMultipleChoiceDataSchema; exports.RedactedMultipleChoiceOptionMediaSchema = _chunkF7UOLKWVcjs.RedactedMultipleChoiceOptionMediaSchema; exports.RedactedMultipleChoiceOptionSchema = _chunkF7UOLKWVcjs.RedactedMultipleChoiceOptionSchema; exports.RedactedReadAloudDataSchema = _chunkF7UOLKWVcjs.RedactedReadAloudDataSchema; exports.RedactedScoringError = _chunkF7UOLKWVcjs.RedactedScoringError; exports.RedactedStimulusSchema = _chunkFJJ2GVBAcjs.RedactedStimulusSchema; exports.RedactedWrittenResponseDataSchema = _chunkF7UOLKWVcjs.RedactedWrittenResponseDataSchema; exports.SPEECH_ASSESSMENT_MAX_WORDS = _chunkF7UOLKWVcjs.SPEECH_ASSESSMENT_MAX_WORDS; exports.StimulusSchema = _chunkFJJ2GVBAcjs.StimulusSchema; exports.TIMELINE_MAX_CHAPTERS = _chunkFJJ2GVBAcjs.TIMELINE_MAX_CHAPTERS; exports.TIMELINE_MAX_ITEMS = _chunkFJJ2GVBAcjs.TIMELINE_MAX_ITEMS; exports.TIMELINE_MAX_QUIZZES = _chunkFJJ2GVBAcjs.TIMELINE_MAX_QUIZZES; exports.TIMELINE_MAX_TITLE_LENGTH = _chunkFJJ2GVBAcjs.TIMELINE_MAX_TITLE_LENGTH; exports.TextMatchPolicySchema = _chunkF7UOLKWVcjs.TextMatchPolicySchema; exports.TimelineChapterSchema = _chunkFJJ2GVBAcjs.TimelineChapterSchema; exports.TimelineCueSchema = _chunkFJJ2GVBAcjs.TimelineCueSchema; exports.UnknownActivityTypeError = _chunkF7UOLKWVcjs.UnknownActivityTypeError; exports.WrittenResponseDataSchema = _chunkF7UOLKWVcjs.WrittenResponseDataSchema; exports.WrittenResponseRubricCriterionSchema = _chunkF7UOLKWVcjs.WrittenResponseRubricCriterionSchema; exports.WrittenResponseRubricSchema = _chunkF7UOLKWVcjs.WrittenResponseRubricSchema; exports.XAPIVerb = _chunkVFTVZJO5cjs.XAPIVerb; exports.XAPI_VERB_DISPLAY = _chunkVFTVZJO5cjs.XAPI_VERB_DISPLAY; exports.alignDictation = _chunkF7UOLKWVcjs.alignDictation; exports.alignReadAloud = _chunk6P6XK2LIcjs.alignReadAloud; exports.assertRedacted = assertRedacted; exports.assertRedactedItemGroup = assertRedactedItemGroup; exports.canonicalJson = canonicalJson; exports.classifyBand = _chunk6P6XK2LIcjs.classifyBand; exports.composeAssessmentScore = _chunk6P6XK2LIcjs.composeAssessmentScore; exports.composeTimelineScore = composeTimelineScore; exports.computePassThreshold = _chunk6P6XK2LIcjs.computePassThreshold; exports.contentHash = contentHash; exports.countWords = _chunkF7UOLKWVcjs.countWords; exports.createDraft = createDraft; exports.createInteractiveVideoDraft = createInteractiveVideoDraft; exports.createItemGroupDraft = createItemGroupDraft; exports.defineActivityType = _chunkF7UOLKWVcjs.defineActivityType; exports.dictationJsonSchema = _chunkFJJ2GVBAcjs.dictationJsonSchema; exports.dictationReferenceWords = _chunkF7UOLKWVcjs.dictationReferenceWords; exports.dictationType = _chunkF7UOLKWVcjs.dictationType; exports.diffDictationChars = _chunk6P6XK2LIcjs.diffDictationChars; exports.diffResponses = diffResponses; exports.entryKeyOf = entryKeyOf; exports.evaluate = _chunk6P6XK2LIcjs.evaluate; exports.fillInTheBlanksJsonSchema = _chunkFJJ2GVBAcjs.fillInTheBlanksJsonSchema; exports.fillInTheBlanksType = _chunkF7UOLKWVcjs.fillInTheBlanksType; exports.fingerprint = fingerprint; exports.flattenSequence = flattenSequence; exports.gapSelectJsonSchema = _chunkFJJ2GVBAcjs.gapSelectJsonSchema; exports.gapSelectType = _chunkF7UOLKWVcjs.gapSelectType; exports.getActivityTypeDescriptor = _chunkF7UOLKWVcjs.getActivityTypeDescriptor; exports.gradeFromRubric = _chunk6P6XK2LIcjs.gradeFromRubric; exports.gradeReadAloud = _chunk6P6XK2LIcjs.gradeReadAloud; exports.gte = _chunk6P6XK2LIcjs.gte; exports.hasGrade = _chunk6P6XK2LIcjs.hasGrade; exports.hashSeed = hashSeed; exports.inspectWav = _chunk6P6XK2LIcjs.inspectWav; exports.isInteractiveVideoItemType = _chunkFJJ2GVBAcjs.isInteractiveVideoItemType; exports.isItemGroup = isItemGroup; exports.itemGroupJsonSchema = _chunkFJJ2GVBAcjs.itemGroupJsonSchema; exports.jsonSchemaFor = _chunkFJJ2GVBAcjs.jsonSchemaFor; exports.levenshteinDistance = _chunkF7UOLKWVcjs.levenshteinDistance; exports.matchText = _chunkF7UOLKWVcjs.matchText; exports.multipleChoiceJsonSchema = _chunkFJJ2GVBAcjs.multipleChoiceJsonSchema; exports.multipleChoiceType = _chunkF7UOLKWVcjs.multipleChoiceType; exports.outcomeFromGrade = _chunk6P6XK2LIcjs.outcomeFromGrade; exports.outcomeFromUnscorable = _chunk6P6XK2LIcjs.outcomeFromUnscorable; exports.planAttempt = planAttempt; exports.planMediaBudgets = planMediaBudgets; exports.readAloudJsonSchema = _chunkFJJ2GVBAcjs.readAloudJsonSchema; exports.readAloudType = _chunkF7UOLKWVcjs.readAloudType; exports.readMediaProgress = readMediaProgress; exports.redact = redact; exports.redactItemGroup = redactItemGroup; exports.registerActivityType = _chunkF7UOLKWVcjs.registerActivityType; exports.registeredActivityTypes = _chunkF7UOLKWVcjs.registeredActivityTypes; exports.resolvePlaybackPolicy = resolvePlaybackPolicy; exports.restoreAttemptState = restoreAttemptState; exports.restoreMediaPlayLedger = restoreMediaPlayLedger; exports.roundGrade = _chunk6P6XK2LIcjs.roundGrade; exports.score = _chunk6P6XK2LIcjs.score; exports.scoredItemsFromPlan = scoredItemsFromPlan; exports.seededShuffle = seededShuffle; exports.serializeAttemptState = serializeAttemptState; exports.serializeMediaPlayLedger = serializeMediaPlayLedger; exports.slotMediaKey = slotMediaKey; exports.stimulusJsonSchema = _chunkFJJ2GVBAcjs.stimulusJsonSchema; exports.stimulusMediaKey = stimulusMediaKey; exports.validateActivity = _chunkFJJ2GVBAcjs.validateActivity; exports.validateDraft = validateDraft; exports.validateItemGroup = _chunkFJJ2GVBAcjs.validateItemGroup; exports.validateItemGroupDraft = validateItemGroupDraft; exports.validateSpeechAssessment = _chunk6P6XK2LIcjs.validateSpeechAssessment; exports.validateXAPIStatement = _chunkVFTVZJO5cjs.validateXAPIStatement; exports.verifyAttemptPlan = verifyAttemptPlan; exports.writtenResponseJsonSchema = _chunkFJJ2GVBAcjs.writtenResponseJsonSchema; exports.writtenResponseType = _chunkF7UOLKWVcjs.writtenResponseType; exports.xAPIBuilder = _chunkVFTVZJO5cjs.xAPIBuilder; exports.xapiDefinitionFor = _chunkVFTVZJO5cjs.xapiDefinitionFor;
1635
1636
  //# sourceMappingURL=index.cjs.map