@longsightgroup/qti3-core 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/binary-choice.d.ts +9 -0
  2. package/dist/binary-choice.d.ts.map +1 -0
  3. package/dist/binary-choice.js +81 -0
  4. package/dist/binary-choice.js.map +1 -0
  5. package/dist/index.d.ts +16 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +10 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/qti-identifier.d.ts +3 -0
  10. package/dist/qti-identifier.d.ts.map +1 -0
  11. package/dist/qti-identifier.js +5 -0
  12. package/dist/qti-identifier.js.map +1 -0
  13. package/dist/qti-package-paths.d.ts +2 -0
  14. package/dist/qti-package-paths.d.ts.map +1 -1
  15. package/dist/qti-package-paths.js +6 -0
  16. package/dist/qti-package-paths.js.map +1 -1
  17. package/dist/support.d.ts.map +1 -1
  18. package/dist/support.js +2 -0
  19. package/dist/support.js.map +1 -1
  20. package/dist/test-expression-parser.d.ts +6 -0
  21. package/dist/test-expression-parser.d.ts.map +1 -0
  22. package/dist/test-expression-parser.js +76 -0
  23. package/dist/test-expression-parser.js.map +1 -0
  24. package/dist/test-expression-serializer.d.ts +5 -0
  25. package/dist/test-expression-serializer.d.ts.map +1 -0
  26. package/dist/test-expression-serializer.js +54 -0
  27. package/dist/test-expression-serializer.js.map +1 -0
  28. package/dist/test-expression-validation.d.ts +14 -0
  29. package/dist/test-expression-validation.d.ts.map +1 -0
  30. package/dist/test-expression-validation.js +101 -0
  31. package/dist/test-expression-validation.js.map +1 -0
  32. package/dist/test-expression.d.ts +99 -0
  33. package/dist/test-expression.d.ts.map +1 -0
  34. package/dist/test-expression.js +28 -0
  35. package/dist/test-expression.js.map +1 -0
  36. package/dist/test-model.d.ts +62 -0
  37. package/dist/test-model.d.ts.map +1 -0
  38. package/dist/test-model.js +5 -0
  39. package/dist/test-model.js.map +1 -0
  40. package/dist/test-parser.d.ts +13 -0
  41. package/dist/test-parser.d.ts.map +1 -0
  42. package/dist/test-parser.js +144 -0
  43. package/dist/test-parser.js.map +1 -0
  44. package/dist/test-processing.d.ts +22 -0
  45. package/dist/test-processing.d.ts.map +1 -0
  46. package/dist/test-processing.js +84 -0
  47. package/dist/test-processing.js.map +1 -0
  48. package/dist/test-session.d.ts +31 -0
  49. package/dist/test-session.d.ts.map +1 -0
  50. package/dist/test-session.js +102 -0
  51. package/dist/test-session.js.map +1 -0
  52. package/dist/test-support.d.ts +4 -0
  53. package/dist/test-support.d.ts.map +1 -0
  54. package/dist/test-support.js +30 -0
  55. package/dist/test-support.js.map +1 -0
  56. package/dist/test-validation.d.ts +4 -0
  57. package/dist/test-validation.d.ts.map +1 -0
  58. package/dist/test-validation.js +133 -0
  59. package/dist/test-validation.js.map +1 -0
  60. package/dist/test-xml.d.ts +7 -0
  61. package/dist/test-xml.d.ts.map +1 -0
  62. package/dist/test-xml.js +23 -0
  63. package/dist/test-xml.js.map +1 -0
  64. package/dist/types.d.ts +5 -1
  65. package/dist/types.d.ts.map +1 -1
  66. package/package.json +1 -1
  67. package/src/binary-choice.ts +96 -0
  68. package/src/index.ts +29 -0
  69. package/src/qti-identifier.ts +4 -0
  70. package/src/qti-package-paths.ts +9 -0
  71. package/src/support.ts +2 -0
  72. package/src/test-expression-parser.ts +89 -0
  73. package/src/test-expression-serializer.ts +71 -0
  74. package/src/test-expression-validation.ts +139 -0
  75. package/src/test-expression.ts +66 -0
  76. package/src/test-model.ts +68 -0
  77. package/src/test-parser.ts +201 -0
  78. package/src/test-processing.ts +107 -0
  79. package/src/test-session.ts +160 -0
  80. package/src/test-support.ts +31 -0
  81. package/src/test-validation.ts +190 -0
  82. package/src/test-xml.ts +37 -0
  83. package/src/types.ts +6 -0
