@contractspec/example.learning-journey-crm-onboarding 0.0.0-canary-20260113170453

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 (56) hide show
  1. package/.turbo/turbo-build$colon$bundle.log +45 -0
  2. package/.turbo/turbo-build.log +46 -0
  3. package/CHANGELOG.md +359 -0
  4. package/LICENSE +21 -0
  5. package/README.md +42 -0
  6. package/dist/docs/crm-onboarding.docblock.d.ts +1 -0
  7. package/dist/docs/crm-onboarding.docblock.js +42 -0
  8. package/dist/docs/crm-onboarding.docblock.js.map +1 -0
  9. package/dist/docs/index.d.ts +1 -0
  10. package/dist/docs/index.js +1 -0
  11. package/dist/example.d.ts +7 -0
  12. package/dist/example.d.ts.map +1 -0
  13. package/dist/example.js +42 -0
  14. package/dist/example.js.map +1 -0
  15. package/dist/handlers/demo.handlers.d.ts +25 -0
  16. package/dist/handlers/demo.handlers.d.ts.map +1 -0
  17. package/dist/handlers/demo.handlers.js +26 -0
  18. package/dist/handlers/demo.handlers.js.map +1 -0
  19. package/dist/index.d.ts +7 -0
  20. package/dist/index.js +9 -0
  21. package/dist/learning-journey-crm-onboarding.feature.d.ts +12 -0
  22. package/dist/learning-journey-crm-onboarding.feature.d.ts.map +1 -0
  23. package/dist/learning-journey-crm-onboarding.feature.js +75 -0
  24. package/dist/learning-journey-crm-onboarding.feature.js.map +1 -0
  25. package/dist/operations/index.d.ts +271 -0
  26. package/dist/operations/index.d.ts.map +1 -0
  27. package/dist/operations/index.js +176 -0
  28. package/dist/operations/index.js.map +1 -0
  29. package/dist/presentations/index.d.ts +9 -0
  30. package/dist/presentations/index.d.ts.map +1 -0
  31. package/dist/presentations/index.js +55 -0
  32. package/dist/presentations/index.js.map +1 -0
  33. package/dist/tests/operations.test-spec.d.ts +7 -0
  34. package/dist/tests/operations.test-spec.d.ts.map +1 -0
  35. package/dist/tests/operations.test-spec.js +36 -0
  36. package/dist/tests/operations.test-spec.js.map +1 -0
  37. package/dist/track.d.ts +8 -0
  38. package/dist/track.d.ts.map +1 -0
  39. package/dist/track.js +99 -0
  40. package/dist/track.js.map +1 -0
  41. package/example.ts +1 -0
  42. package/package.json +67 -0
  43. package/src/docs/crm-onboarding.docblock.ts +40 -0
  44. package/src/docs/index.ts +1 -0
  45. package/src/example.ts +31 -0
  46. package/src/handlers/demo.handlers.ts +51 -0
  47. package/src/index.ts +7 -0
  48. package/src/learning-journey-crm-onboarding.feature.ts +66 -0
  49. package/src/operations/index.test.ts +49 -0
  50. package/src/operations/index.ts +122 -0
  51. package/src/presentations/index.ts +51 -0
  52. package/src/tests/operations.test-spec.ts +31 -0
  53. package/src/track.ts +95 -0
  54. package/tsconfig.json +9 -0
  55. package/tsconfig.tsbuildinfo +1 -0
  56. package/tsdown.config.js +17 -0
