@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.
- package/CHANGELOG.md +29 -0
- package/dist/{activity-C7cR8U9n.d.cts → activity-DcxtpX7Z.d.cts} +5 -1
- package/dist/{activity-C7cR8U9n.d.ts → activity-DcxtpX7Z.d.ts} +5 -1
- package/dist/{chunk-5KWF34LJ.cjs → chunk-6P6XK2LI.cjs} +31 -31
- package/dist/{chunk-5KWF34LJ.cjs.map → chunk-6P6XK2LI.cjs.map} +1 -1
- package/dist/{chunk-QFWEF5ST.cjs → chunk-F7UOLKWV.cjs} +34 -23
- package/dist/chunk-F7UOLKWV.cjs.map +1 -0
- package/dist/{chunk-W7AQP6AV.cjs → chunk-FJJ2GVBA.cjs} +24 -22
- package/dist/chunk-FJJ2GVBA.cjs.map +1 -0
- package/dist/{chunk-EEMVWBPP.js → chunk-GOZGBVJP.js} +10 -8
- package/dist/chunk-GOZGBVJP.js.map +1 -0
- package/dist/{chunk-DPHX4E7X.js → chunk-IRUD73IQ.js} +34 -23
- package/dist/chunk-IRUD73IQ.js.map +1 -0
- package/dist/{chunk-54XYQ3CS.js → chunk-OXF7VT7S.js} +2 -2
- package/dist/{chunk-L6YBQXSB.js → chunk-S63IOKFP.js} +2 -2
- package/dist/{chunk-7ETU6EXQ.cjs → chunk-VFTVZJO5.cjs} +4 -4
- package/dist/{chunk-7ETU6EXQ.cjs.map → chunk-VFTVZJO5.cjs.map} +1 -1
- package/dist/{index-D10NaztZ.d.ts → index-BWpwZRQw.d.cts} +1 -1
- package/dist/{index-BWyMDlUS.d.cts → index-DRJqwO2y.d.ts} +1 -1
- package/dist/index.cjs +112 -111
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +17 -4
- package/dist/index.d.ts +17 -4
- package/dist/index.js +8 -7
- package/dist/index.js.map +1 -1
- package/dist/schemas.cjs +3 -3
- package/dist/schemas.d.cts +2 -2
- package/dist/schemas.d.ts +2 -2
- package/dist/schemas.js +2 -2
- package/dist/scoring.cjs +3 -3
- package/dist/scoring.d.cts +2 -2
- package/dist/scoring.d.ts +2 -2
- package/dist/scoring.js +2 -2
- package/dist/xapi.cjs +3 -3
- package/dist/xapi.d.cts +1 -1
- package/dist/xapi.d.ts +1 -1
- package/dist/xapi.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-DPHX4E7X.js.map +0 -1
- package/dist/chunk-EEMVWBPP.js.map +0 -1
- package/dist/chunk-QFWEF5ST.cjs.map +0 -1
- package/dist/chunk-W7AQP6AV.cjs.map +0 -1
- /package/dist/{chunk-54XYQ3CS.js.map → chunk-OXF7VT7S.js.map} +0 -0
- /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
|
|
19
|
+
var _chunk6P6XK2LIcjs = require('./chunk-6P6XK2LI.cjs');
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
var
|
|
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
|
|
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
|
|
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
|
|
711
|
+
return _chunkF7UOLKWVcjs.withValidationScope.call(void 0, () => validateItemGroupDraftInScope(draft));
|
|
712
712
|
}
|
|
713
713
|
function validateItemGroupDraftInScope(draft) {
|
|
714
714
|
const issues = [];
|
|
715
|
-
if (!
|
|
715
|
+
if (!_chunkF7UOLKWVcjs.isRecord.call(void 0, draft)) {
|
|
716
716
|
issues.push(
|
|
717
|
-
|
|
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 (
|
|
722
|
+
if (_chunkF7UOLKWVcjs.isRecord.call(void 0, draft.stimulus)) {
|
|
723
723
|
issues.push(...checkStimulus(draft.stimulus));
|
|
724
|
-
} else if (
|
|
724
|
+
} else if (_chunkF7UOLKWVcjs.isUnset.call(void 0, draft.stimulus)) {
|
|
725
725
|
issues.push(
|
|
726
|
-
|
|
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
|
-
|
|
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
|
-
|
|
740
|
+
_chunkF7UOLKWVcjs.issue.call(void 0,
|
|
740
741
|
"dc_captions_not_allowed",
|
|
741
|
-
["stimulus", "media",
|
|
742
|
-
|
|
742
|
+
["stimulus", "media", captions],
|
|
743
|
+
_chunkF7UOLKWVcjs.GROUP_CAPTIONS_REVEAL_DICTATION
|
|
743
744
|
)
|
|
744
745
|
);
|
|
745
746
|
}
|
|
746
|
-
const parsed =
|
|
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) =>
|
|
751
|
+
if (issues.some((known) => _chunkF7UOLKWVcjs.covers.call(void 0, known.path, path))) {
|
|
751
752
|
continue;
|
|
752
753
|
}
|
|
753
|
-
if (path.length > 0 &&
|
|
754
|
+
if (path.length > 0 && _chunkF7UOLKWVcjs.refusesEmpty.call(void 0, draft, schemaIssue)) {
|
|
754
755
|
issues.push(
|
|
755
|
-
|
|
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 =
|
|
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 (!
|
|
787
|
+
if (!_chunkF7UOLKWVcjs.isRecord.call(void 0, timeline)) {
|
|
787
788
|
return issues;
|
|
788
789
|
}
|
|
789
|
-
const stimulus =
|
|
790
|
-
if (stimulus !== void 0 && !
|
|
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
|
-
|
|
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 &&
|
|
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
|
-
|
|
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
|
-
|
|
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 (!
|
|
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" && !
|
|
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
|
-
|
|
829
|
+
_chunkF7UOLKWVcjs.issue.call(void 0,
|
|
829
830
|
"ig_timeline_item_type",
|
|
830
831
|
["items", index, "type"],
|
|
831
|
-
`An interactive video can hold ${
|
|
832
|
+
`An interactive video can hold ${_chunkFJJ2GVBAcjs.INTERACTIVE_VIDEO_ITEM_TYPES.join(", ")} questions only.`
|
|
832
833
|
)
|
|
833
834
|
);
|
|
834
835
|
}
|
|
835
|
-
if (type === "dictation" &&
|
|
836
|
+
if (type === "dictation" && _chunkF7UOLKWVcjs.isUnset.call(void 0, item.media)) {
|
|
836
837
|
issues.push(
|
|
837
|
-
|
|
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 (!
|
|
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 (
|
|
860
|
-
issues.push(
|
|
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
|
-
|
|
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 (
|
|
870
|
+
if (_chunkF7UOLKWVcjs.isUnset.call(void 0, cue.at)) {
|
|
870
871
|
issues.push(
|
|
871
|
-
|
|
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
|
-
|
|
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 (
|
|
887
|
+
if (_chunkF7UOLKWVcjs.isUnset.call(void 0, cue.itemIds) || Array.isArray(cue.itemIds) && cue.itemIds.length === 0) {
|
|
887
888
|
issues.push(
|
|
888
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 (!
|
|
934
|
+
if (!_chunkF7UOLKWVcjs.isRecord.call(void 0, chapter)) {
|
|
934
935
|
return;
|
|
935
936
|
}
|
|
936
|
-
if (
|
|
937
|
+
if (_chunkF7UOLKWVcjs.isUnwritten.call(void 0, chapter.title)) {
|
|
937
938
|
issues.push(
|
|
938
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
973
|
+
issues.push(_chunkF7UOLKWVcjs.issue.call(void 0, "type_mismatch", ["type"], `The draft's type must be "item-group".`));
|
|
973
974
|
}
|
|
974
|
-
if (
|
|
975
|
-
issues.push(
|
|
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 (!
|
|
978
|
+
if (!_chunkF7UOLKWVcjs.isUnset.call(void 0, draft.shuffle) && draft.shuffle !== "none" && draft.shuffle !== "within-group") {
|
|
978
979
|
issues.push(
|
|
979
|
-
|
|
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 (
|
|
999
|
-
issues.push(
|
|
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 (
|
|
1003
|
+
if (_chunkF7UOLKWVcjs.isUnwritten.call(void 0, kind)) {
|
|
1003
1004
|
issues.push(
|
|
1004
|
-
|
|
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
|
-
|
|
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 (
|
|
1021
|
-
issues.push(...
|
|
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 = !
|
|
1027
|
+
const htmlPresent = !_chunkF7UOLKWVcjs.isUnset.call(void 0, stimulus.bodyHtml);
|
|
1027
1028
|
if (!hasBody && (kind === "text" || kind === "mixed" || htmlPresent)) {
|
|
1028
1029
|
issues.push(
|
|
1029
|
-
|
|
1030
|
+
_chunkF7UOLKWVcjs.issue.call(void 0,
|
|
1030
1031
|
"ig_stimulus_body_required",
|
|
1031
1032
|
at("body"),
|
|
1032
|
-
|
|
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" &&
|
|
1037
|
+
if (kind !== "text" && _chunkF7UOLKWVcjs.isUnset.call(void 0, stimulus.media)) {
|
|
1037
1038
|
issues.push(
|
|
1038
|
-
|
|
1039
|
+
_chunkF7UOLKWVcjs.issue.call(void 0, "ig_stimulus_media_required", at("media"), "Add the recording, video or image.")
|
|
1039
1040
|
);
|
|
1040
|
-
} else if (
|
|
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
|
-
|
|
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(...
|
|
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 =
|
|
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
|
-
|
|
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 (!
|
|
1072
|
+
if (!_chunkF7UOLKWVcjs.isRecord.call(void 0, item)) {
|
|
1072
1073
|
continue;
|
|
1073
1074
|
}
|
|
1074
1075
|
const ordinal = index + 1;
|
|
1075
|
-
if (
|
|
1076
|
+
if (_chunkF7UOLKWVcjs.isMissingId.call(void 0, item.id)) {
|
|
1076
1077
|
issues.push(
|
|
1077
|
-
|
|
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
|
-
|
|
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 (
|
|
1096
|
+
if (_chunkF7UOLKWVcjs.isUnwritten.call(void 0, item.type)) {
|
|
1096
1097
|
issues.push(
|
|
1097
|
-
|
|
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
|
|
1113
|
+
if (!(error instanceof _chunkF7UOLKWVcjs.UnknownActivityTypeError) || error.activityType !== item.type) {
|
|
1113
1114
|
throw error;
|
|
1114
1115
|
}
|
|
1115
1116
|
issues.push(
|
|
1116
|
-
|
|
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
|
-
|
|
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
|
|
1139
|
+
return _chunkF7UOLKWVcjs.withValidationScope.call(void 0, () => validateDraftInScope(type, draft));
|
|
1139
1140
|
}
|
|
1140
1141
|
function validateDraftInScope(type, draft) {
|
|
1141
|
-
const descriptor =
|
|
1142
|
+
const descriptor = _chunkF7UOLKWVcjs.getActivityTypeDescriptor.call(void 0, type);
|
|
1142
1143
|
if (descriptor === void 0) {
|
|
1143
|
-
throw new (0,
|
|
1144
|
+
throw new (0, _chunkF7UOLKWVcjs.UnknownActivityTypeError)(String(type));
|
|
1144
1145
|
}
|
|
1145
|
-
const reported =
|
|
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 =
|
|
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(
|
|
1154
|
+
if (covered.has(_chunkF7UOLKWVcjs.pathKey.call(void 0, path))) {
|
|
1154
1155
|
continue;
|
|
1155
1156
|
}
|
|
1156
|
-
if (path.length > 0 &&
|
|
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
|
-
|
|
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 =
|
|
1186
|
+
const descriptor = _chunkF7UOLKWVcjs.getActivityTypeDescriptor.call(void 0, type);
|
|
1186
1187
|
if (descriptor === void 0) {
|
|
1187
|
-
throw new (0,
|
|
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(
|
|
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 =
|
|
1277
|
+
const descriptor = _chunkF7UOLKWVcjs.getActivityTypeDescriptor.call(void 0, data.type);
|
|
1277
1278
|
if (descriptor === void 0) {
|
|
1278
|
-
throw new (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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 =
|
|
1321
|
+
const descriptor = _chunkF7UOLKWVcjs.getActivityTypeDescriptor.call(void 0, type);
|
|
1321
1322
|
if (descriptor === void 0) {
|
|
1322
|
-
throw new (0,
|
|
1323
|
+
throw new (0, _chunkF7UOLKWVcjs.UnknownActivityTypeError)(type);
|
|
1323
1324
|
}
|
|
1324
1325
|
if (descriptor.redactedSchema === void 0) {
|
|
1325
|
-
throw new (0,
|
|
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,
|
|
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:
|
|
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 =
|
|
1396
|
+
const parsed = _chunkFJJ2GVBAcjs.RedactedItemGroupSchema.safeParse(result);
|
|
1396
1397
|
if (!parsed.success) {
|
|
1397
|
-
throw new (0,
|
|
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,
|
|
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,
|
|
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 =
|
|
1426
|
+
const parsed = _chunkFJJ2GVBAcjs.RedactedItemGroupSchema.safeParse(candidate);
|
|
1426
1427
|
if (!parsed.success) {
|
|
1427
|
-
throw new (0,
|
|
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
|
|
1441
|
-
throw new (0,
|
|
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
|
|
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 =
|
|
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
|