lens-content-processor 0.3.0 → 0.5.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 +7 -2
- package/dist/bundler/article.js +19 -8
- package/dist/bundler/article.js.map +1 -1
- package/dist/bundler/video.d.ts +12 -6
- package/dist/bundler/video.js +57 -34
- package/dist/bundler/video.js.map +1 -1
- package/dist/cli.d.ts +11 -2
- package/dist/cli.js +36 -19
- package/dist/cli.js.map +1 -1
- package/dist/content-schema.js +64 -15
- package/dist/content-schema.js.map +1 -1
- package/dist/dedupe-errors.d.ts +14 -0
- package/dist/dedupe-errors.js +33 -0
- package/dist/dedupe-errors.js.map +1 -0
- package/dist/flattener/index.d.ts +22 -28
- package/dist/flattener/index.js +773 -613
- package/dist/flattener/index.js.map +1 -1
- package/dist/flattener/resolve-text-links.d.ts +25 -0
- package/dist/flattener/resolve-text-links.js +248 -0
- package/dist/flattener/resolve-text-links.js.map +1 -0
- package/dist/flattener/test-helpers.d.ts +23 -0
- package/dist/flattener/test-helpers.js +56 -0
- package/dist/flattener/test-helpers.js.map +1 -0
- package/dist/index.d.ts +66 -20
- package/dist/index.js +327 -152
- package/dist/index.js.map +1 -1
- package/dist/parser/article.d.ts +3 -2
- package/dist/parser/article.js +80 -12
- package/dist/parser/article.js.map +1 -1
- package/dist/parser/course.d.ts +1 -1
- package/dist/parser/course.js +88 -28
- package/dist/parser/course.js.map +1 -1
- package/dist/parser/frontmatter.d.ts +1 -1
- package/dist/parser/frontmatter.js +38 -12
- package/dist/parser/frontmatter.js.map +1 -1
- package/dist/parser/learning-outcome.d.ts +12 -2
- package/dist/parser/learning-outcome.js +177 -96
- package/dist/parser/learning-outcome.js.map +1 -1
- package/dist/parser/lens.d.ts +52 -28
- package/dist/parser/lens.js +283 -260
- package/dist/parser/lens.js.map +1 -1
- package/dist/parser/module.d.ts +7 -15
- package/dist/parser/module.js +139 -170
- package/dist/parser/module.js.map +1 -1
- package/dist/parser/sections.d.ts +14 -1
- package/dist/parser/sections.js +94 -81
- package/dist/parser/sections.js.map +1 -1
- package/dist/parser/video-transcript.d.ts +2 -1
- package/dist/parser/video-transcript.js +10 -6
- package/dist/parser/video-transcript.js.map +1 -1
- package/dist/reference-graph.d.ts +8 -0
- package/dist/reference-graph.js +105 -0
- package/dist/reference-graph.js.map +1 -0
- package/dist/validator/card-module-membership.d.ts +2 -0
- package/dist/validator/card-module-membership.js +80 -0
- package/dist/validator/card-module-membership.js.map +1 -0
- package/dist/validator/directives.d.ts +12 -0
- package/dist/validator/directives.js +428 -0
- package/dist/validator/directives.js.map +1 -0
- package/dist/validator/field-values.js +14 -0
- package/dist/validator/field-values.js.map +1 -1
- package/dist/validator/output-integrity.js +5 -5
- package/dist/validator/output-integrity.js.map +1 -1
- package/dist/validator/segment-fields.d.ts +1 -1
- package/dist/validator/segment-fields.js +2 -2
- package/dist/validator/segment-fields.js.map +1 -1
- package/dist/validator/test-segments.d.ts +12 -0
- package/dist/validator/test-segments.js +40 -0
- package/dist/validator/test-segments.js.map +1 -0
- package/dist/validator/url-reachability.d.ts +2 -1
- package/dist/validator/url-reachability.js +42 -20
- package/dist/validator/url-reachability.js.map +1 -1
- package/dist/validator/uuid.js +9 -6
- package/dist/validator/uuid.js.map +1 -1
- package/package.json +1 -1
- package/dist/validator/chat-precedence.d.ts +0 -9
- package/dist/validator/chat-precedence.js +0 -32
- package/dist/validator/chat-precedence.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export interface UrlToValidate {
|
|
|
3
3
|
file: string;
|
|
4
4
|
line: number;
|
|
5
5
|
label: string;
|
|
6
|
+
allowUnreachable?: boolean;
|
|
6
7
|
}
|
|
7
8
|
export interface ProcessResult {
|
|
8
9
|
modules: FlattenedModule[];
|
|
@@ -15,37 +16,60 @@ export interface FlattenedModule {
|
|
|
15
16
|
title: string;
|
|
16
17
|
contentId: string | null;
|
|
17
18
|
sections: Section[];
|
|
19
|
+
sourcePath?: string;
|
|
20
|
+
parentSlug?: string;
|
|
21
|
+
parentTitle?: string;
|
|
18
22
|
error?: string;
|
|
19
23
|
warnings?: string[];
|
|
24
|
+
addToAiContext?: string[] | null;
|
|
25
|
+
}
|
|
26
|
+
/** Light co-branding for a partnership/demo course (e.g. the Iliad demo). */
|
|
27
|
+
export interface CoursePartner {
|
|
28
|
+
/** Display name of the partner org, e.g. "Iliad". Used as alt/aria text. */
|
|
29
|
+
name: string;
|
|
30
|
+
/** Big lockup logo: bare filename served from /assets/partners/, or an absolute URL/path. */
|
|
31
|
+
logo: string;
|
|
32
|
+
/** Optional small/square mark for narrow (mobile) headers; falls back to logo. */
|
|
33
|
+
logoSmall?: string;
|
|
34
|
+
/** Optional click-through URL — the logo links here when set. */
|
|
35
|
+
url?: string;
|
|
20
36
|
}
|
|
21
37
|
export interface Course {
|
|
22
38
|
slug: string;
|
|
23
39
|
title: string;
|
|
40
|
+
slugAliases?: string[];
|
|
41
|
+
/** Present only when both partner-name and partner-logo are set in frontmatter. */
|
|
42
|
+
partner?: CoursePartner;
|
|
24
43
|
progression: ProgressionItem[];
|
|
25
44
|
error?: string;
|
|
26
45
|
}
|
|
27
46
|
export interface Section {
|
|
28
|
-
type:
|
|
47
|
+
type: "lens" | "test";
|
|
48
|
+
displayType?: "lens-article" | "lens-video" | "lens-mixed";
|
|
29
49
|
meta: SectionMeta;
|
|
30
50
|
segments: Segment[];
|
|
51
|
+
sourcePath?: string;
|
|
31
52
|
optional?: boolean;
|
|
53
|
+
hide?: boolean;
|
|
32
54
|
feedback?: boolean;
|
|
33
55
|
contentId: string | null;
|
|
34
56
|
learningOutcomeId: string | null;
|
|
35
57
|
learningOutcomeName: string | null;
|
|
36
|
-
|
|
58
|
+
wordCount?: number;
|
|
59
|
+
videoDurationSeconds?: number;
|
|
60
|
+
tldr?: string;
|
|
61
|
+
summaryForTutor?: string;
|
|
62
|
+
addToAiContext?: string[] | null;
|
|
63
|
+
addToAiContextLo?: string[] | null;
|
|
37
64
|
}
|
|
38
65
|
export interface SectionMeta {
|
|
39
66
|
title?: string;
|
|
40
|
-
author?: string;
|
|
41
|
-
sourceUrl?: string;
|
|
42
|
-
channel?: string;
|
|
43
67
|
}
|
|
44
68
|
export interface ProgressionItem {
|
|
45
|
-
type:
|
|
69
|
+
type: "module" | "meeting";
|
|
46
70
|
slug?: string;
|
|
47
71
|
path?: string;
|
|
48
|
-
|
|
72
|
+
name?: string;
|
|
49
73
|
optional?: boolean;
|
|
50
74
|
}
|
|
51
75
|
export interface ContentError {
|
|
@@ -53,37 +77,46 @@ export interface ContentError {
|
|
|
53
77
|
line?: number;
|
|
54
78
|
message: string;
|
|
55
79
|
suggestion?: string;
|
|
56
|
-
severity:
|
|
57
|
-
category?:
|
|
80
|
+
severity: "error" | "warning";
|
|
81
|
+
category?: "production" | "wip";
|
|
58
82
|
}
|
|
59
83
|
export interface TextSegment {
|
|
60
|
-
type:
|
|
84
|
+
type: "text";
|
|
61
85
|
content: string;
|
|
62
86
|
optional?: boolean;
|
|
63
87
|
}
|
|
64
88
|
export interface ChatSegment {
|
|
65
|
-
type:
|
|
89
|
+
type: "chat";
|
|
66
90
|
instructions?: string;
|
|
67
91
|
hidePreviousContentFromUser?: boolean;
|
|
68
92
|
hidePreviousContentFromTutor?: boolean;
|
|
69
93
|
optional?: boolean;
|
|
70
94
|
}
|
|
71
|
-
export interface
|
|
72
|
-
type:
|
|
95
|
+
export interface ArticleSegment {
|
|
96
|
+
type: "article";
|
|
73
97
|
content: string;
|
|
74
98
|
collapsed_before?: string;
|
|
75
99
|
collapsed_after?: string;
|
|
100
|
+
title?: string;
|
|
101
|
+
author?: string;
|
|
102
|
+
sourceUrl?: string;
|
|
103
|
+
published?: string;
|
|
104
|
+
sourcePath?: string;
|
|
76
105
|
optional?: boolean;
|
|
77
106
|
}
|
|
78
|
-
export interface
|
|
79
|
-
type:
|
|
107
|
+
export interface VideoSegment {
|
|
108
|
+
type: "video";
|
|
80
109
|
from: number;
|
|
81
110
|
to: number | null;
|
|
82
|
-
transcript:
|
|
111
|
+
transcript: TranscriptSentence[];
|
|
112
|
+
title?: string;
|
|
113
|
+
channel?: string;
|
|
114
|
+
videoId?: string;
|
|
115
|
+
isShort?: boolean;
|
|
83
116
|
optional?: boolean;
|
|
84
117
|
}
|
|
85
118
|
export interface QuestionSegment {
|
|
86
|
-
type:
|
|
119
|
+
type: "question";
|
|
87
120
|
content: string;
|
|
88
121
|
assessmentInstructions?: string;
|
|
89
122
|
maxTime?: string;
|
|
@@ -92,7 +125,20 @@ export interface QuestionSegment {
|
|
|
92
125
|
optional?: boolean;
|
|
93
126
|
feedback?: boolean;
|
|
94
127
|
}
|
|
95
|
-
export
|
|
96
|
-
|
|
97
|
-
|
|
128
|
+
export interface RoleplaySegment {
|
|
129
|
+
type: "roleplay";
|
|
130
|
+
id: string;
|
|
131
|
+
content: string;
|
|
132
|
+
aiInstructions: string;
|
|
133
|
+
openingMessage?: string;
|
|
134
|
+
assessmentInstructions?: string;
|
|
135
|
+
userCustomizable?: boolean;
|
|
136
|
+
optional?: boolean;
|
|
137
|
+
feedback?: boolean;
|
|
138
|
+
}
|
|
139
|
+
export type Segment = TextSegment | ChatSegment | ArticleSegment | VideoSegment | QuestionSegment | RoleplaySegment;
|
|
140
|
+
import { type TranscriptSentence } from "./bundler/video.js";
|
|
141
|
+
export type { TranscriptSentence } from "./bundler/video.js";
|
|
142
|
+
export type { ContentTier } from "./validator/tier.js";
|
|
143
|
+
export { checkTierViolation } from "./validator/tier.js";
|
|
98
144
|
export declare function processContent(files: Map<string, string>): ProcessResult;
|