scorm-again 2.6.3 → 2.6.5
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/.claude/.claude/settings.local.json +13 -0
- package/.claude/settings.local.json +33 -0
- package/dist/aicc.js +38 -22
- package/dist/aicc.js.map +1 -1
- package/dist/aicc.min.js +1 -1
- package/dist/aicc.min.js.map +1 -1
- package/dist/esm/aicc.js +38 -22
- package/dist/esm/aicc.js.map +1 -1
- package/dist/esm/aicc.min.js +1 -1
- package/dist/esm/aicc.min.js.map +1 -1
- package/dist/esm/scorm-again.js +79 -47
- package/dist/esm/scorm-again.js.map +1 -1
- package/dist/esm/scorm-again.min.js +1 -1
- package/dist/esm/scorm-again.min.js.map +1 -1
- package/dist/esm/scorm12.js +35 -20
- package/dist/esm/scorm12.js.map +1 -1
- package/dist/esm/scorm12.min.js +1 -1
- package/dist/esm/scorm12.min.js.map +1 -1
- package/dist/esm/scorm2004.js +69 -41
- package/dist/esm/scorm2004.js.map +1 -1
- package/dist/esm/scorm2004.min.js +1 -1
- package/dist/esm/scorm2004.min.js.map +1 -1
- package/dist/scorm-again.js +79 -47
- package/dist/scorm-again.js.map +1 -1
- package/dist/scorm-again.min.js +1 -1
- package/dist/scorm-again.min.js.map +1 -1
- package/dist/scorm12.js +35 -20
- package/dist/scorm12.js.map +1 -1
- package/dist/scorm12.min.js +1 -1
- package/dist/scorm12.min.js.map +1 -1
- package/dist/scorm2004.js +69 -41
- package/dist/scorm2004.js.map +1 -1
- package/dist/scorm2004.min.js +1 -1
- package/dist/scorm2004.min.js.map +1 -1
- package/dist/types/cmi/scorm2004/adl.d.ts +8 -2
- package/dist/types/cmi/scorm2004/cmi.d.ts +1 -1
- package/package.json +1 -1
- package/src/BaseAPI.ts +56 -33
- package/src/Scorm12API.ts +3 -2
- package/src/Scorm2004API.ts +31 -24
- package/src/cmi/aicc/attempts.ts +3 -3
- package/src/cmi/aicc/core.ts +30 -12
- package/src/cmi/aicc/evaluation.ts +1 -1
- package/src/cmi/aicc/student_data.ts +1 -1
- package/src/cmi/aicc/student_demographics.ts +13 -13
- package/src/cmi/aicc/student_preferences.ts +1 -1
- package/src/cmi/aicc/tries.ts +3 -3
- package/src/cmi/aicc/validation.ts +1 -1
- package/src/cmi/common/array.ts +1 -1
- package/src/cmi/common/score.ts +3 -3
- package/src/cmi/common/validation.ts +2 -2
- package/src/cmi/scorm12/cmi.ts +12 -4
- package/src/cmi/scorm12/interactions.ts +27 -11
- package/src/cmi/scorm12/objectives.ts +4 -4
- package/src/cmi/scorm12/student_data.ts +12 -4
- package/src/cmi/scorm12/student_preference.ts +3 -1
- package/src/cmi/scorm12/validation.ts +5 -3
- package/src/cmi/scorm2004/adl.ts +39 -22
- package/src/cmi/scorm2004/cmi.ts +47 -17
- package/src/cmi/scorm2004/comments.ts +11 -5
- package/src/cmi/scorm2004/interactions.ts +25 -23
- package/src/cmi/scorm2004/learner_preference.ts +3 -1
- package/src/cmi/scorm2004/objectives.ts +5 -5
- package/src/cmi/scorm2004/score.ts +3 -3
- package/src/cmi/scorm2004/validation.ts +2 -2
- package/src/exceptions/aicc_exceptions.ts +4 -4
- package/src/exceptions/scorm12_exceptions.ts +4 -4
- package/src/exceptions/scorm2004_exceptions.ts +4 -4
- package/src/utilities.ts +3 -3
- package/test/BaseAPI.requestHandler.spec.ts +126 -0
- package/test/Scorm12API.spec.ts +45 -0
- package/test/Scorm2004API.spec.ts +43 -0
- package/tsconfig.json +1 -0
package/dist/esm/scorm2004.js
CHANGED
|
@@ -415,6 +415,10 @@ var BaseAPI = (function () {
|
|
|
415
415
|
: this._error_codes.GENERAL;
|
|
416
416
|
for (var idx = 0; idx < structure.length; idx++) {
|
|
417
417
|
var attribute = structure[idx];
|
|
418
|
+
if (!attribute) {
|
|
419
|
+
this.throwSCORMError(invalidErrorCode, invalidErrorMessage);
|
|
420
|
+
return api_constants.global_constants.SCORM_FALSE;
|
|
421
|
+
}
|
|
418
422
|
if (idx === structure.length - 1) {
|
|
419
423
|
if (scorm2004 && attribute.substring(0, 8) === "{target=") {
|
|
420
424
|
if (this.isInitialized()) {
|
|
@@ -445,7 +449,7 @@ var BaseAPI = (function () {
|
|
|
445
449
|
break;
|
|
446
450
|
}
|
|
447
451
|
if (refObject instanceof array.CMIArray) {
|
|
448
|
-
var index = parseInt(structure[idx + 1], 10);
|
|
452
|
+
var index = parseInt(structure[idx + 1] || "0", 10);
|
|
449
453
|
if (!isNaN(index)) {
|
|
450
454
|
var item = refObject.childArray[index];
|
|
451
455
|
if (item) {
|
|
@@ -489,6 +493,10 @@ var BaseAPI = (function () {
|
|
|
489
493
|
: this._error_codes.GENERAL;
|
|
490
494
|
for (var idx = 0; idx < structure.length; idx++) {
|
|
491
495
|
attribute = structure[idx];
|
|
496
|
+
if (!attribute) {
|
|
497
|
+
this.throwSCORMError(invalidErrorCode, invalidErrorMessage);
|
|
498
|
+
return;
|
|
499
|
+
}
|
|
492
500
|
if (!scorm2004) {
|
|
493
501
|
if (idx === structure.length - 1) {
|
|
494
502
|
if (!this._checkObjectHasProperty(refObject, attribute)) {
|
|
@@ -514,7 +522,7 @@ var BaseAPI = (function () {
|
|
|
514
522
|
break;
|
|
515
523
|
}
|
|
516
524
|
if (refObject instanceof array.CMIArray) {
|
|
517
|
-
var index = parseInt(structure[idx + 1], 10);
|
|
525
|
+
var index = parseInt(structure[idx + 1] || "", 10);
|
|
518
526
|
if (!isNaN(index)) {
|
|
519
527
|
var item = refObject.childArray[index];
|
|
520
528
|
if (item) {
|
|
@@ -552,17 +560,18 @@ var BaseAPI = (function () {
|
|
|
552
560
|
return this.currentState === api_constants.global_constants.STATE_TERMINATED;
|
|
553
561
|
};
|
|
554
562
|
BaseAPI.prototype.on = function (listenerName, callback) {
|
|
563
|
+
var _a, _c;
|
|
555
564
|
if (!callback)
|
|
556
565
|
return;
|
|
557
566
|
var listenerFunctions = listenerName.split(" ");
|
|
558
567
|
for (var i = 0; i < listenerFunctions.length; i++) {
|
|
559
|
-
var listenerSplit = listenerFunctions[i].split(".");
|
|
560
|
-
if (listenerSplit.length === 0)
|
|
568
|
+
var listenerSplit = (_a = listenerFunctions[i]) === null || _a === void 0 ? void 0 : _a.split(".");
|
|
569
|
+
if (!listenerSplit || listenerSplit.length === 0)
|
|
561
570
|
return;
|
|
562
571
|
var functionName = listenerSplit[0];
|
|
563
572
|
var CMIElement = null;
|
|
564
573
|
if (listenerSplit.length > 1) {
|
|
565
|
-
CMIElement =
|
|
574
|
+
CMIElement = (_c = listenerFunctions[i]) === null || _c === void 0 ? void 0 : _c.replace(functionName + ".", "");
|
|
566
575
|
}
|
|
567
576
|
this.listenerArray.push({
|
|
568
577
|
functionName: functionName,
|
|
@@ -573,17 +582,18 @@ var BaseAPI = (function () {
|
|
|
573
582
|
}
|
|
574
583
|
};
|
|
575
584
|
BaseAPI.prototype.off = function (listenerName, callback) {
|
|
585
|
+
var _a, _c;
|
|
576
586
|
if (!callback)
|
|
577
587
|
return;
|
|
578
588
|
var listenerFunctions = listenerName.split(" ");
|
|
579
589
|
var _loop_1 = function (i) {
|
|
580
|
-
var listenerSplit = listenerFunctions[i].split(".");
|
|
581
|
-
if (listenerSplit.length === 0)
|
|
590
|
+
var listenerSplit = (_a = listenerFunctions[i]) === null || _a === void 0 ? void 0 : _a.split(".");
|
|
591
|
+
if (!listenerSplit || listenerSplit.length === 0)
|
|
582
592
|
return { value: void 0 };
|
|
583
593
|
var functionName = listenerSplit[0];
|
|
584
594
|
var CMIElement = null;
|
|
585
595
|
if (listenerSplit.length > 1) {
|
|
586
|
-
CMIElement =
|
|
596
|
+
CMIElement = (_c = listenerFunctions[i]) === null || _c === void 0 ? void 0 : _c.replace(functionName + ".", "");
|
|
587
597
|
}
|
|
588
598
|
var removeIndex = this_1.listenerArray.findIndex(function (obj) {
|
|
589
599
|
return obj.functionName === functionName &&
|
|
@@ -603,15 +613,16 @@ var BaseAPI = (function () {
|
|
|
603
613
|
}
|
|
604
614
|
};
|
|
605
615
|
BaseAPI.prototype.clear = function (listenerName) {
|
|
616
|
+
var _a, _c;
|
|
606
617
|
var listenerFunctions = listenerName.split(" ");
|
|
607
618
|
var _loop_2 = function (i) {
|
|
608
|
-
var listenerSplit = listenerFunctions[i].split(".");
|
|
609
|
-
if (listenerSplit.length === 0)
|
|
619
|
+
var listenerSplit = (_a = listenerFunctions[i]) === null || _a === void 0 ? void 0 : _a.split(".");
|
|
620
|
+
if (!listenerSplit || (listenerSplit === null || listenerSplit === void 0 ? void 0 : listenerSplit.length) === 0)
|
|
610
621
|
return { value: void 0 };
|
|
611
622
|
var functionName = listenerSplit[0];
|
|
612
623
|
var CMIElement = null;
|
|
613
624
|
if (listenerSplit.length > 1) {
|
|
614
|
-
CMIElement =
|
|
625
|
+
CMIElement = (_c = listenerFunctions[i]) === null || _c === void 0 ? void 0 : _c.replace(functionName + ".", "");
|
|
615
626
|
}
|
|
616
627
|
this_2.listenerArray = this_2.listenerArray.filter(function (obj) {
|
|
617
628
|
return obj.functionName !== functionName && obj.CMIElement !== CMIElement;
|
|
@@ -778,6 +789,7 @@ var BaseAPI = (function () {
|
|
|
778
789
|
errorCode: this.error_codes.GENERAL,
|
|
779
790
|
};
|
|
780
791
|
if (immediate) {
|
|
792
|
+
params = this.settings.requestHandler(params);
|
|
781
793
|
this.performFetch(url, params).then(function (response) { return (0,tslib_es6.__awaiter)(_this, void 0, void 0, function () {
|
|
782
794
|
return (0,tslib_es6.__generator)(this, function (_a) {
|
|
783
795
|
switch (_a.label) {
|
|
@@ -1180,8 +1192,8 @@ function checkValidFormat(value, regexPattern, errorCode, errorClass, allowEmpty
|
|
|
1180
1192
|
function checkValidRange(value, rangePattern, errorCode, errorClass) {
|
|
1181
1193
|
var ranges = rangePattern.split("#");
|
|
1182
1194
|
value = value * 1.0;
|
|
1183
|
-
if (value >= ranges[0]) {
|
|
1184
|
-
if (ranges[1] === "*" || value <= ranges[1]) {
|
|
1195
|
+
if (ranges[0] && value >= ranges[0]) {
|
|
1196
|
+
if (ranges[1] && (ranges[1] === "*" || value <= ranges[1])) {
|
|
1185
1197
|
return true;
|
|
1186
1198
|
}
|
|
1187
1199
|
else {
|
|
@@ -1691,7 +1703,7 @@ function getSecondsAsISODuration(seconds) {
|
|
|
1691
1703
|
var duration = "P";
|
|
1692
1704
|
var remainder = seconds;
|
|
1693
1705
|
for (var designationsKey in designations) {
|
|
1694
|
-
var current_seconds = designations[designationsKey];
|
|
1706
|
+
var current_seconds = designations[designationsKey] || 1;
|
|
1695
1707
|
var value = Math.floor(remainder / current_seconds);
|
|
1696
1708
|
remainder = remainder % current_seconds;
|
|
1697
1709
|
if (countDecimals(remainder) > 2) {
|
|
@@ -1798,7 +1810,7 @@ function unflatten(data) {
|
|
|
1798
1810
|
var m = regex.exec(p);
|
|
1799
1811
|
while (m) {
|
|
1800
1812
|
cur = cur[prop] || (cur[prop] = m[2] ? [] : {});
|
|
1801
|
-
prop = m[2] || m[1];
|
|
1813
|
+
prop = m[2] || m[1] || "";
|
|
1802
1814
|
m = regex.exec(p);
|
|
1803
1815
|
}
|
|
1804
1816
|
cur[prop] = data[p];
|
|
@@ -1810,7 +1822,7 @@ function countDecimals(num) {
|
|
|
1810
1822
|
if (Math.floor(num) === num || String(num).indexOf(".") < 0)
|
|
1811
1823
|
return 0;
|
|
1812
1824
|
var parts = num.toString().split(".")[1];
|
|
1813
|
-
return parts.length || 0;
|
|
1825
|
+
return (parts === null || parts === void 0 ? void 0 : parts.length) || 0;
|
|
1814
1826
|
}
|
|
1815
1827
|
function formatMessage(functionName, message, CMIElement) {
|
|
1816
1828
|
var baseLength = 20;
|
|
@@ -2346,11 +2358,12 @@ var Scorm2004ValidationError = (function (_super) {
|
|
|
2346
2358
|
(0,tslib_es6.__extends)(Scorm2004ValidationError, _super);
|
|
2347
2359
|
function Scorm2004ValidationError(errorCode) {
|
|
2348
2360
|
var _this = this;
|
|
2361
|
+
var _a, _b, _c, _d;
|
|
2349
2362
|
if ({}.hasOwnProperty.call(scorm2004_errors, String(errorCode))) {
|
|
2350
|
-
_this = _super.call(this, errorCode, scorm2004_errors[String(errorCode)].basicMessage, scorm2004_errors[String(errorCode)].detailMessage) || this;
|
|
2363
|
+
_this = _super.call(this, errorCode, ((_a = scorm2004_errors[String(errorCode)]) === null || _a === void 0 ? void 0 : _a.basicMessage) || "Unknown error", (_b = scorm2004_errors[String(errorCode)]) === null || _b === void 0 ? void 0 : _b.detailMessage) || this;
|
|
2351
2364
|
}
|
|
2352
2365
|
else {
|
|
2353
|
-
_this = _super.call(this, 101, scorm2004_errors["101"].basicMessage, scorm2004_errors["101"].detailMessage) || this;
|
|
2366
|
+
_this = _super.call(this, 101, ((_c = scorm2004_errors["101"]) === null || _c === void 0 ? void 0 : _c.basicMessage) || "General error", (_d = scorm2004_errors["101"]) === null || _d === void 0 ? void 0 : _d.detailMessage) || this;
|
|
2354
2367
|
}
|
|
2355
2368
|
return _this;
|
|
2356
2369
|
}
|
|
@@ -2766,6 +2779,7 @@ var CMIInteractionsObject = (function (_super) {
|
|
|
2766
2779
|
return this._learner_response;
|
|
2767
2780
|
},
|
|
2768
2781
|
set: function (learner_response) {
|
|
2782
|
+
var _a, _b, _c, _d;
|
|
2769
2783
|
if (this.initialized && (this._type === "" || this._id === "")) {
|
|
2770
2784
|
throw new Scorm2004ValidationError(error_codes.scorm2004_errors.DEPENDENCY_NOT_ESTABLISHED);
|
|
2771
2785
|
}
|
|
@@ -2783,14 +2797,14 @@ var CMIInteractionsObject = (function (_super) {
|
|
|
2783
2797
|
var formatRegex = new RegExp(response_type.format);
|
|
2784
2798
|
for (var i = 0; i < nodes.length; i++) {
|
|
2785
2799
|
if (response_type === null || response_type === void 0 ? void 0 : response_type.delimiter2) {
|
|
2786
|
-
var values = nodes[i].split(response_type.delimiter2);
|
|
2787
|
-
if (values.length === 2) {
|
|
2788
|
-
if (!values[0].match(formatRegex)) {
|
|
2800
|
+
var values = (_a = nodes[i]) === null || _a === void 0 ? void 0 : _a.split(response_type.delimiter2);
|
|
2801
|
+
if ((values === null || values === void 0 ? void 0 : values.length) === 2) {
|
|
2802
|
+
if (!((_b = values[0]) === null || _b === void 0 ? void 0 : _b.match(formatRegex))) {
|
|
2789
2803
|
throw new Scorm2004ValidationError(error_codes.scorm2004_errors.TYPE_MISMATCH);
|
|
2790
2804
|
}
|
|
2791
2805
|
else {
|
|
2792
2806
|
if (!response_type.format2 ||
|
|
2793
|
-
!values[1].match(new RegExp(response_type.format2))) {
|
|
2807
|
+
!((_c = values[1]) === null || _c === void 0 ? void 0 : _c.match(new RegExp(response_type.format2)))) {
|
|
2794
2808
|
throw new Scorm2004ValidationError(error_codes.scorm2004_errors.TYPE_MISMATCH);
|
|
2795
2809
|
}
|
|
2796
2810
|
}
|
|
@@ -2800,7 +2814,7 @@ var CMIInteractionsObject = (function (_super) {
|
|
|
2800
2814
|
}
|
|
2801
2815
|
}
|
|
2802
2816
|
else {
|
|
2803
|
-
if (!nodes[i].match(formatRegex)) {
|
|
2817
|
+
if (!((_d = nodes[i]) === null || _d === void 0 ? void 0 : _d.match(formatRegex))) {
|
|
2804
2818
|
throw new Scorm2004ValidationError(error_codes.scorm2004_errors.TYPE_MISMATCH);
|
|
2805
2819
|
}
|
|
2806
2820
|
else {
|
|
@@ -4278,10 +4292,14 @@ var ADLNavRequestValid = (function (_super) {
|
|
|
4278
4292
|
}
|
|
4279
4293
|
for (var key in choice) {
|
|
4280
4294
|
if ({}.hasOwnProperty.call(choice, key)) {
|
|
4281
|
-
if (
|
|
4282
|
-
|
|
4283
|
-
|
|
4284
|
-
enums.NAVBoolean[
|
|
4295
|
+
if (choice[key] !== undefined && check2004ValidFormat(key, regex.scorm2004_regex.NAVTarget)) {
|
|
4296
|
+
var value = choice[key];
|
|
4297
|
+
if (typeof value === 'string' && check2004ValidFormat(value, regex.scorm2004_regex.NAVBoolean)) {
|
|
4298
|
+
this._choice[key] = enums.NAVBoolean[value];
|
|
4299
|
+
}
|
|
4300
|
+
else if (Object.values(enums.NAVBoolean).includes(value)) {
|
|
4301
|
+
this._choice[key] = value;
|
|
4302
|
+
}
|
|
4285
4303
|
}
|
|
4286
4304
|
}
|
|
4287
4305
|
}
|
|
@@ -4302,9 +4320,14 @@ var ADLNavRequestValid = (function (_super) {
|
|
|
4302
4320
|
}
|
|
4303
4321
|
for (var key in jump) {
|
|
4304
4322
|
if ({}.hasOwnProperty.call(jump, key)) {
|
|
4305
|
-
if (
|
|
4306
|
-
|
|
4307
|
-
|
|
4323
|
+
if (jump[key] !== undefined && check2004ValidFormat(key, regex.scorm2004_regex.NAVTarget)) {
|
|
4324
|
+
var value = jump[key];
|
|
4325
|
+
if (typeof value === 'string' && check2004ValidFormat(value, regex.scorm2004_regex.NAVBoolean)) {
|
|
4326
|
+
this._jump[key] = enums.NAVBoolean[value];
|
|
4327
|
+
}
|
|
4328
|
+
else if (Object.values(enums.NAVBoolean).includes(value)) {
|
|
4329
|
+
this._jump[key] = value;
|
|
4330
|
+
}
|
|
4308
4331
|
}
|
|
4309
4332
|
}
|
|
4310
4333
|
}
|
|
@@ -4455,19 +4478,19 @@ var Scorm2004Impl = (function (_super) {
|
|
|
4455
4478
|
});
|
|
4456
4479
|
};
|
|
4457
4480
|
Scorm2004Impl.prototype.lmsGetValue = function (CMIElement) {
|
|
4458
|
-
var _a;
|
|
4481
|
+
var _a, _b;
|
|
4459
4482
|
var adlNavRequestRegex = "^adl\\.nav\\.request_valid\\.(choice|jump)\\.{target=\\S{0,}([a-zA-Z0-9-_]+)}$";
|
|
4460
4483
|
if ((0,utilities.stringMatches)(CMIElement, adlNavRequestRegex)) {
|
|
4461
4484
|
var matches = CMIElement.match(adlNavRequestRegex);
|
|
4462
4485
|
if (matches) {
|
|
4463
4486
|
var request = matches[1];
|
|
4464
|
-
var target = matches[2].replace("{target=", "").replace("}", "");
|
|
4465
|
-
if (request === "choice" || request === "jump") {
|
|
4487
|
+
var target = (_a = matches[2]) === null || _a === void 0 ? void 0 : _a.replace("{target=", "").replace("}", "");
|
|
4488
|
+
if (target && (request === "choice" || request === "jump")) {
|
|
4466
4489
|
if (this.settings.scoItemIdValidator) {
|
|
4467
4490
|
return String(this.settings.scoItemIdValidator(target));
|
|
4468
4491
|
}
|
|
4469
4492
|
if (this.settings.scoItemIds) {
|
|
4470
|
-
return String((
|
|
4493
|
+
return String((_b = this.settings.scoItemIds) === null || _b === void 0 ? void 0 : _b.includes(target));
|
|
4471
4494
|
}
|
|
4472
4495
|
return String(request);
|
|
4473
4496
|
}
|
|
@@ -4621,8 +4644,9 @@ var Scorm2004Impl = (function (_super) {
|
|
|
4621
4644
|
var interaction_count = interaction.correct_responses._count;
|
|
4622
4645
|
this.checkDuplicateChoiceResponse(interaction, value);
|
|
4623
4646
|
var response_type = CorrectResponses[interaction.type];
|
|
4624
|
-
if (typeof response_type
|
|
4625
|
-
|
|
4647
|
+
if (typeof response_type !== "undefined" &&
|
|
4648
|
+
(typeof response_type.limit === "undefined" ||
|
|
4649
|
+
interaction_count <= response_type.limit)) {
|
|
4626
4650
|
this.checkValidResponseType(response_type, value, interaction.type);
|
|
4627
4651
|
if ((this.lastErrorCode === "0" &&
|
|
4628
4652
|
(!response_type.duplicate ||
|
|
@@ -4643,14 +4667,17 @@ var Scorm2004Impl = (function (_super) {
|
|
|
4643
4667
|
return this._commonGetCMIValue("GetValue", true, CMIElement);
|
|
4644
4668
|
};
|
|
4645
4669
|
Scorm2004Impl.prototype.getLmsErrorMessageDetails = function (errorNumber, detail) {
|
|
4670
|
+
var _a, _b;
|
|
4646
4671
|
var basicMessage = "";
|
|
4647
4672
|
var detailMessage = "";
|
|
4648
4673
|
errorNumber = String(errorNumber);
|
|
4649
4674
|
if (api_constants.scorm2004_constants.error_descriptions[errorNumber]) {
|
|
4650
4675
|
basicMessage =
|
|
4651
|
-
api_constants.scorm2004_constants.error_descriptions[errorNumber].basicMessage
|
|
4676
|
+
((_a = api_constants.scorm2004_constants.error_descriptions[errorNumber]) === null || _a === void 0 ? void 0 : _a.basicMessage) ||
|
|
4677
|
+
"Unknown Error";
|
|
4652
4678
|
detailMessage =
|
|
4653
|
-
api_constants.scorm2004_constants.error_descriptions[errorNumber].detailMessage
|
|
4679
|
+
((_b = api_constants.scorm2004_constants.error_descriptions[errorNumber]) === null || _b === void 0 ? void 0 : _b.detailMessage) ||
|
|
4680
|
+
"";
|
|
4654
4681
|
}
|
|
4655
4682
|
return detail ? detailMessage : basicMessage;
|
|
4656
4683
|
};
|
|
@@ -4666,7 +4693,7 @@ var Scorm2004Impl = (function (_super) {
|
|
|
4666
4693
|
};
|
|
4667
4694
|
Scorm2004Impl.prototype.checkCorrectResponseValue = function (interaction_type, nodes, value) {
|
|
4668
4695
|
var response = CorrectResponses[interaction_type];
|
|
4669
|
-
var formatRegex = new RegExp(response.format);
|
|
4696
|
+
var formatRegex = new RegExp((response === null || response === void 0 ? void 0 : response.format) || ".*");
|
|
4670
4697
|
for (var i = 0; i < nodes.length && this.lastErrorCode === "0"; i++) {
|
|
4671
4698
|
if (interaction_type.match("^(fill-in|long-fill-in|matching|performance|sequencing)$")) {
|
|
4672
4699
|
nodes[i] = this.removeCorrectResponsePrefixes(nodes[i]);
|
|
@@ -4702,7 +4729,7 @@ var Scorm2004Impl = (function (_super) {
|
|
|
4702
4729
|
}
|
|
4703
4730
|
}
|
|
4704
4731
|
else {
|
|
4705
|
-
if (nodes[i] !== "" && response.unique) {
|
|
4732
|
+
if (nodes[i] !== "" && (response === null || response === void 0 ? void 0 : response.unique)) {
|
|
4706
4733
|
for (var j = 0; j < i && this.lastErrorCode === "0"; j++) {
|
|
4707
4734
|
if (nodes[i] === nodes[j]) {
|
|
4708
4735
|
this.throwSCORMError(error_codes.scorm2004_errors.TYPE_MISMATCH);
|
|
@@ -4715,6 +4742,7 @@ var Scorm2004Impl = (function (_super) {
|
|
|
4715
4742
|
}
|
|
4716
4743
|
};
|
|
4717
4744
|
Scorm2004Impl.prototype.removeCorrectResponsePrefixes = function (node) {
|
|
4745
|
+
var _a;
|
|
4718
4746
|
var seenOrder = false;
|
|
4719
4747
|
var seenCase = false;
|
|
4720
4748
|
var seenLang = false;
|
|
@@ -4752,7 +4780,7 @@ var Scorm2004Impl = (function (_super) {
|
|
|
4752
4780
|
seenOrder = true;
|
|
4753
4781
|
break;
|
|
4754
4782
|
}
|
|
4755
|
-
node = node.substring(matches[1].length);
|
|
4783
|
+
node = node.substring(((_a = matches[1]) === null || _a === void 0 ? void 0 : _a.length) || 0);
|
|
4756
4784
|
matches = node.match(prefixRegex);
|
|
4757
4785
|
}
|
|
4758
4786
|
return node;
|