Replaces the custom server-poll updater (which depended on a placeholder serverUrl 'https://your-server.com/api' and never fired in practice) with electron-updater. Now a banner appears automatically when a new release is published — auto-download in background, in-place install via quitAndInstall, delta updates via blockmap. Changes: - Add electron-updater dep, build.publish (provider: generic, placeholder URL) - Rewrite UpdaterManager around autoUpdater events (available/progress/ downloaded/error), forwarded to renderer via window.webContents.send - Drop hardcoded APP_VERSION constant; main uses app.getVersion(), renderer fetches via new GET_APP_VERSION IPC channel - IPC: drop DOWNLOAD_UPDATE (autoDownload handles it), add INSTALL_UPDATE + GET_APP_VERSION - VersionInfo reshaped (currentVersion field, no downloadUrl/mandatory); add UpdateProgress and UpdateCheckResult types - UpdateNotification: 3-phase UI (downloading with progress bar, ready with restart-and-install, hidden); App.tsx tracks phase state TODO before first real release: - Replace build.publish.url placeholder with the actual generic host - Bump version, run package:win, upload latest.yml + .exe + .blockmap to host Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
86 lines
2.3 KiB
JSON
86 lines
2.3 KiB
JSON
{
|
|
"name": "media-center",
|
|
"version": "1.0.1",
|
|
"description": "Media Center - Browser for watching movies with global search and proxy support",
|
|
"main": "dist/main/main/index.js",
|
|
"author": "George",
|
|
"license": "MIT",
|
|
"scripts": {
|
|
"start": "electron .",
|
|
"dev": "concurrently \"npm run dev:main\" \"npm run dev:renderer\" \"npm run dev:electron\"",
|
|
"dev:main": "tsc -p tsconfig.main.json --watch",
|
|
"dev:renderer": "vite",
|
|
"dev:electron": "wait-on http://localhost:3000 && cross-env NODE_ENV=development electron .",
|
|
"build": "npm run build:main && npm run build:renderer",
|
|
"build:main": "tsc -p tsconfig.main.json",
|
|
"build:renderer": "vite build",
|
|
"package": "npm run build && electron-builder",
|
|
"package:win": "npm run build && electron-builder --win",
|
|
"package:mac": "npm run build && electron-builder --mac",
|
|
"package:linux": "npm run build && electron-builder --linux"
|
|
},
|
|
"dependencies": {
|
|
"axios": "^1.6.2",
|
|
"cheerio": "^1.0.0-rc.12",
|
|
"electron-store": "^8.1.0",
|
|
"electron-updater": "^6.8.3",
|
|
"nedb": "^1.8.0",
|
|
"uuid": "^9.0.1",
|
|
"xml2js": "^0.6.2"
|
|
},
|
|
"devDependencies": {
|
|
"@types/nedb": "^1.8.16",
|
|
"@types/node": "^20.10.5",
|
|
"@types/react": "^18.2.45",
|
|
"@types/react-dom": "^18.2.18",
|
|
"@types/uuid": "^9.0.7",
|
|
"@types/xml2js": "^0.4.14",
|
|
"@vitejs/plugin-react": "^4.2.1",
|
|
"concurrently": "^8.2.2",
|
|
"cross-env": "^7.0.3",
|
|
"electron": "^28.0.0",
|
|
"electron-builder": "^24.9.1",
|
|
"react": "^18.2.0",
|
|
"react-dom": "^18.2.0",
|
|
"react-router-dom": "^6.21.0",
|
|
"typescript": "^5.3.3",
|
|
"vite": "^5.0.8",
|
|
"vite-plugin-electron": "^0.28.0",
|
|
"wait-on": "^7.2.0"
|
|
},
|
|
"build": {
|
|
"appId": "com.media.center",
|
|
"productName": "Media Center",
|
|
"directories": {
|
|
"output": "release"
|
|
},
|
|
"publish": {
|
|
"provider": "generic",
|
|
"url": "https://your-update-server.example.com/media-center/"
|
|
},
|
|
"files": [
|
|
"dist/**/*",
|
|
"node_modules/**/*",
|
|
"package.json"
|
|
],
|
|
"win": {
|
|
"target": [
|
|
"nsis"
|
|
],
|
|
"icon": "assets/icon.ico"
|
|
},
|
|
"mac": {
|
|
"target": [
|
|
"dmg"
|
|
],
|
|
"icon": "assets/icon.icns"
|
|
},
|
|
"linux": {
|
|
"target": [
|
|
"AppImage"
|
|
],
|
|
"icon": "assets/icon.png"
|
|
}
|
|
}
|
|
}
|