// https://nuxt.com/docs/api/configuration/nuxt-config import { IUser } from "@models/user"; // import speedkitHydrate from "nuxt-speedkit/dist/runtime/hydrate.mjs"; export type SessionData = IUser; const cac = { isr: true, headersOnly: true, cache: { headersOnly: true, // integrity: "", varies: ["Content-Length", "Cookie"], maxAge: 60, }, swr: false, }; const ct = () => (u: U) => u; export default defineNuxtConfig({ experimental: { watcher: "chokidar-granular", // noScripts: true, treeshakeClientOnly: true, }, devtools: { enabled: false }, modules: [ "vue-recaptcha/nuxt", "@ant-design-vue/nuxt", "@sidebase/nuxt-auth", "@pinia/nuxt", "@vueuse/nuxt", "nuxt-speedkit", "@nuxtjs/i18n", // "./modules/09.loaded", ], i18n: { vueI18n: `./i18n.config.ts`, }, speedkit: { disableNuxtFontaine: true, lazyOffset: { component: "0%", asset: "0%", }, }, css: ["~/public/fonts.css", "~/public/css/all.css"], auth: { baseURL: "/api/auth", provider: { type: "local", pages: { login: "/login", }, token: { signInResponseTokenPointer: "/token", type: "Bearer", headerName: "Authorization", maxAgeInSeconds: 14 * 24 * 60 * 60, // sameSiteAttribute: , }, // @ts-ignore sessionDataType: {} as IUser, endpoints: { signUp: { path: "/register", method: "post" }, signOut: { path: "/logout", method: "post" }, getSession: { path: "/session", method: "get", }, }, }, globalAppMiddleware: false, //@ts-ignore session: { enableRefreshPeriodically: 60 * 60 * 2 * 1000, enableRefreshOnWindowFocus: false, }, }, nitro: { esbuild: { options: { minify: true, sourceMap: "inline", }, }, preset: "node-server", }, routeRules: { "/": cac, "/api/**": { cors: true }, "/band/**": cac, "/authors": cac, "/story/**": { swr: true, isr: true, cache: { maxAge: 1800, headersOnly: true, varies: ["Cookie", "Set-Cookie"], }, }, // "/authors": { swr: 0 }, // "/bands": { swr: 0 }, }, // routeRules: { // "/**": { // cache: { // maxAge: 60, // headersOnly: true, // }, // // swr: 60 * 60, // }, // }, // ssr: false, sourcemap: { server: true, client: true, }, runtimeConfig: { captcha: { secret: process.env.CAPTCHASECRET, key: process.env.CAPTCHAKEY, }, database: { user: process.env.DBUSER, password: process.env.DBPASS, uri: `mongodb://${process.env.DB}`, }, jwt: process.env.JWT, public: { recaptcha: { v2SiteKey: process.env.CAPTCHAKEY, }, auth: { computed: { origin: "127.0.0.1", }, }, // apiBase: "/api" }, nodebb: { masterToken: process.env.nbb_bearer, }, }, // components: { // transform: (str) => // }, });