Files
imen_pishghaman/apps/api/package.json
T
S. EsmaeiliandClaude Opus 5.5 789d224ea0 feat: monorepo with NestJS API, admin panel and DB-driven website
Restructure the repo into a pnpm + Turborepo monorepo:

- apps/web: Nuxt 4 site, now server-rendered and reading all content
  from the API; pages cached with SWR and purged on content changes
- apps/api: NestJS 12 + Prisma 7 + PostgreSQL. Auth with short-lived
  access tokens and rotating httpOnly refresh cookies, roles (ADMIN,
  EDITOR), catalog, editable site sections, media upload to S3-compatible
  storage (converted to WebP), contact messages, audit log
- apps/admin: Vue 3 admin panel (Ant Design Vue, Pinia, Tailwind) for
  products, categories, site sections, messages, media and users
- packages/shared: Zod schemas and types shared by API and admin

Also:
- seed script that loads the original 8 categories / 89 products and
  section content
- Docker images for api (with a one-off migrate service), web, admin,
  and an nginx gateway for both domains
- dev and production compose files, daily database backup service
- API e2e tests

Removes the committed static out/ build and the old root Dockerfile.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 20:31:05 +03:30

54 lines
1.5 KiB
JSON

{
"name": "@imen/api",
"version": "0.1.0",
"private": true,
"type": "module",
"scripts": {
"build": "prisma generate && nest build",
"dev": "nest start --watch --preserveWatchOutput",
"start": "node dist/main.js",
"typecheck": "prisma generate && tsc --noEmit -p tsconfig.json",
"test": "vitest run --config ./vitest.config.e2e.ts",
"prisma:generate": "prisma generate",
"prisma:migrate": "prisma migrate dev",
"prisma:deploy": "prisma migrate deploy",
"prisma:studio": "prisma studio",
"db:seed": "prisma db seed",
"postinstall": "prisma generate"
},
"dependencies": {
"@aws-sdk/client-s3": "^3.1154.0",
"@imen/shared": "workspace:*",
"@nestjs/common": "^12.2.0",
"@nestjs/core": "^12.2.0",
"@nestjs/jwt": "^12.0.3",
"@nestjs/platform-express": "^12.2.0",
"@nestjs/throttler": "^6.7.1",
"@node-rs/argon2": "^2.2.2",
"@prisma/adapter-pg": "7.10.1",
"@prisma/client": "7.10.1",
"cookie-parser": "^1.4.7",
"helmet": "^8.3.0",
"reflect-metadata": "^0.2.2",
"rxjs": "^7.8.2",
"sharp": "^0.35.5",
"zod": "^4.6.7"
},
"devDependencies": {
"@nestjs/cli": "^12.0.10",
"@nestjs/schematics": "^12.0.10",
"@nestjs/testing": "^12.2.0",
"@types/cookie-parser": "^1.4.9",
"@types/express": "^5.0.6",
"@types/multer": "^2.3.0",
"@types/node": "^24.0.0",
"@types/supertest": "^7.0.0",
"prisma": "7.10.1",
"supertest": "^7.1.4",
"tsx": "^4.20.6",
"typescript": "^6.0.2",
"vite": "^8.0.0",
"vitest": "^4.1.2"
}
}