Repository navigation
Expand file tree
/
Copy pathpackage.json
More file actions
105 lines (105 loc) · 3.72 KB
/
Copy pathpackage.json
File metadata and controls
105 lines (105 loc) · 3.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
{
"name": "nexus-multi-vendor-ecommerce",
"version": "1.0.0",
"description": "High-concurrency multi-vendor e-commerce and marketplace platform engineered with Next.js 16, React 19, Prisma, PostgreSQL, Stripe Connect Escrow, and BullMQ.",
"private": true,
"scripts": {
"predev": "node scripts/free-port.js 3000",
"dev": "next dev -H 0.0.0.0 -p 3000",
"free-port": "node scripts/free-port.js 3000",
"build": "next build",
"start": "next start -H 0.0.0.0 -p 3000",
"serve": "node scripts/free-port.js 3000 && next start -H 0.0.0.0 -p 3000",
"lint": "eslint",
"test": "vitest run",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage",
"test:e2e": "playwright test",
"test:backend": "vitest run --config vitest.backend.config.mts",
"test:unit": "tsx scripts/run-level-1-unit.ts",
"test:component": "tsx scripts/run-level-2-component.ts",
"test:pyramid": "tsx scripts/pyramid-test-suite.ts",
"seo:audit": "tsx scripts/seo-audit.ts",
"worker": "tsx src/lib/queue/worker.ts",
"seed:run": "tsx seeds/index.ts",
"db:backup": "tsx scripts/backup.ts",
"db:restore": "tsx scripts/restore.ts",
"db:generate": "prisma generate",
"db:migrate": "prisma migrate dev",
"gsd:doctor": "node scripts/gsd-doctor.js",
"coderabbit:verify": "node scripts/gsd-doctor.js",
"ralph:loop": "node scripts/gsd-doctor.js",
"rea:audit": "tsx scripts/rea-ecommerce-inspector.ts",
"prompt:list": "node scripts/prompt-manager.js list",
"prompt:stats": "node scripts/prompt-manager.js stats",
"prompt:doc": "node scripts/prompt-manager.js doc",
"icon:search": "node scripts/icon-manager.js search",
"icon:inject": "node scripts/icon-manager.js inject",
"icon:bundle": "node scripts/icon-manager.js bundle",
"icon:list": "node scripts/icon-manager.js list"
},
"dependencies": {
"@asteasolutions/zod-to-openapi": "^8.5.0",
"@aws-sdk/client-s3": "^3.1071.0",
"@aws-sdk/s3-request-presigner": "^3.1071.0",
"@hookform/resolvers": "^5.4.0",
"@node-rs/argon2": "^2.2.2",
"@prisma/adapter-pg": "^7.9.1",
"@prisma/client": "^7.9.1",
"@sentry/nextjs": "^10.58.0",
"@sentry/node": "^10.58.0",
"@tanstack/react-query": "^5.101.0",
"@types/pg": "^8.21.0",
"@upstash/ratelimit": "^2.0.8",
"@upstash/redis": "^1.38.0",
"bcryptjs": "^3.0.3",
"bullmq": "^5.78.1",
"clsx": "^2.1.1",
"framer-motion": "^12.42.2",
"ioredis": "^5.11.1",
"jsonwebtoken": "^9.0.3",
"lucide-react": "^1.18.0",
"mime-types": "^3.0.2",
"next": "16.2.9",
"nodemailer": "^9.0.1",
"pg": "^8.23.0",
"react": "19.2.4",
"react-dom": "19.2.4",
"react-hook-form": "^7.79.0",
"react-hot-toast": "^2.6.0",
"resend": "^6.32.0",
"slugify": "^1.6.9",
"stripe": "^22.2.1",
"tailwind-merge": "^3.6.0",
"uploadthing": "^7.7.4",
"xss": "^1.0.15",
"zod": "^4.4.3",
"zustand": "^5.0.14"
},
"devDependencies": {
"@electric-sql/pglite": "^0.4.3",
"@playwright/test": "^1.61.0",
"@rolldown/binding-win32-x64-msvc": "^1.2.11",
"@tailwindcss/postcss": "^4",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.1",
"@types/jsonwebtoken": "^9.0.10",
"@types/mime-types": "^3.0.1",
"@types/node": "^26.6.4",
"@types/nodemailer": "^8.0.1",
"@types/react": "^19",
"@types/react-dom": "^19",
"@vitejs/plugin-react": "^6.0.2",
"@vitest/coverage-v8": "^4.1.9",
"dotenv": "^17.4.2",
"eslint": "^9",
"eslint-config-next": "16.2.9",
"jsdom": "^29.1.1",
"prisma": "^7.9.1",
"tailwindcss": "^4",
"tsx": "^4.22.4",
"typescript": "^5",
"vitest": "^4.1.9"
}
}