@contractspec/module.learning-journey 3.7.16 → 3.7.18

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 (94) hide show
  1. package/dist/browser/contracts/index.js +1 -578
  2. package/dist/browser/contracts/models.js +1 -193
  3. package/dist/browser/contracts/onboarding.js +1 -417
  4. package/dist/browser/contracts/operations.js +1 -326
  5. package/dist/browser/contracts/shared.js +1 -5
  6. package/dist/browser/docs/index.js +7 -51
  7. package/dist/browser/docs/learning-journey.docblock.js +7 -51
  8. package/dist/browser/engines/index.js +1 -675
  9. package/dist/browser/engines/srs.js +1 -198
  10. package/dist/browser/engines/streak.js +1 -159
  11. package/dist/browser/engines/xp.js +1 -320
  12. package/dist/browser/entities/ai.js +1 -343
  13. package/dist/browser/entities/course.js +1 -276
  14. package/dist/browser/entities/flashcard.js +1 -222
  15. package/dist/browser/entities/gamification.js +1 -340
  16. package/dist/browser/entities/index.js +1 -2140
  17. package/dist/browser/entities/learner.js +1 -333
  18. package/dist/browser/entities/onboarding.js +1 -301
  19. package/dist/browser/entities/quiz.js +1 -304
  20. package/dist/browser/events.js +1 -423
  21. package/dist/browser/i18n/catalogs/en.js +1 -43
  22. package/dist/browser/i18n/catalogs/es.js +1 -43
  23. package/dist/browser/i18n/catalogs/fr.js +1 -43
  24. package/dist/browser/i18n/catalogs/index.js +1 -127
  25. package/dist/browser/i18n/index.js +1 -169
  26. package/dist/browser/i18n/keys.js +1 -16
  27. package/dist/browser/i18n/locale.js +1 -13
  28. package/dist/browser/i18n/messages.js +1 -139
  29. package/dist/browser/index.js +7 -3914
  30. package/dist/browser/learning-journey.capability.js +1 -43
  31. package/dist/browser/learning-journey.feature.js +1 -56
  32. package/dist/contracts/index.js +1 -578
  33. package/dist/contracts/models.js +1 -193
  34. package/dist/contracts/onboarding.js +1 -417
  35. package/dist/contracts/operations.js +1 -326
  36. package/dist/contracts/shared.js +1 -5
  37. package/dist/docs/index.js +7 -51
  38. package/dist/docs/learning-journey.docblock.js +7 -51
  39. package/dist/engines/index.js +1 -675
  40. package/dist/engines/srs.js +1 -198
  41. package/dist/engines/streak.js +1 -159
  42. package/dist/engines/xp.js +1 -320
  43. package/dist/entities/ai.js +1 -343
  44. package/dist/entities/course.js +1 -276
  45. package/dist/entities/flashcard.js +1 -222
  46. package/dist/entities/gamification.js +1 -340
  47. package/dist/entities/index.js +1 -2140
  48. package/dist/entities/learner.js +1 -333
  49. package/dist/entities/onboarding.js +1 -301
  50. package/dist/entities/quiz.js +1 -304
  51. package/dist/events.js +1 -423
  52. package/dist/i18n/catalogs/en.js +1 -43
  53. package/dist/i18n/catalogs/es.js +1 -43
  54. package/dist/i18n/catalogs/fr.js +1 -43
  55. package/dist/i18n/catalogs/index.js +1 -127
  56. package/dist/i18n/index.js +1 -169
  57. package/dist/i18n/keys.js +1 -16
  58. package/dist/i18n/locale.js +1 -13
  59. package/dist/i18n/messages.js +1 -139
  60. package/dist/index.js +7 -3914
  61. package/dist/learning-journey.capability.js +1 -43
  62. package/dist/learning-journey.feature.js +1 -56
  63. package/dist/node/contracts/index.js +1 -578
  64. package/dist/node/contracts/models.js +1 -193
  65. package/dist/node/contracts/onboarding.js +1 -417
  66. package/dist/node/contracts/operations.js +1 -326
  67. package/dist/node/contracts/shared.js +1 -5
  68. package/dist/node/docs/index.js +7 -51
  69. package/dist/node/docs/learning-journey.docblock.js +7 -51
  70. package/dist/node/engines/index.js +1 -675
  71. package/dist/node/engines/srs.js +1 -198
  72. package/dist/node/engines/streak.js +1 -159
  73. package/dist/node/engines/xp.js +1 -320
  74. package/dist/node/entities/ai.js +1 -343
  75. package/dist/node/entities/course.js +1 -276
  76. package/dist/node/entities/flashcard.js +1 -222
  77. package/dist/node/entities/gamification.js +1 -340
  78. package/dist/node/entities/index.js +1 -2140
  79. package/dist/node/entities/learner.js +1 -333
  80. package/dist/node/entities/onboarding.js +1 -301
  81. package/dist/node/entities/quiz.js +1 -304
  82. package/dist/node/events.js +1 -423
  83. package/dist/node/i18n/catalogs/en.js +1 -43
  84. package/dist/node/i18n/catalogs/es.js +1 -43
  85. package/dist/node/i18n/catalogs/fr.js +1 -43
  86. package/dist/node/i18n/catalogs/index.js +1 -127
  87. package/dist/node/i18n/index.js +1 -169
  88. package/dist/node/i18n/keys.js +1 -16
  89. package/dist/node/i18n/locale.js +1 -13
  90. package/dist/node/i18n/messages.js +1 -139
  91. package/dist/node/index.js +7 -3914
  92. package/dist/node/learning-journey.capability.js +1 -43
  93. package/dist/node/learning-journey.feature.js +1 -56
  94. package/package.json +5 -5
