{
  "version": 2,
  "buildCommand": "npm run build",
  "outputDirectory": "dist/spa",
  "functions": {
    "api/**/*.ts": {
      "memory": 1024,
      "maxDuration": 30
    }
  },
  "redirects": [
    {
      "source": "/:path(.*)",
      "has": [{ "type": "host", "value": "aethex.app" }],
      "destination": "https://aethex.dev/:path",
      "permanent": true
    },
    {
      "source": "/:path(.*)",
      "has": [{ "type": "host", "value": "aethex.locker" }],
      "destination": "https://aethex.dev/:path",
      "permanent": true
    },
    {
      "source": "/:path(.*)",
      "has": [{ "type": "host", "value": "aethex.studio" }],
      "destination": "https://aethex.dev/ethos/:path",
      "permanent": true
    },
    {
      "source": "/:path(.*)",
      "has": [{ "type": "host", "value": "aethex.info" }],
      "destination": "https://aethex.dev/foundation/:path",
      "permanent": true
    },
    {
      "source": "/:path(.*)",
      "has": [{ "type": "host", "value": "aethex.site" }],
      "destination": "https://aethex.dev/:path",
      "permanent": true
    },
    {
      "source": "/",
      "has": [{ "type": "host", "value": "aethex.me" }],
      "destination": "https://aethex.dev/",
      "permanent": true
    },
    {
      "source": "/",
      "has": [{ "type": "host", "value": "aethex.space" }],
      "destination": "https://aethex.dev/",
      "permanent": true
    }
  ],
  "rewrites": [
    {
      "source": "/:path(.*)",
      "has": [{ "type": "host", "value": "*.aethex.me" }],
      "missing": [{ "type": "header", "key": "x-vercel-rewrite-override" }],
      "destination": "/index.html"
    },
    {
      "source": "/:path(.*)",
      "has": [{ "type": "host", "value": "*.aethex.space" }],
      "missing": [{ "type": "header", "key": "x-vercel-rewrite-override" }],
      "destination": "/index.html"
    },
    {
      "source": "/api/:path(.*)",
      "has": [{ "type": "host", "value": "*.aethex.me" }],
      "destination": "/api/:path"
    },
    {
      "source": "/api/:path(.*)",
      "has": [{ "type": "host", "value": "*.aethex.space" }],
      "destination": "/api/:path"
    },
    { "source": "/", "destination": "/index.html" },
    { "source": "/login", "destination": "/index.html" },
    { "source": "/login/:path*", "destination": "/index.html" },
    { "source": "/dashboard", "destination": "/index.html" },
    { "source": "/dashboard/:path*", "destination": "/index.html" },
    { "source": "/profile", "destination": "/index.html" },
    { "source": "/profile/:path*", "destination": "/index.html" },
    { "source": "/activity", "destination": "/index.html" },
    { "source": "/activity/:path*", "destination": "/index.html" },
    { "source": "/admin", "destination": "/index.html" },
    { "source": "/admin/:path*", "destination": "/index.html" },
    { "source": "/creators", "destination": "/index.html" },
    { "source": "/creators/:path*", "destination": "/index.html" },
    { "source": "/opportunities", "destination": "/index.html" },
    { "source": "/opportunities/:path*", "destination": "/index.html" },
    { "source": "/nexus", "destination": "/index.html" },
    { "source": "/nexus/:path*", "destination": "/index.html" },
    { "source": "/foundation", "destination": "/index.html" },
    { "source": "/foundation/:path*", "destination": "/index.html" },
    { "source": "/gameforge", "destination": "/index.html" },
    { "source": "/gameforge/:path*", "destination": "/index.html" },
    { "source": "/labs", "destination": "/index.html" },
    { "source": "/labs/:path*", "destination": "/index.html" },
    { "source": "/corp", "destination": "/index.html" },
    { "source": "/corp/:path*", "destination": "/index.html" },
    { "source": "/devlink", "destination": "/index.html" },
    { "source": "/devlink/:path*", "destination": "/index.html" }
  ],
  "headers": [
    {
      "source": "/assets/(.*)",
      "headers": [
        {
          "key": "Cache-Control",
          "value": "public, max-age=31536000, immutable"
        }
      ]
    },
    {
      "source": "/(.*).(css|js|png|jpg|jpeg|gif|svg|webp|ico|woff2)",
      "headers": [
        {
          "key": "Cache-Control",
          "value": "public, max-age=31536000, immutable"
        }
      ]
    },
    {
      "source": "/api/(.*)",
      "headers": [{ "key": "Cache-Control", "value": "no-store" }]
    },
    {
      "source": "/(.*)",
      "headers": [
        { "key": "X-Frame-Options", "value": "DENY" },
        { "key": "X-Content-Type-Options", "value": "nosniff" },
        {
          "key": "Referrer-Policy",
          "value": "strict-origin-when-cross-origin"
        },
        {
          "key": "Permissions-Policy",
          "value": "geolocation=(), microphone=(), camera=()"
        },
        {
          "key": "Content-Security-Policy",
          "value": "default-src 'self' https: data: blob:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https:; style-src 'self' 'unsafe-inline' https:; img-src 'self' data: blob: https:; font-src 'self' data: https:; connect-src 'self' https: wss:; frame-ancestors 'self' https://discord.com https://*.discord.com"
        }
      ]
    }
  ]
}
