scorm-again 1.7.1 → 2.1.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 (124) hide show
  1. package/.babelrc +18 -7
  2. package/.github/dependabot.yml +5 -0
  3. package/.github/workflows/main.yml +79 -0
  4. package/.github/workflows/stale.yml +14 -0
  5. package/.jsdoc.json +4 -5
  6. package/.mocharc.json +8 -0
  7. package/.run/{Mocha Unit Tests.run.xml → Mocha Unit Tests (watch).run.xml } +6 -3
  8. package/.run/Template Mocha.run.xml +17 -0
  9. package/CONTRIBUTING.md +1 -1
  10. package/README.md +183 -71
  11. package/dist/aicc.js +3822 -7030
  12. package/dist/aicc.js.map +1 -1
  13. package/dist/aicc.min.js +2 -40
  14. package/dist/aicc.min.js.map +1 -0
  15. package/dist/scorm-again.js +5965 -10498
  16. package/dist/scorm-again.js.map +1 -1
  17. package/dist/scorm-again.min.js +2 -52
  18. package/dist/scorm-again.min.js.map +1 -0
  19. package/dist/scorm12.js +3028 -5373
  20. package/dist/scorm12.js.map +1 -1
  21. package/dist/scorm12.min.js +2 -34
  22. package/dist/scorm12.min.js.map +1 -0
  23. package/dist/scorm2004.js +4054 -6693
  24. package/dist/scorm2004.js.map +1 -1
  25. package/dist/scorm2004.min.js +2 -40
  26. package/dist/scorm2004.min.js.map +1 -0
  27. package/eslint.config.js +21 -0
  28. package/package.json +76 -34
  29. package/results.json +34254 -0
  30. package/src/AICC.ts +72 -0
  31. package/src/BaseAPI.ts +1300 -0
  32. package/src/Scorm12API.ts +387 -0
  33. package/src/Scorm2004API.ts +688 -0
  34. package/src/cmi/aicc/attempts.ts +94 -0
  35. package/src/cmi/aicc/cmi.ts +100 -0
  36. package/src/cmi/aicc/core.ts +360 -0
  37. package/src/cmi/aicc/evaluation.ts +157 -0
  38. package/src/cmi/aicc/paths.ts +180 -0
  39. package/src/cmi/aicc/student_data.ts +86 -0
  40. package/src/cmi/aicc/student_demographics.ts +367 -0
  41. package/src/cmi/aicc/student_preferences.ts +176 -0
  42. package/src/cmi/aicc/tries.ts +116 -0
  43. package/src/cmi/aicc/validation.ts +25 -0
  44. package/src/cmi/common/array.ts +77 -0
  45. package/src/cmi/common/base_cmi.ts +46 -0
  46. package/src/cmi/common/score.ts +203 -0
  47. package/src/cmi/common/validation.ts +60 -0
  48. package/src/cmi/scorm12/cmi.ts +224 -0
  49. package/src/cmi/scorm12/interactions.ts +368 -0
  50. package/src/cmi/scorm12/nav.ts +54 -0
  51. package/src/cmi/scorm12/objectives.ts +112 -0
  52. package/src/cmi/scorm12/student_data.ts +130 -0
  53. package/src/cmi/scorm12/student_preference.ts +158 -0
  54. package/src/cmi/scorm12/validation.ts +48 -0
  55. package/src/cmi/scorm2004/adl.ts +272 -0
  56. package/src/cmi/scorm2004/cmi.ts +599 -0
  57. package/src/cmi/scorm2004/comments.ts +163 -0
  58. package/src/cmi/scorm2004/interactions.ts +466 -0
  59. package/src/cmi/scorm2004/learner_preference.ts +152 -0
  60. package/src/cmi/scorm2004/objectives.ts +212 -0
  61. package/src/cmi/scorm2004/score.ts +78 -0
  62. package/src/cmi/scorm2004/validation.ts +42 -0
  63. package/src/constants/api_constants.ts +318 -0
  64. package/src/constants/default_settings.ts +81 -0
  65. package/src/constants/enums.ts +5 -0
  66. package/src/constants/error_codes.ts +88 -0
  67. package/src/constants/language_constants.ts +394 -0
  68. package/src/constants/regex.ts +97 -0
  69. package/src/constants/{response_constants.js → response_constants.ts} +69 -62
  70. package/src/exceptions.ts +154 -0
  71. package/src/exports/aicc.js +1 -1
  72. package/src/exports/scorm-again.js +3 -3
  73. package/src/exports/scorm12.js +1 -1
  74. package/src/exports/scorm2004.js +1 -1
  75. package/src/helpers/scheduled_commit.ts +42 -0
  76. package/src/interfaces/IBaseAPI.ts +35 -0
  77. package/src/types/api_types.ts +32 -0
  78. package/src/utilities/debounce.ts +31 -0
  79. package/src/utilities.ts +338 -0
  80. package/tea.yaml +6 -0
  81. package/test/{AICC.spec.js → AICC.spec.ts} +79 -71
  82. package/test/Scorm12API.spec.ts +833 -0
  83. package/test/Scorm2004API.spec.ts +1298 -0
  84. package/test/api_helpers.ts +176 -0
  85. package/test/cmi/aicc_cmi.spec.ts +845 -0
  86. package/test/cmi/{scorm12_cmi.spec.js → scorm12_cmi.spec.ts} +253 -271
  87. package/test/cmi/scorm2004_cmi.spec.ts +1031 -0
  88. package/test/cmi_helpers.ts +207 -0
  89. package/test/exceptions.spec.ts +79 -0
  90. package/test/field_values.ts +202 -0
  91. package/test/types/api_types.spec.ts +126 -0
  92. package/test/utilities/debounce.spec.ts +56 -0
  93. package/test/utilities.spec.ts +322 -0
  94. package/tsconfig.json +18 -0
  95. package/webpack.config.js +65 -0
  96. package/.circleci/config.yml +0 -99
  97. package/.codeclimate.yml +0 -7
  98. package/.eslintrc.js +0 -36
  99. package/src/.flowconfig +0 -11
  100. package/src/AICC.js +0 -68
  101. package/src/BaseAPI.js +0 -1275
  102. package/src/Scorm12API.js +0 -308
  103. package/src/Scorm2004API.js +0 -572
  104. package/src/cmi/aicc_cmi.js +0 -1141
  105. package/src/cmi/common.js +0 -328
  106. package/src/cmi/scorm12_cmi.js +0 -1312
  107. package/src/cmi/scorm2004_cmi.js +0 -1692
  108. package/src/constants/api_constants.js +0 -218
  109. package/src/constants/error_codes.js +0 -87
  110. package/src/constants/language_constants.js +0 -76
  111. package/src/constants/regex.js +0 -84
  112. package/src/exceptions.js +0 -104
  113. package/src/utilities.js +0 -242
  114. package/test/Scorm12API.spec.js +0 -528
  115. package/test/Scorm2004API.spec.js +0 -775
  116. package/test/abstract_classes.spec.js +0 -17
  117. package/test/api_helpers.js +0 -128
  118. package/test/cmi/aicc_cmi.spec.js +0 -684
  119. package/test/cmi/scorm2004_cmi.spec.js +0 -1066
  120. package/test/cmi_helpers.js +0 -161
  121. package/test/exceptions.spec.js +0 -71
  122. package/test/field_values.js +0 -353
  123. package/test/utilities.spec.js +0 -339
  124. package/webpack.js +0 -78
