@longsightgroup/qti3-core 0.10.5 → 0.11.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 (229) hide show
  1. package/README.md +153 -4
  2. package/dist/adaptive-turn-materializer.js +4 -5
  3. package/dist/adaptive-turn-materializer.js.map +1 -1
  4. package/dist/adaptive-turn.d.ts.map +1 -1
  5. package/dist/adaptive-turn.js +1 -0
  6. package/dist/adaptive-turn.js.map +1 -1
  7. package/dist/attempt-state.d.ts.map +1 -1
  8. package/dist/attempt-state.js +41 -1
  9. package/dist/attempt-state.js.map +1 -1
  10. package/dist/catalog.d.ts +8 -0
  11. package/dist/catalog.d.ts.map +1 -1
  12. package/dist/catalog.js +10 -0
  13. package/dist/catalog.js.map +1 -1
  14. package/dist/diagnostics.d.ts +13 -0
  15. package/dist/diagnostics.d.ts.map +1 -0
  16. package/dist/diagnostics.js +28 -0
  17. package/dist/diagnostics.js.map +1 -0
  18. package/dist/index.d.ts +5 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/item-scoring-expectation.d.ts +2 -0
  23. package/dist/item-scoring-expectation.d.ts.map +1 -1
  24. package/dist/item-scoring-expectation.js +8 -0
  25. package/dist/item-scoring-expectation.js.map +1 -1
  26. package/dist/item-submission-materialization.d.ts.map +1 -1
  27. package/dist/item-submission-materialization.js +2 -0
  28. package/dist/item-submission-materialization.js.map +1 -1
  29. package/dist/parser-processing.d.ts.map +1 -1
  30. package/dist/parser-processing.js +8 -18
  31. package/dist/parser-processing.js.map +1 -1
  32. package/dist/parser-values.d.ts.map +1 -1
  33. package/dist/parser-values.js +1 -3
  34. package/dist/parser-values.js.map +1 -1
  35. package/dist/parser.js +36 -6
  36. package/dist/parser.js.map +1 -1
  37. package/dist/processing-equality.d.ts +10 -0
  38. package/dist/processing-equality.d.ts.map +1 -0
  39. package/dist/processing-equality.js +78 -0
  40. package/dist/processing-equality.js.map +1 -0
  41. package/dist/processing-evaluator-comparison.d.ts.map +1 -1
  42. package/dist/processing-evaluator-comparison.js +14 -9
  43. package/dist/processing-evaluator-comparison.js.map +1 -1
  44. package/dist/processing-evaluator-numeric.d.ts.map +1 -1
  45. package/dist/processing-evaluator-numeric.js +2 -1
  46. package/dist/processing-evaluator-numeric.js.map +1 -1
  47. package/dist/processing-evaluator-string.d.ts.map +1 -1
  48. package/dist/processing-evaluator-string.js +26 -10
  49. package/dist/processing-evaluator-string.js.map +1 -1
  50. package/dist/processing-evaluator-variable.d.ts.map +1 -1
  51. package/dist/processing-evaluator-variable.js +9 -3
  52. package/dist/processing-evaluator-variable.js.map +1 -1
  53. package/dist/processing-evaluator.d.ts +5 -1
  54. package/dist/processing-evaluator.d.ts.map +1 -1
  55. package/dist/processing-evaluator.js +13 -4
  56. package/dist/processing-evaluator.js.map +1 -1
  57. package/dist/processing-expression-children.d.ts.map +1 -1
  58. package/dist/processing-expression-children.js +2 -3
  59. package/dist/processing-expression-children.js.map +1 -1
  60. package/dist/processing-expression-tags.d.ts +2 -1
  61. package/dist/processing-expression-tags.d.ts.map +1 -1
  62. package/dist/processing-expression-tags.js +2 -1
  63. package/dist/processing-expression-tags.js.map +1 -1
  64. package/dist/processing-mapping.d.ts.map +1 -1
  65. package/dist/processing-mapping.js +26 -16
  66. package/dist/processing-mapping.js.map +1 -1
  67. package/dist/processing-state.d.ts +2 -2
  68. package/dist/processing-state.d.ts.map +1 -1
  69. package/dist/processing-state.js +5 -2
  70. package/dist/processing-state.js.map +1 -1
  71. package/dist/processing-values.d.ts +1 -2
  72. package/dist/processing-values.d.ts.map +1 -1
  73. package/dist/processing-values.js +1 -3
  74. package/dist/processing-values.js.map +1 -1
  75. package/dist/processing-variables.d.ts.map +1 -1
  76. package/dist/processing-variables.js +10 -5
  77. package/dist/processing-variables.js.map +1 -1
  78. package/dist/qti-package-assets.d.ts.map +1 -1
  79. package/dist/qti-package-assets.js +16 -10
  80. package/dist/qti-package-assets.js.map +1 -1
  81. package/dist/qti-package-manifest.d.ts +1 -0
  82. package/dist/qti-package-manifest.d.ts.map +1 -1
  83. package/dist/qti-package-manifest.js +1 -0
  84. package/dist/qti-package-manifest.js.map +1 -1
  85. package/dist/qti-package-metadata.d.ts.map +1 -1
  86. package/dist/qti-package-metadata.js +11 -0
  87. package/dist/qti-package-metadata.js.map +1 -1
  88. package/dist/qti-package-plan.d.ts +1 -1
  89. package/dist/qti-package-plan.d.ts.map +1 -1
  90. package/dist/qti-package-types.d.ts +9 -0
  91. package/dist/qti-package-types.d.ts.map +1 -1
  92. package/dist/qti-package-xml.d.ts +6 -1
  93. package/dist/qti-package-xml.d.ts.map +1 -1
  94. package/dist/qti-package-xml.js +11 -6
  95. package/dist/qti-package-xml.js.map +1 -1
  96. package/dist/qti-package-zip.d.ts +13 -1
  97. package/dist/qti-package-zip.d.ts.map +1 -1
  98. package/dist/qti-package-zip.js +185 -54
  99. package/dist/qti-package-zip.js.map +1 -1
  100. package/dist/qti-package.d.ts +12 -5
  101. package/dist/qti-package.d.ts.map +1 -1
  102. package/dist/qti-package.js +63 -8
  103. package/dist/qti-package.js.map +1 -1
  104. package/dist/response-validation-policy.d.ts +3 -1
  105. package/dist/response-validation-policy.d.ts.map +1 -1
  106. package/dist/response-validation-policy.js +66 -6
  107. package/dist/response-validation-policy.js.map +1 -1
  108. package/dist/response-validation.d.ts +3 -1
  109. package/dist/response-validation.d.ts.map +1 -1
  110. package/dist/response-validation.js +32 -10
  111. package/dist/response-validation.js.map +1 -1
  112. package/dist/scoring-disposition-policy.d.ts.map +1 -1
  113. package/dist/scoring-disposition-policy.js +6 -2
  114. package/dist/scoring-disposition-policy.js.map +1 -1
  115. package/dist/serializer-processing-expressions.d.ts.map +1 -1
  116. package/dist/serializer-processing-expressions.js +2 -10
  117. package/dist/serializer-processing-expressions.js.map +1 -1
  118. package/dist/server-scoring.d.ts.map +1 -1
  119. package/dist/server-scoring.js +1 -0
  120. package/dist/server-scoring.js.map +1 -1
  121. package/dist/session-builtins.d.ts +16 -0
  122. package/dist/session-builtins.d.ts.map +1 -0
  123. package/dist/session-builtins.js +58 -0
  124. package/dist/session-builtins.js.map +1 -0
  125. package/dist/session.d.ts +5 -1
  126. package/dist/session.d.ts.map +1 -1
  127. package/dist/session.js +63 -11
  128. package/dist/session.js.map +1 -1
  129. package/dist/support-evidence.d.ts.map +1 -1
  130. package/dist/support-evidence.js +16 -3
  131. package/dist/support-evidence.js.map +1 -1
  132. package/dist/support.d.ts.map +1 -1
  133. package/dist/support.js +72 -24
  134. package/dist/support.js.map +1 -1
  135. package/dist/text-response.d.ts +9 -0
  136. package/dist/text-response.d.ts.map +1 -0
  137. package/dist/text-response.js +102 -0
  138. package/dist/text-response.js.map +1 -0
  139. package/dist/trusted-item-session.d.ts +4 -1
  140. package/dist/trusted-item-session.d.ts.map +1 -1
  141. package/dist/trusted-item-session.js +12 -6
  142. package/dist/trusted-item-session.js.map +1 -1
  143. package/dist/types.d.ts +23 -3
  144. package/dist/types.d.ts.map +1 -1
  145. package/dist/validation-declaration-entries.d.ts.map +1 -1
  146. package/dist/validation-declaration-entries.js +11 -1
  147. package/dist/validation-declaration-entries.js.map +1 -1
  148. package/dist/validation-interactions.d.ts.map +1 -1
  149. package/dist/validation-interactions.js +102 -12
  150. package/dist/validation-interactions.js.map +1 -1
  151. package/dist/validation-item-children.d.ts +4 -0
  152. package/dist/validation-item-children.d.ts.map +1 -0
  153. package/dist/validation-item-children.js +45 -0
  154. package/dist/validation-item-children.js.map +1 -0
  155. package/dist/validation-processing.d.ts.map +1 -1
  156. package/dist/validation-processing.js +45 -12
  157. package/dist/validation-processing.js.map +1 -1
  158. package/dist/validation.d.ts.map +1 -1
  159. package/dist/validation.js +12 -0
  160. package/dist/validation.js.map +1 -1
  161. package/dist/value-guards.d.ts +4 -0
  162. package/dist/value-guards.d.ts.map +1 -0
  163. package/dist/value-guards.js +5 -0
  164. package/dist/value-guards.js.map +1 -0
  165. package/dist/xml-schema-regex-data.d.ts +48 -0
  166. package/dist/xml-schema-regex-data.d.ts.map +1 -0
  167. package/dist/xml-schema-regex-data.js +403 -0
  168. package/dist/xml-schema-regex-data.js.map +1 -0
  169. package/dist/xml-schema-regex-parser.d.ts +31 -0
  170. package/dist/xml-schema-regex-parser.d.ts.map +1 -0
  171. package/dist/xml-schema-regex-parser.js +245 -0
  172. package/dist/xml-schema-regex-parser.js.map +1 -0
  173. package/dist/xml-schema-regex.d.ts +14 -0
  174. package/dist/xml-schema-regex.d.ts.map +1 -0
  175. package/dist/xml-schema-regex.js +114 -0
  176. package/dist/xml-schema-regex.js.map +1 -0
  177. package/package.json +1 -1
  178. package/src/adaptive-turn-materializer.ts +4 -3
  179. package/src/adaptive-turn.ts +1 -0
  180. package/src/attempt-state.ts +54 -1
  181. package/src/catalog.ts +29 -0
  182. package/src/diagnostics.ts +29 -0
  183. package/src/index.ts +16 -0
  184. package/src/item-scoring-expectation.ts +8 -0
  185. package/src/item-submission-materialization.ts +2 -0
  186. package/src/parser-processing.ts +15 -18
  187. package/src/parser-values.ts +1 -5
  188. package/src/parser.ts +38 -6
  189. package/src/processing-equality.ts +104 -0
  190. package/src/processing-evaluator-comparison.ts +19 -14
  191. package/src/processing-evaluator-numeric.ts +2 -6
  192. package/src/processing-evaluator-string.ts +25 -18
  193. package/src/processing-evaluator-variable.ts +8 -3
  194. package/src/processing-evaluator.ts +20 -7
  195. package/src/processing-expression-children.ts +2 -3
  196. package/src/processing-expression-tags.ts +2 -1
  197. package/src/processing-mapping.ts +31 -25
  198. package/src/processing-state.ts +6 -1
  199. package/src/processing-values.ts +2 -11
  200. package/src/processing-variables.ts +9 -7
  201. package/src/qti-package-assets.ts +20 -13
  202. package/src/qti-package-manifest.ts +1 -0
  203. package/src/qti-package-metadata.ts +11 -0
  204. package/src/qti-package-plan.ts +1 -1
  205. package/src/qti-package-types.ts +10 -0
  206. package/src/qti-package-xml.ts +11 -6
  207. package/src/qti-package-zip.ts +330 -97
  208. package/src/qti-package.ts +106 -7
  209. package/src/response-validation-policy.ts +76 -4
  210. package/src/response-validation.ts +51 -5
  211. package/src/scoring-disposition-policy.ts +7 -2
  212. package/src/serializer-processing-expressions.ts +8 -25
  213. package/src/server-scoring.ts +1 -0
  214. package/src/session-builtins.ts +75 -0
  215. package/src/session.ts +64 -8
  216. package/src/support-evidence.ts +16 -3
  217. package/src/support.ts +94 -24
  218. package/src/text-response.ts +106 -0
  219. package/src/trusted-item-session.ts +17 -5
  220. package/src/types.ts +32 -4
  221. package/src/validation-declaration-entries.ts +11 -1
  222. package/src/validation-interactions.ts +139 -14
  223. package/src/validation-item-children.ts +48 -0
  224. package/src/validation-processing.ts +47 -10
  225. package/src/validation.ts +14 -0
  226. package/src/value-guards.ts +6 -0
  227. package/src/xml-schema-regex-data.ts +404 -0
  228. package/src/xml-schema-regex-parser.ts +234 -0
  229. package/src/xml-schema-regex.ts +115 -0
