BACKEND - bcryptjs + jsonwebtoken adicionados (JS puro, sem build nativo) - Schema users + licenses, migration adiciona user_id em todas tabelas (state, media, anchor_session, alarm_log, shares, audit_log) - User default id=1 (karlao@outlook.com) com plano captain — preserva uso pessoal pré-multi-tenant - Endpoints /api/auth/{signup,login,refresh,me} + /api/license - Middleware requireAuth aceita JWT OU BOAT_TOKEN (fallback legado mapeia ao user 1) - TODAS rotas autenticadas atualizadas pra usar req.user.id (state, media, anchor, share, alarm, audit) - Dead-man switch agora itera todos anchor_sessions ativos (multi-user) - 3 planos definidos em auth.js: free (Âncora), pro (R$19/mês), captain (R$39/mês) FRONTEND - state.auth + state.license persistidos em localStorage - cloudFetch usa JWT preferencialmente, fallback BOAT_TOKEN; auto-refresh em 401 - Nova seção 'Conta' no painel Arquivo: tabs Entrar/Cadastrar + status de plano + Logout + botão upgrade - Sincronizado em app/ e server/public/ Backward-compat 100% preservada: app legado com BOAT_TOKEN continua funcionando como user default. Próximo: webhook Asaas pra ativar licenças após pagamento PIX. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
25 lines
579 B
JSON
25 lines
579 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",
|
|
"zod": "^4.3.6"
|
|
},
|
|
"license": "MIT"
|
|
}
|