import process from 'node:process' // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ devtools: { enabled: true }, runtimeConfig: { API_ORIGIN: process.env.NUXT_API_ORIGIN || 'http://localhost:3000', VCLAIM: process.env.NUXT_API_VCLAIM || 'http://localhost:3000', VCLAIM_SWAGGER: process.env.NUXT_API_VCLAIM_SWAGGER || 'http://localhost:3000', //SSO X_AP_CODE: process.env.X_AP_CODE || 'rssa-sso', X_AP_SECRET_KEY: process.env.X_AP_SECRET_KEY || 'sapiperah', SSO_CONFIRM_URL: process.env.SSO_CONFIRM_URL || 'https://auth.rssa.top/realms/sandbox/protocol/openid-connect/userinfo', NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_ID: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_ID || 'portal-simrs-new', NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_SECRET: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_SECRET || 'awoiehrw3w8942341k1ln4', NUXT_OIDC_PROVIDERS_KEYCLOAK_BASE_URL: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_BASE_URL || 'https://auth.dev.rssa.id/realms/sandbox', KEYCLOAK_LOGOUT_REDIRECT: process.env.KEYCLOAK_LOGOUT_REDIRECT || 'http://localhost:3000', //test KEYCLOAK_REALM: process.env.KEYCLOAK_REALM || 'sandbox', KEYCLOAK_URL: process.env.KEYCLOAK_URL || 'https://auth.dev.rssa.id/', public: { API_ORIGIN: process.env.NUXT_API_ORIGIN || 'http://localhost:3000', VCLAIM: process.env.NUXT_API_VCLAIM || 'http://localhost:3000', VCLAIM_SWAGGER: process.env.NUXT_API_VCLAIM_SWAGGER || 'http://localhost:3000', //SSO X_AP_CODE: process.env.X_AP_CODE || 'rssa-sso', X_AP_SECRET_KEY: process.env.X_AP_SECRET_KEY || 'sapiperah', SSO_CONFIRM_URL: process.env.SSO_CONFIRM_URL || 'https://auth.rssa.top/realms/sandbox/protocol/openid-connect/userinfo', NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_ID: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_ID || 'portal-simrs-new', NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_SECRET: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_SECRET || 'awoiehrw3w8942341k1ln4', NUXT_OIDC_PROVIDERS_KEYCLOAK_BASE_URL: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_BASE_URL || 'https://auth.dev.rssa.id/realms/sandbox', KEYCLOAK_LOGOUT_REDIRECT: process.env.KEYCLOAK_LOGOUT_REDIRECT || 'http://localhost:3000', //test KEYCLOAK_REALM: process.env.KEYCLOAK_REALM || 'sandbox', KEYCLOAK_URL: process.env.KEYCLOAK_URL || 'https://auth.dev.rssa.id/', }, }, ssr: false, // SPA optimizations router: { options: { hashMode: false, // Use history mode for cleaner URLs }, }, // Enable client-side rendering optimizations nitro: { prerender: { crawlLinks: false, // Disable crawling for SPA }, }, // Optimize app loading app: { head: { viewport: 'width=device-width,initial-scale=1', charset: 'utf-8', }, }, modules: [ '@unocss/nuxt', '@vueuse/nuxt', '@nuxt/eslint', '@nuxt/icon', '@pinia/nuxt', '@nuxtjs/color-mode', '@nuxtjs/tailwindcss', 'shadcn-nuxt', 'nuxt-oidc-auth', ], oidc: { defaultProvider: 'keycloak', keycloak: { audience: 'account', baseUrl: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_BASE_URL, // change to your OP addrress clientId: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_ID, clientSecret: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_SECRET, redirectUri: process.env.KEYCLOAK_LOGOUT_REDIRECT, // optional }, middleware: { globalMiddlewareEnabled: true, customLoginPage: true } }, css: ['@unocss/reset/tailwind.css', '~/assets/css/main.css'], features: { // For UnoCSS inlineStyles: false, }, imports: { dirs: ['./app/lib'], }, shadcn: { prefix: '', componentDir: './app/components/pub/ui', }, colorMode: { classSuffix: '', }, eslint: { config: { standalone: false, }, }, compatibilityDate: '2025-07-15', })