# -------------------------------------------------------------------
# Litespeed / cPanel Node.js Configuration (ERP System)
# -------------------------------------------------------------------

# 1. Start the Node.js Engine
<IfModule mod_passenger.c>
    PassengerEnabled on
    PassengerAppType node
    PassengerStartupFile server.js
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # 2. SECURITY: Block source code, raw data, and configs
    # We allow server.js to be handled by Passenger, but block .ts and other source files
    RewriteRule ^(\.git|src|data|sessions|tmp|node_modules|package\.json|package-lock\.json|vite\.config\.ts|tsconfig\.json|metadata\.json|server\.ts|.env) - [F,L]

    # 3. STATIC FILES: Try to serve from /dist/ if file exists
    RewriteCond %{DOCUMENT_ROOT}/dist%{REQUEST_URI} -f
    RewriteRule ^(.*)$ /dist/$1 [L]

    # 4. API & ROUTING: Send everything else to server.js
    # This ensures your ERP Database (API) and Navigation work correctly
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ server.js/$1 [L]
</IfModule>

# 5. Correct MIME Types for Modern Web Assets
<IfModule mod_mime.c>
    AddType application/javascript .js
    AddType application/javascript .mjs
    AddType text/css .css
    AddType image/svg+xml .svg
    AddCharset utf-8 .js
    AddCharset utf-8 .mjs
</IfModule>

