@contractspec/example.learning-journey-studio-onboarding 1.46.2 → 1.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,41 +1,45 @@
1
1
  $ tsdown
2
- ℹ tsdown v0.18.4 powered by rolldown v1.0.0-beta.57
2
+ ℹ tsdown v0.19.0 powered by rolldown v1.0.0-beta.59
3
3
  ℹ config file: /home/runner/work/contractspec/contractspec/packages/examples/learning-journey-studio-onboarding/tsdown.config.js
4
- ℹ entry: src/example.ts, src/index.ts, src/learning-journey-studio-onboarding.feature.ts, src/track.ts, src/docs/index.ts, src/docs/studio-onboarding.docblock.ts, src/handlers/demo.handlers.ts, src/operations/index.ts, src/presentations/index.ts
4
+ ℹ entry: src/example.ts, src/index.ts, src/learning-journey-studio-onboarding.feature.ts, src/track.ts, src/docs/index.ts, src/docs/studio-onboarding.docblock.ts, src/handlers/demo.handlers.ts, src/operations/index.ts, src/presentations/index.ts, src/tests/operations.test-spec.ts
5
5
  ℹ target: esnext
6
6
  ℹ tsconfig: tsconfig.json
7
7
  ℹ Build start
8
- ℹ Cleaning 35 files
8
+ ℹ Cleaning 40 files
9
9
  ℹ dist/operations/index.js 4.34 kB │ gzip: 1.08 kB
10
10
  ℹ dist/track.js 2.43 kB │ gzip: 0.91 kB
11
+ ℹ dist/learning-journey-studio-onboarding.feature.js 1.84 kB │ gzip: 0.62 kB
11
12
  ℹ dist/docs/studio-onboarding.docblock.js 1.67 kB │ gzip: 0.83 kB
12
- ℹ dist/learning-journey-studio-onboarding.feature.js 1.63 kB │ gzip: 0.56 kB
13
- ℹ dist/presentations/index.js 1.57 kB │ gzip: 0.59 kB
13
+ ℹ dist/presentations/index.js 1.63 kB │ gzip: 0.61 kB
14
14
  ℹ dist/index.js 1.10 kB │ gzip: 0.31 kB
15
- ℹ dist/example.js 0.96 kB │ gzip: 0.52 kB
15
+ ℹ dist/example.js 1.04 kB │ gzip: 0.55 kB
16
+ ℹ dist/tests/operations.test-spec.js 0.92 kB │ gzip: 0.42 kB
16
17
  ℹ dist/handlers/demo.handlers.js 0.83 kB │ gzip: 0.41 kB
17
18
  ℹ dist/docs/index.js 0.04 kB │ gzip: 0.06 kB
18
19
  ℹ dist/operations/index.js.map 6.42 kB │ gzip: 1.59 kB
19
- ℹ dist/track.js.map 3.89 kB │ gzip: 1.25 kB
20
- ℹ dist/learning-journey-studio-onboarding.feature.js.map 2.97 kB │ gzip: 1.04 kB
21
- ℹ dist/presentations/index.js.map 2.58 kB │ gzip: 0.90 kB
20
+ ℹ dist/track.js.map 3.79 kB │ gzip: 1.24 kB
21
+ ℹ dist/learning-journey-studio-onboarding.feature.js.map 2.92 kB │ gzip: 1.04 kB
22
+ ℹ dist/presentations/index.js.map 2.35 kB │ gzip: 0.90 kB
22
23
  ℹ dist/docs/studio-onboarding.docblock.js.map 2.10 kB │ gzip: 1.00 kB
23
- ℹ dist/handlers/demo.handlers.js.map 1.61 kB │ gzip: 0.72 kB
24
- ℹ dist/example.js.map 1.48 kB │ gzip: 0.74 kB
24
+ ℹ dist/handlers/demo.handlers.js.map 1.58 kB │ gzip: 0.71 kB
25
+ ℹ dist/example.js.map 1.47 kB │ gzip: 0.74 kB
26
+ ℹ dist/tests/operations.test-spec.js.map 1.46 kB │ gzip: 0.62 kB
25
27
  ℹ dist/operations/index.d.ts.map 0.84 kB │ gzip: 0.32 kB
26
28
  ℹ dist/handlers/demo.handlers.d.ts.map 0.60 kB │ gzip: 0.33 kB
27
- ℹ dist/learning-journey-studio-onboarding.feature.d.ts.map 0.20 kB │ gzip: 0.15 kB
28
- ℹ dist/presentations/index.d.ts.map 0.19 kB │ gzip: 0.16 kB
29
+ ℹ dist/learning-journey-studio-onboarding.feature.d.ts.map 0.22 kB │ gzip: 0.16 kB
30
+ ℹ dist/presentations/index.d.ts.map 0.21 kB │ gzip: 0.17 kB
31
+ ℹ dist/tests/operations.test-spec.d.ts.map 0.17 kB │ gzip: 0.14 kB
32
+ ℹ dist/example.d.ts.map 0.14 kB │ gzip: 0.13 kB
29
33
  ℹ 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
34
  ℹ dist/operations/index.d.ts 8.83 kB │ gzip: 0.93 kB
32
35
  ℹ dist/index.d.ts 1.07 kB │ gzip: 0.29 kB
33
36
  ℹ dist/handlers/demo.handlers.d.ts 0.97 kB │ gzip: 0.42 kB
34
- ℹ dist/learning-journey-studio-onboarding.feature.d.ts 0.48 kB │ gzip: 0.26 kB
35
- ℹ dist/presentations/index.d.ts 0.47 kB │ gzip: 0.21 kB
37
+ ℹ dist/presentations/index.d.ts 0.56 kB │ gzip: 0.22 kB
38
+ ℹ dist/learning-journey-studio-onboarding.feature.d.ts 0.52 kB │ gzip: 0.27 kB
36
39
  ℹ dist/track.d.ts 0.36 kB │ gzip: 0.20 kB
37
- ℹ dist/example.d.ts 0.20 kB │ gzip: 0.16 kB
40
+ ℹ dist/tests/operations.test-spec.d.ts 0.28 kB │ gzip: 0.18 kB
41
+ ℹ dist/example.d.ts 0.25 kB │ gzip: 0.17 kB
38
42
  ℹ dist/docs/index.d.ts 0.01 kB │ gzip: 0.03 kB
39
43
  ℹ dist/docs/studio-onboarding.docblock.d.ts 0.01 kB │ gzip: 0.03 kB
40
- ℹ 31 files, total: 50.13 kB
41
- ✔ Build complete in 21560ms
44
+ ℹ 35 files, total: 53.11 kB
45
+ ✔ Build complete in 24224ms
@@ -1,42 +1,46 @@
1
1
  $ bun build:types && bun build:bundle
2
2
  $ tsc --noEmit
3
3
  $ tsdown
4
- ℹ tsdown v0.18.4 powered by rolldown v1.0.0-beta.57
4
+ ℹ tsdown v0.19.0 powered by rolldown v1.0.0-beta.59
5
5
  ℹ config file: /home/runner/work/contractspec/contractspec/packages/examples/learning-journey-studio-onboarding/tsdown.config.js
6
- ℹ entry: src/example.ts, src/index.ts, src/learning-journey-studio-onboarding.feature.ts, src/track.ts, src/docs/index.ts, src/docs/studio-onboarding.docblock.ts, src/handlers/demo.handlers.ts, src/operations/index.ts, src/presentations/index.ts
6
+ ℹ entry: src/example.ts, src/index.ts, src/learning-journey-studio-onboarding.feature.ts, src/track.ts, src/docs/index.ts, src/docs/studio-onboarding.docblock.ts, src/handlers/demo.handlers.ts, src/operations/index.ts, src/presentations/index.ts, src/tests/operations.test-spec.ts
7
7
  ℹ target: esnext
