- Add BulkJob model to Prisma schema with relations - Implement BulkProcessorService for CSV parsing and job management - Create BulkTrackingWorker for background processing with BullMQ - Add comprehensive bulk API routes (upload, jobs, progress, export) - Integrate multer for CSV file uploads with validation - Add job progress tracking and estimation - Implement CSV export functionality for results - Add queue statistics and cleanup endpoints - Create shared types for bulk processing - Add comprehensive test suite for all bulk functionality - Implement graceful worker shutdown and error handling - Add rate limiting and authentication for all bulk endpoints Backward compatibility: Maintained for /api/track and /api/v1/track
66 lines
1.7 KiB
JSON
66 lines
1.7 KiB
JSON
{
|
|
"name": "@redirect-intelligence/api",
|
|
"version": "2.0.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "tsx watch --clear-screen=false src/index.ts",
|
|
"build": "tsc",
|
|
"start": "node dist/index.js",
|
|
"test": "jest",
|
|
"test:watch": "jest --watch",
|
|
"lint": "eslint src --ext .ts,.tsx",
|
|
"lint:fix": "eslint src --ext .ts,.tsx --fix",
|
|
"clean": "rm -rf dist"
|
|
},
|
|
"dependencies": {
|
|
"express": "^4.18.2",
|
|
"cors": "^2.8.5",
|
|
"cookie-parser": "^1.4.6",
|
|
"express-rate-limit": "^7.1.5",
|
|
"rate-limiter-flexible": "^5.0.3",
|
|
"axios": "^1.6.7",
|
|
"undici": "^6.2.1",
|
|
"zod": "^3.22.4",
|
|
"@prisma/client": "*",
|
|
"argon2": "^0.31.2",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"bullmq": "^4.15.4",
|
|
"ioredis": "^5.3.2",
|
|
"helmet": "^7.1.0",
|
|
"compression": "^1.7.4",
|
|
"dotenv": "^16.3.1",
|
|
"jsdom": "^23.0.1",
|
|
"winston": "^3.11.0",
|
|
"puppeteer": "^21.9.0",
|
|
"handlebars": "^4.7.8",
|
|
"mermaid": "^10.6.1",
|
|
"markdown-it": "^14.0.0",
|
|
"file-type": "^19.0.0",
|
|
"mime-types": "^2.1.35",
|
|
"csv-parser": "^3.0.0",
|
|
"csv-writer": "^1.6.0",
|
|
"multer": "^1.4.5-lts.1"
|
|
},
|
|
"devDependencies": {
|
|
"@types/express": "^4.17.21",
|
|
"@types/cors": "^2.8.17",
|
|
"@types/cookie-parser": "^1.4.6",
|
|
"@types/jsonwebtoken": "^9.0.5",
|
|
"@types/compression": "^1.7.5",
|
|
"@types/jsdom": "^21.1.6",
|
|
"@types/node": "^20.10.0",
|
|
"tsx": "^4.6.2",
|
|
"typescript": "^5.3.0",
|
|
"jest": "^29.7.0",
|
|
"@types/jest": "^29.5.8",
|
|
"ts-jest": "^29.1.1",
|
|
"supertest": "^6.3.3",
|
|
"@types/supertest": "^2.0.16",
|
|
"@types/puppeteer": "^7.0.4",
|
|
"@types/markdown-it": "^13.0.7",
|
|
"@types/mime-types": "^2.1.4",
|
|
"@types/multer": "^1.4.11",
|
|
"@types/csv-parser": "^3.0.0"
|
|
}
|
|
}
|