scorm-again 2.6.2 → 2.6.4
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/aicc.js +41 -25
- package/dist/aicc.js.map +1 -1
- package/dist/aicc.min.js +1 -1
- package/dist/aicc.min.js.map +1 -1
- package/dist/esm/aicc.js +41 -25
- package/dist/esm/aicc.js.map +1 -1
- package/dist/esm/aicc.min.js +1 -1
- package/dist/esm/aicc.min.js.map +1 -1
- package/dist/esm/scorm-again.js +70 -45
- package/dist/esm/scorm-again.js.map +1 -1
- package/dist/esm/scorm-again.min.js +1 -1
- package/dist/esm/scorm-again.min.js.map +1 -1
- package/dist/esm/scorm12.js +38 -23
- package/dist/esm/scorm12.js.map +1 -1
- package/dist/esm/scorm12.min.js +1 -1
- package/dist/esm/scorm12.min.js.map +1 -1
- package/dist/esm/scorm2004.js +60 -39
- package/dist/esm/scorm2004.js.map +1 -1
- package/dist/esm/scorm2004.min.js +1 -1
- package/dist/esm/scorm2004.min.js.map +1 -1
- package/dist/scorm-again.js +70 -45
- 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 +38 -23
- 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 +60 -39
- 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 +24 -3
- package/package.json +1 -1
- package/src/BaseAPI.ts +57 -35
- package/src/Scorm12API.ts +3 -2
- package/src/Scorm2004API.ts +31 -24
- package/src/cmi/aicc/attempts.ts +3 -3
- package/src/cmi/aicc/core.ts +30 -12
- package/src/cmi/aicc/evaluation.ts +1 -1
- package/src/cmi/aicc/student_data.ts +1 -1
- package/src/cmi/aicc/student_demographics.ts +13 -13
- package/src/cmi/aicc/student_preferences.ts +1 -1
- package/src/cmi/aicc/tries.ts +3 -3
- package/src/cmi/aicc/validation.ts +1 -1
- package/src/cmi/common/array.ts +1 -1
- package/src/cmi/common/score.ts +3 -3
- package/src/cmi/common/validation.ts +2 -2
- package/src/cmi/scorm12/cmi.ts +12 -4
- package/src/cmi/scorm12/interactions.ts +27 -11
- package/src/cmi/scorm12/objectives.ts +4 -4
- package/src/cmi/scorm12/student_data.ts +12 -4
- package/src/cmi/scorm12/student_preference.ts +3 -1
- package/src/cmi/scorm12/validation.ts +5 -3
- package/src/cmi/scorm2004/adl.ts +21 -7
- package/src/cmi/scorm2004/cmi.ts +45 -15
- package/src/cmi/scorm2004/comments.ts +11 -5
- package/src/cmi/scorm2004/interactions.ts +25 -23
- package/src/cmi/scorm2004/learner_preference.ts +3 -1
- package/src/cmi/scorm2004/objectives.ts +5 -5
- package/src/cmi/scorm2004/score.ts +3 -3
- package/src/cmi/scorm2004/validation.ts +2 -2
- package/src/constants/regex.ts +8 -1
- package/src/exceptions/aicc_exceptions.ts +4 -4
- package/src/exceptions/scorm12_exceptions.ts +4 -4
- package/src/exceptions/scorm2004_exceptions.ts +4 -4
- package/src/utilities.ts +3 -3
- package/test/Scorm12API.spec.ts +45 -0
- package/test/Scorm2004API.spec.ts +43 -0
- package/tsconfig.json +1 -0
|
@@ -59,7 +59,7 @@ export class CMIStudentDemographics extends BaseCMI {
|
|
|
59
59
|
*/
|
|
60
60
|
set city(city: string) {
|
|
61
61
|
if (this.initialized) {
|
|
62
|
-
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT);
|
|
62
|
+
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT as number);
|
|
63
63
|
} else {
|
|
64
64
|
this._city = city;
|
|
65
65
|
}
|
|
@@ -80,7 +80,7 @@ export class CMIStudentDemographics extends BaseCMI {
|
|
|
80
80
|
*/
|
|
81
81
|
set class(clazz: string) {
|
|
82
82
|
if (this.initialized) {
|
|
83
|
-
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT);
|
|
83
|
+
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT as number);
|
|
84
84
|
} else {
|
|
85
85
|
this._class = clazz;
|
|
86
86
|
}
|
|
@@ -101,7 +101,7 @@ export class CMIStudentDemographics extends BaseCMI {
|
|
|
101
101
|
*/
|
|
102
102
|
set company(company: string) {
|
|
103
103
|
if (this.initialized) {
|
|
104
|
-
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT);
|
|
104
|
+
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT as number);
|
|
105
105
|
} else {
|
|
106
106
|
this._company = company;
|
|
107
107
|
}
|
|
@@ -122,7 +122,7 @@ export class CMIStudentDemographics extends BaseCMI {
|
|
|
122
122
|
*/
|
|
123
123
|
set country(country: string) {
|
|
124
124
|
if (this.initialized) {
|
|
125
|
-
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT);
|
|
125
|
+
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT as number);
|
|
126
126
|
} else {
|
|
127
127
|
this._country = country;
|
|
128
128
|
}
|
|
@@ -143,7 +143,7 @@ export class CMIStudentDemographics extends BaseCMI {
|
|
|
143
143
|
*/
|
|
144
144
|
set experience(experience: string) {
|
|
145
145
|
if (this.initialized) {
|
|
146
|
-
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT);
|
|
146
|
+
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT as number);
|
|
147
147
|
} else {
|
|
148
148
|
this._experience = experience;
|
|
149
149
|
}
|
|
@@ -164,7 +164,7 @@ export class CMIStudentDemographics extends BaseCMI {
|
|
|
164
164
|
*/
|
|
165
165
|
set familiar_name(familiar_name: string) {
|
|
166
166
|
if (this.initialized) {
|
|
167
|
-
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT);
|
|
167
|
+
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT as number);
|
|
168
168
|
} else {
|
|
169
169
|
this._familiar_name = familiar_name;
|
|
170
170
|
}
|
|
@@ -185,7 +185,7 @@ export class CMIStudentDemographics extends BaseCMI {
|
|
|
185
185
|
*/
|
|
186
186
|
set instructor_name(instructor_name: string) {
|
|
187
187
|
if (this.initialized) {
|
|
188
|
-
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT);
|
|
188
|
+
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT as number);
|
|
189
189
|
} else {
|
|
190
190
|
this._instructor_name = instructor_name;
|
|
191
191
|
}
|
|
@@ -206,7 +206,7 @@ export class CMIStudentDemographics extends BaseCMI {
|
|
|
206
206
|
*/
|
|
207
207
|
set title(title: string) {
|
|
208
208
|
if (this.initialized) {
|
|
209
|
-
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT);
|
|
209
|
+
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT as number);
|
|
210
210
|
} else {
|
|
211
211
|
this._title = title;
|
|
212
212
|
}
|
|
@@ -227,7 +227,7 @@ export class CMIStudentDemographics extends BaseCMI {
|
|
|
227
227
|
*/
|
|
228
228
|
set native_language(native_language: string) {
|
|
229
229
|
if (this.initialized) {
|
|
230
|
-
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT);
|
|
230
|
+
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT as number);
|
|
231
231
|
} else {
|
|
232
232
|
this._native_language = native_language;
|
|
233
233
|
}
|
|
@@ -248,7 +248,7 @@ export class CMIStudentDemographics extends BaseCMI {
|
|
|
248
248
|
*/
|
|
249
249
|
set state(state: string) {
|
|
250
250
|
if (this.initialized) {
|
|
251
|
-
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT);
|
|
251
|
+
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT as number);
|
|
252
252
|
} else {
|
|
253
253
|
this._state = state;
|
|
254
254
|
}
|
|
@@ -269,7 +269,7 @@ export class CMIStudentDemographics extends BaseCMI {
|
|
|
269
269
|
*/
|
|
270
270
|
set street_address(street_address: string) {
|
|
271
271
|
if (this.initialized) {
|
|
272
|
-
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT);
|
|
272
|
+
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT as number);
|
|
273
273
|
} else {
|
|
274
274
|
this._street_address = street_address;
|
|
275
275
|
}
|
|
@@ -290,7 +290,7 @@ export class CMIStudentDemographics extends BaseCMI {
|
|
|
290
290
|
*/
|
|
291
291
|
set telephone(telephone: string) {
|
|
292
292
|
if (this.initialized) {
|
|
293
|
-
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT);
|
|
293
|
+
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT as number);
|
|
294
294
|
} else {
|
|
295
295
|
this._telephone = telephone;
|
|
296
296
|
}
|
|
@@ -311,7 +311,7 @@ export class CMIStudentDemographics extends BaseCMI {
|
|
|
311
311
|
*/
|
|
312
312
|
set years_experience(years_experience: string) {
|
|
313
313
|
if (this.initialized) {
|
|
314
|
-
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT);
|
|
314
|
+
throw new AICCValidationError(scorm12_errors.READ_ONLY_ELEMENT as number);
|
|
315
315
|
} else {
|
|
316
316
|
this._years_experience = years_experience;
|
|
317
317
|
}
|
|
@@ -16,7 +16,7 @@ export class AICCStudentPreferences extends CMIStudentPreference {
|
|
|
16
16
|
constructor() {
|
|
17
17
|
super(aicc_constants.student_preference_children);
|
|
18
18
|
this.windows = new CMIArray({
|
|
19
|
-
errorCode: scorm12_errors.INVALID_SET_VALUE,
|
|
19
|
+
errorCode: scorm12_errors.INVALID_SET_VALUE as number,
|
|
20
20
|
errorClass: AICCValidationError,
|
|
21
21
|
children: "",
|
|
22
22
|
});
|
package/src/cmi/aicc/tries.ts
CHANGED
|
@@ -36,9 +36,9 @@ export class CMITriesObject extends BaseCMI {
|
|
|
36
36
|
this.score = new CMIScore({
|
|
37
37
|
score_children: aicc_constants.score_children,
|
|
38
38
|
score_range: aicc_regex.score_range,
|
|
39
|
-
invalidErrorCode: scorm12_errors.INVALID_SET_VALUE,
|
|
40
|
-
invalidTypeCode: scorm12_errors.TYPE_MISMATCH,
|
|
41
|
-
invalidRangeCode: scorm12_errors.VALUE_OUT_OF_RANGE,
|
|
39
|
+
invalidErrorCode: scorm12_errors.INVALID_SET_VALUE as number,
|
|
40
|
+
invalidTypeCode: scorm12_errors.TYPE_MISMATCH as number,
|
|
41
|
+
invalidRangeCode: scorm12_errors.VALUE_OUT_OF_RANGE as number,
|
|
42
42
|
errorClass: AICCValidationError,
|
|
43
43
|
});
|
|
44
44
|
}
|
package/src/cmi/common/array.ts
CHANGED
|
@@ -22,7 +22,7 @@ export class CMIArray extends BaseCMI {
|
|
|
22
22
|
}) {
|
|
23
23
|
super();
|
|
24
24
|
this.__children = params.children;
|
|
25
|
-
this._errorCode = params.errorCode || scorm12_errors.GENERAL;
|
|
25
|
+
this._errorCode = params.errorCode || (scorm12_errors.GENERAL as number);
|
|
26
26
|
this._errorClass = params.errorClass || BaseScormValidationError;
|
|
27
27
|
this.childArray = [];
|
|
28
28
|
}
|
package/src/cmi/common/score.ts
CHANGED
|
@@ -51,11 +51,11 @@ export class CMIScore extends BaseCMI {
|
|
|
51
51
|
: scorm12_regex.score_range;
|
|
52
52
|
this._max = params.max || params.max === "" ? params.max : "100";
|
|
53
53
|
this.__invalid_error_code =
|
|
54
|
-
params.invalidErrorCode || scorm12_errors.INVALID_SET_VALUE;
|
|
54
|
+
params.invalidErrorCode || (scorm12_errors.INVALID_SET_VALUE as number);
|
|
55
55
|
this.__invalid_type_code =
|
|
56
|
-
params.invalidTypeCode || scorm12_errors.TYPE_MISMATCH;
|
|
56
|
+
params.invalidTypeCode || (scorm12_errors.TYPE_MISMATCH as number);
|
|
57
57
|
this.__invalid_range_code =
|
|
58
|
-
params.invalidRangeCode || scorm12_errors.VALUE_OUT_OF_RANGE;
|
|
58
|
+
params.invalidRangeCode || (scorm12_errors.VALUE_OUT_OF_RANGE as number);
|
|
59
59
|
this.__decimal_regex = params.decimalRegex || scorm12_regex.CMIDecimal;
|
|
60
60
|
this.__error_class = params.errorClass;
|
|
61
61
|
}
|
|
@@ -48,8 +48,8 @@ export function checkValidRange(
|
|
|
48
48
|
): boolean {
|
|
49
49
|
const ranges = rangePattern.split("#");
|
|
50
50
|
value = value * 1.0;
|
|
51
|
-
if (value >= ranges[0]) {
|
|
52
|
-
if (ranges[1] === "*" || value <= ranges[1]) {
|
|
51
|
+
if (ranges[0] && value >= ranges[0]) {
|
|
52
|
+
if (ranges[1] && (ranges[1] === "*" || value <= ranges[1])) {
|
|
53
53
|
return true;
|
|
54
54
|
} else {
|
|
55
55
|
throw new errorClass(errorCode);
|
package/src/cmi/scorm12/cmi.ts
CHANGED
|
@@ -133,7 +133,9 @@ export class CMI extends BaseRootCMI {
|
|
|
133
133
|
* @param {string} _version
|
|
134
134
|
*/
|
|
135
135
|
set _version(_version: string) {
|
|
136
|
-
throw new Scorm12ValidationError(
|
|
136
|
+
throw new Scorm12ValidationError(
|
|
137
|
+
scorm12_errors.INVALID_SET_VALUE as number,
|
|
138
|
+
);
|
|
137
139
|
}
|
|
138
140
|
|
|
139
141
|
/**
|
|
@@ -149,7 +151,9 @@ export class CMI extends BaseRootCMI {
|
|
|
149
151
|
* @param {string} _children
|
|
150
152
|
*/
|
|
151
153
|
set _children(_children: string) {
|
|
152
|
-
throw new Scorm12ValidationError(
|
|
154
|
+
throw new Scorm12ValidationError(
|
|
155
|
+
scorm12_errors.INVALID_SET_VALUE as number,
|
|
156
|
+
);
|
|
153
157
|
}
|
|
154
158
|
|
|
155
159
|
/**
|
|
@@ -184,7 +188,9 @@ export class CMI extends BaseRootCMI {
|
|
|
184
188
|
*/
|
|
185
189
|
set launch_data(launch_data: string) {
|
|
186
190
|
if (this.initialized) {
|
|
187
|
-
throw new Scorm12ValidationError(
|
|
191
|
+
throw new Scorm12ValidationError(
|
|
192
|
+
scorm12_errors.READ_ONLY_ELEMENT as number,
|
|
193
|
+
);
|
|
188
194
|
} else {
|
|
189
195
|
this._launch_data = launch_data;
|
|
190
196
|
}
|
|
@@ -222,7 +228,9 @@ export class CMI extends BaseRootCMI {
|
|
|
222
228
|
*/
|
|
223
229
|
set comments_from_lms(comments_from_lms: string) {
|
|
224
230
|
if (this.initialized) {
|
|
225
|
-
throw new Scorm12ValidationError(
|
|
231
|
+
throw new Scorm12ValidationError(
|
|
232
|
+
scorm12_errors.READ_ONLY_ELEMENT as number,
|
|
233
|
+
);
|
|
226
234
|
} else {
|
|
227
235
|
this._comments_from_lms = comments_from_lms;
|
|
228
236
|
}
|
|
@@ -17,7 +17,7 @@ export class CMIInteractions extends CMIArray {
|
|
|
17
17
|
constructor() {
|
|
18
18
|
super({
|
|
19
19
|
children: scorm12_constants.interactions_children,
|
|
20
|
-
errorCode: scorm12_errors.INVALID_SET_VALUE,
|
|
20
|
+
errorCode: scorm12_errors.INVALID_SET_VALUE as number,
|
|
21
21
|
errorClass: Scorm12ValidationError,
|
|
22
22
|
});
|
|
23
23
|
}
|
|
@@ -34,12 +34,12 @@ export class CMIInteractionsObject extends BaseCMI {
|
|
|
34
34
|
constructor() {
|
|
35
35
|
super();
|
|
36
36
|
this.objectives = new CMIArray({
|
|
37
|
-
errorCode: scorm12_errors.INVALID_SET_VALUE,
|
|
37
|
+
errorCode: scorm12_errors.INVALID_SET_VALUE as number,
|
|
38
38
|
errorClass: Scorm12ValidationError,
|
|
39
39
|
children: scorm12_constants.objectives_children,
|
|
40
40
|
});
|
|
41
41
|
this.correct_responses = new CMIArray({
|
|
42
|
-
errorCode: scorm12_errors.INVALID_SET_VALUE,
|
|
42
|
+
errorCode: scorm12_errors.INVALID_SET_VALUE as number,
|
|
43
43
|
errorClass: Scorm12ValidationError,
|
|
44
44
|
children: scorm12_constants.correct_responses_children,
|
|
45
45
|
});
|
|
@@ -89,7 +89,9 @@ export class CMIInteractionsObject extends BaseCMI {
|
|
|
89
89
|
*/
|
|
90
90
|
get id(): string {
|
|
91
91
|
if (!this.jsonString) {
|
|
92
|
-
throw new Scorm12ValidationError(
|
|
92
|
+
throw new Scorm12ValidationError(
|
|
93
|
+
scorm12_errors.WRITE_ONLY_ELEMENT as number,
|
|
94
|
+
);
|
|
93
95
|
}
|
|
94
96
|
return this._id;
|
|
95
97
|
}
|
|
@@ -110,7 +112,9 @@ export class CMIInteractionsObject extends BaseCMI {
|
|
|
110
112
|
*/
|
|
111
113
|
get time(): string {
|
|
112
114
|
if (!this.jsonString) {
|
|
113
|
-
throw new Scorm12ValidationError(
|
|
115
|
+
throw new Scorm12ValidationError(
|
|
116
|
+
scorm12_errors.WRITE_ONLY_ELEMENT as number,
|
|
117
|
+
);
|
|
114
118
|
}
|
|
115
119
|
return this._time;
|
|
116
120
|
}
|
|
@@ -131,7 +135,9 @@ export class CMIInteractionsObject extends BaseCMI {
|
|
|
131
135
|
*/
|
|
132
136
|
get type(): string {
|
|
133
137
|
if (!this.jsonString) {
|
|
134
|
-
throw new Scorm12ValidationError(
|
|
138
|
+
throw new Scorm12ValidationError(
|
|
139
|
+
scorm12_errors.WRITE_ONLY_ELEMENT as number,
|
|
140
|
+
);
|
|
135
141
|
}
|
|
136
142
|
return this._type;
|
|
137
143
|
}
|
|
@@ -152,7 +158,9 @@ export class CMIInteractionsObject extends BaseCMI {
|
|
|
152
158
|
*/
|
|
153
159
|
get weighting(): string {
|
|
154
160
|
if (!this.jsonString) {
|
|
155
|
-
throw new Scorm12ValidationError(
|
|
161
|
+
throw new Scorm12ValidationError(
|
|
162
|
+
scorm12_errors.WRITE_ONLY_ELEMENT as number,
|
|
163
|
+
);
|
|
156
164
|
}
|
|
157
165
|
return this._weighting;
|
|
158
166
|
}
|
|
@@ -176,7 +184,9 @@ export class CMIInteractionsObject extends BaseCMI {
|
|
|
176
184
|
*/
|
|
177
185
|
get student_response(): string {
|
|
178
186
|
if (!this.jsonString) {
|
|
179
|
-
throw new Scorm12ValidationError(
|
|
187
|
+
throw new Scorm12ValidationError(
|
|
188
|
+
scorm12_errors.WRITE_ONLY_ELEMENT as number,
|
|
189
|
+
);
|
|
180
190
|
}
|
|
181
191
|
return this._student_response;
|
|
182
192
|
}
|
|
@@ -197,7 +207,9 @@ export class CMIInteractionsObject extends BaseCMI {
|
|
|
197
207
|
*/
|
|
198
208
|
get result(): string {
|
|
199
209
|
if (!this.jsonString) {
|
|
200
|
-
throw new Scorm12ValidationError(
|
|
210
|
+
throw new Scorm12ValidationError(
|
|
211
|
+
scorm12_errors.WRITE_ONLY_ELEMENT as number,
|
|
212
|
+
);
|
|
201
213
|
}
|
|
202
214
|
return this._result;
|
|
203
215
|
}
|
|
@@ -218,7 +230,9 @@ export class CMIInteractionsObject extends BaseCMI {
|
|
|
218
230
|
*/
|
|
219
231
|
get latency(): string {
|
|
220
232
|
if (!this.jsonString) {
|
|
221
|
-
throw new Scorm12ValidationError(
|
|
233
|
+
throw new Scorm12ValidationError(
|
|
234
|
+
scorm12_errors.WRITE_ONLY_ELEMENT as number,
|
|
235
|
+
);
|
|
222
236
|
}
|
|
223
237
|
return this._latency;
|
|
224
238
|
}
|
|
@@ -366,7 +380,9 @@ export class CMIInteractionsCorrectResponsesObject extends BaseCMI {
|
|
|
366
380
|
*/
|
|
367
381
|
get pattern(): string {
|
|
368
382
|
if (!this.jsonString) {
|
|
369
|
-
throw new Scorm12ValidationError(
|
|
383
|
+
throw new Scorm12ValidationError(
|
|
384
|
+
scorm12_errors.WRITE_ONLY_ELEMENT as number,
|
|
385
|
+
);
|
|
370
386
|
}
|
|
371
387
|
return this._pattern;
|
|
372
388
|
}
|
|
@@ -18,7 +18,7 @@ export class CMIObjectives extends CMIArray {
|
|
|
18
18
|
constructor() {
|
|
19
19
|
super({
|
|
20
20
|
children: scorm12_constants.objectives_children,
|
|
21
|
-
errorCode: scorm12_errors.INVALID_SET_VALUE,
|
|
21
|
+
errorCode: scorm12_errors.INVALID_SET_VALUE as number,
|
|
22
22
|
errorClass: Scorm12ValidationError,
|
|
23
23
|
});
|
|
24
24
|
}
|
|
@@ -37,9 +37,9 @@ export class CMIObjectivesObject extends BaseCMI {
|
|
|
37
37
|
this.score = new CMIScore({
|
|
38
38
|
score_children: scorm12_constants.score_children,
|
|
39
39
|
score_range: scorm12_regex.score_range,
|
|
40
|
-
invalidErrorCode: scorm12_errors.INVALID_SET_VALUE,
|
|
41
|
-
invalidTypeCode: scorm12_errors.TYPE_MISMATCH,
|
|
42
|
-
invalidRangeCode: scorm12_errors.VALUE_OUT_OF_RANGE,
|
|
40
|
+
invalidErrorCode: scorm12_errors.INVALID_SET_VALUE as number,
|
|
41
|
+
invalidTypeCode: scorm12_errors.TYPE_MISMATCH as number,
|
|
42
|
+
invalidRangeCode: scorm12_errors.VALUE_OUT_OF_RANGE as number,
|
|
43
43
|
errorClass: Scorm12ValidationError,
|
|
44
44
|
});
|
|
45
45
|
}
|
|
@@ -46,7 +46,9 @@ export class CMIStudentData extends BaseCMI {
|
|
|
46
46
|
* @private
|
|
47
47
|
*/
|
|
48
48
|
set _children(_children: string) {
|
|
49
|
-
throw new Scorm12ValidationError(
|
|
49
|
+
throw new Scorm12ValidationError(
|
|
50
|
+
scorm12_errors.INVALID_SET_VALUE as number,
|
|
51
|
+
);
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
/**
|
|
@@ -63,7 +65,9 @@ export class CMIStudentData extends BaseCMI {
|
|
|
63
65
|
*/
|
|
64
66
|
set mastery_score(mastery_score: string) {
|
|
65
67
|
if (this.initialized) {
|
|
66
|
-
throw new Scorm12ValidationError(
|
|
68
|
+
throw new Scorm12ValidationError(
|
|
69
|
+
scorm12_errors.READ_ONLY_ELEMENT as number,
|
|
70
|
+
);
|
|
67
71
|
} else {
|
|
68
72
|
this._mastery_score = mastery_score;
|
|
69
73
|
}
|
|
@@ -83,7 +87,9 @@ export class CMIStudentData extends BaseCMI {
|
|
|
83
87
|
*/
|
|
84
88
|
set max_time_allowed(max_time_allowed: string) {
|
|
85
89
|
if (this.initialized) {
|
|
86
|
-
throw new Scorm12ValidationError(
|
|
90
|
+
throw new Scorm12ValidationError(
|
|
91
|
+
scorm12_errors.READ_ONLY_ELEMENT as number,
|
|
92
|
+
);
|
|
87
93
|
} else {
|
|
88
94
|
this._max_time_allowed = max_time_allowed;
|
|
89
95
|
}
|
|
@@ -103,7 +109,9 @@ export class CMIStudentData extends BaseCMI {
|
|
|
103
109
|
*/
|
|
104
110
|
set time_limit_action(time_limit_action: string) {
|
|
105
111
|
if (this.initialized) {
|
|
106
|
-
throw new Scorm12ValidationError(
|
|
112
|
+
throw new Scorm12ValidationError(
|
|
113
|
+
scorm12_errors.READ_ONLY_ELEMENT as number,
|
|
114
|
+
);
|
|
107
115
|
} else {
|
|
108
116
|
this._time_limit_action = time_limit_action;
|
|
109
117
|
}
|
|
@@ -50,7 +50,9 @@ export class CMIStudentPreference extends BaseCMI {
|
|
|
50
50
|
* @private
|
|
51
51
|
*/
|
|
52
52
|
set _children(_children: string) {
|
|
53
|
-
throw new Scorm12ValidationError(
|
|
53
|
+
throw new Scorm12ValidationError(
|
|
54
|
+
scorm12_errors.INVALID_SET_VALUE as number,
|
|
55
|
+
);
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
/**
|
|
@@ -17,7 +17,7 @@ export function check12ValidFormat(
|
|
|
17
17
|
return checkValidFormat(
|
|
18
18
|
value,
|
|
19
19
|
regexPattern,
|
|
20
|
-
scorm12_errors.TYPE_MISMATCH,
|
|
20
|
+
scorm12_errors.TYPE_MISMATCH as number,
|
|
21
21
|
Scorm12ValidationError,
|
|
22
22
|
allowEmptyString,
|
|
23
23
|
);
|
|
@@ -36,13 +36,15 @@ export function check12ValidRange(
|
|
|
36
36
|
allowEmptyString?: boolean,
|
|
37
37
|
): boolean {
|
|
38
38
|
if (!allowEmptyString && value === "") {
|
|
39
|
-
throw new Scorm12ValidationError(
|
|
39
|
+
throw new Scorm12ValidationError(
|
|
40
|
+
scorm12_errors.VALUE_OUT_OF_RANGE as number,
|
|
41
|
+
);
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
return checkValidRange(
|
|
43
45
|
value,
|
|
44
46
|
rangePattern,
|
|
45
|
-
scorm12_errors.VALUE_OUT_OF_RANGE,
|
|
47
|
+
scorm12_errors.VALUE_OUT_OF_RANGE as number,
|
|
46
48
|
Scorm12ValidationError,
|
|
47
49
|
);
|
|
48
50
|
}
|
package/src/cmi/scorm2004/adl.ts
CHANGED
|
@@ -142,7 +142,7 @@ export class ADLData extends CMIArray {
|
|
|
142
142
|
constructor() {
|
|
143
143
|
super({
|
|
144
144
|
children: scorm2004_constants.adl_data_children,
|
|
145
|
-
errorCode: scorm2004_errors.READ_ONLY_ELEMENT,
|
|
145
|
+
errorCode: scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
146
146
|
errorClass: Scorm2004ValidationError,
|
|
147
147
|
});
|
|
148
148
|
}
|
|
@@ -270,7 +270,9 @@ export class ADLNavRequestValid extends BaseCMI {
|
|
|
270
270
|
*/
|
|
271
271
|
set continue(_continue: string) {
|
|
272
272
|
if (this.initialized) {
|
|
273
|
-
throw new Scorm2004ValidationError(
|
|
273
|
+
throw new Scorm2004ValidationError(
|
|
274
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
275
|
+
);
|
|
274
276
|
}
|
|
275
277
|
if (check2004ValidFormat(_continue, scorm2004_regex.NAVBoolean)) {
|
|
276
278
|
this._continue = _continue;
|
|
@@ -291,7 +293,9 @@ export class ADLNavRequestValid extends BaseCMI {
|
|
|
291
293
|
*/
|
|
292
294
|
set previous(_previous: string) {
|
|
293
295
|
if (this.initialized) {
|
|
294
|
-
throw new Scorm2004ValidationError(
|
|
296
|
+
throw new Scorm2004ValidationError(
|
|
297
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
298
|
+
);
|
|
295
299
|
}
|
|
296
300
|
if (check2004ValidFormat(_previous, scorm2004_regex.NAVBoolean)) {
|
|
297
301
|
this._previous = _previous;
|
|
@@ -312,14 +316,19 @@ export class ADLNavRequestValid extends BaseCMI {
|
|
|
312
316
|
*/
|
|
313
317
|
set choice(choice: { [key: string]: string }) {
|
|
314
318
|
if (this.initialized) {
|
|
315
|
-
throw new Scorm2004ValidationError(
|
|
319
|
+
throw new Scorm2004ValidationError(
|
|
320
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
321
|
+
);
|
|
316
322
|
}
|
|
317
323
|
if (typeof choice !== "object") {
|
|
318
|
-
throw new Scorm2004ValidationError(
|
|
324
|
+
throw new Scorm2004ValidationError(
|
|
325
|
+
scorm2004_errors.TYPE_MISMATCH as number,
|
|
326
|
+
);
|
|
319
327
|
}
|
|
320
328
|
for (const key in choice) {
|
|
321
329
|
if ({}.hasOwnProperty.call(choice, key)) {
|
|
322
330
|
if (
|
|
331
|
+
choice[key] !== undefined &&
|
|
323
332
|
check2004ValidFormat(choice[key], scorm2004_regex.NAVBoolean) &&
|
|
324
333
|
check2004ValidFormat(key, scorm2004_regex.NAVTarget)
|
|
325
334
|
) {
|
|
@@ -344,14 +353,19 @@ export class ADLNavRequestValid extends BaseCMI {
|
|
|
344
353
|
*/
|
|
345
354
|
set jump(jump: { [key: string]: string }) {
|
|
346
355
|
if (this.initialized) {
|
|
347
|
-
throw new Scorm2004ValidationError(
|
|
356
|
+
throw new Scorm2004ValidationError(
|
|
357
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
358
|
+
);
|
|
348
359
|
}
|
|
349
360
|
if (typeof jump !== "object") {
|
|
350
|
-
throw new Scorm2004ValidationError(
|
|
361
|
+
throw new Scorm2004ValidationError(
|
|
362
|
+
scorm2004_errors.TYPE_MISMATCH as number,
|
|
363
|
+
);
|
|
351
364
|
}
|
|
352
365
|
for (const key in jump) {
|
|
353
366
|
if ({}.hasOwnProperty.call(jump, key)) {
|
|
354
367
|
if (
|
|
368
|
+
jump[key] !== undefined &&
|
|
355
369
|
check2004ValidFormat(jump[key], scorm2004_regex.NAVBoolean) &&
|
|
356
370
|
check2004ValidFormat(key, scorm2004_regex.NAVTarget)
|
|
357
371
|
) {
|
package/src/cmi/scorm2004/cmi.ts
CHANGED
|
@@ -107,7 +107,9 @@ export class CMI extends BaseRootCMI {
|
|
|
107
107
|
* @private
|
|
108
108
|
*/
|
|
109
109
|
set _version(_version: string) {
|
|
110
|
-
throw new Scorm2004ValidationError(
|
|
110
|
+
throw new Scorm2004ValidationError(
|
|
111
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
112
|
+
);
|
|
111
113
|
}
|
|
112
114
|
|
|
113
115
|
/**
|
|
@@ -125,7 +127,9 @@ export class CMI extends BaseRootCMI {
|
|
|
125
127
|
* @private
|
|
126
128
|
*/
|
|
127
129
|
set _children(_children: number) {
|
|
128
|
-
throw new Scorm2004ValidationError(
|
|
130
|
+
throw new Scorm2004ValidationError(
|
|
131
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
132
|
+
);
|
|
129
133
|
}
|
|
130
134
|
|
|
131
135
|
/**
|
|
@@ -160,7 +164,9 @@ export class CMI extends BaseRootCMI {
|
|
|
160
164
|
*/
|
|
161
165
|
set completion_threshold(completion_threshold: string) {
|
|
162
166
|
if (this.initialized) {
|
|
163
|
-
throw new Scorm2004ValidationError(
|
|
167
|
+
throw new Scorm2004ValidationError(
|
|
168
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
169
|
+
);
|
|
164
170
|
} else {
|
|
165
171
|
this._completion_threshold = completion_threshold;
|
|
166
172
|
}
|
|
@@ -180,7 +186,9 @@ export class CMI extends BaseRootCMI {
|
|
|
180
186
|
*/
|
|
181
187
|
set credit(credit: string) {
|
|
182
188
|
if (this.initialized) {
|
|
183
|
-
throw new Scorm2004ValidationError(
|
|
189
|
+
throw new Scorm2004ValidationError(
|
|
190
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
191
|
+
);
|
|
184
192
|
} else {
|
|
185
193
|
this._credit = credit;
|
|
186
194
|
}
|
|
@@ -200,7 +208,9 @@ export class CMI extends BaseRootCMI {
|
|
|
200
208
|
*/
|
|
201
209
|
set entry(entry: string) {
|
|
202
210
|
if (this.initialized) {
|
|
203
|
-
throw new Scorm2004ValidationError(
|
|
211
|
+
throw new Scorm2004ValidationError(
|
|
212
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
213
|
+
);
|
|
204
214
|
} else {
|
|
205
215
|
this._entry = entry;
|
|
206
216
|
}
|
|
@@ -212,7 +222,9 @@ export class CMI extends BaseRootCMI {
|
|
|
212
222
|
*/
|
|
213
223
|
get exit(): string {
|
|
214
224
|
if (!this.jsonString) {
|
|
215
|
-
throw new Scorm2004ValidationError(
|
|
225
|
+
throw new Scorm2004ValidationError(
|
|
226
|
+
scorm2004_errors.WRITE_ONLY_ELEMENT as number,
|
|
227
|
+
);
|
|
216
228
|
}
|
|
217
229
|
return this._exit;
|
|
218
230
|
}
|
|
@@ -241,7 +253,9 @@ export class CMI extends BaseRootCMI {
|
|
|
241
253
|
*/
|
|
242
254
|
set launch_data(launch_data: string) {
|
|
243
255
|
if (this.initialized) {
|
|
244
|
-
throw new Scorm2004ValidationError(
|
|
256
|
+
throw new Scorm2004ValidationError(
|
|
257
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
258
|
+
);
|
|
245
259
|
} else {
|
|
246
260
|
this._launch_data = launch_data;
|
|
247
261
|
}
|
|
@@ -261,7 +275,9 @@ export class CMI extends BaseRootCMI {
|
|
|
261
275
|
*/
|
|
262
276
|
set learner_id(learner_id: string) {
|
|
263
277
|
if (this.initialized) {
|
|
264
|
-
throw new Scorm2004ValidationError(
|
|
278
|
+
throw new Scorm2004ValidationError(
|
|
279
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
280
|
+
);
|
|
265
281
|
} else {
|
|
266
282
|
this._learner_id = learner_id;
|
|
267
283
|
}
|
|
@@ -281,7 +297,9 @@ export class CMI extends BaseRootCMI {
|
|
|
281
297
|
*/
|
|
282
298
|
set learner_name(learner_name: string) {
|
|
283
299
|
if (this.initialized) {
|
|
284
|
-
throw new Scorm2004ValidationError(
|
|
300
|
+
throw new Scorm2004ValidationError(
|
|
301
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
302
|
+
);
|
|
285
303
|
} else {
|
|
286
304
|
this._learner_name = learner_name;
|
|
287
305
|
}
|
|
@@ -319,7 +337,9 @@ export class CMI extends BaseRootCMI {
|
|
|
319
337
|
*/
|
|
320
338
|
set max_time_allowed(max_time_allowed: string) {
|
|
321
339
|
if (this.initialized) {
|
|
322
|
-
throw new Scorm2004ValidationError(
|
|
340
|
+
throw new Scorm2004ValidationError(
|
|
341
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
342
|
+
);
|
|
323
343
|
} else {
|
|
324
344
|
this._max_time_allowed = max_time_allowed;
|
|
325
345
|
}
|
|
@@ -339,7 +359,9 @@ export class CMI extends BaseRootCMI {
|
|
|
339
359
|
*/
|
|
340
360
|
set mode(mode: string) {
|
|
341
361
|
if (this.initialized) {
|
|
342
|
-
throw new Scorm2004ValidationError(
|
|
362
|
+
throw new Scorm2004ValidationError(
|
|
363
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
364
|
+
);
|
|
343
365
|
} else {
|
|
344
366
|
this._mode = mode;
|
|
345
367
|
}
|
|
@@ -380,7 +402,9 @@ export class CMI extends BaseRootCMI {
|
|
|
380
402
|
*/
|
|
381
403
|
set scaled_passing_score(scaled_passing_score: string) {
|
|
382
404
|
if (this.initialized) {
|
|
383
|
-
throw new Scorm2004ValidationError(
|
|
405
|
+
throw new Scorm2004ValidationError(
|
|
406
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
407
|
+
);
|
|
384
408
|
} else {
|
|
385
409
|
this._scaled_passing_score = scaled_passing_score;
|
|
386
410
|
}
|
|
@@ -392,7 +416,9 @@ export class CMI extends BaseRootCMI {
|
|
|
392
416
|
*/
|
|
393
417
|
get session_time(): string {
|
|
394
418
|
if (!this.jsonString) {
|
|
395
|
-
throw new Scorm2004ValidationError(
|
|
419
|
+
throw new Scorm2004ValidationError(
|
|
420
|
+
scorm2004_errors.WRITE_ONLY_ELEMENT as number,
|
|
421
|
+
);
|
|
396
422
|
}
|
|
397
423
|
return this._session_time;
|
|
398
424
|
}
|
|
@@ -459,7 +485,9 @@ export class CMI extends BaseRootCMI {
|
|
|
459
485
|
*/
|
|
460
486
|
set time_limit_action(time_limit_action: string) {
|
|
461
487
|
if (this.initialized) {
|
|
462
|
-
throw new Scorm2004ValidationError(
|
|
488
|
+
throw new Scorm2004ValidationError(
|
|
489
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
490
|
+
);
|
|
463
491
|
} else {
|
|
464
492
|
this._time_limit_action = time_limit_action;
|
|
465
493
|
}
|
|
@@ -479,7 +507,9 @@ export class CMI extends BaseRootCMI {
|
|
|
479
507
|
*/
|
|
480
508
|
set total_time(total_time: string) {
|
|
481
509
|
if (this.initialized) {
|
|
482
|
-
throw new Scorm2004ValidationError(
|
|
510
|
+
throw new Scorm2004ValidationError(
|
|
511
|
+
scorm2004_errors.READ_ONLY_ELEMENT as number,
|
|
512
|
+
);
|
|
483
513
|
} else {
|
|
484
514
|
this._total_time = total_time;
|
|
485
515
|
}
|