@@ -0,0 +1,26 @@
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 };
26
+ //# sourceMappingURL=demo.handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo.handlers.js","names":[],"sources":["../../src/handlers/demo.handlers.ts"],"sourcesContent":["import { crmFirstWinTrack } from '../track';\n\ninterface EmitParams {\n learnerId: string;\n occurredAt?: Date;\n payload?: Record<string, unknown>;\n}\n\ninterface LearningJourneyEvent {\n learnerId: string;\n name: string;\n occurredAt: Date;\n trackId: string;\n payload?: Record<string, unknown>;\n}\n\ntype RecordEvent = (event: LearningJourneyEvent) => unknown;\n\nexport const crmOnboardingEvents = [\n 'pipeline.created',\n 'contact.created',\n 'deal.created',\n 'deal.moved',\n 'deal.won',\n 'task.completed',\n] as const;\n\nexport type CrmEvent = (typeof crmOnboardingEvents)[number];\n\nexport const emitCrmOnboardingEvent = (\n eventName: CrmEvent,\n { learnerId, occurredAt = new Date(), payload }: EmitParams,\n record?: RecordEvent\n) => {\n const event: LearningJourneyEvent = {\n learnerId,\n name: eventName,\n occurredAt,\n payload,\n trackId: crmFirstWinTrack.id,\n };\n return record ? record(event) : event;\n};\n\nexport const emitAllCrmOnboardingEvents = (\n params: EmitParams,\n record?: RecordEvent\n) =>\n crmOnboardingEvents.map((name) =>\n emitCrmOnboardingEvent(name, params, record)\n );\n"],"mappings":";;;AAkBA,MAAa,sBAAsB;CACjC;CACA;CACA;CACA;CACA;CACA;CACD;AAID,MAAa,0BACX,WACA,EAAE,WAAW,6BAAa,IAAI,MAAM,EAAE,WACtC,WACG;CACH,MAAM,QAA8B;EAClC;EACA,MAAM;EACN;EACA;EACA,SAAS,iBAAiB;EAC3B;AACD,QAAO,SAAS,OAAO,MAAM,GAAG;;AAGlC,MAAa,8BACX,QACA,WAEA,oBAAoB,KAAK,SACvB,uBAAuB,MAAM,QAAQ,OAAO,CAC7C"}
@@ -0,0 +1,7 @@
1
+ import example from "./example.js";
2
+ import { CrmEvent, crmOnboardingEvents, emitAllCrmOnboardingEvents, emitCrmOnboardingEvent } from "./handlers/demo.handlers.js";
3
+ import { crmFirstWinTrack, crmLearningTracks } from "./track.js";
4
+ import { CrmOnboardingTrackModel, GetCrmOnboardingTrack, RecordCrmOnboardingEvent, crmOnboardingContracts } from "./operations/index.js";
5
+ import { CrmOnboardingTrackPresentation, CrmOnboardingWidgetPresentation, crmOnboardingPresentations } from "./presentations/index.js";
6
+ import { LearningJourneyCrmOnboardingFeature } from "./learning-journey-crm-onboarding.feature.js";
7
+ export { CrmEvent, CrmOnboardingTrackModel, CrmOnboardingTrackPresentation, CrmOnboardingWidgetPresentation, GetCrmOnboardingTrack, LearningJourneyCrmOnboardingFeature, RecordCrmOnboardingEvent, crmFirstWinTrack, crmLearningTracks, crmOnboardingContracts, crmOnboardingEvents, crmOnboardingPresentations, emitAllCrmOnboardingEvents, emitCrmOnboardingEvent, example };
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
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 "./operations/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 };
@@ -0,0 +1,12 @@
1
+ import * as _contractspec_lib_contracts0 from "@contractspec/lib.contracts";
2
+
3
+ //#region src/learning-journey-crm-onboarding.feature.d.ts
4
+
5
+ /**
6
+ * Learning Journey CRM Onboarding feature module that bundles
7
+ * CRM-specific onboarding track operations and presentations.
8
+ */
9
+ declare const LearningJourneyCrmOnboardingFeature: _contractspec_lib_contracts0.FeatureModuleSpec;
10
+ //#endregion
11
+ export { LearningJourneyCrmOnboardingFeature };
12
+ //# sourceMappingURL=learning-journey-crm-onboarding.feature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-journey-crm-onboarding.feature.d.ts","names":[],"sources":["../src/learning-journey-crm-onboarding.feature.ts"],"sourcesContent":[],"mappings":";;;;;;;AAWA;cAAa,qCAsDX,4BAAA,CAtD8C"}
@@ -0,0 +1,75 @@
1
+ import { defineFeature } from "@contractspec/lib.contracts";
2
+
3
+ //#region src/learning-journey-crm-onboarding.feature.ts
4
+ /**
5
+ * Learning Journey CRM Onboarding Feature Module Specification
6
+ *
7
+ * Defines the feature module for CRM first-win onboarding journey.
8
+ */
9
+ /**
10
+ * Learning Journey CRM Onboarding feature module that bundles
11
+ * CRM-specific onboarding track operations and presentations.
12
+ */
13
+ const LearningJourneyCrmOnboardingFeature = defineFeature({
14
+ meta: {
15
+ key: "learning-journey-crm-onboarding",
16
+ title: "Learning Journey: CRM Onboarding",
17
+ description: "CRM first-win onboarding journey with step-by-step guidance for new CRM users",
18
+ domain: "learning-journey",
19
+ owners: ["@examples.learning-journey.crm-onboarding"],
20
+ tags: [
21
+ "learning",
22
+ "crm",
23
+ "onboarding",
24
+ "journey"
25
+ ],
26
+ stability: "experimental",
27
+ version: "1.0.0"
28
+ },
29
+ operations: [{
30
+ key: "learningJourney.crmOnboarding.recordEvent",
31
+ version: "1.0.0"
32
+ }, {
33
+ key: "learningJourney.crmOnboarding.getTrack",
34
+ version: "1.0.0"
35
+ }],
36
+ events: [],
37
+ presentations: [{
38
+ key: "learning.journey.crm.track",
39
+ version: "1.0.0"
40
+ }, {
41
+ key: "learning.journey.crm.widget",
42
+ version: "1.0.0"
43
+ }],
44
+ opToPresentation: [{
45
+ op: {
46
+ key: "learningJourney.crmOnboarding.getTrack",
47
+ version: "1.0.0"
48
+ },
49
+ pres: {
50
+ key: "learning.journey.crm.track",
51
+ version: "1.0.0"
52
+ }
53
+ }],
54
+ presentationsTargets: [{
55
+ key: "learning.journey.crm.track",
56
+ version: "1.0.0",
57
+ targets: [
58
+ "react",
59
+ "markdown",
60
+ "application/json"
61
+ ]
62
+ }, {
63
+ key: "learning.journey.crm.widget",
64
+ version: "1.0.0",
65
+ targets: ["react"]
66
+ }],
67
+ capabilities: { requires: [{
68
+ key: "identity",
69
+ version: "1.0.0"
70
+ }] }
71
+ });
72
+
73
+ //#endregion
74
+ export { LearningJourneyCrmOnboardingFeature };
75
+ //# sourceMappingURL=learning-journey-crm-onboarding.feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-journey-crm-onboarding.feature.js","names":[],"sources":["../src/learning-journey-crm-onboarding.feature.ts"],"sourcesContent":["/**\n * Learning Journey CRM Onboarding Feature Module Specification\n *\n * Defines the feature module for CRM first-win onboarding journey.\n */\nimport { defineFeature } from '@contractspec/lib.contracts';\n\n/**\n * Learning Journey CRM Onboarding feature module that bundles\n * CRM-specific onboarding track operations and presentations.\n */\nexport const LearningJourneyCrmOnboardingFeature = defineFeature({\n meta: {\n key: 'learning-journey-crm-onboarding',\n title: 'Learning Journey: CRM Onboarding',\n description:\n 'CRM first-win onboarding journey with step-by-step guidance for new CRM users',\n domain: 'learning-journey',\n owners: ['@examples.learning-journey.crm-onboarding'],\n tags: ['learning', 'crm', 'onboarding', 'journey'],\n stability: 'experimental',\n version: '1.0.0',\n },\n\n // All contract operations included in this feature\n operations: [\n { key: 'learningJourney.crmOnboarding.recordEvent', version: '1.0.0' },\n { key: 'learningJourney.crmOnboarding.getTrack', version: '1.0.0' },\n ],\n\n // Events emitted by this feature\n events: [],\n\n // Presentations associated with this feature\n presentations: [\n { key: 'learning.journey.crm.track', version: '1.0.0' },\n { key: 'learning.journey.crm.widget', version: '1.0.0' },\n ],\n\n // Link operations to their primary presentations\n opToPresentation: [\n {\n op: { key: 'learningJourney.crmOnboarding.getTrack', version: '1.0.0' },\n pres: { key: 'learning.journey.crm.track', version: '1.0.0' },\n },\n ],\n\n // Target requirements for multi-surface rendering\n presentationsTargets: [\n {\n key: 'learning.journey.crm.track',\n version: '1.0.0',\n targets: ['react', 'markdown', 'application/json'],\n },\n {\n key: 'learning.journey.crm.widget',\n version: '1.0.0',\n targets: ['react'],\n },\n ],\n\n // Capability requirements\n capabilities: {\n requires: [{ key: 'identity', version: '1.0.0' }],\n },\n});\n"],"mappings":";;;;;;;;;;;;AAWA,MAAa,sCAAsC,cAAc;CAC/D,MAAM;EACJ,KAAK;EACL,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,4CAA4C;EACrD,MAAM;GAAC;GAAY;GAAO;GAAc;GAAU;EAClD,WAAW;EACX,SAAS;EACV;CAGD,YAAY,CACV;EAAE,KAAK;EAA6C,SAAS;EAAS,EACtE;EAAE,KAAK;EAA0C,SAAS;EAAS,CACpE;CAGD,QAAQ,EAAE;CAGV,eAAe,CACb;EAAE,KAAK;EAA8B,SAAS;EAAS,EACvD;EAAE,KAAK;EAA+B,SAAS;EAAS,CACzD;CAGD,kBAAkB,CAChB;EACE,IAAI;GAAE,KAAK;GAA0C,SAAS;GAAS;EACvE,MAAM;GAAE,KAAK;GAA8B,SAAS;GAAS;EAC9D,CACF;CAGD,sBAAsB,CACpB;EACE,KAAK;EACL,SAAS;EACT,SAAS;GAAC;GAAS;GAAY;GAAmB;EACnD,EACD;EACE,KAAK;EACL,SAAS;EACT,SAAS,CAAC,QAAQ;EACnB,CACF;CAGD,cAAc,EACZ,UAAU,CAAC;EAAE,KAAK;EAAY,SAAS;EAAS,CAAC,EAClD;CACF,CAAC"}
@@ -0,0 +1,271 @@
1
+ import * as _contractspec_lib_contracts4 from "@contractspec/lib.contracts";
2
+ import * as _contractspec_lib_schema0 from "@contractspec/lib.schema";
3
+ import * as _contractspec_module_learning_journey_track_spec0 from "@contractspec/module.learning-journey/track-spec";
4
+
5
+ //#region src/operations/index.d.ts
6
+ declare const CrmOnboardingTrackModel: _contractspec_lib_schema0.SchemaModel<{
7
+ id: {
8
+ type: _contractspec_lib_schema0.FieldType<string, string>;
9
+ isOptional: false;
10
+ };
11
+ name: {
12
+ type: _contractspec_lib_schema0.FieldType<string, string>;
13
+ isOptional: false;
14
+ };
15
+ description: {
16
+ type: _contractspec_lib_schema0.FieldType<string, string>;
17
+ isOptional: true;
18
+ };
19
+ totalXp: {
20
+ type: _contractspec_lib_schema0.FieldType<number, number>;
21
+ isOptional: true;
22
+ };
23
+ completionXpBonus: {
24
+ type: _contractspec_lib_schema0.FieldType<number, number>;
25
+ isOptional: true;
26
+ };
27
+ completionBadgeKey: {
28
+ type: _contractspec_lib_schema0.FieldType<string, string>;
29
+ isOptional: true;
30
+ };
31
+ streakHoursWindow: {
32
+ type: _contractspec_lib_schema0.FieldType<number, number>;
33
+ isOptional: true;
34
+ };
35
+ streakBonusXp: {
36
+ type: _contractspec_lib_schema0.FieldType<number, number>;
37
+ isOptional: true;
38
+ };
39
+ steps: {
40
+ type: _contractspec_lib_schema0.SchemaModel<{
41
+ id: {
42
+ type: _contractspec_lib_schema0.FieldType<string, string>;
43
+ isOptional: false;
44
+ };
45
+ title: {
46
+ type: _contractspec_lib_schema0.FieldType<string, string>;
47
+ isOptional: false;
48
+ };
49
+ description: {
50
+ type: _contractspec_lib_schema0.FieldType<string, string>;
51
+ isOptional: true;
52
+ };
53
+ completionEvent: {
54
+ type: _contractspec_lib_schema0.FieldType<string, string>;
55
+ isOptional: false;
56
+ };
57
+ sourceModule: {
58
+ type: _contractspec_lib_schema0.FieldType<string, string>;
59
+ isOptional: true;
60
+ };
61
+ xpReward: {
62
+ type: _contractspec_lib_schema0.FieldType<number, number>;
63
+ isOptional: true;
64
+ };
65
+ order: {
66
+ type: _contractspec_lib_schema0.FieldType<number, number>;
67
+ isOptional: true;
68
+ };
69
+ }>;
70
+ isArray: true;
71
+ isOptional: false;
72
+ };
73
+ }>;
74
+ declare const GetCrmOnboardingTrack: _contractspec_lib_contracts4.OperationSpec<_contractspec_lib_schema0.SchemaModel<{}>, _contractspec_lib_schema0.SchemaModel<{
75
+ track: {
76
+ type: _contractspec_lib_schema0.SchemaModel<{
77
+ id: {
78
+ type: _contractspec_lib_schema0.FieldType<string, string>;
79
+ isOptional: false;
80
+ };
81
+ name: {
82
+ type: _contractspec_lib_schema0.FieldType<string, string>;
83
+ isOptional: false;
84
+ };
85
+ description: {
86
+ type: _contractspec_lib_schema0.FieldType<string, string>;
87
+ isOptional: true;
88
+ };
89
+ totalXp: {
90
+ type: _contractspec_lib_schema0.FieldType<number, number>;
91
+ isOptional: true;
92
+ };
93
+ completionXpBonus: {
94
+ type: _contractspec_lib_schema0.FieldType<number, number>;
95
+ isOptional: true;
96
+ };
97
+ completionBadgeKey: {
98
+ type: _contractspec_lib_schema0.FieldType<string, string>;
99
+ isOptional: true;
100
+ };
101
+ streakHoursWindow: {
102
+ type: _contractspec_lib_schema0.FieldType<number, number>;
103
+ isOptional: true;
104
+ };
105
+ streakBonusXp: {
106
+ type: _contractspec_lib_schema0.FieldType<number, number>;
107
+ isOptional: true;
108
+ };
109
+ steps: {
110
+ type: _contractspec_lib_schema0.SchemaModel<{
111
+ id: {
112
+ type: _contractspec_lib_schema0.FieldType<string, string>;
113
+ isOptional: false;
114
+ };
115
+ title: {
116
+ type: _contractspec_lib_schema0.FieldType<string, string>;
117
+ isOptional: false;
118
+ };
119
+ description: {
120
+ type: _contractspec_lib_schema0.FieldType<string, string>;
121
+ isOptional: true;
122
+ };
123
+ completionEvent: {
124
+ type: _contractspec_lib_schema0.FieldType<string, string>;
125
+ isOptional: false;
126
+ };
127
+ sourceModule: {
128
+ type: _contractspec_lib_schema0.FieldType<string, string>;
129
+ isOptional: true;
130
+ };
131
+ xpReward: {
132
+ type: _contractspec_lib_schema0.FieldType<number, number>;
133
+ isOptional: true;
134
+ };
135
+ order: {
136
+ type: _contractspec_lib_schema0.FieldType<number, number>;
137
+ isOptional: true;
138
+ };
139
+ }>;
140
+ isArray: true;
141
+ isOptional: false;
142
+ };
143
+ }>;
144
+ isOptional: false;
145
+ };
146
+ }>, undefined>;
147
+ declare const RecordCrmOnboardingEvent: _contractspec_lib_contracts4.OperationSpec<_contractspec_lib_schema0.SchemaModel<{
148
+ learnerId: {
149
+ type: _contractspec_lib_schema0.FieldType<string, string>;
150
+ isOptional: false;
151
+ };
152
+ eventName: {
153
+ type: _contractspec_lib_schema0.FieldType<string, string>;
154
+ isOptional: false;
155
+ };
156
+ payload: {
157
+ type: _contractspec_lib_schema0.FieldType<unknown, unknown>;
158
+ isOptional: true;
159
+ };
160
+ occurredAt: {
161
+ type: _contractspec_lib_schema0.FieldType<Date, string>;
162
+ isOptional: true;
163
+ };
164
+ }>, _contractspec_lib_schema0.SchemaModel<{
165
+ success: {
166
+ type: _contractspec_lib_schema0.FieldType<boolean, boolean>;
167
+ isOptional: false;
168
+ };
169
+ }>, undefined>;
170
+ declare const crmOnboardingContracts: {
171
+ GetCrmOnboardingTrack: _contractspec_lib_contracts4.OperationSpec<_contractspec_lib_schema0.SchemaModel<{}>, _contractspec_lib_schema0.SchemaModel<{
172
+ track: {
173
+ type: _contractspec_lib_schema0.SchemaModel<{
174
+ id: {
175
+ type: _contractspec_lib_schema0.FieldType<string, string>;
176
+ isOptional: false;
177
+ };
178
+ name: {
179
+ type: _contractspec_lib_schema0.FieldType<string, string>;
180
+ isOptional: false;
181
+ };
182
+ description: {
183
+ type: _contractspec_lib_schema0.FieldType<string, string>;
184
+ isOptional: true;
185
+ };
186
+ totalXp: {
187
+ type: _contractspec_lib_schema0.FieldType<number, number>;
188
+ isOptional: true;
189
+ };
190
+ completionXpBonus: {
191
+ type: _contractspec_lib_schema0.FieldType<number, number>;
192
+ isOptional: true;
193
+ };
194
+ completionBadgeKey: {
195
+ type: _contractspec_lib_schema0.FieldType<string, string>;
196
+ isOptional: true;
197
+ };
198
+ streakHoursWindow: {
199
+ type: _contractspec_lib_schema0.FieldType<number, number>;
200
+ isOptional: true;
201
+ };
202
+ streakBonusXp: {
203
+ type: _contractspec_lib_schema0.FieldType<number, number>;
204
+ isOptional: true;
205
+ };
206
+ steps: {
207
+ type: _contractspec_lib_schema0.SchemaModel<{
208
+ id: {
209
+ type: _contractspec_lib_schema0.FieldType<string, string>;
210
+ isOptional: false;
211
+ };
212
+ title: {
213
+ type: _contractspec_lib_schema0.FieldType<string, string>;
214
+ isOptional: false;
215
+ };
216
+ description: {
217
+ type: _contractspec_lib_schema0.FieldType<string, string>;
218
+ isOptional: true;
219
+ };
220
+ completionEvent: {
221
+ type: _contractspec_lib_schema0.FieldType<string, string>;
222
+ isOptional: false;
223
+ };
224
+ sourceModule: {
225
+ type: _contractspec_lib_schema0.FieldType<string, string>;
226
+ isOptional: true;
227
+ };
228
+ xpReward: {
229
+ type: _contractspec_lib_schema0.FieldType<number, number>;
230
+ isOptional: true;
231
+ };
232
+ order: {
233
+ type: _contractspec_lib_schema0.FieldType<number, number>;
234
+ isOptional: true;
235
+ };
236
+ }>;
237
+ isArray: true;
238
+ isOptional: false;
239
+ };
240
+ }>;
241
+ isOptional: false;
242
+ };
243
+ }>, undefined>;
244
+ RecordCrmOnboardingEvent: _contractspec_lib_contracts4.OperationSpec<_contractspec_lib_schema0.SchemaModel<{
245
+ learnerId: {
246
+ type: _contractspec_lib_schema0.FieldType<string, string>;
247
+ isOptional: false;
248
+ };
249
+ eventName: {
250
+ type: _contractspec_lib_schema0.FieldType<string, string>;
251
+ isOptional: false;
252
+ };
253
+ payload: {
254
+ type: _contractspec_lib_schema0.FieldType<unknown, unknown>;
255
+ isOptional: true;
256
+ };
257
+ occurredAt: {
258
+ type: _contractspec_lib_schema0.FieldType<Date, string>;
259
+ isOptional: true;
260
+ };
261
+ }>, _contractspec_lib_schema0.SchemaModel<{
262
+ success: {
263
+ type: _contractspec_lib_schema0.FieldType<boolean, boolean>;
264
+ isOptional: false;
265
+ };
266
+ }>, undefined>;
267
+ track: _contractspec_module_learning_journey_track_spec0.LearningJourneyTrackSpec;
268
+ };
269
+ //#endregion
270
+ export { CrmOnboardingTrackModel, GetCrmOnboardingTrack, RecordCrmOnboardingEvent, crmOnboardingContracts };
271
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/operations/index.ts"],"sourcesContent":[],"mappings":";;;;;cAwBa,mDAAuB;;UAuBlC,yBAAA,CAAA;;;EAvBW,IAAA,EAAA;IAuBX,IAAA,qCAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;;;;;;;;;;6CAvBkC,CAAA,MAAA,EAAA,MAAA,CAAA;IAAA,UAAA,EAAA,IAAA;EAoDvB,CAAA;EAoBX,iBAAA,EAAA;IApBgC,IAAA,qCAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;;;;;;;;;;;;QAAA,IAAA,qCAAA,CAAA,MAAA,EAAA,MAAA,CAAA;QAAA,UAAA,EAAA,IAAA;MAsBrB,CAAA;MAiBX,eAAA,EAAA;;;;;iDAjBmC,CAAA,MAAA,EAAA,MAAA,CAAA;QAAA,UAAA,EAAA,IAAA;;;QAAA,IAAA,qCAAA,CAAA,MAAA,EAAA,MAAA,CAAA;QAmBxB,UAAA,EAAA,IAIZ;MAAA,CAAA;;;;;;;;;;cA7CY,uBAAqB,4BAAA,CAAA,cAoBhC,yBAAA,CApBgC,2CAAA;;;;cAAA,yBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsBrB,uDAAwB,wCAAA;;UAiBnC,yBAAA,CAAA;;;;;;;;;;;;;;;;;UAjBmC,yBAAA,CAAA;;;;cAmBxB;oEAIZ,yBAAA,CAAA"}
@@ -0,0 +1,176 @@
1
+ import { crmFirstWinTrack } from "../track.js";
2
+ import { defineCommand, defineQuery } from "@contractspec/lib.contracts";
3
+ import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
4
+
5
+ //#region src/operations/index.ts
6
+ const OWNERS = ["examples.learning-journey.crm-onboarding"];
7
+ const StepModel = defineSchemaModel({
8
+ name: "CrmOnboardingStep",
9
+ description: "Step metadata for CRM first win journey",
10
+ fields: {
11
+ id: {
12
+ type: ScalarTypeEnum.String_unsecure(),
13
+ isOptional: false
14
+ },
15
+ title: {
16
+ type: ScalarTypeEnum.String_unsecure(),
17
+ isOptional: false
18
+ },
19
+ description: {
20
+ type: ScalarTypeEnum.String_unsecure(),
21
+ isOptional: true
22
+ },
23
+ completionEvent: {
24
+ type: ScalarTypeEnum.String_unsecure(),
25
+ isOptional: false
26
+ },
27
+ sourceModule: {
28
+ type: ScalarTypeEnum.String_unsecure(),
29
+ isOptional: true
30
+ },
31
+ xpReward: {
32
+ type: ScalarTypeEnum.Int_unsecure(),
33
+ isOptional: true
34
+ },
35
+ order: {
36
+ type: ScalarTypeEnum.Int_unsecure(),
37
+ isOptional: true
38
+ }
39
+ }
40
+ });
41
+ const CrmOnboardingTrackModel = defineSchemaModel({
42
+ name: "CrmOnboardingTrack",
43
+ description: "CRM onboarding track definition",
44
+ fields: {
45
+ id: {
46
+ type: ScalarTypeEnum.String_unsecure(),
47
+ isOptional: false
48
+ },
49
+ name: {
50
+ type: ScalarTypeEnum.String_unsecure(),
51
+ isOptional: false
52
+ },
53
+ description: {
54
+ type: ScalarTypeEnum.String_unsecure(),
55
+ isOptional: true
56
+ },
57
+ totalXp: {
58
+ type: ScalarTypeEnum.Int_unsecure(),
59
+ isOptional: true
60
+ },
61
+ completionXpBonus: {
62
+ type: ScalarTypeEnum.Int_unsecure(),
63
+ isOptional: true
64
+ },
65
+ completionBadgeKey: {
66
+ type: ScalarTypeEnum.String_unsecure(),
67
+ isOptional: true
68
+ },
69
+ streakHoursWindow: {
70
+ type: ScalarTypeEnum.Int_unsecure(),
71
+ isOptional: true
72
+ },
73
+ streakBonusXp: {
74
+ type: ScalarTypeEnum.Int_unsecure(),
75
+ isOptional: true
76
+ },
77
+ steps: {
78
+ type: StepModel,
79
+ isArray: true,
80
+ isOptional: false
81
+ }
82
+ }
83
+ });
84
+ const TrackResponseModel = defineSchemaModel({
85
+ name: "CrmOnboardingTrackResponse",
86
+ description: "Response wrapper for CRM onboarding track",
87
+ fields: { track: {
88
+ type: CrmOnboardingTrackModel,
89
+ isOptional: false
90
+ } }
91
+ });
92
+ const RecordDemoEventInput = defineSchemaModel({
93
+ name: "CrmOnboardingRecordEventInput",
94
+ description: "Emit a demo event to advance CRM onboarding steps",
95
+ fields: {
96
+ learnerId: {
97
+ type: ScalarTypeEnum.String_unsecure(),
98
+ isOptional: false
99
+ },
100
+ eventName: {
101
+ type: ScalarTypeEnum.String_unsecure(),
102
+ isOptional: false
103
+ },
104
+ payload: {
105
+ type: ScalarTypeEnum.JSON(),
106
+ isOptional: true
107
+ },
108
+ occurredAt: {
109
+ type: ScalarTypeEnum.DateTime(),
110
+ isOptional: true
111
+ }
112
+ }
113
+ });
114
+ const SuccessModel = defineSchemaModel({
115
+ name: "CrmOnboardingSuccess",
116
+ description: "Generic success response",
117
+ fields: { success: {
118
+ type: ScalarTypeEnum.Boolean(),
119
+ isOptional: false
120
+ } }
121
+ });
122
+ const GetCrmOnboardingTrack = defineQuery({
123
+ meta: {
124
+ key: "learningJourney.crmOnboarding.getTrack",
125
+ version: "1.0.0",
126
+ stability: "experimental",
127
+ owners: [...OWNERS],
128
+ tags: [
129
+ "learning",
130
+ "crm",
131
+ "onboarding"
132
+ ],
133
+ description: "Fetch CRM first win track definition.",
134
+ goal: "Expose track metadata to UIs and templates.",
135
+ context: "Called by Studio/Playground to render journey steps."
136
+ },
137
+ io: {
138
+ input: defineSchemaModel({
139
+ name: "CrmOnboardingTrackInput",
140
+ description: "Track input",
141
+ fields: {}
142
+ }),
143
+ output: TrackResponseModel
144
+ },
145
+ policy: { auth: "user" }
146
+ });
147
+ const RecordCrmOnboardingEvent = defineCommand({
148
+ meta: {
149
+ key: "learningJourney.crmOnboarding.recordEvent",
150
+ version: "1.0.0",
151
+ stability: "experimental",
152
+ owners: [...OWNERS],
153
+ tags: [
154
+ "learning",
155
+ "crm",
156
+ "onboarding"
157
+ ],
158
+ description: "Record an event to advance CRM onboarding progress.",
159
+ goal: "Advance steps via domain events in demo/sandbox contexts.",
160
+ context: "Called by handlers or demo scripts to emit step completion events."
161
+ },
162
+ io: {
163
+ input: RecordDemoEventInput,
164
+ output: SuccessModel
165
+ },
166
+ policy: { auth: "user" }
167
+ });
168
+ const crmOnboardingContracts = {
169
+ GetCrmOnboardingTrack,
170
+ RecordCrmOnboardingEvent,
171
+ track: crmFirstWinTrack
172
+ };
173
+
174
+ //#endregion
175
+ export { CrmOnboardingTrackModel, GetCrmOnboardingTrack, RecordCrmOnboardingEvent, crmOnboardingContracts };
176
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/operations/index.ts"],"sourcesContent":["import { defineSchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';\nimport { defineCommand, defineQuery } from '@contractspec/lib.contracts';\n\nimport { crmFirstWinTrack } from '../track';\n\nconst OWNERS = ['examples.learning-journey.crm-onboarding'] as const;\n\nconst StepModel = defineSchemaModel({\n name: 'CrmOnboardingStep',\n description: 'Step metadata for CRM first win journey',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n title: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n completionEvent: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n sourceModule: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n xpReward: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n order: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n },\n});\n\nexport const CrmOnboardingTrackModel = defineSchemaModel({\n name: 'CrmOnboardingTrack',\n description: 'CRM onboarding track definition',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n totalXp: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n completionXpBonus: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n },\n completionBadgeKey: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n streakHoursWindow: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n },\n streakBonusXp: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n steps: { type: StepModel, isArray: true, isOptional: false },\n },\n});\n\nconst TrackResponseModel = defineSchemaModel({\n name: 'CrmOnboardingTrackResponse',\n description: 'Response wrapper for CRM onboarding track',\n fields: {\n track: { type: CrmOnboardingTrackModel, isOptional: false },\n },\n});\n\nconst RecordDemoEventInput = defineSchemaModel({\n name: 'CrmOnboardingRecordEventInput',\n description: 'Emit a demo event to advance CRM onboarding steps',\n fields: {\n learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n eventName: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n payload: { type: ScalarTypeEnum.JSON(), isOptional: true },\n occurredAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n },\n});\n\nconst SuccessModel = defineSchemaModel({\n name: 'CrmOnboardingSuccess',\n description: 'Generic success response',\n fields: {\n success: { type: ScalarTypeEnum.Boolean(), isOptional: false },\n },\n});\n\nexport const GetCrmOnboardingTrack = defineQuery({\n meta: {\n key: 'learningJourney.crmOnboarding.getTrack',\n version: '1.0.0',\n stability: 'experimental',\n owners: [...OWNERS],\n tags: ['learning', 'crm', 'onboarding'],\n description: 'Fetch CRM first win track definition.',\n goal: 'Expose track metadata to UIs and templates.',\n context: 'Called by Studio/Playground to render journey steps.',\n },\n io: {\n input: defineSchemaModel({\n name: 'CrmOnboardingTrackInput',\n description: 'Track input',\n fields: {},\n }),\n output: TrackResponseModel,\n },\n policy: { auth: 'user' },\n});\n\nexport const RecordCrmOnboardingEvent = defineCommand({\n meta: {\n key: 'learningJourney.crmOnboarding.recordEvent',\n version: '1.0.0',\n stability: 'experimental',\n owners: [...OWNERS],\n tags: ['learning', 'crm', 'onboarding'],\n description: 'Record an event to advance CRM onboarding progress.',\n goal: 'Advance steps via domain events in demo/sandbox contexts.',\n context:\n 'Called by handlers or demo scripts to emit step completion events.',\n },\n io: {\n input: RecordDemoEventInput,\n output: SuccessModel,\n },\n policy: { auth: 'user' },\n});\n\nexport const crmOnboardingContracts = {\n GetCrmOnboardingTrack,\n RecordCrmOnboardingEvent,\n track: crmFirstWinTrack,\n};\n"],"mappings":";;;;;AAKA,MAAM,SAAS,CAAC,2CAA2C;AAE3D,MAAM,YAAY,kBAAkB;CAClC,MAAM;CACN,aAAa;CACb,QAAQ;EACN,IAAI;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACjE,OAAO;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACpE,aAAa;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACzE,iBAAiB;GACf,MAAM,eAAe,iBAAiB;GACtC,YAAY;GACb;EACD,cAAc;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EAC1E,UAAU;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EACnE,OAAO;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EACjE;CACF,CAAC;AAEF,MAAa,0BAA0B,kBAAkB;CACvD,MAAM;CACN,aAAa;CACb,QAAQ;EACN,IAAI;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACjE,MAAM;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACnE,aAAa;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACzE,SAAS;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EAClE,mBAAmB;GACjB,MAAM,eAAe,cAAc;GACnC,YAAY;GACb;EACD,oBAAoB;GAClB,MAAM,eAAe,iBAAiB;GACtC,YAAY;GACb;EACD,mBAAmB;GACjB,MAAM,eAAe,cAAc;GACnC,YAAY;GACb;EACD,eAAe;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EACxE,OAAO;GAAE,MAAM;GAAW,SAAS;GAAM,YAAY;GAAO;EAC7D;CACF,CAAC;AAEF,MAAM,qBAAqB,kBAAkB;CAC3C,MAAM;CACN,aAAa;CACb,QAAQ,EACN,OAAO;EAAE,MAAM;EAAyB,YAAY;EAAO,EAC5D;CACF,CAAC;AAEF,MAAM,uBAAuB,kBAAkB;CAC7C,MAAM;CACN,aAAa;CACb,QAAQ;EACN,WAAW;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACxE,WAAW;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACxE,SAAS;GAAE,MAAM,eAAe,MAAM;GAAE,YAAY;GAAM;EAC1D,YAAY;GAAE,MAAM,eAAe,UAAU;GAAE,YAAY;GAAM;EAClE;CACF,CAAC;AAEF,MAAM,eAAe,kBAAkB;CACrC,MAAM;CACN,aAAa;CACb,QAAQ,EACN,SAAS;EAAE,MAAM,eAAe,SAAS;EAAE,YAAY;EAAO,EAC/D;CACF,CAAC;AAEF,MAAa,wBAAwB,YAAY;CAC/C,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAO;GAAa;EACvC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO,kBAAkB;GACvB,MAAM;GACN,aAAa;GACb,QAAQ,EAAE;GACX,CAAC;EACF,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACzB,CAAC;AAEF,MAAa,2BAA2B,cAAc;CACpD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAO;GAAa;EACvC,aAAa;EACb,MAAM;EACN,SACE;EACH;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACzB,CAAC;AAEF,MAAa,yBAAyB;CACpC;CACA;CACA,OAAO;CACR"}
@@ -0,0 +1,9 @@
1
+ import * as _contractspec_lib_contracts1 from "@contractspec/lib.contracts";
2
+
3
+ //#region src/presentations/index.d.ts
4
+ declare const CrmOnboardingTrackPresentation: _contractspec_lib_contracts1.PresentationSpec;
5
+ declare const CrmOnboardingWidgetPresentation: _contractspec_lib_contracts1.PresentationSpec;
6
+ declare const crmOnboardingPresentations: _contractspec_lib_contracts1.PresentationSpec[];
7
+ //#endregion
8
+ export { CrmOnboardingTrackPresentation, CrmOnboardingWidgetPresentation, crmOnboardingPresentations };
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/presentations/index.ts"],"sourcesContent":[],"mappings":";;;cAgBa,gCAcX,4BAAA,CAdyC;cAgB9B,iCAaX,4BAAA,CAb0C;cAe/B,4BAGZ,4BAAA,CAHsC,gBAAA"}