@contractspec/module.learning-journey 3.7.17 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +3 -2
  2. package/dist/browser/contracts/index.js +1 -1
  3. package/dist/browser/contracts/journey.js +1 -0
  4. package/dist/browser/contracts/operations.js +1 -1
  5. package/dist/browser/docs/index.js +13 -12
  6. package/dist/browser/docs/learning-journey.docblock.js +13 -12
  7. package/dist/browser/engines/index.js +1 -1
  8. package/dist/browser/engines/xp.js +1 -1
  9. package/dist/browser/entities/index.js +1 -1
  10. package/dist/browser/entities/journey.js +1 -0
  11. package/dist/browser/index.js +14 -13
  12. package/dist/browser/learning-journey.feature.js +1 -1
  13. package/dist/browser/runtime/index.js +1 -0
  14. package/dist/browser/runtime/matchers.js +1 -0
  15. package/dist/browser/runtime/progress-state.js +1 -0
  16. package/dist/browser/runtime/snapshot.js +1 -0
  17. package/dist/contracts/index.d.ts +1 -1
  18. package/dist/contracts/index.js +1 -1
  19. package/dist/contracts/{onboarding.d.ts → journey.d.ts} +477 -180
  20. package/dist/contracts/journey.js +2 -0
  21. package/dist/contracts/operations.js +1 -1
  22. package/dist/docs/index.js +13 -12
  23. package/dist/docs/learning-journey.docblock.js +13 -12
  24. package/dist/engines/index.js +1 -1
  25. package/dist/engines/xp.d.ts +1 -1
  26. package/dist/engines/xp.js +1 -1
  27. package/dist/entities/index.d.ts +28 -27
  28. package/dist/entities/index.js +1 -1
  29. package/dist/entities/{onboarding.d.ts → journey.d.ts} +61 -74
  30. package/dist/entities/journey.js +2 -0
  31. package/dist/index.d.ts +1 -0
  32. package/dist/index.js +14 -13
  33. package/dist/learning-journey.feature.js +1 -1
  34. package/dist/node/contracts/index.js +1 -1
  35. package/dist/node/contracts/journey.js +1 -0
  36. package/dist/node/contracts/operations.js +1 -1
  37. package/dist/node/docs/index.js +13 -12
  38. package/dist/node/docs/learning-journey.docblock.js +13 -12
  39. package/dist/node/engines/index.js +1 -1
  40. package/dist/node/engines/xp.js +1 -1
  41. package/dist/node/entities/index.js +1 -1
  42. package/dist/node/entities/journey.js +1 -0
  43. package/dist/node/index.js +14 -13
  44. package/dist/node/learning-journey.feature.js +1 -1
  45. package/dist/node/runtime/index.js +1 -0
  46. package/dist/node/runtime/matchers.js +1 -0
  47. package/dist/node/runtime/progress-state.js +1 -0
  48. package/dist/node/runtime/snapshot.js +1 -0
  49. package/dist/runtime/index.d.ts +3 -0
  50. package/dist/runtime/index.js +2 -0
  51. package/dist/runtime/journey-runtime.test.d.ts +1 -0
  52. package/dist/runtime/matchers.d.ts +20 -0
  53. package/dist/runtime/matchers.js +2 -0
  54. package/dist/runtime/progress-state.d.ts +19 -0
  55. package/dist/runtime/progress-state.js +2 -0
  56. package/dist/runtime/snapshot.d.ts +8 -0
  57. package/dist/runtime/snapshot.js +2 -0
  58. package/dist/track-spec.d.ts +118 -87
  59. package/package.json +86 -30
  60. package/dist/browser/contracts/onboarding.js +0 -1
  61. package/dist/browser/entities/onboarding.js +0 -1
  62. package/dist/contracts/onboarding.js +0 -2
  63. package/dist/entities/onboarding.js +0 -2
  64. package/dist/node/contracts/onboarding.js +0 -1
  65. package/dist/node/entities/onboarding.js +0 -1
