Files
hexifyer/package.json
Axel Meyer 367ba8af07 Phase 3: Express backend, SQLite persistence, auto-save
- server/db.ts: sql.js with migration system (hex_maps, hexes, hex_features)
- server/routes/maps.ts: CRUD for hex maps
- server/routes/hexes.ts: Bulk hex upsert, region load, sparse storage
- server/index.ts: Express 5, CORS, tile serving, SPA fallback
- src/data/api-client.ts: Frontend HTTP client for all API endpoints
- src/main.ts: Auto-save with 1s debounce, load map state on startup
- Port 3002 (Kiepenkerl uses 3001)
- Graceful fallback when API unavailable (works without server too)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 10:45:37 +00:00

34 lines
857 B
JSON

{
"name": "hexifyer",
"version": "0.1.0",
"description": "Hex grid overlay tool for fantasy maps",
"private": true,
"type": "module",
"scripts": {
"dev": "concurrently \"vite --host 127.0.0.1 --port 5174\" \"tsx watch server/index.ts\"",
"build": "vite build",
"preview": "vite preview",
"test": "vitest run",
"test:watch": "vitest",
"server": "tsx server/index.ts",
"pipeline:tiles": "tsx pipeline/generate-tiles.ts"
},
"devDependencies": {
"@types/cors": "^2.8.19",
"@types/express": "^5.0.6",
"@types/leaflet": "^1.9.21",
"sharp": "^0.33.0",
"tsx": "^4.19.0",
"typescript": "^5.7.0",
"vite": "^6.0.0",
"vitest": "^3.0.0"
},
"dependencies": {
"concurrently": "^9.2.1",
"cors": "^2.8.6",
"express": "^5.2.1",
"leaflet": "^1.9.4",
"sql.js": "^1.14.1"
}
}