@lssm/example.learning-journey-crm-onboarding 0.0.0-canary-20251217080011 → 1.41.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 (144) hide show
  1. package/.turbo/turbo-build.log +20 -22
  2. package/dist/contracts/index.js +1 -178
  3. package/dist/docs/crm-onboarding.docblock.js +1 -42
  4. package/dist/docs/index.js +1 -1
  5. package/dist/example.js +1 -34
  6. package/dist/handlers/demo.handlers.js +1 -25
  7. package/dist/index.js +1 -9
  8. package/dist/learning-journey-crm-onboarding.feature.js +1 -66
  9. package/dist/presentations/index.js +1 -49
  10. package/dist/track.js +1 -98
  11. package/package.json +16 -18
  12. package/tsconfig.tsbuildinfo +1 -1
  13. package/.turbo/turbo-build$colon$bundle.log +0 -220
  14. package/CHANGELOG.md +0 -15
  15. package/dist/contracts/index.d.ts +0 -270
  16. package/dist/docs/crm-onboarding.docblock.d.ts +0 -1
  17. package/dist/docs/index.d.ts +0 -1
  18. package/dist/example.d.ts +0 -32
  19. package/dist/handlers/demo.handlers.d.ts +0 -24
  20. package/dist/index.d.ts +0 -7
  21. package/dist/learning-journey-crm-onboarding.feature.d.ts +0 -11
  22. package/dist/libs/contracts/dist/capabilities/openbanking.js +0 -88
  23. package/dist/libs/contracts/dist/client/index.js +0 -5
  24. package/dist/libs/contracts/dist/client/react/feature-render.js +0 -2
  25. package/dist/libs/contracts/dist/client/react/form-render.js +0 -4
  26. package/dist/libs/contracts/dist/client/react/index.js +0 -4
  27. package/dist/libs/contracts/dist/contract-registry/index.js +0 -1
  28. package/dist/libs/contracts/dist/contract-registry/schemas.js +0 -60
  29. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  30. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +0 -16
  31. package/dist/libs/contracts/dist/docs/index.js +0 -29
  32. package/dist/libs/contracts/dist/docs/presentations.js +0 -71
  33. package/dist/libs/contracts/dist/docs/registry.js +0 -44
  34. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  35. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  36. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  37. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  38. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
  39. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +0 -80
  40. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +0 -57
  41. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +0 -16
  42. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +0 -357
  43. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +0 -37
  44. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +0 -16
  45. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +0 -20
  46. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +0 -48
  47. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +0 -79
  48. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +0 -84
  49. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +0 -45
  50. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +0 -67
  51. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +0 -40
  52. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +0 -69
  53. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +0 -47
  54. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +0 -62
  55. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +0 -155
  56. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +0 -20
  57. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +0 -101
  58. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +0 -20
  59. package/dist/libs/contracts/dist/events.js +0 -1
  60. package/dist/libs/contracts/dist/experiments/evaluator.js +0 -1
  61. package/dist/libs/contracts/dist/index.js +0 -71
  62. package/dist/libs/contracts/dist/install.js +0 -2
  63. package/dist/libs/contracts/dist/integrations/contracts.js +0 -377
  64. package/dist/libs/contracts/dist/integrations/index.js +0 -18
  65. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +0 -228
  66. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +0 -159
  67. package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +0 -3
  68. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +0 -210
  69. package/dist/libs/contracts/dist/integrations/openbanking/models.js +0 -242
  70. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +0 -13
  71. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +0 -52
  72. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +0 -75
  73. package/dist/libs/contracts/dist/integrations/providers/gmail.js +0 -87
  74. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +0 -66
  75. package/dist/libs/contracts/dist/integrations/providers/index.js +0 -11
  76. package/dist/libs/contracts/dist/integrations/providers/mistral.js +0 -68
  77. package/dist/libs/contracts/dist/integrations/providers/postmark.js +0 -68
  78. package/dist/libs/contracts/dist/integrations/providers/powens.js +0 -116
  79. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +0 -73
  80. package/dist/libs/contracts/dist/integrations/providers/registry.js +0 -10
  81. package/dist/libs/contracts/dist/integrations/providers/stripe.js +0 -83
  82. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +0 -61
  83. package/dist/libs/contracts/dist/jsonschema.js +0 -1
  84. package/dist/libs/contracts/dist/knowledge/contracts.js +0 -306
  85. package/dist/libs/contracts/dist/knowledge/index.js +0 -7
  86. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +0 -34
  87. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +0 -34
  88. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +0 -38
  89. package/dist/libs/contracts/dist/knowledge/spaces/index.js +0 -6
  90. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +0 -34
  91. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +0 -37
  92. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +0 -34
  93. package/dist/libs/contracts/dist/llm/exporters.js +0 -19
  94. package/dist/libs/contracts/dist/llm/index.js +0 -2
  95. package/dist/libs/contracts/dist/llm/prompts.js +0 -1
  96. package/dist/libs/contracts/dist/onboarding-base.js +0 -196
  97. package/dist/libs/contracts/dist/openapi.js +0 -1
  98. package/dist/libs/contracts/dist/ownership.js +0 -21
  99. package/dist/libs/contracts/dist/presentations.js +0 -1
  100. package/dist/libs/contracts/dist/presentations.v2.js +0 -11
  101. package/dist/libs/contracts/dist/prompt.js +0 -1
  102. package/dist/libs/contracts/dist/promptRegistry.js +0 -1
  103. package/dist/libs/contracts/dist/regenerator/index.js +0 -1
  104. package/dist/libs/contracts/dist/regenerator/service.js +0 -6
  105. package/dist/libs/contracts/dist/registry.js +0 -2
  106. package/dist/libs/contracts/dist/resources.js +0 -1
  107. package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
  108. package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
  109. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
  110. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -34
  111. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
  112. package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
  113. package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
  114. package/dist/libs/contracts/dist/schema/dist/index.js +0 -6
  115. package/dist/libs/contracts/dist/server/graphql-pothos.js +0 -6
  116. package/dist/libs/contracts/dist/server/index.js +0 -8
  117. package/dist/libs/contracts/dist/server/mcp/createMcpServer.js +0 -4
  118. package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +0 -2
  119. package/dist/libs/contracts/dist/server/mcp/registerPrompts.js +0 -1
  120. package/dist/libs/contracts/dist/server/mcp/registerResources.js +0 -2
  121. package/dist/libs/contracts/dist/server/mcp/registerTools.js +0 -1
  122. package/dist/libs/contracts/dist/server/provider-mcp.js +0 -1
  123. package/dist/libs/contracts/dist/server/rest-elysia.js +0 -1
  124. package/dist/libs/contracts/dist/server/rest-express.js +0 -1
  125. package/dist/libs/contracts/dist/server/rest-generic.js +0 -1
  126. package/dist/libs/contracts/dist/server/rest-next-app.js +0 -1
  127. package/dist/libs/contracts/dist/server/rest-next-pages.js +0 -1
  128. package/dist/libs/contracts/dist/spec.js +0 -34
  129. package/dist/libs/contracts/dist/telemetry/index.js +0 -1
  130. package/dist/libs/contracts/dist/telemetry/tracker.js +0 -1
  131. package/dist/libs/contracts/dist/tests/index.js +0 -1
  132. package/dist/libs/contracts/dist/tests/runner.js +0 -2
  133. package/dist/libs/contracts/dist/workflow/index.js +0 -1
  134. package/dist/libs/contracts/dist/workflow/runner.js +0 -1
  135. package/dist/libs/schema/dist/EnumType.js +0 -2
  136. package/dist/libs/schema/dist/FieldType.js +0 -49
  137. package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
  138. package/dist/libs/schema/dist/SchemaModel.js +0 -39
  139. package/dist/libs/schema/dist/entity/defineEntity.js +0 -1
  140. package/dist/libs/schema/dist/entity/index.js +0 -2
  141. package/dist/libs/schema/dist/entity/types.js +0 -1
  142. package/dist/libs/schema/dist/index.js +0 -6
  143. package/dist/presentations/index.d.ts +0 -8
  144. package/dist/track.d.ts +0 -7
