import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vitest/config'; import { playwright } from '@vitest/browser-playwright'; import { sveltekit } from '@sveltejs/kit/vite'; import { fileURLToPath } from 'url'; import { resolve, dirname } from 'path'; // __dirname no existe en ESM — se reconstruye así const __dirname = dirname(fileURLToPath(import.meta.url)); export default defineConfig({ plugins: [tailwindcss(), sveltekit()], resolve: { alias: { // ── New ecosystem (src/arts + src/libs + src/svrs) ───────────── // Runtime artifacts (Engine* + Active*) — see src/arts/README.md '$active-app': resolve(__dirname, 'src/arts/active-app'), '$adom': resolve(__dirname, 'src/arts/adom'), '$auth': resolve(__dirname, 'src/arts/auth'), '$bus': resolve(__dirname, 'src/arts/bus'), '$cache': resolve(__dirname, 'src/arts/cache'), '$connection': resolve(__dirname, 'src/arts/connection'), '$format': resolve(__dirname, 'src/arts/format'), '$frontend': resolve(__dirname, 'src/arts/frontend'), '$http': resolve(__dirname, 'src/arts/http'), '$lang': resolve(__dirname, 'src/arts/lang'), '$logger': resolve(__dirname, 'src/arts/logger'), '$orca': resolve(__dirname, 'src/arts/orca'), '$perm': resolve(__dirname, 'src/arts/perm'), '$prefs': resolve(__dirname, 'src/arts/prefs'), '$session': resolve(__dirname, 'src/arts/session'), '$sium': resolve(__dirname, 'src/arts/sium'), '$storage': resolve(__dirname, 'src/arts/storage'), '$timer': resolve(__dirname, 'src/arts/timer'), // Pure helpers + contracts (zero-dep) '$libs': resolve(__dirname, 'src/libs'), '$locale': resolve(__dirname, 'src/libs/locale'), // Server-authoritative engines '$svrs': resolve(__dirname, 'src/svrs'), // ── UIX layers ────────────────────────────────────────────────── '$uix': resolve(__dirname, 'src/uix'), '$active-uix': resolve(__dirname, 'src/uix/active-uix'), '$soma': resolve(__dirname, 'src/uix/soma'), '$terra': resolve(__dirname, 'src/uix/terra'), // ── @/ catch-all ──────────────────────────────────────────────── '@': resolve(__dirname, 'src'), // ── Legacy ecosystem (src/lib) — DEPRECATED ───────────────────── // All paths below should migrate to the new ecosystem above. // See src/lib/README.md for the migration map. '$lib': resolve(__dirname, 'src/lib'), '$glob': resolve(__dirname, 'src/lib/glob'), '$reactive': resolve(__dirname, 'src/libs/reactive'), '$langs': resolve(__dirname, 'src/lib/ext/lang/lang.svelte'), '@/ling': resolve(__dirname, 'src/lib/ling'), '@/logr': resolve(__dirname, 'src/lib/logr'), '@/glob': resolve(__dirname, 'src/lib/glob'), '@/actx': resolve(__dirname, 'src/lib/actx'), '@/uiux': resolve(__dirname, 'src/lib/uiux'), }, }, test: { expect: { requireAssertions: true }, projects: [ { extends: './vite.config.ts', test: { name: 'client', browser: { enabled: true, provider: playwright(), instances: [{ browser: 'chromium', headless: true }] }, include: ['src/**/*.svelte.{test,spec}.{js,ts}'], exclude: ['src/lib/server/**'] } }, { extends: './vite.config.ts', resolve: { alias: { // New ecosystem '$active-app': resolve(__dirname, 'src/arts/active-app'), '$adom': resolve(__dirname, 'src/arts/adom'), '$auth': resolve(__dirname, 'src/arts/auth'), '$bus': resolve(__dirname, 'src/arts/bus'), '$cache': resolve(__dirname, 'src/arts/cache'), '$connection': resolve(__dirname, 'src/arts/connection'), '$format': resolve(__dirname, 'src/arts/format'), '$frontend': resolve(__dirname, 'src/arts/frontend'), '$http': resolve(__dirname, 'src/arts/http'), '$lang': resolve(__dirname, 'src/arts/lang'), '$logger': resolve(__dirname, 'src/arts/logger'), '$orca': resolve(__dirname, 'src/arts/orca'), '$perm': resolve(__dirname, 'src/arts/perm'), '$prefs': resolve(__dirname, 'src/arts/prefs'), '$session': resolve(__dirname, 'src/arts/session'), '$sium': resolve(__dirname, 'src/arts/sium'), '$storage': resolve(__dirname, 'src/arts/storage'), '$timer': resolve(__dirname, 'src/arts/timer'), '$libs': resolve(__dirname, 'src/libs'), '$locale': resolve(__dirname, 'src/libs/locale'), '$svrs': resolve(__dirname, 'src/svrs'), // UIX '$uix': resolve(__dirname, 'src/uix'), '$active-uix': resolve(__dirname, 'src/uix/active-uix'), '$soma': resolve(__dirname, 'src/uix/soma'), '$terra': resolve(__dirname, 'src/uix/terra'), // @/ '@': resolve(__dirname, 'src'), // Legacy (DEPRECATED) '$lib': resolve(__dirname, 'src/lib'), '$glob': resolve(__dirname, 'src/lib/glob'), '$reactive': resolve(__dirname, 'src/libs/reactive'), '@/ling': resolve(__dirname, 'src/lib/ling'), '@/logr': resolve(__dirname, 'src/lib/logr'), '@/glob': resolve(__dirname, 'src/lib/glob'), '@/actx': resolve(__dirname, 'src/lib/actx'), '@/uiux': resolve(__dirname, 'src/lib/uiux'), }, }, test: { name: 'server', environment: 'node', include: ['src/**/*.{test,spec}.{js,ts}'], exclude: ['src/**/*.svelte.{test,spec}.{js,ts}'] } } ] } });