@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
package/README.md
CHANGED
|
@@ -6,6 +6,10 @@ This package handles dependency-free XML parsing, validation, response processin
|
|
|
6
6
|
support metadata, and serialized attempt state. It has zero third-party runtime dependencies,
|
|
7
7
|
does not render UI, and does not depend on a browser framework.
|
|
8
8
|
|
|
9
|
+
The public `escapeXmlText()` and `escapeXmlAttribute()` helpers support dependency-free XML
|
|
10
|
+
serialization. Use the attribute helper only for values inside double-quoted attributes; it leaves
|
|
11
|
+
apostrophes literal while additionally escaping double quotes.
|
|
12
|
+
|
|
9
13
|
## Install
|
|
10
14
|
|
|
11
15
|
```sh
|
|
@@ -48,6 +52,19 @@ store(state);
|
|
|
48
52
|
const resumed = createItemSession(parsed.document, state, { randomSeed: "different-seed" });
|
|
49
53
|
```
|
|
50
54
|
|
|
55
|
+
For availability safety, one `qti-repeat` expression can produce at most
|
|
56
|
+
`MAX_QTI_REPEAT_RESULT_ELEMENTS` (10,000) scalar values. Literal counts that necessarily exceed the
|
|
57
|
+
limit are authoring errors. Variable counts are checked at evaluation time; invalid or excessive
|
|
58
|
+
counts return `null` without a partial container or console output.
|
|
59
|
+
|
|
60
|
+
The QTI 3.0.1 contracts for [`qti-sum`](https://www.imsglobal.org/sites/default/files/spec/qti/v3/info/index.html#OpSum),
|
|
61
|
+
[`qti-product`](https://www.imsglobal.org/sites/default/files/spec/qti/v3/info/index.html#OpProduct),
|
|
62
|
+
[`qti-min`](https://www.imsglobal.org/sites/default/files/spec/qti/v3/info/index.html#OpMin), and
|
|
63
|
+
[`qti-max`](https://www.imsglobal.org/sites/default/files/spec/qti/v3/info/index.html#OpMax) require
|
|
64
|
+
at least one child; [`qti-stats-operator`](https://www.imsglobal.org/sites/default/files/spec/qti/v3/info/index.html#OpStatsOp)
|
|
65
|
+
requires exactly one. The information model does not specify statistics for an empty numeric
|
|
66
|
+
container, so the core conservatively returns `null` for that case.
|
|
67
|
+
|
|
51
68
|
Persist the returned `qti3.attempt-state.v1` state for resume. Once an attempt exists,
|
|
52
69
|
saved `templateValues` are authoritative; they are restored before generated correct
|
|
53
70
|
responses are derived, so resuming does not depend on the original seed.
|
|
@@ -202,8 +219,10 @@ console.log(materialized.outcomeVariables);
|
|
|
202
219
|
these dispositions to product-specific finalization statuses, grading queues, result
|
|
203
220
|
aggregation, and external exports.
|
|
204
221
|
|
|
205
|
-
|
|
206
|
-
|
|
222
|
+
The `qti3 score` and `qti3 prepare-delivery` CLI commands expose file-oriented server scoring and
|
|
223
|
+
candidate-safe delivery preparation. Their response and state JSON files are server-trusted inputs,
|
|
224
|
+
not raw browser submissions. Secure adaptive turn handling remains a library API for hosts that
|
|
225
|
+
manage the versioned attempt-state contract.
|
|
207
226
|
|
|
208
227
|
### Secure adaptive turns
|
|
209
228
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attempt-state.d.ts","sourceRoot":"","sources":["../src/attempt-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAGjB,WAAW,EAKZ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"attempt-state.d.ts","sourceRoot":"","sources":["../src/attempt-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAGjB,WAAW,EAKZ,MAAM,YAAY,CAAC;AAcpB,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAE9E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,iBAAiB,CAG1F;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,iBAAiB,GAAG,SAAS,GACxC,IAAI,CA0DN"}
|
package/dist/attempt-state.js
CHANGED
|
@@ -2,6 +2,7 @@ import { ATTEMPT_STATE_SCHEMA, COMPLETION_COMPLETED, COMPLETION_NOT_ATTEMPTED, C
|
|
|
2
2
|
import { isQtiPortableCustomStateValue, isQtiValue, qtiValueToString } from "./value-format.js";
|
|
3
3
|
import { parseXmlBoolean } from "./parser-values.js";
|
|
4
4
|
import { isRecordValue } from "./processing-values.js";
|
|
5
|
+
import { parseQtiSliderDefinition, parseQtiSliderValue } from "./slider-definition.js";
|
|
5
6
|
import { isPair, isPoint } from "./validation-primitives.js";
|
|
6
7
|
export function isQtiAttemptStateV1(value) {
|
|
7
8
|
return attemptStateErrors(value).length === 0;
|
|
@@ -40,6 +41,7 @@ export function assertCompatiblePriorState(document, priorState) {
|
|
|
40
41
|
for (const declaration of document.item.responseDeclarations) {
|
|
41
42
|
assertRestoredValueMatchesDeclaration("response", declaration, priorState.responses);
|
|
42
43
|
}
|
|
44
|
+
assertRestoredSliderResponses(document, priorState.responses);
|
|
43
45
|
for (const declaration of document.item.outcomeDeclarations) {
|
|
44
46
|
assertRestoredValueMatchesDeclaration("outcome", declaration, priorState.outcomes);
|
|
45
47
|
}
|
|
@@ -55,6 +57,22 @@ export function assertCompatiblePriorState(document, priorState) {
|
|
|
55
57
|
throw new Error(`Cannot restore unsupported completionStatus ${qtiValueToString(completionStatus)}.`);
|
|
56
58
|
}
|
|
57
59
|
}
|
|
60
|
+
function assertRestoredSliderResponses(document, responses) {
|
|
61
|
+
for (const interaction of document.item.interactions) {
|
|
62
|
+
if (interaction.type !== "slider" || !interaction.responseIdentifier)
|
|
63
|
+
continue;
|
|
64
|
+
const restoredValue = responses[interaction.responseIdentifier];
|
|
65
|
+
if (restoredValue === undefined || restoredValue === null)
|
|
66
|
+
continue;
|
|
67
|
+
const definition = parseQtiSliderDefinition(interaction);
|
|
68
|
+
if (!definition.ok)
|
|
69
|
+
continue;
|
|
70
|
+
const parsedValue = parseQtiSliderValue(restoredValue, definition.value);
|
|
71
|
+
if (parsedValue.ok)
|
|
72
|
+
continue;
|
|
73
|
+
throw new Error(`Cannot restore response ${interaction.responseIdentifier}: value ${qtiValueToString(restoredValue)} is not in the authored slider domain.`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
58
76
|
function assertKnownStateIdentifiers(kind, record, allowed) {
|
|
59
77
|
const unknown = Object.keys(record).find((identifier) => !allowed.has(identifier));
|
|
60
78
|
if (unknown)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attempt-state.js","sourceRoot":"","sources":["../src/attempt-state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attempt-state.js","sourceRoot":"","sources":["../src/attempt-state.ts"],"names":[],"mappings":"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"}
|
package/dist/content-text.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { QtiChoice, QtiContentNode, QtiSourceLocation } from "./types.js";
|
|
2
|
+
import type { XmlNode } from "./xml.js";
|
|
2
3
|
export interface FlatTextFromContentOptions {
|
|
3
4
|
excludeAnnotations?: boolean;
|
|
5
|
+
interactionText?: ((interactionIndex: number) => string) | undefined;
|
|
4
6
|
}
|
|
5
7
|
export declare function normalizeFlatText(text: string): string;
|
|
6
8
|
/**
|
|
@@ -10,5 +12,7 @@ export declare function normalizeFlatText(text: string): string;
|
|
|
10
12
|
*/
|
|
11
13
|
export declare function appendContentTextNode(content: QtiContentNode[], text: string, source?: QtiSourceLocation): void;
|
|
12
14
|
export declare function flatTextFromContent(nodes: QtiContentNode[], options?: FlatTextFromContentOptions): string;
|
|
15
|
+
/** Flatten rendered XML text without inventing separators at inline element boundaries. */
|
|
16
|
+
export declare function visibleTextContent(node: XmlNode): string;
|
|
13
17
|
export declare function choiceAccessibleLabel(choice: QtiChoice | undefined, fallbackIdentifier?: string): string;
|
|
14
18
|
//# sourceMappingURL=content-text.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-text.d.ts","sourceRoot":"","sources":["../src/content-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"content-text.d.ts","sourceRoot":"","sources":["../src/content-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,0BAA0B;IACzC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;CACtE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,cAAc,EAAE,EACzB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,iBAAiB,GACzB,IAAI,CAGN;AAOD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,GAAE,0BAA+B,GACvC,MAAM,CAER;AAmED,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAExD;AAwFD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,CAQR"}
|
package/dist/content-text.js
CHANGED
|
@@ -17,10 +17,10 @@ function isIndentationWhitespace(text) {
|
|
|
17
17
|
return text.trim().length === 0 && text.includes("\n");
|
|
18
18
|
}
|
|
19
19
|
export function flatTextFromContent(nodes, options = {}) {
|
|
20
|
-
|
|
21
|
-
return normalizeFlatText(nodes.map((node) => flatTextFromContentNode(node, excludeAnnotations)).join(" "));
|
|
20
|
+
return normalizeFlatText(nodes.map((node) => flatTextFromContentNode(node, options)).join(""));
|
|
22
21
|
}
|
|
23
|
-
function flatTextFromContentNode(node,
|
|
22
|
+
function flatTextFromContentNode(node, options) {
|
|
23
|
+
const excludeAnnotations = options.excludeAnnotations ?? false;
|
|
24
24
|
switch (node.kind) {
|
|
25
25
|
case "text":
|
|
26
26
|
return node.text;
|
|
@@ -36,20 +36,123 @@ function flatTextFromContentNode(node, excludeAnnotations) {
|
|
|
36
36
|
if (node.qtiName === "object" && node.attributes["object-label"]) {
|
|
37
37
|
return node.attributes["object-label"];
|
|
38
38
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
if (node.qtiName === "math") {
|
|
40
|
+
return withVisibleBoundary(node.qtiName, node.children
|
|
41
|
+
.map((child) => flatMathText(child, excludeAnnotations))
|
|
42
|
+
.filter(Boolean)
|
|
43
|
+
.join(" "));
|
|
44
|
+
}
|
|
45
|
+
return withVisibleBoundary(node.qtiName, node.children.map((child) => flatTextFromContentNode(child, options)).join(""));
|
|
42
46
|
case "feedback":
|
|
43
|
-
return node.children
|
|
44
|
-
.map((child) => flatTextFromContentNode(child, excludeAnnotations))
|
|
45
|
-
.join(" ");
|
|
47
|
+
return withVisibleBoundary(node.feedbackType === "block" ? "qti-feedback-block" : "qti-feedback-inline", node.children.map((child) => flatTextFromContentNode(child, options)).join(""));
|
|
46
48
|
case "interaction":
|
|
49
|
+
return options.interactionText?.(node.interactionIndex) ?? "";
|
|
47
50
|
case "printedVariable":
|
|
48
51
|
return "";
|
|
49
52
|
default:
|
|
50
53
|
return assertNever(node);
|
|
51
54
|
}
|
|
52
55
|
}
|
|
56
|
+
function flatMathText(node, excludeAnnotations) {
|
|
57
|
+
if (node.kind === "element" &&
|
|
58
|
+
excludeAnnotations &&
|
|
59
|
+
(node.qtiName === "annotation" || node.qtiName === "annotation-xml")) {
|
|
60
|
+
return "";
|
|
61
|
+
}
|
|
62
|
+
if (node.kind === "text")
|
|
63
|
+
return node.text;
|
|
64
|
+
if (node.kind === "element" || node.kind === "feedback") {
|
|
65
|
+
return node.children
|
|
66
|
+
.map((child) => flatMathText(child, excludeAnnotations))
|
|
67
|
+
.filter(Boolean)
|
|
68
|
+
.join(" ");
|
|
69
|
+
}
|
|
70
|
+
return "";
|
|
71
|
+
}
|
|
72
|
+
/** Flatten rendered XML text without inventing separators at inline element boundaries. */
|
|
73
|
+
export function visibleTextContent(node) {
|
|
74
|
+
return normalizeFlatText(visibleTextFromXmlNode(node));
|
|
75
|
+
}
|
|
76
|
+
function visibleTextFromXmlNode(node) {
|
|
77
|
+
const accessibleLabel = accessibleXmlLabel(node);
|
|
78
|
+
const text = accessibleLabel ??
|
|
79
|
+
(node.localName === "math"
|
|
80
|
+
? flatMathXmlText(node)
|
|
81
|
+
: node.content
|
|
82
|
+
.map((entry) => (typeof entry === "string" ? entry : visibleTextFromXmlNode(entry)))
|
|
83
|
+
.join(""));
|
|
84
|
+
return withVisibleBoundary(node.localName, text);
|
|
85
|
+
}
|
|
86
|
+
function flatMathXmlText(node) {
|
|
87
|
+
return node.content
|
|
88
|
+
.map((entry) => typeof entry === "string"
|
|
89
|
+
? entry
|
|
90
|
+
: entry.localName === "annotation" || entry.localName === "annotation-xml"
|
|
91
|
+
? ""
|
|
92
|
+
: flatMathXmlText(entry))
|
|
93
|
+
.filter(Boolean)
|
|
94
|
+
.join(" ");
|
|
95
|
+
}
|
|
96
|
+
function accessibleXmlLabel(node) {
|
|
97
|
+
if (node.localName === "math" && node.attributes.alttext)
|
|
98
|
+
return node.attributes.alttext;
|
|
99
|
+
if (node.localName === "img" && node.attributes.alt)
|
|
100
|
+
return node.attributes.alt;
|
|
101
|
+
if (node.localName === "object" && node.attributes["object-label"]) {
|
|
102
|
+
return node.attributes["object-label"];
|
|
103
|
+
}
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
function withVisibleBoundary(qtiName, text) {
|
|
107
|
+
return visibleBoundaryNames.has(qtiName) ? ` ${text} ` : text;
|
|
108
|
+
}
|
|
109
|
+
const visibleBoundaryNames = new Set([
|
|
110
|
+
"address",
|
|
111
|
+
"article",
|
|
112
|
+
"aside",
|
|
113
|
+
"blockquote",
|
|
114
|
+
"br",
|
|
115
|
+
"dd",
|
|
116
|
+
"div",
|
|
117
|
+
"dl",
|
|
118
|
+
"dt",
|
|
119
|
+
"fieldset",
|
|
120
|
+
"figcaption",
|
|
121
|
+
"figure",
|
|
122
|
+
"footer",
|
|
123
|
+
"form",
|
|
124
|
+
"h1",
|
|
125
|
+
"h2",
|
|
126
|
+
"h3",
|
|
127
|
+
"h4",
|
|
128
|
+
"h5",
|
|
129
|
+
"h6",
|
|
130
|
+
"header",
|
|
131
|
+
"hgroup",
|
|
132
|
+
"hr",
|
|
133
|
+
"li",
|
|
134
|
+
"main",
|
|
135
|
+
"math",
|
|
136
|
+
"nav",
|
|
137
|
+
"ol",
|
|
138
|
+
"p",
|
|
139
|
+
"pre",
|
|
140
|
+
"qti-feedback-block",
|
|
141
|
+
"qti-gap-img",
|
|
142
|
+
"qti-gap-text",
|
|
143
|
+
"qti-inline-choice",
|
|
144
|
+
"qti-simple-associable-choice",
|
|
145
|
+
"qti-simple-choice",
|
|
146
|
+
"section",
|
|
147
|
+
"table",
|
|
148
|
+
"tbody",
|
|
149
|
+
"td",
|
|
150
|
+
"tfoot",
|
|
151
|
+
"th",
|
|
152
|
+
"thead",
|
|
153
|
+
"tr",
|
|
154
|
+
"ul",
|
|
155
|
+
]);
|
|
53
156
|
export function choiceAccessibleLabel(choice, fallbackIdentifier) {
|
|
54
157
|
if (!choice)
|
|
55
158
|
return fallbackIdentifier ?? "";
|
package/dist/content-text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-text.js","sourceRoot":"","sources":["../src/content-text.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"content-text.js","sourceRoot":"","sources":["../src/content-text.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,11 @@ export { decodeUtf8, discoverQtiPackageContentAssets, normalizePackagePath, QTI_
|
|
|
12
12
|
export { detectPackageMediaType } from "./qti-package-assets.js";
|
|
13
13
|
export { parseQtiXml } from "./parser.js";
|
|
14
14
|
export { numericTuple3, numericTuple4, parseXmlBoolean } from "./parser-values.js";
|
|
15
|
+
export { escapeXmlAttribute, escapeXmlText } from "./xml.js";
|
|
16
|
+
export { applyQtiMediaPlaybackEvent, parseQtiMediaDefinition, QTI_MEDIA_RESTART_THRESHOLD_SECONDS, type QtiMediaDefinition, type QtiMediaDefinitionResult, type QtiMediaPlaybackEvent, type QtiMediaPlaybackResult, type QtiMediaPlaySession, } from "./media-definition.js";
|
|
17
|
+
export { parseQtiSliderDefinition, parseQtiSliderValue, qtiSliderDiscreteValue, qtiSliderRatio, snapQtiSliderValue, type QtiSliderDefinition, type QtiSliderDefinitionResult, type QtiSliderOrientation, type QtiSliderStep, type QtiSliderValueFailureReason, type QtiSliderValueResult, } from "./slider-definition.js";
|
|
15
18
|
export { collectQtiResponseProcessingExpressions } from "./processing-expression-collection.js";
|
|
19
|
+
export { MAX_QTI_REPEAT_RESULT_ELEMENTS } from "./processing-limits.js";
|
|
16
20
|
export { isConformanceParseDiagnostic } from "./parse-diagnostics.js";
|
|
17
21
|
export { scoreQtiItemServerSide, type QtiServerScoringInput, type QtiServerScoringResponseInput, type QtiServerScoringResult, } from "./server-scoring.js";
|
|
18
22
|
export { associationMaximumResponses, choiceMatchLimitExceeded, choiceMatchMaximum, directedPairChoiceUseCount, matchMaxDiagnostics, maximumAllowedResponses, maximumMediaPlays, maximumResponseDiagnostic, mediaPlayCount, minimumMediaPlays, minimumRequiredResponses, orderSubsetLimitsActive, parseUnlimitedMaximum, requiredResponseDiagnostic, responseCount, responseIsEmpty, responseLimitAttribute, responseValidationPolicy, wouldExceedChoiceMatchMaximum, type DirectedPairUseSide, type QtiResponseValidationPolicy, } from "./response-validation-policy.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,11 @@ export { decodeUtf8, discoverQtiPackageContentAssets, normalizePackagePath, QTI_
|
|
|
12
12
|
export { detectPackageMediaType } from "./qti-package-assets.js";
|
|
13
13
|
export { parseQtiXml } from "./parser.js";
|
|
14
14
|
export { numericTuple3, numericTuple4, parseXmlBoolean } from "./parser-values.js";
|
|
15
|
+
export { escapeXmlAttribute, escapeXmlText } from "./xml.js";
|
|
16
|
+
export { applyQtiMediaPlaybackEvent, parseQtiMediaDefinition, QTI_MEDIA_RESTART_THRESHOLD_SECONDS, } from "./media-definition.js";
|
|
17
|
+
export { parseQtiSliderDefinition, parseQtiSliderValue, qtiSliderDiscreteValue, qtiSliderRatio, snapQtiSliderValue, } from "./slider-definition.js";
|
|
15
18
|
export { collectQtiResponseProcessingExpressions } from "./processing-expression-collection.js";
|
|
19
|
+
export { MAX_QTI_REPEAT_RESULT_ELEMENTS } from "./processing-limits.js";
|
|
16
20
|
export { isConformanceParseDiagnostic } from "./parse-diagnostics.js";
|
|
17
21
|
export { scoreQtiItemServerSide, } from "./server-scoring.js";
|
|
18
22
|
export { associationMaximumResponses, choiceMatchLimitExceeded, choiceMatchMaximum, directedPairChoiceUseCount, matchMaxDiagnostics, maximumAllowedResponses, maximumMediaPlays, maximumResponseDiagnostic, mediaPlayCount, minimumMediaPlays, minimumRequiredResponses, orderSubsetLimitsActive, parseUnlimitedMaximum, requiredResponseDiagnostic, responseCount, responseIsEmpty, responseLimitAttribute, responseValidationPolicy, wouldExceedChoiceMatchMaximum, } from "./response-validation-policy.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { QtiDiagnostic, QtiInteraction } from "./types.js";
|
|
2
|
+
/** A validated media play-count domain and native playback policy. */
|
|
3
|
+
export interface QtiMediaDefinition {
|
|
4
|
+
readonly minPlays: number;
|
|
5
|
+
readonly maxPlays: number | undefined;
|
|
6
|
+
readonly autostart: boolean;
|
|
7
|
+
readonly nativeLoop: boolean;
|
|
8
|
+
}
|
|
9
|
+
/** The typed result of refining raw media interaction attributes. */
|
|
10
|
+
export type QtiMediaDefinitionResult = {
|
|
11
|
+
readonly ok: true;
|
|
12
|
+
readonly value: QtiMediaDefinition;
|
|
13
|
+
} | {
|
|
14
|
+
readonly ok: false;
|
|
15
|
+
readonly diagnostics: readonly QtiDiagnostic[];
|
|
16
|
+
};
|
|
17
|
+
/** Seconds from the start within which a play event counts as a new play experience. */
|
|
18
|
+
export declare const QTI_MEDIA_RESTART_THRESHOLD_SECONDS = 0.25;
|
|
19
|
+
/** The play-experience session used to decide whether a native media event counts. */
|
|
20
|
+
export type QtiMediaPlaySession = {
|
|
21
|
+
readonly status: "idle";
|
|
22
|
+
readonly playCount: number;
|
|
23
|
+
} | {
|
|
24
|
+
readonly status: "playing";
|
|
25
|
+
readonly playCount: number;
|
|
26
|
+
} | {
|
|
27
|
+
readonly status: "ended";
|
|
28
|
+
readonly playCount: number;
|
|
29
|
+
};
|
|
30
|
+
/** A native media event projected into the QTI play-count machine. */
|
|
31
|
+
export type QtiMediaPlaybackEvent = {
|
|
32
|
+
readonly kind: "play";
|
|
33
|
+
readonly currentTime: number;
|
|
34
|
+
} | {
|
|
35
|
+
readonly kind: "ended";
|
|
36
|
+
} | {
|
|
37
|
+
readonly kind: "seeked";
|
|
38
|
+
readonly currentTime: number;
|
|
39
|
+
readonly paused: boolean;
|
|
40
|
+
};
|
|
41
|
+
/** The session update and any player-side block from one playback event. */
|
|
42
|
+
export type QtiMediaPlaybackResult = {
|
|
43
|
+
readonly kind: "applied";
|
|
44
|
+
readonly session: QtiMediaPlaySession;
|
|
45
|
+
} | {
|
|
46
|
+
readonly kind: "blocked";
|
|
47
|
+
readonly session: QtiMediaPlaySession;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Refines raw QTI media attributes into the play-count domain shared by validation and players.
|
|
51
|
+
*/
|
|
52
|
+
export declare function parseQtiMediaDefinition(interaction: QtiInteraction): QtiMediaDefinitionResult;
|
|
53
|
+
/** Applies one native media event to the QTI play-experience session. */
|
|
54
|
+
export declare function applyQtiMediaPlaybackEvent(session: QtiMediaPlaySession, event: QtiMediaPlaybackEvent, maxPlays: number | undefined): QtiMediaPlaybackResult;
|
|
55
|
+
//# sourceMappingURL=media-definition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-definition.d.ts","sourceRoot":"","sources":["../src/media-definition.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGhE,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED,qEAAqE;AACrE,MAAM,MAAM,wBAAwB,GAChC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,CAAC;AAE3E,wFAAwF;AACxF,eAAO,MAAM,mCAAmC,OAAO,CAAC;AAExD,sFAAsF;AACtF,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,sEAAsE;AACtE,MAAM,MAAM,qBAAqB,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAExF,4EAA4E;AAC5E,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,GACnE;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAuDxE;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,cAAc,GAAG,wBAAwB,CA+B7F;AAgCD,yEAAyE;AACzE,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,sBAAsB,CAWxB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { assertNever } from "./assert-never.js";
|
|
2
|
+
import { parseXmlBoolean } from "./parser-values.js";
|
|
3
|
+
import { isNonNegativeInteger } from "./validation-primitives.js";
|
|
4
|
+
/** Seconds from the start within which a play event counts as a new play experience. */
|
|
5
|
+
export const QTI_MEDIA_RESTART_THRESHOLD_SECONDS = 0.25;
|
|
6
|
+
function diagnostic(interaction, code, message) {
|
|
7
|
+
return {
|
|
8
|
+
code,
|
|
9
|
+
severity: "error",
|
|
10
|
+
message,
|
|
11
|
+
path: interaction.source?.path,
|
|
12
|
+
source: interaction.source,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function optionalBoolean(interaction, attribute, diagnostics) {
|
|
16
|
+
const raw = interaction.attributes[attribute];
|
|
17
|
+
if (raw === undefined)
|
|
18
|
+
return false;
|
|
19
|
+
const value = parseXmlBoolean(raw);
|
|
20
|
+
if (value !== undefined)
|
|
21
|
+
return value;
|
|
22
|
+
diagnostics.push(diagnostic(interaction, "interaction.booleanAttribute", `${interaction.qtiName} requires boolean ${attribute}, got ${raw}.`));
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
function optionalNonNegativeInteger(interaction, attribute, diagnostics) {
|
|
26
|
+
const raw = interaction.attributes[attribute];
|
|
27
|
+
if (raw === undefined)
|
|
28
|
+
return undefined;
|
|
29
|
+
if (!isNonNegativeInteger(raw)) {
|
|
30
|
+
diagnostics.push(diagnostic(interaction, "interaction.integerAttribute", `${interaction.qtiName} requires non-negative integer ${attribute}, got ${raw}.`));
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
return Number(raw);
|
|
34
|
+
}
|
|
35
|
+
function atMaximumPlays(session, maxPlays) {
|
|
36
|
+
return maxPlays !== undefined && session.playCount >= maxPlays;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Refines raw QTI media attributes into the play-count domain shared by validation and players.
|
|
40
|
+
*/
|
|
41
|
+
export function parseQtiMediaDefinition(interaction) {
|
|
42
|
+
const diagnostics = [];
|
|
43
|
+
const minPlaysAttribute = optionalNonNegativeInteger(interaction, "min-plays", diagnostics);
|
|
44
|
+
const maxPlaysAttribute = optionalNonNegativeInteger(interaction, "max-plays", diagnostics);
|
|
45
|
+
const autostart = optionalBoolean(interaction, "autostart", diagnostics);
|
|
46
|
+
const loop = optionalBoolean(interaction, "loop", diagnostics);
|
|
47
|
+
const required = parseXmlBoolean(interaction.attributes.required) === true;
|
|
48
|
+
const maxPlays = maxPlaysAttribute === undefined || maxPlaysAttribute <= 0 ? undefined : maxPlaysAttribute;
|
|
49
|
+
if (minPlaysAttribute !== undefined && maxPlays !== undefined && minPlaysAttribute > maxPlays) {
|
|
50
|
+
diagnostics.push(diagnostic(interaction, "interaction.minMax", `${interaction.qtiName} requires min-plays to be less than or equal to max-plays, unless max-plays is 0 for unlimited.`));
|
|
51
|
+
}
|
|
52
|
+
if (diagnostics.length > 0)
|
|
53
|
+
return { ok: false, diagnostics };
|
|
54
|
+
return {
|
|
55
|
+
ok: true,
|
|
56
|
+
value: {
|
|
57
|
+
minPlays: minPlaysAttribute ?? (required ? 1 : 0),
|
|
58
|
+
maxPlays,
|
|
59
|
+
autostart,
|
|
60
|
+
nativeLoop: loop && maxPlays === undefined,
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function applyPlayEvent(session, event, maxPlays) {
|
|
65
|
+
if (session.status !== "playing" && atMaximumPlays(session, maxPlays)) {
|
|
66
|
+
return { kind: "blocked", session };
|
|
67
|
+
}
|
|
68
|
+
const counts = session.status === "ended" ||
|
|
69
|
+
(session.status === "idle" && event.currentTime <= QTI_MEDIA_RESTART_THRESHOLD_SECONDS);
|
|
70
|
+
return {
|
|
71
|
+
kind: "applied",
|
|
72
|
+
session: {
|
|
73
|
+
status: "playing",
|
|
74
|
+
playCount: session.playCount + (counts ? 1 : 0),
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function applySeekedEvent(session, event) {
|
|
79
|
+
if (!event.paused || event.currentTime > QTI_MEDIA_RESTART_THRESHOLD_SECONDS) {
|
|
80
|
+
return { kind: "applied", session };
|
|
81
|
+
}
|
|
82
|
+
return { kind: "applied", session: { status: "idle", playCount: session.playCount } };
|
|
83
|
+
}
|
|
84
|
+
/** Applies one native media event to the QTI play-experience session. */
|
|
85
|
+
export function applyQtiMediaPlaybackEvent(session, event, maxPlays) {
|
|
86
|
+
switch (event.kind) {
|
|
87
|
+
case "play":
|
|
88
|
+
return applyPlayEvent(session, event, maxPlays);
|
|
89
|
+
case "ended":
|
|
90
|
+
return { kind: "applied", session: { status: "ended", playCount: session.playCount } };
|
|
91
|
+
case "seeked":
|
|
92
|
+
return applySeekedEvent(session, event);
|
|
93
|
+
default:
|
|
94
|
+
return assertNever(event);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=media-definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-definition.js","sourceRoot":"","sources":["../src/media-definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { QtiOutcomeDeclaration, QtiResponseDeclaration, QtiTemplateDeclaration } from "./types.js";
|
|
1
|
+
import type { QtiDiagnostic, QtiOutcomeDeclaration, QtiResponseDeclaration, QtiTemplateDeclaration } from "./types.js";
|
|
2
2
|
import { type XmlNode } from "./xml.js";
|
|
3
|
-
export declare function parseResponseDeclaration(node: XmlNode): QtiResponseDeclaration;
|
|
4
|
-
export declare function parseOutcomeDeclaration(node: XmlNode): QtiOutcomeDeclaration;
|
|
5
|
-
export declare function parseTemplateDeclaration(node: XmlNode): QtiTemplateDeclaration;
|
|
3
|
+
export declare function parseResponseDeclaration(node: XmlNode, diagnostics: QtiDiagnostic[]): QtiResponseDeclaration;
|
|
4
|
+
export declare function parseOutcomeDeclaration(node: XmlNode, diagnostics: QtiDiagnostic[]): QtiOutcomeDeclaration;
|
|
5
|
+
export declare function parseTemplateDeclaration(node: XmlNode, diagnostics: QtiDiagnostic[]): QtiTemplateDeclaration;
|
|
6
6
|
//# sourceMappingURL=parser-declarations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser-declarations.d.ts","sourceRoot":"","sources":["../src/parser-declarations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parser-declarations.d.ts","sourceRoot":"","sources":["../src/parser-declarations.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAEV,aAAa,EAEb,qBAAqB,EACrB,sBAAsB,EAEtB,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AAMpB,OAAO,EAA8B,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAEpE,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,aAAa,EAAE,GAC3B,sBAAsB,CA8BxB;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,aAAa,EAAE,GAC3B,qBAAqB,CAgBvB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,aAAa,EAAE,GAC3B,sBAAsB,CAexB"}
|