@longsightgroup/qti3-core 0.7.3 → 0.8.1
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 +41 -10
- package/dist/content-text.d.ts +7 -1
- package/dist/content-text.d.ts.map +1 -1
- package/dist/content-text.js +14 -0
- package/dist/content-text.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/package-xml.d.ts +12 -0
- package/dist/package-xml.d.ts.map +1 -0
- package/dist/package-xml.js +17 -0
- package/dist/package-xml.js.map +1 -0
- package/dist/parser-custom-interactions.d.ts +8 -0
- package/dist/parser-custom-interactions.d.ts.map +1 -0
- package/dist/parser-custom-interactions.js +178 -0
- package/dist/parser-custom-interactions.js.map +1 -0
- package/dist/parser-declarations.d.ts +6 -0
- package/dist/parser-declarations.d.ts.map +1 -0
- package/dist/parser-declarations.js +136 -0
- package/dist/parser-declarations.js.map +1 -0
- package/dist/parser-item-metadata.d.ts +9 -0
- package/dist/parser-item-metadata.d.ts.map +1 -0
- package/dist/parser-item-metadata.js +158 -0
- package/dist/parser-item-metadata.js.map +1 -0
- package/dist/parser-processing.d.ts +5 -0
- package/dist/parser-processing.d.ts.map +1 -0
- package/dist/parser-processing.js +642 -0
- package/dist/parser-processing.js.map +1 -0
- package/dist/parser-values.d.ts +8 -0
- package/dist/parser-values.d.ts.map +1 -0
- package/dist/parser-values.js +49 -0
- package/dist/parser-values.js.map +1 -0
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +15 -1083
- package/dist/parser.js.map +1 -1
- package/dist/processing-expression-tags.d.ts +56 -0
- package/dist/processing-expression-tags.d.ts.map +1 -0
- package/dist/processing-expression-tags.js +52 -0
- package/dist/processing-expression-tags.js.map +1 -0
- package/dist/processing-rules.d.ts +3 -0
- package/dist/processing-rules.d.ts.map +1 -0
- package/dist/processing-rules.js +10 -0
- package/dist/processing-rules.js.map +1 -0
- package/dist/serializer-processing-expressions.d.ts +8 -0
- package/dist/serializer-processing-expressions.d.ts.map +1 -0
- package/dist/serializer-processing-expressions.js +198 -0
- package/dist/serializer-processing-expressions.js.map +1 -0
- package/dist/serializer-processing-xml.d.ts +15 -0
- package/dist/serializer-processing-xml.d.ts.map +1 -0
- package/dist/serializer-processing-xml.js +46 -0
- package/dist/serializer-processing-xml.js.map +1 -0
- package/dist/serializer-processing.d.ts +8 -0
- package/dist/serializer-processing.d.ts.map +1 -0
- package/dist/serializer-processing.js +106 -0
- package/dist/serializer-processing.js.map +1 -0
- package/dist/shared-vocabulary-authoring.d.ts +52 -0
- package/dist/shared-vocabulary-authoring.d.ts.map +1 -0
- package/dist/shared-vocabulary-authoring.js +327 -0
- package/dist/shared-vocabulary-authoring.js.map +1 -0
- package/dist/shared-vocabulary-interaction-sets.d.ts +6 -0
- package/dist/shared-vocabulary-interaction-sets.d.ts.map +1 -0
- package/dist/shared-vocabulary-interaction-sets.js +23 -0
- package/dist/shared-vocabulary-interaction-sets.js.map +1 -0
- package/dist/shared-vocabulary-interaction-validation.d.ts +3 -0
- package/dist/shared-vocabulary-interaction-validation.d.ts.map +1 -0
- package/dist/shared-vocabulary-interaction-validation.js +99 -0
- package/dist/shared-vocabulary-interaction-validation.js.map +1 -0
- package/dist/shared-vocabulary-registry-validation.d.ts +5 -0
- package/dist/shared-vocabulary-registry-validation.d.ts.map +1 -0
- package/dist/shared-vocabulary-registry-validation.js +147 -0
- package/dist/shared-vocabulary-registry-validation.js.map +1 -0
- package/dist/shared-vocabulary-support.d.ts.map +1 -1
- package/dist/shared-vocabulary-support.js +160 -67
- package/dist/shared-vocabulary-support.js.map +1 -1
- package/dist/shared-vocabulary.d.ts +6 -0
- package/dist/shared-vocabulary.d.ts.map +1 -1
- package/dist/shared-vocabulary.js +12 -0
- package/dist/shared-vocabulary.js.map +1 -1
- package/dist/support.d.ts +4 -1
- package/dist/support.d.ts.map +1 -1
- package/dist/support.js +130 -0
- package/dist/support.js.map +1 -1
- package/dist/types.d.ts +32 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +29 -250
- package/dist/validation.js.map +1 -1
- package/dist/xml.d.ts +10 -0
- package/dist/xml.d.ts.map +1 -1
- package/dist/xml.js +321 -272
- package/dist/xml.js.map +1 -1
- package/package.json +1 -4
- package/src/content-text.ts +20 -1
- package/src/index.ts +68 -0
- package/src/interaction-test-fixtures.ts +44 -0
- package/src/package-xml.ts +30 -0
- package/src/parser-custom-interactions.ts +309 -0
- package/src/parser-declarations.ts +174 -0
- package/src/parser-item-metadata.ts +194 -0
- package/src/parser-processing.ts +701 -0
- package/src/parser-values.ts +61 -0
- package/src/parser.ts +36 -1227
- package/src/processing-expression-tags.ts +65 -0
- package/src/processing-rules.ts +11 -0
- package/src/serializer-processing-expressions.ts +456 -0
- package/src/serializer-processing-xml.ts +67 -0
- package/src/serializer-processing.fixtures.ts +469 -0
- package/src/serializer-processing.ts +196 -0
- package/src/shared-vocabulary-authoring.ts +438 -0
- package/src/shared-vocabulary-interaction-sets.ts +28 -0
- package/src/shared-vocabulary-interaction-validation.ts +143 -0
- package/src/shared-vocabulary-registry-validation.ts +210 -0
- package/src/shared-vocabulary-support.ts +200 -127
- package/src/shared-vocabulary.ts +18 -0
- package/src/support.ts +144 -0
- package/src/types.ts +42 -7
- package/src/validation.ts +33 -341
- package/src/xml.ts +376 -276
package/dist/xml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xml.js","sourceRoot":"","sources":["../src/xml.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"xml.js","sourceRoot":"","sources":["../src/xml.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@longsightgroup/qti3-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"description": "Framework-neutral TypeScript core for parsing, validating, scoring, and serializing QTI 3 assessment items.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"assessment",
|
|
@@ -44,8 +44,5 @@
|
|
|
44
44
|
"access": "public",
|
|
45
45
|
"registry": "https://registry.npmjs.org"
|
|
46
46
|
},
|
|
47
|
-
"dependencies": {
|
|
48
|
-
"stax-xml": "0.7.0"
|
|
49
|
-
},
|
|
50
47
|
"scripts": {}
|
|
51
48
|
}
|
package/src/content-text.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { QtiChoice, QtiContentNode } from "./types.js";
|
|
1
|
+
import type { QtiChoice, QtiContentNode, QtiSourceLocation } from "./types.js";
|
|
2
2
|
|
|
3
3
|
export interface FlatTextFromContentOptions {
|
|
4
4
|
excludeAnnotations?: boolean;
|
|
@@ -8,6 +8,25 @@ export function normalizeFlatText(text: string): string {
|
|
|
8
8
|
return text.replace(/\s+/g, " ").trim();
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Append parsed character data to QTI content. The XML layer keeps text verbatim in
|
|
13
|
+
* `XmlNode.content`; this helper drops block-layout indentation (whitespace-only segments
|
|
14
|
+
* that contain a newline) when building `QtiContentNode` trees.
|
|
15
|
+
*/
|
|
16
|
+
export function appendContentTextNode(
|
|
17
|
+
content: QtiContentNode[],
|
|
18
|
+
text: string,
|
|
19
|
+
source?: QtiSourceLocation,
|
|
20
|
+
): void {
|
|
21
|
+
if (text.length === 0 || isIndentationWhitespace(text)) return;
|
|
22
|
+
content.push({ kind: "text", text, source });
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** Block pretty-print noise such as `\n ` between sibling block elements, not inline spaces. */
|
|
26
|
+
function isIndentationWhitespace(text: string): boolean {
|
|
27
|
+
return text.trim().length === 0 && text.includes("\n");
|
|
28
|
+
}
|
|
29
|
+
|
|
11
30
|
export function flatTextFromContent(
|
|
12
31
|
nodes: QtiContentNode[],
|
|
13
32
|
options: FlatTextFromContentOptions = {},
|
package/src/index.ts
CHANGED
|
@@ -14,6 +14,11 @@ export {
|
|
|
14
14
|
type QtiDeliverySecurityFindingKind,
|
|
15
15
|
} from "./delivery-security.js";
|
|
16
16
|
export { compileQtiPatternMask, isValidQtiPatternMask } from "./pattern-mask.js";
|
|
17
|
+
export {
|
|
18
|
+
parseQtiPackageXmlTree,
|
|
19
|
+
type QtiPackageXmlNode,
|
|
20
|
+
type QtiPackageXmlTree,
|
|
21
|
+
} from "./package-xml.js";
|
|
17
22
|
export { parseQtiXml } from "./parser.js";
|
|
18
23
|
export {
|
|
19
24
|
scoreQtiItemServerSide,
|
|
@@ -21,6 +26,10 @@ export {
|
|
|
21
26
|
type QtiServerScoringResponseInput,
|
|
22
27
|
type QtiServerScoringResult,
|
|
23
28
|
} from "./server-scoring.js";
|
|
29
|
+
export {
|
|
30
|
+
serializeResponseProcessing,
|
|
31
|
+
type QtiSerializeResponseProcessingResult,
|
|
32
|
+
} from "./serializer-processing.js";
|
|
24
33
|
export {
|
|
25
34
|
createTextToSpeechTraversal,
|
|
26
35
|
parseQtiDataSsml,
|
|
@@ -52,8 +61,10 @@ export {
|
|
|
52
61
|
deprecatedInteractionSupport,
|
|
53
62
|
elementSupport,
|
|
54
63
|
getInteractionSupport,
|
|
64
|
+
interactionRegistryStatus,
|
|
55
65
|
interactionNameToType,
|
|
56
66
|
interactionSupport,
|
|
67
|
+
itemMetadataSupport,
|
|
57
68
|
processingSupport,
|
|
58
69
|
} from "./support.js";
|
|
59
70
|
export { sharedVocabularyClassSupport } from "./shared-vocabulary-support.js";
|
|
@@ -61,6 +72,34 @@ export {
|
|
|
61
72
|
findSharedVocabularyCoverageViolations,
|
|
62
73
|
type SharedVocabularyCoverageViolation,
|
|
63
74
|
} from "./shared-vocabulary-coverage-policy.js";
|
|
75
|
+
export {
|
|
76
|
+
describeSharedVocabularyPrecedence,
|
|
77
|
+
formatSharedVocabularyClassValueRange,
|
|
78
|
+
matchedSharedVocabularyClassNames,
|
|
79
|
+
parseClassValue,
|
|
80
|
+
parsePositiveNumber,
|
|
81
|
+
parseSharedVocabularyAttributes,
|
|
82
|
+
parseSharedVocabularyClasses,
|
|
83
|
+
serializeSharedVocabularyAttributes,
|
|
84
|
+
serializeSharedVocabularyClassNames,
|
|
85
|
+
sharedVocabularyClassNamesForField,
|
|
86
|
+
sharedVocabularyFieldById,
|
|
87
|
+
sharedVocabularyFieldsForInteraction,
|
|
88
|
+
sharedVocabularyFixedClassName,
|
|
89
|
+
sharedVocabularyInteractionFields,
|
|
90
|
+
type QtiSharedVocabularyAttributeValueType,
|
|
91
|
+
type QtiSharedVocabularyField,
|
|
92
|
+
type QtiSharedVocabularyFieldValue,
|
|
93
|
+
type QtiSharedVocabularyState,
|
|
94
|
+
type QtiSharedVocabularyStateValue,
|
|
95
|
+
} from "./shared-vocabulary-authoring.js";
|
|
96
|
+
export {
|
|
97
|
+
SHARED_VOCABULARY_CHOICE_AND_ORDER_INTERACTIONS,
|
|
98
|
+
SHARED_VOCABULARY_CHOICE_INTERACTIONS,
|
|
99
|
+
SHARED_VOCABULARY_CHOICES_LAYOUT_INTERACTIONS,
|
|
100
|
+
SHARED_VOCABULARY_MEDIA_INTERACTIONS,
|
|
101
|
+
SHARED_VOCABULARY_SELECTION_PRESENTATION_INTERACTIONS,
|
|
102
|
+
} from "./shared-vocabulary-interaction-sets.js";
|
|
64
103
|
export {
|
|
65
104
|
matrixCoverageFamilyForClass,
|
|
66
105
|
SHARED_VOCABULARY_CHOICE_WRITING_ORIENTATIONS,
|
|
@@ -101,11 +140,17 @@ export {
|
|
|
101
140
|
isSupportedInputWidthClassName,
|
|
102
141
|
isSupportedMediaPlayerControlsToken,
|
|
103
142
|
mediaPlayerControlsTokens,
|
|
143
|
+
SHARED_VOCABULARY_CHOICES_POSITIONS,
|
|
144
|
+
SHARED_VOCABULARY_CHOICES_STACKING,
|
|
104
145
|
SHARED_VOCABULARY_EXTENDED_TEXT_COUNTER_CLASSES,
|
|
105
146
|
SHARED_VOCABULARY_EXTENDED_TEXT_HEIGHT_LINES,
|
|
106
147
|
SHARED_VOCABULARY_GAP_INPUT_WIDTHS,
|
|
107
148
|
SHARED_VOCABULARY_INPUT_WIDTHS,
|
|
149
|
+
SHARED_VOCABULARY_LABEL_STYLES,
|
|
150
|
+
SHARED_VOCABULARY_LABEL_SUFFIXES,
|
|
108
151
|
SHARED_VOCABULARY_MEDIA_PLAYER_CONTROLS,
|
|
152
|
+
SHARED_VOCABULARY_ORIENTATIONS,
|
|
153
|
+
SHARED_VOCABULARY_SELECTION_TONES,
|
|
109
154
|
sharedVocabularyClassNames,
|
|
110
155
|
supportedExtendedTextCounterClassNames,
|
|
111
156
|
supportedExtendedTextHeightLinesClassNames,
|
|
@@ -130,26 +175,49 @@ export type {
|
|
|
130
175
|
QtiCatalogReference,
|
|
131
176
|
QtiChoice,
|
|
132
177
|
QtiChoiceRole,
|
|
178
|
+
QtiCompanionMaterialsInfo,
|
|
179
|
+
QtiCompanionMaterialsUnparsedChild,
|
|
133
180
|
QtiContentNode,
|
|
181
|
+
QtiCustomInteractionDefinition,
|
|
182
|
+
QtiInteractionMarkupDefinition,
|
|
134
183
|
QtiDiagnostic,
|
|
135
184
|
QtiDocument,
|
|
136
185
|
QtiElementSupport,
|
|
137
186
|
QtiInteractionElementSupport,
|
|
187
|
+
QtiItemMetadataElementSupport,
|
|
138
188
|
QtiInteraction,
|
|
189
|
+
QtiInteractionRegistryStatus,
|
|
139
190
|
QtiInteractionType,
|
|
140
191
|
QtiMediaSource,
|
|
141
192
|
QtiMediaTrack,
|
|
193
|
+
QtiMapEntry,
|
|
142
194
|
QtiModalFeedback,
|
|
143
195
|
QtiObjectAsset,
|
|
196
|
+
QtiOutcomeDeclaration,
|
|
144
197
|
QtiParseResult,
|
|
198
|
+
QtiPhysicalMaterial,
|
|
199
|
+
QtiProcessingExpression,
|
|
145
200
|
QtiProcessingElementSupport,
|
|
146
201
|
QtiPortableCustomDefinition,
|
|
147
202
|
QtiPortableCustomInteractionModule,
|
|
148
203
|
QtiPortableCustomInteractionModules,
|
|
149
204
|
QtiPortableCustomStateValue,
|
|
150
205
|
QtiPortableCustomVariableBinding,
|
|
206
|
+
QtiAreaMapEntry,
|
|
207
|
+
QtiGapMatchGapSegment,
|
|
208
|
+
QtiGapMatchSegment,
|
|
209
|
+
QtiGapMatchTextSegment,
|
|
210
|
+
QtiHottextChoiceSegment,
|
|
211
|
+
QtiHottextSegment,
|
|
212
|
+
QtiHottextTextSegment,
|
|
151
213
|
QtiResponseBranch,
|
|
214
|
+
QtiResponseCondition,
|
|
215
|
+
QtiResponseDeclaration,
|
|
216
|
+
QtiResponseProcessing,
|
|
217
|
+
QtiResponseRule,
|
|
152
218
|
QtiScoreResult,
|
|
219
|
+
QtiLookupOutcomeValue,
|
|
220
|
+
QtiSetOutcomeValue,
|
|
153
221
|
QtiSupportStatus,
|
|
154
222
|
QtiTemplateDeclaration,
|
|
155
223
|
QtiTemplateBranch,
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import {
|
|
2
|
+
deprecatedInteractionSupport,
|
|
3
|
+
interactionRegistryStatus,
|
|
4
|
+
interactionSupport,
|
|
5
|
+
} from "./support.js";
|
|
6
|
+
import type { QtiInteraction, QtiSourceLocation } from "./types.js";
|
|
7
|
+
|
|
8
|
+
const defaultSource: QtiSourceLocation = {
|
|
9
|
+
line: 1,
|
|
10
|
+
column: 1,
|
|
11
|
+
offset: 0,
|
|
12
|
+
path: "item",
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const qtiNameByInteractionType = new Map(
|
|
16
|
+
[...interactionSupport, ...deprecatedInteractionSupport].map((entry) => [
|
|
17
|
+
entry.interactionType,
|
|
18
|
+
entry.qtiName,
|
|
19
|
+
]),
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
export function testInteraction(
|
|
23
|
+
overrides: Partial<QtiInteraction> & Pick<QtiInteraction, "type">,
|
|
24
|
+
): QtiInteraction {
|
|
25
|
+
const qtiName =
|
|
26
|
+
overrides.qtiName ?? qtiNameByInteractionType.get(overrides.type) ?? `qti-${overrides.type}`;
|
|
27
|
+
const interaction = {
|
|
28
|
+
registryStatus: interactionRegistryStatus(qtiName),
|
|
29
|
+
qtiName,
|
|
30
|
+
responseIdentifier: "RESPONSE",
|
|
31
|
+
responseCardinality: "single" as const,
|
|
32
|
+
responseBaseType: "identifier" as const,
|
|
33
|
+
choices: [],
|
|
34
|
+
attributes: {},
|
|
35
|
+
childElements: [],
|
|
36
|
+
text: "",
|
|
37
|
+
source: defaultSource,
|
|
38
|
+
...overrides,
|
|
39
|
+
};
|
|
40
|
+
return {
|
|
41
|
+
...interaction,
|
|
42
|
+
registryStatus: overrides.registryStatus ?? interactionRegistryStatus(interaction.qtiName),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { parseXmlTree, type XmlNode } from "./xml.js";
|
|
2
|
+
|
|
3
|
+
export interface QtiPackageXmlNode {
|
|
4
|
+
localName: string;
|
|
5
|
+
attributes: Record<string, string>;
|
|
6
|
+
children: QtiPackageXmlNode[];
|
|
7
|
+
text: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface QtiPackageXmlTree {
|
|
11
|
+
root: QtiPackageXmlNode | undefined;
|
|
12
|
+
errors: string[];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function parseQtiPackageXmlTree(xml: string): QtiPackageXmlTree {
|
|
16
|
+
const parsed = parseXmlTree(xml);
|
|
17
|
+
return {
|
|
18
|
+
root: parsed.root ? packageXmlNode(parsed.root) : undefined,
|
|
19
|
+
errors: parsed.errors.map((error) => error.message),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function packageXmlNode(node: XmlNode): QtiPackageXmlNode {
|
|
24
|
+
return {
|
|
25
|
+
localName: node.localName,
|
|
26
|
+
attributes: node.attributes,
|
|
27
|
+
children: node.children.map(packageXmlNode),
|
|
28
|
+
text: node.text,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import { appendContentTextNode } from "./content-text.js";
|
|
2
|
+
import { firstChildElement, parseCatalogInfo, parseStylesheet } from "./parser-item-metadata.js";
|
|
3
|
+
import type {
|
|
4
|
+
QtiContentNode,
|
|
5
|
+
QtiCustomInteractionDefinition,
|
|
6
|
+
QtiDiagnostic,
|
|
7
|
+
QtiInteractionMarkupDefinition,
|
|
8
|
+
QtiInteractionType,
|
|
9
|
+
QtiPortableCustomDefinition,
|
|
10
|
+
QtiPortableCustomInteractionModule,
|
|
11
|
+
QtiPortableCustomInteractionModules,
|
|
12
|
+
QtiPortableCustomVariableBinding,
|
|
13
|
+
} from "./types.js";
|
|
14
|
+
import { childElements, escapeXmlAttribute, escapeXmlText, type XmlNode } from "./xml.js";
|
|
15
|
+
|
|
16
|
+
export type QtiInteractionElementPredicate = (node: XmlNode) => boolean;
|
|
17
|
+
|
|
18
|
+
type CustomMarkupParseOptions = {
|
|
19
|
+
nestedInteractionCode: string;
|
|
20
|
+
contextName: string;
|
|
21
|
+
skipChild?: (node: XmlNode) => boolean;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
type SerializeXmlContentOptions = {
|
|
25
|
+
excludeLocalNames?: readonly string[];
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const LEGACY_CUSTOM_PROMPT_LOCAL_NAME = "qti-prompt";
|
|
29
|
+
const legacyCustomSerializeOptions: SerializeXmlContentOptions = {
|
|
30
|
+
excludeLocalNames: [LEGACY_CUSTOM_PROMPT_LOCAL_NAME],
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const legacyCustomMarkupOptions: CustomMarkupParseOptions = {
|
|
34
|
+
nestedInteractionCode: "interaction.custom.markupInteraction",
|
|
35
|
+
contextName: "qti-custom-interaction markup",
|
|
36
|
+
skipChild: (child) => child.localName === LEGACY_CUSTOM_PROMPT_LOCAL_NAME,
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const portableCustomMarkupOptions: CustomMarkupParseOptions = {
|
|
40
|
+
nestedInteractionCode: "interaction.portableCustom.markupInteraction",
|
|
41
|
+
contextName: "qti-interaction-markup",
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export function parseInteractionCustomPayload(
|
|
45
|
+
node: XmlNode,
|
|
46
|
+
interactionType: QtiInteractionType | undefined,
|
|
47
|
+
diagnostics: QtiDiagnostic[],
|
|
48
|
+
isInteractionElement: QtiInteractionElementPredicate,
|
|
49
|
+
): {
|
|
50
|
+
customInteraction?: QtiCustomInteractionDefinition;
|
|
51
|
+
portableCustom?: QtiPortableCustomDefinition;
|
|
52
|
+
} {
|
|
53
|
+
if (node.localName === "qti-custom-interaction") {
|
|
54
|
+
return {
|
|
55
|
+
customInteraction: parseCustomInteractionDefinition(node, diagnostics, isInteractionElement),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
if (interactionType === "portableCustom") {
|
|
59
|
+
return {
|
|
60
|
+
portableCustom: parsePortableCustomDefinition(node, diagnostics, isInteractionElement),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
return {};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function parseCustomInteractionDefinition(
|
|
67
|
+
node: XmlNode,
|
|
68
|
+
diagnostics: QtiDiagnostic[],
|
|
69
|
+
isInteractionElement: QtiInteractionElementPredicate,
|
|
70
|
+
): QtiCustomInteractionDefinition {
|
|
71
|
+
return parseInteractionMarkupDefinition(
|
|
72
|
+
node,
|
|
73
|
+
diagnostics,
|
|
74
|
+
isInteractionElement,
|
|
75
|
+
legacyCustomMarkupOptions,
|
|
76
|
+
legacyCustomSerializeOptions,
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function parsePortableCustomDefinition(
|
|
81
|
+
node: XmlNode,
|
|
82
|
+
diagnostics: QtiDiagnostic[],
|
|
83
|
+
isInteractionElement: QtiInteractionElementPredicate,
|
|
84
|
+
): QtiPortableCustomDefinition {
|
|
85
|
+
const markup = firstChildElement(
|
|
86
|
+
node,
|
|
87
|
+
"qti-interaction-markup",
|
|
88
|
+
diagnostics,
|
|
89
|
+
"interaction.portableCustom.child.duplicate",
|
|
90
|
+
);
|
|
91
|
+
const modules = firstChildElement(
|
|
92
|
+
node,
|
|
93
|
+
"qti-interaction-modules",
|
|
94
|
+
diagnostics,
|
|
95
|
+
"interaction.portableCustom.child.duplicate",
|
|
96
|
+
);
|
|
97
|
+
return {
|
|
98
|
+
...parseInteractionMarkupShell(
|
|
99
|
+
markup,
|
|
100
|
+
node,
|
|
101
|
+
diagnostics,
|
|
102
|
+
isInteractionElement,
|
|
103
|
+
portableCustomMarkupOptions,
|
|
104
|
+
),
|
|
105
|
+
customInteractionTypeIdentifier: node.attributes["custom-interaction-type-identifier"],
|
|
106
|
+
module: node.attributes.module,
|
|
107
|
+
interactionModules: modules ? parsePortableCustomInteractionModules(modules) : undefined,
|
|
108
|
+
templateVariables: childElements(node, "qti-template-variable").map((variable) =>
|
|
109
|
+
parsePortableCustomVariableBinding(variable, "template"),
|
|
110
|
+
),
|
|
111
|
+
contextVariables: childElements(node, "qti-context-variable").map((variable) =>
|
|
112
|
+
parsePortableCustomVariableBinding(variable, "context"),
|
|
113
|
+
),
|
|
114
|
+
stylesheets: childElements(node, "qti-stylesheet").map(parseStylesheet),
|
|
115
|
+
catalogInfo: parseCatalogInfo(
|
|
116
|
+
firstChildElement(
|
|
117
|
+
node,
|
|
118
|
+
"qti-catalog-info",
|
|
119
|
+
diagnostics,
|
|
120
|
+
"interaction.portableCustom.child.duplicate",
|
|
121
|
+
),
|
|
122
|
+
),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function parseInteractionMarkupDefinition(
|
|
127
|
+
markupNode: XmlNode,
|
|
128
|
+
diagnostics: QtiDiagnostic[],
|
|
129
|
+
isInteractionElement: QtiInteractionElementPredicate,
|
|
130
|
+
markupOptions: CustomMarkupParseOptions,
|
|
131
|
+
serializeOptions?: SerializeXmlContentOptions,
|
|
132
|
+
): QtiInteractionMarkupDefinition {
|
|
133
|
+
const interactionMarkup = parseCustomMarkupChildren(
|
|
134
|
+
markupNode,
|
|
135
|
+
diagnostics,
|
|
136
|
+
isInteractionElement,
|
|
137
|
+
markupOptions,
|
|
138
|
+
);
|
|
139
|
+
const interactionMarkupRaw = serializeXmlContentOrUndefined(markupNode, serializeOptions);
|
|
140
|
+
return {
|
|
141
|
+
responseIdentifier: markupNode.attributes["response-identifier"],
|
|
142
|
+
interactionMarkup,
|
|
143
|
+
interactionMarkupRaw,
|
|
144
|
+
dataAttributes: parseInteractionDataAttributes(markupNode),
|
|
145
|
+
attributes: markupNode.attributes,
|
|
146
|
+
source: markupNode.source,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function parseInteractionMarkupShell(
|
|
151
|
+
markupNode: XmlNode | undefined,
|
|
152
|
+
attributeNode: XmlNode,
|
|
153
|
+
diagnostics: QtiDiagnostic[],
|
|
154
|
+
isInteractionElement: QtiInteractionElementPredicate,
|
|
155
|
+
markupOptions: CustomMarkupParseOptions,
|
|
156
|
+
): QtiInteractionMarkupDefinition {
|
|
157
|
+
if (!markupNode) {
|
|
158
|
+
return {
|
|
159
|
+
responseIdentifier: attributeNode.attributes["response-identifier"],
|
|
160
|
+
interactionMarkup: [],
|
|
161
|
+
dataAttributes: parseInteractionDataAttributes(attributeNode),
|
|
162
|
+
attributes: attributeNode.attributes,
|
|
163
|
+
source: attributeNode.source,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
...parseInteractionMarkupDefinition(
|
|
168
|
+
markupNode,
|
|
169
|
+
diagnostics,
|
|
170
|
+
isInteractionElement,
|
|
171
|
+
markupOptions,
|
|
172
|
+
),
|
|
173
|
+
responseIdentifier: attributeNode.attributes["response-identifier"],
|
|
174
|
+
dataAttributes: parseInteractionDataAttributes(attributeNode),
|
|
175
|
+
attributes: attributeNode.attributes,
|
|
176
|
+
source: attributeNode.source,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
function parseInteractionDataAttributes(node: XmlNode): Record<string, string> {
|
|
181
|
+
return Object.fromEntries(
|
|
182
|
+
Object.entries(node.attributes).filter(([name]) => name.startsWith("data-")),
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
function parseCustomMarkupChildren(
|
|
187
|
+
node: XmlNode,
|
|
188
|
+
diagnostics: QtiDiagnostic[],
|
|
189
|
+
isInteractionElement: QtiInteractionElementPredicate,
|
|
190
|
+
options: CustomMarkupParseOptions,
|
|
191
|
+
): QtiContentNode[] {
|
|
192
|
+
const content: QtiContentNode[] = [];
|
|
193
|
+
for (const entry of node.content) {
|
|
194
|
+
if (typeof entry === "string") {
|
|
195
|
+
appendContentTextNode(content, entry, node.source);
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
if (options.skipChild?.(entry)) continue;
|
|
199
|
+
content.push(parseCustomMarkupNode(entry, diagnostics, isInteractionElement, options));
|
|
200
|
+
}
|
|
201
|
+
return content;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
function parseCustomMarkupNode(
|
|
205
|
+
node: XmlNode,
|
|
206
|
+
diagnostics: QtiDiagnostic[],
|
|
207
|
+
isInteractionElement: QtiInteractionElementPredicate,
|
|
208
|
+
options: CustomMarkupParseOptions,
|
|
209
|
+
): QtiContentNode {
|
|
210
|
+
if (isInteractionElement(node)) {
|
|
211
|
+
diagnostics.push({
|
|
212
|
+
code: options.nestedInteractionCode,
|
|
213
|
+
severity: "error",
|
|
214
|
+
message: `${options.contextName} must not contain nested QTI interaction ${node.localName}.`,
|
|
215
|
+
path: node.source?.path,
|
|
216
|
+
source: node.source,
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
if (node.localName === "qti-printed-variable") {
|
|
220
|
+
return {
|
|
221
|
+
kind: "printedVariable",
|
|
222
|
+
identifier: node.attributes.identifier ?? "",
|
|
223
|
+
format: node.attributes.format,
|
|
224
|
+
attributes: node.attributes,
|
|
225
|
+
source: node.source,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
if (node.localName === "qti-feedback-block" || node.localName === "qti-feedback-inline") {
|
|
230
|
+
return {
|
|
231
|
+
kind: "feedback",
|
|
232
|
+
feedbackType: node.localName === "qti-feedback-block" ? "block" : "inline",
|
|
233
|
+
identifier: node.attributes.identifier ?? "",
|
|
234
|
+
outcomeIdentifier: node.attributes["outcome-identifier"] ?? "",
|
|
235
|
+
showHide: node.attributes["show-hide"] === "hide" ? "hide" : "show",
|
|
236
|
+
attributes: node.attributes,
|
|
237
|
+
children: parseCustomMarkupChildren(node, diagnostics, isInteractionElement, options),
|
|
238
|
+
source: node.source,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
return {
|
|
243
|
+
kind: "element",
|
|
244
|
+
qtiName: node.localName,
|
|
245
|
+
attributes: node.attributes,
|
|
246
|
+
children: parseCustomMarkupChildren(node, diagnostics, isInteractionElement, options),
|
|
247
|
+
source: node.source,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
function parsePortableCustomInteractionModules(node: XmlNode): QtiPortableCustomInteractionModules {
|
|
252
|
+
return {
|
|
253
|
+
primaryConfiguration: node.attributes["primary-configuration"],
|
|
254
|
+
secondaryConfiguration:
|
|
255
|
+
node.attributes["secondary-configuration"] ?? node.attributes["fallback-configuration"],
|
|
256
|
+
modules: childElements(node, "qti-interaction-module").map(
|
|
257
|
+
parsePortableCustomInteractionModule,
|
|
258
|
+
),
|
|
259
|
+
attributes: node.attributes,
|
|
260
|
+
source: node.source,
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
function parsePortableCustomInteractionModule(node: XmlNode): QtiPortableCustomInteractionModule {
|
|
265
|
+
return {
|
|
266
|
+
id: node.attributes.id,
|
|
267
|
+
primaryPath: node.attributes["primary-path"],
|
|
268
|
+
fallbackPath: node.attributes["fallback-path"],
|
|
269
|
+
attributes: node.attributes,
|
|
270
|
+
source: node.source,
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
function parsePortableCustomVariableBinding(
|
|
275
|
+
node: XmlNode,
|
|
276
|
+
kind: QtiPortableCustomVariableBinding["kind"],
|
|
277
|
+
): QtiPortableCustomVariableBinding {
|
|
278
|
+
return {
|
|
279
|
+
kind,
|
|
280
|
+
identifier: node.attributes.identifier ?? node.attributes["template-identifier"],
|
|
281
|
+
variableIdentifier: node.attributes["variable-identifier"],
|
|
282
|
+
attributes: node.attributes,
|
|
283
|
+
source: node.source,
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
function serializeXmlContentOrUndefined(
|
|
288
|
+
node: XmlNode,
|
|
289
|
+
options?: SerializeXmlContentOptions,
|
|
290
|
+
): string | undefined {
|
|
291
|
+
const content = serializeXmlContent(node, options);
|
|
292
|
+
return content.trim().length > 0 ? content : undefined;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
function serializeXmlContent(node: XmlNode, options?: SerializeXmlContentOptions): string {
|
|
296
|
+
const exclude = options?.excludeLocalNames ? new Set(options.excludeLocalNames) : undefined;
|
|
297
|
+
return node.content
|
|
298
|
+
.filter((entry) => typeof entry === "string" || !exclude?.has(entry.localName))
|
|
299
|
+
.map((entry) => (typeof entry === "string" ? escapeXmlText(entry) : serializeXmlNode(entry)))
|
|
300
|
+
.join("");
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
function serializeXmlNode(node: XmlNode): string {
|
|
304
|
+
const attributes = Object.entries(node.attributes)
|
|
305
|
+
.map(([name, value]) => ` ${name}="${escapeXmlAttribute(value)}"`)
|
|
306
|
+
.join("");
|
|
307
|
+
if (node.content.length === 0) return `<${node.name}${attributes}/>`;
|
|
308
|
+
return `<${node.name}${attributes}>${serializeXmlContent(node)}</${node.name}>`;
|
|
309
|
+
}
|