"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); require("./instrumentation"); const express_1 = __importDefault(require("express")); const cors_1 = __importDefault(require("cors")); const helmet_1 = __importDefault(require("helmet")); const cookie_parser_1 = __importDefault(require("cookie-parser")); const express_rate_limit_1 = __importDefault(require("express-rate-limit")); const path_1 = __importDefault(require("path")); const auth_1 = __importDefault(require("./routes/auth")); const employees_1 = __importDefault(require("./routes/employees")); const departments_1 = __importDefault(require("./routes/departments")); const positions_1 = __importDefault(require("./routes/positions")); const locations_1 = __importDefault(require("./routes/locations")); const leave_1 = __importDefault(require("./routes/leave")); const attendance_1 = __importDefault(require("./routes/attendance")); const payroll_1 = __importDefault(require("./routes/payroll")); const recruitment_1 = __importDefault(require("./routes/recruitment")); const performance_1 = __importDefault(require("./routes/performance")); const engagement_1 = __importDefault(require("./routes/engagement")); const analytics_1 = __importDefault(require("./routes/analytics")); const settings_1 = __importDefault(require("./routes/settings")); const notifications_1 = __importDefault(require("./routes/notifications")); const app = (0, express_1.default)(); const PORT = process.env.PORT || 5000; // Security app.use((0, helmet_1.default)({ contentSecurityPolicy: false })); // CORS app.use((0, cors_1.default)({ origin: [ 'http://localhost:3000', 'http://localhost:5000', 'http://localhost:5173', process.env.FRONTEND_URL || 'http://localhost:3000', ], credentials: true, })); // Middleware app.use(express_1.default.json({ limit: '10mb' })); app.use((0, cookie_parser_1.default)()); // Rate limiting for auth const authLimiter = (0, express_rate_limit_1.default)({ windowMs: 15 * 60 * 1000, max: 20, message: { error: 'Too many requests' }, }); // Health check app.get('/health', (req, res) => { res.json({ status: 'ok', timestamp: new Date().toISOString() }); }); // API Routes app.use('/api/v1/auth', authLimiter, auth_1.default); app.use('/api/v1/employees', employees_1.default); app.use('/api/v1/departments', departments_1.default); app.use('/api/v1/positions', positions_1.default); app.use('/api/v1/locations', locations_1.default); app.use('/api/v1/leave', leave_1.default); app.use('/api/v1/attendance', attendance_1.default); app.use('/api/v1/payroll', payroll_1.default); app.use('/api/v1/recruitment', recruitment_1.default); app.use('/api/v1/performance', performance_1.default); app.use('/api/v1/engagement', engagement_1.default); app.use('/api/v1/analytics', analytics_1.default); app.use('/api/v1/settings', settings_1.default); app.use('/api/v1/notifications', notifications_1.default); // Serve frontend in production const frontendDist = path_1.default.join(__dirname, '../../public'); app.use(express_1.default.static(frontendDist)); app.get('*', (req, res) => { res.sendFile(path_1.default.join(frontendDist, 'index.html')); }); app.listen(PORT, () => { console.log(`BetterHuman API running on port ${PORT}`); }); exports.default = app; //# sourceMappingURL=index.js.map