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.
Files changed (91) hide show
  1. package/dist/aicc.js +163 -162
  2. package/dist/aicc.js.map +1 -1
  3. package/dist/aicc.min.js +1 -1
  4. package/dist/aicc.min.js.map +1 -1
  5. package/dist/esm/aicc.js +163 -162
  6. package/dist/esm/aicc.js.map +1 -1
  7. package/dist/esm/aicc.min.js +1 -1
  8. package/dist/esm/aicc.min.js.map +1 -1
  9. package/dist/esm/scorm-again.js +185 -177
  10. package/dist/esm/scorm-again.js.map +1 -1
  11. package/dist/esm/scorm-again.min.js +1 -1
  12. package/dist/esm/scorm-again.min.js.map +1 -1
  13. package/dist/esm/scorm12.js +163 -162
  14. package/dist/esm/scorm12.js.map +1 -1
  15. package/dist/esm/scorm12.min.js +1 -1
  16. package/dist/esm/scorm12.min.js.map +1 -1
  17. package/dist/esm/scorm2004.js +57 -48
  18. package/dist/esm/scorm2004.js.map +1 -1
  19. package/dist/esm/scorm2004.min.js +1 -1
  20. package/dist/esm/scorm2004.min.js.map +1 -1
  21. package/dist/scorm-again.js +185 -177
  22. package/dist/scorm-again.js.map +1 -1
  23. package/dist/scorm-again.min.js +1 -1
  24. package/dist/scorm-again.min.js.map +1 -1
  25. package/dist/scorm12.js +163 -162
  26. package/dist/scorm12.js.map +1 -1
  27. package/dist/scorm12.min.js +1 -1
  28. package/dist/scorm12.min.js.map +1 -1
  29. package/dist/scorm2004.js +57 -48
  30. package/dist/scorm2004.js.map +1 -1
  31. package/dist/scorm2004.min.js +1 -1
  32. package/dist/scorm2004.min.js.map +1 -1
  33. package/dist/types/AICC.d.ts +13 -0
  34. package/dist/types/BaseAPI.d.ts +71 -0
  35. package/dist/types/Scorm12API.d.ts +39 -0
  36. package/dist/types/Scorm2004API.d.ts +52 -0
  37. package/dist/types/ScormAgain.d.ts +4 -0
  38. package/dist/types/cmi/aicc/attempts.d.ts +19 -0
  39. package/dist/types/cmi/aicc/cmi.d.ts +34 -0
  40. package/dist/types/cmi/aicc/core.d.ts +57 -0
  41. package/dist/types/cmi/aicc/evaluation.d.ts +33 -0
  42. package/dist/types/cmi/aicc/paths.d.ts +35 -0
  43. package/dist/types/cmi/aicc/student_data.d.ts +20 -0
  44. package/dist/types/cmi/aicc/student_demographics.d.ts +61 -0
  45. package/dist/types/cmi/aicc/student_preferences.d.ts +34 -0
  46. package/dist/types/cmi/aicc/tries.d.ts +23 -0
  47. package/dist/types/cmi/aicc/validation.d.ts +1 -0
  48. package/dist/types/cmi/common/array.d.ts +19 -0
  49. package/dist/types/cmi/common/base_cmi.d.ts +13 -0
  50. package/dist/types/cmi/common/score.d.ts +38 -0
  51. package/dist/types/cmi/common/validation.d.ts +3 -0
  52. package/dist/types/cmi/scorm12/cmi.d.ts +45 -0
  53. package/dist/types/cmi/scorm12/interactions.d.ts +64 -0
  54. package/dist/types/cmi/scorm12/nav.d.ts +11 -0
  55. package/dist/types/cmi/scorm12/objectives.d.ts +22 -0
  56. package/dist/types/cmi/scorm12/student_data.d.ts +22 -0
  57. package/dist/types/cmi/scorm12/student_preference.d.ts +26 -0
  58. package/dist/types/cmi/scorm12/validation.d.ts +2 -0
  59. package/dist/types/cmi/scorm2004/adl.d.ts +71 -0
  60. package/dist/types/cmi/scorm2004/cmi.d.ts +103 -0
  61. package/dist/types/cmi/scorm2004/comments.d.ts +27 -0
  62. package/dist/types/cmi/scorm2004/interactions.d.ts +68 -0
  63. package/dist/types/cmi/scorm2004/learner_preference.d.ts +26 -0
  64. package/dist/types/cmi/scorm2004/objectives.d.ts +38 -0
  65. package/dist/types/cmi/scorm2004/score.d.ts +14 -0
  66. package/dist/types/cmi/scorm2004/validation.d.ts +2 -0
  67. package/dist/types/constants/api_constants.d.ts +49 -0
  68. package/dist/types/constants/default_settings.d.ts +2 -0
  69. package/dist/types/constants/enums.d.ts +23 -0
  70. package/dist/types/constants/error_codes.d.ts +6 -0
  71. package/dist/types/constants/language_constants.d.ts +2 -0
  72. package/dist/types/constants/regex.d.ts +82 -0
  73. package/dist/types/constants/response_constants.d.ts +16 -0
  74. package/dist/types/exceptions/aicc_exceptions.d.ts +4 -0
  75. package/dist/types/exceptions/scorm12_exceptions.d.ts +4 -0
  76. package/dist/types/exceptions/scorm2004_exceptions.d.ts +4 -0
  77. package/dist/types/exceptions.d.ts +18 -0
  78. package/dist/types/helpers/scheduled_commit.d.ts +10 -0
  79. package/dist/types/interfaces/IBaseAPI.d.ts +22 -0
  80. package/dist/types/types/api_types.d.ts +73 -0
  81. package/dist/types/utilities.d.ts +19 -0
  82. package/package.json +3 -2
  83. package/src/BaseAPI.ts +23 -16
  84. package/src/Scorm12API.ts +1 -3
  85. package/src/Scorm2004API.ts +14 -10
  86. package/src/constants/default_settings.ts +2 -2
  87. package/src/types/api_types.ts +27 -2
  88. package/test/AICC.spec.ts +2 -2
  89. package/test/Scorm12API.spec.ts +3 -3
  90. package/test/Scorm2004API.spec.ts +20 -20
  91. 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 = undefined;
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
- return [2, fetch(url, {
875
- method: "POST",
876
- mode: this.settings.fetchMode,
877
- body: params instanceof Array ? params.join("&") : JSON.stringify(params),
878
- headers: (0,tslib_es6.__assign)((0,tslib_es6.__assign)({}, this.settings.xhrHeaders), { "Content-Type": this.settings.commitRequestDataType }),
879
- credentials: this.settings.xhrWithCredentials ? "include" : undefined,
880
- keepalive: true,
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 tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(635);
930
- /* harmony import */ var _base_cmi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(319);
931
- /* harmony import */ var _exceptions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(784);
932
- /* harmony import */ var _constants_error_codes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(797);
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,tslib__WEBPACK_IMPORTED_MODULE_3__.__extends)(CMIArray, _super);
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 || _constants_error_codes__WEBPACK_IMPORTED_MODULE_2__.scorm12_errors.GENERAL;
943
- _this._errorClass = params.errorClass || _exceptions__WEBPACK_IMPORTED_MODULE_1__.BaseScormValidationError;
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
- }(_base_cmi__WEBPACK_IMPORTED_MODULE_0__.BaseCMI));
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 tslib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(635);
1053
- /* harmony import */ var _constants_api_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(340);
1054
- /* harmony import */ var _constants_regex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(417);
1055
- /* harmony import */ var _base_cmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(319);
1056
- /* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(449);
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,tslib__WEBPACK_IMPORTED_MODULE_4__.__extends)(CMIScore, _super);
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 || _constants_api_constants__WEBPACK_IMPORTED_MODULE_0__.scorm12_constants.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
- : _constants_regex__WEBPACK_IMPORTED_MODULE_1__.scorm12_regex.score_range;
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 || _constants_regex__WEBPACK_IMPORTED_MODULE_1__.scorm12_regex.CMIDecimal;
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,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidFormat)(raw, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
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,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidRange)(raw, this.__score_range, this.__invalid_range_code, this.__error_class))) {
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,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidFormat)(min, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
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,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidRange)(min, this.__score_range, this.__invalid_range_code, this.__error_class))) {
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,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidFormat)(max, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
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,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidRange)(max, this.__score_range, this.__invalid_range_code, this.__error_class))) {
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
- }(_base_cmi__WEBPACK_IMPORTED_MODULE_2__.BaseCMI));
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
- var request = matches[1];
4461
- var target = matches[2].replace("{target=", "").replace("}", "");
4462
- if (request === "choice" || request === "jump") {
4463
- if (this.settings.scoItemIdValidator) {
4464
- return String(this.settings.scoItemIdValidator(target));
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 && this.settings.globalObjectiveIds.includes(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 = null;
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
  }