diff --git a/resources/js/electron-plugin/dist/server/api/autoUpdater.js b/resources/js/electron-plugin/dist/server/api/autoUpdater.js index 14001856..7aeeeebb 100644 --- a/resources/js/electron-plugin/dist/server/api/autoUpdater.js +++ b/resources/js/electron-plugin/dist/server/api/autoUpdater.js @@ -7,6 +7,10 @@ router.post("/check-for-updates", (req, res) => { autoUpdater.checkForUpdates(); res.sendStatus(200); }); +router.post("/download-update", (req, res) => { + autoUpdater.downloadUpdate(); + res.sendStatus(200); +}); router.post("/quit-and-install", (req, res) => { autoUpdater.quitAndInstall(); res.sendStatus(200); @@ -16,21 +20,41 @@ autoUpdater.addListener("checking-for-update", () => { event: `\\Native\\Laravel\\Events\\AutoUpdater\\CheckingForUpdate`, }); }); -autoUpdater.addListener("update-available", () => { +autoUpdater.addListener("update-available", (event) => { notifyLaravel("events", { event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateAvailable`, + payload: { + version: event.version, + files: event.files, + releaseDate: event.releaseDate, + releaseName: event.releaseName, + releaseNotes: event.releaseNotes, + stagingPercentage: event.stagingPercentage, + minimumSystemVersion: event.minimumSystemVersion, + }, }); }); -autoUpdater.addListener("update-not-available", () => { +autoUpdater.addListener("update-not-available", (event) => { notifyLaravel("events", { event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateNotAvailable`, + payload: { + version: event.version, + files: event.files, + releaseDate: event.releaseDate, + releaseName: event.releaseName, + releaseNotes: event.releaseNotes, + stagingPercentage: event.stagingPercentage, + minimumSystemVersion: event.minimumSystemVersion, + }, }); }); autoUpdater.addListener("error", (error) => { notifyLaravel("events", { event: `\\Native\\Laravel\\Events\\AutoUpdater\\Error`, payload: { - error: error, + name: error.name, + message: error.message, + stack: error.stack, }, }); }); @@ -50,11 +74,28 @@ autoUpdater.addListener("update-downloaded", (event) => { notifyLaravel("events", { event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateDownloaded`, payload: { - version: event.version, downloadedFile: event.downloadedFile, + version: event.version, + files: event.files, releaseDate: event.releaseDate, + releaseName: event.releaseName, releaseNotes: event.releaseNotes, + stagingPercentage: event.stagingPercentage, + minimumSystemVersion: event.minimumSystemVersion, + }, + }); +}); +autoUpdater.addListener("update-cancelled", (event) => { + notifyLaravel("events", { + event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateCancelled`, + payload: { + version: event.version, + files: event.files, + releaseDate: event.releaseDate, releaseName: event.releaseName, + releaseNotes: event.releaseNotes, + stagingPercentage: event.stagingPercentage, + minimumSystemVersion: event.minimumSystemVersion, }, }); }); diff --git a/resources/js/electron-plugin/src/server/api/autoUpdater.ts b/resources/js/electron-plugin/src/server/api/autoUpdater.ts index 06fa54d4..aa8ff996 100644 --- a/resources/js/electron-plugin/src/server/api/autoUpdater.ts +++ b/resources/js/electron-plugin/src/server/api/autoUpdater.ts @@ -1,7 +1,11 @@ import express from "express"; import electronUpdater from 'electron-updater'; const { autoUpdater } = electronUpdater; -import type { ProgressInfo, UpdateDownloadedEvent } from "electron-updater"; +import type { + ProgressInfo, + UpdateDownloadedEvent, + UpdateInfo, +} from "electron-updater"; import { notifyLaravel } from "../utils.js"; const router = express.Router(); @@ -11,6 +15,11 @@ router.post("/check-for-updates", (req, res) => { res.sendStatus(200); }); +router.post("/download-update", (req, res) => { + autoUpdater.downloadUpdate(); + res.sendStatus(200); +}); + router.post("/quit-and-install", (req, res) => { autoUpdater.quitAndInstall(); res.sendStatus(200); @@ -22,23 +31,43 @@ autoUpdater.addListener("checking-for-update", () => { }); }); -autoUpdater.addListener("update-available", () => { +autoUpdater.addListener("update-available", (event: UpdateInfo) => { notifyLaravel("events", { event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateAvailable`, + payload: { + version: event.version, + files: event.files, + releaseDate: event.releaseDate, + releaseName: event.releaseName, + releaseNotes: event.releaseNotes, + stagingPercentage: event.stagingPercentage, + minimumSystemVersion: event.minimumSystemVersion, + }, }); }); -autoUpdater.addListener("update-not-available", () => { +autoUpdater.addListener("update-not-available", (event: UpdateInfo) => { notifyLaravel("events", { event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateNotAvailable`, + payload: { + version: event.version, + files: event.files, + releaseDate: event.releaseDate, + releaseName: event.releaseName, + releaseNotes: event.releaseNotes, + stagingPercentage: event.stagingPercentage, + minimumSystemVersion: event.minimumSystemVersion, + }, }); }); -autoUpdater.addListener("error", (error) => { +autoUpdater.addListener("error", (error: Error) => { notifyLaravel("events", { event: `\\Native\\Laravel\\Events\\AutoUpdater\\Error`, payload: { - error: error, + name: error.name, + message: error.message, + stack: error.stack, }, }); }); @@ -60,11 +89,29 @@ autoUpdater.addListener("update-downloaded", (event: UpdateDownloadedEvent) => { notifyLaravel("events", { event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateDownloaded`, payload: { - version: event.version, downloadedFile: event.downloadedFile, + version: event.version, + files: event.files, releaseDate: event.releaseDate, + releaseName: event.releaseName, releaseNotes: event.releaseNotes, + stagingPercentage: event.stagingPercentage, + minimumSystemVersion: event.minimumSystemVersion, + }, + }); +}); + +autoUpdater.addListener("update-cancelled", (event: UpdateInfo) => { + notifyLaravel("events", { + event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateCancelled`, + payload: { + version: event.version, + files: event.files, + releaseDate: event.releaseDate, releaseName: event.releaseName, + releaseNotes: event.releaseNotes, + stagingPercentage: event.stagingPercentage, + minimumSystemVersion: event.minimumSystemVersion, }, }); });