@@ -0,0 +1,9 @@
1
+ import type { QtiTestResult } from "./test-model.js";
2
+ /** Item policy established by exhaustive scoring of every available choice. */
3
+ export interface QtiBinaryChoicePolicy {
4
+ readonly responseIdentifier: string;
5
+ readonly correctChoice: string;
6
+ }
7
+ /** Host scoring policy: inspect every choice and reject random or session-dependent scoring. */
8
+ export declare function inspectQtiBinaryChoice(itemXml: string): QtiTestResult<QtiBinaryChoicePolicy>;
9
+ //# sourceMappingURL=binary-choice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-choice.d.ts","sourceRoot":"","sources":["../src/binary-choice.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,gGAAgG;AAChG,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAkF5F"}
@@ -0,0 +1,81 @@
1
+ import { parseQtiXml } from "./parser.js";
2
+ import { createItemSession } from "./session.js";
3
+ import { collectQtiResponseProcessingExpressions } from "./processing-expression-collection.js";
4
+ import { responseProcessingTemplateKind } from "./processing-templates.js";
5
+ /** Host scoring policy: inspect every choice and reject random or session-dependent scoring. */
6
+ export function inspectQtiBinaryChoice(itemXml) {
7
+ const fail = (message) => ({
8
+ ok: false,
9
+ diagnostics: [{ code: "item.binaryChoice", severity: "error", message }],
10
+ });
11
+ const parsed = parseQtiXml(itemXml);
12
+ if (!parsed.ok || !parsed.document)
13
+ return { ok: false, diagnostics: parsed.diagnostics };
14
+ const { item } = parsed.document;
15
+ const interaction = item.interactions[0];
16
+ const response = item.responseDeclarations[0];
17
+ if (item.adaptive ||
18
+ item.timeDependent ||
19
+ item.templateProcessing ||
20
+ item.templateDeclarations.length ||
21
+ item.interactions.length !== 1 ||
22
+ interaction?.type !== "choice" ||
23
+ interaction.attributes["max-choices"] !== "1" ||
24
+ item.responseDeclarations.length !== 1 ||
25
+ !response ||
26
+ response.cardinality !== "single" ||
27
+ response.baseType !== "identifier" ||
28
+ interaction.responseIdentifier !== response.identifier ||
29
+ interaction.choices.length < 2 ||
30
+ typeof response.correctResponse !== "string" ||
31
+ !item.responseProcessing) {
32
+ return fail("Requires one non-adaptive single-choice interaction with one correct response.");
33
+ }
34
+ const processing = item.responseProcessing;
35
+ if (processing.template) {
36
+ const kind = responseProcessingTemplateKind(processing.template);
37
+ if (kind !== "matchCorrect" && kind !== "mapResponse")
38
+ return fail("Unsupported binary-choice scoring template.");
39
+ }
40
+ const variables = new Set([
41
+ response.identifier,
42
+ ...item.outcomeDeclarations.map((d) => d.identifier),
43
+ ]);
44
+ const expressions = collectQtiResponseProcessingExpressions(processing);
45
+ if (expressions.some((e) => ![
46
+ "baseValue",
47
+ "variable",
48
+ "correct",
49
+ "match",
50
+ "isNull",
51
+ "and",
52
+ "or",
53
+ "not",
54
+ "mapResponse",
55
+ "numericCompare",
56
+ "sum",
57
+ "product",
58
+ ].includes(e.type) ||
59
+ (e.type === "variable" && !variables.has(e.identifier)))) {
60
+ return fail("Binary-choice scoring must depend only on the answer and declared outcomes.");
61
+ }
62
+ let correctCount = 0;
63
+ for (const choice of interaction.choices) {
64
+ const session = createItemSession(parsed.document);
65
+ session.respond(response.identifier, choice.identifier);
66
+ const scored = session.score();
67
+ const expected = choice.identifier === response.correctResponse ? 1 : 0;
68
+ if (scored.outcomes.SCORE !== expected ||
69
+ scored.diagnostics.some((d) => d.severity === "error")) {
70
+ return fail("Every choice must score 0 or 1 and agree with the declared correct response.");
71
+ }
72
+ correctCount += expected;
73
+ }
74
+ return correctCount === 1
75
+ ? {
76
+ ok: true,
77
+ value: { responseIdentifier: response.identifier, correctChoice: response.correctResponse },
78
+ }
79
+ : fail("Exactly one available choice must be correct.");
80
+ }
81
+ //# sourceMappingURL=binary-choice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-choice.js","sourceRoot":"","sources":["../src/binary-choice.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -39,4 +39,20 @@ export type { QtiAssessmentItem, QtiAttemptStatus, QtiAttemptStateV1, QtiCatalog
39
39
  export { isQtiPortableCustomStateValue, isQtiValue, qtiScalarToString, qtiValueToIdentifierList, qtiValueToString, qtiValueToStringList, readQtiPortableCustomStateValue, readQtiJsonValue, unknownToDisplayString, } from "./value-format.js";