@@ -4,6 +4,7 @@ export function scoreQtiItemServerSide(input) {
4
4
  itemXml: input.itemXml,
5
5
  diagnosticPrefix: "serverScoring",
6
6
  allowedUndeclaredResponseIdentifiers: input.allowedUndeclaredResponseIdentifiers,
7
+ sessionEnvironment: input.sessionEnvironment,
7
8
  submission: {
8
9
  trustedResponses: input.trustedResponses,
9
10
  trustedInteractionStates: input.trustedInteractionStates,
@@ -1 +1 @@
1
- {"version":3,"file":"server-scoring.js","sourceRoot":"","sources":["../src/server-scoring.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,GAItB,MAAM,2BAA2B,CAAC;AAmBnC,MAAM,UAAU,sBAAsB,CAAC,KAA4B;IACjE,MAAM,MAAM,GAAG,qBAAqB,CAAC;QACnC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,gBAAgB,EAAE,eAAe;QACjC,oCAAoC,EAAE,KAAK,CAAC,oCAAoC;QAChF,UAAU,EAAE;YACV,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;SACzD;QACD,aAAa,EAAE,KAAK,CAAC,MAAM;QAC3B,OAAO,EAAE,QAAQ;QACjB,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"server-scoring.js","sourceRoot":"","sources":["../src/server-scoring.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,GAItB,MAAM,2BAA2B,CAAC;AAmBnC,MAAM,UAAU,sBAAsB,CAAC,KAA4B;IACjE,MAAM,MAAM,GAAG,qBAAqB,CAAC;QACnC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,gBAAgB,EAAE,eAAe;QACjC,oCAAoC,EAAE,KAAK,CAAC,oCAAoC;QAChF,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,UAAU,EAAE;YACV,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;SACzD;QACD,aAAa,EAAE,KAAK,CAAC,MAAM;QAC3B,OAAO,EAAE,QAAQ;QACjB,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { QtiBuiltInVariables, QtiDiagnostic, QtiSessionContext, QtiValue } from "./types.js";
2
+ export interface QtiSessionEnvironment {
3
+ /** Host context, resolved before template processing. Unspecified fields are empty strings. */
4
+ context?: Partial<QtiSessionContext> | undefined;
5
+ /** Accumulated item-session seconds supplied by a scoring host. */
6
+ duration?: number | undefined;
7
+ /** Monotonic milliseconds supplied by a delivery host; suspension time is excluded. */
8
+ now?: (() => number) | undefined;
9
+ }
10
+ export declare function createSessionBuiltIns(prior: QtiBuiltInVariables | undefined, options: QtiSessionEnvironment, report: (diagnostic: QtiDiagnostic) => void): {
11
+ state: QtiBuiltInVariables;
12
+ captureTime: (active: boolean) => void;
13
+ duration: () => QtiValue;
14
+ };
15
+ export declare function builtInVariableBaseType(identifier: string): "integer" | "float" | "identifier" | undefined;
16
+ //# sourceMappingURL=session-builtins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-builtins.d.ts","sourceRoot":"","sources":["../src/session-builtins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAElG,MAAM,WAAW,qBAAqB;IACpC,+FAA+F;IAC/F,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IACjD,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,uFAAuF;IACvF,GAAG,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;CAClC;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,mBAAmB,GAAG,SAAS,EACtC,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,CAAC,UAAU,EAAE,aAAa,KAAK,IAAI;;0BAmBd,OAAO,KAAG,IAAI;oBAmBtB,QAAQ;EAa9B;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,GACjB,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAKhD"}
@@ -0,0 +1,58 @@
1
+ export function createSessionBuiltIns(prior, options, report) {
2
+ const state = {
3
+ numAttempts: prior?.numAttempts ?? 0,
4
+ attemptInProgress: prior?.attemptInProgress ?? false,
5
+ duration: options.duration ?? prior?.duration ?? (options.now ? 0 : null),
6
+ context: {
7
+ candidateIdentifier: options.context?.candidateIdentifier ?? prior?.context.candidateIdentifier ?? "",
8
+ testIdentifier: options.context?.testIdentifier ?? prior?.context.testIdentifier ?? "",
9
+ environmentIdentifier: options.context?.environmentIdentifier ?? prior?.context.environmentIdentifier ?? "",
10
+ },
11
+ };
12
+ let previousTime = options.now?.();
13
+ let elapsed = state.duration;
14
+ let timingValid = elapsed === null || (Number.isFinite(elapsed) && elapsed >= 0);
15
+ if (!timingValid)
16
+ state.duration = elapsed = null;
17
+ function captureTime(active) {
18
+ if (!options.now)
19
+ return;
20
+ const current = options.now();
21
+ if (!Number.isFinite(current) ||
22
+ previousTime === undefined ||
23
+ !Number.isFinite(previousTime) ||
24
+ current < previousTime) {
25
+ timingValid = false;
26
+ elapsed = state.duration = null;
27
+ }
28
+ else if (active && elapsed !== null) {
29
+ elapsed += (current - previousTime) / 1000;
30
+ // Preserve clock precision across suspension and restoration.
31
+ state.duration = elapsed;
32
+ }
33
+ previousTime = current;
34
+ }
35
+ function duration() {
36
+ if (state.duration !== null && timingValid)
37
+ return Math.floor(state.duration * 1000) / 1000;
38
+ report({
39
+ code: timingValid ? "session.duration.unavailable" : "session.duration.invalid",
40
+ severity: "error",
41
+ message: timingValid
42
+ ? "Reading duration requires host-supplied accumulated seconds or a monotonic clock."
43
+ : "Duration requires finite non-negative seconds and a monotonic finite clock.",
44
+ });
45
+ return null;
46
+ }
47
+ return { state, captureTime, duration };
48
+ }
49
+ export function builtInVariableBaseType(identifier) {
50
+ if (identifier === "numAttempts")
51
+ return "integer";
52
+ if (identifier === "duration")
53
+ return "float";
54
+ if (identifier === "completionStatus")
55
+ return "identifier";
56
+ return undefined;
57
+ }
58
+ //# sourceMappingURL=session-builtins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-builtins.js","sourceRoot":"","sources":["../src/session-builtins.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,qBAAqB,CACnC,KAAsC,EACtC,OAA8B,EAC9B,MAA2C;IAE3C,MAAM,KAAK,GAAwB;QACjC,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC;QACpC,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,IAAI,KAAK;QACpD,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK,EAAE,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,OAAO,EAAE;YACP,mBAAmB,EACjB,OAAO,CAAC,OAAO,EAAE,mBAAmB,IAAI,KAAK,EAAE,OAAO,CAAC,mBAAmB,IAAI,EAAE;YAClF,cAAc,EAAE,OAAO,CAAC,OAAO,EAAE,cAAc,IAAI,KAAK,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;YACtF,qBAAqB,EACnB,OAAO,CAAC,OAAO,EAAE,qBAAqB,IAAI,KAAK,EAAE,OAAO,CAAC,qBAAqB,IAAI,EAAE;SACvF;KACF,CAAC;IACF,IAAI,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;IACnC,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC7B,IAAI,WAAW,GAAG,OAAO,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;IACjF,IAAI,CAAC,WAAW;QAAE,KAAK,CAAC,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;IAElD,SAAS,WAAW,CAAC,MAAe;QAClC,IAAI,CAAC,OAAO,CAAC,GAAG;YAAE,OAAO;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC9B,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YACzB,YAAY,KAAK,SAAS;YAC1B,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC9B,OAAO,GAAG,YAAY,EACtB,CAAC;YACD,WAAW,GAAG,KAAK,CAAC;YACpB,OAAO,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAClC,CAAC;aAAM,IAAI,MAAM,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC;YAC3C,8DAA8D;YAC9D,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC3B,CAAC;QACD,YAAY,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,SAAS,QAAQ;QACf,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,WAAW;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAC5F,MAAM,CAAC;YACL,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,0BAA0B;YAC/E,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,WAAW;gBAClB,CAAC,CAAC,mFAAmF;gBACrF,CAAC,CAAC,6EAA6E;SAClF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,UAAkB;IAElB,IAAI,UAAU,KAAK,aAAa;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,UAAU,KAAK,UAAU;QAAE,OAAO,OAAO,CAAC;IAC9C,IAAI,UAAU,KAAK,kBAAkB;QAAE,OAAO,YAAY,CAAC;IAC3D,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/dist/session.d.ts CHANGED
@@ -2,7 +2,9 @@ import type { QtiAssessmentItem, QtiAttemptStatus, QtiAttemptStateV1, QtiDocumen
2
2
  import type { QtiCustomOperatorRegistry } from "./custom-operators.js";
3
3
  export type { QtiCustomOperatorContext, QtiCustomOperatorHandler, QtiCustomOperatorRegistry, } from "./custom-operators.js";
4
4
  export { assertQtiAttemptStateV1, isQtiAttemptStateV1 } from "./attempt-state.js";
5
- export interface QtiItemSessionOptions {
5
+ import { type QtiSessionEnvironment } from "./session-builtins.js";
6
+ export type { QtiSessionEnvironment } from "./session-builtins.js";
7
+ export interface QtiItemSessionOptions extends QtiSessionEnvironment {
6
8
  randomSeed?: string | number | undefined;
7
9
  customOperators?: QtiCustomOperatorRegistry | undefined;
8
10
  allowedUndeclaredResponseIdentifiers?: readonly string[] | undefined;
@@ -10,6 +12,8 @@ export interface QtiItemSessionOptions {
10
12
  export interface QtiItemSession {
11
13
  readonly item: QtiAssessmentItem;
12
14
  correctResponses(): Record<string, QtiValue>;
15
+ /** Starts an attempt without requiring a response; repeated calls and resume are idempotent. */
16
+ beginAttempt(): void;
13
17
  respond(identifier: string, value: QtiValue): void;
14
18
  setInteractionState(identifier: string, state: QtiPortableCustomStateValue): void;
15
19
  interactionState(identifier: string): QtiPortableCustomStateValue | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAEjB,WAAW,EACX,gBAAgB,EAChB,2BAA2B,EAI3B,cAAc,EAEd,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAgClF,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC,eAAe,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IACxD,oCAAoC,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CACtE;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACnD,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAClF,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS,CAAC;IAC9E,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,KAAK,IAAI,cAAc,CAAC;IACxB,SAAS,IAAI,iBAAiB,CAAC;CAChC;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GACjC,gBAAgB,EAAE,CAQpB;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,iBAAiB,EAC9B,OAAO,GAAE,qBAA0B,GAClC,cAAc,CA0JhB"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAEjB,WAAW,EACX,gBAAgB,EAChB,2BAA2B,EAI3B,cAAc,EAEd,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAiBlF,OAAO,EAAyB,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC1F,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAiBnE,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC,eAAe,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IACxD,oCAAoC,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CACtE;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,gGAAgG;IAChG,YAAY,IAAI,IAAI,CAAC;IACrB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACnD,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAClF,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS,CAAC;IAC9E,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,KAAK,IAAI,cAAc,CAAC;IACxB,SAAS,IAAI,iBAAiB,CAAC;CAChC;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GACjC,gBAAgB,EAAE,CASpB;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,iBAAiB,EAC9B,OAAO,GAAE,qBAA0B,GAClC,cAAc,CAsMhB"}
package/dist/session.js CHANGED
@@ -9,15 +9,15 @@ export { assertQtiAttemptStateV1, isQtiAttemptStateV1 } from "./attempt-state.js
9
9
  import { COMPLETION_COMPLETED, COMPLETION_NOT_ATTEMPTED, COMPLETION_STATUS, COMPLETION_UNKNOWN, } from "./attempt-state-constants.js";
10
10
  import { cloneDiagnostics, clonePortableCustomState, clonePortableCustomStateRecord, cloneValue, cloneValueRecord, serialize, } from "./processing-state.js";
11
11
  import { booleanValue, normalizeValueForCardinality, qtiMatchValues } from "./processing-values.js";
12
+ import { createSessionBuiltIns } from "./session-builtins.js";
12
13
  export function visibleModalFeedback(item, outcomes) {
13
14
  return item.modalFeedback.filter((feedback) => {
14
- if (feedback.showHide === "hide")
15
- return false;
16
15
  const outcome = outcomes[feedback.outcomeIdentifier];
17
16
  const outcomeValue = outcome === undefined ? null : outcome;
18
- if (Array.isArray(outcomeValue))
19
- return outcomeValue.includes(feedback.identifier);
20
- return qtiValueToString(outcomeValue) === feedback.identifier;
17
+ const matches = Array.isArray(outcomeValue)
18
+ ? outcomeValue.includes(feedback.identifier)
19
+ : qtiValueToString(outcomeValue) === feedback.identifier;
20
+ return feedback.showHide === "hide" ? !matches : matches;
21
21
  });
22
22
  }
23
23
  export function createItemSession(document, priorState, options = {}) {
@@ -34,6 +34,12 @@ export function createItemSession(document, priorState, options = {}) {
34
34
  const interactionStates = {};
35
35
  const correctResponses = {};
36
36
  let status = priorState?.status ?? "initialized";
37
+ const builtInDiagnostics = [];
38
+ const builtIns = createSessionBuiltIns(priorState?.builtInVariables, options, (diagnostic) => {
39
+ if (!builtInDiagnostics.some((existing) => existing.code === diagnostic.code))
40
+ builtInDiagnostics.push(diagnostic);
41
+ });
42
+ const captureTime = () => builtIns.captureTime(status !== "suspended" && status !== "completed");
37
43
  const random = seededRandom(options.randomSeed ?? document.item.identifier);
38
44
  const customOperators = options.customOperators ?? {};
39
45
  const allowedUndeclaredResponseIdentifiers = new Set(options.allowedUndeclaredResponseIdentifiers ?? []);
@@ -51,13 +57,30 @@ export function createItemSession(document, priorState, options = {}) {
51
57
  templateValues[declaration.identifier] = cloneValue(declaration.defaultValue);
52
58
  }
53
59
  for (const outcome of document.item.outcomeDeclarations) {
54
- outcomes[outcome.identifier] = cloneValue(outcome.defaultValue);
60
+ const numericSingle = outcome.cardinality === "single" &&
61
+ (outcome.baseType === "integer" || outcome.baseType === "float");
62
+ outcomes[outcome.identifier] = cloneValue(outcome.defaultValue ?? (numericSingle ? 0 : null));
55
63
  }
56
64
  outcomes[COMPLETION_STATUS] = COMPLETION_NOT_ATTEMPTED;
57
65
  const baseResponses = cloneValueRecord(responses);
58
66
  const baseResponseDefaults = cloneValueRecord(responseDefaults);
59
67
  const baseOutcomes = cloneValueRecord(outcomes);
60
- const evaluation = createEvaluationContext(document, responses, outcomes, templateValues, correctResponses, random, customOperators, { allowedUndeclaredResponseIdentifiers });
68
+ const evaluation = createEvaluationContext(document, responses, outcomes, templateValues, correctResponses, random, customOperators, {
69
+ allowedUndeclaredResponseIdentifiers,
70
+ builtInVariable(identifier) {
71
+ if (identifier === "completionStatus")
72
+ return outcomes[COMPLETION_STATUS] ?? COMPLETION_NOT_ATTEMPTED;
73
+ if (identifier === "numAttempts")
74
+ return builtIns.state.numAttempts;
75
+ if (identifier === "QTI_CONTEXT")
76
+ return { ...builtIns.state.context };
77
+ if (identifier === "duration" && document.item.timeDependent) {
78
+ captureTime();
79
+ return builtIns.duration();
80
+ }
81
+ return undefined;
82
+ },
83
+ });
61
84
  const processingContext = {
62
85
  responseDefaults,
63
86
  evaluation,
@@ -68,12 +91,14 @@ export function createItemSession(document, priorState, options = {}) {
68
91
  resetCorrectResponses(document, correctResponses);
69
92
  applyTemplateProcessing(processingContext, new Set(Object.keys(priorTemplateValues)), baseResponses, baseResponseDefaults, baseOutcomes);
70
93
  }
94
+ const templateDiagnostics = [...evaluation.diagnostics, ...builtInDiagnostics];
71
95
  const defaultOutcomes = cloneValueRecord(outcomes);
72
96
  Object.assign(responses, priorResponses);
73
97
  Object.assign(outcomes, priorOutcomes);
74
98
  Object.assign(interactionStates, priorInteractionStates);
75
99
  return {
76
100
  item: document.item,
101
+ beginAttempt: startAttempt,
77
102
  correctResponses() {
78
103
  return cloneValueRecord(correctResponses);
79
104
  },
@@ -95,10 +120,17 @@ export function createItemSession(document, priorState, options = {}) {
95
120
  return state === undefined ? undefined : clonePortableCustomState(state);
96
121
  },
97
122
  setStatus(nextStatus) {
123
+ captureTime();
124
+ if (nextStatus === "interacting")
125
+ startAttempt();
126
+ if (nextStatus === "completed")
127
+ builtIns.state.attemptInProgress = false;
98
128
  status = nextStatus;
99
129
  },
100
130
  score() {
101
- const diagnostics = [];
131
+ evaluation.diagnostics.length = 0;
132
+ builtInDiagnostics.length = 0;
133
+ captureTime();
102
134
  if (document.item.adaptive || status !== "initialized") {
103
135
  startAttempt();
104
136
  }
@@ -108,17 +140,31 @@ export function createItemSession(document, priorState, options = {}) {
108
140
  outcomes[COMPLETION_STATUS] = completionStatus;
109
141
  }
110
142
  applyResponseProcessing(processingContext);
143
+ builtIns.state.attemptInProgress = false;
144
+ const diagnostics = [
145
+ ...templateDiagnostics,
146
+ ...evaluation.diagnostics,
147
+ ...builtInDiagnostics,
148
+ ];
111
149
  if (outcomes[COMPLETION_STATUS] === COMPLETION_COMPLETED)
112
150
  status = "completed";
113
151
  validationMessages = diagnostics;
114
- const state = serialize(document.item.identifier, status, responses, outcomes, templateValues, interactionStates, diagnostics);
152
+ const state = serialize(document.item.identifier, status, responses, outcomes, templateValues, interactionStates, diagnostics, builtIns.state);
115
153
  return { outcomes: cloneValueRecord(outcomes), diagnostics, state };
116
154
  },
117
155
  serialize() {
118
- return serialize(document.item.identifier, status, responses, outcomes, templateValues, interactionStates, validationMessages);
156
+ captureTime();
157
+ return serialize(document.item.identifier, status, responses, outcomes, templateValues, interactionStates, validationMessages, builtIns.state);
119
158
  },
120
159
  };
121
160
  function startAttempt() {
161
+ captureTime();
162
+ if (status === "completed")
163
+ return;
164
+ if (!builtIns.state.attemptInProgress) {
165
+ builtIns.state.numAttempts += 1;
166
+ builtIns.state.attemptInProgress = true;
167
+ }
122
168
  for (const [identifier, value] of Object.entries(responseDefaults)) {
123
169
  if (responses[identifier] === undefined)
124
170
  responses[identifier] = cloneValue(value);
@@ -139,6 +185,8 @@ function resetRecord(target, source) {
139
185
  function applyTemplateProcessing(context, preservedTemplateIdentifiers = new Set(), baseResponses = cloneValueRecord(context.evaluation.responses), baseResponseDefaults = cloneValueRecord(context.responseDefaults), baseOutcomes = cloneValueRecord(context.evaluation.outcomes)) {
140
186
  const { evaluation } = context;
141
187
  const rules = evaluation.document.item.templateProcessing?.rules ?? [];
188
+ // A retry or restored clone must derive defaults afresh from the authored declarations.
189
+ resetRecord(evaluation.defaultValues, {});
142
190
  let restarts = 0;
143
191
  for (let index = 0; index < rules.length; index += 1) {
144
192
  const rule = rules[index];
@@ -152,6 +200,7 @@ function applyTemplateProcessing(context, preservedTemplateIdentifiers = new Set
152
200
  resetRecord(evaluation.responses, cloneValueRecord(baseResponses));
153
201
  resetRecord(context.responseDefaults, cloneValueRecord(baseResponseDefaults));
154
202
  resetRecord(evaluation.outcomes, cloneValueRecord(baseOutcomes));
203
+ resetRecord(evaluation.defaultValues, {});
155
204
  resetCorrectResponses(evaluation.document, evaluation.correctResponses);
156
205
  restarts += 1;
157
206
  if (restarts <= 100)
@@ -211,6 +260,7 @@ function applyTemplateRule(context, rule, preservedTemplateIdentifiers) {
211
260
  const responseDeclaration = getResponseDeclaration(evaluation.document, rule.identifier);
212
261
  if (responseDeclaration) {
213
262
  const normalized = normalizeValueForCardinality(value, responseDeclaration.cardinality);
263
+ evaluation.defaultValues[rule.identifier] = cloneValue(normalized);
214
264
  if (normalized === null) {
215
265
  delete context.responseDefaults[rule.identifier];
216
266
  }
@@ -221,7 +271,9 @@ function applyTemplateRule(context, rule, preservedTemplateIdentifiers) {
221
271
  }
222
272
  const outcomeDeclaration = evaluation.document.item.outcomeDeclarations.find((declaration) => declaration.identifier === rule.identifier);
223
273
  if (outcomeDeclaration) {
224
- evaluation.outcomes[rule.identifier] = value;
274
+ const normalized = normalizeValueForCardinality(value, outcomeDeclaration.cardinality);
275
+ evaluation.defaultValues[rule.identifier] = cloneValue(normalized);
276
+ evaluation.outcomes[rule.identifier] = cloneValue(normalized);
225
277
  }
226
278
  return false;
227
279
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAOrD,OAAO,EAAE,uBAAuB,EAA0B,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,8BAA8B,EAC9B,UAAU,EACV,gBAAgB,EAChB,SAAS,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,4BAA4B,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEpG,OAAO,EAAE,qBAAqB,EAA8B,MAAM,uBAAuB,CAAC;AAqC1F,MAAM,UAAU,oBAAoB,CAClC,IAAuB,EACvB,QAAkC;IAElC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,YAAY,GAAa,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QACtE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;YACzC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC5C,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,UAAU,CAAC;QAC3D,OAAO,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,QAAqB,EACrB,UAA8B,EAC9B,UAAiC,EAAE;IAEnC,0BAA0B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEjD,MAAM,cAAc,GAAG,gBAAgB,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,UAAU,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC;IAC/E,MAAM,sBAAsB,GAAG,8BAA8B,CAC3D,UAAU,EAAE,iBAAiB,IAAI,EAAE,CACpC,CAAC;IACF,IAAI,kBAAkB,GAAG,gBAAgB,CAAC,UAAU,EAAE,kBAAkB,IAAI,EAAE,CAAC,CAAC;IAChF,MAAM,SAAS,GAA6B,EAAE,CAAC;IAC/C,MAAM,gBAAgB,GAA6B,EAAE,CAAC;IACtD,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAC9C,MAAM,cAAc,GAA6B,EAAE,CAAC;IACpD,MAAM,iBAAiB,GAAgD,EAAE,CAAC;IAC1E,MAAM,gBAAgB,GAA6B,EAAE,CAAC;IACtD,IAAI,MAAM,GAAqB,UAAU,EAAE,MAAM,IAAI,aAAa,CAAC;IACnE,MAAM,kBAAkB,GAAoB,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE;QAC3F,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC;YAC3E,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,WAAW,CAAC,CAAC;IACjG,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC;IACtD,MAAM,oCAAoC,GAAG,IAAI,GAAG,CAClD,OAAO,CAAC,oCAAoC,IAAI,EAAE,CACnD,CAAC;IACF,MAAM,iCAAiC,GAAG,IAAI,GAAG,CAC/C,QAAQ,CAAC,IAAI,CAAC,YAAY;SACvB,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,gBAAgB,CAAC;SAC9D,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,kBAAkB,CAAC;SACpD,MAAM,CAAC,CAAC,UAAU,EAAwB,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CACrE,CAAC;IAEF,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7D,gBAAgB,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QACnF,IAAI,WAAW,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YACtC,gBAAgB,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IACD,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7D,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAChF,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACxD,MAAM,aAAa,GACjB,OAAO,CAAC,WAAW,KAAK,QAAQ;YAChC,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;QACnE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAChG,CAAC;IACD,QAAQ,CAAC,iBAAiB,CAAC,GAAG,wBAAwB,CAAC;IACvD,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,uBAAuB,CACxC,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,MAAM,EACN,eAAe,EACf;QACE,oCAAoC;QACpC,eAAe,CAAC,UAAU;YACxB,IAAI,UAAU,KAAK,kBAAkB;gBACnC,OAAO,QAAQ,CAAC,iBAAiB,CAAC,IAAI,wBAAwB,CAAC;YACjE,IAAI,UAAU,KAAK,aAAa;gBAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;YACpE,IAAI,UAAU,KAAK,aAAa;gBAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACvE,IAAI,UAAU,KAAK,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC7D,WAAW,EAAE,CAAC;gBACd,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7B,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CACF,CAAC;IACF,MAAM,iBAAiB,GAA6B;QAClD,gBAAgB;QAChB,UAAU;KACX,CAAC;IAEF,uBAAuB,CACrB,iBAAiB,EACjB,IAAI,GAAG,EAAE,EACT,aAAa,EACb,oBAAoB,EACpB,YAAY,CACb,CAAC;IACF,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;QACnD,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAClD,uBAAuB,CACrB,iBAAiB,EACjB,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EACzC,aAAa,EACb,oBAAoB,EACpB,YAAY,CACb,CAAC;IACJ,CAAC;IACD,MAAM,mBAAmB,GAAG,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,GAAG,kBAAkB,CAAC,CAAC;IAC/E,MAAM,eAAe,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACzC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;IAEzD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,YAAY,EAAE,YAAY;QAC1B,gBAAgB;YACd,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,CAAC,UAAkB,EAAE,KAAe;YACzC,SAAS,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC1C,kBAAkB,GAAG,EAAE,CAAC;YACxB,YAAY,EAAE,CAAC;QACjB,CAAC;QACD,mBAAmB,CAAC,UAAkB,EAAE,KAAkC;YACxE,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,qDAAqD,UAAU,GAAG,CAAC,CAAC;YACtF,CAAC;YACD,iBAAiB,CAAC,UAAU,CAAC,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAChE,kBAAkB,GAAG,EAAE,CAAC;YACxB,YAAY,EAAE,CAAC;QACjB,CAAC;QACD,gBAAgB,CAAC,UAAkB;YACjC,MAAM,KAAK,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC5C,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC3E,CAAC;QACD,SAAS,CAAC,UAA4B;YACpC,WAAW,EAAE,CAAC;YACd,IAAI,UAAU,KAAK,aAAa;gBAAE,YAAY,EAAE,CAAC;YACjD,IAAI,UAAU,KAAK,WAAW;gBAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC;YACzE,MAAM,GAAG,UAAU,CAAC;QACtB,CAAC;QACD,KAAK;YACH,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YAClC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9B,WAAW,EAAE,CAAC;YACd,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;gBACvD,YAAY,EAAE,CAAC;YACjB,CAAC;YACD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,wBAAwB,CAAC;YACjF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC5B,WAAW,CAAC,QAAQ,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;gBACzD,QAAQ,CAAC,iBAAiB,CAAC,GAAG,gBAAgB,CAAC;YACjD,CAAC;YACD,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;YAC3C,QAAQ,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC;YACzC,MAAM,WAAW,GAAG;gBAClB,GAAG,mBAAmB;gBACtB,GAAG,UAAU,CAAC,WAAW;gBACzB,GAAG,kBAAkB;aACtB,CAAC;YACF,IAAI,QAAQ,CAAC,iBAAiB,CAAC,KAAK,oBAAoB;gBAAE,MAAM,GAAG,WAAW,CAAC;YAC/E,kBAAkB,GAAG,WAAW,CAAC;YACjC,MAAM,KAAK,GAAG,SAAS,CACrB,QAAQ,CAAC,IAAI,CAAC,UAAU,EACxB,MAAM,EACN,SAAS,EACT,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,QAAQ,CAAC,KAAK,CACf,CAAC;YACF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QACtE,CAAC;QACD,SAAS;YACP,WAAW,EAAE,CAAC;YACd,OAAO,SAAS,CACd,QAAQ,CAAC,IAAI,CAAC,UAAU,EACxB,MAAM,EACN,SAAS,EACT,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,CAAC,KAAK,CACf,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,SAAS,YAAY;QACnB,WAAW,EAAE,CAAC;QACd,IAAI,MAAM,KAAK,WAAW;YAAE,OAAO;QACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;YACtC,QAAQ,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;YAChC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC1C,CAAC;QACD,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACnE,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,SAAS;gBAAE,SAAS,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,WAAW;YAAE,MAAM,GAAG,aAAa,CAAC;QAC/E,IAAI,QAAQ,CAAC,iBAAiB,CAAC,KAAK,wBAAwB,EAAE,CAAC;YAC7D,QAAQ,CAAC,iBAAiB,CAAC,GAAG,kBAAkB,CAAC;QACnD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAI,MAAyB,EAAE,MAAyB;IAC1E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAiC,EACjC,+BAA+B,IAAI,GAAG,EAAU,EAChD,gBAA0C,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EACxF,uBAAiD,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAC3F,eAAyC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;IAEtF,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC;IACvE,wFAAwF;IACxF,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,4BAA4B,CAAC,CAAC;QAClF,IAAI,UAAU;YAAE,OAAO;QACvB,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACtE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,mBAAmB,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;gBACpE,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;gBACnE,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC9E,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;gBACjE,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;gBAC1C,qBAAqB,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBACxE,QAAQ,IAAI,CAAC,CAAC;gBACd,IAAI,QAAQ,IAAI,GAAG;oBAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAqB,EACrB,cAAwC;IAExC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9C,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACD,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7D,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC;IACpE,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAqB,EACrB,gBAA0C;IAE1C,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7D,gBAAgB,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAChC,OAAiC,EACjC,UAAgD;IAEhD,OAAO,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACpF,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAiC,EACjC,SAAiC;IAEjC,IAAI,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,CAAC;QAAE,OAAO,SAAS,CAAC,SAAS,CAAC;IAC3F,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IACjF,CAAC;IACD,OAAO,SAAS,CAAC,SAAS,CAAC;AAC7B,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAiC,EACjC,IAAqB,EACrB,4BAAyC;IAEzC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB;QAAE,OAAO,KAAK,CAAC;IAErD,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtD,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,4BAA4B,CAAC,CAAC;YACxF,IAAI,UAAU;gBAAE,OAAO,IAAI,CAAC;QAC9B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACrC,IAAI,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QACpE,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACpC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACzF,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,4BAA4B,CAAC,KAAK,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACxF,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;YACnE,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;YACzD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,kBAAkB,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC1E,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAC5D,CAAC;QACF,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,4BAA4B,CAAC,KAAK,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;YACvF,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;YACnE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,sBAAsB,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACjF,IAAI,WAAW;QACb,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,4BAA4B,CACzE,KAAK,EACL,WAAW,CAAC,WAAW,CACxB,CAAC;IACJ,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAiC;IAChE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC/B,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAC/D,IAAI,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7B,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,EAAE,QAAQ;QACvC,CAAC,CAAC,CAAC,8BAA8B,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC;QACxE,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;QACnC,OAAO;IACT,CAAC;IACD,IAAI,YAAY,KAAK,aAAa,IAAI,YAAY,KAAK,kBAAkB,EAAE,CAAC;QAC1E,MAAM,WAAW,GAAG,sBAAsB,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC5E,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,WAAW;YACrC,CAAC,CAAC,kBAAkB,CAChB,WAAW,EACX,UAAU,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,EACrC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,IAAI,IAAI,CAC7C;YACH,CAAC,CAAC,CAAC,CAAC;QACN,OAAO;IACT,CAAC;IAED,IAAI,YAAY,KAAK,cAAc,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,sBAAsB,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,WAAW;YACzB,CAAC,CAAC,cAAc,CACZ,UAAU,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,EACrC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,IAAI,IAAI,EAC5C,WAAW,CAAC,WAAW,KAAK,SAAS,EACrC,WAAW,CAAC,QAAQ,CACrB;YACH,CAAC,CAAC,IAAI,CAAC;QACT,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAiC,EAAE,KAAwB;IACrF,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc;YAAE,OAAO,IAAI,CAAC;QAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACnE,IAAI,UAAU;gBAAE,OAAO,IAAI,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,UAAU;gBAAE,OAAO,IAAI,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACvC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,kBAAkB,CACvD,UAAU,CAAC,QAAQ,EACnB,IAAI,CAAC,UAAU,EACf,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CACrC,CAAC;YACF,SAAS;QACX,CAAC;QACD,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAiC,EACjC,SAA+B;IAE/B,OAAO,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAClF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"support-evidence.d.ts","sourceRoot":"","sources":["../src/support-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,eAAO,MAAM,mBAAmB,mCAAmC,CAAC;AACpE,eAAO,MAAM,oBAAoB,iDAAiD,CAAC;AACnF,eAAO,MAAM,sBAAsB,kDAAkD,CAAC;AACtF,eAAO,MAAM,sBAAsB,kDAAkD,CAAC;AACtF,eAAO,MAAM,uBAAuB,mDAAmD,CAAC;AACxF,eAAO,MAAM,qBAAqB,iDAAiD,CAAC;AAEpF,eAAO,MAAM,sBAAsB,UAA8C,CAAC;AAClF,eAAO,MAAM,oBAAoB,UAA4C,CAAC;AAC9E,eAAO,MAAM,oBAAoB,UAA4C,CAAC;AAC9E,eAAO,MAAM,uBAAuB,UAAgD,CAAC;AACrF,eAAO,MAAM,mBAAmB,UAA2C,CAAC;AAC5E,eAAO,MAAM,kBAAkB,UAA0C,CAAC;AAC1E,eAAO,MAAM,wBAAwB,UAAiD,CAAC;AACvF,eAAO,MAAM,qBAAqB,UAA6C,CAAC;AAchF,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB;;;;CAIgB,CAAC;AAEvD,eAAO,MAAM,wBAAwB,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC,CAM3F,CAAC;AAEF,wBAAgB,eAAe,CAAC,eAAe,EAAE,kBAAkB,GAAG,MAAM,EAAE,CA0C7E;AAED,wBAAgB,0BAA0B,CAAC,eAAe,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAKxF;AAED,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAQrF"}
1
+ {"version":3,"file":"support-evidence.d.ts","sourceRoot":"","sources":["../src/support-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,eAAO,MAAM,mBAAmB,mCAAmC,CAAC;AACpE,eAAO,MAAM,oBAAoB,iDAAiD,CAAC;AACnF,eAAO,MAAM,sBAAsB,kDAAkD,CAAC;AACtF,eAAO,MAAM,sBAAsB,kDAAkD,CAAC;AACtF,eAAO,MAAM,uBAAuB,mDAAmD,CAAC;AACxF,eAAO,MAAM,qBAAqB,iDAAiD,CAAC;AAEpF,eAAO,MAAM,sBAAsB,UAA8C,CAAC;AAClF,eAAO,MAAM,oBAAoB,UAA4C,CAAC;AAC9E,eAAO,MAAM,oBAAoB,UAA4C,CAAC;AAC9E,eAAO,MAAM,uBAAuB,UAAgD,CAAC;AACrF,eAAO,MAAM,mBAAmB,UAA2C,CAAC;AAC5E,eAAO,MAAM,kBAAkB,UAA0C,CAAC;AAC1E,eAAO,MAAM,wBAAwB,UAAiD,CAAC;AACvF,eAAO,MAAM,qBAAqB,UAA6C,CAAC;AAchF,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB;;;;CAIgB,CAAC;AAEvD,eAAO,MAAM,wBAAwB,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC,CAM3F,CAAC;AAEF,wBAAgB,eAAe,CAAC,eAAe,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAuD7E;AAED,wBAAgB,0BAA0B,CAAC,eAAe,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAKxF;AAED,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAQrF"}
@@ -44,21 +44,31 @@ export function browserTestsFor(interactionType) {
44
44
  "tests/browser/player-interaction-sweep.spec.ts",
45
45
  ];
46
46
  const extras = {
47
- associate: browserKeyboardA11yTests,
47
+ associate: [
48
+ ...browserKeyboardA11yTests,
49
+ "packages/core/src/association-contracts.test.ts",
50
+ "tests/browser/player-dom-behavior.spec.ts",
51
+ ],
48
52
  choice: ["tests/browser/player-choice.spec.ts", "tests/browser/player-dom-behavior.spec.ts"],
49
53
  drawing: ["tests/browser/player-graphic.spec.ts"],
50
54
  endAttempt: ["tests/browser/player-dom-behavior.spec.ts", ...browserKeyboardA11yTests],
51
55
  extendedText: [
56
+ "packages/core/src/text-response.test.ts",
52
57
  "tests/browser/player-dom-behavior.spec.ts",
53
58
  "tests/browser/player-extended-text-xhtml.spec.ts",
54
59
  ],
55
60
  gapMatch: ["tests/browser/player-gap-match.spec.ts"],
56
61
  graphicAssociate: ["tests/browser/player-graphic.spec.ts"],
57
62
  graphicGapMatch: [
63
+ "packages/core/src/core-session-graphic-gap-state.test.ts",
58
64
  "tests/browser/player-graphic-gap-match.spec.ts",
59
65
  "tests/browser/player-graphic.spec.ts",
66
+ ...browserLifecycleTests,
67
+ ],
68
+ graphicOrder: [
69
+ "packages/core/src/graphic-image-contracts.test.ts",
70
+ "tests/browser/player-graphic.spec.ts",
60
71
  ],
61
- graphicOrder: ["tests/browser/player-graphic.spec.ts"],
62
72
  hotspot: ["tests/browser/player-graphic.spec.ts"],
63
73
  hottext: ["tests/browser/player-hottext.spec.ts", "tests/browser/player-dom-behavior.spec.ts"],
64
74
  inlineChoice: ["tests/browser/player-inline-choice.spec.ts"],
@@ -74,7 +84,10 @@ export function browserTestsFor(interactionType) {
74
84
  "tests/browser/player-slider-cross-browser.spec.ts",
75
85
  ...browserKeyboardA11yTests,
76
86
  ],
77
- textEntry: ["tests/browser/player-dom-behavior.spec.ts"],
87
+ textEntry: [
88
+ "packages/core/src/text-response.test.ts",
89
+ "tests/browser/player-dom-behavior.spec.ts",
90
+ ],
78
91
  upload: ["tests/browser/player-dom-behavior.spec.ts"],
79
92
  };
80
93
  return [...base, ...(extras[interactionType] ?? [])];
@@ -1 +1 @@
1
- {"version":3,"file":"support-evidence.js","sourceRoot":"","sources":["../src/support-evidence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"support-evidence.js","sourceRoot":"","sources":["../src/support-evidence.ts"],"names":[],"mappings":"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"}
@@ -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,EAyJ1D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,6BAA6B,EA+G9D,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;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"}
package/dist/support.js CHANGED
@@ -59,7 +59,10 @@ export const processingSupport = [
59
59
  "packages/fixtures/xml/random-integer-template-reference.xml",
60
60
  "packages/fixtures/xml/template-content-reference.xml",
61
61
  ]),
62
- templateProcessingEntry("qti-set-default-value"),
62
+ {
63
+ ...templateProcessingEntry("qti-set-default-value"),
64
+ notes: "Updates effective response/outcome defaults for the clone, including explicit NULL overrides; rejected template passes discard their overrides.",
65
+ },
63
66
  templateProcessingEntry("qti-set-correct-response", [
64
67
  "packages/fixtures/xml/template-processing-reference.xml",
65
68
  "packages/fixtures/xml/random-integer-template-reference.xml",
@@ -100,28 +103,54 @@ export const processingSupport = [
100
103
  operatorProcessingEntry("qti-null"),
101
104
  mappingProcessingEntry("qti-match-table"),
102
105
  mappingProcessingEntry("qti-match-table-entry"),
103
- mappingProcessingEntry("qti-interpolation-table"),
106
+ {
107
+ ...mappingProcessingEntry("qti-interpolation-table"),
108
+ notes: "Selects the first authored entry whose source-value is below the input, including equality only when include-boundary permits it.",
109
+ },
104
110
  mappingProcessingEntry("qti-interpolation-table-entry"),
105
- operatorProcessingEntry("qti-is-null"),
111
+ {
112
+ ...operatorProcessingEntry("qti-is-null"),
113
+ notes: "Accepts one arbitrary expression, evaluates it in the full variable context, and tests the result for NULL.",
114
+ },
106
115
  mappingProcessingEntry("qti-match", [
107
116
  "packages/fixtures/xml/generic-match-processing-reference.xml",
108
117
  "packages/fixtures/xml/advanced-processing-reference.xml",
109
118
  ]),
110
119
  mappingProcessingEntry("qti-correct"),
111
- mappingProcessingEntry("qti-default"),
112
- mappingProcessingEntry("qti-map-response"),
113
- mappingProcessingEntry("qti-map-response-point"),
114
- responseProcessingEntry("qti-variable", [
115
- "packages/fixtures/xml/generic-match-processing-reference.xml",
116
- "packages/fixtures/xml/template-processing-reference.xml",
117
- "packages/fixtures/xml/random-integer-template-reference.xml",
118
- "packages/fixtures/xml/template-content-reference.xml",
119
- "packages/fixtures/xml/advanced-processing-reference.xml",
120
- "packages/fixtures/xml/adaptive-feedback-reference.xml",
121
- ]),
120
+ {
121
+ ...mappingProcessingEntry("qti-default", [], [processingTemplateTest]),
122
+ notes: "Reads the effective authored or template-overridden default, independently of the variable's current value.",
123
+ },
124
+ {
125
+ ...mappingProcessingEntry("qti-map-response"),
126
+ notes: "String map entries honor case-sensitive (default false); mapping counts each distinct response value once using QTI base-type equality, then applies bounds.",
127
+ },
128
+ {
129
+ ...mappingProcessingEntry("qti-map-response-point"),
130
+ notes: "Each point selects the first matching authored area; each selected area contributes at most once.",
131
+ },
132
+ {
133
+ ...responseProcessingEntry("qti-variable", [
134
+ "packages/fixtures/xml/generic-match-processing-reference.xml",
135
+ "packages/fixtures/xml/template-processing-reference.xml",
136
+ "packages/fixtures/xml/random-integer-template-reference.xml",
137
+ "packages/fixtures/xml/template-content-reference.xml",
138
+ "packages/fixtures/xml/advanced-processing-reference.xml",
139
+ "packages/fixtures/xml/adaptive-feedback-reference.xml",
140
+ ]),
141
+ notes: "Resolves declared variables and implicit completionStatus, numAttempts, timed-item duration (float seconds), and QTI_CONTEXT; session environment is resolved before template processing.",
142
+ tests: [
143
+ processingResponseTest,
144
+ "packages/core/src/session-builtins.test.ts",
145
+ "tests/browser/player-lifecycle.spec.ts",
146
+ ],
147
+ },
122
148
  templateProcessingEntry("qti-random-integer", ["packages/fixtures/xml/random-integer-template-reference.xml"], [...processingBrowserEvidence["qti-random-integer"]]),
123
149
  operatorProcessingEntry("qti-random-float"),
124
- operatorProcessingEntry("qti-random"),
150
+ {
151
+ ...operatorProcessingEntry("qti-random"),
152
+ notes: "Evaluates one multiple/ordered container expression, including variables, then selects a scalar member; NULL/empty containers return NULL and serialization retains the operand.",
153
+ },
125
154
  operatorProcessingEntry("qti-multiple", [
126
155
  "packages/fixtures/xml/advanced-processing-reference.xml",
127
156
  ]),
@@ -129,7 +158,10 @@ export const processingSupport = [
129
158
  "packages/fixtures/xml/advanced-processing-reference.xml",
130
159
  ]),
131
160
  operatorProcessingEntry("qti-index"),
132
- operatorProcessingEntry("qti-contains"),
161
+ {
162
+ ...operatorProcessingEntry("qti-contains", [], ["packages/core/src/processing-containment.test.ts"]),
163
+ notes: "Multiple containers use multiset containment; ordered containers require a contiguous sequence and preserve duplicate counts, including variable/delete/repeat operands.",
164
+ },
133
165
  operatorProcessingEntry("qti-container-size", [
134
166
  "packages/fixtures/xml/advanced-processing-reference.xml",
135
167
  ]),
@@ -155,10 +187,14 @@ export const processingSupport = [
155
187
  operatorProcessingEntry("qti-any-n"),
156
188
  operatorProcessingEntry("qti-or"),
157
189
  operatorProcessingEntry("qti-not"),
158
- operatorProcessingEntry("qti-equal"),
159
- operatorProcessingEntry("qti-equal-rounded", [
160
- "packages/fixtures/xml/advanced-processing-reference.xml",
161
- ]),
190
+ {
191
+ ...operatorProcessingEntry("qti-equal", [], ["packages/core/src/processing-equality.test.ts"]),
192
+ notes: "Preserves and evaluates exact, absolute, and relative tolerance with asymmetric bounds, variable tolerances, and inclusive/exclusive boundaries.",
193
+ },
194
+ {
195
+ ...operatorProcessingEntry("qti-equal-rounded", ["packages/fixtures/xml/advanced-processing-reference.xml"], ["packages/core/src/processing-equality.test.ts"]),
196
+ notes: "Defaults rounding-mode to significantFigures and resolves integer-or-variable-reference figures at evaluation time, preserving both through serialization.",
197
+ },
162
198
  mappingProcessingEntry("qti-field-value"),
163
199
  operatorProcessingEntry("qti-lt"),
164
200
  operatorProcessingEntry("qti-lte"),
@@ -166,7 +202,11 @@ export const processingSupport = [
166
202
  operatorProcessingEntry("qti-gte"),
167
203
  operatorProcessingEntry("qti-string-match"),
168
204
  operatorProcessingEntry("qti-substring"),
169
- operatorProcessingEntry("qti-pattern-match"),
205
+ {
206
+ ...operatorProcessingEntry("qti-pattern-match"),
207
+ tests: [processingOperatorsTest, "packages/core/src/processing-pattern.test.ts"],
208
+ notes: "XML Schema Appendix F whole-string matching, XML name escapes, Unicode categories/blocks and class subtraction; brace-enclosed pattern variables, NULL propagation and explicit syntax/resource diagnostics. No JavaScript-pattern fallback.",
209
+ },
170
210
  operatorProcessingEntry("qti-member"),
171
211
  operatorProcessingEntry("qti-delete"),
172
212
  operatorProcessingEntry("qti-duration-gte"),
@@ -232,9 +272,10 @@ export const itemMetadataSupport = [
232
272
  tests: [
233
273
  processingResponseTest,
234
274
  "packages/core/src/parser-item-metadata.test.ts",
275
+ "packages/core/src/adaptive-turn-materializer.test.ts",
235
276
  ...browserFeedbackTests,
236
277
  ],
237
- notes: "Parsed by parser-item-metadata.ts and validated by validateModalFeedback. Response processing supplies the outcome value used for visibility, and the player renders the matching feedback in player-feedback.spec.ts.",
278
+ notes: "Parsed by parser-item-metadata.ts and validated by validateModalFeedback. Response processing supplies the scalar/container outcome used for show/hide visibility, including inverse hide conditions, in both player rendering and adaptive candidate XML materialization.",
238
279
  },
239
280
  {
240
281
  qtiName: "qti-companion-materials-info",
@@ -346,18 +387,25 @@ function entry(qtiName, interactionType) {
346
387
  process: true,
347
388
  fixtures: interactionSupportFixtures(interactionType),
348
389
  tests: interactionSupportTests(interactionType),
390
+ notes: ["associate", "graphicAssociate", "match", "gapMatch"].includes(interactionType)
391
+ ? interactionType === "associate" || interactionType === "graphicAssociate"
392
+ ? "Supports single and multiple unordered pair responses."
393
+ : "Supports single and multiple directedPair responses."
394
+ : interactionType === "graphicGapMatch"
395
+ ? "Requires multiple directedPair responses; multiple and repeated placements in one hotspot preserve each association through rendering, removal, scoring, and restoration, subject to source/target match-max and max-associations."
396
+ : undefined,
349
397
  };
350
398
  }
351
399
  function extendedTextInteractionEntry() {
352
400
  return {
353
401
  ...entry("qti-extended-text-interaction", "extendedText"),
354
- notes: "Supports plain and format=xhtml extended text.",
402
+ notes: "Supports single, multiple, ordered and numeric record responses; string/integer/float values; min-strings/max-strings; plain, preformatted and string XHTML capture.",
355
403
  };
356
404
  }
357
405
  function textEntryInteractionEntry() {
358
406
  return {
359
407
  ...entry("qti-text-entry-interaction", "textEntry"),
360
- notes: "Supports placeholder-text and pattern-mask on text-entry controls.",
408
+ notes: "Supports single string/integer/float and numeric record responses, base 2–36, string-identifier, placeholder-text and pattern-mask; text-entry format is plain only.",
361
409
  };
362
410
  }
363
411
  function pciEntry() {