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/README.md +32 -23
- package/dist/aicc.js +72 -2
- package/dist/aicc.js.map +1 -1
- package/dist/aicc.min.js +1 -1
- package/dist/aicc.min.js.map +1 -1
- package/dist/scorm-again.js +120 -4
- package/dist/scorm-again.js.map +1 -1
- package/dist/scorm-again.min.js +1 -1
- package/dist/scorm-again.min.js.map +1 -1
- package/dist/scorm12.js +72 -2
- package/dist/scorm12.js.map +1 -1
- package/dist/scorm12.min.js +1 -1
- package/dist/scorm12.min.js.map +1 -1
- package/dist/scorm2004.js +69 -2
- package/dist/scorm2004.js.map +1 -1
- package/dist/scorm2004.min.js +1 -1
- package/dist/scorm2004.min.js.map +1 -1
- package/index.d.ts +5 -0
- package/package.json +13 -14
- package/src/BaseAPI.ts +16 -4
- package/src/Scorm12API.ts +70 -5
- package/src/Scorm2004API.ts +74 -4
- package/src/constants/default_settings.ts +1 -0
- package/src/constants/enums.ts +12 -0
- package/src/types/api_types.ts +18 -0
- package/test/Scorm12API.spec.ts +110 -0
- package/test/Scorm2004API.spec.ts +70 -0
package/dist/scorm-again.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
|
-
|
|
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);
|
|
@@ -5307,6 +5374,8 @@ var NAV = (function (_super) {
|
|
|
5307
5374
|
|
|
5308
5375
|
|
|
5309
5376
|
|
|
5377
|
+
|
|
5378
|
+
|
|
5310
5379
|
var Scorm12API = (function (_super) {
|
|
5311
5380
|
__extends(Scorm12API, _super);
|
|
5312
5381
|
function Scorm12API(settings) {
|
|
@@ -5480,9 +5549,53 @@ var Scorm12API = (function (_super) {
|
|
|
5480
5549
|
return cmiExport;
|
|
5481
5550
|
}
|
|
5482
5551
|
};
|
|
5552
|
+
Scorm12API.prototype.renderCommitObject = function (terminateCommit) {
|
|
5553
|
+
var cmiExport = this.renderCommitCMI(terminateCommit);
|
|
5554
|
+
var totalTimeHHMMSS = this.cmi.getCurrentTotalTime();
|
|
5555
|
+
var totalTimeSeconds = getTimeAsSeconds(totalTimeHHMMSS, regex.scorm12.CMITimespan);
|
|
5556
|
+
var lessonStatus = this.cmi.core.lesson_status;
|
|
5557
|
+
var completionStatus = CompletionStatus.unknown;
|
|
5558
|
+
var successStatus = SuccessStatus.unknown;
|
|
5559
|
+
if (lessonStatus) {
|
|
5560
|
+
completionStatus =
|
|
5561
|
+
lessonStatus === "completed" || lessonStatus === "passed"
|
|
5562
|
+
? CompletionStatus.completed
|
|
5563
|
+
: CompletionStatus.incomplete;
|
|
5564
|
+
if (lessonStatus === "passed") {
|
|
5565
|
+
successStatus = SuccessStatus.passed;
|
|
5566
|
+
}
|
|
5567
|
+
else if (lessonStatus === "failed") {
|
|
5568
|
+
successStatus = SuccessStatus.failed;
|
|
5569
|
+
}
|
|
5570
|
+
}
|
|
5571
|
+
var score = this.cmi.core.score;
|
|
5572
|
+
var scoreObject = null;
|
|
5573
|
+
if (score) {
|
|
5574
|
+
scoreObject = {};
|
|
5575
|
+
if (!Number.isNaN(Number.parseFloat(score.raw))) {
|
|
5576
|
+
scoreObject.raw = Number.parseFloat(score.raw);
|
|
5577
|
+
}
|
|
5578
|
+
if (!Number.isNaN(Number.parseFloat(score.min))) {
|
|
5579
|
+
scoreObject.min = Number.parseFloat(score.min);
|
|
5580
|
+
}
|
|
5581
|
+
if (!Number.isNaN(Number.parseFloat(score.max))) {
|
|
5582
|
+
scoreObject.max = Number.parseFloat(score.max);
|
|
5583
|
+
}
|
|
5584
|
+
}
|
|
5585
|
+
var commitObject = {
|
|
5586
|
+
successStatus: successStatus,
|
|
5587
|
+
completionStatus: completionStatus,
|
|
5588
|
+
runtimeData: cmiExport,
|
|
5589
|
+
totalTimeSeconds: totalTimeSeconds,
|
|
5590
|
+
};
|
|
5591
|
+
if (scoreObject) {
|
|
5592
|
+
commitObject.score = scoreObject;
|
|
5593
|
+
}
|
|
5594
|
+
return commitObject;
|
|
5595
|
+
};
|
|
5483
5596
|
Scorm12API.prototype.storeData = function (terminateCommit) {
|
|
5484
5597
|
return __awaiter(this, void 0, void 0, function () {
|
|
5485
|
-
var originalStatus, commitObject;
|
|
5598
|
+
var originalStatus, shouldTerminateCommit, commitObject;
|
|
5486
5599
|
var _a, _b, _c;
|
|
5487
5600
|
return __generator(this, function (_d) {
|
|
5488
5601
|
switch (_d.label) {
|
|
@@ -5514,7 +5627,10 @@ var Scorm12API = (function (_super) {
|
|
|
5514
5627
|
}
|
|
5515
5628
|
}
|
|
5516
5629
|
}
|
|
5517
|
-
|
|
5630
|
+
shouldTerminateCommit = terminateCommit || this.settings.alwaysSendTotalTime;
|
|
5631
|
+
commitObject = this.settings.renderCommonCommitFields
|
|
5632
|
+
? this.renderCommitObject(shouldTerminateCommit)
|
|
5633
|
+
: this.renderCommitCMI(shouldTerminateCommit);
|
|
5518
5634
|
if (this.apiLogLevel === api_constants.global.LOG_LEVEL_DEBUG) {
|
|
5519
5635
|
console.debug("Commit (terminated: " + (terminateCommit ? "yes" : "no") + "): ");
|
|
5520
5636
|
console.debug(commitObject);
|