// Copyright (c) 2025-2026 Probo Inc . // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. import { createRequire } from "node:module"; import { fileURLToPath, URL } from "node:url"; import babel from "@rolldown/plugin-babel"; import tailwindcss from "@tailwindcss/vite"; import react from "@vitejs/plugin-react"; import { defineConfig } from "vite"; const require = createRequire(import.meta.url); // @vitejs/plugin-react@6 (Vite 8) no longer runs Babel, so the Relay tagged // template transform is applied via @rolldown/plugin-babel instead. The iam // pages and the rest of the app compile against separate artifact directories. const iamFiles = /src[/\\]pages[/\\]iam[/\\]/; // https://vite.dev/config/ export default defineConfig({ plugins: [ react(), babel({ exclude: [/[/\\]node_modules[/\\]/, /\0rolldown[/\\]runtime\.js/, iamFiles], plugins: [ [ "relay", { eagerEsModules: true, artifactDirectory: "src/__generated__/core", }, ], ], }), babel({ include: /src[/\\]pages[/\\]iam[/\\].*\.[jt]sx?(?:$|\?)/, plugins: [ [ "relay", { eagerEsModules: true, artifactDirectory: "src/__generated__/iam", }, ], ], }), tailwindcss(), ], server: { proxy: { "/api": { target: "http://localhost:8080", changeOrigin: true, }, }, }, resolve: { alias: { "#": fileURLToPath(new URL("./src", import.meta.url)), "mermaid": require.resolve("mermaid/dist/mermaid.esm.min.mjs"), }, }, });