@contractspec/example.learning-journey-crm-onboarding 3.7.6 → 3.7.10

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.
@@ -3,7 +3,7 @@ $ bun run prebuild && bun run build:bundle && bun run build:types
3
3
  $ contractspec-bun-build prebuild
4
4
  $ contractspec-bun-build transpile
5
5
  [contractspec-bun-build] transpile target=bun root=src entries=10 noBundle=false
6
- Bundled 10 modules in 43ms
6
+ Bundled 10 modules in 31ms
7
7
 
8
8
  docs/crm-onboarding.docblock.js 1.51 KB (entry point)
9
9
  tests/operations.test-spec.js 0.91 KB (entry point)
@@ -17,7 +17,7 @@ Bundled 10 modules in 43ms
17
17
  ./track.js 2.72 KB (entry point)
18
18
 
19
19
  [contractspec-bun-build] transpile target=node root=src entries=10 noBundle=false
20
- Bundled 10 modules in 20ms
20
+ Bundled 10 modules in 39ms
21
21
 
22
22
  docs/crm-onboarding.docblock.js 1.48 KB (entry point)
23
23
  tests/operations.test-spec.js 0.91 KB (entry point)
@@ -31,7 +31,7 @@ Bundled 10 modules in 20ms
31
31
  ./track.js 2.71 KB (entry point)
32
32
 
33
33
  [contractspec-bun-build] transpile target=browser root=src entries=10 noBundle=false
34
- Bundled 10 modules in 21ms
34
+ Bundled 10 modules in 36ms
35
35
 
36
36
  docs/crm-onboarding.docblock.js 1.48 KB (entry point)
37
37
  tests/operations.test-spec.js 0.91 KB (entry point)
package/AGENTS.md CHANGED
@@ -1,35 +1,57 @@
1
- # AI Agent Guide -- `@contractspec/example.learning-journey-crm-onboarding`
1
+ # AI Agent Guide `@contractspec/example.learning-journey-crm-onboarding`
2
2
 
3
3
  Scope: `packages/examples/learning-journey-crm-onboarding/*`
4
4
 
5
- Demonstrates a learning journey track that onboards users to the CRM pipeline example with guided steps.
5
+ Learning journey track that onboards users to the CRM pipeline example.
6
6
 
7
7
  ## Quick Context
8
8
 
