Files
session-viewer/package.json
teernisse 7e15c36e2f Add project scaffolding and build configuration
Initialize the session-viewer project — a tool for browsing, filtering,
redacting, and exporting Claude Code session logs as self-contained HTML.

Scaffolding includes:
- package.json with Express server + React client dual-stack setup,
  dev/build/test/lint/typecheck scripts, and a CLI bin entry point
- TypeScript configs: base tsconfig.json (ESNext, bundler resolution,
  strict, react-jsx) and tsconfig.server.json extending it for the
  Express server compilation target
- Vite config: React plugin, Tailscale-aware dev server on :3847 with
  API proxy to :3848, client build output to dist/client
- Vitest config: node environment, test discovery from tests/unit and
  src/client/components
- ESLint flat config: typescript-eslint recommended, unused-vars with
  underscore exception
- Tailwind CSS config scoped to src/client, PostCSS with autoprefixer
- Playwright config: Chromium-only E2E against dev server
- bin/session-viewer.js: CLI entry point that re-execs via tsx with
  browser-open flag

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:55:31 -05:00

55 lines
1.5 KiB
JSON

{
"name": "session-viewer",
"version": "1.0.0",
"description": "Browse, filter, redact, and export Claude Code sessions as self-contained HTML",
"type": "module",
"bin": {
"session-viewer": "./bin/session-viewer.js"
},
"scripts": {
"dev": "concurrently \"npm run dev:server\" \"npm run dev:client\"",
"dev:server": "tsx watch src/server/index.ts",
"dev:client": "vite",
"build": "tsc && vite build",
"preview": "vite preview",
"test": "vitest run",
"test:watch": "vitest",
"test:e2e": "playwright test",
"typecheck": "tsc --noEmit",
"lint": "eslint . --ext .ts,.tsx"
},
"dependencies": {
"express": "^4.21.0",
"highlight.js": "^11.10.0",
"marked": "^14.0.0",
"marked-highlight": "^2.2.3",
"open": "^10.1.0",
"react": "^18.3.1",
"react-dom": "^18.3.1"
},
"devDependencies": {
"@eslint/js": "^9.0.0",
"@playwright/test": "^1.48.0",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@types/express": "^4.17.21",
"@types/node": "^22.0.0",
"@types/react": "^18.3.0",
"@types/react-dom": "^18.3.0",
"@types/supertest": "^6.0.0",
"@vitejs/plugin-react": "^4.3.0",
"autoprefixer": "^10.4.20",
"concurrently": "^9.0.0",
"eslint": "^9.0.0",
"jsdom": "^27.4.0",
"postcss": "^8.4.47",
"supertest": "^7.0.0",
"tailwindcss": "^3.4.13",
"tsx": "^4.19.0",
"typescript": "^5.6.0",
"typescript-eslint": "^8.0.0",
"vite": "^5.4.0",
"vitest": "^2.1.0"
}
}