@didask/scol-r 2.17.0 → 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.
@@ -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
+ }
@@ -162,7 +162,8 @@ function loadContent(_a) {
162
162
  iframe.setAttribute("frameborder", "0");
163
163
  iframe.setAttribute("height", "100%");
164
164
  iframe.setAttribute("width", "100%");
165
- iframe.setAttribute("allow", "microphone");
165
+ iframe.setAttribute("allow", "microphone; fullscreen");
166
+ iframe.setAttribute("allowfullscreen", "");
166
167
  document.body.insertBefore(iframe, document.getElementById("wrapper"));
167
168
  sessionStart = new Date();
168
169
  host = sourceUrlParser.host;
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "@didask/scol-r",
3
- "version": "2.16.0",
4
- "version": "2.17.0",
3
+ "version": "2.17.2",
5
4
  "description": "Shareable Cross-Origin Learning Resources",
6
5
  "main": "index.html",
7
6
  "types": "lib/index.d.ts",
@@ -1 +0,0 @@
1
- export {};
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var bun_test_1 = require("bun:test");
4
- var SCORMAdapter_1 = require("./SCORMAdapter");
5
- bun_test_1.test('convertMsToCMITimespan ("0000:00:00.00")', function () {
6
- var milliseconds = (36 * 60 * 60 * 1000) + (6 * 60 * 1000) + (2 * 1000) + (23 * 10);
7
- var CMITimespan = SCORMAdapter_1.convertMsToCMITimespan(milliseconds);
8
- bun_test_1.expect(CMITimespan).toBe('0036:06:02.23');
9
- });
10
- bun_test_1.test('convertToTimeInterval', function () {
11
- var milliseconds = (36 * 60 * 60 * 1000) + (6 * 60 * 1000) + (2 * 1000) + (23 * 10);
12
- var timeInterval = SCORMAdapter_1.convertToTimeInterval(milliseconds);
13
- bun_test_1.expect(timeInterval).toBe('P1DT12H6M2');
14
- });