lens-content-processor 0.44.0 → 0.46.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.
- package/dist/content-schema.js +16 -9
- package/dist/content-schema.js.map +1 -1
- package/dist/flattener/index.d.ts +1 -0
- package/dist/flattener/index.js +102 -32
- package/dist/flattener/index.js.map +1 -1
- package/dist/index.d.ts +24 -3
- package/dist/index.js +108 -46
- package/dist/index.js.map +1 -1
- package/dist/parser/domain.d.ts +49 -0
- package/dist/parser/domain.js +212 -0
- package/dist/parser/domain.js.map +1 -0
- package/dist/parser/learning-outcome.d.ts +5 -4
- package/dist/parser/learning-outcome.js +42 -21
- package/dist/parser/learning-outcome.js.map +1 -1
- package/dist/parser/lens.d.ts +1 -0
- package/dist/parser/lens.js +11 -1
- package/dist/parser/lens.js.map +1 -1
- package/dist/parser/response-segments.d.ts +2 -0
- package/dist/parser/response-segments.js +13 -1
- package/dist/parser/response-segments.js.map +1 -1
- package/dist/skill-tree.d.ts +95 -23
- package/dist/skill-tree.js +146 -82
- package/dist/skill-tree.js.map +1 -1
- package/dist/validator/tier.d.ts +11 -6
- package/dist/validator/tier.js +24 -18
- package/dist/validator/tier.js.map +1 -1
- package/package.json +1 -1
|
@@ -14,6 +14,7 @@ export interface ParsedResponseQuestionSegment extends ParsedQuestionSegment {
|
|
|
14
14
|
responseId: string;
|
|
15
15
|
graded: boolean;
|
|
16
16
|
feedbackInstructions?: string;
|
|
17
|
+
forceFeedback?: boolean;
|
|
17
18
|
placeholder?: string;
|
|
18
19
|
scale?: number;
|
|
19
20
|
lowLabel?: string;
|
|
@@ -37,6 +38,7 @@ export declare function responseSegmentSchemaKey(raw: {
|
|
|
37
38
|
type: string;
|
|
38
39
|
title?: string;
|
|
39
40
|
}): string | null;
|
|
41
|
+
export declare function parseBool(raw: RawSegment, field: string): true | undefined;
|
|
40
42
|
/**
|
|
41
43
|
* Parse `labels::` — one `- text` line per point on the scale, so every value
|
|
42
44
|
* carries its own wording instead of only the two endpoints.
|
|
@@ -41,7 +41,7 @@ export function responseSegmentSchemaKey(raw) {
|
|
|
41
41
|
? `question:${subtype}`
|
|
42
42
|
: null;
|
|
43
43
|
}
|
|
44
|
-
function parseBool(raw, field) {
|
|
44
|
+
export function parseBool(raw, field) {
|
|
45
45
|
return raw.fields[field]?.toLowerCase() === "true" ? true : undefined;
|
|
46
46
|
}
|
|
47
47
|
/** Example values for parsePositiveInt's suggestion, per field: a cap of 500
|
|
@@ -592,8 +592,18 @@ export function parseResponseSegment(raw, context, file) {
|
|
|
592
592
|
graded: false, // derived per subtype below; always false in surveys
|
|
593
593
|
assessmentInstructions,
|
|
594
594
|
feedbackInstructions,
|
|
595
|
+
forceFeedback: parseBool(raw, "force-feedback"),
|
|
595
596
|
optional: parseBool(raw, "optional"),
|
|
596
597
|
};
|
|
598
|
+
if (segment.forceFeedback && !feedbackInstructions) {
|
|
599
|
+
errors.push({
|
|
600
|
+
file,
|
|
601
|
+
line: raw.line,
|
|
602
|
+
message: "force-feedback:: true without feedback-instructions:: has no feedback to send",
|
|
603
|
+
suggestion: "Add feedback-instructions::, or remove force-feedback::",
|
|
604
|
+
severity: "warning",
|
|
605
|
+
});
|
|
606
|
+
}
|
|
597
607
|
switch (questionType) {
|
|
598
608
|
case "open": {
|
|
599
609
|
segment.maxChars = parsePositiveInt(raw, "max-chars", file, errors);
|
|
@@ -693,6 +703,8 @@ export function toFlattenedResponseSegment(parsed) {
|
|
|
693
703
|
segment.assessmentInstructions = parsed.assessmentInstructions;
|
|
694
704
|
if (parsed.feedbackInstructions)
|
|
695
705
|
segment.feedbackInstructions = parsed.feedbackInstructions;
|
|
706
|
+
if (parsed.forceFeedback)
|
|
707
|
+
segment.forceFeedback = true;
|
|
696
708
|
if (parsed.optional)
|
|
697
709
|
segment.optional = true;
|
|
698
710
|
// open:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-segments.js","sourceRoot":"","sources":["../../src/parser/response-segments.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"response-segments.js","sourceRoot":"","sources":["../../src/parser/response-segments.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,uEAAuE;AACvE,mEAAmE;AACnE,2EAA2E;AAC3E,uBAAuB;AAOvB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,WAAW,EACX,0BAA0B,GAG3B,MAAM,WAAW,CAAC;AAEnB,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,SAAS;CACD,CAAC;AAIX,wDAAwD;AACxD,MAAM,eAAe,GAA4C;IAC/D,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;CACnB,CAAC;AACF,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,GAAG,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAKb,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,gBAAgB,GAAG,EAAE,CAAC;AA+B5B;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAGxC;IACC,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,OAAQ,0BAAgD,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxE,CAAC,CAAC,YAAY,OAAO,EAAE;QACvB,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAe,EAAE,KAAa;IACtD,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED;mEACmE;AACnE,MAAM,qBAAqB,GAA2B;IACpD,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,GAAe,EACf,KAAa,EACb,IAAY,EACZ,MAAsB,EACtB,WAAqC,OAAO;IAE5C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EACL,UAAU,KAAK,sCAAsC,KAAK,GAAG;gBAC7D,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,UAAU,EAAE,sBAAsB,KAAK,MAAM,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB;YACtG,QAAQ;SACT,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,6EAA6E;AAC7E,SAAS,UAAU,CACjB,GAAe,EACf,IAAY,EACZ,MAAsB;IAEtB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;IAC/B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,oBAAoB,CAAC;IACrD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,0CAA0C,KAAK,GAAG;YAC3D,UAAU,EAAE,qBAAqB,gBAAgB,OAAO,gBAAgB,aAAa,oBAAoB,sBAAsB;YAC/H,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,gBAAgB,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,oBAAoB,KAAK,qBAAqB,gBAAgB,IAAI,gBAAgB,EAAE;YAC7F,UAAU,EAAE,oBAAoB,gBAAgB,OAAO,gBAAgB,EAAE;YACzE,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAe,EACf,KAAa,EACb,aAAsB,EACtB,iBAA0B,EAC1B,IAAY,EACZ,MAAsB;IAEtB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE1C,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,4CAA4C;YACrD,UAAU,EACR,kHAAkH;YACpH,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,gDAAgD,OAAO,GAAG;gBACnE,UAAU,EACR,0IAA0I;gBAC5I,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,yCAAyC,OAAO,GAAG;gBAC5D,UAAU,EACR,6IAA6I;gBAC/I,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,cAAc,MAAM,CAAC,MAAM,mDAAmD,oBAAoB,iDAAiD,oBAAoB,cAAc;YAC9L,UAAU,EACR,MAAM,CAAC,MAAM,IAAI,gBAAgB;gBAC/B,CAAC,CAAC,gBAAgB,MAAM,CAAC,MAAM,GAAG;gBAClC,CAAC,CAAC,2BAA2B,gBAAgB,8BAA8B,gBAAgB,qBAAqB,gBAAgB,GAAG;YACvI,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EACL,+HAA+H;YACjI,UAAU,EACR,0GAA0G;YAC5G,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,cAAc,MAAM,CAAC,MAAM,4BAA4B,KAAK,yGAAyG;YAC9K,UAAU,EACR,MAAM,CAAC,MAAM,GAAG,KAAK;gBACnB,CAAC,CAAC,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,uCAAuC,MAAM,CAAC,MAAM,EAAE;gBACpF,CAAC,CAAC,UAAU,MAAM,CAAC,MAAM,GAAG,KAAK,kCAAkC,MAAM,CAAC,MAAM,EAAE;YACtF,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAe,EACf,KAAc,EACd,OAAiB,EACjB,OAAiB,EACjB,IAAY,EACZ,MAAsB;IAEtB,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7D,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,UAAkB,EAAE,EAAE,CACnD,MAAM,CAAC,IAAI,CAAC;QACV,IAAI;QACJ,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO;QACP,UAAU;QACV,QAAQ,EAAE,SAAS;KACpB,CAAC,CAAC;IAEL,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACzE,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAExC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,CACF,wGAAwG,EACxG,wEAAwE,CACzE,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,CACF,mBAAmB,GAAG,SAAS,OAAO,CAAC,MAAM,+FAA+F,GAAG,IAAI,EACnJ,yBAAyB,OAAO,CAAC,MAAM,GAAG,CAAC,0BAA0B,CACtE,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,mBAAmB,GAAG,QAAQ,OAAO,CAAC,MAAM,6DAA6D;YAClH,UAAU,EAAE,kCAAkC,OAAO,CAAC,MAAM,iCAAiC;YAC7F,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACd,IAAI,CACF,+EAA+E,EAC/E,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CACrB,GAAe,EACf,KAA0B,EAC1B,iBAA0B,EAC1B,IAAY,EACZ,MAAsB;IAEtB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,WAAW,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,WAAW,uBAAuB,KAAK,IAAI;YACvD,UAAU,EAAE,gBAAgB,KAAK,eAAe,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,cAAc,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE;YAC9I,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC3D,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,0DAA0D,KAAK,QAAQ,OAAO,GAAG;gBAC1F,UAAU,EAAE,iBAAiB;oBAC3B,CAAC,CAAC,gFAAgF;oBAClF,CAAC,CAAC,gDAAgD;gBACpD,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC1D,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO,EACL,KAAK,KAAK,SAAS;wBACjB,CAAC,CAAC,oEAAoE,OAAO,GAAG;wBAChF,CAAC,CAAC,iEAAiE,OAAO,GAAG;oBACjF,UAAU,EACR,KAAK,KAAK,SAAS;wBACjB,CAAC,CAAC,kDAAkD;wBACpD,CAAC,CAAC,wFAAwF;oBAC9F,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO,EAAE,SAAS,KAAK,kBAAkB,OAAO,GAAG;oBACnD,UAAU,EAAE,6CAA6C;oBACzD,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,WAAW,KAAK,2BAA2B,OAAO,GAAG;gBAC9D,UAAU,EAAE,qCAAqC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,aAAa;gBACrG,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,WAAW,6BAA6B,KAAK,SAAS,KAAK,CAAC,MAAM,EAAE;YAChF,UAAU,EAAE,8BAA8B,KAAK,IAAI;YACnD,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,0CAA0C,CAAC;AAEpE,gEAAgE;AAChE,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAExE;;;;;GAKG;AACH,SAAS,gBAAgB,CACvB,OAAe,EACf,GAAe,EACf,IAAY,EACZ,MAAsB;IAEtB,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,UAAkB,EAAQ,EAAE;QACzD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO;YACP,UAAU;YACV,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,KAAa,EAAQ,EAAE,CACtD,IAAI,CACF,aAAa,IAAI,eAAe,OAAO,QAAQ,KAAK,GAAG,EACvD,4HAA4H,CAC7H,CAAC;IAEJ,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;IAC1E,MAAM,KAAK,GAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhE,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAG1D,CAAC;QACd,IAAI,CAAC,KAAK;YAAE,MAAM;QAClB,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,SAAS,CAAC,GAAG,KAAK,QAAQ,EAAE,KAAK,IAAI,WAAW,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,IAAI,CACT,aAAa,KAAK,qBAAqB,OAAO,IAAI,EAClD,QAAQ,KAAK,8CAA8C,CAC5D,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CACT,gCAAgC,OAAO,IAAI,EAC3C,iIAAiI,CAClI,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,OAAO,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,IACE,KAAK,CAAC,GAAG,KAAK,SAAS;QACvB,KAAK,CAAC,GAAG,KAAK,SAAS;QACvB,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EACrB,CAAC;QACD,OAAO,IAAI,CACT,aAAa,KAAK,CAAC,GAAG,6BAA6B,KAAK,CAAC,GAAG,eAAe,OAAO,IAAI,EACtF,+BAA+B,CAChC,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAChD,IACE,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;YAC5C,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAC5C,CAAC;YACD,OAAO,IAAI,CACT,oBAAoB,KAAK,CAAC,eAAe,+CAA+C,OAAO,IAAI,EACnG,yFAAyF,CAC1F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAOD;;;;;;GAMG;AACH,SAAS,eAAe,CACtB,OAAe,EACf,GAAe,EACf,IAAY,EACZ,MAAsB;IAEtB,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACpE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAEtC,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,yCAAyC;gBAClD,UAAU,EACR,8EAA8E;gBAChF,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,MAAM,GAAG,IAAI,CAAC;YACd,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7C,OAAO,KAAK,KAAK,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,OAAO,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC5D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,GAAG,IAAI,CAAC;gBACd,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,KAAK,KAAK,IAAI,CAAC;QACxB,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,gCAAgC,OAAO,IAAI;gBACpD,UAAU,EACR,qEAAqE;gBACvE,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,MAAM,GAAG,IAAI,CAAC;YACd,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;QACpE,OAAO,KAAK,KAAK,IAAI,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAExB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,oDAAoD;YAC7D,UAAU,EACR,oEAAoE;YACtE,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAe,EACf,OAAwB,EACxB,IAAY;IAEZ,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,CAAE,0BAAgD,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,6BAA6B,UAAU,GAAG;YACnD,UAAU,EAAE,mBAAmB,mBAAmB,mFAAmF;YACrI,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACnC,CAAC;IACD,MAAM,YAAY,GAAG,OAAkC,CAAC;IACxD,MAAM,OAAO,GAAG,aAAa,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;IAE7D,0EAA0E;IAC1E,kEAAkE;IAClE,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,OAAO,6BAA6B;YAChD,UAAU,EACR,6EAA6E;YAC/E,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,OAAO,8BAA8B,UAAU,EAAE;YAC7D,UAAU,EACR,oEAAoE;YACtE,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;IACnC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,OAAO,kCAAkC;YACrD,UAAU,EAAE,oCAAoC;YAChD,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,wEAAwE;IACxE,0DAA0D;IAC1D,IAAI,sBAAsB,GACxB,GAAG,CAAC,MAAM,CAAC,yBAAyB,CAAC,IAAI,SAAS,CAAC;IACrD,IAAI,sBAAsB,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EACL,oFAAoF;YACtF,UAAU,EAAE,4CAA4C;YACxD,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,sBAAsB,GAAG,SAAS,CAAC;IACrC,CAAC;IACD,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CACT,GAAG,0BAA0B,CAC3B,sBAAsB,EACtB,yBAAyB,EACzB,IAAI,EACJ,GAAG,CAAC,IAAI,CACT,CACF,CAAC;QACF,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EACL,oGAAoG;gBACtG,UAAU,EAAE,mDAAmD;gBAC/D,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,uBAAuB,CAAC,IAAI,SAAS,CAAC;IAC9E,IAAI,oBAAoB,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CACT,GAAG,0BAA0B,CAC3B,oBAAoB,EACpB,uBAAuB,EACvB,IAAI,EACJ,GAAG,CAAC,IAAI,CACT,CACF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAkC;QAC7C,IAAI,EAAE,UAAU;QAChB,YAAY;QACZ,wEAAwE;QACxE,oEAAoE;QACpE,yBAAyB;QACzB,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;QACpC,OAAO;QACP,MAAM,EAAE,KAAK,EAAE,qDAAqD;QACpE,sBAAsB;QACtB,oBAAoB;QACpB,aAAa,EAAE,SAAS,CAAC,GAAG,EAAE,gBAAgB,CAAC;QAC/C,QAAQ,EAAE,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC;KACrC,CAAC;IACF,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EACL,+EAA+E;YACjF,UAAU,EAAE,yDAAyD;YACrE,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACpE,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC;YACtD,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;YACnD,IAAI,WAAW;gBAAE,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;YACnD,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;YACvD,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;YACjD,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC5C,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACrD,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;YACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,iBAAiB,CAC9B,GAAG,EACH,KAAK,EACL,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,EAC9B,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC,EAC9B,IAAI,EACJ,MAAM,CACP,CAAC;YACF,IAAI,MAAM;gBAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;YACpC,IAAI,QAAQ;gBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC1C,IAAI,SAAS;gBAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7C,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;YACvB,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,cAAc,CAC3B,GAAG,EACH,SAAS,EACT,OAAO,KAAK,MAAM,EAClB,IAAI,EACJ,MAAM,CACP,CAAC;YACF,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACtD,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACxC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChD,iEAAiE;gBACjE,kEAAkE;gBAClE,iBAAiB;gBACjB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO,EAAE,cAAc,MAAM,CAAC,OAAO,CAAC,MAAM,uFAAuF;oBACnI,UAAU,EACR,qFAAqF;oBACvF,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;gBACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACnC,CAAC;YACD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;YAC/B,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC;YACvE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC5C,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAE3C,sEAAsE;YACtE,wEAAwE;YACxE,MAAM,SAAS,GAAG,cAAc,CAC9B,GAAG,EACH,OAAO,CAAC,KAAK,KAAK,IAAI,EACtB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,OAAO,EACd,IAAI,EACJ,MAAM,CACP,CAAC;YACF,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3D,MAAM;QACR,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3D,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACtD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACjC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,OAAO,CAAC,MAAM;gBACZ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC;YACzE,MAAM;QACR,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACjE,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACtD,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC7B,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;YACjD,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;IAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAqC;IAErC,MAAM,OAAO,GAAoB;QAC/B,IAAI,EAAE,UAAU;QAChB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;IACF,IAAI,MAAM,CAAC,sBAAsB;QAC/B,OAAO,CAAC,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,CAAC;IACjE,IAAI,MAAM,CAAC,oBAAoB;QAC7B,OAAO,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;IAC7D,IAAI,MAAM,CAAC,aAAa;QAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IACvD,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7C,QAAQ;IACR,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACrD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACtE,IAAI,MAAM,CAAC,YAAY;QAAE,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IACrD,IAAI,MAAM,CAAC,WAAW;QAAE,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACjE,UAAU;IACV,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC7D,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACxD,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAC3D,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAClD,UAAU;IACV,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACrD,IAAI,MAAM,CAAC,cAAc;QAAE,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAC1E,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IACvC,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3C,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACzE,aAAa;IACb,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAClD,WAAW;IACX,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC/C,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/skill-tree.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ContentError } from "./index.js";
|
|
2
2
|
import type { ParsedLearningOutcome } from "./parser/learning-outcome.js";
|
|
3
|
+
import { type ParsedDomainMetadata, type ParsedTopicFile } from "./parser/domain.js";
|
|
3
4
|
export interface SkillTreeDomain {
|
|
4
5
|
slug: string;
|
|
5
6
|
title: string;
|
|
@@ -8,26 +9,84 @@ export interface SkillTreeDomain {
|
|
|
8
9
|
* this render inside the start column anyway. Absent = derived by the
|
|
9
10
|
* frontend from the domain's skills. */
|
|
10
11
|
startStage?: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface SkillTreeTopic {
|
|
15
|
+
/** Topic frontmatter id (uuid). */
|
|
16
|
+
id: string;
|
|
17
|
+
/** Kebab-case of the title; unique across the whole tree. */
|
|
18
|
+
slug: string;
|
|
19
|
+
/** File stem; the topic file name is the title by convention. */
|
|
20
|
+
title: string;
|
|
21
|
+
/** Slug of the domain whose folder holds the topic file. */
|
|
22
|
+
domain: string;
|
|
23
|
+
/** Display priority inside the domain: lower first, ties alphabetical. */
|
|
24
|
+
order?: number;
|
|
25
|
+
description?: string;
|
|
11
26
|
}
|
|
12
27
|
export interface TaughtByCourse {
|
|
13
28
|
slug: string;
|
|
14
29
|
title: string;
|
|
15
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Frontmatter tag that lets a course or module show up in the skill tree's
|
|
33
|
+
* "Included in" links. A module inherits it from any course that has it
|
|
34
|
+
* (shown inside that course); a module tagged on its own shows standalone.
|
|
35
|
+
* Untagged modules and courses are left out of `taughtBy` entirely. The rule
|
|
36
|
+
* is decided in one place: skillTreeVisibility.
|
|
37
|
+
*/
|
|
38
|
+
export declare const SKILL_TREE_VISIBLE_TAG = "visible-in-skilltree";
|
|
39
|
+
export interface SkillTreeModule {
|
|
40
|
+
/** Primary (parent) slug — the user-visible module page. */
|
|
41
|
+
slug: string;
|
|
42
|
+
title: string;
|
|
43
|
+
/** Lower-cased frontmatter tags of the module file. */
|
|
44
|
+
tags: string[];
|
|
45
|
+
}
|
|
46
|
+
export interface SkillTreeCourse {
|
|
47
|
+
slug: string;
|
|
48
|
+
title: string;
|
|
49
|
+
/** Lower-cased frontmatter tags of the course file. */
|
|
50
|
+
tags: string[];
|
|
51
|
+
/** Primary (parent) slugs of the modules in the course's progression,
|
|
52
|
+
* distinct, in progression order. */
|
|
53
|
+
moduleSlugs: string[];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The one place SKILL_TREE_VISIBLE_TAG is interpreted: is this module shown in
|
|
57
|
+
* the skill tree, and inside which courses? Shown when the module file carries
|
|
58
|
+
* the tag or at least one tagged course contains it; only tagged courses are
|
|
59
|
+
* listed (sorted by slug). Returns null when the module is hidden.
|
|
60
|
+
*/
|
|
61
|
+
export declare function skillTreeVisibility(module: SkillTreeModule, containingCourses: SkillTreeCourse[]): TaughtByCourse[] | null;
|
|
62
|
+
export interface TaughtBySubmodule {
|
|
63
|
+
/** Full page slug (`<module>/<submodule>`), as routed by /module/ and
|
|
64
|
+
* /courses/<course>/module/. */
|
|
65
|
+
slug: string;
|
|
66
|
+
title: string;
|
|
67
|
+
}
|
|
16
68
|
export interface TaughtByModule {
|
|
17
69
|
moduleSlug: string;
|
|
18
70
|
moduleTitle: string;
|
|
19
71
|
/** Courses whose progression contains this module. A module is always
|
|
20
72
|
* doable standalone; course membership is context, not a constraint. */
|
|
21
73
|
courses: TaughtByCourse[];
|
|
74
|
+
/** The split module's pages that reference the LO, in document order.
|
|
75
|
+
* Empty when the module is not split or the LO sits at module level. */
|
|
76
|
+
submodules: TaughtBySubmodule[];
|
|
22
77
|
}
|
|
23
78
|
export interface SkillTreeCard {
|
|
24
79
|
/** LO frontmatter id (uuid) — learner progress is keyed on this. */
|
|
25
80
|
id: string;
|
|
26
81
|
/** Filename stem; the LO file name is the card title by convention. */
|
|
27
82
|
title: string;
|
|
28
|
-
/** Slugs of every domain this skill belongs to
|
|
29
|
-
*
|
|
83
|
+
/** Slugs of every domain this skill belongs to, derived from its topics
|
|
84
|
+
* (distinct, in topic order). The first is the primary topic's domain. */
|
|
30
85
|
domains: string[];
|
|
86
|
+
/** Primary topic slug: the first `topic:` entry. */
|
|
87
|
+
topic: string;
|
|
88
|
+
/** Every topic the LO belongs to — all equals; the first is primary. */
|
|
89
|
+
topics: string[];
|
|
31
90
|
stage: string;
|
|
32
91
|
/** Hard prerequisites, as LO ids. */
|
|
33
92
|
requires: string[];
|
|
@@ -44,36 +103,41 @@ export interface SkillTreeCard {
|
|
|
44
103
|
export interface SkillTree {
|
|
45
104
|
/** Sorted by domain number. */
|
|
46
105
|
domains: SkillTreeDomain[];
|
|
106
|
+
/** Sorted by domain number, then order, then title. A topic with no
|
|
107
|
+
* outcomes is still listed. */
|
|
108
|
+
topics: SkillTreeTopic[];
|
|
47
109
|
cards: SkillTreeCard[];
|
|
48
|
-
/** LO file paths with no `
|
|
110
|
+
/** LO file paths with no `topic:` field — not yet triaged. */
|
|
49
111
|
untriaged: string[];
|
|
50
112
|
}
|
|
113
|
+
/** Kebab-case: apostrophes vanish ("You don't" → "you-dont"), every other
|
|
114
|
+
* non-alphanumeric run becomes one hyphen. */
|
|
51
115
|
export declare function slugifyTitle(title: string): string;
|
|
52
|
-
|
|
53
|
-
|
|
116
|
+
/** A `Domains and Topics/<N> <Title>/` folder, as discovered from the files inside it. */
|
|
117
|
+
export interface ParsedDomainFolder {
|
|
54
118
|
number: number;
|
|
55
|
-
|
|
119
|
+
title: string;
|
|
120
|
+
/** From `_domain_metadata.md`, when the folder has one that parsed. */
|
|
121
|
+
metadata?: ParsedDomainMetadata;
|
|
122
|
+
/** Path of the first file that declared the folder, for error reporting. */
|
|
123
|
+
declaredBy: string;
|
|
56
124
|
}
|
|
57
|
-
/** Parse a Domains/ placeholder file: `domain-number:` frontmatter is the
|
|
58
|
-
* only content that matters; the title is the filename. */
|
|
59
|
-
export declare function parseDomainFile(content: string, file: string): {
|
|
60
|
-
domain: ParsedDomainFile | null;
|
|
61
|
-
errors: ContentError[];
|
|
62
|
-
};
|
|
63
125
|
export interface SkillTreeInput {
|
|
64
|
-
/** Domain
|
|
65
|
-
|
|
126
|
+
/** Domain folder path (`Domains and Topics/3 Alignment`) → the folder. */
|
|
127
|
+
domainFolders: Map<string, ParsedDomainFolder>;
|
|
128
|
+
/** Topic file path → parsed topic plus its domain folder path (only
|
|
129
|
+
* successfully parsed ones). */
|
|
130
|
+
topicFiles: Map<string, ParsedTopicFile & {
|
|
131
|
+
domainDir: string;
|
|
132
|
+
}>;
|
|
66
133
|
/** LO file path → parsed LO (only successfully parsed ones). */
|
|
67
134
|
learningOutcomes: Map<string, ParsedLearningOutcome>;
|
|
68
|
-
/** LO
|
|
69
|
-
moduleLoRefs: Map<string,
|
|
70
|
-
/** Module file path →
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}>;
|
|
75
|
-
/** Module slug → courses containing it. */
|
|
76
|
-
moduleCourses: Map<string, TaughtByCourse[]>;
|
|
135
|
+
/** LO path → module path → submodule local slug → title. */
|
|
136
|
+
moduleLoRefs: Map<string, Map<string, Map<string, string>>>;
|
|
137
|
+
/** Module file path → the module, for every module that parsed. */
|
|
138
|
+
modules: Map<string, SkillTreeModule>;
|
|
139
|
+
/** Every course that parsed, tagged or not; the visibility rule filters. */
|
|
140
|
+
courses: SkillTreeCourse[];
|
|
77
141
|
/** All vault files, for extension-tolerant link resolution. */
|
|
78
142
|
files: Map<string, string>;
|
|
79
143
|
}
|
|
@@ -81,3 +145,11 @@ export declare function buildSkillTree(input: SkillTreeInput): {
|
|
|
81
145
|
skillTree: SkillTree;
|
|
82
146
|
errors: ContentError[];
|
|
83
147
|
};
|
|
148
|
+
/** `order` first (lower wins, absent last), then title. */
|
|
149
|
+
export declare function compareTopicOrder(a: {
|
|
150
|
+
order?: number;
|
|
151
|
+
title: string;
|
|
152
|
+
}, b: {
|
|
153
|
+
order?: number;
|
|
154
|
+
title: string;
|
|
155
|
+
}): number;
|
package/dist/skill-tree.js
CHANGED
|
@@ -1,131 +1,181 @@
|
|
|
1
1
|
// src/skill-tree.ts — assembles the skill-tree structure from parsed content.
|
|
2
2
|
//
|
|
3
|
-
// The processor emits relationships (LO ↔
|
|
4
|
-
// decisions live in the frontend. Cards reference each
|
|
5
|
-
//
|
|
6
|
-
import {
|
|
3
|
+
// The processor emits relationships (LO ↔ topic ↔ domain, LO ↔ module ↔
|
|
4
|
+
// course); presentation decisions live in the frontend. Cards reference each
|
|
5
|
+
// other by LO id, topics by slug, and domains by slug.
|
|
6
|
+
import { DOMAIN_METADATA_FILE, fileStem, } from "./parser/domain.js";
|
|
7
7
|
import { findFileWithExtension } from "./parser/wikilink.js";
|
|
8
|
+
/**
|
|
9
|
+
* Frontmatter tag that lets a course or module show up in the skill tree's
|
|
10
|
+
* "Included in" links. A module inherits it from any course that has it
|
|
11
|
+
* (shown inside that course); a module tagged on its own shows standalone.
|
|
12
|
+
* Untagged modules and courses are left out of `taughtBy` entirely. The rule
|
|
13
|
+
* is decided in one place: skillTreeVisibility.
|
|
14
|
+
*/
|
|
15
|
+
export const SKILL_TREE_VISIBLE_TAG = "visible-in-skilltree";
|
|
16
|
+
const hasSkillTreeTag = (tags) => tags.includes(SKILL_TREE_VISIBLE_TAG);
|
|
17
|
+
/**
|
|
18
|
+
* The one place SKILL_TREE_VISIBLE_TAG is interpreted: is this module shown in
|
|
19
|
+
* the skill tree, and inside which courses? Shown when the module file carries
|
|
20
|
+
* the tag or at least one tagged course contains it; only tagged courses are
|
|
21
|
+
* listed (sorted by slug). Returns null when the module is hidden.
|
|
22
|
+
*/
|
|
23
|
+
export function skillTreeVisibility(module, containingCourses) {
|
|
24
|
+
const courses = containingCourses
|
|
25
|
+
.filter((course) => hasSkillTreeTag(course.tags))
|
|
26
|
+
.map(({ slug, title }) => ({ slug, title }))
|
|
27
|
+
.sort((a, b) => a.slug.localeCompare(b.slug));
|
|
28
|
+
if (courses.length === 0 && !hasSkillTreeTag(module.tags))
|
|
29
|
+
return null;
|
|
30
|
+
return courses;
|
|
31
|
+
}
|
|
32
|
+
/** Kebab-case: apostrophes vanish ("You don't" → "you-dont"), every other
|
|
33
|
+
* non-alphanumeric run becomes one hyphen. */
|
|
8
34
|
export function slugifyTitle(title) {
|
|
9
35
|
return title
|
|
10
36
|
.toLowerCase()
|
|
37
|
+
.replace(/['’]/g, "")
|
|
11
38
|
.replace(/[^a-z0-9]+/g, "-")
|
|
12
39
|
.replace(/^-+|-+$/g, "");
|
|
13
40
|
}
|
|
14
|
-
function
|
|
15
|
-
const base = path.split("/").pop() ?? path;
|
|
16
|
-
return base.replace(/\.md$/, "");
|
|
17
|
-
}
|
|
18
|
-
/** Parse a Domains/ placeholder file: `domain-number:` frontmatter is the
|
|
19
|
-
* only content that matters; the title is the filename. */
|
|
20
|
-
export function parseDomainFile(content, file) {
|
|
41
|
+
export function buildSkillTree(input) {
|
|
21
42
|
const errors = [];
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
message: `Domain file must have an integer 'domain-number' field, got: ${JSON.stringify(rawNumber)}`,
|
|
33
|
-
suggestion: "Add domain-number: <n> to the frontmatter",
|
|
34
|
-
severity: "error",
|
|
35
|
-
});
|
|
36
|
-
return { domain: null, errors };
|
|
37
|
-
}
|
|
38
|
-
const rawStart = frontmatterResult.frontmatter["start-stage"];
|
|
39
|
-
let startStage;
|
|
40
|
-
if (rawStart !== undefined && rawStart !== null) {
|
|
41
|
-
if (typeof rawStart === "string" &&
|
|
42
|
-
["beginner", "intermediate", "advanced"].includes(rawStart)) {
|
|
43
|
-
startStage = rawStart;
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
43
|
+
// --- Domains ---
|
|
44
|
+
const numberToDir = new Map();
|
|
45
|
+
const slugToDir = new Map();
|
|
46
|
+
const dirToDomain = new Map();
|
|
47
|
+
const folders = [...input.domainFolders].sort(([a], [b]) => a.localeCompare(b));
|
|
48
|
+
for (const [dir, folder] of folders) {
|
|
49
|
+
const slug = slugifyTitle(folder.title);
|
|
50
|
+
const sameNumber = numberToDir.get(folder.number);
|
|
51
|
+
const sameSlug = slugToDir.get(slug);
|
|
52
|
+
if (sameNumber || sameSlug) {
|
|
46
53
|
errors.push({
|
|
47
|
-
file,
|
|
48
|
-
line:
|
|
49
|
-
message:
|
|
50
|
-
|
|
54
|
+
file: folder.declaredBy,
|
|
55
|
+
line: 1,
|
|
56
|
+
message: sameNumber
|
|
57
|
+
? `Duplicate domain number ${folder.number}: '${dir}' and '${sameNumber}'`
|
|
58
|
+
: `Duplicate domain '${slug}': '${dir}' and '${sameSlug}' have the same title`,
|
|
59
|
+
suggestion: "Give each domain folder a unique number and title",
|
|
51
60
|
severity: "error",
|
|
52
61
|
});
|
|
62
|
+
continue;
|
|
53
63
|
}
|
|
64
|
+
numberToDir.set(folder.number, dir);
|
|
65
|
+
slugToDir.set(slug, dir);
|
|
66
|
+
dirToDomain.set(dir, {
|
|
67
|
+
slug,
|
|
68
|
+
title: folder.title,
|
|
69
|
+
number: folder.number,
|
|
70
|
+
...(folder.metadata?.startStage
|
|
71
|
+
? { startStage: folder.metadata.startStage }
|
|
72
|
+
: {}),
|
|
73
|
+
...(folder.metadata?.description
|
|
74
|
+
? { description: folder.metadata.description }
|
|
75
|
+
: {}),
|
|
76
|
+
});
|
|
54
77
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
// --- Domains ---
|
|
67
|
-
const numberToPath = new Map();
|
|
68
|
-
const pathToDomain = new Map();
|
|
69
|
-
for (const [path, parsed] of input.domainFiles) {
|
|
70
|
-
const existing = numberToPath.get(parsed.number);
|
|
78
|
+
const domains = [...dirToDomain.values()].sort((a, b) => a.number - b.number);
|
|
79
|
+
// --- Topics ---
|
|
80
|
+
const pathToTopic = new Map();
|
|
81
|
+
const slugToTopicPath = new Map();
|
|
82
|
+
const topicEntries = [...input.topicFiles].sort(([a], [b]) => a.localeCompare(b));
|
|
83
|
+
for (const [path, parsed] of topicEntries) {
|
|
84
|
+
const domain = dirToDomain.get(parsed.domainDir);
|
|
85
|
+
if (!domain)
|
|
86
|
+
continue; // the folder itself was rejected above
|
|
87
|
+
const slug = slugifyTitle(parsed.title);
|
|
88
|
+
const existing = slugToTopicPath.get(slug);
|
|
71
89
|
if (existing) {
|
|
72
90
|
errors.push({
|
|
73
91
|
file: path,
|
|
74
|
-
line:
|
|
75
|
-
message: `Duplicate
|
|
76
|
-
suggestion: "
|
|
92
|
+
line: 1,
|
|
93
|
+
message: `Duplicate topic slug '${slug}': '${path}' and '${existing}' have the same title`,
|
|
94
|
+
suggestion: "Topic titles must be unique across all domains — rename one of the files",
|
|
77
95
|
severity: "error",
|
|
78
96
|
});
|
|
79
97
|
continue;
|
|
80
98
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
99
|
+
slugToTopicPath.set(slug, path);
|
|
100
|
+
pathToTopic.set(path, {
|
|
101
|
+
id: parsed.id,
|
|
102
|
+
slug,
|
|
84
103
|
title: parsed.title,
|
|
85
|
-
|
|
86
|
-
...(parsed.
|
|
104
|
+
domain: domain.slug,
|
|
105
|
+
...(parsed.order !== undefined ? { order: parsed.order } : {}),
|
|
106
|
+
...(parsed.description ? { description: parsed.description } : {}),
|
|
87
107
|
});
|
|
88
108
|
}
|
|
89
|
-
const
|
|
109
|
+
const domainNumber = new Map(domains.map((d) => [d.slug, d.number]));
|
|
110
|
+
const topics = [...pathToTopic.values()].sort((a, b) => domainNumber.get(a.domain) - domainNumber.get(b.domain) ||
|
|
111
|
+
compareTopicOrder(a, b));
|
|
90
112
|
// --- Cards ---
|
|
113
|
+
// Course → module membership, inverted, so the visibility rule can read
|
|
114
|
+
// "which courses contain this module" per module.
|
|
115
|
+
const coursesByModule = new Map();
|
|
116
|
+
for (const course of input.courses) {
|
|
117
|
+
for (const slug of course.moduleSlugs) {
|
|
118
|
+
if (!coursesByModule.has(slug))
|
|
119
|
+
coursesByModule.set(slug, []);
|
|
120
|
+
coursesByModule.get(slug).push(course);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
91
123
|
// First pass: which LO paths become cards (needed to validate requires
|
|
92
124
|
// edges — an edge must point at another card, not at an excluded or
|
|
93
125
|
// untriaged LO).
|
|
94
126
|
const cardPaths = new Map();
|
|
95
127
|
const untriaged = [];
|
|
96
128
|
for (const [path, lo] of input.learningOutcomes) {
|
|
97
|
-
if (lo.
|
|
129
|
+
if (lo.topics === undefined) {
|
|
98
130
|
// Not yet triaged. Reported via skillTree.untriaged (a TODO list for
|
|
99
131
|
// editors), not as a per-file warning — most LOs were written before
|
|
100
132
|
// the skill tree existed and blanket warnings would drown /validate.
|
|
101
133
|
untriaged.push(path);
|
|
102
134
|
continue;
|
|
103
135
|
}
|
|
104
|
-
if (lo.
|
|
136
|
+
if (lo.topics === "none")
|
|
105
137
|
continue;
|
|
106
138
|
cardPaths.set(path, lo);
|
|
107
139
|
}
|
|
108
140
|
untriaged.sort();
|
|
109
141
|
const cards = [];
|
|
110
142
|
for (const [path, lo] of cardPaths) {
|
|
111
|
-
const
|
|
143
|
+
const topicRefs = lo.topics;
|
|
144
|
+
const topicSlugs = [];
|
|
112
145
|
const domainSlugs = [];
|
|
113
|
-
for (const
|
|
114
|
-
const
|
|
115
|
-
const
|
|
116
|
-
if (!
|
|
146
|
+
for (const ref of topicRefs) {
|
|
147
|
+
const topicPath = findFileWithExtension(ref.resolvedPath, input.files);
|
|
148
|
+
const topic = topicPath ? pathToTopic.get(topicPath) : undefined;
|
|
149
|
+
if (!topic) {
|
|
150
|
+
const reason = topicPath && fileStem(topicPath) === fileStem(DOMAIN_METADATA_FILE)
|
|
151
|
+
? "points at a domain's metadata file, not a topic"
|
|
152
|
+
: topicPath
|
|
153
|
+
? "does not resolve to a topic file inside a numbered domain folder"
|
|
154
|
+
: "does not resolve to a file";
|
|
155
|
+
errors.push({
|
|
156
|
+
file: path,
|
|
157
|
+
line: 2,
|
|
158
|
+
message: `'topic' link ${reason}: ${ref.resolvedPath}`,
|
|
159
|
+
suggestion: 'Point at a topic file: topic: "[[../Domains and Topics/<N> <Domain title>/<Topic title>]]"',
|
|
160
|
+
severity: "error",
|
|
161
|
+
});
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
if (topicSlugs.includes(topic.slug)) {
|
|
117
165
|
errors.push({
|
|
118
166
|
file: path,
|
|
119
167
|
line: 2,
|
|
120
|
-
message: `
|
|
121
|
-
suggestion: "
|
|
168
|
+
message: `Duplicate 'topic' entry: ${ref.source}`,
|
|
169
|
+
suggestion: "List each topic once",
|
|
122
170
|
severity: "error",
|
|
123
171
|
});
|
|
124
172
|
continue;
|
|
125
173
|
}
|
|
126
|
-
|
|
174
|
+
topicSlugs.push(topic.slug);
|
|
175
|
+
if (!domainSlugs.includes(topic.domain))
|
|
176
|
+
domainSlugs.push(topic.domain);
|
|
127
177
|
}
|
|
128
|
-
if (
|
|
178
|
+
if (topicSlugs.length === 0)
|
|
129
179
|
continue;
|
|
130
180
|
if (lo.stage === undefined)
|
|
131
181
|
continue; // already reported by the parser
|
|
@@ -149,14 +199,21 @@ export function buildSkillTree(input) {
|
|
|
149
199
|
requires.push(target.id);
|
|
150
200
|
}
|
|
151
201
|
const taughtBy = [];
|
|
152
|
-
for (const modulePath of input.moduleLoRefs.get(path) ?? []) {
|
|
153
|
-
const
|
|
154
|
-
if (!
|
|
202
|
+
for (const [modulePath, submodules] of input.moduleLoRefs.get(path) ?? []) {
|
|
203
|
+
const module = input.modules.get(modulePath);
|
|
204
|
+
if (!module)
|
|
205
|
+
continue;
|
|
206
|
+
const courses = skillTreeVisibility(module, coursesByModule.get(module.slug) ?? []);
|
|
207
|
+
if (!courses)
|
|
155
208
|
continue;
|
|
156
209
|
taughtBy.push({
|
|
157
|
-
moduleSlug:
|
|
158
|
-
moduleTitle:
|
|
159
|
-
courses
|
|
210
|
+
moduleSlug: module.slug,
|
|
211
|
+
moduleTitle: module.title,
|
|
212
|
+
courses,
|
|
213
|
+
submodules: [...submodules].map(([slug, title]) => ({
|
|
214
|
+
slug: `${module.slug}/${slug}`,
|
|
215
|
+
title,
|
|
216
|
+
})),
|
|
160
217
|
});
|
|
161
218
|
}
|
|
162
219
|
taughtBy.sort((a, b) => a.moduleSlug.localeCompare(b.moduleSlug));
|
|
@@ -164,6 +221,8 @@ export function buildSkillTree(input) {
|
|
|
164
221
|
id: lo.id,
|
|
165
222
|
title: fileStem(path),
|
|
166
223
|
domains: domainSlugs,
|
|
224
|
+
topic: topicSlugs[0],
|
|
225
|
+
topics: topicSlugs,
|
|
167
226
|
stage: lo.stage,
|
|
168
227
|
requires,
|
|
169
228
|
...(lo.outcomeStatement ? { outcome: lo.outcomeStatement } : {}),
|
|
@@ -172,6 +231,11 @@ export function buildSkillTree(input) {
|
|
|
172
231
|
});
|
|
173
232
|
}
|
|
174
233
|
cards.sort((a, b) => a.title.localeCompare(b.title));
|
|
175
|
-
return { skillTree: { domains, cards, untriaged }, errors };
|
|
234
|
+
return { skillTree: { domains, topics, cards, untriaged }, errors };
|
|
235
|
+
}
|
|
236
|
+
/** `order` first (lower wins, absent last), then title. */
|
|
237
|
+
export function compareTopicOrder(a, b) {
|
|
238
|
+
return ((a.order ?? Number.POSITIVE_INFINITY) -
|
|
239
|
+
(b.order ?? Number.POSITIVE_INFINITY) || a.title.localeCompare(b.title));
|
|
176
240
|
}
|
|
177
241
|
//# sourceMappingURL=skill-tree.js.map
|