@contractspec/example.learning-journey-crm-onboarding 1.44.1 → 1.45.1

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.
@@ -6,36 +6,36 @@ $ tsdown
6
6
  ℹ tsconfig: tsconfig.json
7
7
  ℹ Build start
8
8
  ℹ Cleaning 35 files
9
- ℹ dist/operations/index.js 4.22 kB │ gzip: 1.08 kB
9
+ ℹ dist/operations/index.js 4.24 kB │ gzip: 1.08 kB
10
10
  ℹ dist/track.js 2.54 kB │ gzip: 0.81 kB
11
- ℹ dist/learning-journey-crm-onboarding.feature.js 1.52 kB │ gzip: 0.56 kB
11
+ ℹ dist/learning-journey-crm-onboarding.feature.js 1.58 kB │ gzip: 0.56 kB
12
12
  ℹ dist/docs/crm-onboarding.docblock.js 1.48 kB │ gzip: 0.75 kB
13
- ℹ dist/presentations/index.js 1.39 kB │ gzip: 0.55 kB
13
+ ℹ dist/presentations/index.js 1.40 kB │ gzip: 0.55 kB
14
14
  ℹ dist/index.js 1.01 kB │ gzip: 0.30 kB
15
- ℹ dist/example.js 0.81 kB │ gzip: 0.46 kB
15
+ ℹ dist/example.js 0.91 kB │ gzip: 0.51 kB
16
16
  ℹ dist/handlers/demo.handlers.js 0.77 kB │ gzip: 0.39 kB
17
17
  ℹ dist/docs/index.js 0.04 kB │ gzip: 0.06 kB
18
- ℹ dist/operations/index.js.map 6.31 kB │ gzip: 1.59 kB
18
+ ℹ dist/operations/index.js.map 6.32 kB │ gzip: 1.60 kB
19
19
  ℹ dist/track.js.map 4.15 kB │ gzip: 1.13 kB
20
- ℹ dist/learning-journey-crm-onboarding.feature.js.map 2.85 kB │ gzip: 1.04 kB
21
- ℹ dist/presentations/index.js.map 2.38 kB │ gzip: 0.85 kB
20
+ ℹ dist/learning-journey-crm-onboarding.feature.js.map 2.91 kB │ gzip: 1.05 kB
21
+ ℹ dist/presentations/index.js.map 2.40 kB │ gzip: 0.86 kB
22
22
  ℹ dist/docs/crm-onboarding.docblock.js.map 1.92 kB │ gzip: 0.92 kB
23
23
  ℹ dist/handlers/demo.handlers.js.map 1.62 kB │ gzip: 0.70 kB
24
- ℹ dist/example.js.map 1.16 kB │ gzip: 0.62 kB
24
+ ℹ dist/example.js.map 1.43 kB │ gzip: 0.72 kB
25
25
  ℹ dist/operations/index.d.ts.map 0.84 kB │ gzip: 0.32 kB
26
26
  ℹ dist/handlers/demo.handlers.d.ts.map 0.66 kB │ gzip: 0.35 kB
27
27
  ℹ dist/learning-journey-crm-onboarding.feature.d.ts.map 0.20 kB │ gzip: 0.14 kB
28
28
  ℹ dist/presentations/index.d.ts.map 0.19 kB │ gzip: 0.16 kB
29
- ℹ dist/example.d.ts.map 0.14 kB │ gzip: 0.13 kB
30
29
  ℹ dist/track.d.ts.map 0.14 kB │ gzip: 0.13 kB
30
+ ℹ dist/example.d.ts.map 0.12 kB │ gzip: 0.12 kB
31
31
  ℹ dist/operations/index.d.ts 8.80 kB │ gzip: 0.93 kB
32
- ℹ dist/example.d.ts 1.04 kB │ gzip: 0.45 kB
33
32
  ℹ dist/index.d.ts 0.97 kB │ gzip: 0.29 kB
34
33
  ℹ dist/handlers/demo.handlers.d.ts 0.95 kB │ gzip: 0.40 kB
35
34
  ℹ dist/learning-journey-crm-onboarding.feature.d.ts 0.46 kB │ gzip: 0.26 kB
36
35
  ℹ dist/presentations/index.d.ts 0.45 kB │ gzip: 0.20 kB
37
36
  ℹ dist/track.d.ts 0.33 kB │ gzip: 0.20 kB
37
+ ℹ dist/example.d.ts 0.20 kB │ gzip: 0.16 kB
38
38
  ℹ dist/docs/crm-onboarding.docblock.d.ts 0.01 kB │ gzip: 0.03 kB
39
39
  ℹ dist/docs/index.d.ts 0.01 kB │ gzip: 0.03 kB
40
- ℹ 31 files, total: 49.35 kB
41
- ✔ Build complete in 11074ms
40
+ ℹ 31 files, total: 49.05 kB
41
+ ✔ Build complete in 14284ms
@@ -7,36 +7,36 @@ $ tsdown
7
7
  ℹ target: esnext
