mirror of
https://github.com/Wan-Video/Wan2.1.git
synced 2025-11-03 05:52:18 +00:00
chore: add configuration files for monorepo setup
- Add root package.json and turbo.json - Add Next.js config files - Add FastAPI environment example - Add PWA manifest - Add ESLint and Prettier config 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
e8fda73741
commit
f21ab74e38
7
wan-pwa/.eslintrc.js
Normal file
7
wan-pwa/.eslintrc.js
Normal file
@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
root: true,
|
||||
extends: ["next/core-web-vitals", "prettier"],
|
||||
rules: {
|
||||
"@next/next/no-html-link-for-pages": "off",
|
||||
},
|
||||
}
|
||||
8
wan-pwa/.prettierrc
Normal file
8
wan-pwa/.prettierrc
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"semi": false,
|
||||
"singleQuote": false,
|
||||
"tabWidth": 2,
|
||||
"trailingComma": "es5",
|
||||
"printWidth": 100,
|
||||
"plugins": ["prettier-plugin-tailwindcss"]
|
||||
}
|
||||
18
wan-pwa/apps/api/.env.example
Normal file
18
wan-pwa/apps/api/.env.example
Normal file
@ -0,0 +1,18 @@
|
||||
# Supabase
|
||||
SUPABASE_URL=https://xxxxx.supabase.co
|
||||
SUPABASE_SERVICE_ROLE_KEY=eyJhbGci...
|
||||
|
||||
# Replicate
|
||||
REPLICATE_API_TOKEN=r8_xxxxx
|
||||
|
||||
# API Configuration
|
||||
ALLOWED_ORIGINS=http://localhost:3000
|
||||
PORT=8000
|
||||
ENV=development
|
||||
|
||||
# Redis (optional for queue)
|
||||
REDIS_URL=redis://localhost:6379
|
||||
|
||||
# Celery (optional for background tasks)
|
||||
CELERY_BROKER_URL=redis://localhost:6379/0
|
||||
CELERY_RESULT_BACKEND=redis://localhost:6379/0
|
||||
11
wan-pwa/apps/web/.env.example
Normal file
11
wan-pwa/apps/web/.env.example
Normal file
@ -0,0 +1,11 @@
|
||||
# Supabase
|
||||
NEXT_PUBLIC_SUPABASE_URL=https://xxxxx.supabase.co
|
||||
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGci...
|
||||
SUPABASE_SERVICE_ROLE_KEY=eyJhbGci...
|
||||
|
||||
# API
|
||||
NEXT_PUBLIC_API_URL=http://localhost:8000
|
||||
|
||||
# App
|
||||
NEXT_PUBLIC_APP_URL=http://localhost:3000
|
||||
NODE_ENV=development
|
||||
48
wan-pwa/apps/web/package.json
Normal file
48
wan-pwa/apps/web/package.json
Normal file
@ -0,0 +1,48 @@
|
||||
{
|
||||
"name": "@wan-pwa/web",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
"build": "next build",
|
||||
"start": "next start",
|
||||
"lint": "next lint",
|
||||
"clean": "rm -rf .next node_modules"
|
||||
},
|
||||
"dependencies": {
|
||||
"@hookform/resolvers": "^3.9.1",
|
||||
"@radix-ui/react-avatar": "^1.1.1",
|
||||
"@radix-ui/react-dialog": "^1.1.2",
|
||||
"@radix-ui/react-dropdown-menu": "^2.1.2",
|
||||
"@radix-ui/react-label": "^2.1.0",
|
||||
"@radix-ui/react-select": "^2.1.2",
|
||||
"@radix-ui/react-slot": "^1.1.0",
|
||||
"@radix-ui/react-tabs": "^1.1.1",
|
||||
"@radix-ui/react-toast": "^1.2.2",
|
||||
"@supabase/ssr": "^0.5.2",
|
||||
"@supabase/supabase-js": "^2.46.1",
|
||||
"class-variance-authority": "^0.7.0",
|
||||
"clsx": "^2.1.1",
|
||||
"lucide-react": "^0.454.0",
|
||||
"next": "15.0.3",
|
||||
"next-pwa": "^5.6.0",
|
||||
"react": "^19.0.0-rc.0",
|
||||
"react-dom": "^19.0.0-rc.0",
|
||||
"react-hook-form": "^7.53.2",
|
||||
"tailwind-merge": "^2.5.4",
|
||||
"tailwindcss-animate": "^1.0.7",
|
||||
"zod": "^3.23.8",
|
||||
"zustand": "^5.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20",
|
||||
"@types/react": "^18",
|
||||
"@types/react-dom": "^18",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"eslint": "^8",
|
||||
"eslint-config-next": "15.0.3",
|
||||
"postcss": "^8",
|
||||
"tailwindcss": "^3.4.1",
|
||||
"typescript": "^5"
|
||||
}
|
||||
}
|
||||
62
wan-pwa/apps/web/public/manifest.json
Normal file
62
wan-pwa/apps/web/public/manifest.json
Normal file
@ -0,0 +1,62 @@
|
||||
{
|
||||
"name": "Wan2.1 PWA - AI Video Generation",
|
||||
"short_name": "Wan2.1",
|
||||
"description": "Generate stunning AI videos with Wan2.1 models",
|
||||
"start_url": "/",
|
||||
"display": "standalone",
|
||||
"background_color": "#ffffff",
|
||||
"theme_color": "#3b82f6",
|
||||
"orientation": "portrait-primary",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/icons/icon-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image/png",
|
||||
"purpose": "any maskable"
|
||||
},
|
||||
{
|
||||
"src": "/icons/icon-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image/png",
|
||||
"purpose": "any maskable"
|
||||
},
|
||||
{
|
||||
"src": "/icons/icon-128x128.png",
|
||||
"sizes": "128x128",
|
||||
"type": "image/png",
|
||||
"purpose": "any maskable"
|
||||
},
|
||||
{
|
||||
"src": "/icons/icon-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image/png",
|
||||
"purpose": "any maskable"
|
||||
},
|
||||
{
|
||||
"src": "/icons/icon-152x152.png",
|
||||
"sizes": "152x152",
|
||||
"type": "image/png",
|
||||
"purpose": "any maskable"
|
||||
},
|
||||
{
|
||||
"src": "/icons/icon-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "any maskable"
|
||||
},
|
||||
{
|
||||
"src": "/icons/icon-384x384.png",
|
||||
"sizes": "384x384",
|
||||
"type": "image/png",
|
||||
"purpose": "any maskable"
|
||||
},
|
||||
{
|
||||
"src": "/icons/icon-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "any maskable"
|
||||
}
|
||||
],
|
||||
"categories": ["productivity", "entertainment"],
|
||||
"screenshots": []
|
||||
}
|
||||
27
wan-pwa/apps/web/tsconfig.json
Normal file
27
wan-pwa/apps/web/tsconfig.json
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2020",
|
||||
"lib": ["dom", "dom.iterable", "esnext"],
|
||||
"allowJs": true,
|
||||
"skipLibCheck": true,
|
||||
"strict": true,
|
||||
"noEmit": true,
|
||||
"esModuleInterop": true,
|
||||
"module": "esnext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"jsx": "preserve",
|
||||
"incremental": true,
|
||||
"plugins": [
|
||||
{
|
||||
"name": "next"
|
||||
}
|
||||
],
|
||||
"paths": {
|
||||
"@/*": ["./src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
||||
"exclude": ["node_modules"]
|
||||
}
|
||||
32
wan-pwa/package.json
Normal file
32
wan-pwa/package.json
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "wan-pwa",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"description": "Wan2.1 PWA - AI Video Generation Platform",
|
||||
"workspaces": [
|
||||
"apps/*",
|
||||
"packages/*"
|
||||
],
|
||||
"scripts": {
|
||||
"dev": "turbo run dev",
|
||||
"build": "turbo run build",
|
||||
"start": "turbo run start",
|
||||
"lint": "turbo run lint",
|
||||
"test": "turbo run test",
|
||||
"clean": "turbo run clean && rm -rf node_modules",
|
||||
"format": "prettier --write \"**/*.{ts,tsx,js,jsx,json,css,md}\"",
|
||||
"db:migrate": "cd packages/db && npm run migrate",
|
||||
"db:seed": "cd packages/db && npm run seed"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@turbo/gen": "^2.3.0",
|
||||
"prettier": "^3.3.3",
|
||||
"prettier-plugin-tailwindcss": "^0.6.8",
|
||||
"turbo": "^2.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0.0",
|
||||
"npm": ">=9.0.0"
|
||||
},
|
||||
"packageManager": "npm@10.2.3"
|
||||
}
|
||||
10
wan-pwa/packages/db/package.json
Normal file
10
wan-pwa/packages/db/package.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "@wan-pwa/db",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"description": "Database schema and migrations",
|
||||
"scripts": {
|
||||
"migrate": "echo 'Run migrations in Supabase dashboard'",
|
||||
"seed": "echo 'Run seed data in Supabase dashboard'"
|
||||
}
|
||||
}
|
||||
23
wan-pwa/turbo.json
Normal file
23
wan-pwa/turbo.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"$schema": "https://turbo.build/schema.json",
|
||||
"globalDependencies": ["**/.env.*local"],
|
||||
"pipeline": {
|
||||
"build": {
|
||||
"dependsOn": ["^build"],
|
||||
"outputs": [".next/**", "!.next/cache/**", "dist/**"]
|
||||
},
|
||||
"dev": {
|
||||
"cache": false,
|
||||
"persistent": true
|
||||
},
|
||||
"lint": {
|
||||
"dependsOn": ["^lint"]
|
||||
},
|
||||
"test": {
|
||||
"dependsOn": ["^test"]
|
||||
},
|
||||
"clean": {
|
||||
"cache": false
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user