@lssm/module.learning-journey 0.0.0-canary-20251217083314 → 0.0.0-canary-20251220002821
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/LICENSE +21 -0
- package/README.md +3 -0
- package/dist/contracts/models.d.ts +120 -119
- package/dist/contracts/models.d.ts.map +1 -0
- package/dist/contracts/models.js +87 -88
- package/dist/contracts/models.js.map +1 -0
- package/dist/contracts/onboarding.d.ts +169 -168
- package/dist/contracts/onboarding.d.ts.map +1 -0
- package/dist/contracts/onboarding.js +71 -72
- package/dist/contracts/onboarding.js.map +1 -0
- package/dist/contracts/operations.d.ts +72 -71
- package/dist/contracts/operations.d.ts.map +1 -0
- package/dist/contracts/operations.js +2 -1
- package/dist/contracts/operations.js.map +1 -0
- package/dist/contracts/shared.d.ts +2 -1
- package/dist/contracts/shared.d.ts.map +1 -0
- package/dist/contracts/shared.js +2 -1
- package/dist/contracts/shared.js.map +1 -0
- package/dist/docs/learning-journey.docblock.js +2 -1
- package/dist/docs/learning-journey.docblock.js.map +1 -0
- package/dist/engines/srs.d.ts +14 -13
- package/dist/engines/srs.d.ts.map +1 -0
- package/dist/engines/srs.js +30 -30
- package/dist/engines/srs.js.map +1 -0
- package/dist/engines/streak.d.ts +2 -1
- package/dist/engines/streak.d.ts.map +1 -0
- package/dist/engines/streak.js +2 -1
- package/dist/engines/streak.js.map +1 -0
- package/dist/engines/xp.d.ts +2 -1
- package/dist/engines/xp.d.ts.map +1 -0
- package/dist/engines/xp.js +2 -1
- package/dist/engines/xp.js.map +1 -0
- package/dist/entities/ai.d.ts +202 -201
- package/dist/entities/ai.d.ts.map +1 -0
- package/dist/entities/ai.js +114 -114
- package/dist/entities/ai.js.map +1 -0
- package/dist/entities/course.d.ts +152 -151
- package/dist/entities/course.d.ts.map +1 -0
- package/dist/entities/course.js +86 -86
- package/dist/entities/course.js.map +1 -0
- package/dist/entities/flashcard.d.ts +147 -146
- package/dist/entities/flashcard.d.ts.map +1 -0
- package/dist/entities/flashcard.js +85 -85
- package/dist/entities/flashcard.js.map +1 -0
- package/dist/entities/gamification.d.ts +200 -199
- package/dist/entities/gamification.d.ts.map +1 -0
- package/dist/entities/gamification.js +120 -120
- package/dist/entities/gamification.js.map +1 -0
- package/dist/entities/index.d.ts +607 -606
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +2 -1
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/learner.d.ts +194 -193
- package/dist/entities/learner.d.ts.map +1 -0
- package/dist/entities/learner.js +113 -113
- package/dist/entities/learner.js.map +1 -0
- package/dist/entities/onboarding.d.ts +167 -166
- package/dist/entities/onboarding.d.ts.map +1 -0
- package/dist/entities/onboarding.js +93 -93
- package/dist/entities/onboarding.js.map +1 -0
- package/dist/entities/quiz.d.ts +187 -186
- package/dist/entities/quiz.d.ts.map +1 -0
- package/dist/entities/quiz.js +109 -109
- package/dist/entities/quiz.js.map +1 -0
- package/dist/events.d.ts +215 -214
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +109 -110
- package/dist/events.js.map +1 -0
- package/dist/learning-journey.feature.d.ts +2 -1
- package/dist/learning-journey.feature.d.ts.map +1 -0
- package/dist/learning-journey.feature.js +2 -1
- package/dist/learning-journey.feature.js.map +1 -0
- package/dist/libs/contracts/dist/capabilities/openbanking.js +2 -1
- package/dist/libs/contracts/dist/capabilities/openbanking.js.map +1 -0
- package/dist/libs/contracts/dist/contract-registry/schemas.js +2 -1
- package/dist/libs/contracts/dist/contract-registry/schemas.js.map +1 -0
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/index.js +2 -6
- package/dist/libs/contracts/dist/docs/meta.docs.js +30 -0
- package/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -0
- package/dist/libs/contracts/dist/docs/presentations.js +2 -1
- package/dist/libs/contracts/dist/docs/presentations.js.map +1 -0
- package/dist/libs/contracts/dist/docs/registry.js +2 -1
- package/dist/libs/contracts/dist/docs/registry.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js +97 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
- package/dist/libs/contracts/dist/events.js +2 -1
- package/dist/libs/contracts/dist/events.js.map +1 -0
- package/dist/libs/contracts/dist/index.js +2 -1
- package/dist/libs/contracts/dist/integrations/contracts.js +65 -66
- package/dist/libs/contracts/dist/integrations/contracts.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +31 -32
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +18 -19
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +32 -33
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/models.js +60 -61
- package/dist/libs/contracts/dist/integrations/openbanking/models.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +2 -1
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/gmail.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/gmail.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/mistral.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/mistral.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/postmark.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/postmark.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/powens.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/powens.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/stripe.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/stripe.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/contracts.js +44 -45
- package/dist/libs/contracts/dist/knowledge/contracts.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
- package/dist/libs/contracts/dist/llm/exporters.js +2 -1
- package/dist/libs/contracts/dist/llm/exporters.js.map +1 -0
- package/dist/libs/contracts/dist/onboarding-base.js +22 -23
- package/dist/libs/contracts/dist/onboarding-base.js.map +1 -0
- package/dist/libs/contracts/dist/ownership.js +4 -2
- package/dist/libs/contracts/dist/ownership.js.map +1 -0
- package/dist/libs/contracts/dist/presentations.v2.js +2 -1
- package/dist/libs/contracts/dist/presentations.v2.js.map +1 -0
- package/dist/libs/contracts/dist/regenerator/service.js +2 -1
- package/dist/libs/contracts/dist/regenerator/service.js.map +1 -0
- package/dist/libs/contracts/dist/schema/dist/index.js +3873 -6
- package/dist/libs/contracts/dist/schema/dist/index.js.map +1 -0
- package/dist/libs/contracts/dist/spec.js +2 -1
- package/dist/libs/contracts/dist/spec.js.map +1 -0
- package/dist/libs/schema/dist/index.js +4889 -6
- package/dist/libs/schema/dist/index.js.map +1 -0
- package/dist/track-spec.d.ts +2 -1
- package/dist/track-spec.d.ts.map +1 -0
- package/package.json +13 -6
- package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
- package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
- package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
- package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -34
- package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
- package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
- package/dist/libs/schema/dist/EnumType.js +0 -2
- package/dist/libs/schema/dist/FieldType.js +0 -49
- package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/libs/schema/dist/SchemaModel.js +0 -39
- package/dist/libs/schema/dist/entity/defineEntity.js +0 -236
- package/dist/libs/schema/dist/entity/index.js +0 -2
- package/dist/libs/schema/dist/entity/types.js +0 -1
package/dist/entities/course.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "../libs/schema/dist/index.js";
|
|
1
|
+
import { L5, Z5, _5, b5 } from "../libs/schema/dist/index.js";
|
|
3
2
|
|
|
4
3
|
//#region src/entities/course.ts
|
|
5
4
|
/**
|
|
6
5
|
* Course difficulty enum.
|
|
7
6
|
*/
|
|
8
|
-
const CourseDifficultyEnum =
|
|
7
|
+
const CourseDifficultyEnum = Z5({
|
|
9
8
|
name: "CourseDifficulty",
|
|
10
9
|
values: [
|
|
11
10
|
"BEGINNER",
|
|
@@ -19,7 +18,7 @@ const CourseDifficultyEnum = defineEntityEnum({
|
|
|
19
18
|
/**
|
|
20
19
|
* Course status enum.
|
|
21
20
|
*/
|
|
22
|
-
const CourseStatusEnum =
|
|
21
|
+
const CourseStatusEnum = Z5({
|
|
23
22
|
name: "CourseStatus",
|
|
24
23
|
values: [
|
|
25
24
|
"DRAFT",
|
|
@@ -32,7 +31,7 @@ const CourseStatusEnum = defineEntityEnum({
|
|
|
32
31
|
/**
|
|
33
32
|
* Lesson type enum.
|
|
34
33
|
*/
|
|
35
|
-
const LessonTypeEnum =
|
|
34
|
+
const LessonTypeEnum = Z5({
|
|
36
35
|
name: "LessonType",
|
|
37
36
|
values: [
|
|
38
37
|
"CONTENT",
|
|
@@ -48,7 +47,7 @@ const LessonTypeEnum = defineEntityEnum({
|
|
|
48
47
|
/**
|
|
49
48
|
* Content type enum.
|
|
50
49
|
*/
|
|
51
|
-
const ContentTypeEnum =
|
|
50
|
+
const ContentTypeEnum = Z5({
|
|
52
51
|
name: "ContentType",
|
|
53
52
|
values: [
|
|
54
53
|
"MARKDOWN",
|
|
@@ -64,239 +63,239 @@ const ContentTypeEnum = defineEntityEnum({
|
|
|
64
63
|
/**
|
|
65
64
|
* Course entity - defines a learning course.
|
|
66
65
|
*/
|
|
67
|
-
const CourseEntity =
|
|
66
|
+
const CourseEntity = L5({
|
|
68
67
|
name: "Course",
|
|
69
68
|
description: "A structured learning course.",
|
|
70
69
|
schema: "lssm_learning",
|
|
71
70
|
map: "course",
|
|
72
71
|
fields: {
|
|
73
|
-
id:
|
|
74
|
-
title:
|
|
75
|
-
slug:
|
|
72
|
+
id: _5.id({ description: "Unique course identifier" }),
|
|
73
|
+
title: _5.string({ description: "Course title" }),
|
|
74
|
+
slug: _5.string({
|
|
76
75
|
isUnique: true,
|
|
77
76
|
description: "URL-friendly slug"
|
|
78
77
|
}),
|
|
79
|
-
description:
|
|
78
|
+
description: _5.string({
|
|
80
79
|
isOptional: true,
|
|
81
80
|
description: "Course description"
|
|
82
81
|
}),
|
|
83
|
-
summary:
|
|
82
|
+
summary: _5.string({
|
|
84
83
|
isOptional: true,
|
|
85
84
|
description: "Short summary"
|
|
86
85
|
}),
|
|
87
|
-
difficulty:
|
|
86
|
+
difficulty: _5.enum("CourseDifficulty", {
|
|
88
87
|
default: "BEGINNER",
|
|
89
88
|
description: "Difficulty level"
|
|
90
89
|
}),
|
|
91
|
-
category:
|
|
90
|
+
category: _5.string({
|
|
92
91
|
isOptional: true,
|
|
93
92
|
description: "Course category"
|
|
94
93
|
}),
|
|
95
|
-
tags:
|
|
94
|
+
tags: _5.json({
|
|
96
95
|
isOptional: true,
|
|
97
96
|
description: "Tags for discovery"
|
|
98
97
|
}),
|
|
99
|
-
prerequisites:
|
|
98
|
+
prerequisites: _5.json({
|
|
100
99
|
isOptional: true,
|
|
101
100
|
description: "Required course IDs"
|
|
102
101
|
}),
|
|
103
|
-
requiredSkills:
|
|
102
|
+
requiredSkills: _5.json({
|
|
104
103
|
isOptional: true,
|
|
105
104
|
description: "Required skill levels"
|
|
106
105
|
}),
|
|
107
|
-
estimatedDuration:
|
|
106
|
+
estimatedDuration: _5.int({
|
|
108
107
|
isOptional: true,
|
|
109
108
|
description: "Estimated duration in minutes"
|
|
110
109
|
}),
|
|
111
|
-
thumbnailUrl:
|
|
110
|
+
thumbnailUrl: _5.string({
|
|
112
111
|
isOptional: true,
|
|
113
112
|
description: "Thumbnail image URL"
|
|
114
113
|
}),
|
|
115
|
-
coverImageUrl:
|
|
114
|
+
coverImageUrl: _5.string({
|
|
116
115
|
isOptional: true,
|
|
117
116
|
description: "Cover image URL"
|
|
118
117
|
}),
|
|
119
|
-
promoVideoUrl:
|
|
118
|
+
promoVideoUrl: _5.string({
|
|
120
119
|
isOptional: true,
|
|
121
120
|
description: "Promo video URL"
|
|
122
121
|
}),
|
|
123
|
-
status:
|
|
122
|
+
status: _5.enum("CourseStatus", {
|
|
124
123
|
default: "DRAFT",
|
|
125
124
|
description: "Publication status"
|
|
126
125
|
}),
|
|
127
|
-
publishedAt:
|
|
126
|
+
publishedAt: _5.dateTime({
|
|
128
127
|
isOptional: true,
|
|
129
128
|
description: "When published"
|
|
130
129
|
}),
|
|
131
|
-
authorId:
|
|
132
|
-
orgId:
|
|
130
|
+
authorId: _5.string({ description: "Author user ID" }),
|
|
131
|
+
orgId: _5.string({
|
|
133
132
|
isOptional: true,
|
|
134
133
|
description: "Organization scope"
|
|
135
134
|
}),
|
|
136
|
-
isPublic:
|
|
135
|
+
isPublic: _5.boolean({
|
|
137
136
|
default: false,
|
|
138
137
|
description: "Whether course is publicly accessible"
|
|
139
138
|
}),
|
|
140
|
-
isFeatured:
|
|
139
|
+
isFeatured: _5.boolean({
|
|
141
140
|
default: false,
|
|
142
141
|
description: "Whether course is featured"
|
|
143
142
|
}),
|
|
144
|
-
certificateEnabled:
|
|
143
|
+
certificateEnabled: _5.boolean({
|
|
145
144
|
default: false,
|
|
146
145
|
description: "Award certificate on completion"
|
|
147
146
|
}),
|
|
148
|
-
metadata:
|
|
147
|
+
metadata: _5.json({
|
|
149
148
|
isOptional: true,
|
|
150
149
|
description: "Additional metadata"
|
|
151
150
|
}),
|
|
152
|
-
createdAt:
|
|
153
|
-
updatedAt:
|
|
154
|
-
modules:
|
|
155
|
-
enrollments:
|
|
151
|
+
createdAt: _5.createdAt(),
|
|
152
|
+
updatedAt: _5.updatedAt(),
|
|
153
|
+
modules: _5.hasMany("CourseModule"),
|
|
154
|
+
enrollments: _5.hasMany("Enrollment")
|
|
156
155
|
},
|
|
157
156
|
indexes: [
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
157
|
+
b5.on(["orgId", "status"]),
|
|
158
|
+
b5.on(["category"]),
|
|
159
|
+
b5.on(["difficulty"]),
|
|
160
|
+
b5.on(["authorId"])
|
|
162
161
|
],
|
|
163
162
|
enums: [CourseDifficultyEnum, CourseStatusEnum]
|
|
164
163
|
});
|
|
165
164
|
/**
|
|
166
165
|
* CourseModule entity - a section within a course.
|
|
167
166
|
*/
|
|
168
|
-
const CourseModuleEntity =
|
|
167
|
+
const CourseModuleEntity = L5({
|
|
169
168
|
name: "CourseModule",
|
|
170
169
|
description: "A module (section) within a course.",
|
|
171
170
|
schema: "lssm_learning",
|
|
172
171
|
map: "course_module",
|
|
173
172
|
fields: {
|
|
174
|
-
id:
|
|
175
|
-
courseId:
|
|
176
|
-
title:
|
|
177
|
-
description:
|
|
173
|
+
id: _5.id({ description: "Unique module identifier" }),
|
|
174
|
+
courseId: _5.foreignKey({ description: "Parent course" }),
|
|
175
|
+
title: _5.string({ description: "Module title" }),
|
|
176
|
+
description: _5.string({
|
|
178
177
|
isOptional: true,
|
|
179
178
|
description: "Module description"
|
|
180
179
|
}),
|
|
181
|
-
order:
|
|
180
|
+
order: _5.int({
|
|
182
181
|
default: 0,
|
|
183
182
|
description: "Display order"
|
|
184
183
|
}),
|
|
185
|
-
unlockCondition:
|
|
184
|
+
unlockCondition: _5.json({
|
|
186
185
|
isOptional: true,
|
|
187
186
|
description: "Conditions to unlock module"
|
|
188
187
|
}),
|
|
189
|
-
prerequisiteModuleIds:
|
|
188
|
+
prerequisiteModuleIds: _5.json({
|
|
190
189
|
isOptional: true,
|
|
191
190
|
description: "Required modules to complete first"
|
|
192
191
|
}),
|
|
193
|
-
estimatedDuration:
|
|
192
|
+
estimatedDuration: _5.int({
|
|
194
193
|
isOptional: true,
|
|
195
194
|
description: "Estimated duration in minutes"
|
|
196
195
|
}),
|
|
197
|
-
createdAt:
|
|
198
|
-
updatedAt:
|
|
199
|
-
course:
|
|
200
|
-
lessons:
|
|
201
|
-
completions:
|
|
196
|
+
createdAt: _5.createdAt(),
|
|
197
|
+
updatedAt: _5.updatedAt(),
|
|
198
|
+
course: _5.belongsTo("Course", ["courseId"], ["id"], { onDelete: "Cascade" }),
|
|
199
|
+
lessons: _5.hasMany("Lesson"),
|
|
200
|
+
completions: _5.hasMany("ModuleCompletion")
|
|
202
201
|
},
|
|
203
|
-
indexes: [
|
|
202
|
+
indexes: [b5.on(["courseId", "order"])]
|
|
204
203
|
});
|
|
205
204
|
/**
|
|
206
205
|
* Lesson entity - individual learning unit.
|
|
207
206
|
*/
|
|
208
|
-
const LessonEntity =
|
|
207
|
+
const LessonEntity = L5({
|
|
209
208
|
name: "Lesson",
|
|
210
209
|
description: "An individual lesson within a module.",
|
|
211
210
|
schema: "lssm_learning",
|
|
212
211
|
map: "lesson",
|
|
213
212
|
fields: {
|
|
214
|
-
id:
|
|
215
|
-
moduleId:
|
|
216
|
-
title:
|
|
217
|
-
description:
|
|
213
|
+
id: _5.id({ description: "Unique lesson identifier" }),
|
|
214
|
+
moduleId: _5.foreignKey({ description: "Parent module" }),
|
|
215
|
+
title: _5.string({ description: "Lesson title" }),
|
|
216
|
+
description: _5.string({
|
|
218
217
|
isOptional: true,
|
|
219
218
|
description: "Lesson description"
|
|
220
219
|
}),
|
|
221
|
-
type:
|
|
220
|
+
type: _5.enum("LessonType", {
|
|
222
221
|
default: "CONTENT",
|
|
223
222
|
description: "Lesson type"
|
|
224
223
|
}),
|
|
225
|
-
order:
|
|
224
|
+
order: _5.int({
|
|
226
225
|
default: 0,
|
|
227
226
|
description: "Display order"
|
|
228
227
|
}),
|
|
229
|
-
estimatedDuration:
|
|
228
|
+
estimatedDuration: _5.int({
|
|
230
229
|
isOptional: true,
|
|
231
230
|
description: "Estimated duration in minutes"
|
|
232
231
|
}),
|
|
233
|
-
xpReward:
|
|
232
|
+
xpReward: _5.int({
|
|
234
233
|
default: 10,
|
|
235
234
|
description: "XP awarded on completion"
|
|
236
235
|
}),
|
|
237
|
-
isFree:
|
|
236
|
+
isFree: _5.boolean({
|
|
238
237
|
default: false,
|
|
239
238
|
description: "Whether lesson is free preview"
|
|
240
239
|
}),
|
|
241
|
-
isRequired:
|
|
240
|
+
isRequired: _5.boolean({
|
|
242
241
|
default: true,
|
|
243
242
|
description: "Whether lesson is required for completion"
|
|
244
243
|
}),
|
|
245
|
-
metadata:
|
|
244
|
+
metadata: _5.json({
|
|
246
245
|
isOptional: true,
|
|
247
246
|
description: "Additional metadata"
|
|
248
247
|
}),
|
|
249
|
-
createdAt:
|
|
250
|
-
updatedAt:
|
|
251
|
-
module:
|
|
252
|
-
contents:
|
|
253
|
-
progress:
|
|
254
|
-
quizzes:
|
|
248
|
+
createdAt: _5.createdAt(),
|
|
249
|
+
updatedAt: _5.updatedAt(),
|
|
250
|
+
module: _5.belongsTo("CourseModule", ["moduleId"], ["id"], { onDelete: "Cascade" }),
|
|
251
|
+
contents: _5.hasMany("LessonContent"),
|
|
252
|
+
progress: _5.hasMany("LessonProgress"),
|
|
253
|
+
quizzes: _5.hasMany("Quiz")
|
|
255
254
|
},
|
|
256
|
-
indexes: [
|
|
255
|
+
indexes: [b5.on(["moduleId", "order"]), b5.on(["type"])],
|
|
257
256
|
enums: [LessonTypeEnum]
|
|
258
257
|
});
|
|
259
258
|
/**
|
|
260
259
|
* LessonContent entity - content blocks within a lesson.
|
|
261
260
|
*/
|
|
262
|
-
const LessonContentEntity =
|
|
261
|
+
const LessonContentEntity = L5({
|
|
263
262
|
name: "LessonContent",
|
|
264
263
|
description: "Content block within a lesson.",
|
|
265
264
|
schema: "lssm_learning",
|
|
266
265
|
map: "lesson_content",
|
|
267
266
|
fields: {
|
|
268
|
-
id:
|
|
269
|
-
lessonId:
|
|
270
|
-
contentType:
|
|
271
|
-
content:
|
|
267
|
+
id: _5.id({ description: "Unique content identifier" }),
|
|
268
|
+
lessonId: _5.foreignKey({ description: "Parent lesson" }),
|
|
269
|
+
contentType: _5.enum("ContentType", { description: "Content format" }),
|
|
270
|
+
content: _5.string({
|
|
272
271
|
isOptional: true,
|
|
273
272
|
description: "Text content (markdown, etc.)"
|
|
274
273
|
}),
|
|
275
|
-
mediaUrl:
|
|
274
|
+
mediaUrl: _5.string({
|
|
276
275
|
isOptional: true,
|
|
277
276
|
description: "Media URL for video/audio"
|
|
278
277
|
}),
|
|
279
|
-
embedData:
|
|
278
|
+
embedData: _5.json({
|
|
280
279
|
isOptional: true,
|
|
281
280
|
description: "Embed data for external content"
|
|
282
281
|
}),
|
|
283
|
-
order:
|
|
282
|
+
order: _5.int({
|
|
284
283
|
default: 0,
|
|
285
284
|
description: "Display order"
|
|
286
285
|
}),
|
|
287
|
-
duration:
|
|
286
|
+
duration: _5.int({
|
|
288
287
|
isOptional: true,
|
|
289
288
|
description: "Content duration in seconds"
|
|
290
289
|
}),
|
|
291
|
-
metadata:
|
|
290
|
+
metadata: _5.json({
|
|
292
291
|
isOptional: true,
|
|
293
292
|
description: "Additional metadata"
|
|
294
293
|
}),
|
|
295
|
-
createdAt:
|
|
296
|
-
updatedAt:
|
|
297
|
-
lesson:
|
|
294
|
+
createdAt: _5.createdAt(),
|
|
295
|
+
updatedAt: _5.updatedAt(),
|
|
296
|
+
lesson: _5.belongsTo("Lesson", ["lessonId"], ["id"], { onDelete: "Cascade" })
|
|
298
297
|
},
|
|
299
|
-
indexes: [
|
|
298
|
+
indexes: [b5.on(["lessonId", "order"])],
|
|
300
299
|
enums: [ContentTypeEnum]
|
|
301
300
|
});
|
|
302
301
|
const courseEntities = [
|
|
@@ -313,4 +312,5 @@ const courseEnums = [
|
|
|
313
312
|
];
|
|
314
313
|
|
|
315
314
|
//#endregion
|
|
316
|
-
export { ContentTypeEnum, CourseDifficultyEnum, CourseEntity, CourseModuleEntity, CourseStatusEnum, LessonContentEntity, LessonEntity, LessonTypeEnum, courseEntities, courseEnums };
|
|
315
|
+
export { ContentTypeEnum, CourseDifficultyEnum, CourseEntity, CourseModuleEntity, CourseStatusEnum, LessonContentEntity, LessonEntity, LessonTypeEnum, courseEntities, courseEnums };
|
|
316
|
+
//# sourceMappingURL=course.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"course.js","names":["defineEntityEnum","defineEntity","field","index"],"sources":["../../src/entities/course.ts"],"sourcesContent":["import { defineEntity, defineEntityEnum, field, index } from '@lssm/lib.schema';\n\n/**\n * Course difficulty enum.\n */\nexport const CourseDifficultyEnum = defineEntityEnum({\n name: 'CourseDifficulty',\n values: ['BEGINNER', 'INTERMEDIATE', 'ADVANCED', 'EXPERT'] as const,\n schema: 'lssm_learning',\n description: 'Difficulty level of a course.',\n});\n\n/**\n * Course status enum.\n */\nexport const CourseStatusEnum = defineEntityEnum({\n name: 'CourseStatus',\n values: ['DRAFT', 'PUBLISHED', 'ARCHIVED'] as const,\n schema: 'lssm_learning',\n description: 'Publication status of a course.',\n});\n\n/**\n * Lesson type enum.\n */\nexport const LessonTypeEnum = defineEntityEnum({\n name: 'LessonType',\n values: [\n 'CONTENT',\n 'VIDEO',\n 'INTERACTIVE',\n 'QUIZ',\n 'PRACTICE',\n 'PROJECT',\n ] as const,\n schema: 'lssm_learning',\n description: 'Type of lesson content.',\n});\n\n/**\n * Content type enum.\n */\nexport const ContentTypeEnum = defineEntityEnum({\n name: 'ContentType',\n values: ['MARKDOWN', 'VIDEO', 'AUDIO', 'EMBED', 'SCORM', 'CUSTOM'] as const,\n schema: 'lssm_learning',\n description: 'Type of lesson content format.',\n});\n\n/**\n * Course entity - defines a learning course.\n */\nexport const CourseEntity = defineEntity({\n name: 'Course',\n description: 'A structured learning course.',\n schema: 'lssm_learning',\n map: 'course',\n fields: {\n id: field.id({ description: 'Unique course identifier' }),\n\n // Basic info\n title: field.string({ description: 'Course title' }),\n slug: field.string({ isUnique: true, description: 'URL-friendly slug' }),\n description: field.string({\n isOptional: true,\n description: 'Course description',\n }),\n summary: field.string({ isOptional: true, description: 'Short summary' }),\n\n // Classification\n difficulty: field.enum('CourseDifficulty', {\n default: 'BEGINNER',\n description: 'Difficulty level',\n }),\n category: field.string({\n isOptional: true,\n description: 'Course category',\n }),\n tags: field.json({ isOptional: true, description: 'Tags for discovery' }),\n\n // Prerequisites\n prerequisites: field.json({\n isOptional: true,\n description: 'Required course IDs',\n }),\n requiredSkills: field.json({\n isOptional: true,\n description: 'Required skill levels',\n }),\n\n // Duration\n estimatedDuration: field.int({\n isOptional: true,\n description: 'Estimated duration in minutes',\n }),\n\n // Media\n thumbnailUrl: field.string({\n isOptional: true,\n description: 'Thumbnail image URL',\n }),\n coverImageUrl: field.string({\n isOptional: true,\n description: 'Cover image URL',\n }),\n promoVideoUrl: field.string({\n isOptional: true,\n description: 'Promo video URL',\n }),\n\n // Publishing\n status: field.enum('CourseStatus', {\n default: 'DRAFT',\n description: 'Publication status',\n }),\n publishedAt: field.dateTime({\n isOptional: true,\n description: 'When published',\n }),\n\n // Author\n authorId: field.string({ description: 'Author user ID' }),\n\n // Organization scope\n orgId: field.string({\n isOptional: true,\n description: 'Organization scope',\n }),\n\n // Settings\n isPublic: field.boolean({\n default: false,\n description: 'Whether course is publicly accessible',\n }),\n isFeatured: field.boolean({\n default: false,\n description: 'Whether course is featured',\n }),\n certificateEnabled: field.boolean({\n default: false,\n description: 'Award certificate on completion',\n }),\n\n // Metadata\n metadata: field.json({\n isOptional: true,\n description: 'Additional metadata',\n }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n modules: field.hasMany('CourseModule'),\n enrollments: field.hasMany('Enrollment'),\n },\n indexes: [\n index.on(['orgId', 'status']),\n index.on(['category']),\n index.on(['difficulty']),\n index.on(['authorId']),\n ],\n enums: [CourseDifficultyEnum, CourseStatusEnum],\n});\n\n/**\n * CourseModule entity - a section within a course.\n */\nexport const CourseModuleEntity = defineEntity({\n name: 'CourseModule',\n description: 'A module (section) within a course.',\n schema: 'lssm_learning',\n map: 'course_module',\n fields: {\n id: field.id({ description: 'Unique module identifier' }),\n courseId: field.foreignKey({ description: 'Parent course' }),\n\n // Basic info\n title: field.string({ description: 'Module title' }),\n description: field.string({\n isOptional: true,\n description: 'Module description',\n }),\n\n // Ordering\n order: field.int({ default: 0, description: 'Display order' }),\n\n // Unlock conditions\n unlockCondition: field.json({\n isOptional: true,\n description: 'Conditions to unlock module',\n }),\n prerequisiteModuleIds: field.json({\n isOptional: true,\n description: 'Required modules to complete first',\n }),\n\n // Duration\n estimatedDuration: field.int({\n isOptional: true,\n description: 'Estimated duration in minutes',\n }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n course: field.belongsTo('Course', ['courseId'], ['id'], {\n onDelete: 'Cascade',\n }),\n lessons: field.hasMany('Lesson'),\n completions: field.hasMany('ModuleCompletion'),\n },\n indexes: [index.on(['courseId', 'order'])],\n});\n\n/**\n * Lesson entity - individual learning unit.\n */\nexport const LessonEntity = defineEntity({\n name: 'Lesson',\n description: 'An individual lesson within a module.',\n schema: 'lssm_learning',\n map: 'lesson',\n fields: {\n id: field.id({ description: 'Unique lesson identifier' }),\n moduleId: field.foreignKey({ description: 'Parent module' }),\n\n // Basic info\n title: field.string({ description: 'Lesson title' }),\n description: field.string({\n isOptional: true,\n description: 'Lesson description',\n }),\n\n // Type and content\n type: field.enum('LessonType', {\n default: 'CONTENT',\n description: 'Lesson type',\n }),\n\n // Ordering\n order: field.int({ default: 0, description: 'Display order' }),\n\n // Duration\n estimatedDuration: field.int({\n isOptional: true,\n description: 'Estimated duration in minutes',\n }),\n\n // XP reward\n xpReward: field.int({\n default: 10,\n description: 'XP awarded on completion',\n }),\n\n // Settings\n isFree: field.boolean({\n default: false,\n description: 'Whether lesson is free preview',\n }),\n isRequired: field.boolean({\n default: true,\n description: 'Whether lesson is required for completion',\n }),\n\n // Metadata\n metadata: field.json({\n isOptional: true,\n description: 'Additional metadata',\n }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n module: field.belongsTo('CourseModule', ['moduleId'], ['id'], {\n onDelete: 'Cascade',\n }),\n contents: field.hasMany('LessonContent'),\n progress: field.hasMany('LessonProgress'),\n quizzes: field.hasMany('Quiz'),\n },\n indexes: [index.on(['moduleId', 'order']), index.on(['type'])],\n enums: [LessonTypeEnum],\n});\n\n/**\n * LessonContent entity - content blocks within a lesson.\n */\nexport const LessonContentEntity = defineEntity({\n name: 'LessonContent',\n description: 'Content block within a lesson.',\n schema: 'lssm_learning',\n map: 'lesson_content',\n fields: {\n id: field.id({ description: 'Unique content identifier' }),\n lessonId: field.foreignKey({ description: 'Parent lesson' }),\n\n // Content type and data\n contentType: field.enum('ContentType', { description: 'Content format' }),\n content: field.string({\n isOptional: true,\n description: 'Text content (markdown, etc.)',\n }),\n mediaUrl: field.string({\n isOptional: true,\n description: 'Media URL for video/audio',\n }),\n embedData: field.json({\n isOptional: true,\n description: 'Embed data for external content',\n }),\n\n // Ordering\n order: field.int({ default: 0, description: 'Display order' }),\n\n // Duration\n duration: field.int({\n isOptional: true,\n description: 'Content duration in seconds',\n }),\n\n // Metadata\n metadata: field.json({\n isOptional: true,\n description: 'Additional metadata',\n }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n lesson: field.belongsTo('Lesson', ['lessonId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [index.on(['lessonId', 'order'])],\n enums: [ContentTypeEnum],\n});\n\nexport const courseEntities = [\n CourseEntity,\n CourseModuleEntity,\n LessonEntity,\n LessonContentEntity,\n];\n\nexport const courseEnums = [\n CourseDifficultyEnum,\n CourseStatusEnum,\n LessonTypeEnum,\n ContentTypeEnum,\n];\n"],"mappings":"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"}
|