Files
rx.scoreodonto.com-client/package.json
T
VPS 4 Builder 45b4c2215c fix(client): v1.3.0 — anti-loop updater, config backup, NSIS safe
Itens 0, 3 e 4 do plano de correção:

ITEM 0 — Preservar dados na atualização (não reconfigurar do zero)
- index.js: loadConfig/saveConfig grava config.backup.json a cada
  gravação válida; ao iniciar, restaura do backup se config.json
  sumir ou corromper — protege clientId e credenciais.
- client-monitor.js: nova persistConfig() grava config + backup juntos;
  aplicada nos 3 pontos que escrevem o config (clientId init, painel
  local, wizard CLI).
- package.json: deleteAppDataOnUninstall: false explícito.

ITEM 3 — Duplicatas na lista de apps do Windows
- Mantido perMachine: false consistente; GUID derivado do appId
  (não adicionado explícito para não criar 3ª entrada).
- deleteAppDataOnUninstall: false garante AppData intacto.

ITEM 4 — Loop de notificação de nova versão
- Trava anti-loop: conta tentativas por versão em update-state.json;
  após 3 falhas da mesma versão, para de auto-instalar e notifica
  balão com mensagem para reinstalar manualmente.
- reconcileUpdateState() no boot zera o contador quando a versão
  realmente avançou (instalação bem-sucedida).
- autoUpdater.on('error') agora exibe balão com erro real (throttle 60s).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 05:05:36 +02:00

51 lines
1.2 KiB
JSON

{
"name": "rx.scoreodonto.com-client",
"version": "1.3.0",
"author": "ScoreOdonto",
"description": "Cliente Windows para envio de imagens dentais da ScoreOdonto",
"main": "index.js",
"scripts": {
"start": "electron .",
"dist": "electron-builder"
},
"dependencies": {
"chokidar": "^3.5.3",
"electron-updater": "^6.3.0",
"socket.io-client": "^4.7.5"
},
"build": {
"appId": "com.scoreodonto.dentalclient",
"productName": "ScoreOdonto Dental Client",
"win": {
"target": "nsis",
"icon": "favicon.png"
},
"nsis": {
"oneClick": true,
"perMachine": false,
"deleteAppDataOnUninstall": false,
"allowToChangeInstallationDirectory": false,
"createDesktopShortcut": true,
"createStartMenuShortcut": true,
"shortcutName": "ScoreOdonto Dental Client"
},
"publish": [
{
"provider": "generic",
"url": "https://rx.scoreodonto.com/updates/"
}
],
"files": [
"**/*",
"!docs-client/**/*",
"!Output/**/*",
"!dist/**/*"
],
"asar": false
},
"devDependencies": {
"electron": "^42.2.0",
"electron-builder": "^26.8.1"
}
}