scorm-again 2.4.0 → 2.5.0

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 (61) hide show
  1. package/README.md +23 -23
  2. package/dist/aicc.js +65 -41
  3. package/dist/aicc.js.map +1 -1
  4. package/dist/aicc.min.js +1 -1
  5. package/dist/aicc.min.js.map +1 -1
  6. package/dist/esm/aicc.js +65 -41
  7. package/dist/esm/aicc.js.map +1 -1
  8. package/dist/esm/aicc.min.js +1 -1
  9. package/dist/esm/aicc.min.js.map +1 -1
  10. package/dist/esm/scorm-again.js +78 -48
  11. package/dist/esm/scorm-again.js.map +1 -1
  12. package/dist/esm/scorm-again.min.js +1 -1
  13. package/dist/esm/scorm-again.min.js.map +1 -1
  14. package/dist/esm/scorm12.js +65 -41
  15. package/dist/esm/scorm12.js.map +1 -1
  16. package/dist/esm/scorm12.min.js +1 -1
  17. package/dist/esm/scorm12.min.js.map +1 -1
  18. package/dist/esm/scorm2004.js +78 -48
  19. package/dist/esm/scorm2004.js.map +1 -1
  20. package/dist/esm/scorm2004.min.js +1 -1
  21. package/dist/esm/scorm2004.min.js.map +1 -1
  22. package/dist/scorm-again.js +78 -48
  23. package/dist/scorm-again.js.map +1 -1
  24. package/dist/scorm-again.min.js +1 -1
  25. package/dist/scorm-again.min.js.map +1 -1
  26. package/dist/scorm12.js +65 -41
  27. package/dist/scorm12.js.map +1 -1
  28. package/dist/scorm12.min.js +1 -1
  29. package/dist/scorm12.min.js.map +1 -1
  30. package/dist/scorm2004.js +78 -48
  31. package/dist/scorm2004.js.map +1 -1
  32. package/dist/scorm2004.min.js +1 -1
  33. package/dist/scorm2004.min.js.map +1 -1
  34. package/package.json +4 -4
  35. package/src/AICC.ts +2 -2
  36. package/src/BaseAPI.ts +28 -66
  37. package/src/Scorm12API.ts +3 -3
  38. package/src/Scorm2004API.ts +11 -7
  39. package/src/cmi/aicc/attempts.ts +7 -7
  40. package/src/cmi/aicc/cmi.ts +4 -4
  41. package/src/cmi/aicc/core.ts +1 -1
  42. package/src/cmi/aicc/evaluation.ts +1 -1
  43. package/src/cmi/aicc/student_data.ts +2 -2
  44. package/src/cmi/aicc/student_preferences.ts +2 -2
  45. package/src/cmi/aicc/tries.ts +7 -7
  46. package/src/cmi/scorm12/cmi.ts +1 -1
  47. package/src/cmi/scorm12/interactions.ts +1 -1
  48. package/src/cmi/scorm2004/adl.ts +2 -2
  49. package/src/cmi/scorm2004/cmi.ts +1 -1
  50. package/src/cmi/scorm2004/interactions.ts +1 -1
  51. package/src/cmi/scorm2004/objectives.ts +1 -1
  52. package/src/cmi/scorm2004/score.ts +1 -1
  53. package/src/constants/api_constants.ts +0 -10
  54. package/src/constants/default_settings.ts +25 -8
  55. package/src/constants/enums.ts +9 -0
  56. package/src/constants/regex.ts +1 -1
  57. package/src/exceptions.ts +1 -5
  58. package/src/types/api_types.ts +26 -3
  59. package/test/Scorm12API.spec.ts +101 -1
  60. package/test/types/api_types.spec.ts +38 -45
  61. package/tsconfig.json +1 -0
@@ -21,9 +21,12 @@ var error_codes = __webpack_require__(797);
21
21
  var api_constants = __webpack_require__(340);
22
22
  // EXTERNAL MODULE: ./src/utilities.ts
23
23
  var utilities = __webpack_require__(864);
