@didask/scol-r 2.17.1 → 2.17.2
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/lib/ManifestGenerator.js +37 -0
- package/package.json +1 -1
package/lib/ManifestGenerator.js
CHANGED
|
@@ -55,6 +55,18 @@ function ManifestGenerator(_a) {
|
|
|
55
55
|
var courseGlobalLearningTime = scoList.length
|
|
56
56
|
? scoList.reduce(function (acc, sco) { return acc + sco.learningTime; }, 0)
|
|
57
57
|
: totalLearningTime;
|
|
58
|
+
if (scormVersion.startsWith("2004")) {
|
|
59
|
+
return generate2004Manifest({
|
|
60
|
+
courseId: courseId,
|
|
61
|
+
courseTitle: courseTitle !== null && courseTitle !== void 0 ? courseTitle : "",
|
|
62
|
+
courseAuthor: courseAuthor !== null && courseAuthor !== void 0 ? courseAuthor : "",
|
|
63
|
+
scoList: scoList,
|
|
64
|
+
sharedResources: sharedResources,
|
|
65
|
+
courseGlobalLearningTime: courseGlobalLearningTime,
|
|
66
|
+
dataFromLms: dataFromLms,
|
|
67
|
+
scormVersion: scormVersion,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
58
70
|
return "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n <manifest xmlns=\"http://www.imsproject.org/xsd/imscp_rootv1p1p2\" identifier=\"".concat(courseId, "\" version=\"1.0\" xmlns:imsmd=\"http://www.imsglobal.org/xsd/imsmd_rootv1p2p1\" xmlns:adlcp=\"http://www.adlnet.org/xsd/adlcp_rootv1p2\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.imsproject.org/xsd/imscp_rootv1p1p2 imscp_rootv1p1p2.xsd http://www.imsglobal.org/xsd/imsmd_rootv1p2p1 imsmd_rootv1p2p1.xsd http://www.adlnet.org/xsd/adlcp_rootv1p2 adlcp_rootv1p2.xsd\">\n <metadata>\n <schema>ADL SCORM</schema>\n <schemaversion>").concat(scormVersion, "</schemaversion>\n <imsmd:lom xmlns=\"http://ltsc.ieee.org/xsd/LOM\">\n <imsmd:general>\n <imsmd:identifier>").concat(courseId, "</imsmd:identifier>\n <imsmd:title>\n <imsmd:langstring xml:lang=\"fr\">").concat(courseTitle, "</imsmd:langstring>\n </imsmd:title>\n </imsmd:general>\n <imsmd:lifecycle>\n <imsmd:contribute>\n <imsmd:role>\n <imsmd:source>\n <imsmd:langstring xml:lang=\"fr\">LOMv1.0</imsmd:langstring>\n </imsmd:source>\n <imsmd:value>\n <imsmd:langstring xml:lang=\"fr\">Author</imsmd:langstring>\n </imsmd:value>\n </imsmd:role>\n <imsmd:centity>\n <imsmd:vcard>\n begin:vcard\n fn:").concat(courseAuthor, "\n end:vcard\n </imsmd:vcard>\n </imsmd:centity>\n </imsmd:contribute>\n </imsmd:lifecycle>\n <imsmd:metametadata>\n <imsmd:metadatascheme>ADL SCORM 1.2</imsmd:metadatascheme>\n </imsmd:metametadata>\n <imsmd:rights>\n <imsmd:cost>\n <imsmd:source>\n <imsmd:langstring xml:lang=\"fr\">LOMv1.0</imsmd:langstring>\n </imsmd:source>\n <imsmd:value>\n <imsmd:langstring xml:lang=\"fr\">yes</imsmd:langstring>\n </imsmd:value>\n </imsmd:cost>\n <imsmd:copyrightandotherrestrictions>\n <imsmd:source>\n <imsmd:langstring xml:lang=\"fr\">LOMv1.0</imsmd:langstring>\n </imsmd:source>\n <imsmd:value>\n <imsmd:langstring xml:lang=\"fr\">yes</imsmd:langstring>\n </imsmd:value>\n </imsmd:copyrightandotherrestrictions>\n </imsmd:rights>\n <imsmd:educational>\n <imsmd:typicallearningtime>\n <imsmd:datetime>").concat(formatLearningTime(courseGlobalLearningTime), "</imsmd:datetime>\n </imsmd:typicallearningtime>\n </imsmd:educational>\n </imsmd:lom>\n </metadata>\n <organizations default=\"Org1\">\n <organization identifier=\"Org1\">\n <title>").concat(courseTitle, "</title>\n ").concat(scoList
|
|
59
71
|
.map(function (_a) {
|
|
60
72
|
var scoID = _a.scoID, learningTime = _a.learningTime, resources = _a.resources, props = __rest(_a, ["scoID", "learningTime", "resources"]);
|
|
@@ -76,3 +88,28 @@ function ManifestGenerator(_a) {
|
|
|
76
88
|
.join("\n"), "\n </resources>\n </manifest>");
|
|
77
89
|
}
|
|
78
90
|
exports.ManifestGenerator = ManifestGenerator;
|
|
91
|
+
function generate2004Manifest(_a) {
|
|
92
|
+
var courseId = _a.courseId, courseTitle = _a.courseTitle, courseAuthor = _a.courseAuthor, scoList = _a.scoList, sharedResources = _a.sharedResources, courseGlobalLearningTime = _a.courseGlobalLearningTime, dataFromLms = _a.dataFromLms, scormVersion = _a.scormVersion;
|
|
93
|
+
// No measure-based satisfaction is declared, so the LMS uses the
|
|
94
|
+
// success_status we report verbatim (unknown on open/partial, passed/failed
|
|
95
|
+
// only when we decide) rather than inferring pass/fail from the score.
|
|
96
|
+
return "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n <manifest xmlns=\"http://www.imsglobal.org/xsd/imscp_v1p1\" identifier=\"".concat(courseId, "\" version=\"1\" xmlns:adlcp=\"http://www.adlnet.org/xsd/adlcp_v1p3\" xmlns:adlseq=\"http://www.adlnet.org/xsd/adlseq_v1p3\" xmlns:adlnav=\"http://www.adlnet.org/xsd/adlnav_v1p3\" xmlns:imsss=\"http://www.imsglobal.org/xsd/imsss\" xmlns:imsmd=\"http://ltsc.ieee.org/xsd/LOM\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1.xsd http://www.adlnet.org/xsd/adlcp_v1p3 adlcp_v1p3.xsd http://www.adlnet.org/xsd/adlseq_v1p3 adlseq_v1p3.xsd http://www.adlnet.org/xsd/adlnav_v1p3 adlnav_v1p3.xsd http://www.imsglobal.org/xsd/imsss imsss_v1p0.xsd http://ltsc.ieee.org/xsd/LOM lomLoose.xsd\">\n <metadata>\n <schema>ADL SCORM</schema>\n <schemaversion>").concat(scormVersion, "</schemaversion>\n <imsmd:lom>\n <imsmd:general>\n <imsmd:identifier>").concat(courseId, "</imsmd:identifier>\n <imsmd:title>\n <imsmd:langstring xml:lang=\"fr\">").concat(courseTitle, "</imsmd:langstring>\n </imsmd:title>\n </imsmd:general>\n <imsmd:lifecycle>\n <imsmd:contribute>\n <imsmd:role>\n <imsmd:source>\n <imsmd:langstring xml:lang=\"fr\">LOMv1.0</imsmd:langstring>\n </imsmd:source>\n <imsmd:value>\n <imsmd:langstring xml:lang=\"fr\">Author</imsmd:langstring>\n </imsmd:value>\n </imsmd:role>\n <imsmd:centity>\n <imsmd:vcard>\n begin:vcard\n fn:").concat(courseAuthor, "\n end:vcard\n </imsmd:vcard>\n </imsmd:centity>\n </imsmd:contribute>\n </imsmd:lifecycle>\n <imsmd:educational>\n <imsmd:typicallearningtime>\n <imsmd:datetime>").concat(formatLearningTime(courseGlobalLearningTime), "</imsmd:datetime>\n </imsmd:typicallearningtime>\n </imsmd:educational>\n </imsmd:lom>\n </metadata>\n <organizations default=\"Org1\">\n <organization identifier=\"Org1\">\n <title>").concat(courseTitle, "</title>\n ").concat(scoList
|
|
97
|
+
.map(function (_a) {
|
|
98
|
+
var scoID = _a.scoID, learningTime = _a.learningTime, resources = _a.resources, scoHref = _a.scoHref, props = __rest(_a, ["scoID", "learningTime", "resources", "scoHref"]);
|
|
99
|
+
var scoTitle = removeSpecialChars(props).scoTitle;
|
|
100
|
+
return "<item identifier=\"item_".concat(scoID, "\" identifierref=\"resource_").concat(scoID, "\" isvisible=\"true\">\n <title>").concat(scoTitle, "</title>\n <adlcp:dataFromLMS>").concat(dataFromLms !== null && dataFromLms !== void 0 ? dataFromLms : courseId + ":" + scoID, "</adlcp:dataFromLMS>\n </item>");
|
|
101
|
+
})
|
|
102
|
+
.join("\n"), "\n </organization>\n </organizations>\n <resources>\n ").concat((sharedResources === null || sharedResources === void 0 ? void 0 : sharedResources.length)
|
|
103
|
+
? "<resource adlcp:scormType=\"asset\" type=\"webcontent\" identifier=\"shared_resources\">\n ".concat(sharedResources
|
|
104
|
+
.map(function (resource) { return "<file href=\"".concat(resource, "\"/>"); })
|
|
105
|
+
.join("\n"), "\n </resource>")
|
|
106
|
+
: "", "\n ").concat(scoList
|
|
107
|
+
.map(function (sco) {
|
|
108
|
+
return "<resource adlcp:scormType=\"sco\" type=\"webcontent\" identifier=\"resource_".concat(sco.scoID, "\" href=\"").concat(sco.scoHref, "\">\n ").concat((sharedResources === null || sharedResources === void 0 ? void 0 : sharedResources.length)
|
|
109
|
+
? '<dependency identifierref="shared_resources"/>'
|
|
110
|
+
: "", "\n ").concat(sco.resources
|
|
111
|
+
.map(function (resource) { return "<file href=\"".concat(resource, "\"/>"); })
|
|
112
|
+
.join("\n"), "\n </resource>");
|
|
113
|
+
})
|
|
114
|
+
.join("\n"), "\n </resources>\n </manifest>");
|
|
115
|
+
}
|