package/dist/events.js CHANGED
@@ -1,424 +1,2 @@
1
1
  // @bun
2
- // src/contracts/shared.ts
3
- var LEARNING_JOURNEY_OWNERS = ["modules.learning-journey"];
4
-
5
- // src/events.ts
6
- import { defineEvent } from "@contractspec/lib.contracts-spec";
7
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
8
- var CoursePublishedPayload = defineSchemaModel({
9
- name: "CoursePublishedEventPayload",
10
- description: "Payload when a course is published",
11
- fields: {
12
- courseId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
13
- title: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
14
- authorId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
15
- publishedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
16
- }
17
- });
18
- var CoursePublishedEvent = defineEvent({
19
- meta: {
20
- key: "course.published",
21
- version: "1.0.0",
22
- description: "A course has been published.",
23
- stability: "stable",
24
- owners: [...LEARNING_JOURNEY_OWNERS],
25
- tags: ["learning", "course"]
26
- },
27
- payload: CoursePublishedPayload
28
- });
29
- var EnrollmentCreatedPayload = defineSchemaModel({
30
- name: "EnrollmentCreatedEventPayload",
31
- description: "Payload when a learner enrolls in a course",
32
- fields: {
33
- enrollmentId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
34
- learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
35
- courseId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
36
- enrolledAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
37
- }
38
- });
39
- var EnrollmentCreatedEvent = defineEvent({
40
- meta: {
41
- key: "enrollment.created",
42
- version: "1.0.0",
43
- description: "A learner has enrolled in a course.",
44
- stability: "stable",
45
- owners: [...LEARNING_JOURNEY_OWNERS],
46
- tags: ["learning", "enrollment"]
47
- },
48
- payload: EnrollmentCreatedPayload
49
- });
50
- var LessonCompletedPayload = defineSchemaModel({
51
- name: "LessonCompletedEventPayload",
52
- description: "Payload when a lesson is completed",
53
- fields: {
54
- learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
55
- lessonId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
56
- courseId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
57
- score: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },
58
- xpEarned: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
59
- timeSpent: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
60
- completedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
61
- }
62
- });
63
- var LessonCompletedEvent = defineEvent({
64
- meta: {
65
- key: "lesson.completed",
66
- version: "1.0.0",
67
- description: "A learner has completed a lesson.",
68
- stability: "stable",
69
- owners: [...LEARNING_JOURNEY_OWNERS],
70
- tags: ["learning", "progress", "lesson"]
71
- },
72
- payload: LessonCompletedPayload
73
- });
74
- var CourseCompletedPayload = defineSchemaModel({
75
- name: "CourseCompletedEventPayload",
76
- description: "Payload when a course is completed",
77
- fields: {
78
- learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
79
- courseId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
80
- enrollmentId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
81
- score: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },
82
- xpEarned: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
83
- certificateId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
84
- completedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
85
- }
86
- });
87
- var CourseCompletedEvent = defineEvent({
88
- meta: {
89
- key: "course.completed",
90
- version: "1.0.0",
91
- description: "A learner has completed a course.",
92
- stability: "stable",
93
- owners: [...LEARNING_JOURNEY_OWNERS],
94
- tags: ["learning", "progress", "course"]
95
- },
96
- payload: CourseCompletedPayload
97
- });
98
- var OnboardingStartedPayload = defineSchemaModel({
99
- name: "OnboardingStartedEventPayload",
100
- description: "Payload when onboarding starts",
101
- fields: {
102
- learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
103
- trackId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
104
- productId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
105
- startedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
106
- }
107
- });
108
- var OnboardingStartedEvent = defineEvent({
109
- meta: {
110
- key: "onboarding.started",
111
- version: "1.0.0",
112
- description: "A learner has started onboarding.",
113
- stability: "stable",
114
- owners: [...LEARNING_JOURNEY_OWNERS],
115
- tags: ["learning", "onboarding"]
116
- },
117
- payload: OnboardingStartedPayload
118
- });
119
- var OnboardingStepCompletedPayload = defineSchemaModel({
120
- name: "OnboardingStepCompletedEventPayload",
121
- description: "Payload when an onboarding step is completed",
122
- fields: {
123
- learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
124
- trackId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
125
- stepId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
126
- triggeringEvent: {
127
- type: ScalarTypeEnum.String_unsecure(),
128
- isOptional: true
129
- },
130
- xpEarned: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
131
- completedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
132
- }
133
- });
134
- var OnboardingStepCompletedEvent = defineEvent({
135
- meta: {
136
- key: "onboarding.step_completed",
137
- version: "1.0.0",
138
- description: "An onboarding step has been completed.",
139
- stability: "stable",
140
- owners: [...LEARNING_JOURNEY_OWNERS],
141
- tags: ["learning", "onboarding"]
142
- },
143
- payload: OnboardingStepCompletedPayload
144
- });
145
- var OnboardingCompletedPayload = defineSchemaModel({
146
- name: "OnboardingCompletedEventPayload",
147
- description: "Payload when onboarding is completed",
148
- fields: {
149
- learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
150
- trackId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
151
- productId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
152
- xpEarned: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
153
- completedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
154
- }
155
- });
156
- var OnboardingCompletedEvent = defineEvent({
157
- meta: {
158
- key: "onboarding.completed",
159
- version: "1.0.0",
160
- description: "A learner has completed onboarding.",
161
- stability: "stable",
162
- owners: [...LEARNING_JOURNEY_OWNERS],
163
- tags: ["learning", "onboarding"]
164
- },
165
- payload: OnboardingCompletedPayload
166
- });
167
- var CardReviewedPayload = defineSchemaModel({
168
- name: "CardReviewedEventPayload",
169
- description: "Payload when a flashcard is reviewed",
170
- fields: {
171
- learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
172
- cardId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
173
- deckId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
174
- rating: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
175
- responseTimeMs: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },
176
- reviewedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
177
- }
178
- });
179
- var CardReviewedEvent = defineEvent({
180
- meta: {
181
- key: "flashcard.reviewed",
182
- version: "1.0.0",
183
- description: "A flashcard has been reviewed.",
184
- stability: "stable",
185
- owners: [...LEARNING_JOURNEY_OWNERS],
186
- tags: ["learning", "flashcards"]
187
- },
188
- payload: CardReviewedPayload
189
- });
190
- var QuizStartedPayload = defineSchemaModel({
191
- name: "QuizStartedEventPayload",
192
- description: "Payload when a quiz is started",
193
- fields: {
194
- learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
195
- quizId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
196
- attemptId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
197
- attemptNumber: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
198
- startedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
199
- }
200
- });
201
- var QuizStartedEvent = defineEvent({
202
- meta: {
203
- key: "quiz.started",
204
- version: "1.0.0",
205
- description: "A quiz attempt has started.",
206
- stability: "stable",
207
- owners: [...LEARNING_JOURNEY_OWNERS],
208
- tags: ["learning", "quiz"]
209
- },
210
- payload: QuizStartedPayload
211
- });
212
- var QuizCompletedPayload = defineSchemaModel({
213
- name: "QuizCompletedEventPayload",
214
- description: "Payload when a quiz is completed",
215
- fields: {
216
- learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
217
- quizId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
218
- attemptId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
219
- score: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
220
- percentageScore: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
221
- passed: { type: ScalarTypeEnum.Boolean(), isOptional: false },
222
- xpEarned: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
223
- timeSpent: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
224
- completedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
225
- }
226
- });
227
- var QuizCompletedEvent = defineEvent({
228
- meta: {
229
- key: "quiz.completed",
230
- version: "1.0.0",
231
- description: "A quiz attempt has been completed.",
232
- stability: "stable",
233
- owners: [...LEARNING_JOURNEY_OWNERS],
234
- tags: ["learning", "quiz"]
235
- },
236
- payload: QuizCompletedPayload
237
- });
238
- var XpEarnedPayload = defineSchemaModel({
239
- name: "XpEarnedEventPayload",
240
- description: "Payload when XP is earned",
241
- fields: {
242
- learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
243
- amount: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
244
- source: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
245
- sourceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
246
- totalXp: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
247
- earnedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
248
- }
249
- });
250
- var XpEarnedEvent = defineEvent({
251
- meta: {
252
- key: "xp.earned",
253
- version: "1.0.0",
254
- description: "XP has been earned.",
255
- stability: "stable",
256
- owners: [...LEARNING_JOURNEY_OWNERS],
257
- tags: ["learning", "gamification", "xp"]
258
- },
259
- payload: XpEarnedPayload
260
- });
261
- var LevelUpPayload = defineSchemaModel({
262
- name: "LevelUpEventPayload",
263
- description: "Payload when a learner levels up",
264
- fields: {
265
- learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
266
- previousLevel: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
267
- newLevel: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
268
- totalXp: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
269
- leveledUpAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
270
- }
271
- });
272
- var LevelUpEvent = defineEvent({
273
- meta: {
274
- key: "level.up",
275
- version: "1.0.0",
276
- description: "A learner has leveled up.",
277
- stability: "stable",
278
- owners: [...LEARNING_JOURNEY_OWNERS],
279
- tags: ["learning", "gamification", "level"]
280
- },
281
- payload: LevelUpPayload
282
- });
283
- var StreakUpdatedPayload = defineSchemaModel({
284
- name: "StreakUpdatedEventPayload",
285
- description: "Payload when a streak is updated",
286
- fields: {
287
- learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
288
- previousStreak: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
289
- currentStreak: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
290
- longestStreak: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
291
- freezeUsed: { type: ScalarTypeEnum.Boolean(), isOptional: false },
292
- updatedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
293
- }
294
- });
295
- var StreakUpdatedEvent = defineEvent({
296
- meta: {
297
- key: "streak.updated",
298
- version: "1.0.0",
299
- description: "A streak has been updated.",
300
- stability: "stable",
301
- owners: [...LEARNING_JOURNEY_OWNERS],
302
- tags: ["learning", "gamification", "streak"]
303
- },
304
- payload: StreakUpdatedPayload
305
- });
306
- var AchievementUnlockedPayload = defineSchemaModel({
307
- name: "AchievementUnlockedEventPayload",
308
- description: "Payload when an achievement is unlocked",
309
- fields: {
310
- learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
311
- achievementId: {
312
- type: ScalarTypeEnum.String_unsecure(),
313
- isOptional: false
314
- },
315
- achievementKey: {
316
- type: ScalarTypeEnum.String_unsecure(),
317
- isOptional: false
318
- },
319
- achievementName: {
320
- type: ScalarTypeEnum.String_unsecure(),
321
- isOptional: false
322
- },
323
- xpEarned: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
324
- unlockedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
325
- }
326
- });
327
- var AchievementUnlockedEvent = defineEvent({
328
- meta: {
329
- key: "achievement.unlocked",
330
- version: "1.0.0",
331
- description: "An achievement has been unlocked.",
332
- stability: "stable",
333
- owners: [...LEARNING_JOURNEY_OWNERS],
334
- tags: ["learning", "gamification", "achievement"]
335
- },
336
- payload: AchievementUnlockedPayload
337
- });
338
- var DailyGoalCompletedPayload = defineSchemaModel({
339
- name: "DailyGoalCompletedEventPayload",
340
- description: "Payload when a daily goal is completed",
341
- fields: {
342
- learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
343
- date: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
344
- targetXp: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
345
- actualXp: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
346
- completedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
347
- }
348
- });
349
- var DailyGoalCompletedEvent = defineEvent({
350
- meta: {
351
- key: "daily_goal.completed",
352
- version: "1.0.0",
353
- description: "A daily goal has been completed.",
354
- stability: "stable",
355
- owners: [...LEARNING_JOURNEY_OWNERS],
356
- tags: ["learning", "gamification", "goal"]
357
- },
358
- payload: DailyGoalCompletedPayload
359
- });
360
- var CertificateIssuedPayload = defineSchemaModel({
361
- name: "CertificateIssuedEventPayload",
362
- description: "Payload when a certificate is issued",
363
- fields: {
364
- certificateId: {
365
- type: ScalarTypeEnum.String_unsecure(),
366
- isOptional: false
367
- },
368
- learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
369
- courseId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
370
- certificateNumber: {
371
- type: ScalarTypeEnum.String_unsecure(),
372
- isOptional: false
373
- },
374
- issuedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
375
- }
376
- });
377
- var CertificateIssuedEvent = defineEvent({
378
- meta: {
379
- key: "certificate.issued",
380
- version: "1.0.0",
381
- description: "A certificate has been issued.",
382
- stability: "stable",
383
- owners: [...LEARNING_JOURNEY_OWNERS],
384
- tags: ["learning", "certificate"]
385
- },
386
- payload: CertificateIssuedPayload
387
- });
388
- var LearningJourneyEvents = {
389
- CoursePublishedEvent,
390
- EnrollmentCreatedEvent,
391
- LessonCompletedEvent,
392
- CourseCompletedEvent,
393
- OnboardingStartedEvent,
394
- OnboardingStepCompletedEvent,
395
- OnboardingCompletedEvent,
396
- CardReviewedEvent,
397
- QuizStartedEvent,
398
- QuizCompletedEvent,
399
- XpEarnedEvent,
400
- LevelUpEvent,
401
- StreakUpdatedEvent,
402
- AchievementUnlockedEvent,
403
- DailyGoalCompletedEvent,
404
- CertificateIssuedEvent
405
- };
406
- export {
407
- XpEarnedEvent,
408
- StreakUpdatedEvent,
409
- QuizStartedEvent,
410
- QuizCompletedEvent,
411
- OnboardingStepCompletedEvent,
412
- OnboardingStartedEvent,
413
- OnboardingCompletedEvent,
414
- LevelUpEvent,
415
- LessonCompletedEvent,
416
- LearningJourneyEvents,
417
- EnrollmentCreatedEvent,
418
- DailyGoalCompletedEvent,
419
- CoursePublishedEvent,
420
- CourseCompletedEvent,
421
- CertificateIssuedEvent,
422
- CardReviewedEvent,
423
- AchievementUnlockedEvent
424
- };
2
+ var x=["modules.learning-journey"];import{defineEvent as q}from"@contractspec/lib.contracts-spec";import{defineSchemaModel as B,ScalarTypeEnum as j}from"@contractspec/lib.schema";var F=B({name:"CoursePublishedEventPayload",description:"Payload when a course is published",fields:{courseId:{type:j.String_unsecure(),isOptional:!1},title:{type:j.String_unsecure(),isOptional:!1},authorId:{type:j.String_unsecure(),isOptional:!1},publishedAt:{type:j.DateTime(),isOptional:!1}}}),H=q({meta:{key:"course.published",version:"1.0.0",description:"A course has been published.",stability:"stable",owners:[...x],tags:["learning","course"]},payload:F}),K=B({name:"EnrollmentCreatedEventPayload",description:"Payload when a learner enrolls in a course",fields:{enrollmentId:{type:j.String_unsecure(),isOptional:!1},learnerId:{type:j.String_unsecure(),isOptional:!1},courseId:{type:j.String_unsecure(),isOptional:!1},enrolledAt:{type:j.DateTime(),isOptional:!1}}}),V=q({meta:{key:"enrollment.created",version:"1.0.0",description:"A learner has enrolled in a course.",stability:"stable",owners:[...x],tags:["learning","enrollment"]},payload:K}),Z=B({name:"LessonCompletedEventPayload",description:"Payload when a lesson is completed",fields:{learnerId:{type:j.String_unsecure(),isOptional:!1},lessonId:{type:j.String_unsecure(),isOptional:!1},courseId:{type:j.String_unsecure(),isOptional:!1},score:{type:j.Int_unsecure(),isOptional:!0},xpEarned:{type:j.Int_unsecure(),isOptional:!1},timeSpent:{type:j.Int_unsecure(),isOptional:!1},completedAt:{type:j.DateTime(),isOptional:!1}}}),$=q({meta:{key:"lesson.completed",version:"1.0.0",description:"A learner has completed a lesson.",stability:"stable",owners:[...x],tags:["learning","progress","lesson"]},payload:Z}),w=B({name:"CourseCompletedEventPayload",description:"Payload when a course is completed",fields:{learnerId:{type:j.String_unsecure(),isOptional:!1},courseId:{type:j.String_unsecure(),isOptional:!1},enrollmentId:{type:j.String_unsecure(),isOptional:!1},score:{type:j.Int_unsecure(),isOptional:!0},xpEarned:{type:j.Int_unsecure(),isOptional:!1},certificateId:{type:j.String_unsecure(),isOptional:!0},completedAt:{type:j.DateTime(),isOptional:!1}}}),D=q({meta:{key:"course.completed",version:"1.0.0",description:"A learner has completed a course.",stability:"stable",owners:[...x],tags:["learning","progress","course"]},payload:w}),X=B({name:"OnboardingStartedEventPayload",description:"Payload when onboarding starts",fields:{learnerId:{type:j.String_unsecure(),isOptional:!1},trackId:{type:j.String_unsecure(),isOptional:!1},productId:{type:j.String_unsecure(),isOptional:!1},startedAt:{type:j.DateTime(),isOptional:!1}}}),k=q({meta:{key:"onboarding.started",version:"1.0.0",description:"A learner has started onboarding.",stability:"stable",owners:[...x],tags:["learning","onboarding"]},payload:X}),z=B({name:"OnboardingStepCompletedEventPayload",description:"Payload when an onboarding step is completed",fields:{learnerId:{type:j.String_unsecure(),isOptional:!1},trackId:{type:j.String_unsecure(),isOptional:!1},stepId:{type:j.String_unsecure(),isOptional:!1},triggeringEvent:{type:j.String_unsecure(),isOptional:!0},xpEarned:{type:j.Int_unsecure(),isOptional:!1},completedAt:{type:j.DateTime(),isOptional:!1}}}),Q=q({meta:{key:"onboarding.step_completed",version:"1.0.0",description:"An onboarding step has been completed.",stability:"stable",owners:[...x],tags:["learning","onboarding"]},payload:z}),g=B({name:"OnboardingCompletedEventPayload",description:"Payload when onboarding is completed",fields:{learnerId:{type:j.String_unsecure(),isOptional:!1},trackId:{type:j.String_unsecure(),isOptional:!1},productId:{type:j.String_unsecure(),isOptional:!1},xpEarned:{type:j.Int_unsecure(),isOptional:!1},completedAt:{type:j.DateTime(),isOptional:!1}}}),b=q({meta:{key:"onboarding.completed",version:"1.0.0",description:"A learner has completed onboarding.",stability:"stable",owners:[...x],tags:["learning","onboarding"]},payload:g}),J=B({name:"CardReviewedEventPayload",description:"Payload when a flashcard is reviewed",fields:{learnerId:{type:j.String_unsecure(),isOptional:!1},cardId:{type:j.String_unsecure(),isOptional:!1},deckId:{type:j.String_unsecure(),isOptional:!1},rating:{type:j.String_unsecure(),isOptional:!1},responseTimeMs:{type:j.Int_unsecure(),isOptional:!0},reviewedAt:{type:j.DateTime(),isOptional:!1}}}),W=q({meta:{key:"flashcard.reviewed",version:"1.0.0",description:"A flashcard has been reviewed.",stability:"stable",owners:[...x],tags:["learning","flashcards"]},payload:J}),Y=B({name:"QuizStartedEventPayload",description:"Payload when a quiz is started",fields:{learnerId:{type:j.String_unsecure(),isOptional:!1},quizId:{type:j.String_unsecure(),isOptional:!1},attemptId:{type:j.String_unsecure(),isOptional:!1},attemptNumber:{type:j.Int_unsecure(),isOptional:!1},startedAt:{type:j.DateTime(),isOptional:!1}}}),M=q({meta:{key:"quiz.started",version:"1.0.0",description:"A quiz attempt has started.",stability:"stable",owners:[...x],tags:["learning","quiz"]},payload:Y}),s=B({name:"QuizCompletedEventPayload",description:"Payload when a quiz is completed",fields:{learnerId:{type:j.String_unsecure(),isOptional:!1},quizId:{type:j.String_unsecure(),isOptional:!1},attemptId:{type:j.String_unsecure(),isOptional:!1},score:{type:j.Int_unsecure(),isOptional:!1},percentageScore:{type:j.Int_unsecure(),isOptional:!1},passed:{type:j.Boolean(),isOptional:!1},xpEarned:{type:j.Int_unsecure(),isOptional:!1},timeSpent:{type:j.Int_unsecure(),isOptional:!1},completedAt:{type:j.DateTime(),isOptional:!1}}}),A=q({meta:{key:"quiz.completed",version:"1.0.0",description:"A quiz attempt has been completed.",stability:"stable",owners:[...x],tags:["learning","quiz"]},payload:s}),G=B({name:"XpEarnedEventPayload",description:"Payload when XP is earned",fields:{learnerId:{type:j.String_unsecure(),isOptional:!1},amount:{type:j.Int_unsecure(),isOptional:!1},source:{type:j.String_unsecure(),isOptional:!1},sourceId:{type:j.String_unsecure(),isOptional:!0},totalXp:{type:j.Int_unsecure(),isOptional:!1},earnedAt:{type:j.DateTime(),isOptional:!1}}}),I=q({meta:{key:"xp.earned",version:"1.0.0",description:"XP has been earned.",stability:"stable",owners:[...x],tags:["learning","gamification","xp"]},payload:G}),P=B({name:"LevelUpEventPayload",description:"Payload when a learner levels up",fields:{learnerId:{type:j.String_unsecure(),isOptional:!1},previousLevel:{type:j.Int_unsecure(),isOptional:!1},newLevel:{type:j.Int_unsecure(),isOptional:!1},totalXp:{type:j.Int_unsecure(),isOptional:!1},leveledUpAt:{type:j.DateTime(),isOptional:!1}}}),L=q({meta:{key:"level.up",version:"1.0.0",description:"A learner has leveled up.",stability:"stable",owners:[...x],tags:["learning","gamification","level"]},payload:P}),U=B({name:"StreakUpdatedEventPayload",description:"Payload when a streak is updated",fields:{learnerId:{type:j.String_unsecure(),isOptional:!1},previousStreak:{type:j.Int_unsecure(),isOptional:!1},currentStreak:{type:j.Int_unsecure(),isOptional:!1},longestStreak:{type:j.Int_unsecure(),isOptional:!1},freezeUsed:{type:j.Boolean(),isOptional:!1},updatedAt:{type:j.DateTime(),isOptional:!1}}}),h=q({meta:{key:"streak.updated",version:"1.0.0",description:"A streak has been updated.",stability:"stable",owners:[...x],tags:["learning","gamification","streak"]},payload:U}),C=B({name:"AchievementUnlockedEventPayload",description:"Payload when an achievement is unlocked",fields:{learnerId:{type:j.String_unsecure(),isOptional:!1},achievementId:{type:j.String_unsecure(),isOptional:!1},achievementKey:{type:j.String_unsecure(),isOptional:!1},achievementName:{type:j.String_unsecure(),isOptional:!1},xpEarned:{type:j.Int_unsecure(),isOptional:!1},unlockedAt:{type:j.DateTime(),isOptional:!1}}}),_=q({meta:{key:"achievement.unlocked",version:"1.0.0",description:"An achievement has been unlocked.",stability:"stable",owners:[...x],tags:["learning","gamification","achievement"]},payload:C}),f=B({name:"DailyGoalCompletedEventPayload",description:"Payload when a daily goal is completed",fields:{learnerId:{type:j.String_unsecure(),isOptional:!1},date:{type:j.String_unsecure(),isOptional:!1},targetXp:{type:j.Int_unsecure(),isOptional:!1},actualXp:{type:j.Int_unsecure(),isOptional:!1},completedAt:{type:j.DateTime(),isOptional:!1}}}),O=q({meta:{key:"daily_goal.completed",version:"1.0.0",description:"A daily goal has been completed.",stability:"stable",owners:[...x],tags:["learning","gamification","goal"]},payload:f}),v=B({name:"CertificateIssuedEventPayload",description:"Payload when a certificate is issued",fields:{certificateId:{type:j.String_unsecure(),isOptional:!1},learnerId:{type:j.String_unsecure(),isOptional:!1},courseId:{type:j.String_unsecure(),isOptional:!1},certificateNumber:{type:j.String_unsecure(),isOptional:!1},issuedAt:{type:j.DateTime(),isOptional:!1}}}),R=q({meta:{key:"certificate.issued",version:"1.0.0",description:"A certificate has been issued.",stability:"stable",owners:[...x],tags:["learning","certificate"]},payload:v}),T={CoursePublishedEvent:H,EnrollmentCreatedEvent:V,LessonCompletedEvent:$,CourseCompletedEvent:D,OnboardingStartedEvent:k,OnboardingStepCompletedEvent:Q,OnboardingCompletedEvent:b,CardReviewedEvent:W,QuizStartedEvent:M,QuizCompletedEvent:A,XpEarnedEvent:I,LevelUpEvent:L,StreakUpdatedEvent:h,AchievementUnlockedEvent:_,DailyGoalCompletedEvent:O,CertificateIssuedEvent:R};export{I as XpEarnedEvent,h as StreakUpdatedEvent,M as QuizStartedEvent,A as QuizCompletedEvent,Q as OnboardingStepCompletedEvent,k as OnboardingStartedEvent,b as OnboardingCompletedEvent,L as LevelUpEvent,$ as LessonCompletedEvent,T as LearningJourneyEvents,V as EnrollmentCreatedEvent,O as DailyGoalCompletedEvent,H as CoursePublishedEvent,D as CourseCompletedEvent,R as CertificateIssuedEvent,W as CardReviewedEvent,_ as AchievementUnlockedEvent};
@@ -1,44 +1,2 @@
1
1
  // @bun
