scorm-again 2.6.3 → 2.6.5

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 (73) hide show
  1. package/.claude/.claude/settings.local.json +13 -0
  2. package/.claude/settings.local.json +33 -0
  3. package/dist/aicc.js +38 -22
  4. package/dist/aicc.js.map +1 -1
  5. package/dist/aicc.min.js +1 -1
  6. package/dist/aicc.min.js.map +1 -1
  7. package/dist/esm/aicc.js +38 -22
  8. package/dist/esm/aicc.js.map +1 -1
  9. package/dist/esm/aicc.min.js +1 -1
  10. package/dist/esm/aicc.min.js.map +1 -1
  11. package/dist/esm/scorm-again.js +79 -47
  12. package/dist/esm/scorm-again.js.map +1 -1
  13. package/dist/esm/scorm-again.min.js +1 -1
  14. package/dist/esm/scorm-again.min.js.map +1 -1
  15. package/dist/esm/scorm12.js +35 -20
  16. package/dist/esm/scorm12.js.map +1 -1
  17. package/dist/esm/scorm12.min.js +1 -1
  18. package/dist/esm/scorm12.min.js.map +1 -1
  19. package/dist/esm/scorm2004.js +69 -41
  20. package/dist/esm/scorm2004.js.map +1 -1
  21. package/dist/esm/scorm2004.min.js +1 -1
  22. package/dist/esm/scorm2004.min.js.map +1 -1
  23. package/dist/scorm-again.js +79 -47
  24. package/dist/scorm-again.js.map +1 -1
  25. package/dist/scorm-again.min.js +1 -1
  26. package/dist/scorm-again.min.js.map +1 -1
  27. package/dist/scorm12.js +35 -20
  28. package/dist/scorm12.js.map +1 -1
  29. package/dist/scorm12.min.js +1 -1
  30. package/dist/scorm12.min.js.map +1 -1
  31. package/dist/scorm2004.js +69 -41
  32. package/dist/scorm2004.js.map +1 -1
  33. package/dist/scorm2004.min.js +1 -1
  34. package/dist/scorm2004.min.js.map +1 -1
  35. package/dist/types/cmi/scorm2004/adl.d.ts +8 -2
  36. package/dist/types/cmi/scorm2004/cmi.d.ts +1 -1
  37. package/package.json +1 -1
  38. package/src/BaseAPI.ts +56 -33
  39. package/src/Scorm12API.ts +3 -2
  40. package/src/Scorm2004API.ts +31 -24
  41. package/src/cmi/aicc/attempts.ts +3 -3
  42. package/src/cmi/aicc/core.ts +30 -12
  43. package/src/cmi/aicc/evaluation.ts +1 -1
  44. package/src/cmi/aicc/student_data.ts +1 -1
  45. package/src/cmi/aicc/student_demographics.ts +13 -13
  46. package/src/cmi/aicc/student_preferences.ts +1 -1
  47. package/src/cmi/aicc/tries.ts +3 -3
  48. package/src/cmi/aicc/validation.ts +1 -1
  49. package/src/cmi/common/array.ts +1 -1
  50. package/src/cmi/common/score.ts +3 -3
  51. package/src/cmi/common/validation.ts +2 -2
  52. package/src/cmi/scorm12/cmi.ts +12 -4
  53. package/src/cmi/scorm12/interactions.ts +27 -11
  54. package/src/cmi/scorm12/objectives.ts +4 -4
  55. package/src/cmi/scorm12/student_data.ts +12 -4
  56. package/src/cmi/scorm12/student_preference.ts +3 -1
  57. package/src/cmi/scorm12/validation.ts +5 -3
  58. package/src/cmi/scorm2004/adl.ts +39 -22
  59. package/src/cmi/scorm2004/cmi.ts +47 -17
  60. package/src/cmi/scorm2004/comments.ts +11 -5
  61. package/src/cmi/scorm2004/interactions.ts +25 -23
  62. package/src/cmi/scorm2004/learner_preference.ts +3 -1
  63. package/src/cmi/scorm2004/objectives.ts +5 -5
  64. package/src/cmi/scorm2004/score.ts +3 -3
  65. package/src/cmi/scorm2004/validation.ts +2 -2
  66. package/src/exceptions/aicc_exceptions.ts +4 -4
  67. package/src/exceptions/scorm12_exceptions.ts +4 -4
  68. package/src/exceptions/scorm2004_exceptions.ts +4 -4
  69. package/src/utilities.ts +3 -3
  70. package/test/BaseAPI.requestHandler.spec.ts +126 -0
  71. package/test/Scorm12API.spec.ts +45 -0
  72. package/test/Scorm2004API.spec.ts +43 -0
  73. package/tsconfig.json +1 -0
