2b25d81144
- Disable production source maps and hide nginx version - Reduce JSON body limit from 10gb to 50mb (uploads use multer, not JSON) - Strip database info and error details from health endpoint - Mask reCAPTCHA secret key in admin settings API responses - Whitelist sort/order query parameters in events and photos endpoints - Stop reflecting arbitrary origins in static file CORS headers - Align nginx security headers with backend Helmet CSP, remove deprecated X-XSS-Protection - Strip EXIF metadata from generated thumbnails and hero images - Bind postgres/redis dev ports to localhost in docker-compose configs - Add safeExec utility (spawn with shell:false) to prevent command injection - Convert all exec/execAsync calls in backup, restore, and database backup services to use safe spawn-based helpers
48 lines
1.0 KiB
TypeScript
48 lines
1.0 KiB
TypeScript
/// <reference types="vitest" />
|
|
// @ts-nocheck
|
|
|
|
import { defineConfig } from 'vite'
|
|
import react from '@vitejs/plugin-react'
|
|
import type { UserConfig as VitestUserConfig } from 'vitest/config'
|
|
|
|
// https://vite.dev/config/
|
|
const config: VitestUserConfig = {
|
|
plugins: [react()],
|
|
build: {
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks: {
|
|
'react-vendor': ['react', 'react-dom', 'react-router-dom'],
|
|
'ui-vendor': ['lucide-react', 'react-toastify'],
|
|
},
|
|
},
|
|
},
|
|
sourcemap: false,
|
|
},
|
|
test: {
|
|
environment: 'jsdom',
|
|
setupFiles: './vitest.setup.ts',
|
|
globals: true
|
|
},
|
|
server: {
|
|
port: 5173,
|
|
host: true,
|
|
proxy: {
|
|
'/api': {
|
|
target: 'http://localhost:7101',
|
|
changeOrigin: true,
|
|
},
|
|
'/photos': {
|
|
target: 'http://localhost:7101',
|
|
changeOrigin: true,
|
|
},
|
|
'/uploads': {
|
|
target: 'http://localhost:7101',
|
|
changeOrigin: true,
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
export default defineConfig(config as any)
|