@longsightgroup/qti3-core 0.10.1 → 0.10.3
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 +21 -2
- package/dist/attempt-state.d.ts.map +1 -1
- package/dist/attempt-state.js +18 -0
- package/dist/attempt-state.js.map +1 -1
- package/dist/content-text.d.ts +4 -0
- package/dist/content-text.d.ts.map +1 -1
- package/dist/content-text.js +112 -9
- package/dist/content-text.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/media-definition.d.ts +55 -0
- package/dist/media-definition.d.ts.map +1 -0
- package/dist/media-definition.js +97 -0
- package/dist/media-definition.js.map +1 -0
- package/dist/parser-declarations.d.ts +4 -4
- package/dist/parser-declarations.d.ts.map +1 -1
- package/dist/parser-declarations.js +87 -46
- package/dist/parser-declarations.js.map +1 -1
- package/dist/parser-item-metadata.d.ts.map +1 -1
- package/dist/parser-item-metadata.js +4 -3
- package/dist/parser-item-metadata.js.map +1 -1
- package/dist/parser-processing.js +10 -9
- package/dist/parser-processing.js.map +1 -1
- package/dist/parser-values.d.ts +2 -0
- package/dist/parser-values.d.ts.map +1 -1
- package/dist/parser-values.js +7 -0
- package/dist/parser-values.js.map +1 -1
- package/dist/parser.js +16 -13
- package/dist/parser.js.map +1 -1
- package/dist/processing-evaluator-collection.d.ts.map +1 -1
- package/dist/processing-evaluator-collection.js +8 -2
- package/dist/processing-evaluator-collection.js.map +1 -1
- package/dist/processing-evaluator-comparison.d.ts.map +1 -1
- package/dist/processing-evaluator-comparison.js +6 -0
- package/dist/processing-evaluator-comparison.js.map +1 -1
- package/dist/processing-evaluator-numeric.d.ts.map +1 -1
- package/dist/processing-evaluator-numeric.js +8 -1
- package/dist/processing-evaluator-numeric.js.map +1 -1
- package/dist/processing-expression-children.d.ts.map +1 -1
- package/dist/processing-expression-children.js +2 -1
- package/dist/processing-expression-children.js.map +1 -1
- package/dist/processing-limits.d.ts +3 -0
- package/dist/processing-limits.d.ts.map +1 -0
- package/dist/processing-limits.js +3 -0
- package/dist/processing-limits.js.map +1 -0
- package/dist/processing-mapping.d.ts.map +1 -1
- package/dist/processing-mapping.js +13 -2
- package/dist/processing-mapping.js.map +1 -1
- package/dist/processing-operators.d.ts +2 -0
- package/dist/processing-operators.d.ts.map +1 -1
- package/dist/processing-operators.js +34 -5
- package/dist/processing-operators.js.map +1 -1
- package/dist/response-validation-policy.d.ts.map +1 -1
- package/dist/response-validation-policy.js +5 -6
- package/dist/response-validation-policy.js.map +1 -1
- package/dist/serializer-processing-expressions.js +1 -1
- package/dist/serializer-processing-expressions.js.map +1 -1
- package/dist/slider-definition.d.ts +59 -0
- package/dist/slider-definition.d.ts.map +1 -0
- package/dist/slider-definition.js +198 -0
- package/dist/slider-definition.js.map +1 -0
- package/dist/support-evidence.d.ts +6 -2
- package/dist/support-evidence.d.ts.map +1 -1
- package/dist/support-evidence.js +15 -11
- package/dist/support-evidence.js.map +1 -1
- package/dist/support.d.ts.map +1 -1
- package/dist/support.js +96 -100
- package/dist/support.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/validation-declaration-entries.d.ts +13 -0
- package/dist/validation-declaration-entries.d.ts.map +1 -0
- package/dist/validation-declaration-entries.js +136 -0
- package/dist/validation-declaration-entries.js.map +1 -0
- package/dist/validation-interactions.d.ts.map +1 -1
- package/dist/validation-interactions.js +14 -46
- package/dist/validation-interactions.js.map +1 -1
- package/dist/validation-primitives.js +2 -2
- package/dist/validation-primitives.js.map +1 -1
- package/dist/validation-processing.d.ts.map +1 -1
- package/dist/validation-processing.js +125 -1
- package/dist/validation-processing.js.map +1 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +8 -134
- package/dist/validation.js.map +1 -1
- package/dist/xml.d.ts.map +1 -1
- package/dist/xml.js +3 -2
- package/dist/xml.js.map +1 -1
- package/package.json +1 -1
- package/src/attempt-state.ts +20 -0
- package/src/content-text.ts +135 -11
- package/src/index.ts +25 -0
- package/src/media-definition.ts +174 -0
- package/src/parser-declarations.ts +134 -40
- package/src/parser-item-metadata.ts +4 -3
- package/src/parser-processing.ts +10 -9
- package/src/parser-values.ts +7 -0
- package/src/parser.ts +16 -13
- package/src/processing-evaluator-collection.ts +7 -2
- package/src/processing-evaluator-comparison.ts +6 -0
- package/src/processing-evaluator-numeric.ts +5 -1
- package/src/processing-expression-children.ts +2 -1
- package/src/processing-limits.ts +2 -0
- package/src/processing-mapping.ts +10 -2
- package/src/processing-operators.ts +38 -5
- package/src/response-validation-policy.ts +5 -5
- package/src/serializer-processing-expressions.ts +1 -1
- package/src/slider-definition.ts +363 -0
- package/src/support-evidence.ts +15 -17
- package/src/support.ts +106 -102
- package/src/types.ts +8 -1
- package/src/validation-declaration-entries.ts +162 -0
- package/src/validation-interactions.ts +14 -64
- package/src/validation-primitives.ts +2 -2
- package/src/validation-processing.ts +145 -1
- package/src/validation.ts +11 -151
- package/src/xml.ts +3 -4
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { hasValidShapeCoordinateCount, isAreaShape, isNumericCsv, numericCsv, } from "./validation-geometry.js";
|
|
2
|
+
import { isFiniteNumber, isInteger } from "./validation-primitives.js";
|
|
3
|
+
/** Append diagnostics for raw qti-map-entry attributes. */
|
|
4
|
+
export function validateMapEntryAttributes(declarationIdentifier, entry, diagnostics) {
|
|
5
|
+
if (!entry.attributes["map-key"]) {
|
|
6
|
+
diagnostics.push({
|
|
7
|
+
code: "mapEntry.mapKey.required",
|
|
8
|
+
severity: "error",
|
|
9
|
+
message: `Response declaration ${declarationIdentifier} map entry requires map-key.`,
|
|
10
|
+
path: entry.source?.path,
|
|
11
|
+
source: entry.source,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
const mappedValue = entry.attributes["mapped-value"];
|
|
15
|
+
if (mappedValue === undefined) {
|
|
16
|
+
diagnostics.push({
|
|
17
|
+
code: "mapEntry.mappedValue.required",
|
|
18
|
+
severity: "error",
|
|
19
|
+
message: `Response declaration ${declarationIdentifier} map entry requires mapped-value.`,
|
|
20
|
+
path: entry.source?.path,
|
|
21
|
+
source: entry.source,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
else if (!isFiniteNumber(mappedValue)) {
|
|
25
|
+
diagnostics.push({
|
|
26
|
+
code: "mapEntry.mappedValue",
|
|
27
|
+
severity: "error",
|
|
28
|
+
message: `Response declaration ${declarationIdentifier} map entry requires numeric mapped-value.`,
|
|
29
|
+
path: entry.source?.path,
|
|
30
|
+
source: entry.source,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/** Append diagnostics for raw qti-area-map-entry attributes. */
|
|
35
|
+
export function validateAreaMapEntryAttributes(declarationIdentifier, entry, diagnostics) {
|
|
36
|
+
const shape = entry.attributes.shape;
|
|
37
|
+
const coords = entry.attributes.coords;
|
|
38
|
+
const mappedValue = entry.attributes["mapped-value"];
|
|
39
|
+
if (!shape) {
|
|
40
|
+
diagnostics.push({
|
|
41
|
+
code: "areaMapEntry.shape.required",
|
|
42
|
+
severity: "error",
|
|
43
|
+
message: `Response declaration ${declarationIdentifier} area map entry requires shape.`,
|
|
44
|
+
path: entry.source?.path,
|
|
45
|
+
source: entry.source,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
else if (!isAreaShape(shape)) {
|
|
49
|
+
diagnostics.push({
|
|
50
|
+
code: "areaMapEntry.shape",
|
|
51
|
+
severity: "error",
|
|
52
|
+
message: `Response declaration ${declarationIdentifier} area map entry has unsupported shape ${shape}.`,
|
|
53
|
+
path: entry.source?.path,
|
|
54
|
+
source: entry.source,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (!coords) {
|
|
58
|
+
diagnostics.push({
|
|
59
|
+
code: "areaMapEntry.coords.required",
|
|
60
|
+
severity: "error",
|
|
61
|
+
message: `Response declaration ${declarationIdentifier} area map entry requires coords.`,
|
|
62
|
+
path: entry.source?.path,
|
|
63
|
+
source: entry.source,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
else if (!isNumericCsv(coords)) {
|
|
67
|
+
diagnostics.push({
|
|
68
|
+
code: "areaMapEntry.coords",
|
|
69
|
+
severity: "error",
|
|
70
|
+
message: `Response declaration ${declarationIdentifier} area map entry requires comma-separated numeric coords.`,
|
|
71
|
+
path: entry.source?.path,
|
|
72
|
+
source: entry.source,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
else if (shape &&
|
|
76
|
+
isAreaShape(shape) &&
|
|
77
|
+
!hasValidShapeCoordinateCount(shape, numericCsv(coords))) {
|
|
78
|
+
diagnostics.push({
|
|
79
|
+
code: "areaMapEntry.coords.shape",
|
|
80
|
+
severity: "error",
|
|
81
|
+
message: `Response declaration ${declarationIdentifier} area map entry shape ${shape} has invalid coords arity.`,
|
|
82
|
+
path: entry.source?.path,
|
|
83
|
+
source: entry.source,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
if (mappedValue === undefined) {
|
|
87
|
+
diagnostics.push({
|
|
88
|
+
code: "areaMapEntry.mappedValue.required",
|
|
89
|
+
severity: "error",
|
|
90
|
+
message: `Response declaration ${declarationIdentifier} area map entry requires mapped-value.`,
|
|
91
|
+
path: entry.source?.path,
|
|
92
|
+
source: entry.source,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
else if (!isFiniteNumber(mappedValue)) {
|
|
96
|
+
diagnostics.push({
|
|
97
|
+
code: "areaMapEntry.mappedValue",
|
|
98
|
+
severity: "error",
|
|
99
|
+
message: `Response declaration ${declarationIdentifier} area map entry requires numeric mapped-value.`,
|
|
100
|
+
path: entry.source?.path,
|
|
101
|
+
source: entry.source,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/** Append diagnostics for raw lookup-table entry attributes. */
|
|
106
|
+
export function validateLookupTableEntryAttributes(tableType, entry, diagnostics) {
|
|
107
|
+
const sourceValue = entry.attributes["source-value"];
|
|
108
|
+
if (sourceValue === undefined || !isFiniteNumber(sourceValue)) {
|
|
109
|
+
diagnostics.push({
|
|
110
|
+
code: "lookupTable.entry.sourceValue",
|
|
111
|
+
severity: "error",
|
|
112
|
+
message: "Lookup table entry requires numeric source-value.",
|
|
113
|
+
path: entry.source?.path,
|
|
114
|
+
source: entry.source,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
if (entry.attributes["target-value"] === undefined) {
|
|
118
|
+
diagnostics.push({
|
|
119
|
+
code: "lookupTable.entry.targetValue",
|
|
120
|
+
severity: "error",
|
|
121
|
+
message: "Lookup table entry requires target-value.",
|
|
122
|
+
path: entry.source?.path,
|
|
123
|
+
source: entry.source,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
if (tableType === "match" && sourceValue !== undefined && !isInteger(sourceValue)) {
|
|
127
|
+
diagnostics.push({
|
|
128
|
+
code: "lookupTable.match.sourceValue",
|
|
129
|
+
severity: "error",
|
|
130
|
+
message: "qti-match-table-entry source-value must be an integer.",
|
|
131
|
+
path: entry.source?.path,
|
|
132
|
+
source: entry.source,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=validation-declaration-entries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-declaration-entries.js","sourceRoot":"","sources":["../src/validation-declaration-entries.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-interactions.d.ts","sourceRoot":"","sources":["../src/validation-interactions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAIjB,aAAa,EAGd,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"validation-interactions.d.ts","sourceRoot":"","sources":["../src/validation-interactions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAIjB,aAAa,EAGd,MAAM,YAAY,CAAC;AAiBpB,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,IAAI,CA+BhG"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { assertNever } from "./assert-never.js";
|
|
2
2
|
import { isValidQtiPatternMask } from "./pattern-mask.js";
|
|
3
|
+
import { parseQtiMediaDefinition } from "./media-definition.js";
|
|
4
|
+
import { parseQtiSliderDefinition } from "./slider-definition.js";
|
|
3
5
|
import { validateInteractionSharedVocabulary } from "./shared-vocabulary-interaction-validation.js";
|
|
4
6
|
import { qtiValueToStringList } from "./value-format.js";
|
|
5
7
|
import { validateGraphicHotspotObjectDimensions, validateHotspotGeometry, } from "./validation-geometry.js";
|
|
6
|
-
import { isBooleanAttribute,
|
|
8
|
+
import { isBooleanAttribute, isNonNegativeInteger, requireIdentifier, } from "./validation-primitives.js";
|
|
7
9
|
export function validateInteractions(item, diagnostics) {
|
|
8
10
|
const responseDeclarations = new Map(item.responseDeclarations.map((declaration) => [declaration.identifier, declaration]));
|
|
9
11
|
const responseIdentifiers = new Set(responseDeclarations.keys());
|
|
@@ -63,7 +65,9 @@ function validateInteractionResponseShape(interaction, diagnostics) {
|
|
|
63
65
|
source: interaction.source,
|
|
64
66
|
});
|
|
65
67
|
}
|
|
66
|
-
if (interaction.
|
|
68
|
+
if (interaction.type !== "slider" &&
|
|
69
|
+
interaction.responseBaseType &&
|
|
70
|
+
!expected.baseTypes.includes(interaction.responseBaseType)) {
|
|
67
71
|
diagnostics.push({
|
|
68
72
|
code: "interaction.baseType",
|
|
69
73
|
severity: "error",
|
|
@@ -212,34 +216,14 @@ function validateInteractionRequiredAttributes(interaction, diagnostics) {
|
|
|
212
216
|
requireInteractionAttribute(interaction, "custom-interaction-type-identifier", "interaction.portableCustom.typeIdentifier", diagnostics);
|
|
213
217
|
}
|
|
214
218
|
if (interaction.type === "slider") {
|
|
215
|
-
const
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
invalidNumber(interaction, "upper-bound", upper, diagnostics);
|
|
224
|
-
}
|
|
225
|
-
if (lower !== undefined &&
|
|
226
|
-
upper !== undefined &&
|
|
227
|
-
isFiniteNumber(lower) &&
|
|
228
|
-
isFiniteNumber(upper)) {
|
|
229
|
-
if (Number(lower) >= Number(upper)) {
|
|
230
|
-
diagnostics.push({
|
|
231
|
-
code: "interaction.slider.bounds",
|
|
232
|
-
severity: "error",
|
|
233
|
-
message: `${interaction.qtiName} requires lower-bound to be less than upper-bound.`,
|
|
234
|
-
path: interaction.source?.path,
|
|
235
|
-
source: interaction.source,
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
const step = interaction.attributes.step;
|
|
240
|
-
if (step !== undefined && (!isFiniteNumber(step) || Number(step) <= 0)) {
|
|
241
|
-
invalidNumber(interaction, "step", step, diagnostics);
|
|
242
|
-
}
|
|
219
|
+
const definition = parseQtiSliderDefinition(interaction);
|
|
220
|
+
if (!definition.ok)
|
|
221
|
+
diagnostics.push(...definition.diagnostics);
|
|
222
|
+
}
|
|
223
|
+
if (interaction.type === "media") {
|
|
224
|
+
const definition = parseQtiMediaDefinition(interaction);
|
|
225
|
+
if (!definition.ok)
|
|
226
|
+
diagnostics.push(...definition.diagnostics);
|
|
243
227
|
}
|
|
244
228
|
}
|
|
245
229
|
function requiresObject(interaction) {
|
|
@@ -360,15 +344,6 @@ function warnExternalPortableCustomUrl(url, source, diagnostics) {
|
|
|
360
344
|
source,
|
|
361
345
|
});
|
|
362
346
|
}
|
|
363
|
-
function invalidNumber(interaction, attribute, value, diagnostics) {
|
|
364
|
-
diagnostics.push({
|
|
365
|
-
code: "interaction.numericAttribute",
|
|
366
|
-
severity: "error",
|
|
367
|
-
message: `${interaction.qtiName} requires numeric ${attribute}, got ${value}.`,
|
|
368
|
-
path: interaction.source?.path,
|
|
369
|
-
source: interaction.source,
|
|
370
|
-
});
|
|
371
|
-
}
|
|
372
347
|
function validatePatternMaskAttribute(interaction, diagnostics) {
|
|
373
348
|
if (interaction.type !== "textEntry" && interaction.type !== "extendedText")
|
|
374
349
|
return;
|
|
@@ -393,13 +368,6 @@ function validateInteractionLimitAttributes(interaction, diagnostics) {
|
|
|
393
368
|
validateMinMaxPair(interaction, "min-choices", "max-choices", diagnostics);
|
|
394
369
|
validateMinMaxPair(interaction, "min-associations", "max-associations", diagnostics);
|
|
395
370
|
validateBooleanAttribute(interaction, "required", diagnostics);
|
|
396
|
-
if (interaction.type === "media") {
|
|
397
|
-
validateNonNegativeIntegerAttribute(interaction, "max-plays", diagnostics);
|
|
398
|
-
validateNonNegativeIntegerAttribute(interaction, "min-plays", diagnostics);
|
|
399
|
-
validateBooleanAttribute(interaction, "autostart", diagnostics);
|
|
400
|
-
validateBooleanAttribute(interaction, "loop", diagnostics);
|
|
401
|
-
validateMinMaxPair(interaction, "min-plays", "max-plays", diagnostics);
|
|
402
|
-
}
|
|
403
371
|
}
|
|
404
372
|
function validateChoiceLimitAttributes(choice, diagnostics) {
|
|
405
373
|
if (requiresMatchMax(choice) && !choice.attributes["match-max"]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-interactions.js","sourceRoot":"","sources":["../src/validation-interactions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validation-interactions.js","sourceRoot":"","sources":["../src/validation-interactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { parseXmlBoolean } from "./parser-values.js";
|
|
1
|
+
import { parseFiniteNumber, parseXmlBoolean } from "./parser-values.js";
|
|
2
2
|
export function requireIdentifier(qtiName, identifier, diagnostics, source) {
|
|
3
3
|
if (identifier?.trim())
|
|
4
4
|
return;
|
|
@@ -27,7 +27,7 @@ export function isBaseType(value) {
|
|
|
27
27
|
value === "uri");
|
|
28
28
|
}
|
|
29
29
|
export function isFiniteNumber(value) {
|
|
30
|
-
return
|
|
30
|
+
return parseFiniteNumber(value) !== undefined;
|
|
31
31
|
}
|
|
32
32
|
export function isInteger(value) {
|
|
33
33
|
return /^-?\d+$/.test(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-primitives.js","sourceRoot":"","sources":["../src/validation-primitives.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation-primitives.js","sourceRoot":"","sources":["../src/validation-primitives.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAExE,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,UAA8B,EAC9B,WAA4B,EAC5B,MAA+B;IAE/B,IAAI,UAAU,EAAE,IAAI,EAAE;QAAE,OAAO;IAC/B,WAAW,CAAC,IAAI,CAAC;QACf,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,GAAG,OAAO,mCAAmC;QACtD,IAAI,EAAE,MAAM,EAAE,IAAI;QAClB,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,CACL,KAAK,KAAK,YAAY;QACtB,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,OAAO;QACjB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,OAAO;QACjB,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,cAAc;QACxB,KAAK,KAAK,UAAU;QACpB,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,KAAK,CAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAO,iBAAiB,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAyB;IAC/D,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1E,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,eAAe,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-processing.d.ts","sourceRoot":"","sources":["../src/validation-processing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EAMd,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"validation-processing.d.ts","sourceRoot":"","sources":["../src/validation-processing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EAMd,MAAM,YAAY,CAAC;AAgBpB,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,aAAa,EAAE,GAC3B,IAAI,CAeN;AAwED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,aAAa,EAAE,GAC3B,IAAI,CAcN"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { expressionChildren } from "./processing-expression-children.js";
|
|
2
|
+
import { MAX_QTI_REPEAT_RESULT_ELEMENTS } from "./processing-limits.js";
|
|
2
3
|
import { MATH_OPERATOR_NAMES, STATS_OPERATOR_NAMES } from "./processing-operators.js";
|
|
3
4
|
import { responseProcessingTemplateKind, } from "./processing-templates.js";
|
|
4
5
|
import { isBaseType, isBooleanAttribute, isFiniteNumber, isInteger, } from "./validation-primitives.js";
|
|
@@ -298,6 +299,10 @@ function validateExpressionReferences(expression, responses, variables, diagnost
|
|
|
298
299
|
if (expression.type === "equalRounded") {
|
|
299
300
|
validateRounding("qti-equal-rounded", expression.roundingMode, expression.figures, diagnostics, expression.source);
|
|
300
301
|
}
|
|
302
|
+
if (expression.type === "anyN") {
|
|
303
|
+
validateAnyNBound("min", expression.min, responses, variables, diagnostics, expression.source);
|
|
304
|
+
validateAnyNBound("max", expression.max, responses, variables, diagnostics, expression.source);
|
|
305
|
+
}
|
|
301
306
|
if (expression.type === "mathConstant" && !mathConstantNames.has(expression.name)) {
|
|
302
307
|
diagnostics.push({
|
|
303
308
|
code: "processing.mathConstant.name",
|
|
@@ -325,6 +330,29 @@ function validateExpressionReferences(expression, responses, variables, diagnost
|
|
|
325
330
|
source: expression.source,
|
|
326
331
|
});
|
|
327
332
|
}
|
|
333
|
+
if ((expression.type === "sum" ||
|
|
334
|
+
expression.type === "product" ||
|
|
335
|
+
expression.type === "min" ||
|
|
336
|
+
expression.type === "max") &&
|
|
337
|
+
expression.expressions.length === 0) {
|
|
338
|
+
diagnostics.push({
|
|
339
|
+
code: "processing.numeric.arity",
|
|
340
|
+
severity: "error",
|
|
341
|
+
message: `qti-${expression.type} requires at least one child expression.`,
|
|
342
|
+
path: expression.source?.path,
|
|
343
|
+
source: expression.source,
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
if (expression.type === "statsOperator" &&
|
|
347
|
+
(expression.expressions ?? [expression.expression]).length !== 1) {
|
|
348
|
+
diagnostics.push({
|
|
349
|
+
code: "processing.statsOperator.arity",
|
|
350
|
+
severity: "error",
|
|
351
|
+
message: "qti-stats-operator requires exactly one child expression.",
|
|
352
|
+
path: expression.source?.path,
|
|
353
|
+
source: expression.source,
|
|
354
|
+
});
|
|
355
|
+
}
|
|
328
356
|
if (expression.type === "repeat") {
|
|
329
357
|
validateRepeatExpression(expression, variables, diagnostics);
|
|
330
358
|
}
|
|
@@ -363,8 +391,29 @@ function validateRounding(qtiName, roundingMode, figures, diagnostics, source) {
|
|
|
363
391
|
}
|
|
364
392
|
}
|
|
365
393
|
function validateRepeatExpression(expression, variables, diagnostics) {
|
|
366
|
-
if (isInteger(expression.numberRepeats))
|
|
394
|
+
if (isInteger(expression.numberRepeats)) {
|
|
395
|
+
const repeats = BigInt(expression.numberRepeats);
|
|
396
|
+
if (repeats < 0n) {
|
|
397
|
+
diagnostics.push(repeatCountDiagnostic(expression));
|
|
398
|
+
return;
|
|
399
|
+
}
|
|
400
|
+
const minimumPerRepeat = minimumProducedElements(expression.expressions);
|
|
401
|
+
if (repeats > BigInt(MAX_QTI_REPEAT_RESULT_ELEMENTS) ||
|
|
402
|
+
repeats * BigInt(minimumPerRepeat) > BigInt(MAX_QTI_REPEAT_RESULT_ELEMENTS)) {
|
|
403
|
+
diagnostics.push({
|
|
404
|
+
code: "processing.repeat.limit",
|
|
405
|
+
severity: "error",
|
|
406
|
+
message: `qti-repeat cannot exceed ${MAX_QTI_REPEAT_RESULT_ELEMENTS} iterations or produced elements.`,
|
|
407
|
+
path: expression.source?.path,
|
|
408
|
+
source: expression.source,
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
return;
|
|
412
|
+
}
|
|
413
|
+
if (Number.isFinite(Number(expression.numberRepeats))) {
|
|
414
|
+
diagnostics.push(repeatCountDiagnostic(expression));
|
|
367
415
|
return;
|
|
416
|
+
}
|
|
368
417
|
validateProcessingIdentifier(expression.numberRepeats, "processing.repeat.numberRepeats", expression.source, diagnostics);
|
|
369
418
|
if (expression.numberRepeats && !variables.has(expression.numberRepeats)) {
|
|
370
419
|
diagnostics.push({
|
|
@@ -376,6 +425,81 @@ function validateRepeatExpression(expression, variables, diagnostics) {
|
|
|
376
425
|
});
|
|
377
426
|
}
|
|
378
427
|
}
|
|
428
|
+
function validateAnyNBound(attribute, value, responses, variables, diagnostics, source) {
|
|
429
|
+
if (value.length === 0) {
|
|
430
|
+
diagnostics.push({
|
|
431
|
+
code: `processing.anyN.${attribute}.required`,
|
|
432
|
+
severity: "error",
|
|
433
|
+
message: `qti-any-n requires ${attribute}.`,
|
|
434
|
+
path: source?.path,
|
|
435
|
+
source,
|
|
436
|
+
});
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
if (isInteger(value))
|
|
440
|
+
return;
|
|
441
|
+
if (Number.isFinite(Number(value))) {
|
|
442
|
+
diagnostics.push({
|
|
443
|
+
code: `processing.anyN.${attribute}.integer`,
|
|
444
|
+
severity: "error",
|
|
445
|
+
message: `qti-any-n ${attribute} must be an integer or a declared variable.`,
|
|
446
|
+
path: source?.path,
|
|
447
|
+
source,
|
|
448
|
+
});
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
451
|
+
if (!variables.has(value) || responses.has(value)) {
|
|
452
|
+
diagnostics.push({
|
|
453
|
+
code: `processing.anyN.${attribute}.reference`,
|
|
454
|
+
severity: "error",
|
|
455
|
+
message: `qti-any-n ${attribute} references missing template or outcome variable ${value}.`,
|
|
456
|
+
path: source?.path,
|
|
457
|
+
source,
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
function repeatCountDiagnostic(expression) {
|
|
462
|
+
return {
|
|
463
|
+
code: "processing.repeat.numberRepeats",
|
|
464
|
+
severity: "error",
|
|
465
|
+
message: "qti-repeat requires a non-negative integer or a declared variable.",
|
|
466
|
+
path: expression.source?.path,
|
|
467
|
+
source: expression.source,
|
|
468
|
+
};
|
|
469
|
+
}
|
|
470
|
+
function minimumProducedElements(expressions) {
|
|
471
|
+
let total = 0;
|
|
472
|
+
for (const expression of expressions) {
|
|
473
|
+
total = cappedElementCount(total + minimumExpressionElements(expression));
|
|
474
|
+
}
|
|
475
|
+
return total;
|
|
476
|
+
}
|
|
477
|
+
function minimumExpressionElements(expression) {
|
|
478
|
+
if (expression.type === "baseValue")
|
|
479
|
+
return 1;
|
|
480
|
+
if (expression.type === "multiple" || expression.type === "ordered") {
|
|
481
|
+
return minimumProducedElements(expression.expressions);
|
|
482
|
+
}
|
|
483
|
+
if (expression.type === "random") {
|
|
484
|
+
if (expression.values.length === 0)
|
|
485
|
+
return 0;
|
|
486
|
+
let minimum = MAX_QTI_REPEAT_RESULT_ELEMENTS + 1;
|
|
487
|
+
for (const value of expression.values) {
|
|
488
|
+
minimum = Math.min(minimum, minimumExpressionElements(value));
|
|
489
|
+
}
|
|
490
|
+
return minimum;
|
|
491
|
+
}
|
|
492
|
+
if (expression.type !== "repeat" || !/^\d+$/.test(expression.numberRepeats))
|
|
493
|
+
return 0;
|
|
494
|
+
const perRepeat = minimumProducedElements(expression.expressions);
|
|
495
|
+
const projected = BigInt(expression.numberRepeats) * BigInt(perRepeat);
|
|
496
|
+
return projected > BigInt(MAX_QTI_REPEAT_RESULT_ELEMENTS)
|
|
497
|
+
? MAX_QTI_REPEAT_RESULT_ELEMENTS + 1
|
|
498
|
+
: Number(projected);
|
|
499
|
+
}
|
|
500
|
+
function cappedElementCount(value) {
|
|
501
|
+
return Math.min(value, MAX_QTI_REPEAT_RESULT_ELEMENTS + 1);
|
|
502
|
+
}
|
|
379
503
|
function validateInsideExpression(expression, diagnostics) {
|
|
380
504
|
const rawShape = expression.attributes.shape;
|
|
381
505
|
if (rawShape === undefined) {
|