9
- - **Layer**: example
10
- - **Related Packages**: `module.learning-journey`, `lib.contracts-spec`, `lib.schema`, `example.crm-pipeline`
11
-
12
- ## What This Demonstrates
13
-
14
- - CRM-specific onboarding track with step-by-step guidance
15
- - Feature definition with operations, presentations, and test-specs
16
- - Demo handlers for simulated onboarding flow
17
- - Cross-example dependency (builds on crm-pipeline)
18
-
19
- ## Public Exports
20
-
21
- - `.` -- root barrel
22
- - `./learning-journey-crm-onboarding.feature` -- feature definition
23
- - `./operations` -- onboarding operations
24
- - `./presentations` -- step presentations
25
- - `./handlers/demo.handlers` -- demo handlers
26
- - `./tests/operations.test-spec` -- operation test specifications
27
- - `./track` -- CRM onboarding track definition
28
- - `./docs` -- DocBlock documentation
29
- - `./example` -- runnable example entry point
9
+ - Layer: `example`.
10
+ - Package visibility: published package.
11
+ - Primary consumers are example explorers, template authors, and documentation readers.
12
+ - Related packages: `@contractspec/example.crm-pipeline`, `@contractspec/lib.contracts-spec`, `@contractspec/lib.schema`, `@contractspec/module.learning-journey`, `@contractspec/tool.bun`, `@contractspec/tool.typescript`.
13
+
14
+ ## Architecture
15
+
16
+ - `src/docs/` contains docblocks and documentation-facing exports.
17
+ - `src/example.ts` is the runnable example entrypoint.
18
+ - `src/handlers/` contains handlers or demo adapters wired to contract surfaces.
19
+ - `src/index.ts` is the root public barrel and package entrypoint.
20
+ - `src/learning-journey-crm-onboarding.feature.ts` defines a feature entrypoint.
21
+ - `src/operations` is part of the package's public or composition surface.
22
+ - `src/presentations` is part of the package's public or composition surface.
23
+
24
+ ## Public Surface
25
+
26
+ - Export `.` resolves through `./src/index.ts`.
27
+ - Export `./docs` resolves through `./src/docs/index.ts`.
28
+ - Export `./docs/crm-onboarding.docblock` resolves through `./src/docs/crm-onboarding.docblock.ts`.
29
+ - Export `./example` resolves through `./src/example.ts`.
30
+ - Export `./handlers/demo.handlers` resolves through `./src/handlers/demo.handlers.ts`.
31
+ - Export `./learning-journey-crm-onboarding.feature` resolves through `./src/learning-journey-crm-onboarding.feature.ts`.
32
+ - Export `./operations` resolves through `./src/operations/index.ts`.
33
+ - Export `./presentations` resolves through `./src/presentations/index.ts`.
34
+ - Export `./tests/operations.test-spec` resolves through `./src/tests/operations.test-spec.ts`.
35
+ - Export `./track` resolves through `./src/track.ts`.
36
+
37
+ ## Guardrails
38
+
39
+ - Keep the example package demonstrative, buildable, and aligned with the exported feature surface.
40
+ - Do not add hidden production assumptions that are not actually implemented in the example.
41
+ - Changes here can affect downstream packages such as `@contractspec/example.crm-pipeline`, `@contractspec/lib.contracts-spec`, `@contractspec/lib.schema`, `@contractspec/module.learning-journey`, `@contractspec/tool.bun`, `@contractspec/tool.typescript`.
42
+ - Changes here can affect downstream packages such as `@contractspec/example.crm-pipeline`, `@contractspec/lib.contracts-spec`, `@contractspec/lib.schema`, `@contractspec/module.learning-journey`, `@contractspec/tool.bun`, `@contractspec/tool.typescript`.
30
43
 
31
44
  ## Local Commands
32
45
 
33
- - Build: `bun run build`
34
- - Dev: `bun run dev`
35
- - Typecheck: `bun run typecheck`
46
+ - `bun run dev` — contractspec-bun-build dev
47
+ - `bun run build`bun run prebuild && bun run build:bundle && bun run build:types
48
+ - `bun run lint` — bun lint:fix
49
+ - `bun run lint:check` — biome check .
50
+ - `bun run lint:fix` — biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .
51
+ - `bun run typecheck` — tsc --noEmit
52
+ - `bun run publish:pkg` — bun publish --tolerate-republish --ignore-scripts --verbose
53
+ - `bun run publish:pkg:canary` — bun publish:pkg --tag canary
54
+ - `bun run clean` — rimraf dist .turbo
55
+ - `bun run build:bundle` — contractspec-bun-build transpile
56
+ - `bun run build:types` — contractspec-bun-build types
57
+ - `bun run prebuild` — contractspec-bun-build prebuild
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @contractspec/example.learning-journey-crm-onboarding
2
2
 
3
+ ## 3.7.10
4
+
5
+ ### Patch Changes
6
+
7
+ - 1a44cb6: feat: improve examples to increase coverage of Contracts type
8
+ - Updated dependencies [1a44cb6]
9
+ - @contractspec/module.learning-journey@3.7.10
10
+ - @contractspec/example.crm-pipeline@3.7.10
11
+ - @contractspec/lib.contracts-spec@4.1.2
12
+ - @contractspec/lib.schema@3.7.8
13
+
14
+ ## 3.7.9
15
+
16
+ ### Patch Changes
17
+
18
+ - fix: release
19
+ - Updated dependencies
20
+ - @contractspec/module.learning-journey@3.7.9
21
+ - @contractspec/example.crm-pipeline@3.7.9
22
+ - @contractspec/lib.contracts-spec@4.1.1
23
+ - @contractspec/lib.schema@3.7.7
24
+
3
25
  ## 3.7.6
