Some checks are pending
Build Android (APK + AAB) / build-android (push) Waiting to run
Backend (server/src/realtime.js): - WebSocket server em /ws via lib `ws` - Auth por JWT ou BOAT_TOKEN (mesmo middleware do REST) - Broadcast de notificações state:changed por user (skip device origem) - Heartbeat ping/pong + cleanup de conexões mortas - Presença: avisa todos os devices do user quantos estão online - POST /api/data agora dispara broadcast pra outros devices em tempo real Frontend (app/diario-bordo.html): - Cliente WS com reconnect exponencial (1s→2s→5s→15s→30s→60s) - deviceId persistente em localStorage (gerado no primeiro boot) - Heartbeat 25s pra manter NAT/proxy abertos - Auto-push debounced 2.5s no saveState (acumula edições rápidas) - Auto-pull debounced 300ms no recebimento de state:changed - Reconnect ao voltar pro foreground + ao recuperar conexão - Indicador visual no header: 🟢 online · 🟡 syncing · 🔴 offline · ⚫ disabled · ⚠️ erro Echo prevention em 3 camadas: 1) Server skip por originDeviceId (header X-Device-Id) 2) Cliente ignora notif do próprio device 3) Guard temporal: pull rejeita se updated_at < lastPushAt Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
26 lines
600 B
JSON
26 lines
600 B
JSON
{
|
|
"name": "shivao-cloud",
|
|
"version": "1.0.0",
|
|
"description": "Backend de nuvem para o Diário de Bordo do Shivao",
|
|
"type": "module",
|
|
"main": "src/index.js",
|
|
"scripts": {
|
|
"start": "node src/index.js",
|
|
"dev": "node --watch src/index.js"
|
|
},
|
|
"engines": {
|
|
"node": ">=20.0.0"
|
|
},
|
|
"dependencies": {
|
|
"bcryptjs": "^3.0.3",
|
|
"better-sqlite3": "^11.3.0",
|
|
"express": "^4.21.0",
|
|
"express-rate-limit": "^8.4.1",
|
|
"jsonwebtoken": "^9.0.3",
|
|
"multer": "^1.4.5-lts.1",
|
|
"nodemailer": "^6.9.15",
|
|
"ws": "^8.20.0",
|
|
"zod": "^4.3.6"
|
|
},
|
|
"license": "MIT"
|
|
}
|