@@ -1,83 +1,4 @@
1
- export declare const OnboardingStepModel: import("@contractspec/lib.schema").SchemaModel<{
2
- id: {
3
- type: import("@contractspec/lib.schema").FieldType<string, string>;
4
- isOptional: false;
5
- };
6
- trackId: {
7
- type: import("@contractspec/lib.schema").FieldType<string, string>;
8
- isOptional: false;
9
- };
10
- title: {
11
- type: import("@contractspec/lib.schema").FieldType<string, string>;
12
- isOptional: false;
13
- };
14
- description: {
15
- type: import("@contractspec/lib.schema").FieldType<string, string>;
16
- isOptional: true;
17
- };
18
- instructions: {
19
- type: import("@contractspec/lib.schema").FieldType<string, string>;
20
- isOptional: true;
21
- };
22
- helpUrl: {
23
- type: import("@contractspec/lib.schema").FieldType<string, string>;
24
- isOptional: true;
25
- };
26
- order: {
27
- type: import("@contractspec/lib.schema").FieldType<number, number>;
28
- isOptional: false;
29
- };
30
- completionEvent: {
31
- type: import("@contractspec/lib.schema").FieldType<string, string>;
32
- isOptional: false;
33
- };
34
- completionCondition: {
35
- type: import("@contractspec/lib.schema").SchemaModel<{
36
- eventName: {
37
- type: import("@contractspec/lib.schema").FieldType<string, string>;
38
- isOptional: false;
39
- };
40
- eventVersion: {
41
- type: import("@contractspec/lib.schema").FieldType<string, string>;
42
- isOptional: true;
43
- };
44
- sourceModule: {
45
- type: import("@contractspec/lib.schema").FieldType<string, string>;
46
- isOptional: true;
47
- };
48
- payloadFilter: {
49
- type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
50
- isOptional: true;
51
- };
52
- }>;
53
- isOptional: true;
54
- };
55
- xpReward: {
56
- type: import("@contractspec/lib.schema").FieldType<number, number>;
57
- isOptional: true;
58
- };
59
- isRequired: {
60
- type: import("@contractspec/lib.schema").FieldType<boolean, boolean>;
61
- isOptional: true;
62
- };
63
- canSkip: {
64
- type: import("@contractspec/lib.schema").FieldType<boolean, boolean>;
65
- isOptional: true;
66
- };
67
- actionUrl: {
68
- type: import("@contractspec/lib.schema").FieldType<string, string>;
69
- isOptional: true;
70
- };
71
- actionLabel: {
72
- type: import("@contractspec/lib.schema").FieldType<string, string>;
73
- isOptional: true;
74
- };
75
- metadata: {
76
- type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
77
- isOptional: true;
78
- };
79
- }>;
80
- export declare const OnboardingTrackModel: import("@contractspec/lib.schema").SchemaModel<{
1
+ export declare const JourneyTrackModel: import("@contractspec/lib.schema").SchemaModel<{
81
2
  id: {
82
3
  type: import("@contractspec/lib.schema").FieldType<string, string>;
83
4
  isOptional: false;
@@ -102,6 +23,10 @@ export declare const OnboardingTrackModel: import("@contractspec/lib.schema").Sc
102
23
  type: import("@contractspec/lib.schema").FieldType<string, string>;
103
24
  isOptional: true;
104
25
  };
26
+ totalXp: {
27
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
28
+ isOptional: true;
29
+ };
105
30
  isActive: {
106
31
  type: import("@contractspec/lib.schema").FieldType<boolean, boolean>;
107
32
  isOptional: true;
@@ -114,24 +39,21 @@ export declare const OnboardingTrackModel: import("@contractspec/lib.schema").Sc
114
39
  type: import("@contractspec/lib.schema").FieldType<boolean, boolean>;
115
40
  isOptional: true;
116
41
  };
117
- totalXp: {
118
- type: import("@contractspec/lib.schema").FieldType<number, number>;
119
- isOptional: true;
120
- };
121
- completionXpBonus: {
122
- type: import("@contractspec/lib.schema").FieldType<number, number>;
123
- isOptional: true;
124
- };
125
- completionBadgeKey: {
126
- type: import("@contractspec/lib.schema").FieldType<string, string>;
127
- isOptional: true;
128
- };
129
- streakHoursWindow: {
130
- type: import("@contractspec/lib.schema").FieldType<number, number>;
42
+ streakRule: {
43
+ type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
131
44
  isOptional: true;
132
45
  };
133
- streakBonusXp: {
134
- type: import("@contractspec/lib.schema").FieldType<number, number>;
46
+ completionRewards: {
47
+ type: import("@contractspec/lib.schema").SchemaModel<{
48
+ badgeKey: {
49
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
50
+ isOptional: true;
51
+ };
52
+ xp: {
53
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
54
+ isOptional: true;
55
+ };
56
+ }>;
135
57
  isOptional: true;
136
58
  };
137
59
  metadata: {
@@ -144,10 +66,6 @@ export declare const OnboardingTrackModel: import("@contractspec/lib.schema").Sc
144
66
  type: import("@contractspec/lib.schema").FieldType<string, string>;
145
67
  isOptional: false;
146
68
  };
147
- trackId: {
148
- type: import("@contractspec/lib.schema").FieldType<string, string>;
149
- isOptional: false;
150
- };
151
69
  title: {
152
70
  type: import("@contractspec/lib.schema").FieldType<string, string>;
153
71
  isOptional: false;
@@ -166,20 +84,20 @@ export declare const OnboardingTrackModel: import("@contractspec/lib.schema").Sc
166
84
  };
167
85
  order: {
168
86
  type: import("@contractspec/lib.schema").FieldType<number, number>;
169
- isOptional: false;
170
- };
171
- completionEvent: {
172
- type: import("@contractspec/lib.schema").FieldType<string, string>;
173
- isOptional: false;
87
+ isOptional: true;
174
88
  };
175
- completionCondition: {
89
+ completion: {
176
90
  type: import("@contractspec/lib.schema").SchemaModel<{
91
+ kind: {
92
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
93
+ isOptional: true;
94
+ };
177
95
  eventName: {
178
96
  type: import("@contractspec/lib.schema").FieldType<string, string>;
179
97
  isOptional: false;
180
98
  };
181
99
  eventVersion: {
182
- type: import("@contractspec/lib.schema").FieldType<string, string>;
100
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
183
101
  isOptional: true;
184
102
  };
185
103
  sourceModule: {
@@ -190,6 +108,67 @@ export declare const OnboardingTrackModel: import("@contractspec/lib.schema").Sc
190
108
  type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
191
109
  isOptional: true;
192
110
  };
111
+ atLeast: {
112
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
113
+ isOptional: true;
114
+ };
115
+ withinHours: {
116
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
117
+ isOptional: true;
118
+ };
119
+ withinHoursOfStart: {
120
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
121
+ isOptional: true;
122
+ };
123
+ availableAfterHours: {
124
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
125
+ isOptional: true;
126
+ };
127
+ skillIdField: {
128
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
129
+ isOptional: true;
130
+ };
131
+ masteryField: {
132
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
133
+ isOptional: true;
134
+ };
135
+ minimumMastery: {
136
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
137
+ isOptional: true;
138
+ };
139
+ requiredCount: {
140
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
141
+ isOptional: true;
142
+ };
143
+ }>;
144
+ isOptional: false;
145
+ };
146
+ availability: {
147
+ type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
148
+ isOptional: true;
149
+ };
150
+ prerequisites: {
151
+ type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
152
+ isOptional: true;
153
+ };
154
+ prerequisiteMode: {
155
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
156
+ isOptional: true;
157
+ };
158
+ branches: {
159
+ type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
160
+ isOptional: true;
161
+ };
162
+ reward: {
163
+ type: import("@contractspec/lib.schema").SchemaModel<{
164
+ badgeKey: {
165
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
166
+ isOptional: true;
167
+ };
168
+ xp: {
169
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
170
+ isOptional: true;
171
+ };
193
172
  }>;
194
173
  isOptional: true;
195
174
  };
@@ -222,51 +201,50 @@ export declare const OnboardingTrackModel: import("@contractspec/lib.schema").Sc
222
201
  isOptional: false;
223
202
  };
224
203
  }>;
225
- export declare const OnboardingStepProgressModel: import("@contractspec/lib.schema").SchemaModel<{
226
- stepId: {
204
+ export declare const JourneyProgressModel: import("@contractspec/lib.schema").SchemaModel<{
205
+ learnerId: {
227
206
  type: import("@contractspec/lib.schema").FieldType<string, string>;
228
- isOptional: false;
207
+ isOptional: true;
229
208
  };
230
- status: {
209
+ trackId: {
231
210
  type: import("@contractspec/lib.schema").FieldType<string, string>;
232
211
  isOptional: false;
233
212
  };
234
- xpEarned: {
213
+ progressPercent: {
235
214
  type: import("@contractspec/lib.schema").FieldType<number, number>;
236
- isOptional: true;
237
- };
238
- triggeringEvent: {
239
- type: import("@contractspec/lib.schema").FieldType<string, string>;
240
- isOptional: true;
215
+ isOptional: false;
241
216
  };
242
- eventPayload: {
243
- type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
244
- isOptional: true;
217
+ isCompleted: {
218
+ type: import("@contractspec/lib.schema").FieldType<boolean, boolean>;
219
+ isOptional: false;
245
220
  };
246
- completedAt: {
247
- type: import("@contractspec/lib.schema").FieldType<Date, string>;
248
- isOptional: true;
221
+ xpEarned: {
222
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
223
+ isOptional: false;
249
224
  };
250
- }>;
251
- export declare const OnboardingProgressModel: import("@contractspec/lib.schema").SchemaModel<{
252
- learnerId: {
253
- type: import("@contractspec/lib.schema").FieldType<string, string>;
254
- isOptional: true;
225
+ streakDays: {
226
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
227
+ isOptional: false;
255
228
  };
256
- trackId: {
229
+ badges: {
257
230
  type: import("@contractspec/lib.schema").FieldType<string, string>;
231
+ isArray: true;
258
232
  isOptional: false;
259
233
  };
260
- progress: {
234
+ activeStepCount: {
261
235
  type: import("@contractspec/lib.schema").FieldType<number, number>;
262
236
  isOptional: false;
263
237
  };
264
- isCompleted: {
265
- type: import("@contractspec/lib.schema").FieldType<boolean, boolean>;
238
+ completedStepCount: {
239
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
266
240
  isOptional: false;
267
241
  };
268
- xpEarned: {
269
- type: import("@contractspec/lib.schema").FieldType<number, number>;
242
+ nextStepId: {
243
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
244
+ isOptional: true;
245
+ };
246
+ currentStepId: {
247
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
270
248
  isOptional: true;
271
249
  };
272
250
  startedAt: {
@@ -293,6 +271,34 @@ export declare const OnboardingProgressModel: import("@contractspec/lib.schema")
293
271
  };
294
272
  xpEarned: {
295
273
  type: import("@contractspec/lib.schema").FieldType<number, number>;
274
+ isOptional: false;
275
+ };
276
+ selectedBranchKey: {
277
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
278
+ isOptional: true;
279
+ };
280
+ availableAt: {
281
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
282
+ isOptional: true;
283
+ };
284
+ dueAt: {
285
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
286
+ isOptional: true;
287
+ };
288
+ completedAt: {
289
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
290
+ isOptional: true;
291
+ };
292
+ skippedAt: {
293
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
294
+ isOptional: true;
295
+ };
296
+ blockedAt: {
297
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
298
+ isOptional: true;
299
+ };
300
+ missedAt: {
301
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
296
302
  isOptional: true;
297
303
  };
298
304
  triggeringEvent: {
@@ -303,16 +309,20 @@ export declare const OnboardingProgressModel: import("@contractspec/lib.schema")
303
309
  type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
304
310
  isOptional: true;
305
311
  };
306
- completedAt: {
307
- type: import("@contractspec/lib.schema").FieldType<Date, string>;
312
+ occurrences: {
313
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
314
+ isOptional: true;
315
+ };
316
+ masteryCount: {
317
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
308
318
  isOptional: true;
309
319
  };
310
320
  }>;
311
321
  isArray: true;
312
- isOptional: true;
322
+ isOptional: false;
313
323
  };
314
324
  }>;
315
- export declare const ListOnboardingTracksContract: import("@contractspec/lib.contracts-spec").OperationSpec<import("@contractspec/lib.schema").SchemaModel<{
325
+ export declare const ListJourneyTracksContract: import("@contractspec/lib.contracts-spec").OperationSpec<import("@contractspec/lib.schema").SchemaModel<{
316
326
  learnerId: {
317
327
  type: import("@contractspec/lib.schema").FieldType<string, string>;
318
328
  isOptional: true;
@@ -357,6 +367,10 @@ export declare const ListOnboardingTracksContract: import("@contractspec/lib.con
357
367
  type: import("@contractspec/lib.schema").FieldType<string, string>;
358
368
  isOptional: true;
359
369
  };
370
+ totalXp: {
371
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
372
+ isOptional: true;
373
+ };
360
374
  isActive: {
361
375
  type: import("@contractspec/lib.schema").FieldType<boolean, boolean>;
362
376
  isOptional: true;
@@ -369,24 +383,21 @@ export declare const ListOnboardingTracksContract: import("@contractspec/lib.con
369
383
  type: import("@contractspec/lib.schema").FieldType<boolean, boolean>;
370
384
  isOptional: true;
371
385
  };
372
- totalXp: {
373
- type: import("@contractspec/lib.schema").FieldType<number, number>;
374
- isOptional: true;
375
- };
376
- completionXpBonus: {
377
- type: import("@contractspec/lib.schema").FieldType<number, number>;
378
- isOptional: true;
379
- };
380
- completionBadgeKey: {
381
- type: import("@contractspec/lib.schema").FieldType<string, string>;
382
- isOptional: true;
383
- };
384
- streakHoursWindow: {
385
- type: import("@contractspec/lib.schema").FieldType<number, number>;
386
+ streakRule: {
387
+ type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
386
388
  isOptional: true;
387
389
  };
388
- streakBonusXp: {
389
- type: import("@contractspec/lib.schema").FieldType<number, number>;
390
+ completionRewards: {
391
+ type: import("@contractspec/lib.schema").SchemaModel<{
392
+ badgeKey: {
393
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
394
+ isOptional: true;
395
+ };
396
+ xp: {
397
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
398
+ isOptional: true;
399
+ };
400
+ }>;
390
401
  isOptional: true;
391
402
  };
392
403
  metadata: {
@@ -399,10 +410,6 @@ export declare const ListOnboardingTracksContract: import("@contractspec/lib.con
399
410
  type: import("@contractspec/lib.schema").FieldType<string, string>;
400
411
  isOptional: false;
401
412
  };
402
- trackId: {
403
- type: import("@contractspec/lib.schema").FieldType<string, string>;
404
- isOptional: false;
405
- };
406
413
  title: {
407
414
  type: import("@contractspec/lib.schema").FieldType<string, string>;
408
415
  isOptional: false;
@@ -421,20 +428,20 @@ export declare const ListOnboardingTracksContract: import("@contractspec/lib.con
421
428
  };
422
429
  order: {
423
430
  type: import("@contractspec/lib.schema").FieldType<number, number>;
424
- isOptional: false;
425
- };
426
- completionEvent: {
427
- type: import("@contractspec/lib.schema").FieldType<string, string>;
428
- isOptional: false;
431
+ isOptional: true;
429
432
  };
430
- completionCondition: {
433
+ completion: {
431
434
  type: import("@contractspec/lib.schema").SchemaModel<{
435
+ kind: {
436
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
437
+ isOptional: true;
438
+ };
432
439
  eventName: {
433
440
  type: import("@contractspec/lib.schema").FieldType<string, string>;
434
441
  isOptional: false;
435
442
  };
436
443
  eventVersion: {
437
- type: import("@contractspec/lib.schema").FieldType<string, string>;
444
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
438
445
  isOptional: true;
439
446
  };
440
447
  sourceModule: {
@@ -445,6 +452,67 @@ export declare const ListOnboardingTracksContract: import("@contractspec/lib.con
445
452
  type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
446
453
  isOptional: true;
447
454
  };
455
+ atLeast: {
456
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
457
+ isOptional: true;
458
+ };
459
+ withinHours: {
460
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
461
+ isOptional: true;
462
+ };
463
+ withinHoursOfStart: {
464
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
465
+ isOptional: true;
466
+ };
467
+ availableAfterHours: {
468
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
469
+ isOptional: true;
470
+ };
471
+ skillIdField: {
472
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
473
+ isOptional: true;
474
+ };
475
+ masteryField: {
476
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
477
+ isOptional: true;
478
+ };
479
+ minimumMastery: {
480
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
481
+ isOptional: true;
482
+ };
483
+ requiredCount: {
484
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
485
+ isOptional: true;
486
+ };
487
+ }>;
488
+ isOptional: false;
489
+ };
490
+ availability: {
491
+ type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
492
+ isOptional: true;
493
+ };
494
+ prerequisites: {
495
+ type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
496
+ isOptional: true;
497
+ };
498
+ prerequisiteMode: {
499
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
500
+ isOptional: true;
501
+ };
502
+ branches: {
503
+ type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
504
+ isOptional: true;
505
+ };
506
+ reward: {
507
+ type: import("@contractspec/lib.schema").SchemaModel<{
508
+ badgeKey: {
509
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
510
+ isOptional: true;
511
+ };
512
+ xp: {
513
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
514
+ isOptional: true;
515
+ };
448
516
  }>;
449
517
  isOptional: true;
450
518
  };
@@ -490,7 +558,7 @@ export declare const ListOnboardingTracksContract: import("@contractspec/lib.con
490
558
  type: import("@contractspec/lib.schema").FieldType<string, string>;
491
559
  isOptional: false;
492
560
  };
493
- progress: {
561
+ progressPercent: {
494
562
  type: import("@contractspec/lib.schema").FieldType<number, number>;
495
563
  isOptional: false;
496
564
  };
@@ -500,6 +568,31 @@ export declare const ListOnboardingTracksContract: import("@contractspec/lib.con
500
568
  };
501
569
  xpEarned: {
502
570
  type: import("@contractspec/lib.schema").FieldType<number, number>;
571
+ isOptional: false;
572
+ };
573
+ streakDays: {
574
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
575
+ isOptional: false;
576
+ };
577
+ badges: {
578
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
579
+ isArray: true;
580
+ isOptional: false;
581
+ };
582
+ activeStepCount: {
583
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
584
+ isOptional: false;
585
+ };
586
+ completedStepCount: {
587
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
588
+ isOptional: false;
589
+ };
590
+ nextStepId: {
591
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
592
+ isOptional: true;
593
+ };
594
+ currentStepId: {
595
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
503
596
  isOptional: true;
504
597
  };
505
598
  startedAt: {
@@ -526,6 +619,34 @@ export declare const ListOnboardingTracksContract: import("@contractspec/lib.con
526
619
  };
527
620
  xpEarned: {
528
621
  type: import("@contractspec/lib.schema").FieldType<number, number>;
622
+ isOptional: false;
623
+ };
624
+ selectedBranchKey: {
625
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
626
+ isOptional: true;
627
+ };
628
+ availableAt: {
629
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
630
+ isOptional: true;
631
+ };
632
+ dueAt: {
633
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
634
+ isOptional: true;
635
+ };
636
+ completedAt: {
637
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
638
+ isOptional: true;
639
+ };
640
+ skippedAt: {
641
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
642
+ isOptional: true;
643
+ };
644
+ blockedAt: {
645
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
646
+ isOptional: true;
647
+ };
648
+ missedAt: {
649
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
529
650
  isOptional: true;
530
651
  };
531
652
  triggeringEvent: {
@@ -536,28 +657,32 @@ export declare const ListOnboardingTracksContract: import("@contractspec/lib.con
536
657
  type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
537
658
  isOptional: true;
538
659
  };
539
- completedAt: {
540
- type: import("@contractspec/lib.schema").FieldType<Date, string>;
660
+ occurrences: {
661
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
662
+ isOptional: true;
663
+ };
664
+ masteryCount: {
665
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
541
666
  isOptional: true;
542
667
  };
543
668
  }>;
544
669
  isArray: true;
545
- isOptional: true;
670
+ isOptional: false;
546
671
  };
547
672
  }>;
548
673
  isArray: true;
549
674
  isOptional: true;
550
675
  };
551
676
  }>, undefined>;
552
- export declare const GetOnboardingProgressContract: import("@contractspec/lib.contracts-spec").OperationSpec<import("@contractspec/lib.schema").SchemaModel<{
553
- trackId: {
554
- type: import("@contractspec/lib.schema").FieldType<string, string>;
555
- isOptional: false;
556
- };
677
+ export declare const GetJourneyProgressContract: import("@contractspec/lib.contracts-spec").OperationSpec<import("@contractspec/lib.schema").SchemaModel<{
557
678
  learnerId: {
558
679
  type: import("@contractspec/lib.schema").FieldType<string, string>;
559
680
  isOptional: true;
560
681
  };
682
+ trackId: {
683
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
684
+ isOptional: false;
685
+ };
561
686
  }>, import("@contractspec/lib.schema").SchemaModel<{
562
687
  learnerId: {
563
688
  type: import("@contractspec/lib.schema").FieldType<string, string>;
@@ -567,7 +692,7 @@ export declare const GetOnboardingProgressContract: import("@contractspec/lib.co
567
692
  type: import("@contractspec/lib.schema").FieldType<string, string>;
568
693
  isOptional: false;
569
694
  };
570
- progress: {
695
+ progressPercent: {
571
696
  type: import("@contractspec/lib.schema").FieldType<number, number>;
572
697
  isOptional: false;
573
698
  };
@@ -577,6 +702,31 @@ export declare const GetOnboardingProgressContract: import("@contractspec/lib.co
577
702
  };
578
703
  xpEarned: {
579
704
  type: import("@contractspec/lib.schema").FieldType<number, number>;
705
+ isOptional: false;
706
+ };
707
+ streakDays: {
708
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
709
+ isOptional: false;
710
+ };
711
+ badges: {
712
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
713
+ isArray: true;
714
+ isOptional: false;
715
+ };
716
+ activeStepCount: {
717
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
718
+ isOptional: false;
719
+ };
720
+ completedStepCount: {
721
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
722
+ isOptional: false;
723
+ };
724
+ nextStepId: {
725
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
726
+ isOptional: true;
727
+ };
728
+ currentStepId: {
729
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
580
730
  isOptional: true;
581
731
  };
582
732
  startedAt: {
@@ -603,6 +753,34 @@ export declare const GetOnboardingProgressContract: import("@contractspec/lib.co
603
753
  };
604
754
  xpEarned: {
605
755
  type: import("@contractspec/lib.schema").FieldType<number, number>;
756
+ isOptional: false;
757
+ };
758
+ selectedBranchKey: {
759
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
760
+ isOptional: true;
761
+ };
762
+ availableAt: {
763
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
764
+ isOptional: true;
765
+ };
766
+ dueAt: {
767
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
768
+ isOptional: true;
769
+ };
770
+ completedAt: {
771
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
772
+ isOptional: true;
773
+ };
774
+ skippedAt: {
775
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
776
+ isOptional: true;
777
+ };
778
+ blockedAt: {
779
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
780
+ isOptional: true;
781
+ };
782
+ missedAt: {
783
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
606
784
  isOptional: true;
607
785
  };
608
786
  triggeringEvent: {
@@ -613,16 +791,20 @@ export declare const GetOnboardingProgressContract: import("@contractspec/lib.co
613
791
  type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
614
792
  isOptional: true;
615
793
  };
616
- completedAt: {
617
- type: import("@contractspec/lib.schema").FieldType<Date, string>;
794
+ occurrences: {
795
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
796
+ isOptional: true;
797
+ };
798
+ masteryCount: {
799
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
618
800
  isOptional: true;
619
801
  };
620
802
  }>;
621
803
  isArray: true;
622
- isOptional: true;
804
+ isOptional: false;
623
805
  };
624
806
  }>, undefined>;
625
- export declare const RecordOnboardingEventContract: import("@contractspec/lib.contracts-spec").OperationSpec<import("@contractspec/lib.schema").SchemaModel<{
807
+ export declare const RecordJourneyEventContract: import("@contractspec/lib.contracts-spec").OperationSpec<import("@contractspec/lib.schema").SchemaModel<{
626
808
  learnerId: {
627
809
  type: import("@contractspec/lib.schema").FieldType<string, string>;
628
810
  isOptional: false;
@@ -636,6 +818,10 @@ export declare const RecordOnboardingEventContract: import("@contractspec/lib.co
636
818
  isOptional: false;
637
819
  };
638
820
  eventVersion: {
821
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
822
+ isOptional: true;
823
+ };
824
+ sourceModule: {
639
825
  type: import("@contractspec/lib.schema").FieldType<string, string>;
640
826
  isOptional: true;
641
827
  };
@@ -648,12 +834,123 @@ export declare const RecordOnboardingEventContract: import("@contractspec/lib.co
648
834
  isOptional: true;
649
835
  };
650
836
  }>, import("@contractspec/lib.schema").SchemaModel<{
651
- success: {
837
+ learnerId: {
838
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
839
+ isOptional: true;
840
+ };
841
+ trackId: {
842
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
843
+ isOptional: false;
844
+ };
845
+ progressPercent: {
846
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
847
+ isOptional: false;
848
+ };
849
+ isCompleted: {
652
850
  type: import("@contractspec/lib.schema").FieldType<boolean, boolean>;
653
851
  isOptional: false;
654
852
  };
655
853
  xpEarned: {
656
854
  type: import("@contractspec/lib.schema").FieldType<number, number>;
855
+ isOptional: false;
856
+ };
857
+ streakDays: {
858
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
859
+ isOptional: false;
860
+ };
861
+ badges: {
862
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
863
+ isArray: true;
864
+ isOptional: false;
865
+ };
866
+ activeStepCount: {
867
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
868
+ isOptional: false;
869
+ };
870
+ completedStepCount: {
871
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
872
+ isOptional: false;
873
+ };
874
+ nextStepId: {
875
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
876
+ isOptional: true;
877
+ };
878
+ currentStepId: {
879
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
880
+ isOptional: true;
881
+ };
882
+ startedAt: {
883
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
657
884
  isOptional: true;
658
885
  };
886
+ completedAt: {
887
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
888
+ isOptional: true;
889
+ };
890
+ lastActivityAt: {
891
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
892
+ isOptional: true;
893
+ };
894
+ steps: {
895
+ type: import("@contractspec/lib.schema").SchemaModel<{
896
+ stepId: {
897
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
898
+ isOptional: false;
899
+ };
900
+ status: {
901
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
902
+ isOptional: false;
903
+ };
904
+ xpEarned: {
905
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
906
+ isOptional: false;
907
+ };
908
+ selectedBranchKey: {
909
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
910
+ isOptional: true;
911
+ };
912
+ availableAt: {
913
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
914
+ isOptional: true;
915
+ };
916
+ dueAt: {
917
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
918
+ isOptional: true;
919
+ };
920
+ completedAt: {
921
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
922
+ isOptional: true;
923
+ };
924
+ skippedAt: {
925
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
926
+ isOptional: true;
927
+ };
928
+ blockedAt: {
929
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
930
+ isOptional: true;
931
+ };
932
+ missedAt: {
933
+ type: import("@contractspec/lib.schema").FieldType<Date, string>;
934
+ isOptional: true;
935
+ };
936
+ triggeringEvent: {
937
+ type: import("@contractspec/lib.schema").FieldType<string, string>;
938
+ isOptional: true;
939
+ };
940
+ eventPayload: {
941
+ type: import("@contractspec/lib.schema").FieldType<unknown, unknown>;
942
+ isOptional: true;
943
+ };
944
+ occurrences: {
945
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
946
+ isOptional: true;
947
+ };
948
+ masteryCount: {
949
+ type: import("@contractspec/lib.schema").FieldType<number, number>;
950
+ isOptional: true;
951
+ };
952
+ }>;
953
+ isArray: true;
954
+ isOptional: false;
955
+ };
659
956
  }>, undefined>;