// https://nuxt.com/docs/api/configuration/nuxt-config

export default defineNuxtConfig({
  modules: [
    '@nuxt/eslint',
    '@nuxt/ui',
    '@nuxt/content',
    '@vueuse/nuxt',
    '@pinia/nuxt',
    'pinia-plugin-persistedstate/nuxt',
    'nuxt-audiomotion-analyzer',
  ],
  piniaPluginPersistedstate: {
    storage: 'localStorage',
    debug:true
   },
  experimental:{
    extractAsyncDataHandlers: true,
    checkOutdatedBuildInterval: 1000 * 10
  },
  analyzeDir:'./nuxtAnalysis',
  ui:{
    experimental:{
      componentDetection:['Toast'],

    }
  },
  icon:{
    serverBundle:{
      externalizeIconsJson: true,
      remote:false
    },
    provider:'server',
    clientBundle:{
      icons:[
        "lucide:moon",
        "lucide:check",
        "lucide:library",
        'fluent:mail-settings-32-regular'
      ],
      scan:true,
      includeCustomCollections:false,
    }
  },
  nitro:{
    prerender:{
      routes:['/'],
      crawlLinks:true
    }
  },
  routeRules:{
    '/': {prerender:true},
    '/renderold':{prerender:false,noScripts:true,ssr:false},
    '/outside/noteForm':{redirect:'/tools/noteForm'},
    '/screencaps':{redirect:'/old/screencaps'},
    '/channels':{redirect:'/tables/channels'},
    '/customerServiceNumbers':{redirect:'/tables/customer-service-numbers'},
  },
  spaLoadingTemplate:true,
  app: {
    layoutTransition: { name: 'layout', mode: 'out-in' },
    pageTransition: { name: 'page', mode: 'out-in' },
  },
  content: 
  {
    build: 
    {
      csv: 
      {
        // Convert CSV data to JSON objects
        json: true,
        // Specify custom delimiter (default is ',')
        delimiter: ','
      },
      markdown:{
        highlight:false
      }
    },
    experimental:{
      sqliteConnector:'native'
    }
  },
  devtools: {
    enabled: true,

    timeline: {
      enabled: true,
    },
  },

  css: ['~/assets/css/main.css'],

  compatibilityDate: '2025-12-31',

  eslint: {
    config: {
      stylistic: {
        commaDangle: 'never',
        braceStyle: '1tbs'
      }
    }
  },
  vite:{
    server:{
      allowedHosts:["epbfi-tech.com"]
    },
    optimizeDeps: {
      include: [
        '@vue/devtools-core',
        '@vue/devtools-kit',
        'audiomotion-analyzer',
        '@internationalized/date',
        'maska/vue',
        '@unovis/vue'
      ]
    }
  },
  nuxtAudiomotionAnalyzer: {
    defaultOptions: {
      mode: 5,
      barSpace: 0.25,
      gradient: 'rainbow',
      ledBars: false,
      lumiBars: false,
      radial: false,
      reflexAlpha: 0.25,
      reflexBright: 1,
      reflexFit: true,
      reflexRatio: 0.3,
      showBgColor: false,
      showPeaks: true,
      overlay: false
    }
  }
})