@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.
- package/LICENSE +21 -0
- package/README.md +3 -0
- package/dist/contracts/models.d.ts +120 -119
- package/dist/contracts/models.d.ts.map +1 -0
- package/dist/contracts/models.js +87 -88
- package/dist/contracts/models.js.map +1 -0
- package/dist/contracts/onboarding.d.ts +169 -168
- package/dist/contracts/onboarding.d.ts.map +1 -0
- package/dist/contracts/onboarding.js +71 -72
- package/dist/contracts/onboarding.js.map +1 -0
- package/dist/contracts/operations.d.ts +72 -71
- package/dist/contracts/operations.d.ts.map +1 -0
- package/dist/contracts/operations.js +2 -1
- package/dist/contracts/operations.js.map +1 -0
- package/dist/contracts/shared.d.ts +2 -1
- package/dist/contracts/shared.d.ts.map +1 -0
- package/dist/contracts/shared.js +2 -1
- package/dist/contracts/shared.js.map +1 -0
- package/dist/docs/learning-journey.docblock.js +2 -1
- package/dist/docs/learning-journey.docblock.js.map +1 -0
- package/dist/engines/srs.d.ts +14 -13
- package/dist/engines/srs.d.ts.map +1 -0
- package/dist/engines/srs.js +30 -30
- package/dist/engines/srs.js.map +1 -0
- package/dist/engines/streak.d.ts +2 -1
- package/dist/engines/streak.d.ts.map +1 -0
- package/dist/engines/streak.js +2 -1
- package/dist/engines/streak.js.map +1 -0
- package/dist/engines/xp.d.ts +2 -1
- package/dist/engines/xp.d.ts.map +1 -0
- package/dist/engines/xp.js +2 -1
- package/dist/engines/xp.js.map +1 -0
- package/dist/entities/ai.d.ts +202 -201
- package/dist/entities/ai.d.ts.map +1 -0
- package/dist/entities/ai.js +114 -114
- package/dist/entities/ai.js.map +1 -0
- package/dist/entities/course.d.ts +152 -151
- package/dist/entities/course.d.ts.map +1 -0
- package/dist/entities/course.js +86 -86
- package/dist/entities/course.js.map +1 -0
- package/dist/entities/flashcard.d.ts +147 -146
- package/dist/entities/flashcard.d.ts.map +1 -0
- package/dist/entities/flashcard.js +85 -85
- package/dist/entities/flashcard.js.map +1 -0
- package/dist/entities/gamification.d.ts +200 -199
- package/dist/entities/gamification.d.ts.map +1 -0
- package/dist/entities/gamification.js +120 -120
- package/dist/entities/gamification.js.map +1 -0
- package/dist/entities/index.d.ts +607 -606
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +2 -1
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/learner.d.ts +194 -193
- package/dist/entities/learner.d.ts.map +1 -0
- package/dist/entities/learner.js +113 -113
- package/dist/entities/learner.js.map +1 -0
- package/dist/entities/onboarding.d.ts +167 -166
- package/dist/entities/onboarding.d.ts.map +1 -0
- package/dist/entities/onboarding.js +93 -93
- package/dist/entities/onboarding.js.map +1 -0
- package/dist/entities/quiz.d.ts +187 -186
- package/dist/entities/quiz.d.ts.map +1 -0
- package/dist/entities/quiz.js +109 -109
- package/dist/entities/quiz.js.map +1 -0
- package/dist/events.d.ts +215 -214
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +109 -110
- package/dist/events.js.map +1 -0
- package/dist/learning-journey.feature.d.ts +2 -1
- package/dist/learning-journey.feature.d.ts.map +1 -0
- package/dist/learning-journey.feature.js +2 -1
- package/dist/learning-journey.feature.js.map +1 -0
- package/dist/libs/contracts/dist/capabilities/openbanking.js +2 -1
- package/dist/libs/contracts/dist/capabilities/openbanking.js.map +1 -0
- package/dist/libs/contracts/dist/contract-registry/schemas.js +2 -1
- package/dist/libs/contracts/dist/contract-registry/schemas.js.map +1 -0
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/index.js +2 -6
- package/dist/libs/contracts/dist/docs/meta.docs.js +30 -0
- package/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -0
- package/dist/libs/contracts/dist/docs/presentations.js +2 -1
- package/dist/libs/contracts/dist/docs/presentations.js.map +1 -0
- package/dist/libs/contracts/dist/docs/registry.js +2 -1
- package/dist/libs/contracts/dist/docs/registry.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js +97 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
- package/dist/libs/contracts/dist/events.js +2 -1
- package/dist/libs/contracts/dist/events.js.map +1 -0
- package/dist/libs/contracts/dist/index.js +2 -1
- package/dist/libs/contracts/dist/integrations/contracts.js +65 -66
- package/dist/libs/contracts/dist/integrations/contracts.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +31 -32
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +18 -19
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +32 -33
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/models.js +60 -61
- package/dist/libs/contracts/dist/integrations/openbanking/models.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +2 -1
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/gmail.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/gmail.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/mistral.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/mistral.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/postmark.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/postmark.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/powens.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/powens.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/stripe.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/stripe.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/contracts.js +44 -45
- package/dist/libs/contracts/dist/knowledge/contracts.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
- package/dist/libs/contracts/dist/llm/exporters.js +2 -1
- package/dist/libs/contracts/dist/llm/exporters.js.map +1 -0
- package/dist/libs/contracts/dist/onboarding-base.js +22 -23
- package/dist/libs/contracts/dist/onboarding-base.js.map +1 -0
- package/dist/libs/contracts/dist/ownership.js +4 -2
- package/dist/libs/contracts/dist/ownership.js.map +1 -0
- package/dist/libs/contracts/dist/presentations.v2.js +2 -1
- package/dist/libs/contracts/dist/presentations.v2.js.map +1 -0
- package/dist/libs/contracts/dist/regenerator/service.js +2 -1
- package/dist/libs/contracts/dist/regenerator/service.js.map +1 -0
- package/dist/libs/contracts/dist/schema/dist/index.js +3873 -6
- package/dist/libs/contracts/dist/schema/dist/index.js.map +1 -0
- package/dist/libs/contracts/dist/spec.js +2 -1
- package/dist/libs/contracts/dist/spec.js.map +1 -0
- package/dist/libs/schema/dist/index.js +4889 -6
- package/dist/libs/schema/dist/index.js.map +1 -0
- package/dist/track-spec.d.ts +2 -1
- package/dist/track-spec.d.ts.map +1 -0
- package/package.json +13 -6
- package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
- package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
- package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
- package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -34
- package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
- package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
- package/dist/libs/schema/dist/EnumType.js +0 -2
- package/dist/libs/schema/dist/FieldType.js +0 -49
- package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/libs/schema/dist/SchemaModel.js +0 -39
- package/dist/libs/schema/dist/entity/defineEntity.js +0 -236
- package/dist/libs/schema/dist/entity/index.js +0 -2
- package/dist/libs/schema/dist/entity/types.js +0 -1
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
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 =
|
|
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 =
|
|
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:
|
|
29
|
-
productId:
|
|
30
|
-
name:
|
|
31
|
-
description:
|
|
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:
|
|
34
|
+
targetUserSegment: _5.string({
|
|
36
35
|
isOptional: true,
|
|
37
36
|
description: "Target user segment"
|
|
38
37
|
}),
|
|
39
|
-
targetRole:
|
|
38
|
+
targetRole: _5.string({
|
|
40
39
|
isOptional: true,
|
|
41
40
|
description: "Target user role"
|
|
42
41
|
}),
|
|
43
|
-
welcomeTitle:
|
|
42
|
+
welcomeTitle: _5.string({
|
|
44
43
|
isOptional: true,
|
|
45
44
|
description: "Welcome message title"
|
|
46
45
|
}),
|
|
47
|
-
welcomeMessage:
|
|
46
|
+
welcomeMessage: _5.string({
|
|
48
47
|
isOptional: true,
|
|
49
48
|
description: "Welcome message"
|
|
50
49
|
}),
|
|
51
|
-
completionTitle:
|
|
50
|
+
completionTitle: _5.string({
|
|
52
51
|
isOptional: true,
|
|
53
52
|
description: "Completion message title"
|
|
54
53
|
}),
|
|
55
|
-
completionMessage:
|
|
54
|
+
completionMessage: _5.string({
|
|
56
55
|
isOptional: true,
|
|
57
56
|
description: "Completion message"
|
|
58
57
|
}),
|
|
59
|
-
isActive:
|
|
58
|
+
isActive: _5.boolean({
|
|
60
59
|
default: true,
|
|
61
60
|
description: "Whether track is active"
|
|
62
61
|
}),
|
|
63
|
-
isRequired:
|
|
62
|
+
isRequired: _5.boolean({
|
|
64
63
|
default: false,
|
|
65
64
|
description: "Whether track is required"
|
|
66
65
|
}),
|
|
67
|
-
canSkip:
|
|
66
|
+
canSkip: _5.boolean({
|
|
68
67
|
default: true,
|
|
69
68
|
description: "Whether steps can be skipped"
|
|
70
69
|
}),
|
|
71
|
-
totalXp:
|
|
70
|
+
totalXp: _5.int({
|
|
72
71
|
default: 100,
|
|
73
72
|
description: "Total XP for completing track"
|
|
74
73
|
}),
|
|
75
|
-
completionXpBonus:
|
|
74
|
+
completionXpBonus: _5.int({
|
|
76
75
|
isOptional: true,
|
|
77
76
|
description: "Bonus XP for completing track"
|
|
78
77
|
}),
|
|
79
|
-
completionBadgeKey:
|
|
78
|
+
completionBadgeKey: _5.string({
|
|
80
79
|
isOptional: true,
|
|
81
80
|
description: "Badge awarded on completion"
|
|
82
81
|
}),
|
|
83
|
-
streakHoursWindow:
|
|
82
|
+
streakHoursWindow: _5.int({
|
|
84
83
|
isOptional: true,
|
|
85
84
|
description: "Hours window to finish for streak bonus"
|
|
86
85
|
}),
|
|
87
|
-
streakBonusXp:
|
|
86
|
+
streakBonusXp: _5.int({
|
|
88
87
|
isOptional: true,
|
|
89
88
|
description: "Bonus XP if completed within streak window"
|
|
90
89
|
}),
|
|
91
|
-
orgId:
|
|
90
|
+
orgId: _5.string({
|
|
92
91
|
isOptional: true,
|
|
93
92
|
description: "Organization scope"
|
|
94
93
|
}),
|
|
95
|
-
metadata:
|
|
94
|
+
metadata: _5.json({
|
|
96
95
|
isOptional: true,
|
|
97
96
|
description: "Additional metadata"
|
|
98
97
|
}),
|
|
99
|
-
createdAt:
|
|
100
|
-
updatedAt:
|
|
101
|
-
steps:
|
|
102
|
-
progress:
|
|
98
|
+
createdAt: _5.createdAt(),
|
|
99
|
+
updatedAt: _5.updatedAt(),
|
|
100
|
+
steps: _5.hasMany("OnboardingStep"),
|
|
101
|
+
progress: _5.hasMany("OnboardingProgress")
|
|
103
102
|
},
|
|
104
103
|
indexes: [
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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 =
|
|
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:
|
|
124
|
-
trackId:
|
|
125
|
-
title:
|
|
126
|
-
description:
|
|
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:
|
|
129
|
+
instructions: _5.string({
|
|
131
130
|
isOptional: true,
|
|
132
131
|
description: "How to complete the step"
|
|
133
132
|
}),
|
|
134
|
-
helpUrl:
|
|
133
|
+
helpUrl: _5.string({
|
|
135
134
|
isOptional: true,
|
|
136
135
|
description: "Link to help documentation"
|
|
137
136
|
}),
|
|
138
|
-
order:
|
|
137
|
+
order: _5.int({
|
|
139
138
|
default: 0,
|
|
140
139
|
description: "Display order"
|
|
141
140
|
}),
|
|
142
|
-
triggerEvent:
|
|
141
|
+
triggerEvent: _5.string({
|
|
143
142
|
isOptional: true,
|
|
144
143
|
description: "Event that triggers step start"
|
|
145
144
|
}),
|
|
146
|
-
completionEvent:
|
|
147
|
-
completionEventVersion:
|
|
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:
|
|
150
|
+
completionSourceModule: _5.string({
|
|
152
151
|
isOptional: true,
|
|
153
152
|
description: "Module emitting the completion event"
|
|
154
153
|
}),
|
|
155
|
-
completionEventFilter:
|
|
154
|
+
completionEventFilter: _5.json({
|
|
156
155
|
isOptional: true,
|
|
157
156
|
description: "Filter for completion event"
|
|
158
157
|
}),
|
|
159
|
-
actionUrl:
|
|
158
|
+
actionUrl: _5.string({
|
|
160
159
|
isOptional: true,
|
|
161
160
|
description: "URL to navigate to complete"
|
|
162
161
|
}),
|
|
163
|
-
actionLabel:
|
|
162
|
+
actionLabel: _5.string({
|
|
164
163
|
isOptional: true,
|
|
165
164
|
description: "Action button label"
|
|
166
165
|
}),
|
|
167
|
-
highlightSelector:
|
|
166
|
+
highlightSelector: _5.string({
|
|
168
167
|
isOptional: true,
|
|
169
168
|
description: "CSS selector to highlight"
|
|
170
169
|
}),
|
|
171
|
-
tooltipPosition:
|
|
170
|
+
tooltipPosition: _5.string({
|
|
172
171
|
isOptional: true,
|
|
173
172
|
description: "Tooltip position"
|
|
174
173
|
}),
|
|
175
|
-
xpReward:
|
|
174
|
+
xpReward: _5.int({
|
|
176
175
|
default: 10,
|
|
177
176
|
description: "XP for completing step"
|
|
178
177
|
}),
|
|
179
|
-
isRequired:
|
|
178
|
+
isRequired: _5.boolean({
|
|
180
179
|
default: true,
|
|
181
180
|
description: "Whether step is required"
|
|
182
181
|
}),
|
|
183
|
-
canSkip:
|
|
182
|
+
canSkip: _5.boolean({
|
|
184
183
|
default: true,
|
|
185
184
|
description: "Whether step can be skipped"
|
|
186
185
|
}),
|
|
187
|
-
metadata:
|
|
186
|
+
metadata: _5.json({
|
|
188
187
|
isOptional: true,
|
|
189
188
|
description: "Additional metadata"
|
|
190
189
|
}),
|
|
191
|
-
createdAt:
|
|
192
|
-
updatedAt:
|
|
193
|
-
track:
|
|
190
|
+
createdAt: _5.createdAt(),
|
|
191
|
+
updatedAt: _5.updatedAt(),
|
|
192
|
+
track: _5.belongsTo("OnboardingTrack", ["trackId"], ["id"], { onDelete: "Cascade" })
|
|
194
193
|
},
|
|
195
|
-
indexes: [
|
|
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 =
|
|
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:
|
|
207
|
-
learnerId:
|
|
208
|
-
trackId:
|
|
209
|
-
currentStepId:
|
|
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:
|
|
212
|
+
completedSteps: _5.json({
|
|
214
213
|
default: "[]",
|
|
215
214
|
description: "Array of completed step IDs"
|
|
216
215
|
}),
|
|
217
|
-
skippedSteps:
|
|
216
|
+
skippedSteps: _5.json({
|
|
218
217
|
default: "[]",
|
|
219
218
|
description: "Array of skipped step IDs"
|
|
220
219
|
}),
|
|
221
|
-
progress:
|
|
220
|
+
progress: _5.int({
|
|
222
221
|
default: 0,
|
|
223
222
|
description: "Completion percentage (0-100)"
|
|
224
223
|
}),
|
|
225
|
-
isCompleted:
|
|
224
|
+
isCompleted: _5.boolean({
|
|
226
225
|
default: false,
|
|
227
226
|
description: "Whether track is completed"
|
|
228
227
|
}),
|
|
229
|
-
xpEarned:
|
|
228
|
+
xpEarned: _5.int({
|
|
230
229
|
default: 0,
|
|
231
230
|
description: "XP earned from track"
|
|
232
231
|
}),
|
|
233
|
-
startedAt:
|
|
234
|
-
completedAt:
|
|
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:
|
|
237
|
+
lastActivityAt: _5.dateTime({
|
|
239
238
|
isOptional: true,
|
|
240
239
|
description: "Last activity"
|
|
241
240
|
}),
|
|
242
|
-
isDismissed:
|
|
241
|
+
isDismissed: _5.boolean({
|
|
243
242
|
default: false,
|
|
244
243
|
description: "Whether user dismissed onboarding"
|
|
245
244
|
}),
|
|
246
|
-
dismissedAt:
|
|
245
|
+
dismissedAt: _5.dateTime({
|
|
247
246
|
isOptional: true,
|
|
248
247
|
description: "When dismissed"
|
|
249
248
|
}),
|
|
250
|
-
metadata:
|
|
249
|
+
metadata: _5.json({
|
|
251
250
|
isOptional: true,
|
|
252
251
|
description: "Additional metadata"
|
|
253
252
|
}),
|
|
254
|
-
createdAt:
|
|
255
|
-
updatedAt:
|
|
256
|
-
learner:
|
|
257
|
-
track:
|
|
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
|
-
|
|
261
|
-
|
|
262
|
-
|
|
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 =
|
|
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:
|
|
276
|
-
progressId:
|
|
277
|
-
stepId:
|
|
278
|
-
status:
|
|
279
|
-
xpEarned:
|
|
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:
|
|
282
|
+
triggeringEvent: _5.string({
|
|
284
283
|
isOptional: true,
|
|
285
284
|
description: "Event that triggered completion"
|
|
286
285
|
}),
|
|
287
|
-
eventPayload:
|
|
286
|
+
eventPayload: _5.json({
|
|
288
287
|
isOptional: true,
|
|
289
288
|
description: "Event payload"
|
|
290
289
|
}),
|
|
291
|
-
completedAt:
|
|
292
|
-
createdAt:
|
|
293
|
-
progress:
|
|
294
|
-
step:
|
|
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: [
|
|
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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"}
|