@@ -0,0 +1,21 @@
1
+ import globals from "globals";
2
+ import pluginJs from "@eslint/js";
3
+ import tseslint from "typescript-eslint";
4
+
5
+ export default [
6
+ { files: ["**/*.{js,mjs,cjs,ts}"] },
7
+ { files: ["**/*.js"], languageOptions: { sourceType: "script" } },
8
+ { languageOptions: { globals: globals.browser } },
9
+ pluginJs.configs.recommended,
10
+ ...tseslint.configs.recommended,
11
+ {
12
+ rules: {
13
+ "no-undef": "off",
14
+ "no-unused-vars": "off",
15
+ "@typescript-eslint/no-explicit-any": "off",
16
+ "@typescript-eslint/no-unused-vars": "off",
17
+ "@typescript-eslint/no-unsafe-function-type": "off",
18
+ "@typescript-eslint/no-this-alias": "off",
19
+ },
20
+ },
21
+ ];
package/package.json CHANGED
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "name": "scorm-again",
3
- "version": "1.7.1",
3
+ "version": "2.1.0",
4
4
  "description": "A modern SCORM JavaScript run-time library for AICC, SCORM 1.2, and SCORM 2004",
5
5
  "main": "dist/scorm-again.min.js",
6
+ "type": "module",
7
+ "browser": {
8
+ "electron": false
9
+ },
6
10
  "browserslist": [
7
11
  "> 1%",
8
12
  "edge >= 16",
@@ -16,44 +20,56 @@
16
20
  "test": "test"
17
21
  },
