Backend: - monthly_work_confirmations 테이블 마이그레이션 - monthlyComparisonModel: 비교 쿼리 8개 (보고서/근태/확인 병렬 조회) - monthlyComparisonController: 5 API (my-records/records/confirm/all-status/export) - 일별 7상태 판정 (match/mismatch/report_only/attend_only/vacation/holiday/none) - 확인/반려 UPSERT + 반려 시 알림 (단일 트랜잭션) - 엑셀 2시트 (exceljs) + 헤더 스타일 + 불일치/휴가 행 색상 - support_team+ 권한 체크 (all-status, export) - exceljs 의존성 추가 Frontend: - monthly-comparison.js MOCK_ENABLED = false (API 연결) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
51 lines
1.5 KiB
JSON
51 lines
1.5 KiB
JSON
{
|
|
"name": "hyungi-api",
|
|
"version": "2.2.0",
|
|
"main": "index.js",
|
|
"scripts": {
|
|
"start": "pm2-runtime start ecosystem.config.js --env production",
|
|
"dev": "pm2-runtime start ecosystem.config.js --env development",
|
|
"test": "jest",
|
|
"test:watch": "jest --watch",
|
|
"test:coverage": "jest --coverage",
|
|
"test:unit": "jest tests/unit",
|
|
"test:integration": "jest tests/integration",
|
|
"test:verbose": "jest --verbose",
|
|
"setup": "node ../setup.js",
|
|
"db:migrate": "knex migrate:latest --knexfile knexfile.js",
|
|
"db:migrate:make": "knex migrate:make --knexfile knexfile.js",
|
|
"db:rollback": "knex migrate:rollback --knexfile knexfile.js",
|
|
"db:seed": "knex seed:run --knexfile knexfile.js",
|
|
"db:seed:make": "knex seed:make --knexfile knexfile.js"
|
|
},
|
|
"dependencies": {
|
|
"@simplewebauthn/server": "^13.1.1",
|
|
"async-retry": "^1.3.3",
|
|
"axios": "^1.6.7",
|
|
"bcryptjs": "^2.4.3",
|
|
"compression": "^1.8.1",
|
|
"cors": "^2.8.5",
|
|
"dotenv": "^16.4.5",
|
|
"exceljs": "^4.4.0",
|
|
"express": "^4.18.2",
|
|
"express-rate-limit": "^7.5.1",
|
|
"express-validator": "^7.2.1",
|
|
"helmet": "^7.2.0",
|
|
"jsonwebtoken": "^9.0.0",
|
|
"knex": "^3.1.0",
|
|
"multer": "^1.4.5-lts.1",
|
|
"mysql2": "^3.14.1",
|
|
"node-cache": "^5.1.2",
|
|
"pm2": "^5.3.0",
|
|
"qrcode": "^1.5.4",
|
|
"redis": "^5.9.0",
|
|
"swagger-jsdoc": "^6.2.8",
|
|
"swagger-ui-express": "^5.0.1"
|
|
},
|
|
"devDependencies": {
|
|
"@types/jest": "^29.5.12",
|
|
"jest": "^29.7.0",
|
|
"supertest": "^7.0.0"
|
|
}
|
|
}
|