From c0bdb700e071c556c98128464515c75460fd3e44 Mon Sep 17 00:00:00 2001 From: Ukpai Ugochi Date: Sat, 30 Dec 2023 19:28:26 +0100 Subject: [PATCH] fix limit issue and updater --- README.md | 2 +- main/index.js | 5 +- main/public/assets/js/main.js | 1 + main/updater.js | 79 ++++++++++++++++++++++++++ package-lock.json | 101 +++++++++++++++++++++++++++++----- package.json | 2 + 6 files changed, 174 insertions(+), 16 deletions(-) create mode 100644 main/updater.js diff --git a/README.md b/README.md index 38e251f..9d70ed9 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This page holds all information that is needed to setup a desktop application th Peppubuild doesn't collect or store your personal information. You will notice this if you use Vision AI since you need to add your API keys at the begining of each session. While each project contains a `.peppubuild` file that stores snippet of your project so that they can be loaded successfully with Peppubuild, we don't want you to loose your project if you don't have access to your PC. For this, you can store your project on Github so that it is easily accessible from anywhere. Follow the steps below. -- +!coming soon We are working on incorporating other Git hosting platflorms. diff --git a/main/index.js b/main/index.js index 30616f5..04dd221 100644 --- a/main/index.js +++ b/main/index.js @@ -6,11 +6,14 @@ var path = require("path"); var express = require('express'); // var server_1 = require("./server"); var server_1 = require("peppubuild-server"); - +var checkForUpdates = require('./updater.js') function createWindow() { // Start the express server server_1.app.use(express.static(path.join(__dirname, "public"))); + server_1.app.use(express.json({limit: '50mb'})); + server_1.app.use(express.urlencoded({limit: '50mb'})); (0, server_1.startServer)(); + checkForUpdates.check(); // Create the browser window. var mainWindow = new electron_1.BrowserWindow({ height: 600, diff --git a/main/public/assets/js/main.js b/main/public/assets/js/main.js index 3dde76d..6e86827 100644 --- a/main/public/assets/js/main.js +++ b/main/public/assets/js/main.js @@ -16,6 +16,7 @@ const Home = { // initialize grapesjs grapesjs.init({ container: '#gjs', + height: '100vh', showOffsets: true, fromElement: true, noticeOnUnload: false, diff --git a/main/updater.js b/main/updater.js new file mode 100644 index 0000000..3b56ce1 --- /dev/null +++ b/main/updater.js @@ -0,0 +1,79 @@ +const autoUpdater = require('electron-updater'); +const { dialog, BrowserWindow, ipcMain } = require('electron'); +const log = require('electron-log'); + +let downloadProgress; +log.transports.file.level = "debug"; +autoUpdater.autoUpdater.logger = log; + +autoUpdater.autoUpdater.autoDownload = false; + +autoUpdater.autoUpdater.setFeedURL({ + provider: "github", + owner: "hannydevelop", + repo: "peppubuild-desktop", +}); + +function check() { + autoUpdater.autoUpdater.checkForUpdates(); + +autoUpdater.autoUpdater.on('checking-for-update', () => { + const response = dialog.showMessageBox(null); +console.log(response); + dialog.showMessageBox({ + type: 'info', + title: 'Update Available', + message: 'A new version of app is available. Do you want to update now?', + buttons: ['Update', 'No'] + }, (index) => { + if (index) { + return; + } else { + autoUpdater.autoUpdater.downloadUpdate(); + + let proWin = new BrowserWindow({ + width: 350, + height: 35, + useContentSize: true, + autoHideMenuBar: true, + maximizable: false, + fullscreen: false, + fullscreenable: false, + resizable: false, + title: 'Downloading Update' + }); + proWin.loadURL(`file://$(__dirname)/progress`); + + proWin.on('closed', () => { + proWin = null; + }); + + ipcMain.on('download-progress-request', (e) => { + e.returnValue = downloadProgress; + }); + + autoUpdater.autoUpdater.on('download-progress', (d) => { + downloadProgress = d.percent; + autoUpdater.autoUpdater.logger.info(downloadProgress); + }); + + autoUpdater.autoUpdater.on('update-downloaded', () => { + if (progressWindow) progressWindow.close(); + + dialog.showMessageBox({ + type: 'info', + title: 'Update Ready', + message: 'A new version of app is ready. Quit and Install now?', + buttons: ['Yes', 'Later'] + }, (index) => { + if (!index) { + autoUpdater.autoUpdater.quitAndInstall(); + } + }); + }); + } + }); +}); +} + +module.exports.check = check; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 4101e4a..1d596c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1098,8 +1098,7 @@ "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "array-buffer-byte-length": { "version": "1.0.0", @@ -2370,6 +2369,11 @@ } } }, + "electron-log": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-5.0.3.tgz", + "integrity": "sha512-jUgAuRjfpCD9tmH1F6fb195YsFfM/DkqkZLhFeo0VAAstantn11bxmgx63uE6KG/JljHG7sIkgM2QEjDimJI0g==" + }, "electron-osx-sign": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz", @@ -2460,6 +2464,72 @@ } } }, + "electron-updater": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.1.7.tgz", + "integrity": "sha512-SNOhYizjkm4ET+Y8ilJyUzcVsFJDtINzVN1TyHnZeMidZEG3YoBebMyXc/J6WSiXdUaOjC7ngekN6rNp6ardHA==", + "requires": { + "builder-util-runtime": "9.2.3", + "fs-extra": "^10.1.0", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "lodash.escaperegexp": "^4.1.2", + "lodash.isequal": "^4.5.0", + "semver": "^7.3.8", + "tiny-typed-emitter": "^2.1.0" + }, + "dependencies": { + "builder-util-runtime": { + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.3.tgz", + "integrity": "sha512-FGhkqXdFFZ5dNC4C+yuQB9ak311rpGAw+/ASz8ZdxwODCv1GGMWgLDeofRkdi0F3VCHQEWy/aXcJQozx2nOPiw==", + "requires": { + "debug": "^4.3.4", + "sax": "^1.2.4" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" + } + } + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -4298,7 +4368,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, "requires": { "argparse": "^2.0.1" } @@ -4361,8 +4430,7 @@ "lazy-val": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", - "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", - "dev": true + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==" }, "levn": { "version": "0.4.1", @@ -4394,8 +4462,12 @@ "lodash.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", - "dev": true + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" }, "lodash.isplainobject": { "version": "4.0.6", @@ -4461,7 +4533,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -4609,8 +4680,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "mute-stream": { "version": "1.0.0", @@ -6383,8 +6453,7 @@ "sax": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "dev": true + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, "semver": { "version": "7.3.5", @@ -6957,6 +7026,11 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "tiny-typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" + }, "titleize": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", @@ -7443,8 +7517,7 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { "version": "17.7.2", diff --git a/package.json b/package.json index 01e72aa..85518c3 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,8 @@ "bootstrap": "^5.3.2", "compression": "^1.7.4", "cookie-parser": "^1.4.6", + "electron-log": "^5.0.3", + "electron-updater": "^6.1.7", "express": "^4.17.2", "fs": "^0.0.1-security", "grapesjs": "^0.21.7",