@longsightgroup/qti3-core 0.9.8 → 0.9.10

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 (69) hide show
  1. package/dist/asset-url.d.ts.map +1 -1
  2. package/dist/asset-url.js +5 -6
  3. package/dist/asset-url.js.map +1 -1
  4. package/dist/catalog.d.ts +5 -0
  5. package/dist/catalog.d.ts.map +1 -1
  6. package/dist/catalog.js +30 -12
  7. package/dist/catalog.js.map +1 -1
  8. package/dist/index.d.ts +4 -3
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/parser-item-metadata.d.ts +1 -1
  13. package/dist/parser-item-metadata.d.ts.map +1 -1
  14. package/dist/parser-item-metadata.js +4 -1
  15. package/dist/parser-item-metadata.js.map +1 -1
  16. package/dist/parser-processing.d.ts.map +1 -1
  17. package/dist/parser-processing.js +4 -0
  18. package/dist/parser-processing.js.map +1 -1
  19. package/dist/parser.js +7 -2
  20. package/dist/parser.js.map +1 -1
  21. package/dist/processing-expression-collection.d.ts +4 -0
  22. package/dist/processing-expression-collection.d.ts.map +1 -0
  23. package/dist/processing-expression-collection.js +44 -0
  24. package/dist/processing-expression-collection.js.map +1 -0
  25. package/dist/qti-package-assets.d.ts +3 -1
  26. package/dist/qti-package-assets.d.ts.map +1 -1
  27. package/dist/qti-package-assets.js +22 -0
  28. package/dist/qti-package-assets.js.map +1 -1
  29. package/dist/qti-package-items.d.ts +2 -1
  30. package/dist/qti-package-items.d.ts.map +1 -1
  31. package/dist/qti-package-items.js +96 -18
  32. package/dist/qti-package-items.js.map +1 -1
  33. package/dist/qti-package-manifest.d.ts.map +1 -1
  34. package/dist/qti-package-manifest.js +2 -0
  35. package/dist/qti-package-manifest.js.map +1 -1
  36. package/dist/qti-package-metadata.d.ts +5 -2
  37. package/dist/qti-package-metadata.d.ts.map +1 -1
  38. package/dist/qti-package-metadata.js +116 -8
  39. package/dist/qti-package-metadata.js.map +1 -1
  40. package/dist/qti-package-types.d.ts +62 -0
  41. package/dist/qti-package-types.d.ts.map +1 -1
  42. package/dist/qti-package-xml.d.ts.map +1 -1
  43. package/dist/qti-package-xml.js +1 -1
  44. package/dist/qti-package-xml.js.map +1 -1
  45. package/dist/qti-package.d.ts +2 -1
  46. package/dist/qti-package.d.ts.map +1 -1
  47. package/dist/qti-package.js +2 -0
  48. package/dist/qti-package.js.map +1 -1
  49. package/dist/types.d.ts +6 -0
  50. package/dist/types.d.ts.map +1 -1
  51. package/dist/validation.js +32 -1
  52. package/dist/validation.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/asset-url.ts +5 -6
  55. package/src/catalog.ts +64 -11
  56. package/src/index.ts +11 -0
  57. package/src/parser-item-metadata.ts +7 -1
  58. package/src/parser-processing.ts +4 -0
  59. package/src/parser.ts +11 -3
  60. package/src/processing-expression-collection.ts +57 -0
  61. package/src/qti-package-assets.ts +30 -0
  62. package/src/qti-package-items.ts +190 -29
  63. package/src/qti-package-manifest.ts +2 -0
  64. package/src/qti-package-metadata.ts +174 -7
  65. package/src/qti-package-types.ts +69 -0
  66. package/src/qti-package-xml.ts +2 -1
  67. package/src/qti-package.ts +9 -0
  68. package/src/types.ts +6 -0
  69. package/src/validation.ts +35 -1
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@longsightgroup/qti3-core",
3
- "version": "0.9.8",
3
+ "version": "0.9.10",
4
4
  "description": "Framework-neutral TypeScript core for parsing, validating, scoring, and serializing QTI 3 assessment items.",