2
- // src/i18n/catalogs/en.ts
3
- import { defineTranslation } from "@contractspec/lib.contracts-spec/translations";
4
- var enMessages = defineTranslation({
5
- meta: {
6
- key: "learning-journey.messages",
7
- version: "1.0.0",
8
- domain: "learning-journey",
9
- description: "XP source labels for the learning-journey module",
10
- owners: ["platform"],
11
- stability: "experimental"
12
- },
13
- locale: "en",
14
- fallback: "en",
15
- messages: {
16
- "xp.source.base": {
17
- value: "Base",
18
- description: "XP breakdown label for base XP"
19
- },
20
- "xp.source.scoreBonus": {
21
- value: "Score Bonus",
22
- description: "XP breakdown label for score-based bonus"
23
- },
24
- "xp.source.perfectScore": {
25
- value: "Perfect Score",
26
- description: "XP breakdown label for perfect score bonus"
27
- },
28
- "xp.source.firstAttempt": {
29
- value: "First Attempt",
30
- description: "XP breakdown label for first attempt bonus"
31
- },
32
- "xp.source.retryPenalty": {
33
- value: "Retry Penalty",
34
- description: "XP breakdown label for retry penalty"
35
- },
36
- "xp.source.streakBonus": {
37
- value: "Streak Bonus",
38
- description: "XP breakdown label for streak bonus"
39
- }
40
- }
41
- });
42
- export {
43
- enMessages
44
- };
2
+ import{defineTranslation as g}from"@contractspec/lib.contracts-spec/translations";var j=g({meta:{key:"learning-journey.messages",version:"1.0.0",domain:"learning-journey",description:"XP source labels for the learning-journey module",owners:["platform"],stability:"experimental"},locale:"en",fallback:"en",messages:{"xp.source.base":{value:"Base",description:"XP breakdown label for base XP"},"xp.source.scoreBonus":{value:"Score Bonus",description:"XP breakdown label for score-based bonus"},"xp.source.perfectScore":{value:"Perfect Score",description:"XP breakdown label for perfect score bonus"},"xp.source.firstAttempt":{value:"First Attempt",description:"XP breakdown label for first attempt bonus"},"xp.source.retryPenalty":{value:"Retry Penalty",description:"XP breakdown label for retry penalty"},"xp.source.streakBonus":{value:"Streak Bonus",description:"XP breakdown label for streak bonus"}}});export{j as enMessages};
@@ -1,44 +1,2 @@
1
1
  // @bun
