mirror of
https://github.com/SamyRai/tercul-frontend.git
synced 2025-12-27 00:11:35 +00:00
* feat: Add GitHub Actions workflows for frontend CI/CD - Add lint.yml: TypeScript and ESLint checks - Add build.yml: Vite application build pipeline - Add docker-build.yml: Multi-arch container image builds - Add deploy.yml: Production deployment to Docker Swarm - Add dependabot.yml: Automated dependency updates Follows Single Responsibility Principle with focused workflows. Includes security best practices, caching, and deployment automation. * fix: Add missing Dockerfile and lint script for CI/CD workflows - Add Dockerfile for multi-stage Node.js build with production optimizations - Add lint script to package.json that runs TypeScript type checking - Enable health check endpoint in Docker container - Configure proper user permissions and security practices Fixes docker-build workflow failures and enables complete CI/CD pipeline. * fix: Enable Corepack for Yarn 4.x compatibility in Docker build - Enable Corepack in Dockerfile to support packageManager field - Fix lint script to use TypeScript checking instead of invalid yarn check - Remove manual yarn installation from Dockerfile since Corepack handles it * fix: Enable Corepack in CI workflows to resolve Yarn version conflicts * chore: Update to latest GitHub Actions versions - Update actions/checkout to v6 - Update actions/setup-node to v6 - Update actions/upload-artifact to v5 - Update Node.js to version 22 (Active LTS) - Update Docker base images to node:22-alpine * Fix Corepack/Yarn caching issue in CI workflows - Remove cache: yarn from setup-node action to prevent yarn usage before corepack enable - Enable corepack immediately after Node.js setup - Add manual yarn caching using actions/cache@v4 with proper cache directory path - This resolves the packageManager field conflict in CI * Fix BlogEdit.tsx import and component issues - Fix import path from @/api/blog-api to @/lib/api/blog-api - Replace TagManager component with simple tag input since BlogEdit uses plain state - Remove unused handleTagsChange function - This resolves the build error where blog-api file was not found * Fix Yarn 4.x deprecated commands in Dockerfile - Replace --frozen-lockfile with --immutable in builder stage - Replace --frozen-lockfile --production with --immutable + autoclean in production stage - This resolves the Yarn 4.9.0 deprecation warnings and build failures * fix: optimize Dockerfile to use Yarn PnP instead of node-modules - Use Yarn Plug'n'Play (PnP) for faster installs and smaller image size - Keep .yarnrc.yml configuration instead of overriding it - Copy PnP files (.pnp.cjs, .pnp.loader.mjs, .yarn cache) to production stage - Use yarn workspaces focus --production for production dependencies - Corepack manages Yarn version while PnP handles dependency resolution * fix: correct CI/CD workflow issues - Fix lint.yml to use 'yarn check' instead of 'yarn lint' (ESLint not configured) - Fix Dockerfile to use 'yarn install --production' for single package repo - Update workflow name to reflect actual functionality
120 lines
3.9 KiB
JSON
120 lines
3.9 KiB
JSON
{
|
|
"name": "rest-express",
|
|
"version": "1.0.0",
|
|
"type": "module",
|
|
"license": "MIT",
|
|
"scripts": {
|
|
"dev": "NODE_ENV=development tsx server/index.ts",
|
|
"build": "vite build && esbuild server/index.ts --platform=node --packages=external --bundle --format=esm --outdir=dist",
|
|
"start": "NODE_ENV=production node dist/index.js",
|
|
"check": "tsc",
|
|
"lint": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@anthropic-ai/sdk": "^0.37.0",
|
|
"@graphql-codegen/cli": "^5.0.7",
|
|
"@graphql-codegen/typescript": "^4.1.6",
|
|
"@graphql-codegen/typescript-graphql-request": "^6.3.0",
|
|
"@graphql-codegen/typescript-operations": "^4.6.1",
|
|
"@hookform/resolvers": "^3.10.0",
|
|
"@jridgewell/trace-mapping": "^0.3.25",
|
|
"@neondatabase/serverless": "^0.10.4",
|
|
"@radix-ui/react-accordion": "^1.2.4",
|
|
"@radix-ui/react-alert-dialog": "^1.1.7",
|
|
"@radix-ui/react-aspect-ratio": "^1.1.3",
|
|
"@radix-ui/react-avatar": "^1.1.4",
|
|
"@radix-ui/react-checkbox": "^1.1.5",
|
|
"@radix-ui/react-collapsible": "^1.1.4",
|
|
"@radix-ui/react-context-menu": "^2.2.7",
|
|
"@radix-ui/react-dialog": "^1.1.7",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.7",
|
|
"@radix-ui/react-hover-card": "^1.1.7",
|
|
"@radix-ui/react-label": "^2.1.3",
|
|
"@radix-ui/react-menubar": "^1.1.7",
|
|
"@radix-ui/react-navigation-menu": "^1.2.6",
|
|
"@radix-ui/react-popover": "^1.1.7",
|
|
"@radix-ui/react-progress": "^1.1.3",
|
|
"@radix-ui/react-radio-group": "^1.2.4",
|
|
"@radix-ui/react-scroll-area": "^1.2.4",
|
|
"@radix-ui/react-select": "^2.1.7",
|
|
"@radix-ui/react-separator": "^1.1.3",
|
|
"@radix-ui/react-slider": "^1.2.4",
|
|
"@radix-ui/react-slot": "^1.2.0",
|
|
"@radix-ui/react-switch": "^1.1.4",
|
|
"@radix-ui/react-tabs": "^1.1.4",
|
|
"@radix-ui/react-toast": "^1.2.7",
|
|
"@radix-ui/react-toggle": "^1.1.3",
|
|
"@radix-ui/react-toggle-group": "^1.1.3",
|
|
"@radix-ui/react-tooltip": "^1.2.0",
|
|
"@tailwindcss/vite": "^4.1.3",
|
|
"@tanstack/react-query": "^5.60.5",
|
|
"@tanstack/react-table": "^8.21.3",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cmdk": "^1.1.1",
|
|
"connect-pg-simple": "^10.0.0",
|
|
"date-fns": "^3.6.0",
|
|
"drizzle-orm": "^0.39.1",
|
|
"drizzle-zod": "^0.7.0",
|
|
"embla-carousel-react": "^8.6.0",
|
|
"express": "^4.21.2",
|
|
"express-session": "^1.18.1",
|
|
"framer-motion": "^11.13.1",
|
|
"graphql": "^16.11.0",
|
|
"graphql-request": "^6.1.0",
|
|
"graphql-tag": "^2.12.6",
|
|
"input-otp": "^1.4.2",
|
|
"lucide-react": "^0.453.0",
|
|
"memorystore": "^1.6.7",
|
|
"next-themes": "^0.4.6",
|
|
"passport": "^0.7.0",
|
|
"passport-local": "^1.0.0",
|
|
"react": "^19.1.1",
|
|
"react-day-picker": "^8.10.1",
|
|
"react-dom": "^19.1.1",
|
|
"react-hook-form": "^7.55.0",
|
|
"react-icons": "^5.4.0",
|
|
"react-resizable-panels": "^2.1.7",
|
|
"recharts": "^2.15.2",
|
|
"tailwind-merge": "^2.6.0",
|
|
"tailwindcss-animate": "^1.0.7",
|
|
"tw-animate-css": "^1.2.5",
|
|
"vaul": "^1.1.2",
|
|
"wouter": "^3.3.5",
|
|
"ws": "^8.18.0",
|
|
"zod": "4.0.0",
|
|
"zod-validation-error": "^3.4.0"
|
|
},
|
|
"devDependencies": {
|
|
"@replit/vite-plugin-cartographer": "^0.1.2",
|
|
"@replit/vite-plugin-runtime-error-modal": "^0.0.3",
|
|
"@tailwindcss/typography": "^0.5.15",
|
|
"@types/connect-pg-simple": "^7.0.3",
|
|
"@types/express": "4.17.21",
|
|
"@types/express-session": "^1.18.0",
|
|
"@types/node": "^24.2.1",
|
|
"@types/passport": "^1.0.16",
|
|
"@types/passport-local": "^1.0.38",
|
|
"@types/react": "^19.1.10",
|
|
"@types/react-dom": "^19.1.7",
|
|
"@types/ws": "^8.5.13",
|
|
"@vitejs/plugin-react": "^4.3.2",
|
|
"autoprefixer": "^10.4.20",
|
|
"drizzle-kit": "^0.30.4",
|
|
"esbuild": "^0.25.0",
|
|
"nanoid": "^5.1.5",
|
|
"postcss": "^8.4.47",
|
|
"prettier": "^3.6.2",
|
|
"prettier-vscode": "^1.0.0",
|
|
"react-router-dom": "^7.8.0",
|
|
"tailwindcss": "^3.4.17",
|
|
"tsx": "^4.19.1",
|
|
"typescript": "5.6.3",
|
|
"vite": "^7.1.2"
|
|
},
|
|
"optionalDependencies": {
|
|
"bufferutil": "^4.0.8"
|
|
},
|
|
"packageManager": "yarn@4.9.0+sha512.5f5f00843eae735dfab6f0442524603e987ceca55e98b36eb0120f4e58908e5b1406545321e46627dca97d15d562f23dc13fb96cabd4e6bc92d379f619001e4e"
|
|
}
|