8
8
  ℹ tsconfig: tsconfig.json
9
9
  ℹ Build start
10
10
  ℹ dist/operations/index.js 4.34 kB │ gzip: 1.08 kB
11
11
  ℹ dist/track.js 2.43 kB │ gzip: 0.91 kB
12
+ ℹ dist/learning-journey-studio-onboarding.feature.js 1.84 kB │ gzip: 0.62 kB
12
13
  ℹ dist/docs/studio-onboarding.docblock.js 1.67 kB │ gzip: 0.83 kB
13
- ℹ dist/learning-journey-studio-onboarding.feature.js 1.63 kB │ gzip: 0.56 kB
14
- ℹ dist/presentations/index.js 1.57 kB │ gzip: 0.59 kB
14
+ ℹ dist/presentations/index.js 1.63 kB │ gzip: 0.61 kB
15
15
  ℹ dist/index.js 1.10 kB │ gzip: 0.31 kB
16
- ℹ dist/example.js 0.96 kB │ gzip: 0.52 kB
16
+ ℹ dist/example.js 1.04 kB │ gzip: 0.55 kB
17
+ ℹ dist/tests/operations.test-spec.js 0.92 kB │ gzip: 0.42 kB
17
18
  ℹ dist/handlers/demo.handlers.js 0.83 kB │ gzip: 0.41 kB
18
19
  ℹ dist/docs/index.js 0.04 kB │ gzip: 0.06 kB
19
20
  ℹ dist/operations/index.js.map 6.42 kB │ gzip: 1.59 kB
20
- ℹ dist/track.js.map 3.89 kB │ gzip: 1.25 kB
21
- ℹ dist/learning-journey-studio-onboarding.feature.js.map 2.97 kB │ gzip: 1.04 kB
22
- ℹ dist/presentations/index.js.map 2.58 kB │ gzip: 0.90 kB
21
+ ℹ dist/track.js.map 3.79 kB │ gzip: 1.24 kB
22
+ ℹ dist/learning-journey-studio-onboarding.feature.js.map 2.92 kB │ gzip: 1.04 kB
23
+ ℹ dist/presentations/index.js.map 2.35 kB │ gzip: 0.90 kB
23
24
  ℹ dist/docs/studio-onboarding.docblock.js.map 2.10 kB │ gzip: 1.00 kB
24
- ℹ dist/handlers/demo.handlers.js.map 1.61 kB │ gzip: 0.72 kB
25
- ℹ dist/example.js.map 1.48 kB │ gzip: 0.74 kB
25
+ ℹ dist/handlers/demo.handlers.js.map 1.58 kB │ gzip: 0.71 kB
26
+ ℹ dist/example.js.map 1.47 kB │ gzip: 0.74 kB
27
+ ℹ dist/tests/operations.test-spec.js.map 1.46 kB │ gzip: 0.62 kB
26
28
  ℹ dist/operations/index.d.ts.map 0.84 kB │ gzip: 0.32 kB
27
29
  ℹ dist/handlers/demo.handlers.d.ts.map 0.60 kB │ gzip: 0.33 kB
28
- ℹ dist/learning-journey-studio-onboarding.feature.d.ts.map 0.20 kB │ gzip: 0.15 kB
29
- ℹ dist/presentations/index.d.ts.map 0.19 kB │ gzip: 0.16 kB
30
+ ℹ dist/learning-journey-studio-onboarding.feature.d.ts.map 0.22 kB │ gzip: 0.16 kB
31
+ ℹ dist/presentations/index.d.ts.map 0.21 kB │ gzip: 0.17 kB
32
+ ℹ dist/tests/operations.test-spec.d.ts.map 0.17 kB │ gzip: 0.14 kB
33
+ ℹ dist/example.d.ts.map 0.14 kB │ gzip: 0.13 kB
30
34
  ℹ 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
35
  ℹ dist/operations/index.d.ts 8.83 kB │ gzip: 0.93 kB
33
36
  ℹ dist/index.d.ts 1.07 kB │ gzip: 0.29 kB
34
37
  ℹ dist/handlers/demo.handlers.d.ts 0.97 kB │ gzip: 0.42 kB
35
- ℹ dist/learning-journey-studio-onboarding.feature.d.ts 0.48 kB │ gzip: 0.26 kB
36
- ℹ dist/presentations/index.d.ts 0.47 kB │ gzip: 0.21 kB
38
+ ℹ dist/presentations/index.d.ts 0.56 kB │ gzip: 0.22 kB
39
+ ℹ dist/learning-journey-studio-onboarding.feature.d.ts 0.52 kB │ gzip: 0.27 kB
37
40
  ℹ dist/track.d.ts 0.36 kB │ gzip: 0.20 kB
38
- ℹ dist/example.d.ts 0.20 kB │ gzip: 0.16 kB
41
+ ℹ dist/tests/operations.test-spec.d.ts 0.28 kB │ gzip: 0.18 kB
42
+ ℹ dist/example.d.ts 0.25 kB │ gzip: 0.17 kB
39
43
  ℹ dist/docs/index.d.ts 0.01 kB │ gzip: 0.03 kB
40
44
  ℹ dist/docs/studio-onboarding.docblock.d.ts 0.01 kB │ gzip: 0.03 kB
41
- ℹ 31 files, total: 50.13 kB
42
- ✔ Build complete in 25171ms
45
+ ℹ 35 files, total: 53.11 kB
46
+ ✔ Build complete in 23976ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @contractspec/example.learning-journey-studio-onboarding
2
2
 
3
+ ## 1.47.0
4
+
5
+ ### Minor Changes
6
+
7
+ - caf8701: feat: add cli vibe command to run workflow
8
+ - c69b849: feat: add api web services (mcp & website)
9
+ - 42b8d78: feat: add cli `contractspec vibe` workflow to simplify usage
10
+ - fd38e85: feat: auto-fix contractspec issues
11
+
12
+ ### Patch Changes
13
+
14
+ - e7ded36: feat: improve stability (adding ts-morph)
15
+ - c231a8b: test: improve workspace stability
16
+ - Updated dependencies [e7ded36]
17
+ - Updated dependencies [caf8701]
18
+ - Updated dependencies [c69b849]
19
+ - Updated dependencies [c231a8b]
20
+ - Updated dependencies [42b8d78]
21
+ - Updated dependencies [fd38e85]
22
+ - @contractspec/module.learning-journey@1.47.0
23
+ - @contractspec/lib.contracts@1.47.0
24
+ - @contractspec/lib.schema@1.47.0
25
+
3
26
  ## 1.46.2
4
27
 
5
28
  ### Patch Changes
package/dist/example.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { ExampleSpec } from "@contractspec/lib.contracts";
1
+ import * as _contractspec_lib_contracts1 from "@contractspec/lib.contracts";
2
2
 
3
3
  //#region src/example.d.ts
4
- declare const example: ExampleSpec;
4
+ declare const example: _contractspec_lib_contracts1.ExampleSpec;
5
5
  //#endregion
6
6
  export { example as default };
7
7
  //# sourceMappingURL=example.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"sourcesContent":[],"mappings":";;;cAEM,SAAS"}