18
22
  "devDependencies": {
19
- "@babel/cli": "^7.17.10",
20
- "@babel/core": "^7.18.5",
21
- "@babel/node": "^7.18.5",
22
- "@babel/plugin-proposal-class-properties": "^7.17.12",
23
- "@babel/plugin-proposal-optional-chaining": "^7.17.12",
24
- "@babel/plugin-proposal-private-methods": "^7.17.12",
25
- "@babel/preset-env": "^7.18.2",
26
- "@babel/preset-flow": "^7.17.12",
27
- "@babel/register": "^7.17.7",
28
- "@types/chai": "^4.3.1",
29
- "@types/mocha": "^9.1.1",
23
+ "@babel/cli": "^7.25.7",
24
+ "@babel/core": "^7.25.7",
25
+ "@babel/eslint-parser": "^7.25.7",
26
+ "@babel/node": "^7.25.7",
27
+ "@babel/preset-env": "^7.25.7",
28
+ "@babel/preset-typescript": "^7.25.7",
29
+ "@eslint/eslintrc": "^3.1.0",
30
+ "@eslint/js": "^9.12.0",
31
+ "@istanbuljs/nyc-config-typescript": "^1.0.2",
32
+ "@types/eslint__js": "^8.42.3",
33
+ "@types/expect": "^24.3.0",
34
+ "@types/mocha": "^10.0.9",
35
+ "@types/sinon": "^17.0.3",
30
36
  "babel-eslint": "^11.0.0-beta.2",
31
- "babel-loader": "^8.2.5",
37
+ "babel-loader": "^9.2.1",
32
38
  "babelify": "^10.0.0",
33
- "browserify": "^17.0.0",
34
- "chai": "^4.3.6",
35
- "eslint": "^8.18.0",
36
- "eslint-config-google": "^0.14.0",
37
- "eslint-plugin-import": "^2.26.0",
38
- "eslint-webpack-plugin": "^3.1.1",
39
- "fetch-pretender": "^1.5.0",
40
- "jsdoc": "^3.6.10",
39
+ "browserify": "^17.0.1",
40
+ "c8": "^10.1.2",
41
+ "c8-as-nyc": "^1.1.11",
42
+ "eslint": "^9.12.0",
43
+ "eslint-formatter-junit": "^8.40.0",
44
+ "eslint-plugin-import": "^2.31.0",
45
+ "eslint-plugin-jsdoc": "^50.3.1",
46
+ "eslint-webpack-plugin": "^4.2.0",
47
+ "expect": "^29.7.0",
48
+ "fetch-pretender": "https://github.com/jcputney/fetch-pretender#master",
49
+ "globals": "^15.11.0",
50
+ "jsdoc": "^4.0.3",
41
51
  "jsdoc-babel": "^0.5.0",
42
- "lodash.debounce": "^4.0.8",
43
- "minimist": "^1.2.5",
44
- "mocha": "^10.0.0",
45
- "mocha-junit-reporter": "^2.0.2",
52
+ "minimist": "^1.2.8",
53
+ "miragejs": "^0.2.0-alpha.3",
54
+ "mocha": "^10.7.3",
55
+ "mocha-junit-reporter": "^2.2.1",
46
56
  "mochawesome": "^7.1.3",
47
- "nyc": "^15.1.0",
48
- "sinon": "^14.0.0",
49
- "uglifyjs-webpack-plugin": "^2.2.0",
50
- "webpack": "^5.73.0",
51
- "webpack-cli": "^4.10.0"
57
+ "prettier": "^3.3.3",
58
+ "sinon": "^19.0.2",
59
+ "terser-webpack-plugin": "^5.3.10",
60
+ "ts-loader": "^9.5.1",
61
+ "tsx": "^4.19.1",
62
+ "typescript": "^5.6.3",
63
+ "typescript-eslint": "^8.8.1",
64
+ "webpack": "^5.91.0",
65
+ "webpack-cli": "^5.1.4"
52
66
  },
53
67
  "scripts": {
54
- "test": "./node_modules/.bin/mocha --require @babel/register --bdd --recursive --reporter list",
55
- "compile": "./node_modules/.bin/webpack --bail --config webpack.js",
56
- "fix": "./node_modules/.bin/eslint ./src --fix"
68
+ "test": "./node_modules/.bin/mocha --import=tsx --bdd --recursive --reporter list",
69
+ "test:coverage": "./node_modules/.bin/c8 ./node_modules/.bin/mocha --import=tsx --recursive --timeout=10000 --exit --reporter json --reporter-option output=test-results.json",
70
+ "compile": "./node_modules/.bin/webpack --bail --config webpack.config.js",
71
+ "fix": "./node_modules/.bin/eslint ./src --fix",
72
+ "prettier": "./node_modules/.bin/prettier --write src/**/*.ts test/**/*.ts src/*.ts test/*.ts"
57
73
  },
58
74
  "repository": {
59
75
  "type": "git",
@@ -69,5 +85,31 @@
69
85
  "bugs": {
70
86
  "url": "https://github.com/jcputney/scorm-again/issues"
71
87
  },
72
- "homepage": "https://github.com/jcputney/scorm-again"
88
+ "homepage": "https://github.com/jcputney/scorm-again",
89
+ "dependencies": {},
90
+ "c8": {
91
+ "extends": "@istanbuljs/nyc-config-typescript",
92
+ "check-coverage": true,
93
+ "all": true,
94
+ "include": [
95
+ "src/**/*.ts"
96
+ ],
97
+ "exclude": [
98
+ "test/**/*.*",
99
+ "src/exports/*.*",
100
+ "src/interfaces/*.*",
101
+ "src/types/*.*"
102
+ ],
103
+ "extension": [
104
+ ".ts"
105
+ ],
106
+ "reporter": [
107
+ "html",
108
+ "lcov",
109
+ "text",
110
+ "text-summary"
111
+ ],
112
+ "report-dir": "coverage"
113
+ },
114
+ "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
73
115
  }