Миграция club_access.sql (access_requests, users.club_tier/yandex_id/ avatar_url, password NULLable, works.club_only). OAuth-роуты Яндекса (/api/auth/yandex[/callback]) с CSRF-state и мягкой 503 без ключей. Клуб: /api/club/tiers|request|my-request|gallery + админ requests/ approve/decline. Rate-limit на /api/auth сохранён. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
24 lines
891 B
JSON
24 lines
891 B
JSON
{
|
|
"name": "nika-gallery-backend",
|
|
"version": "0.1.0",
|
|
"description": "Ника — Галерея & Аукцион: Express API (PostgreSQL 16, JWT)",
|
|
"type": "module",
|
|
"main": "src/index.js",
|
|
"engines": {
|
|
"node": ">=20"
|
|
},
|
|
"scripts": {
|
|
"start": "node src/index.js",
|
|
"dev": "node --watch src/index.js",
|
|
"check": "node --check src/index.js && node --check src/db/pool.js && node --check src/middleware/auth.js && node --check src/middleware/rateLimit.js && node --check src/routes/auth.js && node --check src/routes/oauth.js && node --check src/routes/club.js && node --check src/routes/works.js && node --check src/routes/auctions.js && node --check src/routes/subscriptions.js"
|
|
},
|
|
"dependencies": {
|
|
"bcryptjs": "^2.4.3",
|
|
"cors": "^2.8.5",
|
|
"dotenv": "^16.4.5",
|
|
"express": "^4.19.2",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"pg": "^8.12.0"
|
|
}
|
|
}
|