b5302c52d2
Deploy momo-erp / deploy (push) Successful in 3m34s
- lib/push.ts: web-push + VAPID(env 우선/하드코딩 폴백) + momo_push_subscriptions 자동 생성. sendPush() 는 만료(404/410) 구독 자동 정리. - API: GET /api/m/push/vapid (공개키), POST /api/m/push/subscribe (구독 저장). - sw.js: push / notificationclick 핸들러 추가 (클릭 시 /m/orders/new 열기). - components/PushOptIn: 출고요청 페이지에 '새 품목 알림 받기' 버튼. 권한 허용 시 구독 저장, 이미 허용이면 조용히 갱신. iOS<16.4 등 미지원 환경은 자동 숨김. - items/save: 품목이 '출고요청 불가 → 가능' 으로 전환되면(신규 등록 포함, KST 기준 판매기간/ACTIVE/비숨김) 구독자에게 푸시 발송. 단순 수정은 알림 안 함. 운영에서 VAPID 키 교체 원하면 .env.production 에 VAPID_* 설정(없으면 기본키 사용).
53 lines
1.3 KiB
JSON
53 lines
1.3 KiB
JSON
{
|
|
"name": "fito-nextjs",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "eslint",
|
|
"migrate:momo": "node scripts/migrate-momo.mjs"
|
|
},
|
|
"dependencies": {
|
|
"@prisma/client": "^7.7.0",
|
|
"@tanstack/react-table": "^8.21.3",
|
|
"@types/nodemailer": "^8.0.0",
|
|
"bcryptjs": "^3.0.3",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"date-fns": "^4.1.0",
|
|
"file-saver": "^2.0.5",
|
|
"html-to-image": "^1.11.13",
|
|
"jose": "^6.2.2",
|
|
"lucide-react": "^1.7.0",
|
|
"next": "16.2.2",
|
|
"next-auth": "^5.0.0-beta.30",
|
|
"nodemailer": "^7.0.13",
|
|
"pg": "^8.20.0",
|
|
"prisma": "^7.7.0",
|
|
"react": "19.2.4",
|
|
"react-dom": "19.2.4",
|
|
"recharts": "^3.8.1",
|
|
"sweetalert2": "^11.26.24",
|
|
"tailwind-merge": "^3.5.0",
|
|
"web-push": "^3.6.7",
|
|
"xlsx": "^0.18.5",
|
|
"zustand": "^5.0.12"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/postcss": "^4",
|
|
"@types/bcryptjs": "^2.4.6",
|
|
"@types/file-saver": "^2.0.7",
|
|
"@types/node": "^20",
|
|
"@types/pg": "^8.20.0",
|
|
"@types/react": "^19",
|
|
"@types/react-dom": "^19",
|
|
"@types/web-push": "^3.6.4",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "16.2.2",
|
|
"tailwindcss": "^4",
|
|
"typescript": "^5"
|
|
}
|
|
}
|