@contractspec/example.lifecycle-cli 1.57.0 → 1.59.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.
package/package.json CHANGED
@@ -1,51 +1,88 @@
1
1
  {
2
2
  "name": "@contractspec/example.lifecycle-cli",
3
- "version": "1.57.0",
3
+ "version": "1.59.0",
4
4
  "description": "Lifecycle CLI demo (example): run lifecycle assessment without an HTTP server.",
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
7
7
  "exports": {
8
- ".": "./dist/index.js",
9
- "./demo": "./dist/demo.js",
10
- "./docs": "./dist/docs/index.js",
11
- "./docs/lifecycle-cli.docblock": "./dist/docs/lifecycle-cli.docblock.js",
12
- "./example": "./dist/example.js",
13
- "./*": "./*"
8
+ ".": "./src/index.ts",
9
+ "./demo": "./src/demo.ts",
10
+ "./docs": "./src/docs/index.ts",
11
+ "./docs/index": "./src/docs/index.ts",
12
+ "./docs/lifecycle-cli.docblock": "./src/docs/lifecycle-cli.docblock.ts",
13
+ "./example": "./src/example.ts"
14
14
  },
15
15
  "scripts": {
16
16
  "publish:pkg": "bun publish --tolerate-republish --ignore-scripts --verbose",
17
17
  "publish:pkg:canary": "bun publish:pkg --tag canary",
18
- "build": "bun build:types && bun build:bundle",
19
- "build:bundle": "tsdown",
20
- "build:types": "tsc --noEmit",
21
- "dev": "bun build:bundle --watch",
18
+ "build": "bun run prebuild && bun run build:bundle && bun run build:types",
19
+ "build:bundle": "contractspec-bun-build transpile",
20
+ "build:types": "contractspec-bun-build types",
21
+ "dev": "contractspec-bun-build dev",
22
22
  "clean": "rimraf dist .turbo",
23
23
  "lint": "bun lint:fix",
24
24
  "lint:fix": "eslint src --fix",
25
25
  "lint:check": "eslint src",
26
- "test": "bun test"
26
+ "test": "bun test",
27
+ "prebuild": "contractspec-bun-build prebuild",
28
+ "typecheck": "tsc --noEmit"
27
29
  },
28
30
  "dependencies": {
29
- "@contractspec/bundle.lifecycle-managed": "1.57.0",
30
- "@contractspec/lib.lifecycle": "1.57.0",
31
- "@contractspec/lib.contracts": "1.57.0",
32
- "@contractspec/lib.logger": "1.57.0"
31
+ "@contractspec/bundle.lifecycle-managed": "1.59.0",
32
+ "@contractspec/lib.lifecycle": "1.59.0",
33
+ "@contractspec/lib.contracts": "1.59.0",
34
+ "@contractspec/lib.logger": "1.59.0"
33
35
  },
34
36
  "devDependencies": {
35
- "@contractspec/tool.tsdown": "1.57.0",
36
- "@contractspec/tool.typescript": "1.57.0",
37
- "tsdown": "^0.20.3",
38
- "typescript": "^5.9.3"
37
+ "@contractspec/tool.typescript": "1.59.0",
38
+ "typescript": "^5.9.3",
39
+ "@contractspec/tool.bun": "1.58.0"
39
40
  },
40
41
  "publishConfig": {
41
42
  "access": "public",
42
43
  "exports": {
43
- ".": "./dist/index.js",
44
- "./demo": "./dist/demo.js",
45
- "./docs": "./dist/docs/index.js",
46
- "./docs/lifecycle-cli.docblock": "./dist/docs/lifecycle-cli.docblock.js",
47
- "./example": "./dist/example.js",
48
- "./*": "./*"
44
+ ".": {
45
+ "types": "./dist/index.d.ts",
46
+ "bun": "./dist/index.js",
47
+ "node": "./dist/node/index.mjs",
48
+ "browser": "./dist/browser/index.js",
49
+ "default": "./dist/index.js"
50
+ },
51
+ "./demo": {
52
+ "types": "./dist/demo.d.ts",
53
+ "bun": "./dist/demo.js",
54
+ "node": "./dist/node/demo.mjs",
55
+ "browser": "./dist/browser/demo.js",
56
+ "default": "./dist/demo.js"
57
+ },
58
+ "./docs": {
59
+ "types": "./dist/docs/index.d.ts",
60
+ "bun": "./dist/docs/index.js",
61
+ "node": "./dist/node/docs/index.mjs",
62
+ "browser": "./dist/browser/docs/index.js",
63
+ "default": "./dist/docs/index.js"
64
+ },
65
+ "./docs/index": {
66
+ "types": "./dist/docs/index.d.ts",
67
+ "bun": "./dist/docs/index.js",
68
+ "node": "./dist/node/docs/index.mjs",
69
+ "browser": "./dist/browser/docs/index.js",
70
+ "default": "./dist/docs/index.js"
71
+ },
72
+ "./docs/lifecycle-cli.docblock": {
73
+ "types": "./dist/docs/lifecycle-cli.docblock.d.ts",
74
+ "bun": "./dist/docs/lifecycle-cli.docblock.js",
75
+ "node": "./dist/node/docs/lifecycle-cli.docblock.mjs",
76
+ "browser": "./dist/browser/docs/lifecycle-cli.docblock.js",
77
+ "default": "./dist/docs/lifecycle-cli.docblock.js"
78
+ },
79
+ "./example": {
80
+ "types": "./dist/example.d.ts",
81
+ "bun": "./dist/example.js",
82
+ "node": "./dist/node/example.mjs",
83
+ "browser": "./dist/browser/example.js",
84
+ "default": "./dist/example.js"
85
+ }
49
86
  },
50
87
  "registry": "https://registry.npmjs.org/"
51
88
  },
package/tsdown.config.js CHANGED
@@ -1,5 +1,4 @@
1
- import { defineConfig } from 'tsdown';
2
- import { moduleLibrary } from '@contractspec/tool.tsdown';
1
+ import { defineConfig, moduleLibrary } from '@contractspec/tool.bun';
3
2
 
4
3
  export default defineConfig(() => ({
5
4
  ...moduleLibrary,
@@ -1,30 +0,0 @@
1
- $ tsdown
2
- ℹ tsdown v0.20.3 powered by rolldown v1.0.0-rc.3
3
- ℹ config file: /home/runner/work/contractspec/contractspec/packages/examples/lifecycle-cli/tsdown.config.js
4
- ℹ entry: src/demo.ts, src/example.ts, src/index.ts, src/docs/index.ts, src/docs/lifecycle-cli.docblock.ts
5
- ℹ target: esnext
6
- ℹ tsconfig: tsconfig.json
7
- ℹ Build start
8
- ℹ Cleaning 16 files
9
- ℹ dist/demo.js 1.54 kB │ gzip: 0.77 kB
10
- ℹ dist/docs/lifecycle-cli.docblock.js 1.44 kB │ gzip: 0.72 kB
11
- ℹ dist/example.js 0.93 kB │ gzip: 0.50 kB
12
- ℹ dist/index.js 0.15 kB │ gzip: 0.11 kB
13
- ℹ dist/docs/index.js 0.04 kB │ gzip: 0.06 kB
14
- ℹ dist/demo.js.map 2.79 kB │ gzip: 1.18 kB
15
- ℹ dist/docs/lifecycle-cli.docblock.js.map 1.93 kB │ gzip: 0.90 kB
16
- ℹ dist/example.js.map 1.39 kB │ gzip: 0.69 kB
17
- ℹ dist/example.d.ts.map 0.13 kB │ gzip: 0.13 kB
18
- ℹ dist/demo.d.ts.map 0.12 kB │ gzip: 0.12 kB
19
- ℹ dist/example.d.ts 0.25 kB │ gzip: 0.17 kB
20
- ℹ dist/demo.d.ts 0.16 kB │ gzip: 0.14 kB
21
- ℹ dist/index.d.ts 0.13 kB │ gzip: 0.10 kB
22
- ℹ dist/docs/index.d.ts 0.01 kB │ gzip: 0.03 kB
23
- ℹ dist/docs/lifecycle-cli.docblock.d.ts 0.01 kB │ gzip: 0.03 kB
24
- ℹ 15 files, total: 11.01 kB
25
- [PLUGIN_TIMINGS] Warning: Your build spent significant time in plugins. Here is a breakdown:
26
- - tsdown:external (54%)
27
- - rolldown-plugin-dts:generate (42%)
28
- See https://rolldown.rs/options/checks#plugintimings for more details.
29
-
30
- ✔ Build complete in 15972ms
package/dist/demo.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"demo.js","names":[],"sources":["../src/demo.ts"],"sourcesContent":["import {\n createLifecycleHandlers,\n LifecycleAssessmentService,\n} from '@contractspec/bundle.lifecycle-managed';\nimport {\n CapitalPhase,\n CompanyPhase,\n ProductPhase,\n} from '@contractspec/lib.lifecycle';\nimport { Logger, LogLevel } from '@contractspec/lib.logger';\nimport type { LoggerConfig } from '@contractspec/lib.logger/types';\n\nconst logger = new Logger({\n level: process.env.NODE_ENV === 'production' ? LogLevel.INFO : LogLevel.DEBUG,\n environment:\n (process.env.NODE_ENV as LoggerConfig['environment']) || 'development',\n enableColors: process.env.NODE_ENV !== 'production',\n});\n\nexport async function runLifecycleCliDemo(): Promise<void> {\n const service = new LifecycleAssessmentService({\n collector: {\n analyticsAdapter: {\n async fetch() {\n return {\n metrics: {\n activeUsers: 32,\n weeklyActiveUsers: 27,\n retentionRate: 0.36,\n monthlyRecurringRevenue: 1800,\n customerCount: 22,\n teamSize: 6,\n },\n };\n },\n },\n questionnaireAdapter: {\n async fetch() {\n return {\n axes: {\n product: ProductPhase.Mvp,\n company: CompanyPhase.TinyTeam,\n capital: CapitalPhase.Seed,\n },\n answers: {\n interviewCount: 28,\n primaryPain: 'Manual onboarding takes 3 hours per customer.',\n },\n };\n },\n },\n },\n });\n\n const handlers = createLifecycleHandlers(service);\n\n const response = await handlers.runAssessment({\n body: {\n tenantId: 'demo-tenant',\n completedMilestones: ['stage0-problem-statement'],\n },\n });\n\n logger.info('Lifecycle assessment computed', {\n assessment: response.body.assessment,\n topRecommendation: response.body.recommendation.actions[0],\n libraries: response.body.libraries,\n });\n}\n"],"mappings":";;;;;AAYA,MAAM,SAAS,IAAI,OAAO;CACxB,OAAO,QAAQ,IAAI,aAAa,eAAe,SAAS,OAAO,SAAS;CACxE,aACG,QAAQ,IAAI,YAA4C;CAC3D,cAAc,QAAQ,IAAI,aAAa;CACxC,CAAC;AAEF,eAAsB,sBAAqC;CAqCzD,MAAM,WAAW,MAFA,wBAlCD,IAAI,2BAA2B,EAC7C,WAAW;EACT,kBAAkB,EAChB,MAAM,QAAQ;AACZ,UAAO,EACL,SAAS;IACP,aAAa;IACb,mBAAmB;IACnB,eAAe;IACf,yBAAyB;IACzB,eAAe;IACf,UAAU;IACX,EACF;KAEJ;EACD,sBAAsB,EACpB,MAAM,QAAQ;AACZ,UAAO;IACL,MAAM;KACJ,SAAS,aAAa;KACtB,SAAS,aAAa;KACtB,SAAS,aAAa;KACvB;IACD,SAAS;KACP,gBAAgB;KAChB,aAAa;KACd;IACF;KAEJ;EACF,EACF,CAAC,CAE+C,CAEjB,cAAc,EAC5C,MAAM;EACJ,UAAU;EACV,qBAAqB,CAAC,2BAA2B;EAClD,EACF,CAAC;AAEF,QAAO,KAAK,iCAAiC;EAC3C,YAAY,SAAS,KAAK;EAC1B,mBAAmB,SAAS,KAAK,eAAe,QAAQ;EACxD,WAAW,SAAS,KAAK;EAC1B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle-cli.docblock.js","names":[],"sources":["../../src/docs/lifecycle-cli.docblock.ts"],"sourcesContent":["import type { DocBlock } from '@contractspec/lib.contracts/docs';\nimport { registerDocBlocks } from '@contractspec/lib.contracts/docs';\n\nconst blocks: DocBlock[] = [\n {\n id: 'docs.examples.lifecycle-cli',\n title: 'Lifecycle CLI (demo)',\n summary:\n 'Run a lifecycle assessment from a CLI using the lifecycle-managed bundle (no HTTP server required).',\n kind: 'reference',\n visibility: 'public',\n route: '/docs/examples/lifecycle-cli',\n tags: ['lifecycle', 'cli', 'example'],\n body: `## What this example shows\\n- How to call \\`LifecycleAssessmentService\\` from a Node/Bun script.\\n- How to wire mock analytics + questionnaire adapters.\\n\\n## Run\\n- Use the exported function \\`runLifecycleCliDemo()\\` (or call it from your own CLI wrapper).\\n\\n## Notes\\n- Keep outputs structured; avoid \\`console.log\\` in production paths.\\n- This example is deterministic (fixed inputs → stable output).`,\n },\n {\n id: 'docs.examples.lifecycle-cli.usage',\n title: 'Lifecycle CLI — Usage',\n summary: 'How to run and tweak the lifecycle assessment demo.',\n kind: 'usage',\n visibility: 'public',\n route: '/docs/examples/lifecycle-cli/usage',\n tags: ['lifecycle', 'cli', 'usage'],\n body: `## Usage\\n1) Call \\`runLifecycleCliDemo()\\`.\\n2) Adjust the mock metrics/answers to explore stage outcomes.\\n\\n## Guardrails\\n- Avoid PII in logs.\\n- Keep adapters explicit and deterministic for reproducible demos.`,\n },\n];\n\nregisterDocBlocks(blocks);\n"],"mappings":";;;AA2BA,kBAxB2B,CACzB;CACE,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EAAC;EAAa;EAAO;EAAU;CACrC,MAAM;CACP,EACD;CACE,IAAI;CACJ,OAAO;CACP,SAAS;CACT,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EAAC;EAAa;EAAO;EAAQ;CACnC,MAAM;CACP,CACF,CAEwB"}
@@ -1 +0,0 @@
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: 'lifecycle-cli',\n version: '1.0.0',\n title: 'Lifecycle CLI',\n description:\n 'Tiny script showing how to run the lifecycle managed service from a CLI (no HTTP server required).',\n kind: 'script',\n visibility: 'public',\n stability: 'experimental',\n owners: ['@platform.core'],\n tags: ['lifecycle', 'cli', 'demo'],\n },\n docs: {\n rootDocId: 'docs.examples.lifecycle-cli',\n usageDocId: 'docs.examples.lifecycle-cli.usage',\n },\n entrypoints: {\n packageName: '@contractspec/example.lifecycle-cli',\n docs: './docs',\n },\n surfaces: {\n templates: true,\n sandbox: { enabled: true, modes: ['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;GAAa;GAAO;GAAO;EACnC;CACD,MAAM;EACJ,WAAW;EACX,YAAY;EACb;CACD,aAAa;EACX,aAAa;EACb,MAAM;EACP;CACD,UAAU;EACR,WAAW;EACX,SAAS;GAAE,SAAS;GAAM,OAAO,CAAC,WAAW;GAAE;EAC/C,QAAQ;GAAE,SAAS;GAAM,aAAa;GAAM;EAC5C,KAAK,EAAE,SAAS,MAAM;EACvB;CACF,CAAC"}