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
package/dist/scorm2004.js CHANGED
@@ -23,9 +23,12 @@ var error_codes = __webpack_require__(797);
23
23
  var api_constants = __webpack_require__(340);
24
24
  // EXTERNAL MODULE: ./src/utilities.ts
25
25
  var utilities = __webpack_require__(864);
26
+ // EXTERNAL MODULE: ./src/constants/enums.ts
27
+ var enums = __webpack_require__(56);
26
28
  ;// ./src/constants/default_settings.ts
27
29
 
28
30
 
31
+
29
32
  var DefaultSettings = {
30
33
  autocommit: false,
31
34
  autocommitSeconds: 10,
@@ -35,7 +38,7 @@ var DefaultSettings = {
35
38
  dataCommitFormat: "json",
36
39
  commitRequestDataType: "application/json;charset=UTF-8",
37
40
  autoProgress: false,
38
- logLevel: api_constants/* default */.A.global.LOG_LEVEL_ERROR,
41
+ logLevel: enums/* LogLevelEnum */.Mb.ERROR,
39
42
  selfReportSessionTime: false,
40
43
  alwaysSendTotalTime: false,
41
44
  renderCommonCommitFields: false,
@@ -45,15 +48,18 @@ var DefaultSettings = {
45
48
  fetchMode: "cors",
46
49
  responseHandler: function (response) {
47
50
  return (0,tslib_es6/* __awaiter */.sH)(this, void 0, void 0, function () {
48
- var httpResult, _a, _b;
49
- return (0,tslib_es6/* __generator */.YH)(this, function (_c) {
50
- switch (_c.label) {
51
+ var responseText, httpResult;
52
+ return (0,tslib_es6/* __generator */.YH)(this, function (_a) {
53
+ switch (_a.label) {
51
54
  case 0:
52
55
  if (!(typeof response !== "undefined")) return [3, 2];
53
- _b = (_a = JSON).parse;
54
56
  return [4, response.text()];
55
57
  case 1:
56
- httpResult = _b.apply(_a, [_c.sent()]);
58
+ responseText = _a.sent();
59
+ httpResult = null;
60
+ if (responseText) {
61
+ httpResult = JSON.parse(responseText);
62
+ }
57
63
  if (httpResult === null ||
58
64
  !{}.hasOwnProperty.call(httpResult, "result")) {
59
65
  if (response.status === 200) {
@@ -79,7 +85,7 @@ var DefaultSettings = {
79
85
  : 101,
80
86
  }];
81
87
  }
82
- _c.label = 2;
88
+ _a.label = 2;
83
89
  case 2: return [2, {
84
90
  result: api_constants/* default */.A.global.SCORM_FALSE,
85
91
  errorCode: 101,
@@ -93,16 +99,28 @@ var DefaultSettings = {
93
99
  },
94
100
  onLogMessage: function (messageLevel, logMessage) {
95
101
  switch (messageLevel) {
96
- case api_constants/* default */.A.global.LOG_LEVEL_ERROR:
102
+ case "4":
103
+ case 4:
104
+ case "ERROR":
105
+ case enums/* LogLevelEnum */.Mb.ERROR:
97
106
  console.error(logMessage);
98
107
  break;
99
- case api_constants/* default */.A.global.LOG_LEVEL_WARNING:
108
+ case "3":
109
+ case 3:
110
+ case "WARN":
111
+ case enums/* LogLevelEnum */.Mb.WARN:
100
112
  console.warn(logMessage);
101
113
  break;
102
- case api_constants/* default */.A.global.LOG_LEVEL_INFO:
114
+ case "2":
115
+ case 2:
116
+ case "INFO":
117
+ case enums/* LogLevelEnum */.Mb.INFO:
103
118
  console.info(logMessage);
104
119
  break;
105
- case api_constants/* default */.A.global.LOG_LEVEL_DEBUG:
120
+ case "1":
121
+ case 1:
122
+ case "DEBUG":
123
+ case enums/* LogLevelEnum */.Mb.DEBUG:
106
124
  if (console.debug) {
107
125
  console.debug(logMessage);
108
126
  }
@@ -155,6 +173,7 @@ var ScheduledCommit = (function () {
155
173
 
156
174
 
157
175
 
176
+
158
177
  var BaseAPI = (function () {
159
178
  function BaseAPI(error_codes, settings) {
160
179
  var _newTarget = this.constructor;
@@ -171,6 +190,9 @@ var BaseAPI = (function () {
171
190
  }
172
191
  this.apiLogLevel = this.settings.logLevel;
173
192
  this.selfReportSessionTime = this.settings.selfReportSessionTime;
193
+ if (this.apiLogLevel === undefined) {
194
+ this.apiLogLevel = enums/* LogLevelEnum */.Mb.NONE;
195
+ }
174
196
  }
175
197
  BaseAPI.prototype.commonReset = function (settings) {
176
198
  this.settings = (0,tslib_es6/* __assign */.Cl)((0,tslib_es6/* __assign */.Cl)({}, this.settings), settings);
@@ -195,7 +217,7 @@ var BaseAPI = (function () {
195
217
  returnValue = api_constants/* default */.A.global.SCORM_TRUE;
196
218
  this.processListeners(callbackName);
197
219
  }
198
- this.apiLog(callbackName, "returned: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO);
220
+ this.apiLog(callbackName, "returned: " + returnValue, enums/* LogLevelEnum */.Mb.INFO);
199
221
  this.clearSCORMError(returnValue);
200
222
  return returnValue;
201
223
  };
@@ -247,7 +269,7 @@ var BaseAPI = (function () {
247
269
  this.processListeners(callbackName);
248
270
  _a.label = 2;
249
271
  case 2:
250
- this.apiLog(callbackName, "returned: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO);
272
+ this.apiLog(callbackName, "returned: " + returnValue, enums/* LogLevelEnum */.Mb.INFO);
251
273
  this.clearSCORMError(returnValue);
252
274
  return [2, returnValue];
253
275
  }
@@ -267,7 +289,7 @@ var BaseAPI = (function () {
267
289
  }
268
290
  this.processListeners(callbackName, CMIElement);
269
291
  }
270
- this.apiLog(callbackName, ": returned: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO, CMIElement);
292
+ this.apiLog(callbackName, ": returned: " + returnValue, enums/* LogLevelEnum */.Mb.INFO, CMIElement);
271
293
  if (returnValue === undefined) {
272
294
  return "";
273
295
  }
@@ -298,7 +320,7 @@ var BaseAPI = (function () {
298
320
  this.scheduleCommit(this.settings.autocommitSeconds * 1000, commitCallback);
299
321
  }
300
322
  }
301
- this.apiLog(callbackName, ": " + value + ": result: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO, CMIElement);
323
+ this.apiLog(callbackName, ": " + value + ": result: " + returnValue, enums/* LogLevelEnum */.Mb.INFO, CMIElement);
302
324
  this.clearSCORMError(returnValue);
303
325
  return returnValue;
304
326
  };
@@ -309,7 +331,6 @@ var BaseAPI = (function () {
309
331
  return (0,tslib_es6/* __generator */.YH)(this, function (_a) {
310
332
  switch (_a.label) {
311
333
  case 0:
312
- console.log("commit");
313
334
  this.clearScheduledCommit();
314
335
  returnValue = api_constants/* default */.A.global.SCORM_FALSE;
315
336
  if (!this.checkState(checkTerminated, this._error_codes.COMMIT_BEFORE_INIT, this._error_codes.COMMIT_AFTER_TERM)) return [3, 2];
@@ -323,13 +344,13 @@ var BaseAPI = (function () {
323
344
  typeof result !== "undefined" && result.result
324
345
  ? result.result
325
346
  : api_constants/* default */.A.global.SCORM_FALSE;
326
- this.apiLog(callbackName, " Result: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_DEBUG, "HttpRequest");
347
+ this.apiLog(callbackName, " Result: " + returnValue, enums/* LogLevelEnum */.Mb.DEBUG, "HttpRequest");
327
348
  if (checkTerminated)
328
349
  this.lastErrorCode = "0";
329
350
  this.processListeners(callbackName);
330
351
  _a.label = 2;
331
352
  case 2:
332
- this.apiLog(callbackName, "returned: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO);
353
+ this.apiLog(callbackName, "returned: " + returnValue, enums/* LogLevelEnum */.Mb.INFO);
333
354
  this.clearSCORMError(returnValue);
334
355
  return [2, returnValue];
335
356
  }
@@ -339,7 +360,7 @@ var BaseAPI = (function () {
339
360
  BaseAPI.prototype.getLastError = function (callbackName) {
340
361
  var returnValue = String(this.lastErrorCode);
341
362
  this.processListeners(callbackName);
342
- this.apiLog(callbackName, "returned: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO);
363
+ this.apiLog(callbackName, "returned: " + returnValue, enums/* LogLevelEnum */.Mb.INFO);
343
364
  return returnValue;
344
365
  };
345
366
  BaseAPI.prototype.getErrorString = function (callbackName, CMIErrorCode) {
@@ -348,7 +369,7 @@ var BaseAPI = (function () {
348
369
  returnValue = this.getLmsErrorMessageDetails(CMIErrorCode);
349
370
  this.processListeners(callbackName);
350
371
  }
351
- this.apiLog(callbackName, "returned: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO);
372
+ this.apiLog(callbackName, "returned: " + returnValue, enums/* LogLevelEnum */.Mb.INFO);
352
373
  return returnValue;
353
374
  };
354
375
  BaseAPI.prototype.getDiagnostic = function (callbackName, CMIErrorCode) {
@@ -357,7 +378,7 @@ var BaseAPI = (function () {
357
378
  returnValue = this.getLmsErrorMessageDetails(CMIErrorCode, true);
358
379
  this.processListeners(callbackName);
359
380
  }
360
- this.apiLog(callbackName, "returned: " + returnValue, api_constants/* default */.A.global.LOG_LEVEL_INFO);
381
+ this.apiLog(callbackName, "returned: " + returnValue, enums/* LogLevelEnum */.Mb.INFO);
361
382
  return returnValue;
362
383
  };
363
384
  BaseAPI.prototype.checkState = function (checkTerminated, beforeInitError, afterTermError) {
@@ -451,7 +472,7 @@ var BaseAPI = (function () {
451
472
  }
452
473
  }
453
474
  if (returnValue === api_constants/* default */.A.global.SCORM_FALSE) {
454
- 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);
475
+ this.apiLog(methodName, "There was an error setting the value for: ".concat(CMIElement, ", value of: ").concat(value), enums/* LogLevelEnum */.Mb.WARN);
455
476
  }
456
477
  return returnValue;
457
478
  };
@@ -549,7 +570,7 @@ var BaseAPI = (function () {
549
570
  CMIElement: CMIElement,
550
571
  callback: callback,
551
572
  });
552
- this.apiLog("on", "Added event listener: ".concat(this.listenerArray.length), api_constants/* default */.A.global.LOG_LEVEL_INFO, functionName);
573
+ this.apiLog("on", "Added event listener: ".concat(this.listenerArray.length), enums/* LogLevelEnum */.Mb.INFO, functionName);
553
574
  }
554
575
  };
555
576
  BaseAPI.prototype.off = function (listenerName, callback) {
@@ -572,7 +593,7 @@ var BaseAPI = (function () {
572
593
  });
573
594
  if (removeIndex !== -1) {
574
595
  this_1.listenerArray.splice(removeIndex, 1);
575
- this_1.apiLog("off", "Removed event listener: ".concat(this_1.listenerArray.length), api_constants/* default */.A.global.LOG_LEVEL_INFO, functionName);
596
+ this_1.apiLog("off", "Removed event listener: ".concat(this_1.listenerArray.length), enums/* LogLevelEnum */.Mb.INFO, functionName);
576
597
  }
577
598
  };
578
599
  var this_1 = this;
@@ -605,7 +626,7 @@ var BaseAPI = (function () {
605
626
  }
606
627
  };
607
628
  BaseAPI.prototype.processListeners = function (functionName, CMIElement, value) {
608
- this.apiLog(functionName, value, api_constants/* default */.A.global.LOG_LEVEL_INFO, CMIElement);
629
+ this.apiLog(functionName, value, enums/* LogLevelEnum */.Mb.INFO, CMIElement);
609
630
  for (var i = 0; i < this.listenerArray.length; i++) {
610
631
  var listener = this.listenerArray[i];
611
632
  var functionsMatch = listener.functionName === functionName;
@@ -621,7 +642,7 @@ var BaseAPI = (function () {
621
642
  CMIElementsMatch = listener.CMIElement === CMIElement;
622
643
  }
623
644
  if (functionsMatch && (!listenerHasCMIElement || CMIElementsMatch)) {
624
- this.apiLog("processListeners", "Processing listener: ".concat(listener.functionName), api_constants/* default */.A.global.LOG_LEVEL_INFO, CMIElement);
645
+ this.apiLog("processListeners", "Processing listener: ".concat(listener.functionName), enums/* LogLevelEnum */.Mb.INFO, CMIElement);
625
646
  listener.callback(CMIElement, value);
626
647
  }
627
648
  }
@@ -630,7 +651,7 @@ var BaseAPI = (function () {
630
651
  if (!message) {
631
652
  message = this.getLmsErrorMessageDetails(errorNumber);
632
653
  }
633
- this.apiLog("throwSCORMError", errorNumber + ": " + message, api_constants/* default */.A.global.LOG_LEVEL_ERROR);
654
+ this.apiLog("throwSCORMError", errorNumber + ": " + message, enums/* LogLevelEnum */.Mb.ERROR);
634
655
  this.lastErrorCode = String(errorNumber);
635
656
  };
636
657
  BaseAPI.prototype.clearSCORMError = function (success) {
@@ -704,6 +725,7 @@ var BaseAPI = (function () {
704
725
  });
705
726
  };
706
727
  BaseAPI.prototype.loadFromJSON = function (json, CMIElement) {
728
+ if (CMIElement === void 0) { CMIElement = ""; }
707
729
  if (!this.isNotInitialized()) {
708
730
  console.error("loadFromJSON can only be called before the call to lmsInitialize.");
709
731
  return;
@@ -780,7 +802,7 @@ var BaseAPI = (function () {
780
802
  return [2, this.transformResponse(response)];
781
803
  case 2:
782
804
  e_1 = _a.sent();
783
- this.apiLog("processHttpRequest", e_1, api_constants/* default */.A.global.LOG_LEVEL_ERROR);
805
+ this.apiLog("processHttpRequest", e_1, enums/* LogLevelEnum */.Mb.ERROR);
784
806
  api.processListeners("CommitError");
785
807
  return [2, genericError];
786
808
  case 3: return [2];
@@ -796,14 +818,14 @@ var BaseAPI = (function () {
796
818
  BaseAPI.prototype.scheduleCommit = function (when, callback) {
797
819
  if (!this._timeout) {
798
820
  this._timeout = new ScheduledCommit(this, when, callback);
799
- this.apiLog("scheduleCommit", "scheduled", api_constants/* default */.A.global.LOG_LEVEL_DEBUG, "");
821
+ this.apiLog("scheduleCommit", "scheduled", enums/* LogLevelEnum */.Mb.DEBUG, "");
800
822
  }
801
823
  };
802
824
  BaseAPI.prototype.clearScheduledCommit = function () {
803
825
  if (this._timeout) {
804
826
  this._timeout.cancel();
805
827
  this._timeout = undefined;
806
- this.apiLog("clearScheduledCommit", "cleared", api_constants/* default */.A.global.LOG_LEVEL_DEBUG, "");
828
+ this.apiLog("clearScheduledCommit", "cleared", enums/* LogLevelEnum */.Mb.DEBUG, "");
807
829
  }
808
830
  };
809
831
  BaseAPI.prototype._checkObjectHasProperty = function (refObject, attribute) {
@@ -832,7 +854,7 @@ var BaseAPI = (function () {
832
854
  var commitObject = this.settings.renderCommonCommitFields
833
855
  ? this.renderCommitObject(shouldTerminateCommit)
834
856
  : this.renderCommitCMI(shouldTerminateCommit);
835
- if (this.apiLogLevel === api_constants/* default */.A.global.LOG_LEVEL_DEBUG) {
857
+ if ([enums/* LogLevelEnum */.Mb.DEBUG, "1", 1, "DEBUG"].includes(this.apiLogLevel)) {
836
858
  console.debug("Commit (terminated: " + (terminateCommit ? "yes" : "no") + "): ");
837
859
  console.debug(commitObject);
838
860
  }
@@ -1164,11 +1186,6 @@ var global = {
1164
1186
  STATE_NOT_INITIALIZED: 0,
1165
1187
  STATE_INITIALIZED: 1,
1166
1188
  STATE_TERMINATED: 2,
1167
- LOG_LEVEL_DEBUG: 1,
1168
- LOG_LEVEL_INFO: 2,
1169
- LOG_LEVEL_WARNING: 3,
1170
- LOG_LEVEL_ERROR: 4,
1171
- LOG_LEVEL_NONE: 5,
1172
1189
  };
1173
1190
  var scorm12 = {
1174
1191
  cmi_children: "core,suspend_data,launch_data,comments,objectives,student_data,student_preference,interactions",
@@ -1372,6 +1389,7 @@ var APIConstants = {
1372
1389
 
1373
1390
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1374
1391
  /* harmony export */ K$: function() { return /* binding */ NAVBoolean; },
1392
+ /* harmony export */ Mb: function() { return /* binding */ LogLevelEnum; },
1375
1393
  /* harmony export */ YE: function() { return /* binding */ SuccessStatus; },
1376
1394
  /* harmony export */ lC: function() { return /* binding */ CompletionStatus; }
1377
1395
  /* harmony export */ });
@@ -1393,6 +1411,15 @@ var CompletionStatus;
1393
1411
  CompletionStatus["incomplete"] = "incomplete";
1394
1412
  CompletionStatus["unknown"] = "unknown";
1395
1413
  })(CompletionStatus || (CompletionStatus = {}));
1414
+ var LogLevelEnum;
1415
+ (function (LogLevelEnum) {
1416
+ LogLevelEnum[LogLevelEnum["_"] = 0] = "_";
1417
+ LogLevelEnum[LogLevelEnum["DEBUG"] = 1] = "DEBUG";
1418
+ LogLevelEnum[LogLevelEnum["INFO"] = 2] = "INFO";
1419
+ LogLevelEnum[LogLevelEnum["WARN"] = 3] = "WARN";
1420
+ LogLevelEnum[LogLevelEnum["ERROR"] = 4] = "ERROR";
1421
+ LogLevelEnum[LogLevelEnum["NONE"] = 5] = "NONE";
1422
+ })(LogLevelEnum || (LogLevelEnum = {}));
1396
1423
 
1397
1424
 
1398
1425
  /***/ }),
@@ -1501,7 +1528,7 @@ var scorm2004 = {
1501
1528
  CMIExit: "^(time-out|suspend|logout|normal)$",
1502
1529
  CMIType: "^(true-false|choice|fill-in|long-fill-in|matching|performance|sequencing|likert|numeric|other)$",
1503
1530
  CMIResult: "^(correct|incorrect|unanticipated|neutral|-?([0-9]{1,4})(\\.[0-9]{1,18})?)$",
1504
- 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)$",
1531
+ 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)$",
1505
1532
  NAVBoolean: "^(unknown|true|false$)",
1506
1533
  NAVTarget: "^{target=\\S{0,}[a-zA-Z0-9-_]+}$",
1507
1534
  scaled_range: "-1#1",
@@ -1551,9 +1578,6 @@ var BaseScormValidationError = (function (_super) {
1551
1578
  enumerable: false,
1552
1579
  configurable: true
1553
1580
  });
1554
- BaseScormValidationError.prototype.setMessage = function (message) {
1555
- this.message = message;
1556
- };
1557
1581
  return BaseScormValidationError;
1558
1582
  }(Error));
1559
1583
 
@@ -1562,7 +1586,7 @@ var ValidationError = (function (_super) {
1562
1586
  function ValidationError(errorCode, errorMessage, detailedMessage) {
1563
1587
  var _this = _super.call(this, errorCode) || this;
1564
1588
  _this._detailedMessage = "";
1565
- _this.setMessage(errorMessage);
1589
+ _this.message = errorMessage;
1566
1590
  _this._errorMessage = errorMessage;
1567
1591
  if (detailedMessage) {
1568
1592
  _this._detailedMessage = detailedMessage;
@@ -4199,11 +4223,12 @@ var Scorm2004Impl = (function (_super) {
4199
4223
  Scorm2004Impl.prototype.internalFinish = function () {
4200
4224
  return (0,tslib_es6/* __awaiter */.sH)(this, void 0, void 0, function () {
4201
4225
  var result, navActions, request, choiceJumpRegex, matches, target, action;
4202
- return (0,tslib_es6/* __generator */.YH)(this, function (_a) {
4203
- switch (_a.label) {
4226
+ var _a, _b, _c, _d;
4227
+ return (0,tslib_es6/* __generator */.YH)(this, function (_e) {
4228
+ switch (_e.label) {
4204
4229
  case 0: return [4, this.terminate("Terminate", true)];
4205
4230
  case 1:
4206
- result = _a.sent();
4231
+ result = _e.sent();
4207
4232
  if (result === api_constants/* default */.A.global.SCORM_TRUE) {
4208
4233
  if (this.adl.nav.request !== "_none_") {
4209
4234
  navActions = {
@@ -4220,9 +4245,15 @@ var Scorm2004Impl = (function (_super) {
4220
4245
  choiceJumpRegex = new RegExp(regex/* default */.A.scorm2004.NAVEvent);
4221
4246
  matches = request.match(choiceJumpRegex);
4222
4247
  target = "";
4223
- if (matches && matches.length > 2) {
4224
- target = matches[2];
4225
- request = matches[1].replace(target, "");
4248
+ if (matches) {
4249
+ if ((_a = matches.groups) === null || _a === void 0 ? void 0 : _a.choice_target) {
4250
+ target = (_b = matches.groups) === null || _b === void 0 ? void 0 : _b.choice_target;
4251
+ request = "choice";
4252
+ }
4253
+ else if ((_c = matches.groups) === null || _c === void 0 ? void 0 : _c.jump_target) {
4254
+ target = (_d = matches.groups) === null || _d === void 0 ? void 0 : _d.jump_target;
4255
+ request = "jump";
4256
+ }
4226
4257
  }
4227
4258
  action = navActions[request];
4228
4259
  if (action) {
@@ -4612,7 +4643,6 @@ var Scorm2004Impl = (function (_super) {
4612
4643
  navRequest = false;
4613
4644
  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) &&
4614
4645
  this.adl.nav.request !== "_none_") {
4615
- this.adl.nav.request = encodeURIComponent(this.adl.nav.request);
4616
4646
  navRequest = true;
4617
4647
  }
4618
4648
  commitObject = this.getCommitObject(terminateCommit);