scorm-again 2.6.1 → 2.6.3

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 (93) hide show
  1. package/dist/aicc.js +167 -165
  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 +167 -165
  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 +189 -180
  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 +167 -165
  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 +61 -51
  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 +189 -180
  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 +167 -165
  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 +61 -51
  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/index.d.ts +24 -3
  83. package/package.json +3 -2
  84. package/src/BaseAPI.ts +26 -18
  85. package/src/Scorm12API.ts +1 -3
  86. package/src/Scorm2004API.ts +14 -10
  87. package/src/constants/default_settings.ts +2 -2
  88. package/src/constants/regex.ts +8 -1
  89. package/src/types/api_types.ts +27 -2
  90. package/test/AICC.spec.ts +2 -2
  91. package/test/Scorm12API.spec.ts +3 -3
  92. package/test/Scorm2004API.spec.ts +20 -20
  93. 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;
@@ -796,7 +794,7 @@ var BaseAPI = (function () {
796
794
  }];
797
795
  }
798
796
  process = function (url, params, settings) { return (0,tslib_es6.__awaiter)(_this, void 0, void 0, function () {
799
- var response, e_1;
797
+ var response, e_1, message;
800
798
  return (0,tslib_es6.__generator)(this, function (_a) {
801
799
  switch (_a.label) {
802
800
  case 0:
@@ -808,7 +806,8 @@ var BaseAPI = (function () {
808
806
  return [2, this.transformResponse(response)];
809
807
  case 2:
810
808
  e_1 = _a.sent();
811
- this.apiLog("processHttpRequest", e_1, enums.LogLevelEnum.ERROR);
809
+ message = e_1 instanceof Error ? e_1.message : String(e_1);
810
+ this.apiLog("processHttpRequest", message, enums.LogLevelEnum.ERROR);
812
811
  api.processListeners("CommitError");
813
812
  return [2, genericError];
814
813
  case 3: return [2];
@@ -868,15 +867,19 @@ var BaseAPI = (function () {
868
867
  };
869
868
  BaseAPI.prototype.performFetch = function (url, params) {
870
869
  return (0,tslib_es6.__awaiter)(this, void 0, void 0, function () {
870
+ var init;
871
871
  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
- })];
872
+ init = {
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
+ keepalive: true,
878
+ };
879
+ if (this.settings.xhrWithCredentials) {
880
+ init = (0,tslib_es6.__assign)((0,tslib_es6.__assign)({}, init), { credentials: "include" });
881
+ }
882
+ return [2, fetch(url, init)];
880
883
  });
881
884
  });
882
885
  };
@@ -924,21 +927,21 @@ __webpack_require__.r(__webpack_exports__);
924
927
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
925
928
  /* harmony export */ CMIArray: function() { return /* binding */ CMIArray; }
926
929
  /* 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);
930
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(635);
931
+ /* harmony import */ var _base_cmi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(319);
932
+ /* harmony import */ var _exceptions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(784);
933
+ /* harmony import */ var _constants_error_codes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(797);
931
934
 
932
935
 
933
936
 
934
937
 
935
938
  var CMIArray = (function (_super) {
936
- (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__extends)(CMIArray, _super);
939
+ (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__extends)(CMIArray, _super);
937
940
  function CMIArray(params) {
938
941
  var _this = _super.call(this) || this;
939
942
  _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;
943
+ _this._errorCode = params.errorCode || _constants_error_codes__WEBPACK_IMPORTED_MODULE_1__.scorm12_errors.GENERAL;
944
+ _this._errorClass = params.errorClass || _exceptions__WEBPACK_IMPORTED_MODULE_2__.BaseScormValidationError;
942
945
  _this.childArray = [];
943
946
  return _this;
944
947
  }
@@ -984,7 +987,7 @@ var CMIArray = (function (_super) {
984
987
  return result;
985
988
  };
986
989
  return CMIArray;
987
- }(_base_cmi__WEBPACK_IMPORTED_MODULE_0__.BaseCMI));
990
+ }(_base_cmi__WEBPACK_IMPORTED_MODULE_3__.BaseCMI));
988
991
 
989
992
 
990
993
 
@@ -1047,11 +1050,11 @@ __webpack_require__.r(__webpack_exports__);
1047
1050
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1048
1051
  /* harmony export */ CMIScore: function() { return /* binding */ CMIScore; }
1049
1052
  /* 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);
1053
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(635);
1054
+ /* harmony import */ var _constants_api_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(340);
1055
+ /* harmony import */ var _constants_regex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(417);
1056
+ /* harmony import */ var _base_cmi__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(319);
1057
+ /* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(449);
1055
1058
  /* harmony import */ var _constants_error_codes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(797);
1056
1059
 
1057
1060
 
@@ -1060,15 +1063,15 @@ __webpack_require__.r(__webpack_exports__);
1060
1063
 
1061
1064
 
1062
1065
  var CMIScore = (function (_super) {
1063
- (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__extends)(CMIScore, _super);
1066
+ (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__extends)(CMIScore, _super);
1064
1067
  function CMIScore(params) {
1065
1068
  var _this = _super.call(this) || this;
1066
1069
  _this._raw = "";
1067
1070
  _this._min = "";
1068
- _this.__children = params.score_children || _constants_api_constants__WEBPACK_IMPORTED_MODULE_0__.scorm12_constants.score_children;
1071
+ _this.__children = params.score_children || _constants_api_constants__WEBPACK_IMPORTED_MODULE_1__.scorm12_constants.score_children;
1069
1072
  _this.__score_range = !params.score_range
1070
1073
  ? false
1071
- : _constants_regex__WEBPACK_IMPORTED_MODULE_1__.scorm12_regex.score_range;
1074
+ : _constants_regex__WEBPACK_IMPORTED_MODULE_2__.scorm12_regex.score_range;
1072
1075
  _this._max = params.max || params.max === "" ? params.max : "100";
1073
1076
  _this.__invalid_error_code =
1074
1077
  params.invalidErrorCode || _constants_error_codes__WEBPACK_IMPORTED_MODULE_3__.scorm12_errors.INVALID_SET_VALUE;
@@ -1076,7 +1079,7 @@ var CMIScore = (function (_super) {
1076
1079
  params.invalidTypeCode || _constants_error_codes__WEBPACK_IMPORTED_MODULE_3__.scorm12_errors.TYPE_MISMATCH;
1077
1080
  _this.__invalid_range_code =
1078
1081
  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;
1082
+ _this.__decimal_regex = params.decimalRegex || _constants_regex__WEBPACK_IMPORTED_MODULE_2__.scorm12_regex.CMIDecimal;
1080
1083
  _this.__error_class = params.errorClass;
1081
1084
  return _this;
1082
1085
  }
@@ -1098,9 +1101,9 @@ var CMIScore = (function (_super) {
1098
1101
  return this._raw;
1099
1102
  },
1100
1103
  set: function (raw) {
1101
- if ((0,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidFormat)(raw, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
1104
+ if ((0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidFormat)(raw, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
1102
1105
  (!this.__score_range ||
1103
- (0,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidRange)(raw, this.__score_range, this.__invalid_range_code, this.__error_class))) {
1106
+ (0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidRange)(raw, this.__score_range, this.__invalid_range_code, this.__error_class))) {
1104
1107
  this._raw = raw;
1105
1108
  }
1106
1109
  },
@@ -1112,9 +1115,9 @@ var CMIScore = (function (_super) {
1112
1115
  return this._min;
1113
1116
  },
1114
1117
  set: function (min) {
1115
- if ((0,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidFormat)(min, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
1118
+ if ((0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidFormat)(min, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
1116
1119
  (!this.__score_range ||
1117
- (0,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidRange)(min, this.__score_range, this.__invalid_range_code, this.__error_class))) {
1120
+ (0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidRange)(min, this.__score_range, this.__invalid_range_code, this.__error_class))) {
1118
1121
  this._min = min;
1119
1122
  }
1120
1123
  },
@@ -1126,9 +1129,9 @@ var CMIScore = (function (_super) {
1126
1129
  return this._max;
1127
1130
  },
1128
1131
  set: function (max) {
1129
- if ((0,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidFormat)(max, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
1132
+ if ((0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidFormat)(max, this.__decimal_regex, this.__invalid_type_code, this.__error_class) &&
1130
1133
  (!this.__score_range ||
1131
- (0,_validation__WEBPACK_IMPORTED_MODULE_5__.checkValidRange)(max, this.__score_range, this.__invalid_range_code, this.__error_class))) {
1134
+ (0,_validation__WEBPACK_IMPORTED_MODULE_4__.checkValidRange)(max, this.__score_range, this.__invalid_range_code, this.__error_class))) {
1132
1135
  this._max = max;
1133
1136
  }
1134
1137
  },
@@ -1146,7 +1149,7 @@ var CMIScore = (function (_super) {
1146
1149
  return result;
1147
1150
  };
1148
1151
  return CMIScore;
1149
- }(_base_cmi__WEBPACK_IMPORTED_MODULE_2__.BaseCMI));
1152
+ }(_base_cmi__WEBPACK_IMPORTED_MODULE_5__.BaseCMI));
1150
1153
 
1151
1154
 
1152
1155
 
@@ -1511,7 +1514,7 @@ var scorm12_regex = {
1511
1514
  CMISInteger: "^-?([0-9]+)$",
1512
1515
  CMIDecimal: "^-?([0-9]{0,3})(.[0-9]*)?$",
1513
1516
  CMIIdentifier: "^[\\u0021-\\u007E\\s]{0,255}$",
1514
- CMIFeedback: "^.{0,255}$",
1517
+ CMIFeedback: "^.*$",
1515
1518
  CMIIndex: "[._](\\d+).",
1516
1519
  CMIStatus: "^(passed|completed|failed|incomplete|browsed)$",
1517
1520
  CMIStatus2: "^(passed|completed|failed|incomplete|browsed|not attempted)$",
@@ -4452,16 +4455,22 @@ var Scorm2004Impl = (function (_super) {
4452
4455
  });
4453
4456
  };
4454
4457
  Scorm2004Impl.prototype.lmsGetValue = function (CMIElement) {
4458
+ var _a;
4455
4459
  var adlNavRequestRegex = "^adl\\.nav\\.request_valid\\.(choice|jump)\\.{target=\\S{0,}([a-zA-Z0-9-_]+)}$";
4456
4460
  if ((0,utilities.stringMatches)(CMIElement, adlNavRequestRegex)) {
4457
4461
  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));
4462
+ if (matches) {
4463
+ var request = matches[1];
4464
+ var target = matches[2].replace("{target=", "").replace("}", "");
4465
+ if (request === "choice" || request === "jump") {
4466
+ if (this.settings.scoItemIdValidator) {
4467
+ return String(this.settings.scoItemIdValidator(target));
4468
+ }
4469
+ if (this.settings.scoItemIds) {
4470
+ return String((_a = this.settings.scoItemIds) === null || _a === void 0 ? void 0 : _a.includes(target));
4471
+ }
4472
+ return String(request);
4463
4473
  }
4464
- return String(this.settings.scoItemIds.includes(target));
4465
4474
  }
4466
4475
  }
4467
4476
  return this.getValue("GetValue", true, CMIElement);
@@ -4498,6 +4507,7 @@ var Scorm2004Impl = (function (_super) {
4498
4507
  return this.getDiagnostic("GetDiagnostic", CMIErrorCode);
4499
4508
  };
4500
4509
  Scorm2004Impl.prototype.setCMIValue = function (CMIElement, value) {
4510
+ var _a;
4501
4511
  if ((0,utilities.stringMatches)(CMIElement, "cmi\\.objectives\\.\\d+")) {
4502
4512
  var parts = CMIElement.split(".");
4503
4513
  var index = Number(parts[2]);
@@ -4511,7 +4521,8 @@ var Scorm2004Impl = (function (_super) {
4511
4521
  var objective = this.cmi.objectives.findObjectiveByIndex(index);
4512
4522
  objective_id_1 = objective ? objective.id : undefined;
4513
4523
  }
4514
- var is_global = objective_id_1 && this.settings.globalObjectiveIds.includes(objective_id_1);
4524
+ var is_global = objective_id_1 &&
4525
+ ((_a = this.settings.globalObjectiveIds) === null || _a === void 0 ? void 0 : _a.includes(objective_id_1));
4515
4526
  if (is_global) {
4516
4527
  var global_index = this._globalObjectives.findIndex(function (obj) { return obj.id === objective_id_1; });
4517
4528
  if (global_index === -1) {
@@ -4795,9 +4806,8 @@ var Scorm2004Impl = (function (_super) {
4795
4806
  }
4796
4807
  }
4797
4808
  var score = this.cmi.score;
4798
- var scoreObject = null;
4809
+ var scoreObject = {};
4799
4810
  if (score) {
4800
- scoreObject = {};
4801
4811
  if (!Number.isNaN(Number.parseFloat(score.raw))) {
4802
4812
  scoreObject.raw = Number.parseFloat(score.raw);
4803
4813
  }