@@ -1,22 +1,20 @@
1
-
2
- $ bun build:bundle && bun build:types
3
- $ tsdown
4
- ℹ tsdown v0.17.4 powered by rolldown v1.0.0-beta.53
5
- ℹ config file: /Users/tboutron/Documents/clients/lssm/monorepo-lssm/packages/contractspec/packages/examples/learning-journey-crm-onboarding/tsdown.config.js (unrun)
6
- ℹ entry: src/example.ts, src/index.ts, src/learning-journey-crm-onboarding.feature.ts, src/track.ts, src/docs/crm-onboarding.docblock.ts, src/docs/index.ts, src/handlers/demo.handlers.ts, src/presentations/index.ts, src/contracts/index.ts
7
- ℹ target: esnext
8
- ℹ tsconfig: tsconfig.json
9
- ℹ Build start
10
- ℹ Cleaning 13 files
11
- ℹ dist/contracts/index.js 2.79 kB │ gzip: 0.92 kB
12
- ℹ dist/track.js 1.94 kB │ gzip: 0.69 kB
13
- ℹ dist/docs/crm-onboarding.docblock.js 1.27 kB │ gzip: 0.67 kB
14
- ℹ dist/index.js 1.05 kB │ gzip: 0.35 kB
15
- ℹ dist/learning-journey-crm-onboarding.feature.js 1.01 kB │ gzip: 0.41 kB
16
- ℹ dist/presentations/index.js 0.77 kB │ gzip: 0.37 kB
17
- ℹ dist/example.js 0.55 kB │ gzip: 0.35 kB
18
- ℹ dist/handlers/demo.handlers.js 0.41 kB │ gzip: 0.26 kB
19
- ℹ dist/docs/index.js 0.04 kB │ gzip: 0.06 kB
20
- ℹ 9 files, total: 9.82 kB
21
- ✔ Build complete in 114ms
22
- $ tsc --noEmit
1
+ $ bun build:bundle && bun build:types
2
+ $ tsdown
3
+ ℹ tsdown v0.17.4 powered by rolldown v1.0.0-beta.53
4
+ ℹ config file: /home/runner/work/contractspec/contractspec/packages/examples/learning-journey-crm-onboarding/tsdown.config.js
5
+ ℹ entry: src/example.ts, src/index.ts, src/learning-journey-crm-onboarding.feature.ts, src/track.ts, src/contracts/index.ts, src/docs/crm-onboarding.docblock.ts, src/docs/index.ts, src/handlers/demo.handlers.ts, src/presentations/index.ts
6
+ ℹ target: esnext
7
+ ℹ tsconfig: tsconfig.json
8
+ ℹ Build start
9
+ ℹ dist/contracts/index.js 2.79 kB │ gzip: 0.92 kB
10
+ ℹ dist/track.js 1.94 kB │ gzip: 0.69 kB
11
+ ℹ dist/docs/crm-onboarding.docblock.js 1.27 kB │ gzip: 0.67 kB
12
+ ℹ dist/index.js 1.05 kB │ gzip: 0.35 kB
13
+ ℹ dist/learning-journey-crm-onboarding.feature.js 1.01 kB │ gzip: 0.41 kB
14
+ ℹ dist/presentations/index.js 0.77 kB │ gzip: 0.37 kB
15
+ ℹ dist/example.js 0.55 kB │ gzip: 0.35 kB
16
+ ℹ dist/handlers/demo.handlers.js 0.41 kB │ gzip: 0.26 kB
17
+ ℹ dist/docs/index.js 0.04 kB │ gzip: 0.06 kB
18
+ ℹ 9 files, total: 9.82 kB
19
+ ✔ Build complete in 58ms
20
+ $ tsc --noEmit
@@ -1,178 +1 @@
1
- import { crmFirstWinTrack } from "../track.js";
2
- import { ScalarTypeEnum } from "../libs/schema/dist/ScalarTypeEnum.js";
3
- import { defineSchemaModel } from "../libs/schema/dist/SchemaModel.js";
4
- import "../libs/schema/dist/index.js";
5
- import { defineCommand, defineQuery } from "../libs/contracts/dist/spec.js";
6
- import "../libs/contracts/dist/index.js";
7
-
8
- //#region src/contracts/index.ts
9
- const OWNERS = ["examples.learning-journey.crm-onboarding"];
10
- const StepModel = defineSchemaModel({
11
- name: "CrmOnboardingStep",
12
- description: "Step metadata for CRM first win journey",
13
- fields: {
14
- id: {
15
- type: ScalarTypeEnum.String_unsecure(),
16
- isOptional: false
17
- },
18
- title: {
19
- type: ScalarTypeEnum.String_unsecure(),
20
- isOptional: false
21
- },
22
- description: {
23
- type: ScalarTypeEnum.String_unsecure(),
24
- isOptional: true
25
- },
26
- completionEvent: {
27
- type: ScalarTypeEnum.String_unsecure(),
28
- isOptional: false
29
- },
30
- sourceModule: {
31
- type: ScalarTypeEnum.String_unsecure(),
32
- isOptional: true
33
- },
34
- xpReward: {
35
- type: ScalarTypeEnum.Int_unsecure(),
36
- isOptional: true
37
- },
38
- order: {
39
- type: ScalarTypeEnum.Int_unsecure(),
40
- isOptional: true
41
- }
42
- }
43
- });
44
- const CrmOnboardingTrackModel = defineSchemaModel({
45
- name: "CrmOnboardingTrack",
46
- description: "CRM onboarding track definition",
47
- fields: {
48
- id: {
49
- type: ScalarTypeEnum.String_unsecure(),
50
- isOptional: false
51
- },
52
- name: {
53
- type: ScalarTypeEnum.String_unsecure(),
54
- isOptional: false
55
- },
56
- description: {
57
- type: ScalarTypeEnum.String_unsecure(),
58
- isOptional: true
59
- },
60
- totalXp: {
61
- type: ScalarTypeEnum.Int_unsecure(),
62
- isOptional: true
63
- },
64
- completionXpBonus: {
65
- type: ScalarTypeEnum.Int_unsecure(),
66
- isOptional: true
67
- },
68
- completionBadgeKey: {
69
- type: ScalarTypeEnum.String_unsecure(),
70
- isOptional: true
71
- },
72
- streakHoursWindow: {
73
- type: ScalarTypeEnum.Int_unsecure(),
74
- isOptional: true
75
- },
76
- streakBonusXp: {
77
- type: ScalarTypeEnum.Int_unsecure(),
78
- isOptional: true
79
- },
80
- steps: {
81
- type: StepModel,
82
- isArray: true,
83
- isOptional: false
84
- }
85
- }
86
- });
87
- const TrackResponseModel = defineSchemaModel({
88
- name: "CrmOnboardingTrackResponse",
89
- description: "Response wrapper for CRM onboarding track",
90
- fields: { track: {
91
- type: CrmOnboardingTrackModel,
92
- isOptional: false
93
- } }
94
- });
95
- const RecordDemoEventInput = defineSchemaModel({
96
- name: "CrmOnboardingRecordEventInput",
97
- description: "Emit a demo event to advance CRM onboarding steps",
98
- fields: {
99
- learnerId: {
100
- type: ScalarTypeEnum.String_unsecure(),
101
- isOptional: false
102
- },
103
- eventName: {
104
- type: ScalarTypeEnum.String_unsecure(),
105
- isOptional: false
106
- },
107
- payload: {
108
- type: ScalarTypeEnum.JSON(),
109
- isOptional: true
110
- },
111
- occurredAt: {
112
- type: ScalarTypeEnum.DateTime(),
113
- isOptional: true
114
- }
115
- }
116
- });
117
- const SuccessModel = defineSchemaModel({
118
- name: "CrmOnboardingSuccess",
119
- description: "Generic success response",
120
- fields: { success: {
121
- type: ScalarTypeEnum.Boolean(),
122
- isOptional: false
123
- } }
124
- });
125
- const GetCrmOnboardingTrack = defineQuery({
126
- meta: {
127
- name: "learningJourney.crmOnboarding.getTrack",
128
- version: 1,
129
- stability: "experimental",
130
- owners: [...OWNERS],
131
- tags: [
132
- "learning",
133
- "crm",
134
- "onboarding"
135
- ],
136
- description: "Fetch CRM first win track definition.",
137
- goal: "Expose track metadata to UIs and templates.",
138
- context: "Called by Studio/Playground to render journey steps."
139
- },
140
- io: {
141
- input: defineSchemaModel({
142
- name: "CrmOnboardingTrackInput",
143
- description: "Track input",
144
- fields: {}
145
- }),
146
- output: TrackResponseModel
147
- },
148
- policy: { auth: "user" }
149
- });
150
- const RecordCrmOnboardingEvent = defineCommand({
151
- meta: {
152
- name: "learningJourney.crmOnboarding.recordEvent",
153
- version: 1,
154
- stability: "experimental",
155
- owners: [...OWNERS],
156
- tags: [
157
- "learning",
158
- "crm",
159
- "onboarding"
160
- ],
161
- description: "Record an event to advance CRM onboarding progress.",
162
- goal: "Advance steps via domain events in demo/sandbox contexts.",
163
- context: "Called by handlers or demo scripts to emit step completion events."
164
- },
165
- io: {
166
- input: RecordDemoEventInput,
167
- output: SuccessModel
168
- },
169
- policy: { auth: "user" }
170
- });
171
- const crmOnboardingContracts = {
172
- GetCrmOnboardingTrack,
173
- RecordCrmOnboardingEvent,
174
- track: crmFirstWinTrack
175
- };
176
-
177
- //#endregion
178
- export { CrmOnboardingTrackModel, GetCrmOnboardingTrack, RecordCrmOnboardingEvent, crmOnboardingContracts };
1
+ import{crmFirstWinTrack as e}from"../track.js";import{ScalarTypeEnum as t,defineSchemaModel as n}from"@lssm/lib.schema";import{defineCommand as r,defineQuery as i}from"@lssm/lib.contracts";const a=[`examples.learning-journey.crm-onboarding`],o=n({name:`CrmOnboardingStep`,description:`Step metadata for CRM first win journey`,fields:{id:{type:t.String_unsecure(),isOptional:!1},title:{type:t.String_unsecure(),isOptional:!1},description:{type:t.String_unsecure(),isOptional:!0},completionEvent:{type:t.String_unsecure(),isOptional:!1},sourceModule:{type:t.String_unsecure(),isOptional:!0},xpReward:{type:t.Int_unsecure(),isOptional:!0},order:{type:t.Int_unsecure(),isOptional:!0}}}),s=n({name:`CrmOnboardingTrack`,description:`CRM onboarding track definition`,fields:{id:{type:t.String_unsecure(),isOptional:!1},name:{type:t.String_unsecure(),isOptional:!1},description:{type:t.String_unsecure(),isOptional:!0},totalXp:{type:t.Int_unsecure(),isOptional:!0},completionXpBonus:{type:t.Int_unsecure(),isOptional:!0},completionBadgeKey:{type:t.String_unsecure(),isOptional:!0},streakHoursWindow:{type:t.Int_unsecure(),isOptional:!0},streakBonusXp:{type:t.Int_unsecure(),isOptional:!0},steps:{type:o,isArray:!0,isOptional:!1}}}),c=n({name:`CrmOnboardingTrackResponse`,description:`Response wrapper for CRM onboarding track`,fields:{track:{type:s,isOptional:!1}}}),l=n({name:`CrmOnboardingRecordEventInput`,description:`Emit a demo event to advance CRM onboarding steps`,fields:{learnerId:{type:t.String_unsecure(),isOptional:!1},eventName:{type:t.String_unsecure(),isOptional:!1},payload:{type:t.JSON(),isOptional:!0},occurredAt:{type:t.DateTime(),isOptional:!0}}}),u=n({name:`CrmOnboardingSuccess`,description:`Generic success response`,fields:{success:{type:t.Boolean(),isOptional:!1}}}),d=i({meta:{name:`learningJourney.crmOnboarding.getTrack`,version:1,stability:`experimental`,owners:[...a],tags:[`learning`,`crm`,`onboarding`],description:`Fetch CRM first win track definition.`,goal:`Expose track metadata to UIs and templates.`,context:`Called by Studio/Playground to render journey steps.`},io:{input:n({name:`CrmOnboardingTrackInput`,description:`Track input`,fields:{}}),output:c},policy:{auth:`user`}}),f=r({meta:{name:`learningJourney.crmOnboarding.recordEvent`,version:1,stability:`experimental`,owners:[...a],tags:[`learning`,`crm`,`onboarding`],description:`Record an event to advance CRM onboarding progress.`,goal:`Advance steps via domain events in demo/sandbox contexts.`,context:`Called by handlers or demo scripts to emit step completion events.`},io:{input:l,output:u},policy:{auth:`user`}}),p={GetCrmOnboardingTrack:d,RecordCrmOnboardingEvent:f,track:e};export{s as CrmOnboardingTrackModel,d as GetCrmOnboardingTrack,f as RecordCrmOnboardingEvent,p as crmOnboardingContracts};
@@ -1,42 +1 @@
1
- import { registerDocBlocks } from "../libs/contracts/dist/docs/registry.js";
2
- import "../libs/contracts/dist/docs/index.js";
3
-
4
- //#region src/docs/crm-onboarding.docblock.ts
5
- registerDocBlocks([{
6
- id: "docs.learning-journey.crm-onboarding",
7
- title: "Learning Journey — CRM First Win",
8
- summary: "Onboarding track for the CRM Pipeline example that drives users to first closed-won deal.",
9
- kind: "reference",
10
- visibility: "public",
11
- route: "/docs/learning-journey/crm-onboarding",
12
- tags: [
13
- "learning",
14
- "crm",
15
- "onboarding"
16
- ],
17
- body: `## Track
18
- - **Key**: \`crm_first_win\`
19
- - **Persona**: CRM adopter
20
- - **Goal**: From empty CRM to first closed-won deal with follow-up
21
-
22
- ## Steps & Events
23
- 1) \`create_pipeline\` → \`pipeline.created\`
24
- 2) \`create_contact_and_company\` → \`contact.created\`
25
- 3) \`create_first_deal\` → \`deal.created\`
26
- 4) \`move_deal_in_pipeline\` → \`deal.moved\`
27
- 5) \`close_deal_won\` → \`deal.won\`
28
- 6) \`setup_follow_up\` → \`task.completed\` (type: follow_up)
29
-
30
- XP: 15/20/20/20/30/30 with 25 bonus within 72h. Badge: \`crm_first_win\`.
31
-
32
- ## Wiring
33
- - Depends on \`@lssm/example.crm-pipeline\` events.
34
- - Tracks export from \`@lssm/example.learning-journey-crm-onboarding/track\`.
35
- - Use onboarding API:
36
- - \`learning.onboarding.listTracks\`
37
- - \`learning.onboarding.getProgress\`
38
- - \`learning.onboarding.recordEvent\` wired from CRM event bus handlers.
39
- - Surface in CRM dashboard/pipeline UI to guide new users.`
40
- }]);
41
-
42
- //#endregion
1
+ import{registerDocBlocks as e}from"@lssm/lib.contracts/docs";e([{id:`docs.learning-journey.crm-onboarding`,title:`Learning Journey — CRM First Win`,summary:`Onboarding track for the CRM Pipeline example that drives users to first closed-won deal.`,kind:`reference`,visibility:`public`,route:`/docs/learning-journey/crm-onboarding`,tags:[`learning`,`crm`,`onboarding`],body:"## Track\n- **Key**: `crm_first_win`\n- **Persona**: CRM adopter\n- **Goal**: From empty CRM to first closed-won deal with follow-up\n\n## Steps & Events\n1) `create_pipeline` → `pipeline.created`\n2) `create_contact_and_company` → `contact.created`\n3) `create_first_deal` → `deal.created`\n4) `move_deal_in_pipeline` → `deal.moved`\n5) `close_deal_won` → `deal.won`\n6) `setup_follow_up` → `task.completed` (type: follow_up)\n\nXP: 15/20/20/20/30/30 with 25 bonus within 72h. Badge: `crm_first_win`.\n\n## Wiring\n- Depends on `@lssm/example.crm-pipeline` events.\n- Tracks export from `@lssm/example.learning-journey-crm-onboarding/track`.\n- Use onboarding API:\n - `learning.onboarding.listTracks`\n - `learning.onboarding.getProgress`\n - `learning.onboarding.recordEvent` wired from CRM event bus handlers.\n- Surface in CRM dashboard/pipeline UI to guide new users."}]);
@@ -1 +1 @@
1
- import "./crm-onboarding.docblock.js";
1
+ import"./crm-onboarding.docblock.js";
package/dist/example.js CHANGED
@@ -1,34 +1 @@
1
- //#region src/example.ts
2
- const example = {
3
- id: "learning-journey-crm-onboarding",
4
- title: "Learning Journey — CRM First Win",
5
- summary: "Onboarding track for CRM Pipeline driving users from empty CRM to first closed-won deal.",
6
- tags: [
7
- "learning",
8
- "crm",
9
- "onboarding"
10
- ],
11
- kind: "template",
12
- visibility: "public",
13
- docs: { rootDocId: "docs.learning-journey.crm-onboarding" },
14
- entrypoints: {
15
- packageName: "@lssm/example.learning-journey-crm-onboarding",
16
- docs: "./docs"
17
- },
18
- surfaces: {
19
- templates: true,
20
- sandbox: {
21
- enabled: true,
22
- modes: ["playground", "markdown"]
23
- },
24
- studio: {
25
- enabled: true,
26
- installable: true
27
- },
28
- mcp: { enabled: true }
29
- }
30
- };
31
- var example_default = example;
32
-
33
- //#endregion
34
- export { example_default as default };
1
+ var e={id:`learning-journey-crm-onboarding`,title:`Learning Journey — CRM First Win`,summary:`Onboarding track for CRM Pipeline driving users from empty CRM to first closed-won deal.`,tags:[`learning`,`crm`,`onboarding`],kind:`template`,visibility:`public`,docs:{rootDocId:`docs.learning-journey.crm-onboarding`},entrypoints:{packageName:`@lssm/example.learning-journey-crm-onboarding`,docs:`./docs`},surfaces:{templates:!0,sandbox:{enabled:!0,modes:[`playground`,`markdown`]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}};export{e as default};
@@ -1,25 +1 @@
1
- import { crmFirstWinTrack } from "../track.js";
2
-
3
- //#region src/handlers/demo.handlers.ts
4
- const crmOnboardingEvents = [
5
- "pipeline.created",
6
- "contact.created",
7
- "deal.created",
8
- "deal.moved",
9
- "deal.won",
10
- "task.completed"
11
- ];
12
- const emitCrmOnboardingEvent = (eventName, { learnerId, occurredAt = /* @__PURE__ */ new Date(), payload }, record) => {
13
- const event = {
14
- learnerId,
15
- name: eventName,
16
- occurredAt,
17
- payload,
18
- trackId: crmFirstWinTrack.id
19
- };
20
- return record ? record(event) : event;
21
- };
22
- const emitAllCrmOnboardingEvents = (params, record) => crmOnboardingEvents.map((name) => emitCrmOnboardingEvent(name, params, record));
23
-
24
- //#endregion
25
- export { crmOnboardingEvents, emitAllCrmOnboardingEvents, emitCrmOnboardingEvent };
1
+ import{crmFirstWinTrack as e}from"../track.js";const t=[`pipeline.created`,`contact.created`,`deal.created`,`deal.moved`,`deal.won`,`task.completed`],n=(t,{learnerId:n,occurredAt:r=new Date,payload:i},a)=>{let o={learnerId:n,name:t,occurredAt:r,payload:i,trackId:e.id};return a?a(o):o},r=(e,r)=>t.map(t=>n(t,e,r));export{t as crmOnboardingEvents,r as emitAllCrmOnboardingEvents,n as emitCrmOnboardingEvent};
package/dist/index.js CHANGED
@@ -1,9 +1 @@
1
- import example_default from "./example.js";
2
- import { crmFirstWinTrack, crmLearningTracks } from "./track.js";
3
- import "./docs/index.js";
4
- import { CrmOnboardingTrackModel, GetCrmOnboardingTrack, RecordCrmOnboardingEvent, crmOnboardingContracts } from "./contracts/index.js";
5
- import { crmOnboardingEvents, emitAllCrmOnboardingEvents, emitCrmOnboardingEvent } from "./handlers/demo.handlers.js";
6
- import { CrmOnboardingTrackPresentation, CrmOnboardingWidgetPresentation, crmOnboardingPresentations } from "./presentations/index.js";
7
- import { LearningJourneyCrmOnboardingFeature } from "./learning-journey-crm-onboarding.feature.js";
8
-
9
- export { CrmOnboardingTrackModel, CrmOnboardingTrackPresentation, CrmOnboardingWidgetPresentation, GetCrmOnboardingTrack, LearningJourneyCrmOnboardingFeature, RecordCrmOnboardingEvent, crmFirstWinTrack, crmLearningTracks, crmOnboardingContracts, crmOnboardingEvents, crmOnboardingPresentations, emitAllCrmOnboardingEvents, emitCrmOnboardingEvent, example_default as example };
1
+ import e from"./example.js";import{crmFirstWinTrack as t,crmLearningTracks as n}from"./track.js";import"./docs/index.js";import{CrmOnboardingTrackModel as r,GetCrmOnboardingTrack as i,RecordCrmOnboardingEvent as a,crmOnboardingContracts as o}from"./contracts/index.js";import{crmOnboardingEvents as s,emitAllCrmOnboardingEvents as c,emitCrmOnboardingEvent as l}from"./handlers/demo.handlers.js";import{CrmOnboardingTrackPresentation as u,CrmOnboardingWidgetPresentation as d,crmOnboardingPresentations as f}from"./presentations/index.js";import{LearningJourneyCrmOnboardingFeature as p}from"./learning-journey-crm-onboarding.feature.js";export{r as CrmOnboardingTrackModel,u as CrmOnboardingTrackPresentation,d as CrmOnboardingWidgetPresentation,i as GetCrmOnboardingTrack,p as LearningJourneyCrmOnboardingFeature,a as RecordCrmOnboardingEvent,t as crmFirstWinTrack,n as crmLearningTracks,o as crmOnboardingContracts,s as crmOnboardingEvents,f as crmOnboardingPresentations,c as emitAllCrmOnboardingEvents,l as emitCrmOnboardingEvent,e as example};
@@ -1,66 +1 @@
1
- //#region src/learning-journey-crm-onboarding.feature.ts
2
- /**
3
- * Learning Journey CRM Onboarding feature module that bundles
4
- * CRM-specific onboarding track operations and presentations.
5
- */
6
- const LearningJourneyCrmOnboardingFeature = {
7
- meta: {
8
- key: "learning-journey-crm-onboarding",
9
- title: "Learning Journey: CRM Onboarding",
10
- description: "CRM first-win onboarding journey with step-by-step guidance for new CRM users",
11
- domain: "learning-journey",
12
- owners: ["@examples.learning-journey.crm-onboarding"],
13
- tags: [
14
- "learning",
15
- "crm",
16
- "onboarding",
17
- "journey"
18
- ],
19
- stability: "experimental"
20
- },
21
- operations: [{
22
- name: "learningJourney.crmOnboarding.recordEvent",
23
- version: 1
24
- }, {
25
- name: "learningJourney.crmOnboarding.getTrack",
26
- version: 1
27
- }],
28
- events: [],
29
- presentations: [{
30
- name: "learning.journey.crm.track",
31
- version: 1
32
- }, {
33
- name: "learning.journey.crm.widget",
34
- version: 1
35
- }],
36
- opToPresentation: [{
37
- op: {
38
- name: "learningJourney.crmOnboarding.getTrack",
39
- version: 1
40
- },
41
- pres: {
42
- name: "learning.journey.crm.track",
43
- version: 1
44
- }
45
- }],
46
- presentationsTargets: [{
47
- name: "learning.journey.crm.track",
48
- version: 1,
49
- targets: [
50
- "react",
51
- "markdown",
52
- "application/json"
53
- ]
54
- }, {
55
- name: "learning.journey.crm.widget",
56
- version: 1,
57
- targets: ["react"]
58
- }],
59
- capabilities: { requires: [{
60
- key: "identity",
61
- version: 1
62
- }] }
63
- };
64
-
65
- //#endregion
66
- export { LearningJourneyCrmOnboardingFeature };
1
+ const e={meta:{key:`learning-journey-crm-onboarding`,title:`Learning Journey: CRM Onboarding`,description:`CRM first-win onboarding journey with step-by-step guidance for new CRM users`,domain:`learning-journey`,owners:[`@examples.learning-journey.crm-onboarding`],tags:[`learning`,`crm`,`onboarding`,`journey`],stability:`experimental`},operations:[{name:`learningJourney.crmOnboarding.recordEvent`,version:1},{name:`learningJourney.crmOnboarding.getTrack`,version:1}],events:[],presentations:[{name:`learning.journey.crm.track`,version:1},{name:`learning.journey.crm.widget`,version:1}],opToPresentation:[{op:{name:`learningJourney.crmOnboarding.getTrack`,version:1},pres:{name:`learning.journey.crm.track`,version:1}}],presentationsTargets:[{name:`learning.journey.crm.track`,version:1,targets:[`react`,`markdown`,`application/json`]},{name:`learning.journey.crm.widget`,version:1,targets:[`react`]}],capabilities:{requires:[{key:`identity`,version:1}]}};export{e as LearningJourneyCrmOnboardingFeature};
@@ -1,49 +1 @@
1
- import { CrmOnboardingTrackModel } from "../contracts/index.js";
2
-
3
- //#region src/presentations/index.ts
4
- const baseMeta = {
5
- domain: "learning-journey",
6
- owners: ["examples.learning-journey.crm-onboarding"],
7
- tags: [
8
- "learning",
9
- "crm",
10
- "onboarding"
11
- ]
12
- };
13
- const CrmOnboardingTrackPresentation = {
14
- meta: {
15
- name: "learning.journey.crm.track",
16
- version: 1,
17
- description: "CRM first win track detail",
18
- ...baseMeta
19
- },
20
- source: {
21
- type: "component",
22
- framework: "react",
23
- componentKey: "LearningTrackDetail",
24
- props: CrmOnboardingTrackModel
25
- },
26
- targets: [
27
- "react",
28
- "markdown",
29
- "application/json"
30
- ]
31
- };
32
- const CrmOnboardingWidgetPresentation = {
33
- meta: {
34
- name: "learning.journey.crm.widget",
35
- version: 1,
36
- description: "Compact widget for CRM onboarding progress",
37
- ...baseMeta
38
- },
39
- source: {
40
- type: "component",
41
- framework: "react",
42
- componentKey: "LearningTrackProgressWidget"
43
- },
44
- targets: ["react"]
45
- };
46
- const crmOnboardingPresentations = [CrmOnboardingTrackPresentation, CrmOnboardingWidgetPresentation];
47
-
48
- //#endregion
49
- export { CrmOnboardingTrackPresentation, CrmOnboardingWidgetPresentation, crmOnboardingPresentations };
1
+ import{CrmOnboardingTrackModel as e}from"../contracts/index.js";const t={domain:`learning-journey`,owners:[`examples.learning-journey.crm-onboarding`],tags:[`learning`,`crm`,`onboarding`]},n={meta:{name:`learning.journey.crm.track`,version:1,description:`CRM first win track detail`,...t},source:{type:`component`,framework:`react`,componentKey:`LearningTrackDetail`,props:e},targets:[`react`,`markdown`,`application/json`]},r={meta:{name:`learning.journey.crm.widget`,version:1,description:`Compact widget for CRM onboarding progress`,...t},source:{type:`component`,framework:`react`,componentKey:`LearningTrackProgressWidget`},targets:[`react`]},i=[n,r];export{n as CrmOnboardingTrackPresentation,r as CrmOnboardingWidgetPresentation,i as crmOnboardingPresentations};
package/dist/track.js CHANGED
@@ -1,98 +1 @@
1
- //#region src/track.ts
2
- const crmFirstWinTrack = {
3
- id: "crm_first_win",
4
- productId: "crm-pipeline",
5
- name: "CRM First Win",
6
- description: "Guide a new CRM user from empty pipeline to first closed-won deal.",
7
- targetUserSegment: "crm_adopter",
8
- targetRole: "sales",
9
- totalXp: 135,
10
- streakRule: {
11
- hoursWindow: 72,
12
- bonusXp: 25
13
- },
14
- completionRewards: {
15
- xpBonus: 25,
16
- badgeKey: "crm_first_win"
17
- },
18
- steps: [
19
- {
20
- id: "create_pipeline",
21
- title: "Create pipeline & stages",
22
- description: "Create a pipeline with baseline stages.",
23
- order: 1,
24
- completion: {
25
- eventName: "pipeline.created",
26
- sourceModule: "@lssm/example.crm-pipeline"
27
- },
28
- xpReward: 15,
29
- metadata: { surface: "pipeline" }
30
- },
31
- {
32
- id: "create_contact_and_company",
33
- title: "Create contact and company",
34
- description: "Add your first contact and associated company.",
35
- order: 2,
36
- completion: {
37
- eventName: "contact.created",
38
- sourceModule: "@lssm/example.crm-pipeline"
39
- },
40
- xpReward: 20,
41
- metadata: { surface: "contacts" }
42
- },
43
- {
44
- id: "create_first_deal",
45
- title: "Log first deal",
46
- description: "Create your first deal in the pipeline.",
47
- order: 3,
48
- completion: {
49
- eventName: "deal.created",
50
- sourceModule: "@lssm/example.crm-pipeline"
51
- },
52
- xpReward: 20,
53
- metadata: { surface: "deals" }
54
- },
55
- {
56
- id: "move_deal_in_pipeline",
57
- title: "Move a deal across stages",
58
- description: "Move a deal across at least three stages.",
59
- order: 4,
60
- completion: {
61
- eventName: "deal.moved",
62
- sourceModule: "@lssm/example.crm-pipeline"
63
- },
64
- xpReward: 20,
65
- metadata: { surface: "deals" }
66
- },
67
- {
68
- id: "close_deal_won",
69
- title: "Close a deal as won",
70
- description: "Close a deal as won to hit first revenue.",
71
- order: 5,
72
- completion: {
73
- eventName: "deal.won",
74
- sourceModule: "@lssm/example.crm-pipeline"
75
- },
76
- xpReward: 30,
77
- metadata: { surface: "deals" }
78
- },
79
- {
80
- id: "setup_follow_up",
81
- title: "Create follow-up task",
82
- description: "Create a follow-up task and notification for a contact or deal.",
83
- order: 6,
84
- completion: {
85
- eventName: "task.completed",
86
- sourceModule: "@lssm/example.crm-pipeline",
87
- payloadFilter: { type: "follow_up" }
88
- },
89
- xpReward: 30,
90
- metadata: { surface: "tasks" }
91
- }
92
- ],
93
- metadata: { surfacedIn: ["crm/dashboard", "crm/pipeline"] }
94
- };
95
- const crmLearningTracks = [crmFirstWinTrack];
96
-
97
- //#endregion
98
- export { crmFirstWinTrack, crmLearningTracks };
1
+ const e={id:`crm_first_win`,productId:`crm-pipeline`,name:`CRM First Win`,description:`Guide a new CRM user from empty pipeline to first closed-won deal.`,targetUserSegment:`crm_adopter`,targetRole:`sales`,totalXp:135,streakRule:{hoursWindow:72,bonusXp:25},completionRewards:{xpBonus:25,badgeKey:`crm_first_win`},steps:[{id:`create_pipeline`,title:`Create pipeline & stages`,description:`Create a pipeline with baseline stages.`,order:1,completion:{eventName:`pipeline.created`,sourceModule:`@lssm/example.crm-pipeline`},xpReward:15,metadata:{surface:`pipeline`}},{id:`create_contact_and_company`,title:`Create contact and company`,description:`Add your first contact and associated company.`,order:2,completion:{eventName:`contact.created`,sourceModule:`@lssm/example.crm-pipeline`},xpReward:20,metadata:{surface:`contacts`}},{id:`create_first_deal`,title:`Log first deal`,description:`Create your first deal in the pipeline.`,order:3,completion:{eventName:`deal.created`,sourceModule:`@lssm/example.crm-pipeline`},xpReward:20,metadata:{surface:`deals`}},{id:`move_deal_in_pipeline`,title:`Move a deal across stages`,description:`Move a deal across at least three stages.`,order:4,completion:{eventName:`deal.moved`,sourceModule:`@lssm/example.crm-pipeline`},xpReward:20,metadata:{surface:`deals`}},{id:`close_deal_won`,title:`Close a deal as won`,description:`Close a deal as won to hit first revenue.`,order:5,completion:{eventName:`deal.won`,sourceModule:`@lssm/example.crm-pipeline`},xpReward:30,metadata:{surface:`deals`}},{id:`setup_follow_up`,title:`Create follow-up task`,description:`Create a follow-up task and notification for a contact or deal.`,order:6,completion:{eventName:`task.completed`,sourceModule:`@lssm/example.crm-pipeline`,payloadFilter:{type:`follow_up`}},xpReward:30,metadata:{surface:`tasks`}}],metadata:{surfacedIn:[`crm/dashboard`,`crm/pipeline`]}},t=[e];export{e as crmFirstWinTrack,t as crmLearningTracks};
package/package.json CHANGED
@@ -1,25 +1,23 @@
1
1
  {
2
2
  "name": "@lssm/example.learning-journey-crm-onboarding",
3
- "version": "0.0.0-canary-20251217080011",
3
+ "version": "1.41.0",
4
4
  "description": "Learning journey track that onboards users to the CRM pipeline example.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "exports": {
9
- ".": "./dist/index.js",
10
- "./contracts": "./dist/contracts/index.js",
11
- "./docs": "./dist/docs/index.js",
12
- "./docs/crm-onboarding.docblock": "./dist/docs/crm-onboarding.docblock.js",
13
- "./example": "./dist/example.js",
14
- "./handlers/demo.handlers": "./dist/handlers/demo.handlers.js",
15
- "./learning-journey-crm-onboarding.feature": "./dist/learning-journey-crm-onboarding.feature.js",
16
- "./presentations": "./dist/presentations/index.js",
17
- "./track": "./dist/track.js",
9
+ ".": "./src/index.ts",
10
+ "./contracts": "./src/contracts/index.ts",
11
+ "./docs": "./src/docs/index.ts",
12
+ "./docs/crm-onboarding.docblock": "./src/docs/crm-onboarding.docblock.ts",
13
+ "./example": "./src/example.ts",
14
+ "./handlers/demo.handlers": "./src/handlers/demo.handlers.ts",
15
+ "./learning-journey-crm-onboarding.feature": "./src/learning-journey-crm-onboarding.feature.ts",
16
+ "./presentations": "./src/presentations/index.ts",
17
+ "./track": "./src/track.ts",
18
18
  "./*": "./*"
19
19
  },
20
20
  "scripts": {
21
- "publish:pkg": "bun publish --tolerate-republish --ignore-scripts --verbose",
22
- "publish:pkg:canary": "bun publish:pkg --tag canary",
23
21
  "build": "bun build:bundle && bun build:types",
24
22
  "build:bundle": "tsdown",
25
23
  "build:types": "tsc --noEmit",
@@ -30,14 +28,14 @@
30
28
  "lint:check": "eslint src"
31
29
  },
32
30
  "dependencies": {
33
- "@lssm/lib.contracts": "0.0.0-canary-20251217080011",
34
- "@lssm/lib.schema": "0.0.0-canary-20251217080011",
35
- "@lssm/module.learning-journey": "0.0.0-canary-20251217080011",
36
- "@lssm/example.crm-pipeline": "0.0.0-canary-20251217080011"
31
+ "@lssm/lib.contracts": "workspace:*",
32
+ "@lssm/lib.schema": "workspace:*",
33
+ "@lssm/module.learning-journey": "workspace:*",
34
+ "@lssm/example.crm-pipeline": "workspace:*"
37
35
  },
38
36
  "devDependencies": {
39
- "@lssm/tool.tsdown": "0.0.0-canary-20251217080011",
40
- "@lssm/tool.typescript": "0.0.0-canary-20251217080011",
37
+ "@lssm/tool.tsdown": "workspace:*",
38
+ "@lssm/tool.typescript": "workspace:*",
41
39
  "tsdown": "^0.17.4",
42
40
  "typescript": "^5.9.3"
43
41
  },