2
- // src/i18n/catalogs/es.ts
3
- import { defineTranslation } from "@contractspec/lib.contracts-spec/translations";
4
- var esMessages = defineTranslation({
5
- meta: {
6
- key: "learning-journey.messages",
7
- version: "1.0.0",
8
- domain: "learning-journey",
9
- description: "XP source labels (Spanish)",
10
- owners: ["platform"],
11
- stability: "experimental"
12
- },
13
- locale: "es",
14
- fallback: "en",
15
- messages: {
16
- "xp.source.base": {
17
- value: "Base",
18
- description: "XP breakdown label for base XP"
19
- },
20
- "xp.source.scoreBonus": {
21
- value: "Bonificaci\xF3n por puntuaci\xF3n",
22
- description: "XP breakdown label for score-based bonus"
23
- },
24
- "xp.source.perfectScore": {
25
- value: "Puntuaci\xF3n perfecta",
26
- description: "XP breakdown label for perfect score bonus"
27
- },
28
- "xp.source.firstAttempt": {
29
- value: "Primer intento",
30
- description: "XP breakdown label for first attempt bonus"
31
- },
32
- "xp.source.retryPenalty": {
33
- value: "Penalizaci\xF3n por reintento",
34
- description: "XP breakdown label for retry penalty"
35
- },
36
- "xp.source.streakBonus": {
37
- value: "Bonificaci\xF3n por racha",
38
- description: "XP breakdown label for streak bonus"
39
- }
40
- }
41
- });
42
- export {
43
- esMessages
44
- };
2
+ import{defineTranslation as g}from"@contractspec/lib.contracts-spec/translations";var j=g({meta:{key:"learning-journey.messages",version:"1.0.0",domain:"learning-journey",description:"XP source labels (Spanish)",owners:["platform"],stability:"experimental"},locale:"es",fallback:"en",messages:{"xp.source.base":{value:"Base",description:"XP breakdown label for base XP"},"xp.source.scoreBonus":{value:"Bonificaci\xF3n por puntuaci\xF3n",description:"XP breakdown label for score-based bonus"},"xp.source.perfectScore":{value:"Puntuaci\xF3n perfecta",description:"XP breakdown label for perfect score bonus"},"xp.source.firstAttempt":{value:"Primer intento",description:"XP breakdown label for first attempt bonus"},"xp.source.retryPenalty":{value:"Penalizaci\xF3n por reintento",description:"XP breakdown label for retry penalty"},"xp.source.streakBonus":{value:"Bonificaci\xF3n por racha",description:"XP breakdown label for streak bonus"}}});export{j as esMessages};
@@ -1,44 +1,2 @@
1
1
  // @bun