24
+ // EXTERNAL MODULE: ./src/constants/enums.ts
25
+ var enums = __webpack_require__(56);
24
26
  ;// ./src/constants/default_settings.ts
25
27
 
26
28
 
29
+
27
30
  var DefaultSettings = {
28
31
  autocommit: false,
29
32
  autocommitSeconds: 10,
@@ -33,7 +36,7 @@ var DefaultSettings = {
33
36
  dataCommitFormat: "json",
34
37
  commitRequestDataType: "application/json;charset=UTF-8",
35
38
  autoProgress: false,
36
- logLevel: api_constants/* default */.A.global.LOG_LEVEL_ERROR,
39
+ logLevel: enums/* LogLevelEnum */.Mb.ERROR,
37
40
  selfReportSessionTime: false,
38
41
  alwaysSendTotalTime: false,
39
42
  renderCommonCommitFields: false,
@@ -43,15 +46,18 @@ var DefaultSettings = {
43
46
  fetchMode: "cors",
44
47
  responseHandler: function (response) {
45
48
  return (0,tslib_es6/* __awaiter */.sH)(this, void 0, void 0, function () {
46
- var httpResult, _a, _b;
47
- return (0,tslib_es6/* __generator */.YH)(this, function (_c) {
48
- switch (_c.label) {
49
+ var responseText, httpResult;
50
+ return (0,tslib_es6/* __generator */.YH)(this, function (_a) {
51
+ switch (_a.label) {
49
52
  case 0:
50
53
  if (!(typeof response !== "undefined")) return [3, 2];
51
- _b = (_a = JSON).parse;
52
54
  return [4, response.text()];
53
55
  case 1:
54
- httpResult = _b.apply(_a, [_c.sent()]);
56
+ responseText = _a.sent();
57
+ httpResult = null;
58
+ if (responseText) {
59
+ httpResult = JSON.parse(responseText);
60
+ }
55
61
  if (httpResult === null ||
56
62
  !{}.hasOwnProperty.call(httpResult, "result")) {
57
63
  if (response.status === 200) {
@@ -77,7 +83,7 @@ var DefaultSettings = {
77
83
  : 101,
78
84
  }];
79
85
  }
80
- _c.label = 2;
86
+ _a.label = 2;
81
87
  case 2: return [2, {
82
88
  result: api_constants/* default */.A.global.SCORM_FALSE,
83
89
  errorCode: 101,
@@ -91,16 +97,28 @@ var DefaultSettings = {
91
97
  },
92
98
  onLogMessage: function (messageLevel, logMessage) {
93
99
  switch (messageLevel) {
94
- case api_constants/* default */.A.global.LOG_LEVEL_ERROR:
100
+ case "4":
101
+ case 4:
102
+ case "ERROR":
103
+ case enums/* LogLevelEnum */.Mb.ERROR:
95
104
  console.error(logMessage);
96
105
  break;
97
- case api_constants/* default */.A.global.LOG_LEVEL_WARNING:
106
+ case "3":
107
+ case 3:
108
+ case "WARN":
109
+ case enums/* LogLevelEnum */.Mb.WARN:
98
110
  console.warn(logMessage);
99
111
  break;
100
- case api_constants/* default */.A.global.LOG_LEVEL_INFO:
112
+ case "2":
113
+ case 2:
114
+ case "INFO":
115
+ case enums/* LogLevelEnum */.Mb.INFO:
101
116
  console.info(logMessage);
102
117
  break;
103
- case api_constants/* default */.A.global.LOG_LEVEL_DEBUG:
118
+ case "1":
119
+ case 1:
120
+ case "DEBUG":
121
+ case enums/* LogLevelEnum */.Mb.DEBUG:
104
122
  if (console.debug) {
105
123
  console.debug(logMessage);
106
124
  }
@@ -153,6 +171,7 @@ var ScheduledCommit = (function () {
153
171
 
154
172
 
155
173
 
174
+
156
175
  var BaseAPI = (function () {
157
176
  function BaseAPI(error_codes, settings) {
158
177
  var _newTarget = this.constructor;
@@ -169,6 +188,9 @@ var BaseAPI = (function () {
169
188
  }
170
189
  this.apiLogLevel = this.settings.logLevel;
171
190
  this.selfReportSessionTime = this.settings.selfReportSessionTime;
191
+ if (this.apiLogLevel === undefined) {
192
+ this.apiLogLevel = enums/* LogLevelEnum */.Mb.NONE;
193
+ }
172
194
  }
173
195
  BaseAPI.prototype.commonReset = function (settings) {
174
196
  this.settings = (0,tslib_es6/* __assign */.Cl)((0,tslib_es6/* __assign */.Cl)({}, this.settings), settings);
@@ -193,7 +215,7 @@ var BaseAPI = (function () {
193
215
  returnValue = api_constants/* default */.A.global.SCORM_TRUE;
194
216
  this.processListeners(callbackName);
195
217
  }
196
- this.apiLog(callbackName, "returned: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO);
218
+ this.apiLog(callbackName, "returned: " + returnValue, enums/* LogLevelEnum */.Mb.INFO);
197
219
  this.clearSCORMError(returnValue);
198
220
  return returnValue;
199
221
  };
@@ -245,7 +267,7 @@ var BaseAPI = (function () {
245
267
  this.processListeners(callbackName);
246
268
  _a.label = 2;
247
269
  case 2:
248
- this.apiLog(callbackName, "returned: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO);
270
+ this.apiLog(callbackName, "returned: " + returnValue, enums/* LogLevelEnum */.Mb.INFO);
249
271
  this.clearSCORMError(returnValue);
250
272
  return [2, returnValue];
251
273
  }
@@ -265,7 +287,7 @@ var BaseAPI = (function () {
265
287
  }
266
288
  this.processListeners(callbackName, CMIElement);
267
289
  }
268
- this.apiLog(callbackName, ": returned: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO, CMIElement);
290
+ this.apiLog(callbackName, ": returned: " + returnValue, enums/* LogLevelEnum */.Mb.INFO, CMIElement);
269
291
  if (returnValue === undefined) {
270
292
  return "";
271
293
  }
@@ -296,7 +318,7 @@ var BaseAPI = (function () {
296
318
  this.scheduleCommit(this.settings.autocommitSeconds * 1000, commitCallback);
297
319
  }
298
320
  }
299
- this.apiLog(callbackName, ": " + value + ": result: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO, CMIElement);
321
+ this.apiLog(callbackName, ": " + value + ": result: " + returnValue, enums/* LogLevelEnum */.Mb.INFO, CMIElement);
300
322
  this.clearSCORMError(returnValue);
301
323
  return returnValue;
302
324
  };
@@ -307,7 +329,6 @@ var BaseAPI = (function () {
307
329
  return (0,tslib_es6/* __generator */.YH)(this, function (_a) {
308
330
  switch (_a.label) {
309
331
  case 0:
310
- console.log("commit");
311
332
  this.clearScheduledCommit();
312
333
  returnValue = api_constants/* default */.A.global.SCORM_FALSE;
313
334
  if (!this.checkState(checkTerminated, this._error_codes.COMMIT_BEFORE_INIT, this._error_codes.COMMIT_AFTER_TERM)) return [3, 2];
@@ -321,13 +342,13 @@ var BaseAPI = (function () {
321
342
  typeof result !== "undefined" && result.result
322
343
  ? result.result
323
344
  : api_constants/* default */.A.global.SCORM_FALSE;
324
- this.apiLog(callbackName, " Result: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_DEBUG, "HttpRequest");
345
+ this.apiLog(callbackName, " Result: " + returnValue, enums/* LogLevelEnum */.Mb.DEBUG, "HttpRequest");
325
346
  if (checkTerminated)
326
347
  this.lastErrorCode = "0";
327
348
  this.processListeners(callbackName);
328
349
  _a.label = 2;
329
350
  case 2:
330
- this.apiLog(callbackName, "returned: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO);
351
+ this.apiLog(callbackName, "returned: " + returnValue, enums/* LogLevelEnum */.Mb.INFO);
331
352
  this.clearSCORMError(returnValue);
332
353
  return [2, returnValue];
333
354
  }
@@ -337,7 +358,7 @@ var BaseAPI = (function () {
337
358
  BaseAPI.prototype.getLastError = function (callbackName) {
338
359
  var returnValue = String(this.lastErrorCode);
339
360
  this.processListeners(callbackName);
340
- this.apiLog(callbackName, "returned: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO);
361
+ this.apiLog(callbackName, "returned: " + returnValue, enums/* LogLevelEnum */.Mb.INFO);
341
362
  return returnValue;
342
363
  };
343
364
  BaseAPI.prototype.getErrorString = function (callbackName, CMIErrorCode) {
@@ -346,7 +367,7 @@ var BaseAPI = (function () {
346
367
  returnValue = this.getLmsErrorMessageDetails(CMIErrorCode);
347
368
  this.processListeners(callbackName);
348
369
  }
349
- this.apiLog(callbackName, "returned: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO);
370
+ this.apiLog(callbackName, "returned: " + returnValue, enums/* LogLevelEnum */.Mb.INFO);
350
371
  return returnValue;
351
372
  };
352
373
  BaseAPI.prototype.getDiagnostic = function (callbackName, CMIErrorCode) {
@@ -355,7 +376,7 @@ var BaseAPI = (function () {
355
376
  returnValue = this.getLmsErrorMessageDetails(CMIErrorCode, true);
356
377
  this.processListeners(callbackName);
357
378
  }
358
- this.apiLog(callbackName, "returned: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO);
379
+ this.apiLog(callbackName, "returned: " + returnValue, enums/* LogLevelEnum */.Mb.INFO);
359
380
  return returnValue;
360
381
  };
361
382
  BaseAPI.prototype.checkState = function (checkTerminated, beforeInitError, afterTermError) {
@@ -449,7 +470,7 @@ var BaseAPI = (function () {
449
470
  }
450
471
  }
451
472
  if (returnValue === api_constants/* default */.A.global.SCORM_FALSE) {
452
- this.apiLog(methodName, "There was an error setting the value for: ".concat(CMIElement, ", value of: ").concat(value), api_constants/* default */.A.global.LOG_LEVEL_WARNING);
473
+ this.apiLog(methodName, "There was an error setting the value for: ".concat(CMIElement, ", value of: ").concat(value), enums/* LogLevelEnum */.Mb.WARN);
453
474
  }
454
475
  return returnValue;
455
476
  };
@@ -547,7 +568,7 @@ var BaseAPI = (function () {
547
568
  CMIElement: CMIElement,
548
569
  callback: callback,
549
570
  });
550
- this.apiLog("on", "Added event listener: ".concat(this.listenerArray.length), api_constants/* default */.A.global.LOG_LEVEL_INFO, functionName);
571
+ this.apiLog("on", "Added event listener: ".concat(this.listenerArray.length), enums/* LogLevelEnum */.Mb.INFO, functionName);
551
572
  }
552
573
  };
553
574
  BaseAPI.prototype.off = function (listenerName, callback) {
@@ -570,7 +591,7 @@ var BaseAPI = (function () {
570
591
  });
571
592
  if (removeIndex !== -1) {
572
593
  this_1.listenerArray.splice(removeIndex, 1);
573
- this_1.apiLog("off", "Removed event listener: ".concat(this_1.listenerArray.length), api_constants/* default */.A.global.LOG_LEVEL_INFO, functionName);
594
+ this_1.apiLog("off", "Removed event listener: ".concat(this_1.listenerArray.length), enums/* LogLevelEnum */.Mb.INFO, functionName);
574
595
  }
575
596
  };
576
597
  var this_1 = this;
@@ -603,7 +624,7 @@ var BaseAPI = (function () {
603
624
  }
604
625
  };
605
626
  BaseAPI.prototype.processListeners = function (functionName, CMIElement, value) {
606
- this.apiLog(functionName, value, api_constants/* default */.A.global.LOG_LEVEL_INFO, CMIElement);
627
+ this.apiLog(functionName, value, enums/* LogLevelEnum */.Mb.INFO, CMIElement);
607
628
  for (var i = 0; i < this.listenerArray.length; i++) {
608
629
  var listener = this.listenerArray[i];
609
630
  var functionsMatch = listener.functionName === functionName;
@@ -619,7 +640,7 @@ var BaseAPI = (function () {
619
640
  CMIElementsMatch = listener.CMIElement === CMIElement;
620
641
  }
621
642
  if (functionsMatch && (!listenerHasCMIElement || CMIElementsMatch)) {
622
- this.apiLog("processListeners", "Processing listener: ".concat(listener.functionName), api_constants/* default */.A.global.LOG_LEVEL_INFO, CMIElement);
643
+ this.apiLog("processListeners", "Processing listener: ".concat(listener.functionName), enums/* LogLevelEnum */.Mb.INFO, CMIElement);
623
644
  listener.callback(CMIElement, value);
624
645
  }
625
646
  }
@@ -628,7 +649,7 @@ var BaseAPI = (function () {
628
649
  if (!message) {
629
650
  message = this.getLmsErrorMessageDetails(errorNumber);
630
651
  }
631
- this.apiLog("throwSCORMError", errorNumber + ": " + message, api_constants/* default */.A.global.LOG_LEVEL_ERROR);
652
+ this.apiLog("throwSCORMError", errorNumber + ": " + message, enums/* LogLevelEnum */.Mb.ERROR);
632
653
  this.lastErrorCode = String(errorNumber);
633
654
  };
634
655
  BaseAPI.prototype.clearSCORMError = function (success) {
@@ -702,6 +723,7 @@ var BaseAPI = (function () {
702
723
  });
703
724
  };
704
725
  BaseAPI.prototype.loadFromJSON = function (json, CMIElement) {
726
+ if (CMIElement === void 0) { CMIElement = ""; }
705
727
  if (!this.isNotInitialized()) {
706
728
  console.error("loadFromJSON can only be called before the call to lmsInitialize.");
707
729
  return;
@@ -778,7 +800,7 @@ var BaseAPI = (function () {
778
800
  return [2, this.transformResponse(response)];
779
801
  case 2:
780
802
  e_1 = _a.sent();
781
- this.apiLog("processHttpRequest", e_1, api_constants/* default */.A.global.LOG_LEVEL_ERROR);
803
+ this.apiLog("processHttpRequest", e_1, enums/* LogLevelEnum */.Mb.ERROR);
782
804
  api.processListeners("CommitError");
783
805
  return [2, genericError];
784
806
  case 3: return [2];
@@ -794,14 +816,14 @@ var BaseAPI = (function () {
794
816
  BaseAPI.prototype.scheduleCommit = function (when, callback) {
795
817
  if (!this._timeout) {
796
818
  this._timeout = new ScheduledCommit(this, when, callback);
797
- this.apiLog("scheduleCommit", "scheduled", api_constants/* default */.A.global.LOG_LEVEL_DEBUG, "");
819
+ this.apiLog("scheduleCommit", "scheduled", enums/* LogLevelEnum */.Mb.DEBUG, "");
798
820
  }
799
821
  };
800
822
  BaseAPI.prototype.clearScheduledCommit = function () {
801
823
  if (this._timeout) {
802
824
  this._timeout.cancel();
803
825
  this._timeout = undefined;
804
- this.apiLog("clearScheduledCommit", "cleared", api_constants/* default */.A.global.LOG_LEVEL_DEBUG, "");
826
+ this.apiLog("clearScheduledCommit", "cleared", enums/* LogLevelEnum */.Mb.DEBUG, "");
805
827
  }
806
828
  };
807
829
  BaseAPI.prototype._checkObjectHasProperty = function (refObject, attribute) {
@@ -830,7 +852,7 @@ var BaseAPI = (function () {
830
852
  var commitObject = this.settings.renderCommonCommitFields
831
853
  ? this.renderCommitObject(shouldTerminateCommit)
832
854
  : this.renderCommitCMI(shouldTerminateCommit);
833
- if (this.apiLogLevel === api_constants/* default */.A.global.LOG_LEVEL_DEBUG) {
855
+ if ([enums/* LogLevelEnum */.Mb.DEBUG, "1", 1, "DEBUG"].includes(this.apiLogLevel)) {
834
856
  console.debug("Commit (terminated: " + (terminateCommit ? "yes" : "no") + "): ");
835
857
  console.debug(commitObject);
836
858
  }
@@ -1162,11 +1184,6 @@ var global = {
1162
1184
  STATE_NOT_INITIALIZED: 0,
1163
1185
  STATE_INITIALIZED: 1,
1164
1186
  STATE_TERMINATED: 2,
1165
- LOG_LEVEL_DEBUG: 1,
1166
- LOG_LEVEL_INFO: 2,
1167
- LOG_LEVEL_WARNING: 3,
1168
- LOG_LEVEL_ERROR: 4,
1169
- LOG_LEVEL_NONE: 5,
1170
1187
  };
1171
1188
  var scorm12 = {
1172
1189
  cmi_children: "core,suspend_data,launch_data,comments,objectives,student_data,student_preference,interactions",
@@ -1370,6 +1387,7 @@ var APIConstants = {
1370
1387
 
1371
1388
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1372
1389
  /* harmony export */ K$: function() { return /* binding */ NAVBoolean; },
1390
+ /* harmony export */ Mb: function() { return /* binding */ LogLevelEnum; },
1373
1391
  /* harmony export */ YE: function() { return /* binding */ SuccessStatus; },
1374
1392
  /* harmony export */ lC: function() { return /* binding */ CompletionStatus; }
1375
1393
  /* harmony export */ });
@@ -1391,6 +1409,15 @@ var CompletionStatus;
1391
1409
  CompletionStatus["incomplete"] = "incomplete";
1392
1410
  CompletionStatus["unknown"] = "unknown";
1393
1411
  })(CompletionStatus || (CompletionStatus = {}));
1412
+ var LogLevelEnum;
1413
+ (function (LogLevelEnum) {
1414
+ LogLevelEnum[LogLevelEnum["_"] = 0] = "_";
1415
+ LogLevelEnum[LogLevelEnum["DEBUG"] = 1] = "DEBUG";
1416
+ LogLevelEnum[LogLevelEnum["INFO"] = 2] = "INFO";
1417
+ LogLevelEnum[LogLevelEnum["WARN"] = 3] = "WARN";
1418
+ LogLevelEnum[LogLevelEnum["ERROR"] = 4] = "ERROR";
1419
+ LogLevelEnum[LogLevelEnum["NONE"] = 5] = "NONE";
1420
+ })(LogLevelEnum || (LogLevelEnum = {}));
1394
1421
 
1395
1422
 
1396
1423
  /***/ }),
@@ -1499,7 +1526,7 @@ var scorm2004 = {
1499
1526
  CMIExit: "^(time-out|suspend|logout|normal)$",
1500
1527
  CMIType: "^(true-false|choice|fill-in|long-fill-in|matching|performance|sequencing|likert|numeric|other)$",
1501
1528
  CMIResult: "^(correct|incorrect|unanticipated|neutral|-?([0-9]{1,4})(\\.[0-9]{1,18})?)$",
1502
- NAVEvent: "^(previous|continue|exit|exitAll|abandon|abandonAll|suspendAll|_none_|(\\{target=\\S{0,}[a-zA-Z0-9-_]+})?choice|(\\{target=\\S{0,}[a-zA-Z0-9-_]+})?jump)$",
1529
+ NAVEvent: "^(previous|continue|exit|exitAll|abandon|abandonAll|suspendAll|_none_|(\\{target=(?<choice_target>\\S{0,}[a-zA-Z0-9-_]+)})?choice|(\\{target=(?<jump_target>\\S{0,}[a-zA-Z0-9-_]+)})?jump)$",
1503
1530
  NAVBoolean: "^(unknown|true|false$)",
1504
1531
  NAVTarget: "^{target=\\S{0,}[a-zA-Z0-9-_]+}$",
1505
1532
  scaled_range: "-1#1",
@@ -1549,9 +1576,6 @@ var BaseScormValidationError = (function (_super) {
1549
1576
  enumerable: false,
1550
1577
  configurable: true
1551
1578
  });
1552
- BaseScormValidationError.prototype.setMessage = function (message) {
1553
- this.message = message;
1554
- };
1555
1579
  return BaseScormValidationError;
1556
1580
  }(Error));
1557
1581
 
@@ -1560,7 +1584,7 @@ var ValidationError = (function (_super) {
1560
1584
  function ValidationError(errorCode, errorMessage, detailedMessage) {
1561
1585
  var _this = _super.call(this, errorCode) || this;
1562
1586
  _this._detailedMessage = "";
1563
- _this.setMessage(errorMessage);
1587
+ _this.message = errorMessage;
1564
1588
  _this._errorMessage = errorMessage;
1565
1589
  if (detailedMessage) {
1566
1590
  _this._detailedMessage = detailedMessage;
@@ -4184,11 +4208,12 @@ var Scorm2004Impl = (function (_super) {
4184
4208
  Scorm2004Impl.prototype.internalFinish = function () {
4185
4209
  return (0,tslib_es6/* __awaiter */.sH)(this, void 0, void 0, function () {
4186
4210
  var result, navActions, request, choiceJumpRegex, matches, target, action;
4187
- return (0,tslib_es6/* __generator */.YH)(this, function (_a) {
4188
- switch (_a.label) {
4211
+ var _a, _b, _c, _d;
4212
+ return (0,tslib_es6/* __generator */.YH)(this, function (_e) {
4213
+ switch (_e.label) {
4189
4214
  case 0: return [4, this.terminate("Terminate", true)];
4190
4215
  case 1:
4191
- result = _a.sent();
4216
+ result = _e.sent();
4192
4217
  if (result === api_constants/* default */.A.global.SCORM_TRUE) {
4193
4218
  if (this.adl.nav.request !== "_none_") {
4194
4219
  navActions = {
@@ -4205,9 +4230,15 @@ var Scorm2004Impl = (function (_super) {
4205
4230
  choiceJumpRegex = new RegExp(regex/* default */.A.scorm2004.NAVEvent);
4206
4231
  matches = request.match(choiceJumpRegex);
4207
4232
  target = "";
4208
- if (matches && matches.length > 2) {
4209
- target = matches[2];
4210
- request = matches[1].replace(target, "");
4233
+ if (matches) {
4234
+ if ((_a = matches.groups) === null || _a === void 0 ? void 0 : _a.choice_target) {
4235
+ target = (_b = matches.groups) === null || _b === void 0 ? void 0 : _b.choice_target;
4236
+ request = "choice";
4237
+ }
4238
+ else if ((_c = matches.groups) === null || _c === void 0 ? void 0 : _c.jump_target) {
4239
+ target = (_d = matches.groups) === null || _d === void 0 ? void 0 : _d.jump_target;
4240
+ request = "jump";
4241
+ }
4211
4242
  }
4212
4243
  action = navActions[request];
4213
4244
  if (action) {
@@ -4597,7 +4628,6 @@ var Scorm2004Impl = (function (_super) {
4597
4628
  navRequest = false;
4598
4629
  if (this.adl.nav.request !== ((_c = (_b = (_a = this.startingData) === null || _a === void 0 ? void 0 : _a.adl) === null || _b === void 0 ? void 0 : _b.nav) === null || _c === void 0 ? void 0 : _c.request) &&
4599
4630
  this.adl.nav.request !== "_none_") {
4600
- this.adl.nav.request = encodeURIComponent(this.adl.nav.request);
4601
4631
  navRequest = true;
4602
4632
  }
4603
4633
  commitObject = this.getCommitObject(terminateCommit);