veza/packages/design-system/package.json
senke 86faeb16a8
Some checks failed
Veza CI / Rust (Stream Server) (push) Successful in 4m6s
Security Scan / Secret Scanning (gitleaks) (push) Successful in 1m20s
Veza CI / Backend (Go) (push) Successful in 5m37s
E2E Playwright / e2e (full) (push) Failing after 16m58s
Veza CI / Frontend (Web) (push) Successful in 29m45s
Veza CI / Notify on failure (push) Has been skipped
fix(ci): build design-system tokens before tsc/vite (Day 4 follow-up)
CI run 455/456 surfaced:
  src/features/player/components/AudioVisualizer.tsx(22,8): error TS2307:
  Cannot find module '@veza/design-system/tokens-generated' or its
  corresponding type declarations.

Root cause: the sprint 2 design-system migration (commits a25ad2e0ab923def) replaced manual src/ exports with Style Dictionary output in
packages/design-system/dist/. That `dist/` is gitignored — by design,
since it's generated artifact — but no step in the CI workflows runs
the generator before tsc/vite/vitest fire.

apps/web imports `@veza/design-system/tokens-generated`, which the
package's `exports` field maps to `./dist/tokens.ts`. With dist/ empty
on a fresh checkout, the import resolves to undefined → TS2307.

Two-pronged fix:

(1) packages/design-system/package.json — add a `prepare` script that
    runs Style Dictionary. npm fires `prepare` after `npm install`
    AND `npm ci`, so any workspace install populates dist/ without an
    extra workflow change. Also covers fresh dev clones.

(2) .github/workflows/{ci.yml,e2e.yml} — explicit
    `npm run build:tokens --workspace=@veza/design-system` step
    immediately after `npm ci`. Belt-and-suspenders against any npm
    version where `prepare` is silent or filtered (lifecycle script
    skipping has burned us before — `--ignore-scripts` flags, etc.).

Verified locally:
  $ rm -rf packages/design-system/dist/
  $ npm run build:tokens --workspace=@veza/design-system
  ✓ Style Dictionary build complete.
  $ cd apps/web && npx tsc --noEmit
  (clean)

SKIP_TESTS=1 — config-only changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 12:31:50 +02:00

27 lines
779 B
JSON

{
"name": "@veza/design-system",
"version": "3.0.0",
"description": "SUMI Design System — Design tokens (single source of truth) for the Veza platform. Authored as W3C JSON tokens, compiled via Style Dictionary to CSS vars + TS exports.",
"type": "module",
"exports": {
"./tokens.css": "./dist/tokens.css",
"./tokens-generated": {
"types": "./dist/tokens.d.ts",
"default": "./dist/tokens.ts"
}
},
"files": [
"tokens/",
"dist/",
"style-dictionary.config.mjs"
],
"scripts": {
"build": "node style-dictionary.config.mjs",
"build:tokens": "node style-dictionary.config.mjs",
"prepare": "node style-dictionary.config.mjs"
},
"devDependencies": {
"style-dictionary": "^4.4.0"
},
"license": "UNLICENSED"
}