40
40
  export { parseQtiPackageStream, type QtiPackageSource, type QtiPackageStreamLimits, type QtiPackageStreamEvent, type QtiPackageStreamSummary, } from "./qti-package-stream.js";
41
41
  export { captureQtiTextResponse, formatQtiTextResponse, qtiTextResponseString, } from "./text-response.js";
42
+ export type { QtiExecutableTest, QtiTestDefinition, QtiTestSection, QtiTestItemRef, QtiTestBranch, QtiTestResult, QtiTestOutcomeRule, } from "./test-model.js";
43
+ export { validateQtiTest } from "./test-validation.js";
44
+ export { parseQtiTest } from "./test-parser.js";
45
+ export { parseQtiTestExecution } from "./test-parser.js";
46
+ export type { QtiTestExecution } from "./test-parser.js";
47
+ export { startQtiTest, submitQtiTestAnswer, snapshotQtiTestSession, restoreQtiTestSession, } from "./test-session.js";
48
+ export type { QtiTestSession, QtiTestSessionSnapshot } from "./test-session.js";
49
+ export type { QtiTestSubmission } from "./test-processing.js";
50
+ export type { QtiTestExpression, QtiTestBaseType } from "./test-expression.js";
51
+ export { serializeTestExpression } from "./test-expression-serializer.js";
52
+ export { isQtiIdentifier } from "./qti-identifier.js";
53
+ export { isQtiPackageItemHref } from "./qti-package-paths.js";
54
+ export { testFailure } from "./test-model.js";
55
+ export { testExecutionSupport } from "./test-support.js";
56
+ export { inspectQtiBinaryChoice } from "./binary-choice.js";
57
+ export type { QtiBinaryChoicePolicy } from "./binary-choice.js";
42
58
  //# sourceMappingURL=index.d.ts.map
@@ -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
@@ -38,4 +38,14 @@ export { validateAssessmentItem } from "./validation.js";
38
38
  export { isQtiPortableCustomStateValue, isQtiValue, qtiScalarToString, qtiValueToIdentifierList, qtiValueToString, qtiValueToStringList, readQtiPortableCustomStateValue, readQtiJsonValue, unknownToDisplayString, } from "./value-format.js";
39
39
  export { parseQtiPackageStream, } from "./qti-package-stream.js";
40
40
  export { captureQtiTextResponse, formatQtiTextResponse, qtiTextResponseString, } from "./text-response.js";
