diff --git a/kevisual.json b/kevisual.json index 7e3c38c..acf0250 100644 --- a/kevisual.json +++ b/kevisual.json @@ -17,5 +17,28 @@ "registry": "" } ], - "sync": {} + "scripts": { + "auth": "ev sync clone -l -i https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/public/auth.json" + }, + "sync": { + "AGENTS.md": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/AGENTS.md", + "vite.config.ts": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/vite.config.ts", + "src/main.tsx": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/main.tsx", + "public/auth.json": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/public/auth.json", + "src/agents/index.ts": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/agents/index.ts", + "src/modules/basename.ts": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/modules/basename.ts", + "src/modules/query.ts": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/modules/query.ts", + "src/routes/demo.tsx": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/routes/demo.tsx", + "src/routes/index.tsx": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/routes/index.tsx", + "src/routes/login.tsx": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/routes/login.tsx", + "src/styles/theme.css": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/styles/theme.css", + "src/pages/auth/index.tsx": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/pages/auth/index.tsx", + "src/pages/auth/page.tsx": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/pages/auth/page.tsx", + "src/pages/auth/store.ts": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/pages/auth/store.ts", + "src/pages/demo/page.tsx": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/pages/demo/page.tsx", + "src/pages/auth/hooks/index.ts": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/pages/auth/hooks/index.ts", + "src/pages/auth/hooks/use-api-query.ts": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/pages/auth/hooks/use-api-query.ts", + "src/pages/auth/modules/BaseHeader.tsx": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/pages/auth/modules/BaseHeader.tsx", + "src/pages/demo/store/index.ts": "https://kevisual.cn/root/ai/kevisual/frontend/vite-react-template/src/pages/demo/store/index.ts" + } } \ No newline at end of file diff --git a/package.json b/package.json index 5377e78..986cd21 100644 --- a/package.json +++ b/package.json @@ -27,16 +27,15 @@ "@codemirror/lang-markdown": "^6.5.0", "@kevisual/api": "^0.0.64", "@kevisual/context": "^0.0.8", - "@kevisual/router": "0.1.1", + "@kevisual/router": "0.1.2", "@tanstack/react-query": "^5.90.21", - "@tanstack/react-router": "^1.166.7", + "@tanstack/react-router": "^1.167.3", "@uiw/codemirror-theme-vscode": "^4.25.8", "@uiw/react-codemirror": "^4.25.8", "ai": "^6.0.116", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", - "convex": "^1.33.0", "dayjs": "^1.11.20", "es-toolkit": "^1.45.1", "fuse.js": "^7.1.0", @@ -45,7 +44,7 @@ "graphology-layout-noverlap": "^0.4.2", "graphology-types": "^0.24.8", "lucide-react": "^0.577.0", - "nanoid": "^5.1.6", + "nanoid": "^5.1.7", "next-themes": "^0.4.6", "react": "^19.2.4", "react-dom": "^19.2.4", @@ -54,20 +53,20 @@ "sonner": "^2.0.7", "three": "^0.183.2", "three-spritetext": "^1.10.0", - "zustand": "^5.0.11" + "zustand": "^5.0.12" }, "publishConfig": { "access": "public" }, "devDependencies": { "@kevisual/ai": "0.0.28", - "@kevisual/kv-login": "^0.1.17", + "@kevisual/kv-login": "^0.1.18", "@kevisual/query": "0.0.53", "@kevisual/types": "^0.0.12", - "@opencode-ai/sdk": "^1.2.26", + "@opencode-ai/sdk": "^1.2.27", "@tailwindcss/vite": "^4.2.1", - "@tanstack/react-router-devtools": "^1.166.7", - "@tanstack/router-plugin": "^1.166.7", + "@tanstack/react-router-devtools": "^1.166.9", + "@tanstack/router-plugin": "^1.166.12", "@types/node": "^25.5.0", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", @@ -78,6 +77,7 @@ "tailwindcss": "^4.2.1", "tw-animate-css": "^1.4.0", "typescript": "^5.9.3", - "vite": "v8.0.0" + "vite": "v8.0.0", + "vite-plugin-pwa": "^1.2.0" } } \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index dd12c5b..7ab023f 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -5,19 +5,19 @@ import pkgs from './package.json'; import tailwindcss from '@tailwindcss/vite'; import { tanstackRouter } from '@tanstack/router-plugin/vite' import dotenv from 'dotenv'; -const config = dotenv.config().parsed || {}; -console.log('Loaded .env config:', config); -const isDev = process.env.NODE_ENV === 'development'; +import { VitePWA } from 'vite-plugin-pwa'; + +const env = dotenv.config().parsed || {}; +const isDev = env.NODE_ENV === 'development' || process.env.NODE_ENV === 'development'; const basename = isDev ? '/' : pkgs?.basename || '/'; -let target = config.VITE_API_URL || 'http://localhost:51515'; +let target = env.VITE_API_URL || process.env.API_URL || 'http://localhost:51515'; const apiProxy = { target: target, changeOrigin: true, ws: true, rewriteWsOrigin: true, secure: false, cookieDomainRewrite: 'localhost' }; let proxy = { '/root/': apiProxy, '/api': apiProxy, '/client': apiProxy, }; -console.log('API Proxy Target:', target); /** * @see https://vitejs.dev/config/ */ @@ -29,7 +29,13 @@ export default defineConfig({ autoCodeSplitting: true, }), react(), - tailwindcss() + tailwindcss(), + VitePWA({ + injectRegister: 'auto', + workbox:{ + maximumFileSizeToCacheInBytes: 10 * 1024 * 1024, // 10MB + } + }), ], resolve: { alias: { @@ -41,7 +47,7 @@ export default defineConfig({ BASE_NAME: JSON.stringify(basename), }, server: { - port: 7009, + port: 7008, host: '0.0.0.0', allowedHosts: true, proxy,