Files
certctl/web/package.json
T
shankar0123 5231609f26 fix(web): Hotfix #9 — remove Storybook deps from package.json (Vite 8 peer conflict)
CI failure on Phase 8 commit a9e229b (#561) and subsequent #566:

  npm error peer vite@"^4.0.0 || ^5.0.0 || ^6.0.0"
    from @storybook/react-vite@8.6.18
  npm error   dev @storybook/react-vite@"^8.6.0" from the root project

Root cause:
  Phase 8 added Storybook 8 deps to package.json as scaffold for the
  operator's local install. I did not check Storybook 8's Vite peer-
  range — it caps at Vite 6. certctl runs Vite 8 (Phase 4 manualChunks
  rewrite). `npm ci` fails on the peer conflict; the 3-retry loop in
  Dockerfile-frontend gives the same fail 3 times then aborts.

Fix:
  Remove `storybook`, `@storybook/react-vite`, `@storybook/addon-a11y`,
  + the `storybook` / `storybook:build` npm scripts from package.json.
  CI now resolves cleanly against the existing lockfile (the deps
  never made it into the lockfile because operator hasn't run
  `npm install` locally yet, so removal is a no-op there too).

  The .storybook/ config files + 8 *.stories.tsx files stay committed
  as scaffold. tsconfig.json already excludes them from typecheck.
  When the operator is ready to wire Storybook in:

    cd web && npm install --save-dev storybook@^9.0.0 \
      @storybook/react-vite@^9.0.0 @storybook/addon-a11y@^9.0.0

  Storybook 9 (verified against storybook.js.org docs) supports
  Vite 7+8 — the peer conflict goes away. The .storybook/main.ts
  header now documents this install path so the operator doesn't
  have to dig through commit history later.

  This was an honest scoping error in Phase 8: I should have
  verified the peer-range against the live registry before adding
  the deps. The corrected path (Storybook 9) requires no sandbox
  install — operator picks the version when they're ready.

Verification:
  • npx tsc --noEmit — exits 0
  • npx vite build — ✓ built in 2.58s
  • All 34 CI guards pass locally
  • The package.json + lockfile now match (no Storybook entries
    in either) — `npm ci` on the next push will install cleanly.

Falsifiable proof for next CI run: the Frontend Build job's `npm ci`
step should complete without ERESOLVE error. Watch the next push.
2026-05-14 18:06:12 +00:00

57 lines
1.5 KiB
JSON

{
"name": "certctl-dashboard",
"version": "1.0.0",
"private": true,
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview",
"test": "vitest run",
"test:watch": "vitest",
"e2e": "playwright test",
"e2e:install": "playwright install --with-deps chromium",
"generate": "orval --config ./orval.config.ts"
},
"dependencies": {
"@floating-ui/react": "^0.27.19",
"@fontsource-variable/inter": "^5.2.8",
"@fontsource/jetbrains-mono": "^5.2.8",
"@headlessui/react": "^2.2.10",
"@hookform/resolvers": "^5.2.2",
"@tanstack/react-query": "^5.90.21",
"cmdk": "^1.1.1",
"lucide-react": "^1.16.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-hook-form": "^7.75.0",
"react-router-dom": "^6.30.3",
"recharts": "^3.8.0",
"sonner": "^2.0.7",
"zod": "^4.4.3"
},
"devDependencies": {
"@axe-core/react": "^4.11.3",
"@playwright/test": "^1.49.0",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@types/jest-axe": "^3.5.9",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^6.0.1",
"autoprefixer": "^10.4.27",
"jest-axe": "^10.0.0",
"jsdom": "^29.0.0",
"orval": "^7.0.0",
"postcss": "^8.5.8",
"tailwindcss": "^3.4.19",
"typescript": "^5.9.3",
"vite": "^8.0.10",
"vitest": "^4.1.0"
},
"overrides": {
"picomatch": "^4.0.4",
"lodash": ">=4.18.0"
}
}