scorm-again 2.6.1 → 2.6.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/dist/aicc.js +163 -162
- 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 +163 -162
- 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 +185 -177
- 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 +163 -162
- 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 +57 -48
- 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 +185 -177
- 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 +163 -162
- 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 +57 -48
- 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/AICC.d.ts +13 -0
- package/dist/types/BaseAPI.d.ts +71 -0
- package/dist/types/Scorm12API.d.ts +39 -0
- package/dist/types/Scorm2004API.d.ts +52 -0
- package/dist/types/ScormAgain.d.ts +4 -0
- package/dist/types/cmi/aicc/attempts.d.ts +19 -0
- package/dist/types/cmi/aicc/cmi.d.ts +34 -0
- package/dist/types/cmi/aicc/core.d.ts +57 -0
- package/dist/types/cmi/aicc/evaluation.d.ts +33 -0
- package/dist/types/cmi/aicc/paths.d.ts +35 -0
- package/dist/types/cmi/aicc/student_data.d.ts +20 -0
- package/dist/types/cmi/aicc/student_demographics.d.ts +61 -0
- package/dist/types/cmi/aicc/student_preferences.d.ts +34 -0
- package/dist/types/cmi/aicc/tries.d.ts +23 -0
- package/dist/types/cmi/aicc/validation.d.ts +1 -0
- package/dist/types/cmi/common/array.d.ts +19 -0
- package/dist/types/cmi/common/base_cmi.d.ts +13 -0
- package/dist/types/cmi/common/score.d.ts +38 -0
- package/dist/types/cmi/common/validation.d.ts +3 -0
- package/dist/types/cmi/scorm12/cmi.d.ts +45 -0
- package/dist/types/cmi/scorm12/interactions.d.ts +64 -0
- package/dist/types/cmi/scorm12/nav.d.ts +11 -0
- package/dist/types/cmi/scorm12/objectives.d.ts +22 -0
- package/dist/types/cmi/scorm12/student_data.d.ts +22 -0
- package/dist/types/cmi/scorm12/student_preference.d.ts +26 -0
- package/dist/types/cmi/scorm12/validation.d.ts +2 -0
- package/dist/types/cmi/scorm2004/adl.d.ts +71 -0
- package/dist/types/cmi/scorm2004/cmi.d.ts +103 -0
- package/dist/types/cmi/scorm2004/comments.d.ts +27 -0
- package/dist/types/cmi/scorm2004/interactions.d.ts +68 -0
- package/dist/types/cmi/scorm2004/learner_preference.d.ts +26 -0
- package/dist/types/cmi/scorm2004/objectives.d.ts +38 -0
- package/dist/types/cmi/scorm2004/score.d.ts +14 -0
- package/dist/types/cmi/scorm2004/validation.d.ts +2 -0
- package/dist/types/constants/api_constants.d.ts +49 -0
- package/dist/types/constants/default_settings.d.ts +2 -0
- package/dist/types/constants/enums.d.ts +23 -0
- package/dist/types/constants/error_codes.d.ts +6 -0
- package/dist/types/constants/language_constants.d.ts +2 -0
- package/dist/types/constants/regex.d.ts +82 -0
- package/dist/types/constants/response_constants.d.ts +16 -0
- package/dist/types/exceptions/aicc_exceptions.d.ts +4 -0
- package/dist/types/exceptions/scorm12_exceptions.d.ts +4 -0
- package/dist/types/exceptions/scorm2004_exceptions.d.ts +4 -0
- package/dist/types/exceptions.d.ts +18 -0
- package/dist/types/helpers/scheduled_commit.d.ts +10 -0
- package/dist/types/interfaces/IBaseAPI.d.ts +22 -0
- package/dist/types/types/api_types.d.ts +73 -0
- package/dist/types/utilities.d.ts +19 -0
- package/package.json +3 -2
- package/src/BaseAPI.ts +23 -16
- package/src/Scorm12API.ts +1 -3
- package/src/Scorm2004API.ts +14 -10
- package/src/constants/default_settings.ts +2 -2
- package/src/types/api_types.ts +27 -2
- package/test/AICC.spec.ts +2 -2
- package/test/Scorm12API.spec.ts +3 -3
- package/test/Scorm2004API.spec.ts +20 -20
- package/tsconfig.json +19 -6
package/dist/scorm2004.js
CHANGED
|
@@ -177,6 +177,7 @@ var ScheduledCommit = (function () {
|
|
|
177
177
|
var BaseAPI = (function () {
|
|
178
178
|
function BaseAPI(error_codes, settings) {
|
|
179
179
|
var _newTarget = this.constructor;
|
|
180
|
+
var _a, _c;
|
|
180
181
|
this._settings = DefaultSettings;
|
|
181
182
|
if (_newTarget === BaseAPI) {
|
|
182
183
|
throw new TypeError("Cannot construct BaseAPI instances directly");
|
|
@@ -186,13 +187,10 @@ var BaseAPI = (function () {
|
|
|
186
187
|
this.listenerArray = [];
|
|
187
188
|
this._error_codes = error_codes;
|
|
188
189
|
if (settings) {
|
|
189
|
-
this.settings = settings;
|
|
190
|
-
}
|
|
191
|
-
this.apiLogLevel = this.settings.logLevel;
|
|
192
|
-
this.selfReportSessionTime = this.settings.selfReportSessionTime;
|
|
193
|
-
if (this.apiLogLevel === undefined) {
|
|
194
|
-
this.apiLogLevel = enums.LogLevelEnum.NONE;
|
|
190
|
+
this.settings = (0,tslib_es6.__assign)((0,tslib_es6.__assign)({}, DefaultSettings), settings);
|
|
195
191
|
}
|
|
192
|
+
this.apiLogLevel = (_a = this.settings.logLevel) !== null && _a !== void 0 ? _a : enums.LogLevelEnum.ERROR;
|
|
193
|
+
this.selfReportSessionTime = (_c = this.settings.selfReportSessionTime) !== null && _c !== void 0 ? _c : false;
|
|
196
194
|
}
|
|
197
195
|
BaseAPI.prototype.commonReset = function (settings) {
|
|
198
196
|
this.apiLog("reset", "Called", enums.LogLevelEnum.INFO);
|
|
@@ -201,7 +199,7 @@ var BaseAPI = (function () {
|
|
|
201
199
|
this.currentState = api_constants.global_constants.STATE_NOT_INITIALIZED;
|
|
202
200
|
this.lastErrorCode = "0";
|
|
203
201
|
this.listenerArray = [];
|
|
204
|
-
this.startingData =
|
|
202
|
+
this.startingData = {};
|
|
205
203
|
};
|
|
206
204
|
BaseAPI.prototype.initialize = function (callbackName, initializeMessage, terminationMessage) {
|
|
207
205
|
var returnValue = api_constants.global_constants.SCORM_FALSE;
|
|
@@ -870,15 +868,19 @@ var BaseAPI = (function () {
|
|
|
870
868
|
};
|
|
871
869
|
BaseAPI.prototype.performFetch = function (url, params) {
|
|
872
870
|
return (0,tslib_es6.__awaiter)(this, void 0, void 0, function () {
|
|
871
|
+
var init;
|
|
873
872
|
return (0,tslib_es6.__generator)(this, function (_a) {
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
873
|
+
init = {
|
|
874
|
+
method: "POST",
|
|
875
|
+
mode: this.settings.fetchMode,
|
|
876
|
+
body: params instanceof Array ? params.join("&") : JSON.stringify(params),
|
|
877
|
+
headers: (0,tslib_es6.__assign)((0,tslib_es6.__assign)({}, this.settings.xhrHeaders), { "Content-Type": this.settings.commitRequestDataType }),
|
|
878
|
+
keepalive: true,
|
|
879
|
+
};
|
|
880
|
+
if (this.settings.xhrWithCredentials) {
|
|
881
|
+
init = (0,tslib_es6.__assign)((0,tslib_es6.__assign)({}, init), { credentials: "include" });
|
|
882
|
+
}
|
|
883
|
+
return [2, fetch(url, init)];
|
|
882
884
|
});
|
|
883
885
|
});
|
|
884
886
|
};
|
|
@@ -926,21 +928,21 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
926
928
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
927
929
|
/* harmony export */ CMIArray: function() { return /* binding */ CMIArray; }
|
|
928
930
|
/* harmony export */ });
|
|
929
|
-
/* harmony import */ var
|
|
930
|
-
/* harmony import */ var
|
|
931
|
-
/* harmony import */ var
|
|
932
|
-
/* harmony import */ var
|
|
931
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(635);
|
|
932
|
+
/* harmony import */ var _base_cmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(319);
|
|
933
|
+
/* harmony import */ var _exceptions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(784);
|
|
934
|
+
/* harmony import */ var _constants_error_codes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(797);
|
|
933
935
|
|
|
934
936
|
|
|
935
937
|
|
|
936
938
|
|
|
937
939
|
var CMIArray = (function (_super) {
|
|
938
|
-
(0,
|
|
940
|
+
(0,tslib__WEBPACK_IMPORTED_MODULE_0__.__extends)(CMIArray, _super);
|
|
939
941
|
function CMIArray(params) {
|
|
940
942
|
var _this = _super.call(this) || this;
|
|
941
943
|
_this.__children = params.children;
|
|
942
|
-
_this._errorCode = params.errorCode ||
|
|
943
|
-
_this._errorClass = params.errorClass ||
|
|
944
|
+
_this._errorCode = params.errorCode || _constants_error_codes__WEBPACK_IMPORTED_MODULE_1__.scorm12_errors.GENERAL;
|
|
945
|
+
_this._errorClass = params.errorClass || _exceptions__WEBPACK_IMPORTED_MODULE_2__.BaseScormValidationError;
|
|
944
946
|
_this.childArray = [];
|
|
945
947
|
return _this;
|
|
946
948
|
}
|
|
@@ -986,7 +988,7 @@ var CMIArray = (function (_super) {
|
|
|
986
988
|
return result;
|
|
987
989
|
};
|
|
988
990
|
return CMIArray;
|
|
989
|
-
}(
|
|
991
|
+
}(_base_cmi__WEBPACK_IMPORTED_MODULE_3__.BaseCMI));
|
|
990
992
|
|
|
991
993
|
|
|
992
994
|
|
|
@@ -1049,11 +1051,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1049
1051
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1050
1052
|
/* harmony export */ CMIScore: function() { return /* binding */ CMIScore; }
|
|
1051
1053
|
/* harmony export */ });
|
|
1052
|
-
/* harmony import */ var
|
|
1053
|
-
/* harmony import */ var
|
|
1054
|
-
/* harmony import */ var
|
|
1055
|
-
/* harmony import */ var
|
|
1056
|
-
/* harmony import */ var
|
|
1054
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(635);
|
|
1055
|
+
/* harmony import */ var _constants_api_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(340);
|
|
1056
|
+
/* harmony import */ var _constants_regex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(417);
|
|
1057
|
+
/* harmony import */ var _base_cmi__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(319);
|
|
1058
|
+
/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(449);
|
|
1057
1059
|
/* harmony import */ var _constants_error_codes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(797);
|
|
1058
1060
|
|
|
1059
1061
|
|
|
@@ -1062,15 +1064,15 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1062
1064
|
|
|
1063
1065
|
|
|
1064
1066
|
var CMIScore = (function (_super) {
|
|
1065
|
-
(0,
|
|
1067
|
+
(0,tslib__WEBPACK_IMPORTED_MODULE_0__.__extends)(CMIScore, _super);
|
|
1066
1068
|
function CMIScore(params) {
|
|
1067
1069
|
var _this = _super.call(this) || this;
|
|
1068
1070
|
_this._raw = "";
|
|
1069
1071
|
_this._min = "";
|
|
1070
|
-
_this.__children = params.score_children ||
|
|
1072
|
+
_this.__children = params.score_children || _constants_api_constants__WEBPACK_IMPORTED_MODULE_1__.scorm12_constants.score_children;
|
|
1071
1073
|
_this.__score_range = !params.score_range
|
|
1072
1074
|
? false
|
|
1073
|
-
:
|
|
1075
|
+
: _constants_regex__WEBPACK_IMPORTED_MODULE_2__.scorm12_regex.score_range;
|
|
1074
1076
|
_this._max = params.max || params.max === "" ? params.max : "100";
|
|
1075
1077
|
_this.__invalid_error_code =
|
|
1076
1078
|
params.invalidErrorCode || _constants_error_codes__WEBPACK_IMPORTED_MODULE_3__.scorm12_errors.INVALID_SET_VALUE;
|
|
@@ -1078,7 +1080,7 @@ var CMIScore = (function (_super) {
|
|
|
1078
1080
|
params.invalidTypeCode || _constants_error_codes__WEBPACK_IMPORTED_MODULE_3__.scorm12_errors.TYPE_MISMATCH;
|
|
1079
1081
|
_this.__invalid_range_code =
|
|
1080
1082
|
params.invalidRangeCode || _constants_error_codes__WEBPACK_IMPORTED_MODULE_3__.scorm12_errors.VALUE_OUT_OF_RANGE;
|
|
1081
|
-
_this.__decimal_regex = params.decimalRegex ||
|
|
1083
|
+
_this.__decimal_regex = params.decimalRegex || _constants_regex__WEBPACK_IMPORTED_MODULE_2__.scorm12_regex.CMIDecimal;
|
|
1082
1084
|
_this.__error_class = params.errorClass;
|
|
1083
1085
|
return _this;
|
|
1084
1086
|
}
|
|
@@ -1100,9 +1102,9 @@ var CMIScore = (function (_super) {
|
|
|
1100
1102
|
return this._raw;
|
|
1101
1103
|
},
|
|
1102
1104
|
set: function (raw) {
|
|
1103
|
-
if ((0,
|
|
1105
|
+
if ((0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidFormat)(raw, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
|
|
1104
1106
|
(!this.__score_range ||
|
|
1105
|
-
(0,
|
|
1107
|
+
(0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidRange)(raw, this.__score_range, this.__invalid_range_code, this.__error_class))) {
|
|
1106
1108
|
this._raw = raw;
|
|
1107
1109
|
}
|
|
1108
1110
|
},
|
|
@@ -1114,9 +1116,9 @@ var CMIScore = (function (_super) {
|
|
|
1114
1116
|
return this._min;
|
|
1115
1117
|
},
|
|
1116
1118
|
set: function (min) {
|
|
1117
|
-
if ((0,
|
|
1119
|
+
if ((0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidFormat)(min, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
|
|
1118
1120
|
(!this.__score_range ||
|
|
1119
|
-
(0,
|
|
1121
|
+
(0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidRange)(min, this.__score_range, this.__invalid_range_code, this.__error_class))) {
|
|
1120
1122
|
this._min = min;
|
|
1121
1123
|
}
|
|
1122
1124
|
},
|
|
@@ -1128,9 +1130,9 @@ var CMIScore = (function (_super) {
|
|
|
1128
1130
|
return this._max;
|
|
1129
1131
|
},
|
|
1130
1132
|
set: function (max) {
|
|
1131
|
-
if ((0,
|
|
1133
|
+
if ((0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidFormat)(max, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
|
|
1132
1134
|
(!this.__score_range ||
|
|
1133
|
-
(0,
|
|
1135
|
+
(0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidRange)(max, this.__score_range, this.__invalid_range_code, this.__error_class))) {
|
|
1134
1136
|
this._max = max;
|
|
1135
1137
|
}
|
|
1136
1138
|
},
|
|
@@ -1148,7 +1150,7 @@ var CMIScore = (function (_super) {
|
|
|
1148
1150
|
return result;
|
|
1149
1151
|
};
|
|
1150
1152
|
return CMIScore;
|
|
1151
|
-
}(
|
|
1153
|
+
}(_base_cmi__WEBPACK_IMPORTED_MODULE_5__.BaseCMI));
|
|
1152
1154
|
|
|
1153
1155
|
|
|
1154
1156
|
|
|
@@ -4454,16 +4456,22 @@ var Scorm2004Impl = (function (_super) {
|
|
|
4454
4456
|
});
|
|
4455
4457
|
};
|
|
4456
4458
|
Scorm2004Impl.prototype.lmsGetValue = function (CMIElement) {
|
|
4459
|
+
var _a;
|
|
4457
4460
|
var adlNavRequestRegex = "^adl\\.nav\\.request_valid\\.(choice|jump)\\.{target=\\S{0,}([a-zA-Z0-9-_]+)}$";
|
|
4458
4461
|
if ((0,utilities.stringMatches)(CMIElement, adlNavRequestRegex)) {
|
|
4459
4462
|
var matches = CMIElement.match(adlNavRequestRegex);
|
|
4460
|
-
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
if (
|
|
4464
|
-
|
|
4463
|
+
if (matches) {
|
|
4464
|
+
var request = matches[1];
|
|
4465
|
+
var target = matches[2].replace("{target=", "").replace("}", "");
|
|
4466
|
+
if (request === "choice" || request === "jump") {
|
|
4467
|
+
if (this.settings.scoItemIdValidator) {
|
|
4468
|
+
return String(this.settings.scoItemIdValidator(target));
|
|
4469
|
+
}
|
|
4470
|
+
if (this.settings.scoItemIds) {
|
|
4471
|
+
return String((_a = this.settings.scoItemIds) === null || _a === void 0 ? void 0 : _a.includes(target));
|
|
4472
|
+
}
|
|
4473
|
+
return String(request);
|
|
4465
4474
|
}
|
|
4466
|
-
return String(this.settings.scoItemIds.includes(target));
|
|
4467
4475
|
}
|
|
4468
4476
|
}
|
|
4469
4477
|
return this.getValue("GetValue", true, CMIElement);
|
|
@@ -4500,6 +4508,7 @@ var Scorm2004Impl = (function (_super) {
|
|
|
4500
4508
|
return this.getDiagnostic("GetDiagnostic", CMIErrorCode);
|
|
4501
4509
|
};
|
|
4502
4510
|
Scorm2004Impl.prototype.setCMIValue = function (CMIElement, value) {
|
|
4511
|
+
var _a;
|
|
4503
4512
|
if ((0,utilities.stringMatches)(CMIElement, "cmi\\.objectives\\.\\d+")) {
|
|
4504
4513
|
var parts = CMIElement.split(".");
|
|
4505
4514
|
var index = Number(parts[2]);
|
|
@@ -4513,7 +4522,8 @@ var Scorm2004Impl = (function (_super) {
|
|
|
4513
4522
|
var objective = this.cmi.objectives.findObjectiveByIndex(index);
|
|
4514
4523
|
objective_id_1 = objective ? objective.id : undefined;
|
|
4515
4524
|
}
|
|
4516
|
-
var is_global = objective_id_1 &&
|
|
4525
|
+
var is_global = objective_id_1 &&
|
|
4526
|
+
((_a = this.settings.globalObjectiveIds) === null || _a === void 0 ? void 0 : _a.includes(objective_id_1));
|
|
4517
4527
|
if (is_global) {
|
|
4518
4528
|
var global_index = this._globalObjectives.findIndex(function (obj) { return obj.id === objective_id_1; });
|
|
4519
4529
|
if (global_index === -1) {
|
|
@@ -4797,9 +4807,8 @@ var Scorm2004Impl = (function (_super) {
|
|
|
4797
4807
|
}
|
|
4798
4808
|
}
|
|
4799
4809
|
var score = this.cmi.score;
|
|
4800
|
-
var scoreObject =
|
|
4810
|
+
var scoreObject = {};
|
|
4801
4811
|
if (score) {
|
|
4802
|
-
scoreObject = {};
|
|
4803
4812
|
if (!Number.isNaN(Number.parseFloat(score.raw))) {
|
|
4804
4813
|
scoreObject.raw = Number.parseFloat(score.raw);
|
|
4805
4814
|
}
|