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/esm/scorm2004.js
CHANGED
|
@@ -175,6 +175,7 @@ var ScheduledCommit = (function () {
|
|
|
175
175
|
var BaseAPI = (function () {
|
|
176
176
|
function BaseAPI(error_codes, settings) {
|
|
177
177
|
var _newTarget = this.constructor;
|
|
178
|
+
var _a, _c;
|
|
178
179
|
this._settings = DefaultSettings;
|
|
179
180
|
if (_newTarget === BaseAPI) {
|
|
180
181
|
throw new TypeError("Cannot construct BaseAPI instances directly");
|
|
@@ -184,13 +185,10 @@ var BaseAPI = (function () {
|
|
|
184
185
|
this.listenerArray = [];
|
|
185
186
|
this._error_codes = error_codes;
|
|
186
187
|
if (settings) {
|
|
187
|
-
this.settings = settings;
|
|
188
|
-
}
|
|
189
|
-
this.apiLogLevel = this.settings.logLevel;
|
|
190
|
-
this.selfReportSessionTime = this.settings.selfReportSessionTime;
|
|
191
|
-
if (this.apiLogLevel === undefined) {
|
|
192
|
-
this.apiLogLevel = enums.LogLevelEnum.NONE;
|
|
188
|
+
this.settings = (0,tslib_es6.__assign)((0,tslib_es6.__assign)({}, DefaultSettings), settings);
|
|
193
189
|
}
|
|
190
|
+
this.apiLogLevel = (_a = this.settings.logLevel) !== null && _a !== void 0 ? _a : enums.LogLevelEnum.ERROR;
|
|
191
|
+
this.selfReportSessionTime = (_c = this.settings.selfReportSessionTime) !== null && _c !== void 0 ? _c : false;
|
|
194
192
|
}
|
|
195
193
|
BaseAPI.prototype.commonReset = function (settings) {
|
|
196
194
|
this.apiLog("reset", "Called", enums.LogLevelEnum.INFO);
|
|
@@ -199,7 +197,7 @@ var BaseAPI = (function () {
|
|
|
199
197
|
this.currentState = api_constants.global_constants.STATE_NOT_INITIALIZED;
|
|
200
198
|
this.lastErrorCode = "0";
|
|
201
199
|
this.listenerArray = [];
|
|
202
|
-
this.startingData =
|
|
200
|
+
this.startingData = {};
|
|
203
201
|
};
|
|
204
202
|
BaseAPI.prototype.initialize = function (callbackName, initializeMessage, terminationMessage) {
|
|
205
203
|
var returnValue = api_constants.global_constants.SCORM_FALSE;
|
|
@@ -868,15 +866,19 @@ var BaseAPI = (function () {
|
|
|
868
866
|
};
|
|
869
867
|
BaseAPI.prototype.performFetch = function (url, params) {
|
|
870
868
|
return (0,tslib_es6.__awaiter)(this, void 0, void 0, function () {
|
|
869
|
+
var init;
|
|
871
870
|
return (0,tslib_es6.__generator)(this, function (_a) {
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
871
|
+
init = {
|
|
872
|
+
method: "POST",
|
|
873
|
+
mode: this.settings.fetchMode,
|
|
874
|
+
body: params instanceof Array ? params.join("&") : JSON.stringify(params),
|
|
875
|
+
headers: (0,tslib_es6.__assign)((0,tslib_es6.__assign)({}, this.settings.xhrHeaders), { "Content-Type": this.settings.commitRequestDataType }),
|
|
876
|
+
keepalive: true,
|
|
877
|
+
};
|
|
878
|
+
if (this.settings.xhrWithCredentials) {
|
|
879
|
+
init = (0,tslib_es6.__assign)((0,tslib_es6.__assign)({}, init), { credentials: "include" });
|
|
880
|
+
}
|
|
881
|
+
return [2, fetch(url, init)];
|
|
880
882
|
});
|
|
881
883
|
});
|
|
882
884
|
};
|
|
@@ -924,21 +926,21 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
924
926
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
925
927
|
/* harmony export */ CMIArray: function() { return /* binding */ CMIArray; }
|
|
926
928
|
/* harmony export */ });
|
|
927
|
-
/* harmony import */ var
|
|
928
|
-
/* harmony import */ var
|
|
929
|
-
/* harmony import */ var
|
|
930
|
-
/* harmony import */ var
|
|
929
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(635);
|
|
930
|
+
/* harmony import */ var _base_cmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(319);
|
|
931
|
+
/* harmony import */ var _exceptions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(784);
|
|
932
|
+
/* harmony import */ var _constants_error_codes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(797);
|
|
931
933
|
|
|
932
934
|
|
|
933
935
|
|
|
934
936
|
|
|
935
937
|
var CMIArray = (function (_super) {
|
|
936
|
-
(0,
|
|
938
|
+
(0,tslib__WEBPACK_IMPORTED_MODULE_0__.__extends)(CMIArray, _super);
|
|
937
939
|
function CMIArray(params) {
|
|
938
940
|
var _this = _super.call(this) || this;
|
|
939
941
|
_this.__children = params.children;
|
|
940
|
-
_this._errorCode = params.errorCode ||
|
|
941
|
-
_this._errorClass = params.errorClass ||
|
|
942
|
+
_this._errorCode = params.errorCode || _constants_error_codes__WEBPACK_IMPORTED_MODULE_1__.scorm12_errors.GENERAL;
|
|
943
|
+
_this._errorClass = params.errorClass || _exceptions__WEBPACK_IMPORTED_MODULE_2__.BaseScormValidationError;
|
|
942
944
|
_this.childArray = [];
|
|
943
945
|
return _this;
|
|
944
946
|
}
|
|
@@ -984,7 +986,7 @@ var CMIArray = (function (_super) {
|
|
|
984
986
|
return result;
|
|
985
987
|
};
|
|
986
988
|
return CMIArray;
|
|
987
|
-
}(
|
|
989
|
+
}(_base_cmi__WEBPACK_IMPORTED_MODULE_3__.BaseCMI));
|
|
988
990
|
|
|
989
991
|
|
|
990
992
|
|
|
@@ -1047,11 +1049,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1047
1049
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1048
1050
|
/* harmony export */ CMIScore: function() { return /* binding */ CMIScore; }
|
|
1049
1051
|
/* harmony export */ });
|
|
1050
|
-
/* harmony import */ var
|
|
1051
|
-
/* harmony import */ var
|
|
1052
|
-
/* harmony import */ var
|
|
1053
|
-
/* harmony import */ var
|
|
1054
|
-
/* harmony import */ var
|
|
1052
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(635);
|
|
1053
|
+
/* harmony import */ var _constants_api_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(340);
|
|
1054
|
+
/* harmony import */ var _constants_regex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(417);
|
|
1055
|
+
/* harmony import */ var _base_cmi__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(319);
|
|
1056
|
+
/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(449);
|
|
1055
1057
|
/* harmony import */ var _constants_error_codes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(797);
|
|
1056
1058
|
|
|
1057
1059
|
|
|
@@ -1060,15 +1062,15 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1060
1062
|
|
|
1061
1063
|
|
|
1062
1064
|
var CMIScore = (function (_super) {
|
|
1063
|
-
(0,
|
|
1065
|
+
(0,tslib__WEBPACK_IMPORTED_MODULE_0__.__extends)(CMIScore, _super);
|
|
1064
1066
|
function CMIScore(params) {
|
|
1065
1067
|
var _this = _super.call(this) || this;
|
|
1066
1068
|
_this._raw = "";
|
|
1067
1069
|
_this._min = "";
|
|
1068
|
-
_this.__children = params.score_children ||
|
|
1070
|
+
_this.__children = params.score_children || _constants_api_constants__WEBPACK_IMPORTED_MODULE_1__.scorm12_constants.score_children;
|
|
1069
1071
|
_this.__score_range = !params.score_range
|
|
1070
1072
|
? false
|
|
1071
|
-
:
|
|
1073
|
+
: _constants_regex__WEBPACK_IMPORTED_MODULE_2__.scorm12_regex.score_range;
|
|
1072
1074
|
_this._max = params.max || params.max === "" ? params.max : "100";
|
|
1073
1075
|
_this.__invalid_error_code =
|
|
1074
1076
|
params.invalidErrorCode || _constants_error_codes__WEBPACK_IMPORTED_MODULE_3__.scorm12_errors.INVALID_SET_VALUE;
|
|
@@ -1076,7 +1078,7 @@ var CMIScore = (function (_super) {
|
|
|
1076
1078
|
params.invalidTypeCode || _constants_error_codes__WEBPACK_IMPORTED_MODULE_3__.scorm12_errors.TYPE_MISMATCH;
|
|
1077
1079
|
_this.__invalid_range_code =
|
|
1078
1080
|
params.invalidRangeCode || _constants_error_codes__WEBPACK_IMPORTED_MODULE_3__.scorm12_errors.VALUE_OUT_OF_RANGE;
|
|
1079
|
-
_this.__decimal_regex = params.decimalRegex ||
|
|
1081
|
+
_this.__decimal_regex = params.decimalRegex || _constants_regex__WEBPACK_IMPORTED_MODULE_2__.scorm12_regex.CMIDecimal;
|
|
1080
1082
|
_this.__error_class = params.errorClass;
|
|
1081
1083
|
return _this;
|
|
1082
1084
|
}
|
|
@@ -1098,9 +1100,9 @@ var CMIScore = (function (_super) {
|
|
|
1098
1100
|
return this._raw;
|
|
1099
1101
|
},
|
|
1100
1102
|
set: function (raw) {
|
|
1101
|
-
if ((0,
|
|
1103
|
+
if ((0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidFormat)(raw, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
|
|
1102
1104
|
(!this.__score_range ||
|
|
1103
|
-
(0,
|
|
1105
|
+
(0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidRange)(raw, this.__score_range, this.__invalid_range_code, this.__error_class))) {
|
|
1104
1106
|
this._raw = raw;
|
|
1105
1107
|
}
|
|
1106
1108
|
},
|
|
@@ -1112,9 +1114,9 @@ var CMIScore = (function (_super) {
|
|
|
1112
1114
|
return this._min;
|
|
1113
1115
|
},
|
|
1114
1116
|
set: function (min) {
|
|
1115
|
-
if ((0,
|
|
1117
|
+
if ((0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidFormat)(min, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
|
|
1116
1118
|
(!this.__score_range ||
|
|
1117
|
-
(0,
|
|
1119
|
+
(0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidRange)(min, this.__score_range, this.__invalid_range_code, this.__error_class))) {
|
|
1118
1120
|
this._min = min;
|
|
1119
1121
|
}
|
|
1120
1122
|
},
|
|
@@ -1126,9 +1128,9 @@ var CMIScore = (function (_super) {
|
|
|
1126
1128
|
return this._max;
|
|
1127
1129
|
},
|
|
1128
1130
|
set: function (max) {
|
|
1129
|
-
if ((0,
|
|
1131
|
+
if ((0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidFormat)(max, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
|
|
1130
1132
|
(!this.__score_range ||
|
|
1131
|
-
(0,
|
|
1133
|
+
(0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidRange)(max, this.__score_range, this.__invalid_range_code, this.__error_class))) {
|
|
1132
1134
|
this._max = max;
|
|
1133
1135
|
}
|
|
1134
1136
|
},
|
|
@@ -1146,7 +1148,7 @@ var CMIScore = (function (_super) {
|
|
|
1146
1148
|
return result;
|
|
1147
1149
|
};
|
|
1148
1150
|
return CMIScore;
|
|
1149
|
-
}(
|
|
1151
|
+
}(_base_cmi__WEBPACK_IMPORTED_MODULE_5__.BaseCMI));
|
|
1150
1152
|
|
|
1151
1153
|
|
|
1152
1154
|
|
|
@@ -4452,16 +4454,22 @@ var Scorm2004Impl = (function (_super) {
|
|
|
4452
4454
|
});
|
|
4453
4455
|
};
|
|
4454
4456
|
Scorm2004Impl.prototype.lmsGetValue = function (CMIElement) {
|
|
4457
|
+
var _a;
|
|
4455
4458
|
var adlNavRequestRegex = "^adl\\.nav\\.request_valid\\.(choice|jump)\\.{target=\\S{0,}([a-zA-Z0-9-_]+)}$";
|
|
4456
4459
|
if ((0,utilities.stringMatches)(CMIElement, adlNavRequestRegex)) {
|
|
4457
4460
|
var matches = CMIElement.match(adlNavRequestRegex);
|
|
4458
|
-
|
|
4459
|
-
|
|
4460
|
-
|
|
4461
|
-
if (
|
|
4462
|
-
|
|
4461
|
+
if (matches) {
|
|
4462
|
+
var request = matches[1];
|
|
4463
|
+
var target = matches[2].replace("{target=", "").replace("}", "");
|
|
4464
|
+
if (request === "choice" || request === "jump") {
|
|
4465
|
+
if (this.settings.scoItemIdValidator) {
|
|
4466
|
+
return String(this.settings.scoItemIdValidator(target));
|
|
4467
|
+
}
|
|
4468
|
+
if (this.settings.scoItemIds) {
|
|
4469
|
+
return String((_a = this.settings.scoItemIds) === null || _a === void 0 ? void 0 : _a.includes(target));
|
|
4470
|
+
}
|
|
4471
|
+
return String(request);
|
|
4463
4472
|
}
|
|
4464
|
-
return String(this.settings.scoItemIds.includes(target));
|
|
4465
4473
|
}
|
|
4466
4474
|
}
|
|
4467
4475
|
return this.getValue("GetValue", true, CMIElement);
|
|
@@ -4498,6 +4506,7 @@ var Scorm2004Impl = (function (_super) {
|
|
|
4498
4506
|
return this.getDiagnostic("GetDiagnostic", CMIErrorCode);
|
|
4499
4507
|
};
|
|
4500
4508
|
Scorm2004Impl.prototype.setCMIValue = function (CMIElement, value) {
|
|
4509
|
+
var _a;
|
|
4501
4510
|
if ((0,utilities.stringMatches)(CMIElement, "cmi\\.objectives\\.\\d+")) {
|
|
4502
4511
|
var parts = CMIElement.split(".");
|
|
4503
4512
|
var index = Number(parts[2]);
|
|
@@ -4511,7 +4520,8 @@ var Scorm2004Impl = (function (_super) {
|
|
|
4511
4520
|
var objective = this.cmi.objectives.findObjectiveByIndex(index);
|
|
4512
4521
|
objective_id_1 = objective ? objective.id : undefined;
|
|
4513
4522
|
}
|
|
4514
|
-
var is_global = objective_id_1 &&
|
|
4523
|
+
var is_global = objective_id_1 &&
|
|
4524
|
+
((_a = this.settings.globalObjectiveIds) === null || _a === void 0 ? void 0 : _a.includes(objective_id_1));
|
|
4515
4525
|
if (is_global) {
|
|
4516
4526
|
var global_index = this._globalObjectives.findIndex(function (obj) { return obj.id === objective_id_1; });
|
|
4517
4527
|
if (global_index === -1) {
|
|
@@ -4795,9 +4805,8 @@ var Scorm2004Impl = (function (_super) {
|
|
|
4795
4805
|
}
|
|
4796
4806
|
}
|
|
4797
4807
|
var score = this.cmi.score;
|
|
4798
|
-
var scoreObject =
|
|
4808
|
+
var scoreObject = {};
|
|
4799
4809
|
if (score) {
|
|
4800
|
-
scoreObject = {};
|
|
4801
4810
|
if (!Number.isNaN(Number.parseFloat(score.raw))) {
|
|
4802
4811
|
scoreObject.raw = Number.parseFloat(score.raw);
|
|
4803
4812
|
}
|