@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/learner.ts
5
4
  /**
6
5
  * Enrollment status enum.
7
6
  */
8
- const EnrollmentStatusEnum = defineEntityEnum({
7
+ const EnrollmentStatusEnum = Z5({
9
8
  name: "EnrollmentStatus",
10
9
  values: [
11
10
  "ENROLLED",
@@ -20,7 +19,7 @@ const EnrollmentStatusEnum = defineEntityEnum({
20
19
  /**
21
20
  * Progress status enum.
22
21
  */
23
- const ProgressStatusEnum = defineEntityEnum({
22
+ const ProgressStatusEnum = Z5({
24
23
  name: "ProgressStatus",
25
24
  values: [
26
25
  "NOT_STARTED",
@@ -34,322 +33,322 @@ const ProgressStatusEnum = defineEntityEnum({
34
33
  /**
35
34
  * Learner entity - learning profile.
36
35
  */
37
- const LearnerEntity = defineEntity({
36
+ const LearnerEntity = L5({
38
37
  name: "Learner",
39
38
  description: "A learner profile.",
40
39
  schema: "lssm_learning",
41
40
  map: "learner",
42
41
  fields: {
43
- id: field.id({ description: "Unique learner identifier" }),
44
- userId: field.string({
42
+ id: _5.id({ description: "Unique learner identifier" }),
43
+ userId: _5.string({
45
44
  isUnique: true,
46
45
  description: "Associated user ID"
47
46
  }),
48
- displayName: field.string({
47
+ displayName: _5.string({
49
48
  isOptional: true,
50
49
  description: "Display name"
51
50
  }),
52
- avatarUrl: field.string({
51
+ avatarUrl: _5.string({
53
52
  isOptional: true,
54
53
  description: "Avatar URL"
55
54
  }),
56
- bio: field.string({
55
+ bio: _5.string({
57
56
  isOptional: true,
58
57
  description: "Short bio"
59
58
  }),
60
- level: field.int({
59
+ level: _5.int({
61
60
  default: 1,
62
61
  description: "Current level"
63
62
  }),
64
- totalXp: field.int({
63
+ totalXp: _5.int({
65
64
  default: 0,
66
65
  description: "Total XP earned"
67
66
  }),
68
- currentStreak: field.int({
67
+ currentStreak: _5.int({
69
68
  default: 0,
70
69
  description: "Current streak days"
71
70
  }),
72
- longestStreak: field.int({
71
+ longestStreak: _5.int({
73
72
  default: 0,
74
73
  description: "Longest streak ever"
75
74
  }),
76
- lastActivityAt: field.dateTime({
75
+ lastActivityAt: _5.dateTime({
77
76
  isOptional: true,
78
77
  description: "Last learning activity"
79
78
  }),
80
- timezone: field.string({
79
+ timezone: _5.string({
81
80
  default: "\"UTC\"",
82
81
  description: "Learner timezone"
83
82
  }),
84
- dailyGoalXp: field.int({
83
+ dailyGoalXp: _5.int({
85
84
  default: 50,
86
85
  description: "Daily XP goal"
87
86
  }),
88
- reminderEnabled: field.boolean({
87
+ reminderEnabled: _5.boolean({
89
88
  default: true,
90
89
  description: "Enable reminders"
91
90
  }),
92
- reminderTime: field.string({
91
+ reminderTime: _5.string({
93
92
  isOptional: true,
94
93
  description: "Preferred reminder time"
95
94
  }),
96
- orgId: field.string({
95
+ orgId: _5.string({
97
96
  isOptional: true,
98
97
  description: "Organization scope"
99
98
  }),
100
- metadata: field.json({
99
+ metadata: _5.json({
101
100
  isOptional: true,
102
101
  description: "Additional metadata"
103
102
  }),
104
- createdAt: field.createdAt(),
105
- updatedAt: field.updatedAt(),
106
- enrollments: field.hasMany("Enrollment"),
107
- lessonProgress: field.hasMany("LessonProgress"),
108
- achievements: field.hasMany("LearnerAchievement"),
109
- decks: field.hasMany("Deck"),
110
- profile: field.hasOne("LearnerProfile")
103
+ createdAt: _5.createdAt(),
104
+ updatedAt: _5.updatedAt(),
105
+ enrollments: _5.hasMany("Enrollment"),
106
+ lessonProgress: _5.hasMany("LessonProgress"),
107
+ achievements: _5.hasMany("LearnerAchievement"),
108
+ decks: _5.hasMany("Deck"),
109
+ profile: _5.hasOne("LearnerProfile")
111
110
  },
112
111
  indexes: [
113
- index.on(["orgId"]),
114
- index.on(["totalXp"]),
115
- index.on(["level"]),
116
- index.on(["currentStreak"])
112
+ b5.on(["orgId"]),
113
+ b5.on(["totalXp"]),
114
+ b5.on(["level"]),
115
+ b5.on(["currentStreak"])
117
116
  ]
118
117
  });
119
118
  /**
120
119
  * Enrollment entity - course enrollment.
121
120
  */
122
- const EnrollmentEntity = defineEntity({
121
+ const EnrollmentEntity = L5({
123
122
  name: "Enrollment",
124
123
  description: "A learner enrollment in a course.",
125
124
  schema: "lssm_learning",
126
125
  map: "enrollment",
127
126
  fields: {
128
- id: field.id({ description: "Unique enrollment identifier" }),
129
- learnerId: field.foreignKey({ description: "Enrolled learner" }),
130
- courseId: field.foreignKey({ description: "Enrolled course" }),
131
- status: field.enum("EnrollmentStatus", {
127
+ id: _5.id({ description: "Unique enrollment identifier" }),
128
+ learnerId: _5.foreignKey({ description: "Enrolled learner" }),
129
+ courseId: _5.foreignKey({ description: "Enrolled course" }),
130
+ status: _5.enum("EnrollmentStatus", {
132
131
  default: "ENROLLED",
133
132
  description: "Enrollment status"
134
133
  }),
135
- progress: field.int({
134
+ progress: _5.int({
136
135
  default: 0,
137
136
  description: "Completion percentage (0-100)"
138
137
  }),
139
- completedLessons: field.int({
138
+ completedLessons: _5.int({
140
139
  default: 0,
141
140
  description: "Number of completed lessons"
142
141
  }),
143
- totalLessons: field.int({
142
+ totalLessons: _5.int({
144
143
  default: 0,
145
144
  description: "Total lessons in course"
146
145
  }),
147
- xpEarned: field.int({
146
+ xpEarned: _5.int({
148
147
  default: 0,
149
148
  description: "XP earned in this course"
150
149
  }),
151
- startedAt: field.dateTime({
150
+ startedAt: _5.dateTime({
152
151
  isOptional: true,
153
152
  description: "When learner started"
154
153
  }),
155
- completedAt: field.dateTime({
154
+ completedAt: _5.dateTime({
156
155
  isOptional: true,
157
156
  description: "When learner completed"
158
157
  }),
159
- lastAccessedAt: field.dateTime({
158
+ lastAccessedAt: _5.dateTime({
160
159
  isOptional: true,
161
160
  description: "Last access time"
162
161
  }),
163
- certificateId: field.string({
162
+ certificateId: _5.string({
164
163
  isOptional: true,
165
164
  description: "Issued certificate ID"
166
165
  }),
167
- metadata: field.json({
166
+ metadata: _5.json({
168
167
  isOptional: true,
169
168
  description: "Additional metadata"
170
169
  }),
171
- createdAt: field.createdAt(),
172
- updatedAt: field.updatedAt(),
173
- learner: field.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" }),
174
- course: field.belongsTo("Course", ["courseId"], ["id"], { onDelete: "Cascade" })
170
+ createdAt: _5.createdAt(),
171
+ updatedAt: _5.updatedAt(),
172
+ learner: _5.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" }),
173
+ course: _5.belongsTo("Course", ["courseId"], ["id"], { onDelete: "Cascade" })
175
174
  },
176
175
  indexes: [
177
- index.unique(["learnerId", "courseId"], { name: "enrollment_unique" }),
178
- index.on(["learnerId", "status"]),
179
- index.on(["courseId", "status"])
176
+ b5.unique(["learnerId", "courseId"], { name: "enrollment_unique" }),
177
+ b5.on(["learnerId", "status"]),
178
+ b5.on(["courseId", "status"])
180
179
  ],
181
180
  enums: [EnrollmentStatusEnum]
182
181
  });
183
182
  /**
184
183
  * LessonProgress entity - tracks individual lesson progress.
185
184
  */
186
- const LessonProgressEntity = defineEntity({
185
+ const LessonProgressEntity = L5({
187
186
  name: "LessonProgress",
188
187
  description: "Progress tracking for a lesson.",
189
188
  schema: "lssm_learning",
190
189
  map: "lesson_progress",
191
190
  fields: {
192
- id: field.id({ description: "Unique progress identifier" }),
193
- learnerId: field.foreignKey({ description: "Learner" }),
194
- lessonId: field.foreignKey({ description: "Lesson" }),
195
- status: field.enum("ProgressStatus", {
191
+ id: _5.id({ description: "Unique progress identifier" }),
192
+ learnerId: _5.foreignKey({ description: "Learner" }),
193
+ lessonId: _5.foreignKey({ description: "Lesson" }),
194
+ status: _5.enum("ProgressStatus", {
196
195
  default: "NOT_STARTED",
197
196
  description: "Progress status"
198
197
  }),
199
- progress: field.int({
198
+ progress: _5.int({
200
199
  default: 0,
201
200
  description: "Completion percentage (0-100)"
202
201
  }),
203
- score: field.int({
202
+ score: _5.int({
204
203
  isOptional: true,
205
204
  description: "Score achieved (for quizzes)"
206
205
  }),
207
- attempts: field.int({
206
+ attempts: _5.int({
208
207
  default: 0,
209
208
  description: "Number of attempts"
210
209
  }),
211
- bestScore: field.int({
210
+ bestScore: _5.int({
212
211
  isOptional: true,
213
212
  description: "Best score across attempts"
214
213
  }),
215
- timeSpent: field.int({
214
+ timeSpent: _5.int({
216
215
  default: 0,
217
216
  description: "Time spent in seconds"
218
217
  }),
219
- xpEarned: field.int({
218
+ xpEarned: _5.int({
220
219
  default: 0,
221
220
  description: "XP earned from this lesson"
222
221
  }),
223
- startedAt: field.dateTime({
222
+ startedAt: _5.dateTime({
224
223
  isOptional: true,
225
224
  description: "When started"
226
225
  }),
227
- completedAt: field.dateTime({
226
+ completedAt: _5.dateTime({
228
227
  isOptional: true,
229
228
  description: "When completed"
230
229
  }),
231
- lastAccessedAt: field.dateTime({
230
+ lastAccessedAt: _5.dateTime({
232
231
  isOptional: true,
233
232
  description: "Last access time"
234
233
  }),
235
- bookmarks: field.json({
234
+ bookmarks: _5.json({
236
235
  isOptional: true,
237
236
  description: "Content bookmarks"
238
237
  }),
239
- notes: field.string({
238
+ notes: _5.string({
240
239
  isOptional: true,
241
240
  description: "Learner notes"
242
241
  }),
243
- createdAt: field.createdAt(),
244
- updatedAt: field.updatedAt(),
245
- learner: field.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" }),
246
- lesson: field.belongsTo("Lesson", ["lessonId"], ["id"], { onDelete: "Cascade" })
242
+ createdAt: _5.createdAt(),
243
+ updatedAt: _5.updatedAt(),
244
+ learner: _5.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" }),
245
+ lesson: _5.belongsTo("Lesson", ["lessonId"], ["id"], { onDelete: "Cascade" })
247
246
  },
248
247
  indexes: [
249
- index.unique(["learnerId", "lessonId"], { name: "lesson_progress_unique" }),
250
- index.on(["learnerId", "status"]),
251
- index.on(["lessonId"])
248
+ b5.unique(["learnerId", "lessonId"], { name: "lesson_progress_unique" }),
249
+ b5.on(["learnerId", "status"]),
250
+ b5.on(["lessonId"])
252
251
  ],
253
252
  enums: [ProgressStatusEnum]
254
253
  });
255
254
  /**
256
255
  * ModuleCompletion entity - tracks module completion.
257
256
  */
258
- const ModuleCompletionEntity = defineEntity({
257
+ const ModuleCompletionEntity = L5({
259
258
  name: "ModuleCompletion",
260
259
  description: "Module completion record.",
261
260
  schema: "lssm_learning",
262
261
  map: "module_completion",
263
262
  fields: {
264
- id: field.id({ description: "Unique completion identifier" }),
265
- learnerId: field.foreignKey({ description: "Learner" }),
266
- moduleId: field.foreignKey({ description: "Module" }),
267
- score: field.int({
263
+ id: _5.id({ description: "Unique completion identifier" }),
264
+ learnerId: _5.foreignKey({ description: "Learner" }),
265
+ moduleId: _5.foreignKey({ description: "Module" }),
266
+ score: _5.int({
268
267
  isOptional: true,
269
268
  description: "Average score"
270
269
  }),
271
- xpEarned: field.int({
270
+ xpEarned: _5.int({
272
271
  default: 0,
273
272
  description: "XP earned"
274
273
  }),
275
- timeSpent: field.int({
274
+ timeSpent: _5.int({
276
275
  default: 0,
277
276
  description: "Time spent in seconds"
278
277
  }),
279
- completedAt: field.dateTime({ description: "When completed" }),
280
- createdAt: field.createdAt(),
281
- learner: field.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" }),
282
- module: field.belongsTo("CourseModule", ["moduleId"], ["id"], { onDelete: "Cascade" })
278
+ completedAt: _5.dateTime({ description: "When completed" }),
279
+ createdAt: _5.createdAt(),
280
+ learner: _5.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" }),
281
+ module: _5.belongsTo("CourseModule", ["moduleId"], ["id"], { onDelete: "Cascade" })
283
282
  },
284
- indexes: [index.unique(["learnerId", "moduleId"], { name: "module_completion_unique" }), index.on(["learnerId", "completedAt"])]
283
+ indexes: [b5.unique(["learnerId", "moduleId"], { name: "module_completion_unique" }), b5.on(["learnerId", "completedAt"])]
285
284
  });
286
285
  /**
287
286
  * Certificate entity - course completion certificate.
288
287
  */
289
- const CertificateEntity = defineEntity({
288
+ const CertificateEntity = L5({
290
289
  name: "Certificate",
291
290
  description: "Course completion certificate.",
292
291
  schema: "lssm_learning",
293
292
  map: "certificate",
294
293
  fields: {
295
- id: field.id({ description: "Unique certificate identifier" }),
296
- learnerId: field.foreignKey({ description: "Certificate holder" }),
297
- courseId: field.foreignKey({ description: "Completed course" }),
298
- enrollmentId: field.foreignKey({ description: "Associated enrollment" }),
299
- certificateNumber: field.string({
294
+ id: _5.id({ description: "Unique certificate identifier" }),
295
+ learnerId: _5.foreignKey({ description: "Certificate holder" }),
296
+ courseId: _5.foreignKey({ description: "Completed course" }),
297
+ enrollmentId: _5.foreignKey({ description: "Associated enrollment" }),
298
+ certificateNumber: _5.string({
300
299
  isUnique: true,
301
300
  description: "Unique certificate number"
302
301
  }),
303
- title: field.string({ description: "Certificate title" }),
304
- description: field.string({
302
+ title: _5.string({ description: "Certificate title" }),
303
+ description: _5.string({
305
304
  isOptional: true,
306
305
  description: "Certificate description"
307
306
  }),
308
- score: field.int({
307
+ score: _5.int({
309
308
  isOptional: true,
310
309
  description: "Final score"
311
310
  }),
312
- grade: field.string({
311
+ grade: _5.string({
313
312
  isOptional: true,
314
313
  description: "Grade awarded"
315
314
  }),
316
- issuedAt: field.dateTime({ description: "When issued" }),
317
- validUntil: field.dateTime({
315
+ issuedAt: _5.dateTime({ description: "When issued" }),
316
+ validUntil: _5.dateTime({
318
317
  isOptional: true,
319
318
  description: "Expiration date"
320
319
  }),
321
- verificationUrl: field.string({
320
+ verificationUrl: _5.string({
322
321
  isOptional: true,
323
322
  description: "Verification URL"
324
323
  }),
325
- credentialHash: field.string({
324
+ credentialHash: _5.string({
326
325
  isOptional: true,
327
326
  description: "Credential hash for verification"
328
327
  }),
329
- isRevoked: field.boolean({
328
+ isRevoked: _5.boolean({
330
329
  default: false,
331
330
  description: "Whether certificate is revoked"
332
331
  }),
333
- revokedAt: field.dateTime({
332
+ revokedAt: _5.dateTime({
334
333
  isOptional: true,
335
334
  description: "When revoked"
336
335
  }),
337
- revokedReason: field.string({
336
+ revokedReason: _5.string({
338
337
  isOptional: true,
339
338
  description: "Revocation reason"
340
339
  }),
341
- metadata: field.json({
340
+ metadata: _5.json({
342
341
  isOptional: true,
343
342
  description: "Additional metadata"
344
343
  }),
345
- createdAt: field.createdAt(),
346
- learner: field.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" }),
347
- course: field.belongsTo("Course", ["courseId"], ["id"], { onDelete: "Cascade" })
344
+ createdAt: _5.createdAt(),
345
+ learner: _5.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" }),
346
+ course: _5.belongsTo("Course", ["courseId"], ["id"], { onDelete: "Cascade" })
348
347
  },
349
348
  indexes: [
350
- index.on(["learnerId"]),
351
- index.on(["courseId"]),
352
- index.on(["issuedAt"])
349
+ b5.on(["learnerId"]),
350
+ b5.on(["courseId"]),
351
+ b5.on(["issuedAt"])
353
352
  ]
354
353
  });
355
354
  const learnerEntities = [
@@ -362,4 +361,5 @@ const learnerEntities = [
362
361
  const learnerEnums = [EnrollmentStatusEnum, ProgressStatusEnum];
363
362
 
364
363
  //#endregion
365
- export { CertificateEntity, EnrollmentEntity, EnrollmentStatusEnum, LearnerEntity, LessonProgressEntity, ModuleCompletionEntity, ProgressStatusEnum, learnerEntities, learnerEnums };
364
+ export { CertificateEntity, EnrollmentEntity, EnrollmentStatusEnum, LearnerEntity, LessonProgressEntity, ModuleCompletionEntity, ProgressStatusEnum, learnerEntities, learnerEnums };
365
+ //# sourceMappingURL=learner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learner.js","names":["defineEntityEnum","defineEntity","field","index"],"sources":["../../src/entities/learner.ts"],"sourcesContent":["import { defineEntity, defineEntityEnum, field, index } from '@lssm/lib.schema';\n\n/**\n * Enrollment status enum.\n */\nexport const EnrollmentStatusEnum = defineEntityEnum({\n name: 'EnrollmentStatus',\n values: [\n 'ENROLLED',\n 'IN_PROGRESS',\n 'COMPLETED',\n 'DROPPED',\n 'EXPIRED',\n ] as const,\n schema: 'lssm_learning',\n description: 'Status of a course enrollment.',\n});\n\n/**\n * Progress status enum.\n */\nexport const ProgressStatusEnum = defineEntityEnum({\n name: 'ProgressStatus',\n values: ['NOT_STARTED', 'IN_PROGRESS', 'COMPLETED', 'SKIPPED'] as const,\n schema: 'lssm_learning',\n description: 'Status of lesson progress.',\n});\n\n/**\n * Learner entity - learning profile.\n */\nexport const LearnerEntity = defineEntity({\n name: 'Learner',\n description: 'A learner profile.',\n schema: 'lssm_learning',\n map: 'learner',\n fields: {\n id: field.id({ description: 'Unique learner identifier' }),\n userId: field.string({ isUnique: true, description: 'Associated user ID' }),\n\n // Profile\n displayName: field.string({\n isOptional: true,\n description: 'Display name',\n }),\n avatarUrl: field.string({ isOptional: true, description: 'Avatar URL' }),\n bio: field.string({ isOptional: true, description: 'Short bio' }),\n\n // Gamification\n level: field.int({ default: 1, description: 'Current level' }),\n totalXp: field.int({ default: 0, description: 'Total XP earned' }),\n\n // Streaks\n currentStreak: field.int({\n default: 0,\n description: 'Current streak days',\n }),\n longestStreak: field.int({\n default: 0,\n description: 'Longest streak ever',\n }),\n lastActivityAt: field.dateTime({\n isOptional: true,\n description: 'Last learning activity',\n }),\n\n // Settings\n timezone: field.string({\n default: '\"UTC\"',\n description: 'Learner timezone',\n }),\n dailyGoalXp: field.int({ default: 50, description: 'Daily XP goal' }),\n reminderEnabled: field.boolean({\n default: true,\n description: 'Enable reminders',\n }),\n reminderTime: field.string({\n isOptional: true,\n description: 'Preferred reminder time',\n }),\n\n // Organization scope\n orgId: field.string({\n isOptional: true,\n description: 'Organization scope',\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 enrollments: field.hasMany('Enrollment'),\n lessonProgress: field.hasMany('LessonProgress'),\n achievements: field.hasMany('LearnerAchievement'),\n decks: field.hasMany('Deck'),\n profile: field.hasOne('LearnerProfile'),\n },\n indexes: [\n index.on(['orgId']),\n index.on(['totalXp']),\n index.on(['level']),\n index.on(['currentStreak']),\n ],\n});\n\n/**\n * Enrollment entity - course enrollment.\n */\nexport const EnrollmentEntity = defineEntity({\n name: 'Enrollment',\n description: 'A learner enrollment in a course.',\n schema: 'lssm_learning',\n map: 'enrollment',\n fields: {\n id: field.id({ description: 'Unique enrollment identifier' }),\n learnerId: field.foreignKey({ description: 'Enrolled learner' }),\n courseId: field.foreignKey({ description: 'Enrolled course' }),\n\n // Status\n status: field.enum('EnrollmentStatus', {\n default: 'ENROLLED',\n description: 'Enrollment status',\n }),\n\n // Progress\n progress: field.int({\n default: 0,\n description: 'Completion percentage (0-100)',\n }),\n completedLessons: field.int({\n default: 0,\n description: 'Number of completed lessons',\n }),\n totalLessons: field.int({\n default: 0,\n description: 'Total lessons in course',\n }),\n\n // XP\n xpEarned: field.int({\n default: 0,\n description: 'XP earned in this course',\n }),\n\n // Timeline\n startedAt: field.dateTime({\n isOptional: true,\n description: 'When learner started',\n }),\n completedAt: field.dateTime({\n isOptional: true,\n description: 'When learner completed',\n }),\n lastAccessedAt: field.dateTime({\n isOptional: true,\n description: 'Last access time',\n }),\n\n // Certificate\n certificateId: field.string({\n isOptional: true,\n description: 'Issued certificate ID',\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 learner: field.belongsTo('Learner', ['learnerId'], ['id'], {\n onDelete: 'Cascade',\n }),\n course: field.belongsTo('Course', ['courseId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [\n index.unique(['learnerId', 'courseId'], { name: 'enrollment_unique' }),\n index.on(['learnerId', 'status']),\n index.on(['courseId', 'status']),\n ],\n enums: [EnrollmentStatusEnum],\n});\n\n/**\n * LessonProgress entity - tracks individual lesson progress.\n */\nexport const LessonProgressEntity = defineEntity({\n name: 'LessonProgress',\n description: 'Progress tracking for a lesson.',\n schema: 'lssm_learning',\n map: 'lesson_progress',\n fields: {\n id: field.id({ description: 'Unique progress identifier' }),\n learnerId: field.foreignKey({ description: 'Learner' }),\n lessonId: field.foreignKey({ description: 'Lesson' }),\n\n // Status\n status: field.enum('ProgressStatus', {\n default: 'NOT_STARTED',\n description: 'Progress status',\n }),\n\n // Progress details\n progress: field.int({\n default: 0,\n description: 'Completion percentage (0-100)',\n }),\n score: field.int({\n isOptional: true,\n description: 'Score achieved (for quizzes)',\n }),\n\n // Attempts\n attempts: field.int({ default: 0, description: 'Number of attempts' }),\n bestScore: field.int({\n isOptional: true,\n description: 'Best score across attempts',\n }),\n\n // Time tracking\n timeSpent: field.int({ default: 0, description: 'Time spent in seconds' }),\n\n // XP\n xpEarned: field.int({\n default: 0,\n description: 'XP earned from this lesson',\n }),\n\n // Timeline\n startedAt: field.dateTime({\n isOptional: true,\n description: 'When started',\n }),\n completedAt: field.dateTime({\n isOptional: true,\n description: 'When completed',\n }),\n lastAccessedAt: field.dateTime({\n isOptional: true,\n description: 'Last access time',\n }),\n\n // Bookmarks and notes\n bookmarks: field.json({\n isOptional: true,\n description: 'Content bookmarks',\n }),\n notes: field.string({ isOptional: true, description: 'Learner notes' }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n learner: field.belongsTo('Learner', ['learnerId'], ['id'], {\n onDelete: 'Cascade',\n }),\n lesson: field.belongsTo('Lesson', ['lessonId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [\n index.unique(['learnerId', 'lessonId'], { name: 'lesson_progress_unique' }),\n index.on(['learnerId', 'status']),\n index.on(['lessonId']),\n ],\n enums: [ProgressStatusEnum],\n});\n\n/**\n * ModuleCompletion entity - tracks module completion.\n */\nexport const ModuleCompletionEntity = defineEntity({\n name: 'ModuleCompletion',\n description: 'Module completion record.',\n schema: 'lssm_learning',\n map: 'module_completion',\n fields: {\n id: field.id({ description: 'Unique completion identifier' }),\n learnerId: field.foreignKey({ description: 'Learner' }),\n moduleId: field.foreignKey({ description: 'Module' }),\n\n // Completion details\n score: field.int({ isOptional: true, description: 'Average score' }),\n xpEarned: field.int({ default: 0, description: 'XP earned' }),\n timeSpent: field.int({ default: 0, description: 'Time spent in seconds' }),\n\n // Timestamps\n completedAt: field.dateTime({ description: 'When completed' }),\n createdAt: field.createdAt(),\n\n // Relations\n learner: field.belongsTo('Learner', ['learnerId'], ['id'], {\n onDelete: 'Cascade',\n }),\n module: field.belongsTo('CourseModule', ['moduleId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [\n index.unique(['learnerId', 'moduleId'], {\n name: 'module_completion_unique',\n }),\n index.on(['learnerId', 'completedAt']),\n ],\n});\n\n/**\n * Certificate entity - course completion certificate.\n */\nexport const CertificateEntity = defineEntity({\n name: 'Certificate',\n description: 'Course completion certificate.',\n schema: 'lssm_learning',\n map: 'certificate',\n fields: {\n id: field.id({ description: 'Unique certificate identifier' }),\n learnerId: field.foreignKey({ description: 'Certificate holder' }),\n courseId: field.foreignKey({ description: 'Completed course' }),\n enrollmentId: field.foreignKey({ description: 'Associated enrollment' }),\n\n // Certificate details\n certificateNumber: field.string({\n isUnique: true,\n description: 'Unique certificate number',\n }),\n title: field.string({ description: 'Certificate title' }),\n description: field.string({\n isOptional: true,\n description: 'Certificate description',\n }),\n\n // Completion details\n score: field.int({ isOptional: true, description: 'Final score' }),\n grade: field.string({ isOptional: true, description: 'Grade awarded' }),\n\n // Validity\n issuedAt: field.dateTime({ description: 'When issued' }),\n validUntil: field.dateTime({\n isOptional: true,\n description: 'Expiration date',\n }),\n\n // Verification\n verificationUrl: field.string({\n isOptional: true,\n description: 'Verification URL',\n }),\n credentialHash: field.string({\n isOptional: true,\n description: 'Credential hash for verification',\n }),\n\n // Status\n isRevoked: field.boolean({\n default: false,\n description: 'Whether certificate is revoked',\n }),\n revokedAt: field.dateTime({\n isOptional: true,\n description: 'When revoked',\n }),\n revokedReason: field.string({\n isOptional: true,\n description: 'Revocation reason',\n }),\n\n // Metadata\n metadata: field.json({\n isOptional: true,\n description: 'Additional metadata',\n }),\n\n // Timestamps\n createdAt: field.createdAt(),\n\n // Relations\n learner: field.belongsTo('Learner', ['learnerId'], ['id'], {\n onDelete: 'Cascade',\n }),\n course: field.belongsTo('Course', ['courseId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [\n index.on(['learnerId']),\n index.on(['courseId']),\n index.on(['issuedAt']),\n ],\n});\n\nexport const learnerEntities = [\n LearnerEntity,\n EnrollmentEntity,\n LessonProgressEntity,\n ModuleCompletionEntity,\n CertificateEntity,\n];\n\nexport const learnerEnums = [EnrollmentStatusEnum, ProgressStatusEnum];\n"],"mappings":"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"}