@@ -841,6 +841,51 @@ describe("SCORM 1.2 API Tests", () => {
841
841
  expect(callback3.calledTwice).toBe(true);
842
842
  expect(callback4.calledTwice).toBe(true);
843
843
  });
844
+
845
+ it("Should handle multiple events in one listener string", async () => {
846
+ const scorm12API = api({
847
+ ...DefaultSettings,
848
+ ...{
849
+ lmsCommitUrl: "/scorm12",
850
+ autocommit: true,
851
+ autocommitSeconds: 1,
852
+ },
853
+ });
854
+ scorm12API.lmsInitialize();
855
+
856
+ const callback = sinon.spy();
857
+ scorm12API.on("LMSSetValue.cmi.core.session_time CommitSuccess", callback);
858
+
859
+ scorm12API.lmsSetValue("cmi.core.session_time", "00:01:00");
860
+ clock.tick(2000);
861
+
862
+ await clock.runAllAsync();
863
+
864
+ expect(callback.calledTwice).toBe(true);
865
+ });
866
+
867
+ it("Should detach multiple events using off()", async () => {
868
+ const scorm12API = api({
869
+ ...DefaultSettings,
870
+ ...{
871
+ lmsCommitUrl: "/scorm12",
872
+ autocommit: true,
873
+ autocommitSeconds: 1,
874
+ },
875
+ });
876
+ scorm12API.lmsInitialize();
877
+
878
+ const callback = sinon.spy();
879
+ scorm12API.on("LMSSetValue.cmi.core.session_time CommitSuccess", callback);
880
+ scorm12API.off("LMSSetValue.cmi.core.session_time CommitSuccess", callback);
881
+
882
+ scorm12API.lmsSetValue("cmi.core.session_time", "00:01:00");
883
+ clock.tick(2000);
884
+
885
+ await clock.runAllAsync();
886
+
887
+ expect(callback.called).toBe(false);
888
+ });
844
889
  it("Should handle CommitError event", async () => {
845
890
  const scorm12API = api({
846
891
  ...DefaultSettings,
@@ -1356,6 +1356,49 @@ describe("SCORM 2004 API Tests", () => {
1356
1356
  expect(callback3.calledTwice).toBe(true);
1357
1357
  expect(callback4.calledTwice).toBe(true);
1358
1358
  });
1359
+
1360
+ it("Should handle multiple events in one listener string", async () => {
1361
+ const scorm2004API = api({
1362
+ ...DefaultSettings,
1363
+ ...{
1364
+ lmsCommitUrl: "/scorm2004",
1365
+ autocommit: true,
1366
+ autocommitSeconds: 1,
1367
+ },
1368
+ });
1369
+ scorm2004API.lmsInitialize();
1370
+
1371
+ const callback = sinon.spy();
1372
+ scorm2004API.on("SetValue.cmi.learner_id CommitSuccess", callback);
1373
+
1374
+ scorm2004API.lmsSetValue("cmi.learner_id", "@jcputney");
1375
+ scorm2004API.lmsCommit();
1376
+ await clock.runAllAsync();
1377
+
1378
+ expect(callback.calledTwice).toBe(true);
1379
+ });
1380
+
1381
+ it("Should detach multiple events using off()", async () => {
1382
+ const scorm2004API = api({
1383
+ ...DefaultSettings,
1384
+ ...{
1385
+ lmsCommitUrl: "/scorm2004",
1386
+ autocommit: true,
1387
+ autocommitSeconds: 1,
1388
+ },
1389
+ });
1390
+ scorm2004API.lmsInitialize();
1391
+
1392
+ const callback = sinon.spy();
1393
+ scorm2004API.on("SetValue.cmi.learner_id CommitSuccess", callback);
1394
+ scorm2004API.off("SetValue.cmi.learner_id CommitSuccess", callback);
1395
+
1396
+ scorm2004API.lmsSetValue("cmi.learner_id", "@jcputney");
1397
+ scorm2004API.lmsCommit();
1398
+ await clock.runAllAsync();
1399
+
1400
+ expect(callback.called).toBe(false);
1401
+ });
1359
1402
  it("Should handle CommitError event", async () => {
1360
1403
  const scorm2004API = api({
1361
1404
  ...DefaultSettings,
package/tsconfig.json CHANGED
@@ -3,6 +3,7 @@
3
3
  "sourceMap": true,
4
4
  "noImplicitAny": true,
5
5
  "noImplicitOverride": true,
6
+ "noUncheckedIndexedAccess": true,
6
7
  "declaration": false,
7
8
  "module": "es2020",
8
9
  "moduleResolution": "Node",