8
8
  ℹ tsconfig: tsconfig.json
9
9
  ℹ Build start
10
- ℹ dist/operations/index.js 4.22 kB │ gzip: 1.08 kB
10
+ ℹ dist/operations/index.js 4.24 kB │ gzip: 1.08 kB
11
11
  ℹ dist/track.js 2.54 kB │ gzip: 0.81 kB
12
- ℹ dist/learning-journey-crm-onboarding.feature.js 1.52 kB │ gzip: 0.56 kB
12
+ ℹ dist/learning-journey-crm-onboarding.feature.js 1.58 kB │ gzip: 0.56 kB
13
13
  ℹ dist/docs/crm-onboarding.docblock.js 1.48 kB │ gzip: 0.75 kB
14
- ℹ dist/presentations/index.js 1.39 kB │ gzip: 0.55 kB
14
+ ℹ dist/presentations/index.js 1.40 kB │ gzip: 0.55 kB
15
15
  ℹ dist/index.js 1.01 kB │ gzip: 0.30 kB
16
- ℹ dist/example.js 0.81 kB │ gzip: 0.46 kB
16
+ ℹ dist/example.js 0.91 kB │ gzip: 0.51 kB
17
17
  ℹ dist/handlers/demo.handlers.js 0.77 kB │ gzip: 0.39 kB
18
18
  ℹ dist/docs/index.js 0.04 kB │ gzip: 0.06 kB
19
- ℹ dist/operations/index.js.map 6.31 kB │ gzip: 1.59 kB
19
+ ℹ dist/operations/index.js.map 6.32 kB │ gzip: 1.60 kB
20
20
  ℹ dist/track.js.map 4.15 kB │ gzip: 1.13 kB
21
- ℹ dist/learning-journey-crm-onboarding.feature.js.map 2.85 kB │ gzip: 1.04 kB
22
- ℹ dist/presentations/index.js.map 2.38 kB │ gzip: 0.85 kB
21
+ ℹ dist/learning-journey-crm-onboarding.feature.js.map 2.91 kB │ gzip: 1.05 kB
22
+ ℹ dist/presentations/index.js.map 2.40 kB │ gzip: 0.86 kB
23
23
  ℹ dist/docs/crm-onboarding.docblock.js.map 1.92 kB │ gzip: 0.92 kB
24
24
  ℹ dist/handlers/demo.handlers.js.map 1.62 kB │ gzip: 0.70 kB
25
- ℹ dist/example.js.map 1.16 kB │ gzip: 0.62 kB
25
+ ℹ dist/example.js.map 1.43 kB │ gzip: 0.72 kB
26
26
  ℹ dist/operations/index.d.ts.map 0.84 kB │ gzip: 0.32 kB
27
27
  ℹ dist/handlers/demo.handlers.d.ts.map 0.66 kB │ gzip: 0.35 kB
28
28
  ℹ dist/learning-journey-crm-onboarding.feature.d.ts.map 0.20 kB │ gzip: 0.14 kB
29
29
  ℹ dist/presentations/index.d.ts.map 0.19 kB │ gzip: 0.16 kB
30
- ℹ dist/example.d.ts.map 0.14 kB │ gzip: 0.13 kB
31
30
  ℹ dist/track.d.ts.map 0.14 kB │ gzip: 0.13 kB
31
+ ℹ dist/example.d.ts.map 0.12 kB │ gzip: 0.12 kB
32
32
  ℹ dist/operations/index.d.ts 8.80 kB │ gzip: 0.93 kB
33
- ℹ dist/example.d.ts 1.04 kB │ gzip: 0.45 kB
34
33
  ℹ dist/index.d.ts 0.97 kB │ gzip: 0.29 kB
35
34
  ℹ dist/handlers/demo.handlers.d.ts 0.95 kB │ gzip: 0.40 kB
36
35
  ℹ dist/learning-journey-crm-onboarding.feature.d.ts 0.46 kB │ gzip: 0.26 kB
37
36
  ℹ dist/presentations/index.d.ts 0.45 kB │ gzip: 0.20 kB
38
37
  ℹ dist/track.d.ts 0.33 kB │ gzip: 0.20 kB
38
+ ℹ dist/example.d.ts 0.20 kB │ gzip: 0.16 kB
39
39
  ℹ dist/docs/crm-onboarding.docblock.d.ts 0.01 kB │ gzip: 0.03 kB
40
40
  ℹ dist/docs/index.d.ts 0.01 kB │ gzip: 0.03 kB
41
- ℹ 31 files, total: 49.35 kB
42
- ✔ Build complete in 13023ms
41
+ ℹ 31 files, total: 49.05 kB
42
+ ✔ Build complete in 10291ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,44 @@
1
1
  # @contractspec/example.learning-journey-crm-onboarding
2
2
 
