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
@@ -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 = undefined;
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
- return [2, fetch(url, {
873
- method: "POST",
874
- mode: this.settings.fetchMode,
875
- body: params instanceof Array ? params.join("&") : JSON.stringify(params),
876
- headers: (0,tslib_es6.__assign)((0,tslib_es6.__assign)({}, this.settings.xhrHeaders), { "Content-Type": this.settings.commitRequestDataType }),
877
- credentials: this.settings.xhrWithCredentials ? "include" : undefined,
878
- keepalive: true,
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 tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(635);
928
- /* harmony import */ var _base_cmi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(319);
929
- /* harmony import */ var _exceptions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(784);
930
- /* harmony import */ var _constants_error_codes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(797);
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,tslib__WEBPACK_IMPORTED_MODULE_3__.__extends)(CMIArray, _super);
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 || _constants_error_codes__WEBPACK_IMPORTED_MODULE_2__.scorm12_errors.GENERAL;
941
- _this._errorClass = params.errorClass || _exceptions__WEBPACK_IMPORTED_MODULE_1__.BaseScormValidationError;
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
- }(_base_cmi__WEBPACK_IMPORTED_MODULE_0__.BaseCMI));
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 tslib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(635);
1051
- /* harmony import */ var _constants_api_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(340);
1052
- /* harmony import */ var _constants_regex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(417);
1053
- /* harmony import */ var _base_cmi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(319);
1054
- /* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(449);
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,tslib__WEBPACK_IMPORTED_MODULE_4__.__extends)(CMIScore, _super);
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 || _constants_api_constants__WEBPACK_IMPORTED_MODULE_0__.scorm12_constants.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
- : _constants_regex__WEBPACK_IMPORTED_MODULE_1__.scorm12_regex.score_range;
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 || _constants_regex__WEBPACK_IMPORTED_MODULE_1__.scorm12_regex.CMIDecimal;
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,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidFormat)(raw, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
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,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidRange)(raw, this.__score_range, this.__invalid_range_code, this.__error_class))) {
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,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidFormat)(min, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
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,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidRange)(min, this.__score_range, this.__invalid_range_code, this.__error_class))) {
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,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidFormat)(max, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
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,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidRange)(max, this.__score_range, this.__invalid_range_code, this.__error_class))) {
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
- }(_base_cmi__WEBPACK_IMPORTED_MODULE_2__.BaseCMI));
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
- var request = matches[1];
4459
- var target = matches[2].replace("{target=", "").replace("}", "");
4460
- if (request === "choice" || request === "jump") {
4461
- if (this.settings.scoItemIdValidator) {
4462
- return String(this.settings.scoItemIdValidator(target));
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 && this.settings.globalObjectiveIds.includes(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 = null;
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
  }