8aab968e09
Build & Deploy / Build & Push Docker Image (push) Successful in 1m2s
Test / Type Check (all packages) (push) Failing after 28s
Test / API Unit Tests (push) Has been skipped
Test / Homepage Unit Tests (push) Has been skipped
Test / Storefront Unit Tests (push) Has been skipped
Test / Admin Unit Tests (push) Has been skipped
Test / Dashboard Unit Tests (push) Has been skipped
Test / API Integration Tests (push) Has been skipped
Build & Deploy / Deploy to VPS (push) Successful in 3s
Comprehensive rename of all marketplace references to storefront: - API module: apps/api/src/modules/marketplace/ → storefront/ - Components: MarketplaceHeader → StorefrontHeader, MarketplaceShell → StorefrontShell, MarketplaceFooter → StorefrontFooter - Types: marketplace-homepage.ts → storefront-homepage.ts - Test files: employee-marketplace-* → employee-storefront-* - All source code identifiers, imports, route paths, and strings - Documentation (docs/), CI config (.gitlab-ci.yml), scripts - Dashboard, admin, storefront workspace references - Prisma field names preserved (isListedOnMarketplace, marketplaceRating, marketplaceFunnelEvent) as they map to database schema Validation: - API type-check: 0 errors - Storefront type-check: 0 errors - Dashboard type-check: 0 errors - Full monorepo type-check: only pre-existing admin TS18046
56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
/** @type {import('next').NextConfig} */
|
|
|
|
const { buildSecurityHeaders, normalizeAssetPrefix } = require('../../config/nextSecurityHeaders')
|
|
const apiOrigin = (process.env.API_INTERNAL_URL ?? process.env.API_URL ?? 'http://localhost:4000').replace(/\/api\/v1\/?$/, '')
|
|
const apiUrl = new URL(apiOrigin)
|
|
const ADMIN_BASE_PATH = '/admin'
|
|
|
|
// In Docker dev the admin app runs on port 3002 while the storefront proxy
|
|
// serves it from port 3000. When ADMIN_ASSET_PREFIX is set, Next emits
|
|
// absolute chunk URLs so /admin pages load their JS/CSS and HMR directly from
|
|
// port 3002, bypassing the proxy (which can't upgrade WebSocket connections).
|
|
const assetPrefix = normalizeAssetPrefix(process.env.ADMIN_ASSET_PREFIX, ADMIN_BASE_PATH)
|
|
const securityHeaders = buildSecurityHeaders({ assetSources: [assetPrefix] })
|
|
|
|
const nextConfig = {
|
|
basePath: ADMIN_BASE_PATH,
|
|
...(assetPrefix ? { assetPrefix } : {}),
|
|
images: {
|
|
remotePatterns: [
|
|
{
|
|
protocol: 'https',
|
|
hostname: 'res.cloudinary.com',
|
|
},
|
|
{
|
|
protocol: apiUrl.protocol.replace(':', ''),
|
|
hostname: apiUrl.hostname,
|
|
...(apiUrl.port ? { port: apiUrl.port } : {}),
|
|
pathname: '/storage/**',
|
|
},
|
|
],
|
|
},
|
|
transpilePackages: ['@rentaldrivego/types'],
|
|
async headers() {
|
|
return [
|
|
{
|
|
source: '/:path*',
|
|
headers: securityHeaders,
|
|
},
|
|
]
|
|
},
|
|
async rewrites() {
|
|
return [
|
|
{
|
|
source: '/api/:path*',
|
|
destination: `${apiOrigin}/api/:path*`,
|
|
},
|
|
{
|
|
source: '/storage/:path*',
|
|
destination: `${apiOrigin}/storage/:path*`,
|
|
},
|
|
]
|
|
},
|
|
}
|
|
|
|
module.exports = nextConfig
|