- Add @aws-sdk/client-s3 and @aws-sdk/s3-request-presigner dependencies - Add storage config section to config/index.ts - Fix users.controller.ts imports (db, AuthenticatedRequest, logger) - Update education.types.ts with backward-compatible alias properties - Add missing interfaces: LessonResource, QuizOption - Change QuizQuestion.options from Record to QuizOption[] - Fix education services to align with updated types - Export ML service types properly in ml.module.ts - Fix portfolio/snapshot.repository.ts type cast - Fix trading/order.service.ts number type Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
103 lines
2.9 KiB
JSON
103 lines
2.9 KiB
JSON
{
|
|
"name": "@trading/backend",
|
|
"version": "0.1.0",
|
|
"description": "Trading Platform - Backend API",
|
|
"main": "dist/index.js",
|
|
"scripts": {
|
|
"dev": "tsx watch src/index.ts",
|
|
"build": "tsc",
|
|
"start": "node dist/index.js",
|
|
"lint": "eslint src",
|
|
"lint:fix": "eslint src --fix",
|
|
"format": "prettier --write \"src/**/*.ts\"",
|
|
"test": "jest --passWithNoTests",
|
|
"test:watch": "jest --watch",
|
|
"test:coverage": "jest --coverage --passWithNoTests",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@anthropic-ai/sdk": "^0.71.2",
|
|
"axios": "^1.6.2",
|
|
"bcryptjs": "^3.0.3",
|
|
"class-transformer": "^0.5.1",
|
|
"class-validator": "^0.14.3",
|
|
"compression": "^1.7.4",
|
|
"cors": "^2.8.5",
|
|
"date-fns": "^4.1.0",
|
|
"dotenv": "^16.4.7",
|
|
"exceljs": "^4.4.0",
|
|
"express": "^5.0.1",
|
|
"express-rate-limit": "^7.5.0",
|
|
"express-validator": "^7.0.1",
|
|
"firebase-admin": "^13.6.0",
|
|
"google-auth-library": "^9.4.1",
|
|
"helmet": "^8.1.0",
|
|
"ioredis": "^5.9.2",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"morgan": "^1.10.0",
|
|
"nodemailer": "^7.0.11",
|
|
"openai": "^4.104.0",
|
|
"passport": "^0.7.0",
|
|
"passport-apple": "^2.0.2",
|
|
"passport-facebook": "^3.0.0",
|
|
"passport-github2": "^0.1.12",
|
|
"passport-google-oauth20": "^2.0.0",
|
|
"passport-local": "^1.0.0",
|
|
"pdfkit": "^0.15.0",
|
|
"pg": "^8.11.3",
|
|
"qrcode": "^1.5.3",
|
|
"speakeasy": "^2.0.0",
|
|
"stripe": "^17.5.0",
|
|
"swagger-jsdoc": "^6.2.8",
|
|
"swagger-ui-express": "^5.0.1",
|
|
"twilio": "^4.19.3",
|
|
"uuid": "^9.0.1",
|
|
"web-push": "^3.6.7",
|
|
"winston": "^3.11.0",
|
|
"ws": "^8.18.0",
|
|
"zod": "^3.22.4"
|
|
},
|
|
"devDependencies": {
|
|
"@aws-sdk/client-s3": "^3.975.0",
|
|
"@aws-sdk/s3-request-presigner": "^3.975.0",
|
|
"@eslint/js": "^9.17.0",
|
|
"@types/bcryptjs": "^2.4.6",
|
|
"@types/compression": "^1.7.5",
|
|
"@types/cors": "^2.8.17",
|
|
"@types/express": "^5.0.0",
|
|
"@types/ioredis": "^4.28.10",
|
|
"@types/jest": "^30.0.0",
|
|
"@types/jsonwebtoken": "^9.0.5",
|
|
"@types/morgan": "^1.9.9",
|
|
"@types/node": "^20.10.4",
|
|
"@types/nodemailer": "^6.4.14",
|
|
"@types/passport": "^1.0.16",
|
|
"@types/passport-facebook": "^3.0.3",
|
|
"@types/passport-github2": "^1.2.9",
|
|
"@types/passport-google-oauth20": "^2.0.14",
|
|
"@types/passport-local": "^1.0.38",
|
|
"@types/pdfkit": "^0.13.4",
|
|
"@types/pg": "^8.10.9",
|
|
"@types/qrcode": "^1.5.5",
|
|
"@types/speakeasy": "^2.0.10",
|
|
"@types/supertest": "^2.0.16",
|
|
"@types/swagger-jsdoc": "^6.0.4",
|
|
"@types/swagger-ui-express": "^4.1.8",
|
|
"@types/uuid": "^9.0.7",
|
|
"@types/web-push": "^3.6.4",
|
|
"@types/ws": "^8.5.13",
|
|
"eslint": "^9.17.0",
|
|
"globals": "^15.14.0",
|
|
"jest": "^30.0.0",
|
|
"prettier": "^3.1.1",
|
|
"supertest": "^6.3.3",
|
|
"ts-jest": "^29.3.0",
|
|
"tsx": "^4.6.2",
|
|
"typescript": "^5.3.3",
|
|
"typescript-eslint": "^8.18.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=18.0.0"
|
|
}
|
|
}
|