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>
55 lines
1.5 KiB
JSON
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"
|
|
}
|
|
}
|