scorm-again 2.1.0 → 2.3.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.
package/dist/scorm2004.js CHANGED
@@ -1044,6 +1044,7 @@ var DefaultSettings = {
1044
1044
  logLevel: api_constants.global.LOG_LEVEL_ERROR,
1045
1045
  selfReportSessionTime: false,
1046
1046
  alwaysSendTotalTime: false,
1047
+ renderCommonCommitFields: false,
1047
1048
  strict_errors: true,
1048
1049
  xhrHeaders: {},
1049
1050
  xhrWithCredentials: false,
@@ -3730,6 +3731,18 @@ var NAVBoolean;
3730
3731
  NAVBoolean["true"] = "true";
3731
3732
  NAVBoolean["false"] = "false";
3732
3733
  })(NAVBoolean || (NAVBoolean = {}));
3734
+ var SuccessStatus;
3735
+ (function (SuccessStatus) {
3736
+ SuccessStatus["passed"] = "passed";
3737
+ SuccessStatus["failed"] = "failed";
3738
+ SuccessStatus["unknown"] = "unknown";
3739
+ })(SuccessStatus || (SuccessStatus = {}));
3740
+ var CompletionStatus;
3741
+ (function (CompletionStatus) {
3742
+ CompletionStatus["completed"] = "completed";
3743
+ CompletionStatus["incomplete"] = "incomplete";
3744
+ CompletionStatus["unknown"] = "unknown";
3745
+ })(CompletionStatus || (CompletionStatus = {}));
3733
3746
 
3734
3747
  ;// ./src/cmi/scorm2004/adl.ts
3735
3748
 
@@ -3916,6 +3929,7 @@ var ADLNavRequestValid = (function (_super) {
3916
3929
 
3917
3930
 
3918
3931
 
3932
+
3919
3933
  var Scorm2004API = (function (_super) {
3920
3934
  __extends(Scorm2004API, _super);
3921
3935
  function Scorm2004API(settings) {
@@ -4298,9 +4312,59 @@ var Scorm2004API = (function (_super) {
4298
4312
  return cmiExport;
4299
4313
  }
4300
4314
  };
4315
+ Scorm2004API.prototype.renderCommitObject = function (terminateCommit) {
4316
+ var cmiExport = this.renderCommitCMI(terminateCommit);
4317
+ var totalTimeDuration = this.cmi.getCurrentTotalTime();
4318
+ var totalTimeSeconds = getDurationAsSeconds(totalTimeDuration, regex.scorm2004.CMITimespan);
4319
+ var completionStatus = CompletionStatus.unknown;
4320
+ var successStatus = SuccessStatus.unknown;
4321
+ if (this.cmi.completion_status) {
4322
+ if (this.cmi.completion_status === "completed") {
4323
+ completionStatus = CompletionStatus.completed;
4324
+ }
4325
+ else if (this.cmi.completion_status === "incomplete") {
4326
+ completionStatus = CompletionStatus.incomplete;
4327
+ }
4328
+ }
4329
+ if (this.cmi.success_status) {
4330
+ if (this.cmi.success_status === "passed") {
4331
+ successStatus = SuccessStatus.passed;
4332
+ }
4333
+ else if (this.cmi.success_status === "failed") {
4334
+ successStatus = SuccessStatus.failed;
4335
+ }
4336
+ }
4337
+ var score = this.cmi.score;
4338
+ var scoreObject = null;
4339
+ if (score) {
4340
+ scoreObject = {};
4341
+ if (!Number.isNaN(Number.parseFloat(score.raw))) {
4342
+ scoreObject.raw = Number.parseFloat(score.raw);
4343
+ }
4344
+ if (!Number.isNaN(Number.parseFloat(score.min))) {
4345
+ scoreObject.min = Number.parseFloat(score.min);
4346
+ }
4347
+ if (!Number.isNaN(Number.parseFloat(score.max))) {
4348
+ scoreObject.max = Number.parseFloat(score.max);
4349
+ }
4350
+ if (!Number.isNaN(Number.parseFloat(score.scaled))) {
4351
+ scoreObject.scaled = Number.parseFloat(score.scaled);
4352
+ }
4353
+ }
4354
+ var commitObject = {
4355
+ completionStatus: completionStatus,
4356
+ successStatus: successStatus,
4357
+ totalTimeSeconds: totalTimeSeconds,
4358
+ runtimeData: cmiExport,
4359
+ };
4360
+ if (scoreObject) {
4361
+ commitObject.score = scoreObject;
4362
+ }
4363
+ return commitObject;
4364
+ };
4301
4365
  Scorm2004API.prototype.storeData = function (terminateCommit) {
4302
4366
  return __awaiter(this, void 0, void 0, function () {
4303
- var navRequest, commitObject, result;
4367
+ var navRequest, shouldTerminateCommit, commitObject, result;
4304
4368
  var _a, _b, _c;
4305
4369
  return __generator(this, function (_d) {
4306
4370
  switch (_d.label) {
@@ -4333,7 +4397,10 @@ var Scorm2004API = (function (_super) {
4333
4397
  this.adl.nav.request = encodeURIComponent(this.adl.nav.request);
4334
4398
  navRequest = true;
4335
4399
  }
4336
- commitObject = this.renderCommitCMI(terminateCommit || this.settings.alwaysSendTotalTime);
4400
+ shouldTerminateCommit = terminateCommit || this.settings.alwaysSendTotalTime;
4401
+ commitObject = this.settings.renderCommonCommitFields
4402
+ ? this.renderCommitObject(shouldTerminateCommit)
4403
+ : this.renderCommitCMI(shouldTerminateCommit);
4337
4404
  if (this.apiLogLevel === api_constants.global.LOG_LEVEL_DEBUG) {
4338
4405
  console.debug("Commit (terminated: " + (terminateCommit ? "yes" : "no") + "): ");
4339
4406
  console.debug(commitObject);