1
+ {"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"sourcesContent":[],"mappings":";;;cAEM,SA0BJ,4BAAA,CA1BW"}
package/dist/example.js CHANGED
@@ -1,5 +1,7 @@
1
+ import { defineExample } from "@contractspec/lib.contracts";
2
+
1
3
  //#region src/example.ts
2
- const example = {
4
+ const example = defineExample({
3
5
  meta: {
4
6
  key: "learning-journey-studio-onboarding",
5
7
  version: "1.0.0",
@@ -32,7 +34,7 @@ const example = {
32
34
  },
33
35
  mcp: { enabled: true }
34
36
  }
35
- };
37
+ });
36
38
  var example_default = example;
37
39
 
38
40
  //#endregion
@@ -1 +1 @@
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-studio-onboarding',\n version: '1.0.0',\n title: 'Learning Journey — Studio Getting Started',\n description:\n 'Onboarding track guiding a new Studio user through template spawn, spec edit, regeneration, playground, and evolution.',\n kind: 'template',\n visibility: 'public',\n stability: 'experimental',\n owners: ['@platform.core'],\n tags: ['learning', 'onboarding', 'studio'],\n },\n docs: {\n rootDocId: 'docs.learning-journey.studio-onboarding',\n },\n entrypoints: {\n packageName: '@contractspec/example.learning-journey-studio-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;GAAc;GAAS;EAC3C;CACD,MAAM,EACJ,WAAW,2CACZ;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":[],"sources":["../src/example.ts"],"sourcesContent":["import { defineExample } from '@contractspec/lib.contracts';\n\nconst example = defineExample({\n meta: {\n key: 'learning-journey-studio-onboarding',\n version: '1.0.0',\n title: 'Learning Journey — Studio Getting Started',\n description:\n 'Onboarding track guiding a new Studio user through template spawn, spec edit, regeneration, playground, and evolution.',\n kind: 'template',\n visibility: 'public',\n stability: 'experimental',\n owners: ['@platform.core'],\n tags: ['learning', 'onboarding', 'studio'],\n },\n docs: {\n rootDocId: 'docs.learning-journey.studio-onboarding',\n },\n entrypoints: {\n packageName: '@contractspec/example.learning-journey-studio-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,MAAM,UAAU,cAAc;CAC5B,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aACE;EACF,MAAM;EACN,YAAY;EACZ,WAAW;EACX,QAAQ,CAAC,iBAAiB;EAC1B,MAAM;GAAC;GAAY;GAAc;GAAS;EAC3C;CACD,MAAM,EACJ,WAAW,2CACZ;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,CAAC;AAEF,sBAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"demo.handlers.js","names":["event: LearningJourneyEvent"],"sources":["../../src/handlers/demo.handlers.ts"],"sourcesContent":["import { studioGettingStartedTrack } from '../track';\n\ninterface EmitParams {\n learnerId: string;\n occurredAt?: Date;\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 studioOnboardingEvents = [\n 'studio.template.instantiated',\n 'spec.changed',\n 'regeneration.completed',\n 'playground.session.started',\n 'studio.evolution.applied',\n] as const;\n\nexport type StudioEvent = (typeof studioOnboardingEvents)[number];\n\nexport const emitStudioOnboardingEvent = (\n eventName: StudioEvent,\n { learnerId, occurredAt = new Date() }: EmitParams,\n record?: RecordEvent\n) => {\n const event: LearningJourneyEvent = {\n learnerId,\n name: eventName,\n occurredAt,\n trackId: studioGettingStartedTrack.id,\n };\n return record ? record(event) : event;\n};\n\nexport const emitAllStudioOnboardingEvents = (\n params: EmitParams,\n record?: RecordEvent\n) =>\n studioOnboardingEvents.map((name) =>\n emitStudioOnboardingEvent(name, params, record)\n );\n"],"mappings":";;;AAiBA,MAAa,yBAAyB;CACpC;CACA;CACA;CACA;CACA;CACD;AAID,MAAa,6BACX,WACA,EAAE,WAAW,6BAAa,IAAI,MAAM,IACpC,WACG;CACH,MAAMA,QAA8B;EAClC;EACA,MAAM;EACN;EACA,SAAS,0BAA0B;EACpC;AACD,QAAO,SAAS,OAAO,MAAM,GAAG;;AAGlC,MAAa,iCACX,QACA,WAEA,uBAAuB,KAAK,SAC1B,0BAA0B,MAAM,QAAQ,OAAO,CAChD"}
1
+ {"version":3,"file":"demo.handlers.js","names":[],"sources":["../../src/handlers/demo.handlers.ts"],"sourcesContent":["import { studioGettingStartedTrack } from '../track';\n\ninterface EmitParams {\n learnerId: string;\n occurredAt?: Date;\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 studioOnboardingEvents = [\n 'studio.template.instantiated',\n 'spec.changed',\n 'regeneration.completed',\n 'playground.session.started',\n 'studio.evolution.applied',\n] as const;\n\nexport type StudioEvent = (typeof studioOnboardingEvents)[number];\n\nexport const emitStudioOnboardingEvent = (\n eventName: StudioEvent,\n { learnerId, occurredAt = new Date() }: EmitParams,\n record?: RecordEvent\n) => {\n const event: LearningJourneyEvent = {\n learnerId,\n name: eventName,\n occurredAt,\n trackId: studioGettingStartedTrack.id,\n };\n return record ? record(event) : event;\n};\n\nexport const emitAllStudioOnboardingEvents = (\n params: EmitParams,\n record?: RecordEvent\n) =>\n studioOnboardingEvents.map((name) =>\n emitStudioOnboardingEvent(name, params, record)\n );\n"],"mappings":";;;AAiBA,MAAa,yBAAyB;CACpC;CACA;CACA;CACA;CACA;CACD;AAID,MAAa,6BACX,WACA,EAAE,WAAW,6BAAa,IAAI,MAAM,IACpC,WACG;CACH,MAAM,QAA8B;EAClC;EACA,MAAM;EACN;EACA,SAAS,0BAA0B;EACpC;AACD,QAAO,SAAS,OAAO,MAAM,GAAG;;AAGlC,MAAa,iCACX,QACA,WAEA,uBAAuB,KAAK,SAC1B,0BAA0B,MAAM,QAAQ,OAAO,CAChD"}
@@ -1,4 +1,4 @@
1
- import { FeatureModuleSpec } from "@contractspec/lib.contracts";
1
+ import * as _contractspec_lib_contracts0 from "@contractspec/lib.contracts";
2
2
 
3
3
  //#region src/learning-journey-studio-onboarding.feature.d.ts
4
4
 
@@ -6,7 +6,7 @@ import { FeatureModuleSpec } from "@contractspec/lib.contracts";
6
6
  * Learning Journey Studio Onboarding feature module that bundles
7
7
  * Studio-specific onboarding track operations and presentations.
8
8
  */
9
- declare const LearningJourneyStudioOnboardingFeature: FeatureModuleSpec;
9
+ declare const LearningJourneyStudioOnboardingFeature: _contractspec_lib_contracts0.FeatureModuleSpec;
10
10
  //#endregion
11
11
  export { LearningJourneyStudioOnboardingFeature };
12
12
  //# sourceMappingURL=learning-journey-studio-onboarding.feature.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"learning-journey-studio-onboarding.feature.d.ts","names":[],"sources":["../src/learning-journey-studio-onboarding.feature.ts"],"sourcesContent":[],"mappings":";;;;;;;;cAWa,wCAAwC"}
1
+ {"version":3,"file":"learning-journey-studio-onboarding.feature.d.ts","names":[],"sources":["../src/learning-journey-studio-onboarding.feature.ts"],"sourcesContent":[],"mappings":";;;;;;;AAWA;cAAa,wCAyDX,4BAAA,CAzDiD"}
@@ -1,9 +1,16 @@
1
+ import { defineFeature } from "@contractspec/lib.contracts";
2
+
1
3
  //#region src/learning-journey-studio-onboarding.feature.ts
2
4
  /**
5
+ * Learning Journey Studio Onboarding Feature Module Specification
6
+ *
7
+ * Defines the feature module for Studio onboarding journey.
8
+ */
9
+ /**
3
10
  * Learning Journey Studio Onboarding feature module that bundles
4
11
  * Studio-specific onboarding track operations and presentations.
5
12
  */
6
- const LearningJourneyStudioOnboardingFeature = {
13
+ const LearningJourneyStudioOnboardingFeature = defineFeature({
7
14
  meta: {
8
15
  key: "learning-journey-studio-onboarding",
9
16
  title: "Learning Journey: Studio Onboarding",
@@ -61,7 +68,7 @@ const LearningJourneyStudioOnboardingFeature = {
61
68
  key: "identity",
62
69
  version: "1.0.0"
63
70
  }] }
64
- };
71
+ });
65
72
 
66
73
  //#endregion
67
74
  export { LearningJourneyStudioOnboardingFeature };
@@ -1 +1 @@
1
- {"version":3,"file":"learning-journey-studio-onboarding.feature.js","names":["LearningJourneyStudioOnboardingFeature: FeatureModuleSpec"],"sources":["../src/learning-journey-studio-onboarding.feature.ts"],"sourcesContent":["/**\n * Learning Journey Studio Onboarding Feature Module Specification\n *\n * Defines the feature module for Studio onboarding journey.\n */\nimport type { FeatureModuleSpec } from '@contractspec/lib.contracts';\n\n/**\n * Learning Journey Studio Onboarding feature module that bundles\n * Studio-specific onboarding track operations and presentations.\n */\nexport const LearningJourneyStudioOnboardingFeature: FeatureModuleSpec = {\n meta: {\n key: 'learning-journey-studio-onboarding',\n title: 'Learning Journey: Studio Onboarding',\n description:\n 'Studio onboarding journey for getting started with ContractSpec Studio',\n domain: 'learning-journey',\n owners: ['@examples.learning-journey.studio-onboarding'],\n tags: ['learning', 'onboarding', 'studio', 'journey'],\n stability: 'experimental',\n version: '1.0.0',\n },\n\n // All contract operations included in this feature\n operations: [\n { key: 'learningJourney.studioOnboarding.recordEvent', version: '1.0.0' },\n { key: 'learningJourney.studioOnboarding.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.studio.track', version: '1.0.0' },\n { key: 'learning.journey.studio.widget', version: '1.0.0' },\n ],\n\n // Link operations to their primary presentations\n opToPresentation: [\n {\n op: {\n key: 'learningJourney.studioOnboarding.getTrack',\n version: '1.0.0',\n },\n pres: { key: 'learning.journey.studio.track', version: '1.0.0' },\n },\n ],\n\n // Target requirements for multi-surface rendering\n presentationsTargets: [\n {\n key: 'learning.journey.studio.track',\n version: '1.0.0',\n targets: ['react', 'markdown', 'application/json'],\n },\n {\n key: 'learning.journey.studio.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,yCAA4D;CACvE,MAAM;EACJ,KAAK;EACL,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,+CAA+C;EACxD,MAAM;GAAC;GAAY;GAAc;GAAU;GAAU;EACrD,WAAW;EACX,SAAS;EACV;CAGD,YAAY,CACV;EAAE,KAAK;EAAgD,SAAS;EAAS,EACzE;EAAE,KAAK;EAA6C,SAAS;EAAS,CACvE;CAGD,QAAQ,EAAE;CAGV,eAAe,CACb;EAAE,KAAK;EAAiC,SAAS;EAAS,EAC1D;EAAE,KAAK;EAAkC,SAAS;EAAS,CAC5D;CAGD,kBAAkB,CAChB;EACE,IAAI;GACF,KAAK;GACL,SAAS;GACV;EACD,MAAM;GAAE,KAAK;GAAiC,SAAS;GAAS;EACjE,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"}
1
+ {"version":3,"file":"learning-journey-studio-onboarding.feature.js","names":[],"sources":["../src/learning-journey-studio-onboarding.feature.ts"],"sourcesContent":["/**\n * Learning Journey Studio Onboarding Feature Module Specification\n *\n * Defines the feature module for Studio onboarding journey.\n */\nimport { defineFeature } from '@contractspec/lib.contracts';\n\n/**\n * Learning Journey Studio Onboarding feature module that bundles\n * Studio-specific onboarding track operations and presentations.\n */\nexport const LearningJourneyStudioOnboardingFeature = defineFeature({\n meta: {\n key: 'learning-journey-studio-onboarding',\n title: 'Learning Journey: Studio Onboarding',\n description:\n 'Studio onboarding journey for getting started with ContractSpec Studio',\n domain: 'learning-journey',\n owners: ['@examples.learning-journey.studio-onboarding'],\n tags: ['learning', 'onboarding', 'studio', 'journey'],\n stability: 'experimental',\n version: '1.0.0',\n },\n\n // All contract operations included in this feature\n operations: [\n { key: 'learningJourney.studioOnboarding.recordEvent', version: '1.0.0' },\n { key: 'learningJourney.studioOnboarding.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.studio.track', version: '1.0.0' },\n { key: 'learning.journey.studio.widget', version: '1.0.0' },\n ],\n\n // Link operations to their primary presentations\n opToPresentation: [\n {\n op: {\n key: 'learningJourney.studioOnboarding.getTrack',\n version: '1.0.0',\n },\n pres: { key: 'learning.journey.studio.track', version: '1.0.0' },\n },\n ],\n\n // Target requirements for multi-surface rendering\n presentationsTargets: [\n {\n key: 'learning.journey.studio.track',\n version: '1.0.0',\n targets: ['react', 'markdown', 'application/json'],\n },\n {\n key: 'learning.journey.studio.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,yCAAyC,cAAc;CAClE,MAAM;EACJ,KAAK;EACL,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,+CAA+C;EACxD,MAAM;GAAC;GAAY;GAAc;GAAU;GAAU;EACrD,WAAW;EACX,SAAS;EACV;CAGD,YAAY,CACV;EAAE,KAAK;EAAgD,SAAS;EAAS,EACzE;EAAE,KAAK;EAA6C,SAAS;EAAS,CACvE;CAGD,QAAQ,EAAE;CAGV,eAAe,CACb;EAAE,KAAK;EAAiC,SAAS;EAAS,EAC1D;EAAE,KAAK;EAAkC,SAAS;EAAS,CAC5D;CAGD,kBAAkB,CAChB;EACE,IAAI;GACF,KAAK;GACL,SAAS;GACV;EACD,MAAM;GAAE,KAAK;GAAiC,SAAS;GAAS;EACjE,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"}
@@ -1,4 +1,4 @@
1
- import * as _contractspec_lib_contracts0 from "@contractspec/lib.contracts";
1
+ import * as _contractspec_lib_contracts2 from "@contractspec/lib.contracts";
2
2
  import * as _contractspec_lib_schema0 from "@contractspec/lib.schema";
3
3
  import * as _contractspec_module_learning_journey_track_spec0 from "@contractspec/module.learning-journey/track-spec";
4
4
 
@@ -71,7 +71,7 @@ declare const StudioOnboardingTrackModel: _contractspec_lib_schema0.SchemaModel<
71
71
  isOptional: false;
72
72
  };
73
73
  }>;
74
- declare const GetStudioOnboardingTrack: _contractspec_lib_contracts0.OperationSpec<_contractspec_lib_schema0.SchemaModel<{}>, _contractspec_lib_schema0.SchemaModel<{
74
+ declare const GetStudioOnboardingTrack: _contractspec_lib_contracts2.OperationSpec<_contractspec_lib_schema0.SchemaModel<{}>, _contractspec_lib_schema0.SchemaModel<{
75
75
  track: {
76
76
  type: _contractspec_lib_schema0.SchemaModel<{
77
77
  id: {
@@ -144,7 +144,7 @@ declare const GetStudioOnboardingTrack: _contractspec_lib_contracts0.OperationSp
144
144
  isOptional: false;
145
145
  };
146
146
  }>, undefined>;
147
- declare const RecordStudioOnboardingEvent: _contractspec_lib_contracts0.OperationSpec<_contractspec_lib_schema0.SchemaModel<{
147
+ declare const RecordStudioOnboardingEvent: _contractspec_lib_contracts2.OperationSpec<_contractspec_lib_schema0.SchemaModel<{
148
148
  learnerId: {
149
149
  type: _contractspec_lib_schema0.FieldType<string, string>;
150
150
  isOptional: false;
@@ -168,7 +168,7 @@ declare const RecordStudioOnboardingEvent: _contractspec_lib_contracts0.Operatio
168
168
  };
169
169
  }>, undefined>;
170
170
  declare const studioOnboardingContracts: {
171
- GetStudioOnboardingTrack: _contractspec_lib_contracts0.OperationSpec<_contractspec_lib_schema0.SchemaModel<{}>, _contractspec_lib_schema0.SchemaModel<{
171
+ GetStudioOnboardingTrack: _contractspec_lib_contracts2.OperationSpec<_contractspec_lib_schema0.SchemaModel<{}>, _contractspec_lib_schema0.SchemaModel<{
172
172
  track: {
173
173
  type: _contractspec_lib_schema0.SchemaModel<{
174
174
  id: {
@@ -241,7 +241,7 @@ declare const studioOnboardingContracts: {
241
241
  isOptional: false;
242
242
  };
243
243
  }>, undefined>;
244
- RecordStudioOnboardingEvent: _contractspec_lib_contracts0.OperationSpec<_contractspec_lib_schema0.SchemaModel<{
244
+ RecordStudioOnboardingEvent: _contractspec_lib_contracts2.OperationSpec<_contractspec_lib_schema0.SchemaModel<{
245
245
  learnerId: {
246
246
  type: _contractspec_lib_schema0.FieldType<string, string>;
247
247
  isOptional: false;
@@ -1,9 +1,9 @@
1
- import { PresentationSpec } from "@contractspec/lib.contracts";
1
+ import * as _contractspec_lib_contracts6 from "@contractspec/lib.contracts";
2
2
 
3
3
  //#region src/presentations/index.d.ts
4
- declare const StudioOnboardingTrackPresentation: PresentationSpec;
5
- declare const StudioOnboardingWidgetPresentation: PresentationSpec;
6
- declare const studioOnboardingPresentations: PresentationSpec[];
4
+ declare const StudioOnboardingTrackPresentation: _contractspec_lib_contracts6.PresentationSpec;
5
+ declare const StudioOnboardingWidgetPresentation: _contractspec_lib_contracts6.PresentationSpec;
6
+ declare const studioOnboardingPresentations: _contractspec_lib_contracts6.PresentationSpec[];
7
7
  //#endregion
8
8
  export { StudioOnboardingTrackPresentation, StudioOnboardingWidgetPresentation, studioOnboardingPresentations };
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/presentations/index.ts"],"sourcesContent":[],"mappings":";;;cAkBa,mCAAmC;cAkBnC,oCAAoC;AAlBpC,cAmCA,6BAnBZ,EAmByC,gBAnBzC,EAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/presentations/index.ts"],"sourcesContent":[],"mappings":";;;cAkBa,mCAgBX,4BAAA,CAhB4C;cAkBjC,oCAeX,4BAAA,CAf6C;cAiBlC,+BAGZ,4BAAA,CAHyC,gBAAA"}
@@ -1,5 +1,5 @@
1
1
  import { StudioOnboardingTrackModel } from "../operations/index.js";
2
- import { StabilityEnum } from "@contractspec/lib.contracts";
2
+ import { StabilityEnum, definePresentation } from "@contractspec/lib.contracts";
3
3
 
4
4
  //#region src/presentations/index.ts
5
5
  const baseMeta = {
@@ -13,7 +13,7 @@ const baseMeta = {
13
13
  ],
14
14
  stability: StabilityEnum.Experimental
15
15
  };
16
- const StudioOnboardingTrackPresentation = {
16
+ const StudioOnboardingTrackPresentation = definePresentation({
17
17
  meta: {
18
18
  key: "learning.journey.studio.track",
19
19
  version: "1.0.0",
@@ -33,8 +33,8 @@ const StudioOnboardingTrackPresentation = {
33
33
  "markdown",
34
34
  "application/json"
35
35
  ]
36
- };
37
- const StudioOnboardingWidgetPresentation = {
36
+ });
37
+ const StudioOnboardingWidgetPresentation = definePresentation({
38
38
  meta: {
39
39
  key: "learning.journey.studio.widget",
40
40
  version: "1.0.0",
@@ -49,7 +49,7 @@ const StudioOnboardingWidgetPresentation = {
49
49
  componentKey: "LearningTrackProgressWidget"
50
50
  },
51
51
  targets: ["react"]
52
- };
52
+ });
53
53
  const studioOnboardingPresentations = [StudioOnboardingTrackPresentation, StudioOnboardingWidgetPresentation];
54
54
 
55
55
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["baseMeta: Pick<\n PresentationSpecMeta,\n 'domain' | 'owners' | 'tags' | 'title' | 'stability'\n>","StudioOnboardingTrackPresentation: PresentationSpec","StudioOnboardingWidgetPresentation: 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 { StudioOnboardingTrackModel } from '../operations';\n\nconst baseMeta: Pick<\n PresentationSpecMeta,\n 'domain' | 'owners' | 'tags' | 'title' | 'stability'\n> = {\n domain: 'learning-journey',\n title: 'Studio Onboarding',\n owners: ['@examples.learning-journey.studio-onboarding'] as string[],\n tags: ['learning', 'onboarding', 'studio'] as string[],\n stability: StabilityEnum.Experimental,\n};\n\nexport const StudioOnboardingTrackPresentation: PresentationSpec = {\n meta: {\n key: 'learning.journey.studio.track',\n version: '1.0.0',\n description: 'Studio onboarding track detail',\n goal: 'Visualize the onboarding track for the user.',\n context: 'Displayed in the Studio dashboard.',\n ...baseMeta,\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'LearningTrackDetail',\n props: StudioOnboardingTrackModel,\n },\n targets: ['react', 'markdown', 'application/json'],\n};\n\nexport const StudioOnboardingWidgetPresentation: PresentationSpec = {\n meta: {\n key: 'learning.journey.studio.widget',\n version: '1.0.0',\n description: 'Compact widget for Studio onboarding progress',\n goal: 'Show quick progress summary.',\n context: 'Displayed in the Studio sidebar or header.',\n ...baseMeta,\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'LearningTrackProgressWidget',\n },\n targets: ['react'],\n};\n\nexport const studioOnboardingPresentations = [\n StudioOnboardingTrackPresentation,\n StudioOnboardingWidgetPresentation,\n];\n"],"mappings":";;;;AAOA,MAAMA,WAGF;CACF,QAAQ;CACR,OAAO;CACP,QAAQ,CAAC,+CAA+C;CACxD,MAAM;EAAC;EAAY;EAAc;EAAS;CAC1C,WAAW,cAAc;CAC1B;AAED,MAAaC,oCAAsD;CACjE,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,MAAM;EACN,SAAS;EACT,GAAG;EACJ;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACd,OAAO;EACR;CACD,SAAS;EAAC;EAAS;EAAY;EAAmB;CACnD;AAED,MAAaC,qCAAuD;CAClE,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,MAAM;EACN,SAAS;EACT,GAAG;EACJ;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,QAAQ;CACnB;AAED,MAAa,gCAAgC,CAC3C,mCACA,mCACD"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/presentations/index.ts"],"sourcesContent":["import {\n definePresentation,\n StabilityEnum,\n type PresentationSpecMeta,\n} from '@contractspec/lib.contracts';\nimport { StudioOnboardingTrackModel } from '../operations';\n\nconst baseMeta: Pick<\n PresentationSpecMeta,\n 'domain' | 'owners' | 'tags' | 'title' | 'stability'\n> = {\n domain: 'learning-journey',\n title: 'Studio Onboarding',\n owners: ['@examples.learning-journey.studio-onboarding'] as string[],\n tags: ['learning', 'onboarding', 'studio'] as string[],\n stability: StabilityEnum.Experimental,\n};\n\nexport const StudioOnboardingTrackPresentation = definePresentation({\n meta: {\n key: 'learning.journey.studio.track',\n version: '1.0.0',\n description: 'Studio onboarding track detail',\n goal: 'Visualize the onboarding track for the user.',\n context: 'Displayed in the Studio dashboard.',\n ...baseMeta,\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'LearningTrackDetail',\n props: StudioOnboardingTrackModel,\n },\n targets: ['react', 'markdown', 'application/json'],\n});\n\nexport const StudioOnboardingWidgetPresentation = definePresentation({\n meta: {\n key: 'learning.journey.studio.widget',\n version: '1.0.0',\n description: 'Compact widget for Studio onboarding progress',\n goal: 'Show quick progress summary.',\n context: 'Displayed in the Studio sidebar or header.',\n ...baseMeta,\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'LearningTrackProgressWidget',\n },\n targets: ['react'],\n});\n\nexport const studioOnboardingPresentations = [\n StudioOnboardingTrackPresentation,\n StudioOnboardingWidgetPresentation,\n];\n"],"mappings":";;;;AAOA,MAAM,WAGF;CACF,QAAQ;CACR,OAAO;CACP,QAAQ,CAAC,+CAA+C;CACxD,MAAM;EAAC;EAAY;EAAc;EAAS;CAC1C,WAAW,cAAc;CAC1B;AAED,MAAa,oCAAoC,mBAAmB;CAClE,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,MAAM;EACN,SAAS;EACT,GAAG;EACJ;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACd,OAAO;EACR;CACD,SAAS;EAAC;EAAS;EAAY;EAAmB;CACnD,CAAC;AAEF,MAAa,qCAAqC,mBAAmB;CACnE,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,MAAM;EACN,SAAS;EACT,GAAG;EACJ;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,QAAQ;CACnB,CAAC;AAEF,MAAa,gCAAgC,CAC3C,mCACA,mCACD"}
@@ -0,0 +1,7 @@
1
+ import * as _contractspec_lib_contracts0 from "@contractspec/lib.contracts";
2
+
3
+ //#region src/tests/operations.test-spec.d.ts
4
+ declare const GetTrackTest: _contractspec_lib_contracts0.TestSpec;
5
+ //#endregion
6
+ export { GetTrackTest };
7
+ //# sourceMappingURL=operations.test-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.test-spec.d.ts","names":[],"sources":["../../src/tests/operations.test-spec.ts"],"sourcesContent":[],"mappings":";;;cAEa,cA4BX,4BAAA,CA5BuB"}
@@ -0,0 +1,36 @@
1
+ import { defineTestSpec } from "@contractspec/lib.contracts";
2
+
3
+ //#region src/tests/operations.test-spec.ts
4
+ const GetTrackTest = defineTestSpec({
5
+ meta: {
6
+ key: "learningJourney.studioOnboarding.getTrack.test",
7
+ version: "1.0.0",
8
+ stability: "experimental",
9
+ owners: ["@example.learning-journey-studio-onboarding"],
10
+ description: "Test for getting studio onboarding track",
11
+ tags: ["test"]
12
+ },
13
+ target: {
14
+ type: "operation",
15
+ operation: {
16
+ key: "learningJourney.studioOnboarding.getTrack",
17
+ version: "1.0.0"
18
+ }
19
+ },
20
+ scenarios: [{
21
+ key: "success",
22
+ when: { operation: { key: "learningJourney.studioOnboarding.getTrack" } },
23
+ then: [{
24
+ type: "expectOutput",
25
+ match: {}
26
+ }]
27
+ }, {
28
+ key: "error",
29
+ when: { operation: { key: "learningJourney.studioOnboarding.getTrack" } },
30
+ then: [{ type: "expectError" }]
31
+ }]
32
+ });
33
+
34
+ //#endregion
35
+ export { GetTrackTest };
36
+ //# sourceMappingURL=operations.test-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.test-spec.js","names":[],"sources":["../../src/tests/operations.test-spec.ts"],"sourcesContent":["import { defineTestSpec } from '@contractspec/lib.contracts';\n\nexport const GetTrackTest = defineTestSpec({\n meta: {\n key: 'learningJourney.studioOnboarding.getTrack.test',\n version: '1.0.0',\n stability: 'experimental',\n owners: ['@example.learning-journey-studio-onboarding'],\n description: 'Test for getting studio onboarding track',\n tags: ['test'],\n },\n target: {\n type: 'operation',\n operation: {\n key: 'learningJourney.studioOnboarding.getTrack',\n version: '1.0.0',\n },\n },\n scenarios: [\n {\n key: 'success',\n when: { operation: { key: 'learningJourney.studioOnboarding.getTrack' } },\n then: [{ type: 'expectOutput', match: {} }],\n },\n {\n key: 'error',\n when: { operation: { key: 'learningJourney.studioOnboarding.getTrack' } },\n then: [{ type: 'expectError' }],\n },\n ],\n});\n"],"mappings":";;;AAEA,MAAa,eAAe,eAAe;CACzC,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,8CAA8C;EACvD,aAAa;EACb,MAAM,CAAC,OAAO;EACf;CACD,QAAQ;EACN,MAAM;EACN,WAAW;GACT,KAAK;GACL,SAAS;GACV;EACF;CACD,WAAW,CACT;EACE,KAAK;EACL,MAAM,EAAE,WAAW,EAAE,KAAK,6CAA6C,EAAE;EACzE,MAAM,CAAC;GAAE,MAAM;GAAgB,OAAO,EAAE;GAAE,CAAC;EAC5C,EACD;EACE,KAAK;EACL,MAAM,EAAE,WAAW,EAAE,KAAK,6CAA6C,EAAE;EACzE,MAAM,CAAC,EAAE,MAAM,eAAe,CAAC;EAChC,CACF;CACF,CAAC"}
package/dist/track.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"track.js","names":["studioGettingStartedTrack: LearningJourneyTrackSpec","studioLearningTracks: LearningJourneyTrackSpec[]"],"sources":["../src/track.ts"],"sourcesContent":["import type { LearningJourneyTrackSpec } from '@contractspec/module.learning-journey/track-spec';\n\nexport const studioGettingStartedTrack: LearningJourneyTrackSpec = {\n id: 'studio_getting_started',\n productId: 'contractspec-studio',\n name: 'Studio Getting Started',\n description:\n 'First 30 minutes in Studio: create a project, edit the spec, deploy/regenerate, and try key modules.',\n targetUserSegment: 'new_studio_user',\n targetRole: 'developer',\n totalXp: 110,\n streakRule: { hoursWindow: 48, bonusXp: 25 },\n completionRewards: { xpBonus: 25, badgeKey: 'studio_first_30m' },\n steps: [\n {\n id: 'choose_template',\n title: 'Choose a template',\n description: 'Create your first Studio project (starter template).',\n order: 1,\n completion: {\n eventName: 'studio.template.instantiated',\n sourceModule: '@contractspec/bundle.studio',\n },\n xpReward: 20,\n metadata: { surface: 'projects' },\n },\n {\n id: 'edit_spec',\n title: 'Edit the spec',\n description: 'Change the spec (not generated code) and save.',\n instructions: 'Open spec editor, tweak a contract or presentation, save.',\n order: 2,\n completion: {\n eventName: 'spec.changed',\n sourceModule: '@contractspec/bundle.studio',\n },\n xpReward: 20,\n metadata: { surface: 'spec-editor' },\n },\n {\n id: 'regenerate_app',\n title: 'Regenerate the app',\n description: 'Regenerate artifacts from the updated spec.',\n order: 3,\n completion: {\n eventName: 'regeneration.completed',\n sourceModule: '@contractspec/lib.contracts/regenerator',\n },\n xpReward: 20,\n metadata: { surface: 'regenerator' },\n },\n {\n id: 'open_canvas',\n title: 'Open the canvas',\n description: 'Visit the canvas module for your project.',\n order: 4,\n completion: {\n eventName: 'module.navigated',\n sourceModule: '@contractspec/bundle.studio',\n payloadFilter: { moduleId: 'canvas' },\n },\n xpReward: 20,\n metadata: { surface: 'canvas' },\n },\n {\n id: 'try_evolution_mode',\n title: 'Try evolution mode',\n description: 'Request a change via Evolution, then regenerate.',\n order: 5,\n completion: {\n eventName: 'studio.evolution.applied',\n sourceModule: '@contractspec/lib.evolution',\n },\n xpReward: 30,\n metadata: { surface: 'evolution' },\n },\n ],\n metadata: {\n persona: 'first_run',\n surfacedIn: ['studio/home', 'studio/sidebar/learning'],\n },\n};\n\nexport const studioLearningTracks: LearningJourneyTrackSpec[] = [\n studioGettingStartedTrack,\n];\n"],"mappings":";AAEA,MAAaA,4BAAsD;CACjE,IAAI;CACJ,WAAW;CACX,MAAM;CACN,aACE;CACF,mBAAmB;CACnB,YAAY;CACZ,SAAS;CACT,YAAY;EAAE,aAAa;EAAI,SAAS;EAAI;CAC5C,mBAAmB;EAAE,SAAS;EAAI,UAAU;EAAoB;CAChE,OAAO;EACL;GACE,IAAI;GACJ,OAAO;GACP,aAAa;GACb,OAAO;GACP,YAAY;IACV,WAAW;IACX,cAAc;IACf;GACD,UAAU;GACV,UAAU,EAAE,SAAS,YAAY;GAClC;EACD;GACE,IAAI;GACJ,OAAO;GACP,aAAa;GACb,cAAc;GACd,OAAO;GACP,YAAY;IACV,WAAW;IACX,cAAc;IACf;GACD,UAAU;GACV,UAAU,EAAE,SAAS,eAAe;GACrC;EACD;GACE,IAAI;GACJ,OAAO;GACP,aAAa;GACb,OAAO;GACP,YAAY;IACV,WAAW;IACX,cAAc;IACf;GACD,UAAU;GACV,UAAU,EAAE,SAAS,eAAe;GACrC;EACD;GACE,IAAI;GACJ,OAAO;GACP,aAAa;GACb,OAAO;GACP,YAAY;IACV,WAAW;IACX,cAAc;IACd,eAAe,EAAE,UAAU,UAAU;IACtC;GACD,UAAU;GACV,UAAU,EAAE,SAAS,UAAU;GAChC;EACD;GACE,IAAI;GACJ,OAAO;GACP,aAAa;GACb,OAAO;GACP,YAAY;IACV,WAAW;IACX,cAAc;IACf;GACD,UAAU;GACV,UAAU,EAAE,SAAS,aAAa;GACnC;EACF;CACD,UAAU;EACR,SAAS;EACT,YAAY,CAAC,eAAe,0BAA0B;EACvD;CACF;AAED,MAAaC,uBAAmD,CAC9D,0BACD"}
1
+ {"version":3,"file":"track.js","names":[],"sources":["../src/track.ts"],"sourcesContent":["import type { LearningJourneyTrackSpec } from '@contractspec/module.learning-journey/track-spec';\n\nexport const studioGettingStartedTrack: LearningJourneyTrackSpec = {\n id: 'studio_getting_started',\n productId: 'contractspec-studio',\n name: 'Studio Getting Started',\n description:\n 'First 30 minutes in Studio: create a project, edit the spec, deploy/regenerate, and try key modules.',\n targetUserSegment: 'new_studio_user',\n targetRole: 'developer',\n totalXp: 110,\n streakRule: { hoursWindow: 48, bonusXp: 25 },\n completionRewards: { xpBonus: 25, badgeKey: 'studio_first_30m' },\n steps: [\n {\n id: 'choose_template',\n title: 'Choose a template',\n description: 'Create your first Studio project (starter template).',\n order: 1,\n completion: {\n eventName: 'studio.template.instantiated',\n sourceModule: '@contractspec/bundle.studio',\n },\n xpReward: 20,\n metadata: { surface: 'projects' },\n },\n {\n id: 'edit_spec',\n title: 'Edit the spec',\n description: 'Change the spec (not generated code) and save.',\n instructions: 'Open spec editor, tweak a contract or presentation, save.',\n order: 2,\n completion: {\n eventName: 'spec.changed',\n sourceModule: '@contractspec/bundle.studio',\n },\n xpReward: 20,\n metadata: { surface: 'spec-editor' },\n },\n {\n id: 'regenerate_app',\n title: 'Regenerate the app',\n description: 'Regenerate artifacts from the updated spec.',\n order: 3,\n completion: {\n eventName: 'regeneration.completed',\n sourceModule: '@contractspec/lib.contracts/regenerator',\n },\n xpReward: 20,\n metadata: { surface: 'regenerator' },\n },\n {\n id: 'open_canvas',\n title: 'Open the canvas',\n description: 'Visit the canvas module for your project.',\n order: 4,\n completion: {\n eventName: 'module.navigated',\n sourceModule: '@contractspec/bundle.studio',\n payloadFilter: { moduleId: 'canvas' },\n },\n xpReward: 20,\n metadata: { surface: 'canvas' },\n },\n {\n id: 'try_evolution_mode',\n title: 'Try evolution mode',\n description: 'Request a change via Evolution, then regenerate.',\n order: 5,\n completion: {\n eventName: 'studio.evolution.applied',\n sourceModule: '@contractspec/lib.evolution',\n },\n xpReward: 30,\n metadata: { surface: 'evolution' },\n },\n ],\n metadata: {\n persona: 'first_run',\n surfacedIn: ['studio/home', 'studio/sidebar/learning'],\n },\n};\n\nexport const studioLearningTracks: LearningJourneyTrackSpec[] = [\n studioGettingStartedTrack,\n];\n"],"mappings":";AAEA,MAAa,4BAAsD;CACjE,IAAI;CACJ,WAAW;CACX,MAAM;CACN,aACE;CACF,mBAAmB;CACnB,YAAY;CACZ,SAAS;CACT,YAAY;EAAE,aAAa;EAAI,SAAS;EAAI;CAC5C,mBAAmB;EAAE,SAAS;EAAI,UAAU;EAAoB;CAChE,OAAO;EACL;GACE,IAAI;GACJ,OAAO;GACP,aAAa;GACb,OAAO;GACP,YAAY;IACV,WAAW;IACX,cAAc;IACf;GACD,UAAU;GACV,UAAU,EAAE,SAAS,YAAY;GAClC;EACD;GACE,IAAI;GACJ,OAAO;GACP,aAAa;GACb,cAAc;GACd,OAAO;GACP,YAAY;IACV,WAAW;IACX,cAAc;IACf;GACD,UAAU;GACV,UAAU,EAAE,SAAS,eAAe;GACrC;EACD;GACE,IAAI;GACJ,OAAO;GACP,aAAa;GACb,OAAO;GACP,YAAY;IACV,WAAW;IACX,cAAc;IACf;GACD,UAAU;GACV,UAAU,EAAE,SAAS,eAAe;GACrC;EACD;GACE,IAAI;GACJ,OAAO;GACP,aAAa;GACb,OAAO;GACP,YAAY;IACV,WAAW;IACX,cAAc;IACd,eAAe,EAAE,UAAU,UAAU;IACtC;GACD,UAAU;GACV,UAAU,EAAE,SAAS,UAAU;GAChC;EACD;GACE,IAAI;GACJ,OAAO;GACP,aAAa;GACb,OAAO;GACP,YAAY;IACV,WAAW;IACX,cAAc;IACf;GACD,UAAU;GACV,UAAU,EAAE,SAAS,aAAa;GACnC;EACF;CACD,UAAU;EACR,SAAS;EACT,YAAY,CAAC,eAAe,0BAA0B;EACvD;CACF;AAED,MAAa,uBAAmD,CAC9D,0BACD"}
package/package.json CHANGED
@@ -1,9 +1,8 @@
1
1
  {
2
2
  "name": "@contractspec/example.learning-journey-studio-onboarding",
3
- "version": "1.46.2",
3
+ "version": "1.47.0",
4
4
  "description": "Learning journey track for first 30 minutes in ContractSpec Studio.",
5
5
  "type": "module",
6
- "main": "./dist/index.js",
7
6
  "types": "./dist/index.d.ts",
8
7
  "exports": {
9
8
  ".": "./dist/index.js",
@@ -14,6 +13,7 @@
14
13
  "./learning-journey-studio-onboarding.feature": "./dist/learning-journey-studio-onboarding.feature.js",
15
14
  "./operations": "./dist/operations/index.js",
16
15
  "./presentations": "./dist/presentations/index.js",
16
+ "./tests/operations.test-spec": "./dist/tests/operations.test-spec.js",
17
17
  "./track": "./dist/track.js",
18
18
  "./*": "./*"
19
19
  },
@@ -30,17 +30,16 @@
30
30
  "lint:check": "eslint src"
31
31
  },
32
32
  "dependencies": {
33
- "@contractspec/lib.contracts": "1.46.2",
34
- "@contractspec/lib.schema": "1.46.2",
35
- "@contractspec/module.learning-journey": "1.46.2"
33
+ "@contractspec/lib.contracts": "1.47.0",
34
+ "@contractspec/lib.schema": "1.47.0",
35
+ "@contractspec/module.learning-journey": "1.47.0"
36
36
  },
37
37
  "devDependencies": {
38
- "@contractspec/tool.tsdown": "1.46.2",
39
- "@contractspec/tool.typescript": "1.46.2",
40
- "tsdown": "^0.18.3",
38
+ "@contractspec/tool.tsdown": "1.47.0",
39
+ "@contractspec/tool.typescript": "1.47.0",
40
+ "tsdown": "^0.19.0",
41
41
  "typescript": "^5.9.3"
42
42
  },
43
- "module": "./dist/index.js",
44
43
  "publishConfig": {
45
44
  "exports": {
46
45
  ".": "./dist/index.js",
package/src/example.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { ExampleSpec } from '@contractspec/lib.contracts';
1
+ import { defineExample } from '@contractspec/lib.contracts';
2
2
 
3
- const example: ExampleSpec = {
3
+ const example = defineExample({
4
4
  meta: {
5
5
  key: 'learning-journey-studio-onboarding',
6
6
  version: '1.0.0',
@@ -26,6 +26,6 @@ const example: ExampleSpec = {
26
26
  studio: { enabled: true, installable: true },
27
27
  mcp: { enabled: true },
28
28
  },
29
- };
29
+ });
30
30
 
31
31
  export default example;
@@ -3,13 +3,13 @@
3
3
  *
4
4
  * Defines the feature module for Studio onboarding journey.
5
5
  */
6
- import type { FeatureModuleSpec } from '@contractspec/lib.contracts';
6
+ import { defineFeature } from '@contractspec/lib.contracts';
7
7
 
8
8
  /**
9
9
  * Learning Journey Studio Onboarding feature module that bundles
10
10
  * Studio-specific onboarding track operations and presentations.
11
11
  */
12
- export const LearningJourneyStudioOnboardingFeature: FeatureModuleSpec = {
12
+ export const LearningJourneyStudioOnboardingFeature = defineFeature({
13
13
  meta: {
14
14
  key: 'learning-journey-studio-onboarding',
15
15
  title: 'Learning Journey: Studio Onboarding',
@@ -66,4 +66,4 @@ export const LearningJourneyStudioOnboardingFeature: FeatureModuleSpec = {
66
66
  capabilities: {
67
67
  requires: [{ key: 'identity', version: '1.0.0' }],
68
68
  },
69
- };
69
+ });
@@ -1,8 +1,8 @@
1
- import type {
2
- PresentationSpecMeta,
3
- PresentationSpec,
1
+ import {
2
+ definePresentation,
3
+ StabilityEnum,
4
+ type PresentationSpecMeta,
4
5
  } from '@contractspec/lib.contracts';
5
- import { StabilityEnum } from '@contractspec/lib.contracts';
6
6
  import { StudioOnboardingTrackModel } from '../operations';
7
7
 
8
8
  const baseMeta: Pick<
@@ -16,7 +16,7 @@ const baseMeta: Pick<
16
16
  stability: StabilityEnum.Experimental,
17
17
  };
18
18
 
19
- export const StudioOnboardingTrackPresentation: PresentationSpec = {
19
+ export const StudioOnboardingTrackPresentation = definePresentation({
20
20
  meta: {
21
21
  key: 'learning.journey.studio.track',
22
22
  version: '1.0.0',
@@ -32,9 +32,9 @@ export const StudioOnboardingTrackPresentation: PresentationSpec = {
32
32
  props: StudioOnboardingTrackModel,
33
33
  },
34
34
  targets: ['react', 'markdown', 'application/json'],
35
- };
35
+ });
36
36
 
37
- export const StudioOnboardingWidgetPresentation: PresentationSpec = {
37
+ export const StudioOnboardingWidgetPresentation = definePresentation({
38
38
  meta: {
39
39
  key: 'learning.journey.studio.widget',
40
40
  version: '1.0.0',
@@ -49,7 +49,7 @@ export const StudioOnboardingWidgetPresentation: PresentationSpec = {
49
49
  componentKey: 'LearningTrackProgressWidget',
50
50
  },
51
51
  targets: ['react'],
52
- };
52
+ });
53
53
 
54
54
  export const studioOnboardingPresentations = [
55
55
  StudioOnboardingTrackPresentation,