immersive2/vite.config.ts
Michael Mainguy c1503d959e Add configurable feature management system with JSON-based feature flags
Implement comprehensive feature toggle system allowing menu options and features
to be controlled via JSON configuration fetched from API endpoint or static files.

Core System:
- Create FeatureConfig type system with page, feature, and limit-based flags
- Add React Context (FeatureProvider) that fetches from /api/user/features
- Implement custom hooks (useFeatures, useIsFeatureEnabled, useFeatureLimit, etc.)
- Default config disables everything except home page

Integration:
- Update PageHeader to filter menu items based on page flags
- Add ProtectedRoute component to guard routes
- Update VR menu to conditionally render items based on feature flags
- Update CreateDiagramModal to enable/disable options (private, encrypted, invite)
- Update ManageDiagramsModal to use configurable maxDiagrams limit

Configuration Files:
- Add static JSON files for local testing (none, free, basic, pro tiers)
- Add dev proxy for /api/user/features endpoint
- Include README with testing instructions

Updates:
- Complete CLAUDE.md naming conventions section
- Version bump to 0.0.8-27

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 06:52:39 -06:00

62 lines
1.5 KiB
TypeScript

/// <reference types="vitest" />
import {defineConfig} from "vite";
/** @type {import('vite').UserConfig} */
export default defineConfig({
test: {},
define: {},
build: {
sourcemap: true,
rollupOptions: {
output: {
manualChunks: {
'babylon': ['@babylonjs/core']
}
}
}
},
optimizeDeps: {
esbuildOptions: {
define: {
global: 'window',
}
}
},
server: {
port: 3001,
proxy: {
'^/sync/.*': {
target: 'https://www.deepdiagram.com/',
changeOrigin: true,
},
'^/create-db': {
target: 'https://www.deepdiagram.com/',
changeOrigin: true,
},
'^/api/images': {
target: 'https://www.deepdiagram.com/',
changeOrigin: true,
}
}
},
preview: {
port: 3001,
proxy: {
'^/sync/.*': {
target: 'https://www.deepdiagram.com/',
changeOrigin: true,
},
'^/create-db': {
target: 'https://www.deepdiagram.com/',
changeOrigin: true,
},
'^/api/images': {
target: 'https://www.deepdiagram.com/',
changeOrigin: true,
}
}
},
base: "/"
})