3
+ ## 1.45.1
4
+
5
+ ### Patch Changes
6
+
7
+ - feat: improve app config and examples contracts
8
+ - Updated dependencies
9
+ - @contractspec/module.learning-journey@1.45.1
10
+ - @contractspec/example.crm-pipeline@1.45.1
11
+ - @contractspec/lib.contracts@1.45.1
12
+ - @contractspec/lib.schema@1.45.1
13
+
14
+ ## 1.45.0
15
+
16
+ ### Minor Changes
17
+
18
+ - e73ca1d: feat: improve app config and examples contracts
19
+ feat: Contract layers support (features, examples, app-configs)
20
+
21
+ ### New CLI Commands
22
+ - `contractspec list layers` - List all contract layers with filtering
23
+
24
+ ### Enhanced Commands
25
+ - `contractspec ci` - New `layers` check category validates features/examples/config
26
+ - `contractspec doctor` - New `layers` health checks
27
+ - `contractspec integrity` - Now shows layer statistics
28
+
29
+ ### New APIs
30
+ - `discoverLayers()` - Scan workspace for all layer files
31
+ - `scanExampleSource()` - Parse ExampleSpec from source code
32
+ - `isExampleFile()` - Check if file is an example spec
33
+
34
+ ### Patch Changes
35
+
36
+ - Updated dependencies [e73ca1d]
37
+ - @contractspec/module.learning-journey@1.45.0
38
+ - @contractspec/example.crm-pipeline@1.45.0
39
+ - @contractspec/lib.contracts@1.45.0
40
+ - @contractspec/lib.schema@1.45.0
41
+
3
42
  ## 1.44.1
4
43
 
5
44
  ### Patch Changes
package/dist/example.d.ts CHANGED
@@ -1,33 +1,7 @@
1
+ import { ExampleSpec } from "@contractspec/lib.contracts";
2
+
1
3
  //#region src/example.d.ts
2
- declare const example: {
3
- readonly id: "learning-journey-crm-onboarding";
4
- readonly title: "Learning Journey — CRM First Win";
5
- readonly summary: "Onboarding track for CRM Pipeline driving users from empty CRM to first closed-won deal.";
6
- readonly tags: readonly ["learning", "crm", "onboarding"];
7
- readonly kind: "template";
8
- readonly visibility: "public";
9
- readonly docs: {
10
- readonly rootDocId: "docs.learning-journey.crm-onboarding";
11
- };
12
- readonly entrypoints: {
13
- readonly packageName: "@contractspec/example.learning-journey-crm-onboarding";
14
- readonly docs: "./docs";
15
- };
16
- readonly surfaces: {
17
- readonly templates: true;
18
- readonly sandbox: {
19
- readonly enabled: true;
20
- readonly modes: readonly ["playground", "markdown"];
21
- };
22
- readonly studio: {
23
- readonly enabled: true;
24
- readonly installable: true;
25
- };
26
- readonly mcp: {
27
- readonly enabled: true;
28
- };
29
- };
30
- };
4
+ declare const example: ExampleSpec;
31
5
  //#endregion
32
6
  export { example as default };
33
7
  //# sourceMappingURL=example.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"sourcesContent":[],"mappings":";cAAM;EAAA,SAAA,EAqBI,EAAA,iCAAA"}