41
+ export { validateQtiTest } from "./test-validation.js";
42
+ export { parseQtiTest } from "./test-parser.js";
43
+ export { parseQtiTestExecution } from "./test-parser.js";
44
+ export { startQtiTest, submitQtiTestAnswer, snapshotQtiTestSession, restoreQtiTestSession, } from "./test-session.js";
45
+ export { serializeTestExpression } from "./test-expression-serializer.js";
46
+ export { isQtiIdentifier } from "./qti-identifier.js";
47
+ export { isQtiPackageItemHref } from "./qti-package-paths.js";
48
+ export { testFailure } from "./test-model.js";
49
+ export { testExecutionSupport } from "./test-support.js";
50
+ export { inspectQtiBinaryChoice } from "./binary-choice.js";
41
51
  //# sourceMappingURL=index.js.map
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,3 @@
1
+ /** Whether a value is a complete QTI identifier in the supported ASCII lexical space. */
2
+ export declare function isQtiIdentifier(identifier: string): boolean;
3
+ //# sourceMappingURL=qti-identifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qti-identifier.d.ts","sourceRoot":"","sources":["../src/qti-identifier.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE3D"}
@@ -0,0 +1,5 @@
1
+ /** Whether a value is a complete QTI identifier in the supported ASCII lexical space. */
2
+ export function isQtiIdentifier(identifier) {
3
+ return /^[A-Za-z_][A-Za-z0-9_.-]*$/.test(identifier);
4
+ }
5
+ //# sourceMappingURL=qti-identifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qti-identifier.js","sourceRoot":"","sources":["../src/qti-identifier.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,OAAO,4BAA4B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvD,CAAC"}
@@ -3,4 +3,6 @@ import type { QtiDiagnostic } from "./types.js";
3
3
  export declare function pushPackageDiagnostic(diagnostics: QtiDiagnostic[], code: string, severity: QtiDiagnostic["severity"], message: string, path?: string): void;
4
4
  /** Normalize a package-relative path and diagnose absolute or escaping paths. */
5
5
  export declare function normalizePackagePath(path: string, context: string, diagnostics: QtiDiagnostic[]): string | undefined;
6
+ /** Whether an item href is a normalized package-local path, without URI routing or traversal. */
7
+ export declare function isQtiPackageItemHref(href: string): boolean;
6
8
  //# sourceMappingURL=qti-package-paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"qti-package-paths.d.ts","sourceRoot":"","sources":["../src/qti-package-paths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,uEAAuE;AACvE,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,aAAa,EAAE,EAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,EACnC,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,IAAI,CAON;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,aAAa,EAAE,GAC3B,MAAM,GAAG,SAAS,CAgCpB"}
1
+ {"version":3,"file":"qti-package-paths.d.ts","sourceRoot":"","sources":["../src/qti-package-paths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,uEAAuE;AACvE,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,aAAa,EAAE,EAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,EACnC,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,IAAI,CAON;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,aAAa,EAAE,GAC3B,MAAM,GAAG,SAAS,CAgCpB;AAED,iGAAiG;AACjG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM1D"}
@@ -29,4 +29,10 @@ export function normalizePackagePath(path, context, diagnostics) {
29
29
  }
30
30
  return parts.join("/");
31
31
  }