5
5
  "keywords": [
6
6
  "assessment",
package/src/asset-url.ts CHANGED
@@ -1,10 +1,9 @@
1
1
  export function isResolvableAssetUrl(value: string): boolean {
2
+ const normalized = value.trim();
2
3
  return (
3
- !value.startsWith("#") &&
4
- !value.startsWith("/") &&
5
- !value.startsWith("data:") &&
6
- !value.startsWith("blob:") &&
7
- !value.startsWith("http://") &&
8
- !value.startsWith("https://")
4
+ normalized.length > 0 &&
5
+ !normalized.startsWith("#") &&
6
+ !normalized.startsWith("/") &&
7
+ !/^[a-z][a-z\d+.-]*:/i.test(normalized)
9
8
  );
10
9
  }
package/src/catalog.ts CHANGED
@@ -21,7 +21,9 @@ export interface QtiCatalogSupportResolution {
21
21
  }
22
22
 
23
23
  export interface QtiResolvedCatalogReference {
24
+ referenceId: string;
24
25
  idref: string;
26
+ qtiName: string;
25
27
  catalog?: QtiCatalog | undefined;
26
28
  matches: QtiResolvedCatalogSupport[];
27
29
  source?: QtiSourceLocation | undefined;
@@ -31,6 +33,7 @@ export interface QtiResolvedCatalogSupport {
31
33
  catalogId: string;
32
34
  support: string;
33
35
  default: boolean;
36
+ selectionReason: QtiCatalogSelectionReason;
34
37
  fileHrefs: QtiCatalogFileHref[];
35
38
  attributes: Record<string, string>;
36
39
  cardAttributes: Record<string, string>;
@@ -42,6 +45,14 @@ export interface QtiResolvedCatalogSupport {
42
45
  catalogSource?: QtiSourceLocation | undefined;
43
46
  }
44
47
 
48
+ /** Explains why a catalog card or card entry was returned by language resolution. */
49
+ export type QtiCatalogSelectionReason =
50
+ | "available"
51
+ | "default"
52
+ | "exact-language"
53
+ | "primary-language"
54
+ | "unlanguaged";
55
+
45
56
  interface Candidate {
46
57
  card: QtiCatalogCard;
47
58
  default: boolean;
@@ -50,6 +61,7 @@ interface Candidate {
50
61
  language?: string | undefined;
51
62
  htmlContent?: QtiCatalogHtmlContent | undefined;
52
63
  source?: QtiSourceLocation | undefined;
64
+ selectionReason?: QtiCatalogSelectionReason | undefined;
53
65
  }
54
66
 
55
67
  export function createCatalogSupportResolution(
@@ -68,7 +80,9 @@ export function createCatalogSupportResolution(
68
80
  references: item.catalogReferences.map((reference) => {
69
81
  const catalog = catalogById.get(reference.idref);
70
82
  const resolved: QtiResolvedCatalogReference = {
83
+ referenceId: reference.referenceId,
71
84
  idref: reference.idref,
85
+ qtiName: reference.qtiName,
72
86
  matches: catalog ? matchingCatalogSupports(catalog, supportFilter, languages, options) : [],
73
87
  };
74
88
  if (catalog) resolved.catalog = catalog;
@@ -100,23 +114,48 @@ function selectedCandidates(
100
114
  const candidates = catalogCandidates(card);
101
115
  if (languages.length === 0) {
102
116
  const defaults = candidates.filter((candidate) => candidate.default);
103
- return defaults.length > 0 ? defaults : candidates;
117
+ return withSelectionReason(
118
+ defaults.length > 0 ? defaults : candidates,
119
+ defaults.length > 0 ? "default" : "available",
120
+ );
104
121
  }
105
122
 
106
123
  const languageMatches = candidates
107
124
  .map((candidate, index) => ({
108
125
  candidate,
109
126
  index,
110
- rank: languageMatchRank(candidate.language, languages),
127
+ match: languageMatch(candidate.language, languages),
111
128
  }))
112
- .filter((entry): entry is { candidate: Candidate; index: number; rank: number } =>
113
- Number.isInteger(entry.rank),
129
+ .filter(
130
+ (
131
+ entry,
132
+ ): entry is {
133
+ candidate: Candidate;
134
+ index: number;
135
+ match: LanguageMatch;
136
+ } => entry.match !== undefined,
114
137
  )
115
- .toSorted((a, b) => a.rank - b.rank || a.index - b.index);
116
- if (languageMatches.length > 0) return languageMatches.map((entry) => entry.candidate);
138
+ .toSorted((a, b) => a.match.rank - b.match.rank || a.index - b.index);
139
+ const bestLanguageRank = languageMatches[0]?.match.rank;
140
+ if (bestLanguageRank !== undefined) {
141
+ return languageMatches
142
+ .filter((entry) => entry.match.rank === bestLanguageRank)
143
+ .map((entry) => ({ ...entry.candidate, selectionReason: entry.match.reason }));
144
+ }
117
145
  if (options.includeDefaultFallback === false) return [];
118
146
  const defaults = candidates.filter((candidate) => candidate.default);
119
- return defaults.length > 0 ? defaults : candidates.filter((candidate) => !candidate.language);
147
+ if (defaults.length > 0) return withSelectionReason(defaults, "default");
148
+ return withSelectionReason(
149
+ candidates.filter((candidate) => !candidate.language),
150
+ "unlanguaged",
151
+ );
152
+ }
153
+
154
+ function withSelectionReason(
155
+ candidates: Candidate[],
156
+ selectionReason: QtiCatalogSelectionReason,
157
+ ): Candidate[] {
158
+ return candidates.map((candidate) => ({ ...candidate, selectionReason }));
120
159
  }
121
160
 
122
161
  function catalogCandidates(card: QtiCatalogCard): Candidate[] {
@@ -129,6 +168,7 @@ function catalogCandidates(card: QtiCatalogCard): Candidate[] {
129
168
  default: true,
130
169
  fileHrefs: card.fileHrefs,
131
170
  attributes: card.attributes,
171
+ language: card.language,
132
172
  htmlContent: card.htmlContent,
133
173
  source: card.source,
134
174
  },
@@ -153,6 +193,7 @@ function resolvedSupport(catalog: QtiCatalog, candidate: Candidate): QtiResolved
153
193
  catalogId: catalog.id,
154
194
  support: candidate.card.support,
155
195
  default: candidate.default,
196
+ selectionReason: candidate.selectionReason ?? "available",
156
197
  fileHrefs: candidate.fileHrefs,
157
198
  attributes: candidate.attributes,
158
199
  cardAttributes: candidate.card.attributes,
@@ -166,17 +207,29 @@ function resolvedSupport(catalog: QtiCatalog, candidate: Candidate): QtiResolved
166
207
  return resolved;
167
208
  }
168
209
 
169
- function languageMatchRank(
210
+ interface LanguageMatch {
211
+ rank: number;
212
+ reason: Extract<QtiCatalogSelectionReason, "exact-language" | "primary-language">;
213
+ }
214
+
215
+ function languageMatch(
170
216
  language: string | undefined,
171
217
  requestedLanguages: string[],
172
- ): number | undefined {
218
+ ): LanguageMatch | undefined {
173
219
  if (!language) return undefined;
174
220
  const normalizedLanguage = language.toLowerCase();
175
221
  const primaryLanguage = normalizedLanguage.split("-")[0] ?? normalizedLanguage;
176
222
  for (const [index, requestedLanguage] of requestedLanguages.entries()) {
177
- if (normalizedLanguage === requestedLanguage) return index * 2;
223
+ if (normalizedLanguage === requestedLanguage) {
224
+ return { rank: index * 3, reason: "exact-language" };
225
+ }
178
226
  const requestedPrimary = requestedLanguage.split("-")[0] ?? requestedLanguage;
179
- if (primaryLanguage === requestedPrimary) return index * 2 + 1;
227
+ if (primaryLanguage === requestedPrimary) {
228
+ return {
229
+ rank: index * 3 + (normalizedLanguage === requestedPrimary ? 1 : 2),
230
+ reason: "primary-language",
231
+ };
232
+ }
180
233
  }
181
234
  return undefined;
182
235
  }
package/src/index.ts CHANGED
@@ -9,6 +9,7 @@ export {
9
9
  createCatalogSupportResolution,
10
10
  type QtiCatalogSupportResolution,
11
11
  type QtiCatalogSupportResolutionOptions,
12
+ type QtiCatalogSelectionReason,
12
13
  type QtiResolvedCatalogReference,
13
14
  type QtiResolvedCatalogSupport,
14
15
  } from "./catalog.js";
@@ -51,31 +52,40 @@ export {
51
52
  } from "./package-xml.js";
52
53
  export {
53
54
  decodeUtf8,
55
+ discoverQtiPackageContentAssets,
54
56
  normalizePackagePath,
55
57
  QTI_ITEM_RESOURCE_TYPE,
56
58
  QTI_PACKAGE_MANIFEST_PATH,
57
59
  parseQtiPackage,
58
60
  readQtiPackageZipEntries,
61
+ type QtiAssessmentSectionPackageModel,
59
62
  type QtiAssessmentTestItemRef,
60
63
  type QtiAssessmentTestPackageModel,
61
64
  type QtiManifestFile,
62
65
  type QtiManifestResource,
63
66
  type QtiPackageAsset,
67
+ type QtiPackageContentAssetDiscovery,
64
68
  type QtiPackageAssetSource,
65
69
  type QtiPackageEntry,
66
70
  type QtiPackageInflateContext,
67
71
  type QtiPackageInflateRaw,
72
+ type QtiItemSessionControl,
68
73
  type QtiPackageItem,
69
74
  type QtiPackageItemSource,
70
75
  type QtiPackageParseOptions,
71
76
  type QtiPackageParseResult,
72
77
  type QtiPackageShape,
73
78
  type QtiStandardAlignment,
79
+ type QtiTestPartNavigationMode,
80
+ type QtiTestPartPackageModel,
81
+ type QtiTestPartSubmissionMode,
82
+ type QtiTimeLimits,
74
83
  type QtiTimingMetadata,
75
84
  } from "./qti-package.js";
76
85
  export { detectPackageMediaType } from "./qti-package-assets.js";
77
86
  export { parseQtiXml } from "./parser.js";
78
87
  export { numericTuple3, numericTuple4 } from "./parser-values.js";
88
+ export { collectQtiResponseProcessingExpressions } from "./processing-expression-collection.js";
79
89
  export { isConformanceParseDiagnostic } from "./parse-diagnostics.js";
80
90
  export {
81
91
  scoreQtiItemServerSide,
@@ -306,6 +316,7 @@ export type {
306
316
  QtiResponseProcessing,
307
317
  QtiResponseRule,
308
318
  QtiScoreResult,
319
+ QtiSourceLocation,
309
320
  QtiStylesheet,
310
321
  QtiLookupOutcomeValue,
311
322
  QtiSetOutcomeValue,
@@ -52,13 +52,18 @@ export function parseStylesheet(node: XmlNode): QtiStylesheet {
52
52
  };
53
53
  }
54
54
 
55
- export function parseCatalogReferences(node: XmlNode): QtiCatalogReference[] {
55
+ export function parseCatalogReferences(
56
+ node: XmlNode,
57
+ itemIdentifier: string,
58
+ ): QtiCatalogReference[] {
56
59
  const references = [
57
60
  ...(node.attributes["data-catalog-idref"] ? [node] : []),
58
61
  ...descendants(node, (child) => Boolean(child.attributes["data-catalog-idref"])),
59
62
  ];
60
63
  return references.map((reference) => ({
64
+ referenceId: `catalog-reference:${itemIdentifier}:${reference.source.path}`,
61
65
  idref: reference.attributes["data-catalog-idref"] ?? "",
66
+ qtiName: reference.localName,
62
67
  source: reference.source,
63
68
  }));
64
69
  }
@@ -90,6 +95,7 @@ export function parseCatalogInfo(node: XmlNode | undefined): QtiCatalogInfo | un
90
95
  function parseCatalogCard(node: XmlNode): QtiCatalogCard {
91
96
  return {
92
97
  support: node.attributes.support ?? "",
98
+ language: node.attributes["xml:lang"] ?? node.attributes.lang,
93
99
  htmlContent: parseCatalogHtmlContent(childElements(node, "qti-html-content")[0]),
94
100
  fileHrefs: childElements(node, "qti-file-href").map(parseCatalogFileHref),
95
101
  entries: childElements(node, "qti-card-entry").map(parseCatalogCardEntry),
@@ -21,6 +21,10 @@ export function parseResponseProcessing(
21
21
  template: node.attributes.template,
22
22
  rules,
23
23
  conditions: responseConditionsFromRules(rules),
24
+ expressions: node.children.flatMap((child) => {
25
+ const expression = parseExpression(child);
26
+ return expression ? [expression] : [];
27
+ }),
24
28
  };
25
29
  }
26
30
 
package/src/parser.ts CHANGED
@@ -141,14 +141,21 @@ function parseAssessmentItem(node: XmlNode, diagnostics: QtiDiagnostic[]): QtiAs
141
141
  );
142
142
  }
143
143
  const modalFeedback = childElements(node, "qti-modal-feedback").map(parseModalFeedback);
144
- const catalogInfo = parseCatalogInfo(
145
- firstChildElement(node, "qti-catalog-info", diagnostics, "item.child.duplicate"),
144
+ const catalogInfoNode = firstChildElement(
145
+ node,
146
+ "qti-catalog-info",
147
+ diagnostics,
148
+ "item.child.duplicate",
146
149
  );
150
+ const catalogInfo = parseCatalogInfo(catalogInfoNode);
147
151
  const companionMaterials = parseCompanionMaterialsInfo(
148
152
  firstChildElement(node, "qti-companion-materials-info", diagnostics, "item.child.duplicate"),
149
153
  diagnostics,
150
154
  );
151
- const catalogReferences = itemBody ? parseCatalogReferences(itemBody) : [];
155
+ const catalogReferences = [
156
+ ...(itemBody ? parseCatalogReferences(itemBody, identifier) : []),
157
+ ...(catalogInfoNode ? parseCatalogReferences(catalogInfoNode, identifier) : []),
158
+ ];
152
159
  const stylesheets = childElements(node, "qti-stylesheet").map(parseStylesheet);
153
160
  const prompt = itemBody ? childElements(itemBody, "qti-prompt")[0] : undefined;
154
161
 
@@ -160,6 +167,7 @@ function parseAssessmentItem(node: XmlNode, diagnostics: QtiDiagnostic[]): QtiAs
160
167
  timeDependent: parseXmlBoolean(node.attributes["time-dependent"]),
161
168
  attributes: node.attributes,
162
169
  prompt: prompt ? textContent(prompt) : undefined,
170
+ itemBodyAttributes: itemBody?.attributes,
163
171
  itemBodySource: itemBody?.source,
164
172
  responseDeclarations,
165
173
  outcomeDeclarations,
@@ -0,0 +1,57 @@
1
+ import { expressionChildren } from "./processing-expression-children.js";
2
+ import type {
3
+ QtiProcessingExpression,
4
+ QtiResponseCondition,
5
+ QtiResponseProcessing,
6
+ QtiResponseRule,
7
+ } from "./types.js";
8
+
9
+ /** Collect every processing expression in a parsed response-processing tree. */
10
+ export function collectQtiResponseProcessingExpressions(
11
+ processing: QtiResponseProcessing | undefined,
12
+ ): QtiProcessingExpression[] {
13
+ if (!processing) return [];
14
+ const expressions: QtiProcessingExpression[] = [];
15
+ for (const expression of processing.expressions ?? []) collectExpression(expression, expressions);
16
+ collectRules(processing.rules, expressions);
17
+ for (const condition of processing.conditions) collectCondition(condition, expressions);
18
+ return expressions;
19
+ }
20
+
21
+ function collectRules(
22
+ rules: readonly QtiResponseRule[],
23
+ expressions: QtiProcessingExpression[],
24
+ ): void {
25
+ for (const rule of rules) {
26
+ if (rule.type === "setOutcomeValue" || rule.type === "lookupOutcomeValue") {
27
+ collectExpression(rule.expression, expressions);
28
+ continue;
29
+ }
30
+ if (rule.type === "responseCondition") {
31
+ collectCondition(rule.condition, expressions);
32
+ continue;
33
+ }
34
+ if (rule.type === "responseProcessingFragment") collectRules(rule.rules, expressions);
35
+ }
36
+ }
37
+
38
+ function collectCondition(
39
+ condition: QtiResponseCondition,
40
+ expressions: QtiProcessingExpression[],
41
+ ): void {
42
+ if (condition.ifExpression) collectExpression(condition.ifExpression, expressions);
43
+ collectRules(condition.thenRules, expressions);
44
+ for (const branch of condition.elseIfs) {
45
+ if (branch.expression) collectExpression(branch.expression, expressions);
46
+ collectRules(branch.rules, expressions);
47
+ }
48
+ collectRules(condition.elseRules, expressions);
49
+ }
50
+
51
+ function collectExpression(
52
+ expression: QtiProcessingExpression,
53
+ expressions: QtiProcessingExpression[],
54
+ ): void {
55
+ expressions.push(expression);
56
+ for (const child of expressionChildren(expression)) collectExpression(child, expressions);
57
+ }
@@ -1,9 +1,11 @@
1
1
  import { pushPackageDiagnostic } from "./qti-package-paths.js";
2
+ import { parseQtiPackageXmlTree } from "./package-xml.js";
2
3
  import type {
3
4
  QtiAssessmentTestPackageModel,
4
5
  QtiManifestResource,
5
6
  QtiPackageAsset,
6
7
  QtiPackageAssetSource,
8
+ QtiPackageContentAssetDiscovery,
7
9
  QtiPackageItem,
8
10
  } from "./qti-package-types.js";
9
11
  import {
@@ -21,6 +23,27 @@ interface PendingAssetReference {
21
23
  readonly referencedBy: string;
22
24
  }
23
25
 
26
+ /** Discover and resolve package-local asset references in one QTI XML document. */
27
+ export function discoverQtiPackageContentAssets(
28
+ xml: string,
29
+ sourcePath: string,
30
+ ): QtiPackageContentAssetDiscovery {
31
+ const parsed = parseQtiPackageXmlTree(xml);
32
+ const diagnostics: QtiDiagnostic[] = [];
33
+ for (const message of parsed.errors) {
34
+ pushPackageDiagnostic(diagnostics, "xml.parse", "error", message, sourcePath);
35
+ }
36
+ if (!parsed.root) return { hrefs: [], diagnostics };
37
+
38
+ return {
39
+ hrefs: discoverContentAssetHrefs(
40
+ { path: sourcePath, xml, root: parsed.root, errors: parsed.errors },
41
+ diagnostics,
42
+ ),
43
+ diagnostics,
44
+ };
45
+ }
46
+
24
47
  type PackageAssetRefSpec =
25
48
  | { readonly kind: "attribute"; readonly localName: string; readonly attribute: string }
26
49
  | { readonly kind: "text"; readonly localName: string };
@@ -232,6 +255,8 @@ export function detectPackageMediaType(href: string): string | undefined {
232
255
  return "image/jpeg";
233
256
  case "mp3":
234
257
  return "audio/mpeg";
258
+ case "m4a":
259
+ return "audio/mp4";
235
260
  case "mp4":
236
261
  return "video/mp4";
237
262
  case "ogg":
@@ -250,6 +275,11 @@ export function detectPackageMediaType(href: string): string | undefined {
250
275
  return "image/webp";
251
276
  case "xml":
252
277
  return "application/xml";
278
+ case "html":
279
+ case "htm":
280
+ return "text/html";
281
+ case "json":
282
+ return "application/json";
253
283
  default:
254
284
  return undefined;
255
285
  }