4
26
 
5
27
  ### Patch Changes
@@ -834,14 +856,17 @@
834
856
  feat: Contract layers support (features, examples, app-configs)
835
857
 
836
858
  ### New CLI Commands
859
+
837
860
  - `contractspec list layers` - List all contract layers with filtering
838
861
 
839
862
  ### Enhanced Commands
863
+
840
864
  - `contractspec ci` - New `layers` check category validates features/examples/config
841
865
  - `contractspec doctor` - New `layers` health checks
842
866
  - `contractspec integrity` - Now shows layer statistics
843
867
 
844
868
  ### New APIs
869
+
845
870
  - `discoverLayers()` - Scan workspace for all layer files
846
871
  - `scanExampleSource()` - Parse ExampleSpec from source code
847
872
  - `isExampleFile()` - Check if file is an example spec
package/README.md CHANGED
@@ -1,42 +1,72 @@
1
1
  # @contractspec/example.learning-journey-crm-onboarding
2
2
 
3
- Website: https://contractspec.io/
3
+ Website: https://contractspec.io
4
4
 
5
+ **Learning journey track that onboards users to the CRM pipeline example.**
5
6
 
6
- Learning Journey example that guides a CRM user to first closed-won deal.
7
+ ## What This Demonstrates
7
8
 
8
- ## Track
9
+ - CRM-specific onboarding track with step-by-step guidance.
10
+ - Feature definition with operations, presentations, and test-specs.
11
+ - Demo handlers for simulated onboarding flow.
12
+ - Cross-example dependency (builds on crm-pipeline).
13
+ - `src/docs/` contains docblocks and documentation-facing exports.
14
+ - `src/handlers/` contains handlers or demo adapters wired to contract surfaces.
9
15
 
10
- - **Key**: `crm_first_win`
11
- - **Persona**: CRM adopter
12
- - **XP**: 15/20/20/20/30/30 + 25 bonus
13
- - **Badge**: `crm_first_win`
16
+ ## Running Locally
14
17
 
15
- ## Steps & Events
16
-
17
- 1. `create_pipeline` `pipeline.created`
18
- 2. `create_contact_and_company` `contact.created`
19
- 3. `create_first_deal` → `deal.created`
20
- 4. `move_deal_in_pipeline` → `deal.moved`
21
- 5. `close_deal_won` → `deal.won`
22
- 6. `setup_follow_up` → `task.completed` (type: follow_up)
18
+ From `packages/examples/learning-journey-crm-onboarding`:
19
+ - `bun run dev`
20
+ - `bun run build`
21
+ - `bun run typecheck`
23
22
 
24
23
  ## Usage
25
24
 