2
- // src/i18n/catalogs/fr.ts
3
- import { defineTranslation } from "@contractspec/lib.contracts-spec/translations";
4
- var frMessages = defineTranslation({
5
- meta: {
6
- key: "learning-journey.messages",
7
- version: "1.0.0",
8
- domain: "learning-journey",
9
- description: "XP source labels (French)",
10
- owners: ["platform"],
11
- stability: "experimental"
12
- },
13
- locale: "fr",
14
- fallback: "en",
15
- messages: {
16
- "xp.source.base": {
17
- value: "Base",
18
- description: "XP breakdown label for base XP"
19
- },
20
- "xp.source.scoreBonus": {
21
- value: "Bonus de score",
22
- description: "XP breakdown label for score-based bonus"
23
- },
24
- "xp.source.perfectScore": {
25
- value: "Score parfait",
26
- description: "XP breakdown label for perfect score bonus"
27
- },
28
- "xp.source.firstAttempt": {
29
- value: "Premier essai",
30
- description: "XP breakdown label for first attempt bonus"
31
- },
32
- "xp.source.retryPenalty": {
33
- value: "P\xE9nalit\xE9 de r\xE9essai",
34
- description: "XP breakdown label for retry penalty"
35
- },
36
- "xp.source.streakBonus": {
37
- value: "Bonus de s\xE9rie",
38
- description: "XP breakdown label for streak bonus"
39
- }
40
- }
41
- });
42
- export {
43
- frMessages
44
- };
2
+ import{defineTranslation as g}from"@contractspec/lib.contracts-spec/translations";var j=g({meta:{key:"learning-journey.messages",version:"1.0.0",domain:"learning-journey",description:"XP source labels (French)",owners:["platform"],stability:"experimental"},locale:"fr",fallback:"en",messages:{"xp.source.base":{value:"Base",description:"XP breakdown label for base XP"},"xp.source.scoreBonus":{value:"Bonus de score",description:"XP breakdown label for score-based bonus"},"xp.source.perfectScore":{value:"Score parfait",description:"XP breakdown label for perfect score bonus"},"xp.source.firstAttempt":{value:"Premier essai",description:"XP breakdown label for first attempt bonus"},"xp.source.retryPenalty":{value:"P\xE9nalit\xE9 de r\xE9essai",description:"XP breakdown label for retry penalty"},"xp.source.streakBonus":{value:"Bonus de s\xE9rie",description:"XP breakdown label for streak bonus"}}});export{j as frMessages};