@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/onboarding.ts
5
4
  /**
6
5
  * Onboarding step status enum.
7
6
  */
8
- const OnboardingStepStatusEnum = defineEntityEnum({
7
+ const OnboardingStepStatusEnum = Z5({
9
8
  name: "OnboardingStepStatus",
10
9
  values: [
11
10
  "PENDING",
@@ -19,92 +18,92 @@ const OnboardingStepStatusEnum = defineEntityEnum({
19
18
  /**
20
19
  * OnboardingTrack entity - defines an onboarding journey.
21
20
  */
22
- const OnboardingTrackEntity = defineEntity({
21
+ const OnboardingTrackEntity = L5({
23
22
  name: "OnboardingTrack",
24
23
  description: "An onboarding track for a product.",
25
24
  schema: "lssm_learning",
26
25
  map: "onboarding_track",
27
26
  fields: {
28
- id: field.id({ description: "Unique track identifier" }),
29
- productId: field.string({ description: "Product this track is for" }),
30
- name: field.string({ description: "Track name" }),
31
- description: field.string({
27
+ id: _5.id({ description: "Unique track identifier" }),
28
+ productId: _5.string({ description: "Product this track is for" }),
29
+ name: _5.string({ description: "Track name" }),
30
+ description: _5.string({
32
31
  isOptional: true,
33
32
  description: "Track description"
34
33
  }),
35
- targetUserSegment: field.string({
34
+ targetUserSegment: _5.string({
36
35
  isOptional: true,
37
36
  description: "Target user segment"
38
37
  }),
39
- targetRole: field.string({
38
+ targetRole: _5.string({
40
39
  isOptional: true,
41
40
  description: "Target user role"
42
41
  }),
43
- welcomeTitle: field.string({
42
+ welcomeTitle: _5.string({
44
43
  isOptional: true,
45
44
  description: "Welcome message title"
46
45
  }),
47
- welcomeMessage: field.string({
46
+ welcomeMessage: _5.string({
48
47
  isOptional: true,
49
48
  description: "Welcome message"
50
49
  }),
51
- completionTitle: field.string({
50
+ completionTitle: _5.string({
52
51
  isOptional: true,
53
52
  description: "Completion message title"
54
53
  }),
55
- completionMessage: field.string({
54
+ completionMessage: _5.string({
56
55
  isOptional: true,
57
56
  description: "Completion message"
58
57
  }),
59
- isActive: field.boolean({
58
+ isActive: _5.boolean({
60
59
  default: true,
61
60
  description: "Whether track is active"
62
61
  }),
63
- isRequired: field.boolean({
62
+ isRequired: _5.boolean({
64
63
  default: false,
65
64
  description: "Whether track is required"
66
65
  }),
67
- canSkip: field.boolean({
66
+ canSkip: _5.boolean({
68
67
  default: true,
69
68
  description: "Whether steps can be skipped"
70
69
  }),
71
- totalXp: field.int({
70
+ totalXp: _5.int({
72
71
  default: 100,
73
72
  description: "Total XP for completing track"
74
73
  }),
75
- completionXpBonus: field.int({
74
+ completionXpBonus: _5.int({
76
75
  isOptional: true,
77
76
  description: "Bonus XP for completing track"
78
77
  }),
79
- completionBadgeKey: field.string({
78
+ completionBadgeKey: _5.string({
80
79
  isOptional: true,
81
80
  description: "Badge awarded on completion"
82
81
  }),
83
- streakHoursWindow: field.int({
82
+ streakHoursWindow: _5.int({
84
83
  isOptional: true,
85
84
  description: "Hours window to finish for streak bonus"
86
85
  }),
87
- streakBonusXp: field.int({
86
+ streakBonusXp: _5.int({
88
87
  isOptional: true,
89
88
  description: "Bonus XP if completed within streak window"
90
89
  }),
91
- orgId: field.string({
90
+ orgId: _5.string({
92
91
  isOptional: true,
93
92
  description: "Organization scope"
94
93
  }),
95
- metadata: field.json({
94
+ metadata: _5.json({
96
95
  isOptional: true,
97
96
  description: "Additional metadata"
98
97
  }),
99
- createdAt: field.createdAt(),
100
- updatedAt: field.updatedAt(),
101
- steps: field.hasMany("OnboardingStep"),
102
- progress: field.hasMany("OnboardingProgress")
98
+ createdAt: _5.createdAt(),
99
+ updatedAt: _5.updatedAt(),
100
+ steps: _5.hasMany("OnboardingStep"),
101
+ progress: _5.hasMany("OnboardingProgress")
103
102
  },
104
103
  indexes: [
105
- index.on(["productId", "isActive"]),
106
- index.on(["orgId"]),
107
- index.unique([
104
+ b5.on(["productId", "isActive"]),
105
+ b5.on(["orgId"]),
106
+ b5.unique([
108
107
  "productId",
109
108
  "targetUserSegment",
110
109
  "targetRole"
@@ -114,186 +113,186 @@ const OnboardingTrackEntity = defineEntity({
114
113
  /**
115
114
  * OnboardingStep entity - a step in an onboarding track.
116
115
  */
117
- const OnboardingStepEntity = defineEntity({
116
+ const OnboardingStepEntity = L5({
118
117
  name: "OnboardingStep",
119
118
  description: "A step in an onboarding track.",
120
119
  schema: "lssm_learning",
121
120
  map: "onboarding_step",
122
121
  fields: {
123
- id: field.id({ description: "Unique step identifier" }),
124
- trackId: field.foreignKey({ description: "Parent track" }),
125
- title: field.string({ description: "Step title" }),
126
- description: field.string({
122
+ id: _5.id({ description: "Unique step identifier" }),
123
+ trackId: _5.foreignKey({ description: "Parent track" }),
124
+ title: _5.string({ description: "Step title" }),
125
+ description: _5.string({
127
126
  isOptional: true,
128
127
  description: "Step description"
129
128
  }),
130
- instructions: field.string({
129
+ instructions: _5.string({
131
130
  isOptional: true,
132
131
  description: "How to complete the step"
133
132
  }),
134
- helpUrl: field.string({
133
+ helpUrl: _5.string({
135
134
  isOptional: true,
136
135
  description: "Link to help documentation"
137
136
  }),
138
- order: field.int({
137
+ order: _5.int({
139
138
  default: 0,
140
139
  description: "Display order"
141
140
  }),
142
- triggerEvent: field.string({
141
+ triggerEvent: _5.string({
143
142
  isOptional: true,
144
143
  description: "Event that triggers step start"
145
144
  }),
146
- completionEvent: field.string({ description: "Event that completes the step" }),
147
- completionEventVersion: field.int({
145
+ completionEvent: _5.string({ description: "Event that completes the step" }),
146
+ completionEventVersion: _5.int({
148
147
  isOptional: true,
149
148
  description: "Version of the completion event"
150
149
  }),
151
- completionSourceModule: field.string({
150
+ completionSourceModule: _5.string({
152
151
  isOptional: true,
153
152
  description: "Module emitting the completion event"
154
153
  }),
155
- completionEventFilter: field.json({
154
+ completionEventFilter: _5.json({
156
155
  isOptional: true,
157
156
  description: "Filter for completion event"
158
157
  }),
159
- actionUrl: field.string({
158
+ actionUrl: _5.string({
160
159
  isOptional: true,
161
160
  description: "URL to navigate to complete"
162
161
  }),
163
- actionLabel: field.string({
162
+ actionLabel: _5.string({
164
163
  isOptional: true,
165
164
  description: "Action button label"
166
165
  }),
167
- highlightSelector: field.string({
166
+ highlightSelector: _5.string({
168
167
  isOptional: true,
169
168
  description: "CSS selector to highlight"
170
169
  }),
171
- tooltipPosition: field.string({
170
+ tooltipPosition: _5.string({
172
171
  isOptional: true,
173
172
  description: "Tooltip position"
174
173
  }),
175
- xpReward: field.int({
174
+ xpReward: _5.int({
176
175
  default: 10,
177
176
  description: "XP for completing step"
178
177
  }),
179
- isRequired: field.boolean({
178
+ isRequired: _5.boolean({
180
179
  default: true,
181
180
  description: "Whether step is required"
182
181
  }),
183
- canSkip: field.boolean({
182
+ canSkip: _5.boolean({
184
183
  default: true,
185
184
  description: "Whether step can be skipped"
186
185
  }),
187
- metadata: field.json({
186
+ metadata: _5.json({
188
187
  isOptional: true,
189
188
  description: "Additional metadata"
190
189
  }),
191
- createdAt: field.createdAt(),
192
- updatedAt: field.updatedAt(),
193
- track: field.belongsTo("OnboardingTrack", ["trackId"], ["id"], { onDelete: "Cascade" })
190
+ createdAt: _5.createdAt(),
191
+ updatedAt: _5.updatedAt(),
192
+ track: _5.belongsTo("OnboardingTrack", ["trackId"], ["id"], { onDelete: "Cascade" })
194
193
  },
195
- indexes: [index.on(["trackId", "order"]), index.on(["completionEvent"])]
194
+ indexes: [b5.on(["trackId", "order"]), b5.on(["completionEvent"])]
196
195
  });
197
196
  /**
198
197
  * OnboardingProgress entity - tracks user progress through onboarding.
199
198
  */
200
- const OnboardingProgressEntity = defineEntity({
199
+ const OnboardingProgressEntity = L5({
201
200
  name: "OnboardingProgress",
202
201
  description: "Tracks user progress through an onboarding track.",
203
202
  schema: "lssm_learning",
204
203
  map: "onboarding_progress",
205
204
  fields: {
206
- id: field.id({ description: "Unique progress identifier" }),
207
- learnerId: field.foreignKey({ description: "Learner" }),
208
- trackId: field.foreignKey({ description: "Onboarding track" }),
209
- currentStepId: field.string({
205
+ id: _5.id({ description: "Unique progress identifier" }),
206
+ learnerId: _5.foreignKey({ description: "Learner" }),
207
+ trackId: _5.foreignKey({ description: "Onboarding track" }),
208
+ currentStepId: _5.string({
210
209
  isOptional: true,
211
210
  description: "Current step ID"
212
211
  }),
213
- completedSteps: field.json({
212
+ completedSteps: _5.json({
214
213
  default: "[]",
215
214
  description: "Array of completed step IDs"
216
215
  }),
217
- skippedSteps: field.json({
216
+ skippedSteps: _5.json({
218
217
  default: "[]",
219
218
  description: "Array of skipped step IDs"
220
219
  }),
221
- progress: field.int({
220
+ progress: _5.int({
222
221
  default: 0,
223
222
  description: "Completion percentage (0-100)"
224
223
  }),
225
- isCompleted: field.boolean({
224
+ isCompleted: _5.boolean({
226
225
  default: false,
227
226
  description: "Whether track is completed"
228
227
  }),
229
- xpEarned: field.int({
228
+ xpEarned: _5.int({
230
229
  default: 0,
231
230
  description: "XP earned from track"
232
231
  }),
233
- startedAt: field.dateTime({ description: "When user started" }),
234
- completedAt: field.dateTime({
232
+ startedAt: _5.dateTime({ description: "When user started" }),
233
+ completedAt: _5.dateTime({
235
234
  isOptional: true,
236
235
  description: "When user completed"
237
236
  }),
238
- lastActivityAt: field.dateTime({
237
+ lastActivityAt: _5.dateTime({
239
238
  isOptional: true,
240
239
  description: "Last activity"
241
240
  }),
242
- isDismissed: field.boolean({
241
+ isDismissed: _5.boolean({
243
242
  default: false,
244
243
  description: "Whether user dismissed onboarding"
245
244
  }),
246
- dismissedAt: field.dateTime({
245
+ dismissedAt: _5.dateTime({
247
246
  isOptional: true,
248
247
  description: "When dismissed"
249
248
  }),
250
- metadata: field.json({
249
+ metadata: _5.json({
251
250
  isOptional: true,
252
251
  description: "Additional metadata"
253
252
  }),
254
- createdAt: field.createdAt(),
255
- updatedAt: field.updatedAt(),
256
- learner: field.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" }),
257
- track: field.belongsTo("OnboardingTrack", ["trackId"], ["id"], { onDelete: "Cascade" })
253
+ createdAt: _5.createdAt(),
254
+ updatedAt: _5.updatedAt(),
255
+ learner: _5.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" }),
256
+ track: _5.belongsTo("OnboardingTrack", ["trackId"], ["id"], { onDelete: "Cascade" })
258
257
  },
259
258
  indexes: [
260
- index.unique(["learnerId", "trackId"], { name: "onboarding_progress_unique" }),
261
- index.on(["learnerId", "isCompleted"]),
262
- index.on(["trackId"])
259
+ b5.unique(["learnerId", "trackId"], { name: "onboarding_progress_unique" }),
260
+ b5.on(["learnerId", "isCompleted"]),
261
+ b5.on(["trackId"])
263
262
  ],
264
263
  enums: [OnboardingStepStatusEnum]
265
264
  });
266
265
  /**
267
266
  * OnboardingStepCompletion entity - individual step completions.
268
267
  */
269
- const OnboardingStepCompletionEntity = defineEntity({
268
+ const OnboardingStepCompletionEntity = L5({
270
269
  name: "OnboardingStepCompletion",
271
270
  description: "Individual step completion record.",
272
271
  schema: "lssm_learning",
273
272
  map: "onboarding_step_completion",
274
273
  fields: {
275
- id: field.id({ description: "Unique completion identifier" }),
276
- progressId: field.foreignKey({ description: "Parent progress record" }),
277
- stepId: field.foreignKey({ description: "Completed step" }),
278
- status: field.enum("OnboardingStepStatus", { description: "Completion status" }),
279
- xpEarned: field.int({
274
+ id: _5.id({ description: "Unique completion identifier" }),
275
+ progressId: _5.foreignKey({ description: "Parent progress record" }),
276
+ stepId: _5.foreignKey({ description: "Completed step" }),
277
+ status: _5.enum("OnboardingStepStatus", { description: "Completion status" }),
278
+ xpEarned: _5.int({
280
279
  default: 0,
281
280
  description: "XP earned"
282
281
  }),
283
- triggeringEvent: field.string({
282
+ triggeringEvent: _5.string({
284
283
  isOptional: true,
285
284
  description: "Event that triggered completion"
286
285
  }),
287
- eventPayload: field.json({
286
+ eventPayload: _5.json({
288
287
  isOptional: true,
289
288
  description: "Event payload"
290
289
  }),
291
- completedAt: field.dateTime({ description: "When completed" }),
292
- createdAt: field.createdAt(),
293
- progress: field.belongsTo("OnboardingProgress", ["progressId"], ["id"], { onDelete: "Cascade" }),
294
- step: field.belongsTo("OnboardingStep", ["stepId"], ["id"], { onDelete: "Cascade" })
290
+ completedAt: _5.dateTime({ description: "When completed" }),
291
+ createdAt: _5.createdAt(),
292
+ progress: _5.belongsTo("OnboardingProgress", ["progressId"], ["id"], { onDelete: "Cascade" }),
293
+ step: _5.belongsTo("OnboardingStep", ["stepId"], ["id"], { onDelete: "Cascade" })
295
294
  },
296
- indexes: [index.unique(["progressId", "stepId"], { name: "step_completion_unique" }), index.on(["completedAt"])]
295
+ indexes: [b5.unique(["progressId", "stepId"], { name: "step_completion_unique" }), b5.on(["completedAt"])]
297
296
  });
298
297
  const onboardingEntities = [
299
298
  OnboardingTrackEntity,
@@ -304,4 +303,5 @@ const onboardingEntities = [
304
303
  const onboardingEnums = [OnboardingStepStatusEnum];
305
304
 
306
305
  //#endregion
307
- export { OnboardingProgressEntity, OnboardingStepCompletionEntity, OnboardingStepEntity, OnboardingStepStatusEnum, OnboardingTrackEntity, onboardingEntities, onboardingEnums };
306
+ export { OnboardingProgressEntity, OnboardingStepCompletionEntity, OnboardingStepEntity, OnboardingStepStatusEnum, OnboardingTrackEntity, onboardingEntities, onboardingEnums };
307
+ //# sourceMappingURL=onboarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding.js","names":["defineEntityEnum","defineEntity","field","index"],"sources":["../../src/entities/onboarding.ts"],"sourcesContent":["import { defineEntity, defineEntityEnum, field, index } from '@lssm/lib.schema';\n\n/**\n * Onboarding step status enum.\n */\nexport const OnboardingStepStatusEnum = defineEntityEnum({\n name: 'OnboardingStepStatus',\n values: ['PENDING', 'IN_PROGRESS', 'COMPLETED', 'SKIPPED'] as const,\n schema: 'lssm_learning',\n description: 'Status of an onboarding step.',\n});\n\n/**\n * OnboardingTrack entity - defines an onboarding journey.\n */\nexport const OnboardingTrackEntity = defineEntity({\n name: 'OnboardingTrack',\n description: 'An onboarding track for a product.',\n schema: 'lssm_learning',\n map: 'onboarding_track',\n fields: {\n id: field.id({ description: 'Unique track identifier' }),\n\n // Basic info\n productId: field.string({ description: 'Product this track is for' }),\n name: field.string({ description: 'Track name' }),\n description: field.string({\n isOptional: true,\n description: 'Track description',\n }),\n\n // Targeting\n targetUserSegment: field.string({\n isOptional: true,\n description: 'Target user segment',\n }),\n targetRole: field.string({\n isOptional: true,\n description: 'Target user role',\n }),\n\n // Display\n welcomeTitle: field.string({\n isOptional: true,\n description: 'Welcome message title',\n }),\n welcomeMessage: field.string({\n isOptional: true,\n description: 'Welcome message',\n }),\n completionTitle: field.string({\n isOptional: true,\n description: 'Completion message title',\n }),\n completionMessage: field.string({\n isOptional: true,\n description: 'Completion message',\n }),\n\n // Settings\n isActive: field.boolean({\n default: true,\n description: 'Whether track is active',\n }),\n isRequired: field.boolean({\n default: false,\n description: 'Whether track is required',\n }),\n canSkip: field.boolean({\n default: true,\n description: 'Whether steps can be skipped',\n }),\n\n // XP\n totalXp: field.int({\n default: 100,\n description: 'Total XP for completing track',\n }),\n completionXpBonus: field.int({\n isOptional: true,\n description: 'Bonus XP for completing track',\n }),\n completionBadgeKey: field.string({\n isOptional: true,\n description: 'Badge awarded on completion',\n }),\n\n // Streak/tempo rules\n streakHoursWindow: field.int({\n isOptional: true,\n description: 'Hours window to finish for streak bonus',\n }),\n streakBonusXp: field.int({\n isOptional: true,\n description: 'Bonus XP if completed within streak window',\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 steps: field.hasMany('OnboardingStep'),\n progress: field.hasMany('OnboardingProgress'),\n },\n indexes: [\n index.on(['productId', 'isActive']),\n index.on(['orgId']),\n index.unique(['productId', 'targetUserSegment', 'targetRole'], {\n name: 'onboarding_track_target',\n }),\n ],\n});\n\n/**\n * OnboardingStep entity - a step in an onboarding track.\n */\nexport const OnboardingStepEntity = defineEntity({\n name: 'OnboardingStep',\n description: 'A step in an onboarding track.',\n schema: 'lssm_learning',\n map: 'onboarding_step',\n fields: {\n id: field.id({ description: 'Unique step identifier' }),\n trackId: field.foreignKey({ description: 'Parent track' }),\n\n // Basic info\n title: field.string({ description: 'Step title' }),\n description: field.string({\n isOptional: true,\n description: 'Step description',\n }),\n\n // Instructions\n instructions: field.string({\n isOptional: true,\n description: 'How to complete the step',\n }),\n helpUrl: field.string({\n isOptional: true,\n description: 'Link to help documentation',\n }),\n\n // Ordering\n order: field.int({ default: 0, description: 'Display order' }),\n\n // Event-driven completion\n triggerEvent: field.string({\n isOptional: true,\n description: 'Event that triggers step start',\n }),\n completionEvent: field.string({\n description: 'Event that completes the step',\n }),\n completionEventVersion: field.int({\n isOptional: true,\n description: 'Version of the completion event',\n }),\n completionSourceModule: field.string({\n isOptional: true,\n description: 'Module emitting the completion event',\n }),\n completionEventFilter: field.json({\n isOptional: true,\n description: 'Filter for completion event',\n }),\n\n // Alternative completion\n actionUrl: field.string({\n isOptional: true,\n description: 'URL to navigate to complete',\n }),\n actionLabel: field.string({\n isOptional: true,\n description: 'Action button label',\n }),\n\n // UI hints\n highlightSelector: field.string({\n isOptional: true,\n description: 'CSS selector to highlight',\n }),\n tooltipPosition: field.string({\n isOptional: true,\n description: 'Tooltip position',\n }),\n\n // XP\n xpReward: field.int({ default: 10, description: 'XP for completing step' }),\n\n // Settings\n isRequired: field.boolean({\n default: true,\n description: 'Whether step is required',\n }),\n canSkip: field.boolean({\n default: true,\n description: 'Whether step can be skipped',\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 track: field.belongsTo('OnboardingTrack', ['trackId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [index.on(['trackId', 'order']), index.on(['completionEvent'])],\n});\n\n/**\n * OnboardingProgress entity - tracks user progress through onboarding.\n */\nexport const OnboardingProgressEntity = defineEntity({\n name: 'OnboardingProgress',\n description: 'Tracks user progress through an onboarding track.',\n schema: 'lssm_learning',\n map: 'onboarding_progress',\n fields: {\n id: field.id({ description: 'Unique progress identifier' }),\n learnerId: field.foreignKey({ description: 'Learner' }),\n trackId: field.foreignKey({ description: 'Onboarding track' }),\n\n // Progress\n currentStepId: field.string({\n isOptional: true,\n description: 'Current step ID',\n }),\n completedSteps: field.json({\n default: '[]',\n description: 'Array of completed step IDs',\n }),\n skippedSteps: field.json({\n default: '[]',\n description: 'Array of skipped step IDs',\n }),\n\n // Status\n progress: field.int({\n default: 0,\n description: 'Completion percentage (0-100)',\n }),\n isCompleted: field.boolean({\n default: false,\n description: 'Whether track is completed',\n }),\n\n // XP\n xpEarned: field.int({ default: 0, description: 'XP earned from track' }),\n\n // Timeline\n startedAt: field.dateTime({ description: 'When user started' }),\n completedAt: field.dateTime({\n isOptional: true,\n description: 'When user completed',\n }),\n lastActivityAt: field.dateTime({\n isOptional: true,\n description: 'Last activity',\n }),\n\n // Dismissal\n isDismissed: field.boolean({\n default: false,\n description: 'Whether user dismissed onboarding',\n }),\n dismissedAt: field.dateTime({\n isOptional: true,\n description: 'When dismissed',\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 track: field.belongsTo('OnboardingTrack', ['trackId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [\n index.unique(['learnerId', 'trackId'], {\n name: 'onboarding_progress_unique',\n }),\n index.on(['learnerId', 'isCompleted']),\n index.on(['trackId']),\n ],\n enums: [OnboardingStepStatusEnum],\n});\n\n/**\n * OnboardingStepCompletion entity - individual step completions.\n */\nexport const OnboardingStepCompletionEntity = defineEntity({\n name: 'OnboardingStepCompletion',\n description: 'Individual step completion record.',\n schema: 'lssm_learning',\n map: 'onboarding_step_completion',\n fields: {\n id: field.id({ description: 'Unique completion identifier' }),\n progressId: field.foreignKey({ description: 'Parent progress record' }),\n stepId: field.foreignKey({ description: 'Completed step' }),\n\n // Status\n status: field.enum('OnboardingStepStatus', {\n description: 'Completion status',\n }),\n\n // XP\n xpEarned: field.int({ default: 0, description: 'XP earned' }),\n\n // Event that triggered completion\n triggeringEvent: field.string({\n isOptional: true,\n description: 'Event that triggered completion',\n }),\n eventPayload: field.json({\n isOptional: true,\n description: 'Event payload',\n }),\n\n // Timestamps\n completedAt: field.dateTime({ description: 'When completed' }),\n createdAt: field.createdAt(),\n\n // Relations\n progress: field.belongsTo('OnboardingProgress', ['progressId'], ['id'], {\n onDelete: 'Cascade',\n }),\n step: field.belongsTo('OnboardingStep', ['stepId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [\n index.unique(['progressId', 'stepId'], { name: 'step_completion_unique' }),\n index.on(['completedAt']),\n ],\n});\n\nexport const onboardingEntities = [\n OnboardingTrackEntity,\n OnboardingStepEntity,\n OnboardingProgressEntity,\n OnboardingStepCompletionEntity,\n];\n\nexport const onboardingEnums = [OnboardingStepStatusEnum];\n"],"mappings":"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"}