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