Some checks failed
Dev Deployment (Zero Downtime) / deploy-dev (push) Failing after 10m3s
Added rate limiting to APIs, cleaned up docs, implemented fallback logic for reviews without text, and added comprehensive n8n guide.
126 lines
4.5 KiB
JSON
126 lines
4.5 KiB
JSON
{
|
|
"name": "portfolio",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "node scripts/dev-minimal.js",
|
|
"dev:simple": "node scripts/dev-simple.js",
|
|
"dev:next": "next dev",
|
|
"db:setup": "node scripts/setup-database.js",
|
|
"db:seed": "tsx -r dotenv/config prisma/seed.ts dotenv_config_path=.env.local",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "cross-env NODE_ENV=development eslint .",
|
|
"lint:fix": "eslint . --fix",
|
|
"pre-push": "./scripts/pre-push.sh",
|
|
"pre-push:full": "./scripts/pre-push-full.sh",
|
|
"pre-push:quick": "./scripts/pre-push-quick.sh",
|
|
"test:all": "npm run test && npm run test:e2e",
|
|
"buildAnalyze": "cross-env ANALYZE=true next build",
|
|
"test": "cross-env NODE_ENV=test jest",
|
|
"test:production": "NODE_ENV=production jest --config jest.config.production.ts",
|
|
"test:watch": "jest --watch",
|
|
"test:coverage": "jest --coverage",
|
|
"test:e2e": "playwright test",
|
|
"test:e2e:ui": "playwright test --ui",
|
|
"test:e2e:headed": "playwright test --headed",
|
|
"test:e2e:debug": "playwright test --debug",
|
|
"test:critical": "playwright test e2e/critical-paths.spec.ts",
|
|
"test:hydration": "playwright test e2e/hydration.spec.ts",
|
|
"test:email": "playwright test e2e/email.spec.ts",
|
|
"test:performance": "playwright test e2e/performance.spec.ts",
|
|
"test:accessibility": "playwright test e2e/accessibility.spec.ts",
|
|
"db:generate": "prisma generate",
|
|
"db:push": "prisma db push",
|
|
"db:studio": "prisma studio",
|
|
"db:reset": "prisma db push --force-reset",
|
|
"docker:build": "docker build -t portfolio-app .",
|
|
"docker:run": "docker run -p 3000:3000 portfolio-app",
|
|
"docker:compose": "docker compose -f docker-compose.production.yml up -d",
|
|
"docker:down": "docker compose -f docker-compose.production.yml down",
|
|
"docker:dev": "docker compose -f docker-compose.dev.minimal.yml up -d",
|
|
"docker:dev:down": "docker compose -f docker-compose.dev.minimal.yml down",
|
|
"deploy": "./scripts/deploy.sh",
|
|
"auto-deploy": "./scripts/auto-deploy.sh",
|
|
"quick-deploy": "./scripts/quick-deploy.sh",
|
|
"gitea-deploy": "./scripts/gitea-deploy.sh",
|
|
"setup-gitea-runner": "./scripts/setup-gitea-runner.sh",
|
|
"monitor": "./scripts/monitor.sh",
|
|
"health": "curl -f http://localhost:3000/api/health"
|
|
},
|
|
"prisma": {
|
|
"seed": "tsx prisma/seed.ts"
|
|
},
|
|
"dependencies": {
|
|
"@next/bundle-analyzer": "^15.1.7",
|
|
"@prisma/client": "^5.22.0",
|
|
"@react-three/drei": "^10.7.7",
|
|
"@react-three/fiber": "^9.5.0",
|
|
"@sentry/nextjs": "^10.36.0",
|
|
"@shadergradient/react": "^2.4.20",
|
|
"@tiptap/extension-color": "^3.15.3",
|
|
"@tiptap/extension-highlight": "^3.15.3",
|
|
"@tiptap/extension-link": "^3.15.3",
|
|
"@tiptap/extension-text-style": "^3.15.3",
|
|
"@tiptap/extension-underline": "^3.15.3",
|
|
"@tiptap/html": "^3.15.3",
|
|
"@tiptap/react": "^3.15.3",
|
|
"@tiptap/starter-kit": "^3.15.3",
|
|
"@types/three": "^0.182.0",
|
|
"@vercel/og": "^0.6.5",
|
|
"clsx": "^2.1.1",
|
|
"dotenv": "^16.6.1",
|
|
"framer-motion": "^12.24.10",
|
|
"gray-matter": "^4.0.3",
|
|
"lucide-react": "^0.542.0",
|
|
"next": "^15.5.7",
|
|
"next-intl": "^4.7.0",
|
|
"next-themes": "^0.4.6",
|
|
"node-cache": "^5.1.2",
|
|
"node-fetch": "^2.7.0",
|
|
"nodemailer": "^7.0.11",
|
|
"react": "^19.2.3",
|
|
"react-dom": "^19.2.3",
|
|
"react-icons": "^5.5.0",
|
|
"react-markdown": "^10.1.0",
|
|
"react-responsive-masonry": "^2.7.1",
|
|
"redis": "^5.8.2",
|
|
"sanitize-html": "^2.17.0",
|
|
"tailwind-merge": "^2.6.0",
|
|
"three": "^0.182.0",
|
|
"zod": "^4.3.5"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3",
|
|
"@playwright/test": "^1.57.0",
|
|
"@testing-library/dom": "^10.4.0",
|
|
"@testing-library/jest-dom": "^6.6.3",
|
|
"@testing-library/react": "^16.2.0",
|
|
"@types/jest": "^29.5.14",
|
|
"@types/node": "^20.10.0",
|
|
"@types/node-fetch": "^2.6.13",
|
|
"@types/nodemailer": "^6.4.17",
|
|
"@types/react": "^19",
|
|
"@types/react-dom": "^19",
|
|
"@types/react-responsive-masonry": "^2.6.0",
|
|
"@types/react-syntax-highlighter": "^15.5.11",
|
|
"@types/sanitize-html": "^2.16.0",
|
|
"autoprefixer": "^10.4.20",
|
|
"cross-env": "^7.0.3",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "^15.5.7",
|
|
"jest": "^29.7.0",
|
|
"jest-environment-jsdom": "^29.7.0",
|
|
"nodemailer-mock": "^2.0.9",
|
|
"playwright": "^1.57.0",
|
|
"postcss": "^8.4.49",
|
|
"prisma": "^5.22.0",
|
|
"tailwindcss": "^3.4.17",
|
|
"ts-jest": "^29.4.6",
|
|
"ts-node": "^10.9.2",
|
|
"tsx": "^4.20.5",
|
|
"typescript": "5.9.3",
|
|
"whatwg-fetch": "^3.6.20"
|
|
}
|
|
}
|