import tailwindcss from "@tailwindcss/vite" import { fileURLToPath } from "node:url" // noinspection JSUnresolvedReference export default defineNuxtConfig({ app: { head: { link: [ { rel: "apple-touch-icon", href: "/apple-touch-icon.png" }, { rel: "icon", href: "/theater-masks-solid.svg" }, { rel: "manifest", href: "/manifest.json" }, { rel: "mask-icon", href: "/theater-masks-solid.svg", color: "#9fe88d" } ], meta: [ { charset: "UTF-8" }, { name: "theme-color", content: "#9fe88d" }, { name: "viewport", content: "width=device-width, initial-scale=1.0" } ], title: "Dramatis Personae" } }, alias: { test: fileURLToPath(new URL("./test", import.meta.url)), }, compatibilityDate: "2026-04-13", css: ["~/assets/css/main.css"], // devServer: { port: 3000 }, devtools: { enabled: true, timeline: { enabled: true } }, experimental: { asyncContext: true }, // future: { compatibilityVersion: 5 }, imports: { dirs: ["mutations/**", "queries", "stores"] }, modules: [ "@nuxt/icon", "@pinia/nuxt", "@pinia/colada-nuxt", "@primevue/nuxt-module", ...(process.env.NODE_ENV === "test" ? ["@nuxt/test-utils/module"] : []) ], nitro: { experimental: { asyncContext: true, websocket: true } }, runtimeConfig: { public: { // api: { baseURL: "" }, auth: { baseURL: "" }, websocketHost: "" }, betterAuth: { baseURL: "", secret: "" }, // postmarkServerToken: "", prismaDatabaseURL: "" }, vite: { plugins: [tailwindcss()], optimizeDeps: { include: [ "@pinia/colada-devtools", "@pinia/colada-plugin-delay", "@primevue/core/api", "@primeuix/forms/resolvers/zod", "better-auth/client", "better-auth/client/plugins", "better-auth/plugins/access", "better-auth/plugins/admin/access", "lodash-es", "pinia-colada-plugin-normalizer", "socket.io-client", "tailwind-merge", "trix", "zod" ] }, vue: { template: { compilerOptions: { isCustomElement: (tag) => tag.startsWith("trix-") } } } }, // module configs icon: { size: "1em", class: "inline", mode: "svg", aliases: { personae: "fa6-solid:masks-theater" } }, lodash: { prefix: "_", prefixSkip: false, upperAfterPrefix: false }, pinia: { storesDirs: ["./app/stores/**"] }, primevue: { importPT: { from: "~/utils/passthrough.js" }, options: { ptOptions: { mergeSections: true, mergeProps: true }, unstyled: true } } })