lens-content-processor 0.48.0 → 0.50.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/bundler/article.d.ts +51 -45
- package/dist/bundler/article.js +106 -50
- package/dist/bundler/article.js.map +1 -1
- package/dist/content-schema.d.ts +22 -0
- package/dist/content-schema.js +58 -29
- package/dist/content-schema.js.map +1 -1
- package/dist/flattener/index.js +69 -77
- package/dist/flattener/index.js.map +1 -1
- package/dist/flattener/test-helpers.js +1 -0
- package/dist/flattener/test-helpers.js.map +1 -1
- package/dist/index.d.ts +24 -5
- package/dist/index.js +19 -6
- package/dist/index.js.map +1 -1
- package/dist/parser/article-elements.d.ts +139 -0
- package/dist/parser/article-elements.js +489 -0
- package/dist/parser/article-elements.js.map +1 -0
- package/dist/parser/article.d.ts +4 -0
- package/dist/parser/article.js +7 -4
- package/dist/parser/article.js.map +1 -1
- package/dist/parser/code-fence.d.ts +7 -0
- package/dist/parser/code-fence.js +34 -0
- package/dist/parser/code-fence.js.map +1 -0
- package/dist/parser/frames.d.ts +51 -0
- package/dist/parser/frames.js +116 -0
- package/dist/parser/frames.js.map +1 -0
- package/dist/parser/learning-outcome.js +4 -2
- package/dist/parser/learning-outcome.js.map +1 -1
- package/dist/parser/lens.d.ts +40 -6
- package/dist/parser/lens.js +56 -72
- package/dist/parser/lens.js.map +1 -1
- package/dist/parser/module.js +7 -27
- package/dist/parser/module.js.map +1 -1
- package/dist/parser/response-segments.d.ts +16 -32
- package/dist/parser/response-segments.js +24 -11
- package/dist/parser/response-segments.js.map +1 -1
- package/dist/parser/sections.d.ts +21 -1
- package/dist/parser/sections.js +94 -14
- package/dist/parser/sections.js.map +1 -1
- package/dist/parser/survey.js +9 -5
- package/dist/parser/survey.js.map +1 -1
- package/dist/source-location.js +6 -1
- package/dist/source-location.js.map +1 -1
- package/dist/validator/article-structure.js +24 -4
- package/dist/validator/article-structure.js.map +1 -1
- package/dist/validator/directives.js +61 -58
- package/dist/validator/directives.js.map +1 -1
- package/dist/validator/test-segments.d.ts +6 -6
- package/dist/validator/test-segments.js +7 -7
- package/dist/validator/test-segments.js.map +1 -1
- package/dist/validator/tier.d.ts +2 -2
- package/dist/validator/tier.js +20 -18
- package/dist/validator/tier.js.map +1 -1
- package/package.json +1 -1
- package/dist/validator/article-imports.d.ts +0 -68
- package/dist/validator/article-imports.js +0 -265
- package/dist/validator/article-imports.js.map +0 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { ContentError, Frame } from "../index.js";
|
|
2
|
+
export type FrameToken<T> = {
|
|
3
|
+
kind: "open";
|
|
4
|
+
frame: Frame;
|
|
5
|
+
line: number;
|
|
6
|
+
/** How the author wrote the opener, for messages ("#### Callout"). */
|
|
7
|
+
label: string;
|
|
8
|
+
/** What closes it, for suggestions ("#### End Callout"). */
|
|
9
|
+
closeLabel: string;
|
|
10
|
+
} | {
|
|
11
|
+
kind: "close";
|
|
12
|
+
line: number;
|
|
13
|
+
label: string;
|
|
14
|
+
} | {
|
|
15
|
+
kind: "item";
|
|
16
|
+
item: T;
|
|
17
|
+
};
|
|
18
|
+
export interface Framed<T> {
|
|
19
|
+
item: T;
|
|
20
|
+
/** Enclosing containers, outermost first; empty at top level. */
|
|
21
|
+
frames: Frame[];
|
|
22
|
+
}
|
|
23
|
+
export interface NestFramesResult<T> {
|
|
24
|
+
items: Framed<T>[];
|
|
25
|
+
errors: ContentError[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Assign every item the frames open at its position. A close token closes
|
|
29
|
+
* the innermost open container; a close with nothing open, and an opener
|
|
30
|
+
* that is never closed, are errors (the items after an unclosed opener stay
|
|
31
|
+
* inside it, so the author sees the box they wrote until they fix it).
|
|
32
|
+
*/
|
|
33
|
+
export declare function nestFrames<T>(tokens: FrameToken<T>[], file: string): NestFramesResult<T>;
|
|
34
|
+
/**
|
|
35
|
+
* Build a callout frame from its title and tone::/collapse:: fields. The
|
|
36
|
+
* key only has to be unique among sibling frames of one parse (the renderer
|
|
37
|
+
* merges adjacent segments whose frame at a depth shares a key), so the
|
|
38
|
+
* file and line of the opener serve.
|
|
39
|
+
*/
|
|
40
|
+
export declare function calloutFrame(file: string, line: number, title: string | undefined, fields: Record<string, string>): Frame;
|
|
41
|
+
/**
|
|
42
|
+
* Value checks shared by both callout notations (heading fields and
|
|
43
|
+
* directive attributes). Unknown field names are the segment-field
|
|
44
|
+
* validator's job.
|
|
45
|
+
*/
|
|
46
|
+
export declare function validateCalloutFields(fields: Record<string, string>, file: string, line: number): ContentError[];
|
|
47
|
+
/** Outer frames first, then the segment's own: for segments produced from a
|
|
48
|
+
* nested source (an article's lifted callouts inside a lens callout). */
|
|
49
|
+
export declare function prependFrames<T extends object>(segment: T, outer: Frame[] | undefined): T & {
|
|
50
|
+
frames?: Frame[];
|
|
51
|
+
};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// src/parser/frames.ts — containers as frames on flat segments.
|
|
2
|
+
//
|
|
3
|
+
// Authors nest: `#### Callout: Title` … `#### End Callout` around segments in
|
|
4
|
+
// a lens, test or survey body, or `:::callout{…}` … `:::` around elements in
|
|
5
|
+
// an article body, to any depth. The output stays flat: a container never
|
|
6
|
+
// becomes a segment; instead every segment inside carries the stack of its
|
|
7
|
+
// enclosing containers as `frames` (outermost first). Everything that keys on
|
|
8
|
+
// segment position (question ids, completion gating, tutor context, chat
|
|
9
|
+
// threads) is untouched, and the renderer regroups consecutive segments that
|
|
10
|
+
// share a frame into one box.
|
|
11
|
+
//
|
|
12
|
+
// Both notations feed the same walker: the caller turns its markers into
|
|
13
|
+
// open/close tokens and its segments (or prose ranges) into items, and
|
|
14
|
+
// nestFrames assigns the frames and reports unbalanced markers.
|
|
15
|
+
import { CALLOUT_COLLAPSE, CALLOUT_TONES } from "../content-schema.js";
|
|
16
|
+
/**
|
|
17
|
+
* Assign every item the frames open at its position. A close token closes
|
|
18
|
+
* the innermost open container; a close with nothing open, and an opener
|
|
19
|
+
* that is never closed, are errors (the items after an unclosed opener stay
|
|
20
|
+
* inside it, so the author sees the box they wrote until they fix it).
|
|
21
|
+
*/
|
|
22
|
+
export function nestFrames(tokens, file) {
|
|
23
|
+
const stack = [];
|
|
24
|
+
const items = [];
|
|
25
|
+
const errors = [];
|
|
26
|
+
for (const token of tokens) {
|
|
27
|
+
if (token.kind === "open") {
|
|
28
|
+
stack.push(token);
|
|
29
|
+
}
|
|
30
|
+
else if (token.kind === "close") {
|
|
31
|
+
if (!stack.pop()) {
|
|
32
|
+
errors.push({
|
|
33
|
+
file,
|
|
34
|
+
line: token.line,
|
|
35
|
+
message: `'${token.label}' closes nothing: no callout is open here`,
|
|
36
|
+
suggestion: "Remove it, or add the opening marker of the callout it should close",
|
|
37
|
+
severity: "error",
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
items.push({ item: token.item, frames: stack.map((open) => open.frame) });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
for (const open of stack) {
|
|
46
|
+
errors.push({
|
|
47
|
+
file,
|
|
48
|
+
line: open.line,
|
|
49
|
+
message: `'${open.label}' is never closed`,
|
|
50
|
+
suggestion: `Close it with '${open.closeLabel}' after the last segment it should contain`,
|
|
51
|
+
severity: "error",
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return { items, errors };
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Build a callout frame from its title and tone::/collapse:: fields. The
|
|
58
|
+
* key only has to be unique among sibling frames of one parse (the renderer
|
|
59
|
+
* merges adjacent segments whose frame at a depth shares a key), so the
|
|
60
|
+
* file and line of the opener serve.
|
|
61
|
+
*/
|
|
62
|
+
export function calloutFrame(file, line, title, fields) {
|
|
63
|
+
const frame = { key: `${file}:${line}`, type: "callout" };
|
|
64
|
+
if (title)
|
|
65
|
+
frame.title = title;
|
|
66
|
+
const tone = fields.tone?.trim();
|
|
67
|
+
if (tone && CALLOUT_TONES.includes(tone)) {
|
|
68
|
+
frame.tone = tone;
|
|
69
|
+
}
|
|
70
|
+
const collapse = fields.collapse?.trim();
|
|
71
|
+
if (collapse && CALLOUT_COLLAPSE.includes(collapse)) {
|
|
72
|
+
frame.collapse = collapse;
|
|
73
|
+
}
|
|
74
|
+
return frame;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Value checks shared by both callout notations (heading fields and
|
|
78
|
+
* directive attributes). Unknown field names are the segment-field
|
|
79
|
+
* validator's job.
|
|
80
|
+
*/
|
|
81
|
+
export function validateCalloutFields(fields, file, line) {
|
|
82
|
+
const errors = [];
|
|
83
|
+
const tone = fields.tone?.trim();
|
|
84
|
+
if (tone !== undefined &&
|
|
85
|
+
!CALLOUT_TONES.includes(tone)) {
|
|
86
|
+
errors.push({
|
|
87
|
+
file,
|
|
88
|
+
line,
|
|
89
|
+
message: `Unrecognized callout tone '${tone}'`,
|
|
90
|
+
suggestion: `Use ${CALLOUT_TONES.join(", ")}`,
|
|
91
|
+
severity: "error",
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
const collapse = fields.collapse?.trim();
|
|
95
|
+
if (collapse !== undefined &&
|
|
96
|
+
!CALLOUT_COLLAPSE.includes(collapse)) {
|
|
97
|
+
errors.push({
|
|
98
|
+
file,
|
|
99
|
+
line,
|
|
100
|
+
message: `Invalid callout collapse value '${collapse}'`,
|
|
101
|
+
suggestion: 'Use collapse="closed", collapse="open", or omit collapse',
|
|
102
|
+
severity: "error",
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
return errors;
|
|
106
|
+
}
|
|
107
|
+
/** Outer frames first, then the segment's own: for segments produced from a
|
|
108
|
+
* nested source (an article's lifted callouts inside a lens callout). */
|
|
109
|
+
export function prependFrames(segment, outer) {
|
|
110
|
+
const framed = segment;
|
|
111
|
+
if (!outer || outer.length === 0)
|
|
112
|
+
return framed;
|
|
113
|
+
framed.frames = [...outer, ...(framed.frames ?? [])];
|
|
114
|
+
return framed;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=frames.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/parser/frames.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { parseFrontmatter } from "./frontmatter.js";
|
|
2
|
-
import { parseSections, LO_SECTION_TYPES, } from "./sections.js";
|
|
2
|
+
import { parseSections, parseSegments, LO_SECTION_TYPES, } from "./sections.js";
|
|
3
3
|
import { parseWikilink, resolveWikilinkPath, hasRelativePath, } from "./wikilink.js";
|
|
4
4
|
import { detectFieldTypos } from "../validator/field-typos.js";
|
|
5
5
|
import { validateFrontmatter } from "../validator/validate-frontmatter.js";
|
|
@@ -185,7 +185,7 @@ function parseLearningOutcomePrepared(content, file) {
|
|
|
185
185
|
}
|
|
186
186
|
resolvedPath = resolveWikilinkPath(wikilink.path, file);
|
|
187
187
|
}
|
|
188
|
-
const {
|
|
188
|
+
const { segments: rawSegments, errors: segmentErrors } = parseSegments(section.body, section.level, LENS_SEGMENT_TYPES, file);
|
|
189
189
|
for (const err of segmentErrors) {
|
|
190
190
|
if (err.line) {
|
|
191
191
|
err.line += section.line;
|
|
@@ -226,6 +226,8 @@ function parseLearningOutcomePrepared(content, file) {
|
|
|
226
226
|
errors.push(...gradabilityErrors);
|
|
227
227
|
if (gradabilityErrors.length > 0)
|
|
228
228
|
continue;
|
|
229
|
+
if (rawSeg.frames)
|
|
230
|
+
segment.frames = rawSeg.frames;
|
|
229
231
|
testSegments.push(segment);
|
|
230
232
|
}
|
|
231
233
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learning-outcome.js","sourceRoot":"","sources":["../../src/parser/learning-outcome.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"learning-outcome.js","sourceRoot":"","sources":["../../src/parser/learning-outcome.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,GAEjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EACL,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,cAAc,EACd,kBAAkB,EAElB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,iCAAiC,EACjC,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAqBhC,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,UAAU;IACV,cAAc;IACd,UAAU;CACF,CAAC;AA2BX,0EAA0E;AAC1E,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAOxD,SAAS,4BAA4B,CACnC,OAAe,EACf,IAAY;IAEZ,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,kDAAkD;IAClD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1D,IAAI,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAAC;IACzD,IAAI,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC;IAEjC,qEAAqE;IACrE,2EAA2E;IAC3E,uEAAuE;IACvE,iEAAiE;IACjE,IAAI,GAAG,IAAI,CAAC,OAAO,CACjB,gCAAgC,EAChC,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAC3D,CAAC;IAEF,MAAM,iBAAiB,GAAG,mBAAmB,CAC3C,WAAW,EACX,kBAAkB,EAClB,IAAI,CACL,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;IAElC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC3C,CAAC;IAED,mCAAmC;IACnC,IAAI,OAAO,WAAW,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,oCAAoC,OAAO,WAAW,CAAC,EAAE,EAAE;YACpE,UAAU,EAAE,yBAAyB;YACrC,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC3C,CAAC;IAED,mDAAmD;IACnD,MAAM,SAAS,GAAG,sBAAsB,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAEpE,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,0EAA0E;QAC1E,mEAAmE;QACnE,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,WAAW,eAAe,SAAS,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,sBAAsB,EAAE;gBACnJ,UAAU,EAAE,mGAAmG,eAAe,MAAM;gBACpI,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC;QAED,iEAAiE;QACjE,0EAA0E;QAC1E,0EAA0E;QAC1E,kEAAkE;QAClE,OAAO;YACL,eAAe,EAAE;gBACf,EAAE,EAAE,WAAW,CAAC,EAAE;gBAClB,eAAe,EAAE,EAAE;gBACnB,UAAU,EAAE,WAAW,CAAC,UAAgC;gBACxD,gBAAgB,EACd,OAAO,WAAW,CAAC,kBAAkB,CAAC,KAAK,QAAQ;oBACjD,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC;oBACjC,CAAC,CAAC,SAAS;gBACf,GAAG,SAAS;gBACZ,WAAW,EAAE,IAAI;aAClB;YACD,MAAM;SACP,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,oEAAoE;IACpE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;QAC7B,GAAG,gBAAgB;QACnB,kBAAkB;QAClB,WAAW;KACZ,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAEpE,iDAAiD;IACjD,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,IAAI,aAAa,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAEtC,KAAK,MAAM,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC9C,OAAO,CAAC,IAAI,IAAI,aAAa,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,yDAAyD;IACzD,SAAS,oBAAoB,CAC3B,OAAsB;QAEtB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,qCAAqC;gBAC9C,UAAU,EACR,sEAAsE;gBACxE,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,QAAQ,EAAE,aAAa;gBACxC,CAAC,CAAC,mBAAmB,QAAQ,CAAC,aAAa,MAAM;gBACjD,CAAC,CAAC,mDAAmD,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,QAAQ,EAAE,KAAK;oBACtB,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,uBAAuB,MAAM,EAAE;oBAClD,CAAC,CAAC,8CAA8C,MAAM,EAAE;gBAC1D,UAAU;gBACV,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,+CAA+C,QAAQ,CAAC,IAAI,EAAE;gBACvE,UAAU,EACR,sEAAsE;gBACxE,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QAE3C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/D,CAAC;IAED,iDAAiD;IACjD,SAAS,cAAc,CAAC,OAAsB;QAC5C,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,gBAAgB,GACpB,uDAAuD,CAAC,IAAI,CAC1D,OAAO,CAAC,IAAI,CACb,CAAC;YACJ,qEAAqE;YACrE,0CAA0C;YAC1C,MAAM,kBAAkB,GAAG;gBACzB,SAAS;gBACT,yBAAyB;gBACzB,iBAAiB;gBACjB,iBAAiB;gBACjB,UAAU;aACX,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CACvE,CAAC;YAEF,IAAI,CAAC,SAAS,IAAI,CAAC,gBAAgB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC3D,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,0CAA0C;gBACnD,UAAU,EACR,iFAAiF;gBACnF,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QACrC,IAAI,YAAgC,CAAC;QAErC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAChC,MAAM,UAAU,GAAG,QAAQ,EAAE,aAAa;oBACxC,CAAC,CAAC,mBAAmB,QAAQ,CAAC,aAAa,MAAM;oBACjD,CAAC,CAAC,kDAAkD,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,QAAQ,EAAE,KAAK;wBACtB,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,uBAAuB,MAAM,EAAE;wBAClD,CAAC,CAAC,8CAA8C,MAAM,EAAE;oBAC1D,UAAU;oBACV,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;gBACH,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,CACpE,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,KAAK,EACb,kBAAkB,EAClB,IAAI,CACL,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QAE9B,4EAA4E;QAC5E,kFAAkF;QAClF,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAClE,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;QAElC,MAAM,YAAY,GAAwB,EAAE,CAAC;QAC7C,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAC1D,MAAM,EACN,MAAM,EACN,IAAI,CACL,CAAC;YACF,MAAM,aAAa,GAAG;gBACpB,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC;gBACnC,GAAG,gBAAgB;aACpB,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;gBAChC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;YAC9B,IAAI,OAAO,EAAE,CAAC;gBACZ,+DAA+D;gBAC/D,oEAAoE;gBACpE,MAAM,iBAAiB,GAAG,8BAA8B,CACtD,OAAO,EACP,IAAI,EACJ,MAAM,CAAC,IAAI,CACZ,CAAC;gBACF,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;oBACpC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;wBACb,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;oBAC3B,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;gBAClC,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC;oBAAE,SAAS;gBAC3C,IAAI,MAAM,CAAC,MAAM;oBAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAClD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IAC9D,CAAC;IAED,uEAAuE;IACvE,wEAAwE;IACxE,MAAM,eAAe,GAA0B,EAAE,CAAC;IAClD,IAAI,OAAkC,CAAC;IAEvC,KAAK,MAAM,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EACL,iEAAiE;gBACnE,UAAU,EACR,+EAA+E;gBACjF,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACxC,+DAA+D;YAC/D,qEAAqE;YACrE,sEAAsE;YACtE,MAAM,WAAW,GAAG,aAAa,CAC/B,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,KAAK,EACb,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACzB,IAAI,CACL,CAAC;YACF,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;gBAC7B,CAAC;YACH,CAAC;YACD,oEAAoE;YACpE,uDAAuD;YACvD,MAAM,CAAC,IAAI,CACT,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CACjE,CACF,CAAC;YACF,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACzC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;gBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI;wBACJ,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,OAAO,EACL,uEAAuE;wBACzE,UAAU,EACR,8DAA8D;wBAChE,QAAQ,EAAE,OAAO;qBAClB,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtE,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;gBAC7B,MAAM,GAAG,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,GAAG;oBAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1E,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EACL,uIAAuI;gBACzI,UAAU,EACR,mLAAmL;gBACrL,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,oEAAoE;YACpE,+DAA+D;YAC/D,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,8BAA8B,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,oEAAoE;oBAC/H,UAAU,EACR,8DAA8D;oBAChE,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1E,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAC7B,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,+EAA+E;IAC/E,gDAAgD;IAChD,IAAI,mBAAmB,IAAI,WAAW,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM;YACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,MAAM;YACZ,OAAO,EACL,2GAA2G;YAC7G,UAAU,EACR,sHAAsH;YACxH,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAED,2DAA2D;IAC3D,MAAM,eAAe,GAA0B;QAC7C,EAAE,EAAE,WAAW,CAAC,EAAY;QAC5B,eAAe;QACf,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,WAAW,CAAC,UAAgC;QACxD,gBAAgB,EACd,OAAO,WAAW,CAAC,kBAAkB,CAAC,KAAK,QAAQ;YACjD,CAAC,CAAE,WAAW,CAAC,kBAAkB,CAAY;YAC7C,CAAC,CAAC,SAAS;QACf,GAAG,SAAS;KACb,CAAC;IAEF,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,IAAY;IAEZ,MAAM,gBAAgB,GAAG,iCAAiC,CAAC,OAAO,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,4BAA4B,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAEpE,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,eAAe,KAAK,gBAAgB;QAAE,OAAO,MAAM,CAAC;IACxD,MAAM,SAAS,GAAG,4BAA4B,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACtE,4EAA4E;IAC5E,qEAAqE;IACrE,IAAI,CAAC,SAAS,CAAC,eAAe;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,eAAe;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO,mBAAmB,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,eAAe,CAAC;QAC3E,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAoC;IAC7D,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,IAAI,CAAC,IAAI,CACd,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,eAAe,CAC9D,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,SAAS,aAAa,CAAC,KAAc,EAAE,IAAY;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO;QACL,MAAM,EAAE,OAAO;QACf,YAAY,EAAE,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;KACvD,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,WAAoC,EACpC,IAAY,EACZ,MAAsB;IAEtB,MAAM,MAAM,GACV,EAAE,CAAC;IAEL,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,8CAA8C;YACvD,UAAU,EAAE,mJAAmJ;YAC/J,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC;IACnC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,sEAAsE;YACtE,sEAAsE;YACtE,WAAW;YACX,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAChE,MAAM,IAAI,GAAmB,EAAE,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACvC,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC1D,MAAM,CAAC,IAAI,CAAC;4BACV,IAAI;4BACJ,IAAI,EAAE,CAAC;4BACP,OAAO,EAAE,4BAA4B,GAAG,CAAC,MAAM,EAAE;4BACjD,UAAU,EAAE,sBAAsB;4BAClC,QAAQ,EAAE,OAAO;yBAClB,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI;wBACJ,IAAI,EAAE,CAAC;wBACP,OAAO,EAAE,mHAAmH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;wBACnJ,UAAU,EAAE,wFAAwF;wBACpG,QAAQ,EAAE,OAAO;qBAClB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC;IACnC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChD,IACE,OAAO,QAAQ,KAAK,QAAQ;YAC3B,iBAAuC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC3D,CAAC;YACD,MAAM,CAAC,KAAK,GAAG,QAA0B,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,gCAAgC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBACzG,UAAU,EAAE,+CAA+C;gBAC3D,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,IACE,MAAM,CAAC,MAAM,KAAK,SAAS;QAC3B,MAAM,CAAC,MAAM,KAAK,MAAM;QACxB,MAAM,CAAC,KAAK,KAAK,SAAS;QAC1B,QAAQ,KAAK,SAAS,EACtB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,IAAI,EAAE,CAAC;YACP,OAAO,EACL,yEAAyE;YAC3E,UAAU,EAAE,+CAA+C;YAC3D,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC;IACzC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,sDAAsD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;gBAC5F,UAAU,EAAE,+DAA+D;gBAC3E,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAmB,EAAE,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;gBAChC,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACvC,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI;wBACJ,IAAI,EAAE,CAAC;wBACP,OAAO,EAAE,mDAAmD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;wBACnF,UAAU,EAAE,uDAAuD;wBACnE,QAAQ,EAAE,OAAO;qBAClB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/parser/lens.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { ContentError } from "../index.js";
|
|
1
|
+
import type { ContentError, FillBlankBlank } from "../index.js";
|
|
2
2
|
import { LENS_SEGMENT_TYPES } from "./sections.js";
|
|
3
3
|
export { LENS_SEGMENT_TYPES };
|
|
4
|
-
import {
|
|
4
|
+
import type { Frame } from "../index.js";
|
|
5
|
+
import { type ResponseQuestionSubtype } from "./response-segments.js";
|
|
5
6
|
export { stripAuthoringMarkup, stripCriticMarkup, stripObsidianComments, } from "../authoring-markup.js";
|
|
6
7
|
export interface ParsedTextSegment {
|
|
7
8
|
type: "text";
|
|
@@ -30,16 +31,37 @@ export interface ParsedVideoSegment {
|
|
|
30
31
|
toTimeStr?: string;
|
|
31
32
|
optional?: boolean;
|
|
32
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse-stage question segment: `#### Question: <Subtype>`, or a bare
|
|
36
|
+
* `#### Question` (an alias of `#### Question: Open`). Every question carries
|
|
37
|
+
* a subtype and an authored id.
|
|
38
|
+
*/
|
|
33
39
|
export interface ParsedQuestionSegment {
|
|
34
40
|
type: "question";
|
|
41
|
+
questionType: ResponseQuestionSubtype;
|
|
42
|
+
responseId: string;
|
|
35
43
|
content: string;
|
|
44
|
+
graded: boolean;
|
|
36
45
|
assessmentInstructions?: string;
|
|
46
|
+
feedbackInstructions?: string;
|
|
47
|
+
optional?: boolean;
|
|
48
|
+
feedback?: boolean;
|
|
49
|
+
forceFeedback?: boolean;
|
|
37
50
|
maxTime?: string;
|
|
38
51
|
maxChars?: number;
|
|
39
52
|
enforceVoice?: boolean;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
53
|
+
placeholder?: string;
|
|
54
|
+
scale?: number;
|
|
55
|
+
lowLabel?: string;
|
|
56
|
+
highLabel?: string;
|
|
57
|
+
labels?: string[];
|
|
58
|
+
options?: string[];
|
|
59
|
+
correctOptions?: number[];
|
|
60
|
+
multi?: boolean;
|
|
61
|
+
shuffle?: boolean;
|
|
62
|
+
maxSelect?: number;
|
|
63
|
+
blanks?: FillBlankBlank[];
|
|
64
|
+
items?: string[];
|
|
43
65
|
}
|
|
44
66
|
export interface ParsedRoleplaySegment {
|
|
45
67
|
type: "roleplay";
|
|
@@ -78,7 +100,9 @@ export interface ParsedWidgetSegment {
|
|
|
78
100
|
height?: string;
|
|
79
101
|
required?: boolean;
|
|
80
102
|
}
|
|
81
|
-
export type ParsedLensSegment = ParsedTextSegment | ParsedChatSegment | ParsedArticleSegment | ParsedVideoSegment | ParsedQuestionSegment |
|
|
103
|
+
export type ParsedLensSegment = (ParsedTextSegment | ParsedChatSegment | ParsedArticleSegment | ParsedVideoSegment | ParsedQuestionSegment | ParsedRoleplaySegment | ParsedInterviewSegment | ParsedEmbedSegment | ParsedWidgetSegment) & {
|
|
104
|
+
frames?: Frame[];
|
|
105
|
+
};
|
|
82
106
|
export interface ParsedLens {
|
|
83
107
|
id: string;
|
|
84
108
|
title?: string;
|
|
@@ -170,6 +194,16 @@ export declare function stripQuotes(s: string): string;
|
|
|
170
194
|
* schema), field values, and likely field-name typos.
|
|
171
195
|
*/
|
|
172
196
|
export declare function validateRawSegment(raw: RawSegment, file: string): ContentError[];
|
|
197
|
+
/**
|
|
198
|
+
* Validate and convert a body's raw segments in order, carrying each one's
|
|
199
|
+
* frames onto the typed segment. Shared by lens files and inline lenses.
|
|
200
|
+
*/
|
|
201
|
+
export declare function convertRawSegments(rawSegments: (RawSegment & {
|
|
202
|
+
frames?: Frame[];
|
|
203
|
+
})[], file: string): {
|
|
204
|
+
segments: ParsedLensSegment[];
|
|
205
|
+
errors: ContentError[];
|
|
206
|
+
};
|
|
173
207
|
/**
|
|
174
208
|
* Apply source inheritance for article, video, and embed segments.
|
|
175
209
|
* Each segment inherits source:: from the previous segment of the same type.
|
package/dist/parser/lens.js
CHANGED
|
@@ -4,16 +4,16 @@ import { validateFieldValues } from "../validator/field-values.js";
|
|
|
4
4
|
import { detectFieldTypos } from "../validator/field-typos.js";
|
|
5
5
|
import { validateFrontmatter } from "../validator/validate-frontmatter.js";
|
|
6
6
|
import { validateLensDirectives } from "../validator/directives.js";
|
|
7
|
-
import {
|
|
7
|
+
import { validateNoArticleElementsInLensText } from "./article-elements.js";
|
|
8
8
|
import { validateSameLensLinks } from "../validator/same-lens-links.js";
|
|
9
9
|
import { parseWikilink, hasRelativePath, findBrokenPromptImports, } from "./wikilink.js";
|
|
10
|
-
import {
|
|
10
|
+
import { parseSegments, LENS_SEGMENT_TYPES } from "./sections.js";
|
|
11
11
|
export { LENS_SEGMENT_TYPES };
|
|
12
12
|
import { isValidUuid } from "../validator/uuid.js";
|
|
13
13
|
import { parseTimestamp } from "../bundler/video.js";
|
|
14
14
|
import { stripAuthoringMarkup, stripAuthoringMarkupForValidation, usePublishedStrings, } from "../authoring-markup.js";
|
|
15
15
|
import { attachSourceLine } from "../source-location.js";
|
|
16
|
-
import { parseResponseSegment, responseSegmentSchemaKey,
|
|
16
|
+
import { parseResponseSegment, responseSegmentSchemaKey, FORCE_FEEDBACK_WITHOUT_INSTRUCTIONS, } from "./response-segments.js";
|
|
17
17
|
export { stripAuthoringMarkup, stripCriticMarkup, stripObsidianComments, } from "../authoring-markup.js";
|
|
18
18
|
function segmentSourceLine(raw) {
|
|
19
19
|
const primaryField = raw.type === "chat"
|
|
@@ -258,7 +258,7 @@ export function convertSegment(raw, sectionType, file) {
|
|
|
258
258
|
}
|
|
259
259
|
const directiveWarnings = validateLensDirectives(content, file, raw.line);
|
|
260
260
|
errors.push(...directiveWarnings);
|
|
261
|
-
errors.push(...
|
|
261
|
+
errors.push(...validateNoArticleElementsInLensText(content, file, raw.line));
|
|
262
262
|
const segment = {
|
|
263
263
|
type: "text",
|
|
264
264
|
content,
|
|
@@ -444,58 +444,34 @@ export function convertSegment(raw, sectionType, file) {
|
|
|
444
444
|
return sourcedSegment(segment, raw, errors);
|
|
445
445
|
}
|
|
446
446
|
case "question": {
|
|
447
|
-
// `#### Question: <Subtype
|
|
448
|
-
// `#### Question`
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
type: "question",
|
|
474
|
-
content,
|
|
475
|
-
assessmentInstructions,
|
|
476
|
-
maxTime: raw.fields["max-time"] || undefined,
|
|
477
|
-
maxChars: raw.fields["max-chars"]
|
|
478
|
-
? parseInt(raw.fields["max-chars"], 10)
|
|
479
|
-
: undefined,
|
|
480
|
-
enforceVoice: raw.fields["enforce-voice"]?.toLowerCase() === "true"
|
|
481
|
-
? true
|
|
482
|
-
: undefined,
|
|
483
|
-
// Feedback is on by default; only an explicit feedback:: false
|
|
484
|
-
// disables it
|
|
485
|
-
feedback: raw.fields["feedback"]?.toLowerCase() === "false" ? false : true,
|
|
486
|
-
forceFeedback: parseBool(raw, "force-feedback"),
|
|
487
|
-
optional: raw.fields["optional"]?.toLowerCase() === "true" ? true : undefined,
|
|
488
|
-
};
|
|
489
|
-
if (segment.forceFeedback && !segment.feedback) {
|
|
490
|
-
errors.push({
|
|
491
|
-
file,
|
|
492
|
-
line: raw.line,
|
|
493
|
-
message: "force-feedback:: true with feedback:: false has no feedback to send",
|
|
494
|
-
suggestion: "Remove feedback:: false, or remove force-feedback::",
|
|
495
|
-
severity: "warning",
|
|
496
|
-
});
|
|
447
|
+
// `#### Question: <Subtype>`, or a bare `#### Question`: an alias of
|
|
448
|
+
// `#### Question: Open` that also accepts the `feedback::` bool
|
|
449
|
+
// (default true; only an explicit feedback:: false disables it) and
|
|
450
|
+
// an ignored `min-chat-messages::`.
|
|
451
|
+
const bare = !raw.title;
|
|
452
|
+
const result = parseResponseSegment(bare ? { ...raw, title: "Open" } : raw, "lens", file);
|
|
453
|
+
if (!result.segment)
|
|
454
|
+
return result;
|
|
455
|
+
if (bare) {
|
|
456
|
+
// The feedback:: chat is what force-feedback:: fires for a bare
|
|
457
|
+
// question, so the shared "no feedback-instructions" warning does
|
|
458
|
+
// not apply; the only contradiction is feedback:: false.
|
|
459
|
+
const feedback = raw.fields["feedback"]?.toLowerCase() !== "false";
|
|
460
|
+
result.segment.feedback = feedback;
|
|
461
|
+
if (result.segment.forceFeedback) {
|
|
462
|
+
result.errors = result.errors.filter((e) => e.message !== FORCE_FEEDBACK_WITHOUT_INSTRUCTIONS);
|
|
463
|
+
if (!feedback) {
|
|
464
|
+
result.errors.push({
|
|
465
|
+
file,
|
|
466
|
+
line: raw.line,
|
|
467
|
+
message: "force-feedback:: true with feedback:: false has no feedback to send",
|
|
468
|
+
suggestion: "Remove feedback:: false, or remove force-feedback::",
|
|
469
|
+
severity: "warning",
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
}
|
|
497
473
|
}
|
|
498
|
-
return sourcedSegment(segment, raw, errors);
|
|
474
|
+
return sourcedSegment(result.segment, raw, result.errors);
|
|
499
475
|
}
|
|
500
476
|
case "roleplay": {
|
|
501
477
|
const id = parseSessionId(raw, "Roleplay", file, errors);
|
|
@@ -716,6 +692,25 @@ export function validateRawSegment(raw, file) {
|
|
|
716
692
|
...detectFieldTypos(raw.fields, file, raw.line),
|
|
717
693
|
];
|
|
718
694
|
}
|
|
695
|
+
/**
|
|
696
|
+
* Validate and convert a body's raw segments in order, carrying each one's
|
|
697
|
+
* frames onto the typed segment. Shared by lens files and inline lenses.
|
|
698
|
+
*/
|
|
699
|
+
export function convertRawSegments(rawSegments, file) {
|
|
700
|
+
const errors = [];
|
|
701
|
+
const segments = [];
|
|
702
|
+
for (const raw of rawSegments) {
|
|
703
|
+
errors.push(...validateRawSegment(raw, file));
|
|
704
|
+
const { segment, errors: conversionErrors } = convertSegment(raw, "lens", file);
|
|
705
|
+
errors.push(...conversionErrors);
|
|
706
|
+
if (!segment)
|
|
707
|
+
continue;
|
|
708
|
+
if (raw.frames)
|
|
709
|
+
segment.frames = raw.frames;
|
|
710
|
+
segments.push(segment);
|
|
711
|
+
}
|
|
712
|
+
return { segments, errors };
|
|
713
|
+
}
|
|
719
714
|
function checkEmptySegment(raw, file) {
|
|
720
715
|
// A segment is empty if it has no fields at all
|
|
721
716
|
const fieldCount = Object.keys(raw.fields).length;
|
|
@@ -907,21 +902,13 @@ function parseLensPrepared(content, file, validationSource) {
|
|
|
907
902
|
const minChatMessages = parseMinChatMessages(frontmatter.min_chat_messages, file, 2, errors);
|
|
908
903
|
const { durationMinutes, readingMinutes, tutorMinutes } = parseLensTimeFields((field) => frontmatter[field], file, 2, errors);
|
|
909
904
|
errors.push(...validateLensSummaries(tldr, summaryForTutor, file, 2));
|
|
910
|
-
// Step 2: Parse segments from body (flat
|
|
911
|
-
const {
|
|
912
|
-
LENS_SEGMENT_TYPES, file,
|
|
913
|
-
bodyStartLine - 1);
|
|
905
|
+
// Step 2: Parse segments from body (flat; containers become frames)
|
|
906
|
+
const { segments: rawSegments, errors: segmentErrors } = parseSegments(body, 3, // parentLevel=3 for standalone lens files → matches H4+ (backward compat)
|
|
907
|
+
LENS_SEGMENT_TYPES, file, bodyStartLine - 1);
|
|
914
908
|
errors.push(...segmentErrors);
|
|
915
909
|
// Step 3: Convert raw segments to typed segments + validate
|
|
916
|
-
const parsedSegments =
|
|
917
|
-
|
|
918
|
-
errors.push(...validateRawSegment(rawSeg, file));
|
|
919
|
-
const { segment, errors: conversionErrors } = convertSegment(rawSeg, "lens", file);
|
|
920
|
-
errors.push(...conversionErrors);
|
|
921
|
-
if (segment) {
|
|
922
|
-
parsedSegments.push(segment);
|
|
923
|
-
}
|
|
924
|
-
}
|
|
910
|
+
const { segments: parsedSegments, errors: conversionErrors } = convertRawSegments(rawSegments, file);
|
|
911
|
+
errors.push(...conversionErrors);
|
|
925
912
|
// Step 4: Source inheritance for article, video, and embed segments
|
|
926
913
|
const inheritanceErrors = applySourceInheritance(parsedSegments, file);
|
|
927
914
|
errors.push(...inheritanceErrors);
|
|
@@ -968,10 +955,7 @@ function parseLensPrepared(content, file, validationSource) {
|
|
|
968
955
|
export function parseInterviewSegment(raw, file, errors) {
|
|
969
956
|
const id = parseSessionId(raw, "Interview", file, errors);
|
|
970
957
|
const required = [
|
|
971
|
-
[
|
|
972
|
-
"content",
|
|
973
|
-
"Add 'content:: What the learner is told before it starts'",
|
|
974
|
-
],
|
|
958
|
+
["content", "Add 'content:: What the learner is told before it starts'"],
|
|
975
959
|
[
|
|
976
960
|
"assessment-instructions",
|
|
977
961
|
"Add 'assessment-instructions:: A rubric with one section per question'",
|