26
- - Import track specs:
27
- `import { crmLearningTracks } from '@contractspec/example.learning-journey-crm-onboarding/track'`
28
- - Contracts/handlers for demos:
29
- `import { GetCrmOnboardingTrack, RecordCrmOnboardingEvent } from '@contractspec/example.learning-journey-crm-onboarding/contracts'`
30
- `import { emitCrmOnboardingEvent } from '@contractspec/example.learning-journey-crm-onboarding/handlers/demo.handlers'`
31
- - Presentations (react/markdown/json targets):
32
- `import { crmOnboardingPresentations } from '@contractspec/example.learning-journey-crm-onboarding/presentations'`
33
- - Register via onboarding API:
34
- - `learning.onboarding.listTracks`
35
- - `learning.onboarding.getProgress`
36
- - `learning.onboarding.recordEvent` wired from CRM events
37
- - Requires CRM pipeline example events to be emitted for completion.
38
-
39
- ## Docs
40
-
41
- - Docblock: `src/docs/crm-onboarding.docblock.ts`
42
- - Route suggestion: `/docs/learning-journey/crm-onboarding`
25
+ Use `@contractspec/example.learning-journey-crm-onboarding` as a reference implementation, or import its exported surfaces into a workspace that composes ContractSpec examples and bundles.
26
+
27
+ ## Architecture
28
+
29
+ - `src/docs/` contains docblocks and documentation-facing exports.
30
+ - `src/example.ts` is the runnable example entrypoint.
31
+ - `src/handlers/` contains handlers or demo adapters wired to contract surfaces.
32
+ - `src/index.ts` is the root public barrel and package entrypoint.
33
+ - `src/learning-journey-crm-onboarding.feature.ts` defines a feature entrypoint.
34
+ - `src/operations` is part of the package's public or composition surface.
35
+ - `src/presentations` is part of the package's public or composition surface.
36
+
37
+ ## Public Entry Points
38
+
39
+ - Export `.` resolves through `./src/index.ts`.
40
+ - Export `./docs` resolves through `./src/docs/index.ts`.
41
+ - Export `./docs/crm-onboarding.docblock` resolves through `./src/docs/crm-onboarding.docblock.ts`.
42
+ - Export `./example` resolves through `./src/example.ts`.
43
+ - Export `./handlers/demo.handlers` resolves through `./src/handlers/demo.handlers.ts`.
44
+ - Export `./learning-journey-crm-onboarding.feature` resolves through `./src/learning-journey-crm-onboarding.feature.ts`.
45
+ - Export `./operations` resolves through `./src/operations/index.ts`.
46
+ - Export `./presentations` resolves through `./src/presentations/index.ts`.
47
+ - Export `./tests/operations.test-spec` resolves through `./src/tests/operations.test-spec.ts`.
48
+ - Export `./track` resolves through `./src/track.ts`.
49
+
50
+ ## Local Commands
51
+
52
+ - `bun run dev` — contractspec-bun-build dev
53
+ - `bun run build` — bun run prebuild && bun run build:bundle && bun run build:types
54
+ - `bun run lint` — bun lint:fix
55
+ - `bun run lint:check` — biome check .
56
+ - `bun run lint:fix` — biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .
57
+ - `bun run typecheck` — tsc --noEmit
58
+ - `bun run publish:pkg` — bun publish --tolerate-republish --ignore-scripts --verbose
59
+ - `bun run publish:pkg:canary` — bun publish:pkg --tag canary
60
+ - `bun run clean` — rimraf dist .turbo
61
+ - `bun run build:bundle` — contractspec-bun-build transpile
62
+ - `bun run build:types` — contractspec-bun-build types
63
+ - `bun run prebuild` — contractspec-bun-build prebuild
64
+
65
+ ## Recent Updates
66
+
67
+ - Replace eslint+prettier by biomejs to optimize speed.
68
+ - Missing contract layers.
69
+
70
+ ## Notes
71
+
72
+ - Works alongside `@contractspec/example.crm-pipeline`, `@contractspec/lib.contracts-spec`, `@contractspec/lib.schema`, `@contractspec/module.learning-journey`, `@contractspec/tool.bun`, ...
@@ -178,9 +178,55 @@ var emitCrmOnboardingEvent = (eventName, { learnerId, occurredAt = new Date, pay
178
178
  };
179
179
  var emitAllCrmOnboardingEvents = (params, record) => crmOnboardingEvents.map((name) => emitCrmOnboardingEvent(name, params, record));
180
180
 
181
+ // src/learning-journey-crm-onboarding.feature.ts
182
+ import { defineFeature } from "@contractspec/lib.contracts-spec";
183
+ var LearningJourneyCrmOnboardingFeature = defineFeature({
184
+ meta: {
185
+ key: "learning-journey-crm-onboarding",
186
+ title: "Learning Journey: CRM Onboarding",
187
+ description: "CRM first-win onboarding journey with step-by-step guidance for new CRM users",
188
+ domain: "learning-journey",
189
+ owners: ["@examples.learning-journey.crm-onboarding"],
190
+ tags: ["learning", "crm", "onboarding", "journey"],
191
+ stability: "experimental",
192
+ version: "1.0.0"
193
+ },
194
+ operations: [
195
+ { key: "learningJourney.crmOnboarding.recordEvent", version: "1.0.0" },
196
+ { key: "learningJourney.crmOnboarding.getTrack", version: "1.0.0" }
197
+ ],
198
+ events: [],
199
+ presentations: [
200
+ { key: "learning.journey.crm.track", version: "1.0.0" },
201
+ { key: "learning.journey.crm.widget", version: "1.0.0" }
202
+ ],
203
+ opToPresentation: [
204
+ {
205
+ op: { key: "learningJourney.crmOnboarding.getTrack", version: "1.0.0" },
206
+ pres: { key: "learning.journey.crm.track", version: "1.0.0" }
207
+ }
208
+ ],
209
+ presentationsTargets: [
210
+ {
211
+ key: "learning.journey.crm.track",
212
+ version: "1.0.0",
213
+ targets: ["react", "markdown", "application/json"]
214
+ },
215
+ {
216
+ key: "learning.journey.crm.widget",
217
+ version: "1.0.0",
218
+ targets: ["react"]
219
+ }
220
+ ],
221
+ capabilities: {
222
+ requires: [{ key: "identity", version: "1.0.0" }]
223
+ },
224
+ docs: ["docs.learning-journey.crm-onboarding"]
225
+ });
226
+
181
227
  // src/operations/index.ts
182
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
183
228
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
229
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
184
230
  var OWNERS = ["examples.learning-journey.crm-onboarding"];
185
231
  var StepModel = defineSchemaModel({
186
232
  name: "CrmOnboardingStep",
@@ -337,52 +383,6 @@ var crmOnboardingPresentations = [
337
383
  CrmOnboardingTrackPresentation,
338
384
  CrmOnboardingWidgetPresentation
339
385
  ];
340
-
341
- // src/learning-journey-crm-onboarding.feature.ts
342
- import { defineFeature } from "@contractspec/lib.contracts-spec";
343
- var LearningJourneyCrmOnboardingFeature = defineFeature({
344
- meta: {
345
- key: "learning-journey-crm-onboarding",
346
- title: "Learning Journey: CRM Onboarding",
347
- description: "CRM first-win onboarding journey with step-by-step guidance for new CRM users",
348
- domain: "learning-journey",
349
- owners: ["@examples.learning-journey.crm-onboarding"],
350
- tags: ["learning", "crm", "onboarding", "journey"],
351
- stability: "experimental",
352
- version: "1.0.0"
353
- },
354
- operations: [
355
- { key: "learningJourney.crmOnboarding.recordEvent", version: "1.0.0" },
356
- { key: "learningJourney.crmOnboarding.getTrack", version: "1.0.0" }
357
- ],
358
- events: [],
359
- presentations: [
360
- { key: "learning.journey.crm.track", version: "1.0.0" },
361
- { key: "learning.journey.crm.widget", version: "1.0.0" }
362
- ],
363
- opToPresentation: [
364
- {
365
- op: { key: "learningJourney.crmOnboarding.getTrack", version: "1.0.0" },
366
- pres: { key: "learning.journey.crm.track", version: "1.0.0" }
367
- }
368
- ],
369
- presentationsTargets: [
370
- {
371
- key: "learning.journey.crm.track",
372
- version: "1.0.0",
373
- targets: ["react", "markdown", "application/json"]
374
- },
375
- {
376
- key: "learning.journey.crm.widget",
377
- version: "1.0.0",
378
- targets: ["react"]
379
- }
380
- ],
381
- capabilities: {
382
- requires: [{ key: "identity", version: "1.0.0" }]
383
- },
384
- docs: ["docs.learning-journey.crm-onboarding"]
385
- });
386
386
  export {
387
387
  example_default as example,
388
388
  emitCrmOnboardingEvent,
@@ -91,8 +91,8 @@ var crmFirstWinTrack = {
91
91
  var crmLearningTracks = [crmFirstWinTrack];
92
92
 
93
93
  // src/operations/index.ts
94
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
95
94
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
95
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
96
96
  var OWNERS = ["examples.learning-journey.crm-onboarding"];
97
97
  var StepModel = defineSchemaModel({
98
98
  name: "CrmOnboardingStep",
@@ -91,8 +91,8 @@ var crmFirstWinTrack = {
91
91
  var crmLearningTracks = [crmFirstWinTrack];
92
92
 
93
93
  // src/operations/index.ts
94
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
95
94
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
95
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
96
96
  var OWNERS = ["examples.learning-journey.crm-onboarding"];
97
97
  var StepModel = defineSchemaModel({
98
98
  name: "CrmOnboardingStep",
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export * from './track';
2
1
  export * from './docs';
3
- export * from './operations';
2
+ export { default as example } from './example';
4
3
  export * from './handlers/demo.handlers';
5
- export * from './presentations';
6
4
  export * from './learning-journey-crm-onboarding.feature';
7
- export { default as example } from './example';
5
+ export * from './operations';
6
+ export * from './presentations';
7
+ export * from './track';
package/dist/index.js CHANGED
@@ -179,9 +179,55 @@ var emitCrmOnboardingEvent = (eventName, { learnerId, occurredAt = new Date, pay
179
179
  };
180
180
  var emitAllCrmOnboardingEvents = (params, record) => crmOnboardingEvents.map((name) => emitCrmOnboardingEvent(name, params, record));
181
181
 
182
+ // src/learning-journey-crm-onboarding.feature.ts
183
+ import { defineFeature } from "@contractspec/lib.contracts-spec";
184
+ var LearningJourneyCrmOnboardingFeature = defineFeature({
185
+ meta: {
186
+ key: "learning-journey-crm-onboarding",
187
+ title: "Learning Journey: CRM Onboarding",
188
+ description: "CRM first-win onboarding journey with step-by-step guidance for new CRM users",
189
+ domain: "learning-journey",
190
+ owners: ["@examples.learning-journey.crm-onboarding"],
191
+ tags: ["learning", "crm", "onboarding", "journey"],
192
+ stability: "experimental",
193
+ version: "1.0.0"
194
+ },
195
+ operations: [
196
+ { key: "learningJourney.crmOnboarding.recordEvent", version: "1.0.0" },
197
+ { key: "learningJourney.crmOnboarding.getTrack", version: "1.0.0" }
198
+ ],
199
+ events: [],
200
+ presentations: [
201
+ { key: "learning.journey.crm.track", version: "1.0.0" },
202
+ { key: "learning.journey.crm.widget", version: "1.0.0" }
203
+ ],
204
+ opToPresentation: [
205
+ {
206
+ op: { key: "learningJourney.crmOnboarding.getTrack", version: "1.0.0" },
207
+ pres: { key: "learning.journey.crm.track", version: "1.0.0" }
208
+ }
209
+ ],
210
+ presentationsTargets: [
211
+ {
212
+ key: "learning.journey.crm.track",
213
+ version: "1.0.0",
214
+ targets: ["react", "markdown", "application/json"]
215
+ },
216
+ {
217
+ key: "learning.journey.crm.widget",
218
+ version: "1.0.0",
219
+ targets: ["react"]
220
+ }
221
+ ],
222
+ capabilities: {
223
+ requires: [{ key: "identity", version: "1.0.0" }]
224
+ },
225
+ docs: ["docs.learning-journey.crm-onboarding"]
226
+ });
227
+
182
228
  // src/operations/index.ts
183
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
184
229
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
230
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
185
231
  var OWNERS = ["examples.learning-journey.crm-onboarding"];
186
232
  var StepModel = defineSchemaModel({
187
233
  name: "CrmOnboardingStep",
@@ -338,52 +384,6 @@ var crmOnboardingPresentations = [
338
384
  CrmOnboardingTrackPresentation,
339
385
  CrmOnboardingWidgetPresentation
340
386
  ];
341
-
342
- // src/learning-journey-crm-onboarding.feature.ts
343
- import { defineFeature } from "@contractspec/lib.contracts-spec";
344
- var LearningJourneyCrmOnboardingFeature = defineFeature({
345
- meta: {
346
- key: "learning-journey-crm-onboarding",
347
- title: "Learning Journey: CRM Onboarding",
348
- description: "CRM first-win onboarding journey with step-by-step guidance for new CRM users",
349
- domain: "learning-journey",
350
- owners: ["@examples.learning-journey.crm-onboarding"],
351
- tags: ["learning", "crm", "onboarding", "journey"],
352
- stability: "experimental",
353
- version: "1.0.0"
354
- },
355
- operations: [
356
- { key: "learningJourney.crmOnboarding.recordEvent", version: "1.0.0" },
357
- { key: "learningJourney.crmOnboarding.getTrack", version: "1.0.0" }
358
- ],
359
- events: [],
360
- presentations: [
361
- { key: "learning.journey.crm.track", version: "1.0.0" },
362
- { key: "learning.journey.crm.widget", version: "1.0.0" }
363
- ],
364
- opToPresentation: [
365
- {
366
- op: { key: "learningJourney.crmOnboarding.getTrack", version: "1.0.0" },
367
- pres: { key: "learning.journey.crm.track", version: "1.0.0" }
368
- }
369
- ],
370
- presentationsTargets: [
371
- {
372
- key: "learning.journey.crm.track",
373
- version: "1.0.0",
374
- targets: ["react", "markdown", "application/json"]
375
- },
376
- {
377
- key: "learning.journey.crm.widget",
378
- version: "1.0.0",
379
- targets: ["react"]
380
- }
381
- ],
382
- capabilities: {
383
- requires: [{ key: "identity", version: "1.0.0" }]
384
- },
385
- docs: ["docs.learning-journey.crm-onboarding"]
386
- });
387
387
  export {
388
388
  example_default as example,
389
389
  emitCrmOnboardingEvent,
@@ -178,9 +178,55 @@ var emitCrmOnboardingEvent = (eventName, { learnerId, occurredAt = new Date, pay
178
178
  };
179
179
  var emitAllCrmOnboardingEvents = (params, record) => crmOnboardingEvents.map((name) => emitCrmOnboardingEvent(name, params, record));
180
180
 
181
+ // src/learning-journey-crm-onboarding.feature.ts
182
+ import { defineFeature } from "@contractspec/lib.contracts-spec";
183
+ var LearningJourneyCrmOnboardingFeature = defineFeature({
184
+ meta: {
185
+ key: "learning-journey-crm-onboarding",
186
+ title: "Learning Journey: CRM Onboarding",
187
+ description: "CRM first-win onboarding journey with step-by-step guidance for new CRM users",
188
+ domain: "learning-journey",
189
+ owners: ["@examples.learning-journey.crm-onboarding"],
190
+ tags: ["learning", "crm", "onboarding", "journey"],
191
+ stability: "experimental",
192
+ version: "1.0.0"
193
+ },
194
+ operations: [
195
+ { key: "learningJourney.crmOnboarding.recordEvent", version: "1.0.0" },
196
+ { key: "learningJourney.crmOnboarding.getTrack", version: "1.0.0" }
197
+ ],
198
+ events: [],
199
+ presentations: [
200
+ { key: "learning.journey.crm.track", version: "1.0.0" },
201
+ { key: "learning.journey.crm.widget", version: "1.0.0" }
202
+ ],
203
+ opToPresentation: [
204
+ {
205
+ op: { key: "learningJourney.crmOnboarding.getTrack", version: "1.0.0" },
206
+ pres: { key: "learning.journey.crm.track", version: "1.0.0" }
207
+ }
208
+ ],
209
+ presentationsTargets: [
210
+ {
211
+ key: "learning.journey.crm.track",
212
+ version: "1.0.0",
213
+ targets: ["react", "markdown", "application/json"]
214
+ },
215
+ {
216
+ key: "learning.journey.crm.widget",
217
+ version: "1.0.0",
218
+ targets: ["react"]
219
+ }
220
+ ],
221
+ capabilities: {
222
+ requires: [{ key: "identity", version: "1.0.0" }]
223
+ },
224
+ docs: ["docs.learning-journey.crm-onboarding"]
225
+ });
226
+
181
227
  // src/operations/index.ts
182
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
183
228
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
229
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
184
230
  var OWNERS = ["examples.learning-journey.crm-onboarding"];
185
231
  var StepModel = defineSchemaModel({
186
232
  name: "CrmOnboardingStep",
@@ -337,52 +383,6 @@ var crmOnboardingPresentations = [
337
383
  CrmOnboardingTrackPresentation,
338
384
  CrmOnboardingWidgetPresentation
339
385
  ];
340
-
341
- // src/learning-journey-crm-onboarding.feature.ts
342
- import { defineFeature } from "@contractspec/lib.contracts-spec";
343
- var LearningJourneyCrmOnboardingFeature = defineFeature({
344
- meta: {
345
- key: "learning-journey-crm-onboarding",
346
- title: "Learning Journey: CRM Onboarding",
347
- description: "CRM first-win onboarding journey with step-by-step guidance for new CRM users",
348
- domain: "learning-journey",
349
- owners: ["@examples.learning-journey.crm-onboarding"],
350
- tags: ["learning", "crm", "onboarding", "journey"],
351
- stability: "experimental",
352
- version: "1.0.0"
353
- },
354
- operations: [
355
- { key: "learningJourney.crmOnboarding.recordEvent", version: "1.0.0" },
356
- { key: "learningJourney.crmOnboarding.getTrack", version: "1.0.0" }
357
- ],
358
- events: [],
359
- presentations: [
360
- { key: "learning.journey.crm.track", version: "1.0.0" },
361
- { key: "learning.journey.crm.widget", version: "1.0.0" }
362
- ],
363
- opToPresentation: [
364
- {
365
- op: { key: "learningJourney.crmOnboarding.getTrack", version: "1.0.0" },
366
- pres: { key: "learning.journey.crm.track", version: "1.0.0" }
367
- }
368
- ],
369
- presentationsTargets: [
370
- {
371
- key: "learning.journey.crm.track",
372
- version: "1.0.0",
373
- targets: ["react", "markdown", "application/json"]
374
- },
375
- {
376
- key: "learning.journey.crm.widget",
377
- version: "1.0.0",
378
- targets: ["react"]
379
- }
380
- ],
381
- capabilities: {
382
- requires: [{ key: "identity", version: "1.0.0" }]
383
- },
384
- docs: ["docs.learning-journey.crm-onboarding"]
385
- });
386
386
  export {
387
387
  example_default as example,
388
388
  emitCrmOnboardingEvent,
@@ -91,8 +91,8 @@ var crmFirstWinTrack = {
91
91
  var crmLearningTracks = [crmFirstWinTrack];
92
92
 
93
93
  // src/operations/index.ts
94
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
95
94
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
95
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
96
96
  var OWNERS = ["examples.learning-journey.crm-onboarding"];
97
97
  var StepModel = defineSchemaModel({
98
98
  name: "CrmOnboardingStep",
@@ -91,8 +91,8 @@ var crmFirstWinTrack = {
91
91
  var crmLearningTracks = [crmFirstWinTrack];
92
92
 
93
93
  // src/operations/index.ts
94
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
95
94
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
95
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
96
96
  var OWNERS = ["examples.learning-journey.crm-onboarding"];
97
97
  var StepModel = defineSchemaModel({
98
98
  name: "CrmOnboardingStep",
@@ -92,8 +92,8 @@ var crmFirstWinTrack = {
92
92
  var crmLearningTracks = [crmFirstWinTrack];
93
93
 
94
94
  // src/operations/index.ts
95
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
96
95
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
96
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
97
97
  var OWNERS = ["examples.learning-journey.crm-onboarding"];
98
98
  var StepModel = defineSchemaModel({
99
99
  name: "CrmOnboardingStep",