1
+ {"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"sourcesContent":[],"mappings":";;;cAEM,SAAS"}
package/dist/example.js CHANGED
@@ -1,15 +1,20 @@
1
1
  //#region src/example.ts
2
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",
3
+ meta: {
4
+ key: "learning-journey-crm-onboarding",
5
+ version: "1.0.0",
6
+ title: "Learning Journey — CRM First Win",
7
+ description: "Onboarding track for CRM Pipeline driving users from empty CRM to first closed-won deal.",
8
+ kind: "template",
9
+ visibility: "public",
10
+ stability: "experimental",
11
+ owners: ["@platform.core"],
12
+ tags: [
13
+ "learning",
14
+ "crm",
15
+ "onboarding"
16
+ ]
17
+ },
13
18
  docs: { rootDocId: "docs.learning-journey.crm-onboarding" },
14
19
  entrypoints: {
15
20
  packageName: "@contractspec/example.learning-journey-crm-onboarding",
@@ -1 +1 @@
1
- {"version":3,"file":"example.js","names":[],"sources":["../src/example.ts"],"sourcesContent":["const example = {\n id: 'learning-journey-crm-onboarding',\n title: 'Learning Journey — CRM First Win',\n summary:\n 'Onboarding track for CRM Pipeline driving users from empty CRM to first closed-won deal.',\n tags: ['learning', 'crm', 'onboarding'],\n kind: 'template',\n visibility: 'public',\n docs: {\n rootDocId: 'docs.learning-journey.crm-onboarding',\n },\n entrypoints: {\n packageName: '@contractspec/example.learning-journey-crm-onboarding',\n docs: './docs',\n },\n surfaces: {\n templates: true,\n sandbox: { enabled: true, modes: ['playground', 'markdown'] },\n studio: { enabled: true, installable: true },\n mcp: { enabled: true },\n },\n} as const;\n\nexport default example;\n"],"mappings":";AAAA,MAAM,UAAU;CACd,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;EAAC;EAAY;EAAO;EAAa;CACvC,MAAM;CACN,YAAY;CACZ,MAAM,EACJ,WAAW,wCACZ;CACD,aAAa;EACX,aAAa;EACb,MAAM;EACP;CACD,UAAU;EACR,WAAW;EACX,SAAS;GAAE,SAAS;GAAM,OAAO,CAAC,cAAc,WAAW;GAAE;EAC7D,QAAQ;GAAE,SAAS;GAAM,aAAa;GAAM;EAC5C,KAAK,EAAE,SAAS,MAAM;EACvB;CACF;AAED,sBAAe"}
1
+ {"version":3,"file":"example.js","names":["example: ExampleSpec"],"sources":["../src/example.ts"],"sourcesContent":["import type { ExampleSpec } from '@contractspec/lib.contracts';\n\nconst example: ExampleSpec = {\n meta: {\n key: 'learning-journey-crm-onboarding',\n version: '1.0.0',\n title: 'Learning Journey — CRM First Win',\n description:\n 'Onboarding track for CRM Pipeline driving users from empty CRM to first closed-won deal.',\n kind: 'template',\n visibility: 'public',\n stability: 'experimental',\n owners: ['@platform.core'],\n tags: ['learning', 'crm', 'onboarding'],\n },\n docs: {\n rootDocId: 'docs.learning-journey.crm-onboarding',\n },\n entrypoints: {\n packageName: '@contractspec/example.learning-journey-crm-onboarding',\n docs: './docs',\n },\n surfaces: {\n templates: true,\n sandbox: { enabled: true, modes: ['playground', 'markdown'] },\n studio: { enabled: true, installable: true },\n mcp: { enabled: true },\n },\n};\n\nexport default example;\n"],"mappings":";AAEA,MAAMA,UAAuB;CAC3B,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aACE;EACF,MAAM;EACN,YAAY;EACZ,WAAW;EACX,QAAQ,CAAC,iBAAiB;EAC1B,MAAM;GAAC;GAAY;GAAO;GAAa;EACxC;CACD,MAAM,EACJ,WAAW,wCACZ;CACD,aAAa;EACX,aAAa;EACb,MAAM;EACP;CACD,UAAU;EACR,WAAW;EACX,SAAS;GAAE,SAAS;GAAM,OAAO,CAAC,cAAc,WAAW;GAAE;EAC7D,QAAQ;GAAE,SAAS;GAAM,aAAa;GAAM;EAC5C,KAAK,EAAE,SAAS,MAAM;EACvB;CACF;AAED,sBAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"demo.handlers.d.ts","names":[],"sources":["../../src/handlers/demo.handlers.ts"],"sourcesContent":[],"mappings":";UAEU,UAAA;EAAA,SAAA,EAAA,MAAU;EAMV,UAAA,CAAA,EAJK,IAIL;EAQL,OAAA,CAAA,EAXO,MAWI,CAAA,MAAA,EAAW,OAAA,CAAA;AAE3B;AASA,UAnBU,oBAAA,CAmBqB;EAElB,SAAA,EAAA,MAAA;EACA,IAAA,EAAA,MAAA;EACX,UAAA,EApBY,IAoBZ;EAAA,OAAA,EAAA,MAAA;EAAA,OAAA,CAAA,EAlBU,MAkBV,CAAA,MAAA,EAAA,OAAA,CAAA;;KAfG,WAAA,GAgBM,CAAA,KAAA,EAhBgB,oBAgBhB,EAAA,GAAA,OAAA;AAAW,cAdT,mBAcS,EAAA,SAAA,CAAA,kBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,YAAA,EAAA,UAAA,EAAA,gBAAA,CAAA;AAYT,KAjBD,QAAA,GAiBC,CAAA,OAjBkB,mBAkBrB,CAAA,CAAA,MACC,CAAA;cAjBE,oCACA;;;;GACsC,qBACxC;cAYE,qCACH,qBACC"}
1
+ {"version":3,"file":"demo.handlers.d.ts","names":[],"sources":["../../src/handlers/demo.handlers.ts"],"sourcesContent":[],"mappings":";UAEU,UAAA;EAAA,SAAA,EAAA,MAAU;EAMV,UAAA,CAAA,EAJK,IAIL;EAQL,OAAA,CAAA,EAXO,MAWI,CAAA,MAAA,EAAA,OAAW,CAAA;AAE3B;AASA,UAnBU,oBAAA,CAmBqB;EAElB,SAAA,EAAA,MAAA;EACA,IAAA,EAAA,MAAA;EACX,UAAA,EApBY,IAoBZ;EAAA,OAAA,EAAA,MAAA;EAAA,OAAA,CAAA,EAlBU,MAkBV,CAAA,MAAA,EAAA,OAAA,CAAA;;KAfG,WAAA,GAgBM,CAAA,KAAA,EAhBgB,oBAgBhB,EAAA,GAAA,OAAA;AAAW,cAdT,mBAcS,EAAA,SAAA,CAAA,kBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,YAAA,EAAA,UAAA,EAAA,gBAAA,CAAA;AAYT,KAjBD,QAAA,GAiBC,CAAA,OAjBkB,mBAkBrB,CAAA,CAAA,MACC,CAAA;cAjBE,oCACA;;;;GACsC,qBACxC;cAYE,qCACH,qBACC"}
@@ -17,36 +17,36 @@ const LearningJourneyCrmOnboardingFeature = {
17
17
  "journey"
18
18
  ],
19
19
  stability: "experimental",
20
- version: 1
20
+ version: "1.0.0"
21
21
  },
22
22
  operations: [{
23
23
  key: "learningJourney.crmOnboarding.recordEvent",
24
- version: 1
24
+ version: "1.0.0"
25
25
  }, {
26
26
  key: "learningJourney.crmOnboarding.getTrack",
27
- version: 1
27
+ version: "1.0.0"
28
28
  }],
29
29
  events: [],
30
30
  presentations: [{
31
31
  key: "learning.journey.crm.track",
32
- version: 1
32
+ version: "1.0.0"
33
33
  }, {
34
34
  key: "learning.journey.crm.widget",
35
- version: 1
35
+ version: "1.0.0"
36
36
  }],
37
37
  opToPresentation: [{
38
38
  op: {
39
39
  key: "learningJourney.crmOnboarding.getTrack",
40
- version: 1
40
+ version: "1.0.0"
41
41
  },
42
42
  pres: {
43
43
  key: "learning.journey.crm.track",
44
- version: 1
44
+ version: "1.0.0"
45
45
  }
46
46
  }],
47
47
  presentationsTargets: [{
48
48
  key: "learning.journey.crm.track",
49
- version: 1,
49
+ version: "1.0.0",
50
50
  targets: [
51
51
  "react",
52
52
  "markdown",
@@ -54,12 +54,12 @@ const LearningJourneyCrmOnboardingFeature = {
54
54
  ]
55
55
  }, {
56
56
  key: "learning.journey.crm.widget",
57
- version: 1,
57
+ version: "1.0.0",
58
58
  targets: ["react"]
59
59
  }],
60
60
  capabilities: { requires: [{
61
61
  key: "identity",
62
- version: 1
62
+ version: "1.0.0"
63
63
  }] }
64
64
  };
65
65
 
@@ -1 +1 @@
1
- {"version":3,"file":"learning-journey-crm-onboarding.feature.js","names":["LearningJourneyCrmOnboardingFeature: FeatureModuleSpec"],"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 type { FeatureModuleSpec } 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: FeatureModuleSpec = {\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,\n },\n\n // All contract operations included in this feature\n operations: [\n { key: 'learningJourney.crmOnboarding.recordEvent', version: 1 },\n { key: 'learningJourney.crmOnboarding.getTrack', version: 1 },\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 },\n { key: 'learning.journey.crm.widget', version: 1 },\n ],\n\n // Link operations to their primary presentations\n opToPresentation: [\n {\n op: { key: 'learningJourney.crmOnboarding.getTrack', version: 1 },\n pres: { key: 'learning.journey.crm.track', version: 1 },\n },\n ],\n\n // Target requirements for multi-surface rendering\n presentationsTargets: [\n {\n key: 'learning.journey.crm.track',\n version: 1,\n targets: ['react', 'markdown', 'application/json'],\n },\n {\n key: 'learning.journey.crm.widget',\n version: 1,\n targets: ['react'],\n },\n ],\n\n // Capability requirements\n capabilities: {\n requires: [{ key: 'identity', version: 1 }],\n },\n};\n"],"mappings":";;;;;AAWA,MAAaA,sCAAyD;CACpE,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;EAAG,EAChE;EAAE,KAAK;EAA0C,SAAS;EAAG,CAC9D;CAGD,QAAQ,EAAE;CAGV,eAAe,CACb;EAAE,KAAK;EAA8B,SAAS;EAAG,EACjD;EAAE,KAAK;EAA+B,SAAS;EAAG,CACnD;CAGD,kBAAkB,CAChB;EACE,IAAI;GAAE,KAAK;GAA0C,SAAS;GAAG;EACjE,MAAM;GAAE,KAAK;GAA8B,SAAS;GAAG;EACxD,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;EAAG,CAAC,EAC5C;CACF"}
1
+ {"version":3,"file":"learning-journey-crm-onboarding.feature.js","names":["LearningJourneyCrmOnboardingFeature: FeatureModuleSpec"],"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 type { FeatureModuleSpec } 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: FeatureModuleSpec = {\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,MAAaA,sCAAyD;CACpE,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"}
@@ -122,7 +122,7 @@ const SuccessModel = defineSchemaModel({
122
122
  const GetCrmOnboardingTrack = defineQuery({
123
123
  meta: {
124
124
  key: "learningJourney.crmOnboarding.getTrack",
125
- version: 1,
125
+ version: "1.0.0",
126
126
  stability: "experimental",
127
127
  owners: [...OWNERS],
128
128
  tags: [
@@ -147,7 +147,7 @@ const GetCrmOnboardingTrack = defineQuery({
147
147
  const RecordCrmOnboardingEvent = defineCommand({
148
148
  meta: {
149
149
  key: "learningJourney.crmOnboarding.recordEvent",
150
- version: 1,
150
+ version: "1.0.0",
151
151
  stability: "experimental",
152
152
  owners: [...OWNERS],
153
153
  tags: [
@@ -1 +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,\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,\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"}
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"}
@@ -18,7 +18,7 @@ const baseMeta = {
18
18
  const CrmOnboardingTrackPresentation = {
19
19
  meta: {
20
20
  key: "learning.journey.crm.track",
21
- version: 1,
21
+ version: "1.0.0",
22
22
  description: "CRM first win track detail",
23
23
  ...baseMeta
24
24
  },
@@ -37,7 +37,7 @@ const CrmOnboardingTrackPresentation = {
37
37
  const CrmOnboardingWidgetPresentation = {
38
38
  meta: {
39
39
  key: "learning.journey.crm.widget",
40
- version: 1,
40
+ version: "1.0.0",
41
41
  description: "Compact widget for CRM onboarding progress",
42
42
  ...baseMeta
43
43
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["baseMeta: Pick<\n PresentationSpecMeta,\n 'domain' | 'owners' | 'tags' | 'title' | 'stability' | 'goal' | 'context'\n>","CrmOnboardingTrackPresentation: PresentationSpec","CrmOnboardingWidgetPresentation: PresentationSpec"],"sources":["../../src/presentations/index.ts"],"sourcesContent":["import type {\n PresentationSpecMeta,\n PresentationSpec,\n} from '@contractspec/lib.contracts';\nimport { StabilityEnum } from '@contractspec/lib.contracts';\nimport { CrmOnboardingTrackModel } from '../operations';\n\nconst baseMeta: Pick<\n PresentationSpecMeta,\n 'domain' | 'owners' | 'tags' | 'title' | 'stability' | 'goal' | 'context'\n> = {\n domain: 'learning-journey',\n title: 'CRM Onboarding',\n owners: ['@examples.learning-journey.crm-onboarding'],\n tags: ['learning', 'crm', 'onboarding'],\n stability: StabilityEnum.Experimental,\n goal: 'Guide CRM users through onboarding',\n context: 'CRM onboarding journey',\n};\n\nexport const CrmOnboardingTrackPresentation: PresentationSpec = {\n meta: {\n key: 'learning.journey.crm.track',\n version: 1,\n description: 'CRM first win track detail',\n ...baseMeta,\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'LearningTrackDetail',\n props: CrmOnboardingTrackModel,\n },\n targets: ['react', 'markdown', 'application/json'],\n};\n\nexport const CrmOnboardingWidgetPresentation: PresentationSpec = {\n meta: {\n key: 'learning.journey.crm.widget',\n version: 1,\n description: 'Compact widget for CRM onboarding progress',\n ...baseMeta,\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'LearningTrackProgressWidget',\n },\n targets: ['react'],\n};\n\nexport const crmOnboardingPresentations = [\n CrmOnboardingTrackPresentation,\n CrmOnboardingWidgetPresentation,\n];\n"],"mappings":";;;;AAOA,MAAMA,WAGF;CACF,QAAQ;CACR,OAAO;CACP,QAAQ,CAAC,4CAA4C;CACrD,MAAM;EAAC;EAAY;EAAO;EAAa;CACvC,WAAW,cAAc;CACzB,MAAM;CACN,SAAS;CACV;AAED,MAAaC,iCAAmD;CAC9D,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,GAAG;EACJ;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACd,OAAO;EACR;CACD,SAAS;EAAC;EAAS;EAAY;EAAmB;CACnD;AAED,MAAaC,kCAAoD;CAC/D,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,GAAG;EACJ;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,QAAQ;CACnB;AAED,MAAa,6BAA6B,CACxC,gCACA,gCACD"}
1
+ {"version":3,"file":"index.js","names":["baseMeta: Pick<\n PresentationSpecMeta,\n 'domain' | 'owners' | 'tags' | 'title' | 'stability' | 'goal' | 'context'\n>","CrmOnboardingTrackPresentation: PresentationSpec","CrmOnboardingWidgetPresentation: PresentationSpec"],"sources":["../../src/presentations/index.ts"],"sourcesContent":["import type {\n PresentationSpecMeta,\n PresentationSpec,\n} from '@contractspec/lib.contracts';\nimport { StabilityEnum } from '@contractspec/lib.contracts';\nimport { CrmOnboardingTrackModel } from '../operations';\n\nconst baseMeta: Pick<\n PresentationSpecMeta,\n 'domain' | 'owners' | 'tags' | 'title' | 'stability' | 'goal' | 'context'\n> = {\n domain: 'learning-journey',\n title: 'CRM Onboarding',\n owners: ['@examples.learning-journey.crm-onboarding'],\n tags: ['learning', 'crm', 'onboarding'],\n stability: StabilityEnum.Experimental,\n goal: 'Guide CRM users through onboarding',\n context: 'CRM onboarding journey',\n};\n\nexport const CrmOnboardingTrackPresentation: PresentationSpec = {\n meta: {\n key: 'learning.journey.crm.track',\n version: '1.0.0',\n description: 'CRM first win track detail',\n ...baseMeta,\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'LearningTrackDetail',\n props: CrmOnboardingTrackModel,\n },\n targets: ['react', 'markdown', 'application/json'],\n};\n\nexport const CrmOnboardingWidgetPresentation: PresentationSpec = {\n meta: {\n key: 'learning.journey.crm.widget',\n version: '1.0.0',\n description: 'Compact widget for CRM onboarding progress',\n ...baseMeta,\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'LearningTrackProgressWidget',\n },\n targets: ['react'],\n};\n\nexport const crmOnboardingPresentations = [\n CrmOnboardingTrackPresentation,\n CrmOnboardingWidgetPresentation,\n];\n"],"mappings":";;;;AAOA,MAAMA,WAGF;CACF,QAAQ;CACR,OAAO;CACP,QAAQ,CAAC,4CAA4C;CACrD,MAAM;EAAC;EAAY;EAAO;EAAa;CACvC,WAAW,cAAc;CACzB,MAAM;CACN,SAAS;CACV;AAED,MAAaC,iCAAmD;CAC9D,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,GAAG;EACJ;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACd,OAAO;EACR;CACD,SAAS;EAAC;EAAS;EAAY;EAAmB;CACnD;AAED,MAAaC,kCAAoD;CAC/D,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,GAAG;EACJ;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,QAAQ;CACnB;AAED,MAAa,6BAA6B,CACxC,gCACA,gCACD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contractspec/example.learning-journey-crm-onboarding",
3
- "version": "1.44.1",
3
+ "version": "1.45.1",
4
4
  "description": "Learning journey track that onboards users to the CRM pipeline example.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -30,14 +30,14 @@
30
30
  "lint:check": "eslint src"
31
31
  },
32
32
  "dependencies": {
33
- "@contractspec/lib.contracts": "1.44.1",
34
- "@contractspec/lib.schema": "1.44.1",
35
- "@contractspec/module.learning-journey": "1.44.1",
36
- "@contractspec/example.crm-pipeline": "1.44.1"
33
+ "@contractspec/lib.contracts": "1.45.1",
34
+ "@contractspec/lib.schema": "1.45.1",
35
+ "@contractspec/module.learning-journey": "1.45.1",
36
+ "@contractspec/example.crm-pipeline": "1.45.1"
37
37
  },
38
38
  "devDependencies": {
39
- "@contractspec/tool.tsdown": "1.44.1",
40
- "@contractspec/tool.typescript": "1.44.1",
39
+ "@contractspec/tool.tsdown": "1.45.1",
40
+ "@contractspec/tool.typescript": "1.45.1",
41
41
  "tsdown": "^0.18.3",
42
42
  "typescript": "^5.9.3"
43
43
  },
package/src/example.ts CHANGED
@@ -1,11 +1,18 @@
1
- const example = {
2
- id: 'learning-journey-crm-onboarding',
3
- title: 'Learning Journey — CRM First Win',
4
- summary:
5
- 'Onboarding track for CRM Pipeline driving users from empty CRM to first closed-won deal.',
6
- tags: ['learning', 'crm', 'onboarding'],
7
- kind: 'template',
8
- visibility: 'public',
1
+ import type { ExampleSpec } from '@contractspec/lib.contracts';
2
+
3
+ const example: ExampleSpec = {
4
+ meta: {
5
+ key: 'learning-journey-crm-onboarding',
6
+ version: '1.0.0',
7
+ title: 'Learning Journey — CRM First Win',
8
+ description:
9
+ 'Onboarding track for CRM Pipeline driving users from empty CRM to first closed-won deal.',
10
+ kind: 'template',
11
+ visibility: 'public',
12
+ stability: 'experimental',
13
+ owners: ['@platform.core'],
14
+ tags: ['learning', 'crm', 'onboarding'],
15
+ },
9
16
  docs: {
10
17
  rootDocId: 'docs.learning-journey.crm-onboarding',
11
18
  },
@@ -19,6 +26,6 @@ const example = {
19
26
  studio: { enabled: true, installable: true },
20
27
  mcp: { enabled: true },
21
28
  },
22
- } as const;
29
+ };
23
30
 
24
31
  export default example;
@@ -19,13 +19,13 @@ export const LearningJourneyCrmOnboardingFeature: FeatureModuleSpec = {
19
19
  owners: ['@examples.learning-journey.crm-onboarding'],
20
20
  tags: ['learning', 'crm', 'onboarding', 'journey'],
21
21
  stability: 'experimental',
22
- version: 1,
22
+ version: '1.0.0',
23
23
  },
24
24
 
25
25
  // All contract operations included in this feature
26
26
  operations: [
27
- { key: 'learningJourney.crmOnboarding.recordEvent', version: 1 },
28
- { key: 'learningJourney.crmOnboarding.getTrack', version: 1 },
27
+ { key: 'learningJourney.crmOnboarding.recordEvent', version: '1.0.0' },
28
+ { key: 'learningJourney.crmOnboarding.getTrack', version: '1.0.0' },
29
29
  ],
30
30
 
31
31
  // Events emitted by this feature
@@ -33,15 +33,15 @@ export const LearningJourneyCrmOnboardingFeature: FeatureModuleSpec = {
33
33
 
34
34
  // Presentations associated with this feature
35
35
  presentations: [
36
- { key: 'learning.journey.crm.track', version: 1 },
37
- { key: 'learning.journey.crm.widget', version: 1 },
36
+ { key: 'learning.journey.crm.track', version: '1.0.0' },
37
+ { key: 'learning.journey.crm.widget', version: '1.0.0' },
38
38
  ],
39
39
 
40
40
  // Link operations to their primary presentations
41
41
  opToPresentation: [
42
42
  {
43
- op: { key: 'learningJourney.crmOnboarding.getTrack', version: 1 },
44
- pres: { key: 'learning.journey.crm.track', version: 1 },
43
+ op: { key: 'learningJourney.crmOnboarding.getTrack', version: '1.0.0' },
44
+ pres: { key: 'learning.journey.crm.track', version: '1.0.0' },
45
45
  },
46
46
  ],
47
47
 
@@ -49,18 +49,18 @@ export const LearningJourneyCrmOnboardingFeature: FeatureModuleSpec = {
49
49
  presentationsTargets: [
50
50
  {
51
51
  key: 'learning.journey.crm.track',
52
- version: 1,
52
+ version: '1.0.0',
53
53
  targets: ['react', 'markdown', 'application/json'],
54
54
  },
55
55
  {
56
56
  key: 'learning.journey.crm.widget',
57
- version: 1,
57
+ version: '1.0.0',
58
58
  targets: ['react'],
59
59
  },
60
60
  ],
61
61
 
62
62
  // Capability requirements
63
63
  capabilities: {
64
- requires: [{ key: 'identity', version: 1 }],
64
+ requires: [{ key: 'identity', version: '1.0.0' }],
65
65
  },
66
66
  };
@@ -77,7 +77,7 @@ const SuccessModel = defineSchemaModel({
77
77
  export const GetCrmOnboardingTrack = defineQuery({
78
78
  meta: {
79
79
  key: 'learningJourney.crmOnboarding.getTrack',
80
- version: 1,
80
+ version: '1.0.0',
81
81
  stability: 'experimental',
82
82
  owners: [...OWNERS],
83
83
  tags: ['learning', 'crm', 'onboarding'],
@@ -99,7 +99,7 @@ export const GetCrmOnboardingTrack = defineQuery({
99
99
  export const RecordCrmOnboardingEvent = defineCommand({
100
100
  meta: {
101
101
  key: 'learningJourney.crmOnboarding.recordEvent',
102
- version: 1,
102
+ version: '1.0.0',
103
103
  stability: 'experimental',
104
104
  owners: [...OWNERS],
105
105
  tags: ['learning', 'crm', 'onboarding'],
@@ -21,7 +21,7 @@ const baseMeta: Pick<
21
21
  export const CrmOnboardingTrackPresentation: PresentationSpec = {
22
22
  meta: {
23
23
  key: 'learning.journey.crm.track',
24
- version: 1,
24
+ version: '1.0.0',
25
25
  description: 'CRM first win track detail',
26
26
  ...baseMeta,
27
27
  },
@@ -37,7 +37,7 @@ export const CrmOnboardingTrackPresentation: PresentationSpec = {
37
37
  export const CrmOnboardingWidgetPresentation: PresentationSpec = {
38
38
  meta: {
39
39
  key: 'learning.journey.crm.widget',
40
- version: 1,
40
+ version: '1.0.0',
41
41
  description: 'Compact widget for CRM onboarding progress',
42
42
  ...baseMeta,
43
43
  },