32
+ /** Whether an item href is a normalized package-local path, without URI routing or traversal. */
33
+ export function isQtiPackageItemHref(href) {
34
+ return (href.length > 0 &&
35
+ !/^[a-z][a-z0-9+.-]*:|[\\?#\s]/i.test(href) &&
36
+ href.split("/").every((part) => part.length > 0 && part !== "." && part !== ".."));
37
+ }
32
38
  //# sourceMappingURL=qti-package-paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"qti-package-paths.js","sourceRoot":"","sources":["../src/qti-package-paths.ts"],"names":[],"mappings":"AAEA,uEAAuE;AACvE,MAAM,UAAU,qBAAqB,CACnC,WAA4B,EAC5B,IAAY,EACZ,QAAmC,EACnC,OAAe,EACf,IAAa;IAEb,WAAW,CAAC,IAAI,CAAC;QACf,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,OAAe,EACf,WAA4B;IAE5B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9F,qBAAqB,CACnB,WAAW,EACX,uBAAuB,EACvB,OAAO,EACP,GAAG,OAAO,IAAI,IAAI,mCAAmC,EACrD,IAAI,CACL,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG;YAAE,SAAS;QACpC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,qBAAqB,CACnB,WAAW,EACX,qBAAqB,EACrB,OAAO,EACP,GAAG,OAAO,IAAI,IAAI,4BAA4B,EAC9C,IAAI,CACL,CAAC;gBACF,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,KAAK,CAAC,GAAG,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"qti-package-paths.js","sourceRoot":"","sources":["../src/qti-package-paths.ts"],"names":[],"mappings":"AAEA,uEAAuE;AACvE,MAAM,UAAU,qBAAqB,CACnC,WAA4B,EAC5B,IAAY,EACZ,QAAmC,EACnC,OAAe,EACf,IAAa;IAEb,WAAW,CAAC,IAAI,CAAC;QACf,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,OAAe,EACf,WAA4B;IAE5B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9F,qBAAqB,CACnB,WAAW,EACX,uBAAuB,EACvB,OAAO,EACP,GAAG,OAAO,IAAI,IAAI,mCAAmC,EACrD,IAAI,CACL,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG;YAAE,SAAS;QACpC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,qBAAqB,CACnB,WAAW,EACX,qBAAqB,EACrB,OAAO,EACP,GAAG,OAAO,IAAI,IAAI,4BAA4B,EAC9C,IAAI,CACL,CAAC;gBACF,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,KAAK,CAAC,GAAG,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,CACL,IAAI,CAAC,MAAM,GAAG,CAAC;QACf,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,CAClF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../src/support.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,4BAA4B,EAC5B,4BAA4B,EAC5B,kBAAkB,EAClB,6BAA6B,EAC7B,2BAA2B,EAC3B,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAcpB,eAAO,MAAM,kBAAkB,EAAE,4BAA4B,EAsB5D,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,4BAA4B,EAetE,CAAC;AAOF,eAAO,MAAM,iBAAiB,EAAE,2BAA2B,EAqN1D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,6BAA6B,EAgH9D,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAAiB,EAK7C,CAAC;AAIF,eAAO,MAAM,qBAAqB,iCAEjC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEpF;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,4BAA4B,CAIvF;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,iBAAiB,GACxB,aAAa,EAAE,CAyBjB"}
1
+ {"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../src/support.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,4BAA4B,EAC5B,4BAA4B,EAC5B,kBAAkB,EAClB,6BAA6B,EAC7B,2BAA2B,EAC3B,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAepB,eAAO,MAAM,kBAAkB,EAAE,4BAA4B,EAsB5D,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,4BAA4B,EAetE,CAAC;AAOF,eAAO,MAAM,iBAAiB,EAAE,2BAA2B,EAqN1D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,6BAA6B,EAgH9D,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAAiB,EAM7C,CAAC;AAIF,eAAO,MAAM,qBAAqB,iCAEjC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEpF;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,4BAA4B,CAIvF;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,iBAAiB,GACxB,aAAa,EAAE,CAyBjB"}
package/dist/support.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { testExecutionSupport } from "./test-support.js";
1
2
  import { browserFeedbackTests, browserHarnessTests, coreIntegrationTest, interactionSupportFixtures, interactionSupportTests, processingBrowserEvidence, processingMappingTest, processingOperatorsTest, processingResponseTest, processingTemplateTest, } from "./support-evidence.js";
2
3
  export const interactionSupport = [
3
4
  entry("qti-associate-interaction", "associate"),
@@ -332,6 +333,7 @@ export const itemMetadataSupport = [
332
333
  },
333
334
  ];
334
335
  export const elementSupport = [
336
+ ...testExecutionSupport,
335
337
  ...interactionSupport,
336
338
  ...deprecatedInteractionSupport,
337
339
  ...processingSupport,
@@ -1 +1 @@
1
- {"version":3,"file":"support.js","sourceRoot":"","sources":["../src/support.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"support.js","sourceRoot":"","sources":["../src/support.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type QtiTestExpression } from "./test-expression.js";
2
+ import type { QtiDiagnostic } from "./types.js";
3
+ import { type XmlNode } from "./xml.js";
4
+ /** Read the single expression owned by a branch or outcome assignment. */
5
+ export declare function parseTestExpressionChild(node: XmlNode, diagnostics: QtiDiagnostic[]): QtiTestExpression | undefined;
6
+ //# sourceMappingURL=test-expression-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-expression-parser.d.ts","sourceRoot":"","sources":["../src/test-expression-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwC,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAErD,0EAA0E;AAC1E,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,aAAa,EAAE,GAC3B,iBAAiB,GAAG,SAAS,CAO/B"}
@@ -0,0 +1,76 @@
1
+ import { assertNever } from "./assert-never.js";
2
+ import { coerceValue } from "./parser-values.js";
3
+ import { isTestBaseType, testExpressionSyntax } from "./test-expression.js";
4
+ import { checkTestXml, rejectTestXml } from "./test-xml.js";
5
+ import { textContent } from "./xml.js";
6
+ /** Read the single expression owned by a branch or outcome assignment. */
7
+ export function parseTestExpressionChild(node, diagnostics) {
8
+ const first = node.children[0];
9
+ if (node.children.length !== 1 || !first) {
10
+ rejectTestXml(node, diagnostics);
11
+ return undefined;
12
+ }
13
+ return parseTestExpression(first, diagnostics);
14
+ }
15
+ function parseTestExpression(node, diagnostics) {
16
+ const syntax = testExpressionSyntax.find((entry) => entry.name === node.localName);
17
+ if (!syntax) {
18
+ rejectTestXml(node, diagnostics);
19
+ return undefined;
20
+ }
21
+ checkTestXml(node, testExpressionSyntax.map((entry) => entry.name), syntax.attributes, diagnostics, syntax.type === "baseValue");
22
+ const arityValid = syntax.arity === "oneOrMore" ? node.children.length > 0 : node.children.length === syntax.arity;
23
+ if (!arityValid) {
24
+ rejectTestXml(node, diagnostics);
25
+ return undefined;
26
+ }
27
+ const expressions = [];
28
+ for (const child of node.children) {
29
+ const parsed = parseTestExpression(child, diagnostics);
30
+ if (!parsed)
31
+ return undefined;
32
+ expressions.push(parsed);
33
+ }
34
+ const source = node.source;
35
+ switch (syntax.type) {
36
+ case "baseValue": {
37
+ const baseType = node.attributes["base-type"];
38
+ if (!isTestBaseType(baseType)) {
39
+ rejectTestXml(node, diagnostics);
40
+ return undefined;
41
+ }
42
+ return {
43
+ type: "baseValue",
44
+ baseType,
45
+ value: coerceValue(textContent(node), baseType),
46
+ source,
47
+ };
48
+ }
49
+ case "variable":
50
+ return { type: "variable", identifier: node.attributes.identifier ?? "", source };
51
+ case "testVariables":
52
+ return {
53
+ type: "testVariables",
54
+ variableIdentifier: node.attributes["variable-identifier"] ?? "",
55
+ includeCategory: node.attributes["include-category"],
56
+ source,
57
+ };
58
+ case "sum":
59
+ case "and":
60
+ case "or":
61
+ return { type: syntax.type, expressions, source };
62
+ case "numericCompare": {
63
+ const [left, right] = expressions;
64
+ if (!left || !right)
65
+ return undefined;
66
+ return { type: "numericCompare", operator: syntax.operator, left, right, source };
67
+ }
68
+ case "not": {
69
+ const expression = expressions[0];
70
+ return expression ? { type: "not", expression, source } : undefined;
71
+ }
72
+ default:
73
+ return assertNever(syntax);
74
+ }
75
+ }
76
+ //# sourceMappingURL=test-expression-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-expression-parser.js","sourceRoot":"","sources":["../src/test-expression-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type QtiTestExpression } from "./test-expression.js";
2
+ import { type QtiTestResult } from "./test-model.js";
3
+ /** Serialize the closed test expression language without involving item processing. */
4
+ export declare function serializeTestExpression(expression: QtiTestExpression): QtiTestResult<string>;
5
+ //# sourceMappingURL=test-expression-serializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-expression-serializer.d.ts","sourceRoot":"","sources":["../src/test-expression-serializer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGlE,uFAAuF;AACvF,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,CAG5F"}
@@ -0,0 +1,54 @@
1
+ import { assertNever } from "./assert-never.js";
2
+ import { renderElement } from "./serializer-processing-xml.js";
3
+ import { testExpressionSyntax } from "./test-expression.js";
4
+ import { testFailure } from "./test-model.js";
5
+ import { escapeXmlText } from "./xml.js";
6
+ /** Serialize the closed test expression language without involving item processing. */
7
+ export function serializeTestExpression(expression) {
8
+ const result = serializeExpression(expression, 0);
9
+ return result.ok ? { ok: true, value: result.value.join("\n") } : result;
10
+ }
11
+ function serializeExpression(expression, indent) {
12
+ const syntax = testExpressionSyntax.find((entry) => entry.type === expression.type &&
13
+ (expression.type !== "numericCompare" ||
14
+ (entry.type === "numericCompare" && entry.operator === expression.operator)));
15
+ if (!syntax)
16
+ return testFailure("expression.unsupported", "Cannot serialize an unsupported test expression.");
17
+ const attributes = [];
18
+ let children = [];
19
+ switch (expression.type) {
20
+ case "baseValue":
21
+ return {
22
+ ok: true,
23
+ value: renderElement(syntax.name, [["base-type", expression.baseType]], escapeXmlText(String(expression.value)), indent),
24
+ };
25
+ case "variable":
26
+ attributes.push(["identifier", expression.identifier]);
27
+ break;
28
+ case "testVariables":
29
+ attributes.push(["variable-identifier", expression.variableIdentifier], ["include-category", expression.includeCategory]);
30
+ break;
31
+ case "sum":
32
+ case "and":
33
+ case "or":
34
+ children = expression.expressions;
35
+ break;
36
+ case "numericCompare":
37
+ children = [expression.left, expression.right];
38
+ break;
39
+ case "not":
40
+ children = [expression.expression];
41
+ break;
42
+ default:
43
+ return assertNever(expression);
44
+ }
45
+ const content = [];
46
+ for (const child of children) {
47
+ const result = serializeExpression(child, indent + 1);
48
+ if (!result.ok)
49
+ return result;
50
+ content.push(...result.value);
51
+ }
52
+ return { ok: true, value: renderElement(syntax.name, attributes, content, indent) };
53
+ }
54
+ //# sourceMappingURL=test-expression-serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-expression-serializer.js","sourceRoot":"","sources":["../src/test-expression-serializer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type QtiTestBaseType, type QtiTestExpression } from "./test-expression.js";
2
+ import type { QtiDiagnostic, QtiOutcomeDeclaration, QtiValue } from "./types.js";
3
+ /** The declared QTI type of an expression, including its cardinality. */
4
+ export interface TestExpressionType {
5
+ readonly baseType: QtiTestBaseType;
6
+ readonly cardinality: "single" | "multiple";
7
+ }
8
+ /** Check scalar literals and defaults against the supported base types. */
9
+ export declare function isTestScalarValue(baseType: string | undefined, value: QtiValue): boolean;
10
+ /** Infer a test expression's QTI type and diagnose invalid operands and scope. */
11
+ export declare function checkTestExpression(expression: QtiTestExpression, declarations: ReadonlyMap<string, QtiOutcomeDeclaration>, categories: ReadonlySet<string>, scope: "outcome" | "branch", diagnostics: QtiDiagnostic[]): TestExpressionType | undefined;
12
+ /** Whether a branch expression has the required single boolean type. */
13
+ export declare function isBoolean(type: TestExpressionType | undefined): boolean;
14
+ //# sourceMappingURL=test-expression-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-expression-validation.d.ts","sourceRoot":"","sources":["../src/test-expression-validation.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjF,yEAAyE;AACzE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC7C;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAexF;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,iBAAiB,EAC7B,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,EACxD,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,KAAK,EAAE,SAAS,GAAG,QAAQ,EAC3B,WAAW,EAAE,aAAa,EAAE,GAC3B,kBAAkB,GAAG,SAAS,CAyFhC;AAMD,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,IAAI,EAAE,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAEvE"}
@@ -0,0 +1,101 @@
1
+ import { assertNever } from "./assert-never.js";
2
+ import { isTestBaseType, testExpressionSyntax, } from "./test-expression.js";
3
+ /** Check scalar literals and defaults against the supported base types. */
4
+ export function isTestScalarValue(baseType, value) {
5
+ if (baseType === undefined)
6
+ return false;
7
+ switch (baseType) {
8
+ case "integer":
9
+ return typeof value === "number" && Number.isSafeInteger(value);
10
+ case "float":
11
+ return typeof value === "number" && Number.isFinite(value);
12
+ case "boolean":
13
+ return typeof value === "boolean";
14
+ case "string":
15
+ case "identifier":
16
+ return typeof value === "string";
17
+ default:
18
+ return false;
19
+ }
20
+ }
21
+ /** Infer a test expression's QTI type and diagnose invalid operands and scope. */
22
+ export function checkTestExpression(expression, declarations, categories, scope, diagnostics) {
23
+ const reject = (code, message) => {
24
+ diagnostics.push({
25
+ code: `test.${code}`,
26
+ severity: "error",
27
+ message,
28
+ source: expression.source,
29
+ });
30
+ };
31
+ const check = (child) => checkTestExpression(child, declarations, categories, scope, diagnostics);
32
+ if (!testExpressionSyntax.some((syntax) => syntax.type === expression.type)) {
33
+ reject("expression.unsupported", "Expression is outside the supported test execution profile.");
34
+ return undefined;
35
+ }
36
+ switch (expression.type) {
37
+ case "baseValue":
38
+ if (!isTestScalarValue(expression.baseType, expression.value)) {
39
+ reject("expression.value", "Expression values must match a supported scalar base type.");
40
+ return undefined;
41
+ }
42
+ return { baseType: expression.baseType, cardinality: "single" };
43
+ case "variable": {
44
+ const declaration = declarations.get(expression.identifier);
45
+ if (!declaration || !isTestBaseType(declaration.baseType)) {
46
+ reject("expression.variable", "Test expression references an undeclared or unsupported outcome.");
47
+ return undefined;
48
+ }
49
+ return { baseType: declaration.baseType, cardinality: "single" };
50
+ }
51
+ case "testVariables":
52
+ if (scope === "branch")
53
+ reject("branch.scope", "Test-variable aggregation belongs in outcome processing, not a branch rule.");
54
+ if (expression.variableIdentifier !== "SCORE" ||
55
+ (expression.includeCategory !== undefined && !categories.has(expression.includeCategory)))
56
+ reject("expression.testVariables", "This test profile aggregates item SCORE values from declared categories.");
57
+ return { baseType: "float", cardinality: "multiple" };
58
+ case "sum": {
59
+ const operands = expression.expressions.map(check);
60
+ if (!operands.length || operands.some((type) => !isNumeric(type)))
61
+ reject("expression.sum", "Test sums require numeric operands.");
62
+ return {
63
+ baseType: operands.every((type) => type?.baseType === "integer") ? "integer" : "float",
64
+ cardinality: "single",
65
+ };
66
+ }
67
+ case "numericCompare": {
68
+ const left = check(expression.left);
69
+ const right = check(expression.right);
70
+ if (!testExpressionSyntax.some((syntax) => syntax.type === "numericCompare" && syntax.operator === expression.operator))
71
+ reject("expression.compare", "Unsupported test comparison operator.");
72
+ if (!isNumeric(left) ||
73
+ left?.cardinality !== "single" ||
74
+ !isNumeric(right) ||
75
+ right?.cardinality !== "single")
76
+ reject("expression.compare", "Test comparisons require two scalar numbers.");
77
+ return { baseType: "boolean", cardinality: "single" };
78
+ }
79
+ case "and":
80
+ case "or": {
81
+ const operands = expression.expressions.map(check);
82
+ if (!operands.length || operands.some((type) => !isBoolean(type)))
83
+ reject("expression.boolean", "Test logic requires boolean operands.");
84
+ return { baseType: "boolean", cardinality: "single" };
85
+ }
86
+ case "not":
87
+ if (!isBoolean(check(expression.expression)))
88
+ reject("expression.boolean", "Test logic requires a boolean operand.");
89
+ return { baseType: "boolean", cardinality: "single" };
90
+ default:
91
+ return assertNever(expression);
92
+ }
93
+ }
94
+ function isNumeric(type) {
95
+ return type?.baseType === "integer" || type?.baseType === "float";
96
+ }
97
+ /** Whether a branch expression has the required single boolean type. */
98
+ export function isBoolean(type) {
99
+ return type?.baseType === "boolean" && type.cardinality === "single";
100
+ }
101
+ //# sourceMappingURL=test-expression-validation.js.map