From ba64639c1d4b868bd5286e99308493745e971c86 Mon Sep 17 00:00:00 2001 From: Guillaume Date: Wed, 25 Sep 2019 17:33:57 +0200 Subject: [PATCH 01/29] - Added AddExtension, RemoveExtension and GetExtensions methods body - Added a ChromeExtensionInfo class, that mimic the returned JS values from GetExtensions method (see https://electronjs.org/docs/api/browser-window#browserwindowgetextensions) - GetExtensions return a Dictionary, to respect JS documentation declaration. --- ElectronNET.API/BrowserWindow.cs | 32 ++++++++++++++++ .../Entities/ChromeExtensionInfo.cs | 38 +++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 ElectronNET.API/Entities/ChromeExtensionInfo.cs diff --git a/ElectronNET.API/BrowserWindow.cs b/ElectronNET.API/BrowserWindow.cs index 382c444..e7b18b4 100644 --- a/ElectronNET.API/BrowserWindow.cs +++ b/ElectronNET.API/BrowserWindow.cs @@ -2310,5 +2310,37 @@ namespace ElectronNET.API ContractResolver = new CamelCasePropertyNamesContractResolver(), NullValueHandling = NullValueHandling.Ignore }; + + /// + /// Adds Chrome extension located at path, and returns extension's name. + /// The method will also not return if the extension's manifest is missing or incomplete. + /// Note: This API cannot be called before the ready event of the app module is emitted. + /// + /// Path to the Chrome extension + /// + public static string AddExtension(string path) + { + throw new NotImplementedException(); + } + + /// + /// Remove Chrome extension with the specified name. + /// Note: This API cannot be called before the ready event of the app module is emitted. + /// + /// Name of the Chrome extension to remove + public static void RemoveExtension(string name) + { + throw new NotImplementedException(); + } + + /// + /// The keys are the extension names and each value is an object containing name and version properties. + /// Note: This API cannot be called before the ready event of the app module is emitted. + /// + /// + public static Dictionary GetExtensions() + { + throw new NotImplementedException(); + } } } diff --git a/ElectronNET.API/Entities/ChromeExtensionInfo.cs b/ElectronNET.API/Entities/ChromeExtensionInfo.cs new file mode 100644 index 0000000..09ec67c --- /dev/null +++ b/ElectronNET.API/Entities/ChromeExtensionInfo.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ElectronNET.API.Entities +{ + /// + /// Provide metadata about the current loaded Chrome extension + /// + public class ChromeExtensionInfo + { + private string _name; + private string _version; + + + internal ChromeExtensionInfo(string name, string version) + { + _name = name; + _version = version; + } + + /// + /// Name of the Chrome extension + /// + public string Name + { + get => _name; + } + + /// + /// Version of the Chrome extension + /// + public string Version + { + get => _version; + } + } +} From 8b66bdd7cbcc8f4d5800ba4df0cd2d1268c0b78b Mon Sep 17 00:00:00 2001 From: Guillaume Date: Thu, 26 Sep 2019 13:27:22 +0200 Subject: [PATCH 02/29] - Added BrowserWindow.AddExtension, RemoveExtension, GetExtensions support. Not yet tested --- ElectronNET.API/BrowserWindow.cs | 31 ++++++++++++++++--- .../Entities/ChromeExtensionInfo.cs | 20 +++--------- ElectronNET.Host/api/browserWindows.ts | 22 +++++++++++++ 3 files changed, 53 insertions(+), 20 deletions(-) diff --git a/ElectronNET.API/BrowserWindow.cs b/ElectronNET.API/BrowserWindow.cs index e7b18b4..f467173 100644 --- a/ElectronNET.API/BrowserWindow.cs +++ b/ElectronNET.API/BrowserWindow.cs @@ -2318,9 +2318,19 @@ namespace ElectronNET.API /// /// Path to the Chrome extension /// - public static string AddExtension(string path) + public static Task AddExtensionAsync(string path) { - throw new NotImplementedException(); + var taskCompletionSource = new TaskCompletionSource(); + + BridgeConnector.Socket.On("browserWindow-addExtension-completed", (extensionname) => { + BridgeConnector.Socket.Off("browserWindow-addExtension-completed"); + + taskCompletionSource.SetResult(extensionname.ToString()); + }); + + BridgeConnector.Socket.Emit("browserWindowAddExtension", path); + + return taskCompletionSource.Task; } /// @@ -2330,7 +2340,7 @@ namespace ElectronNET.API /// Name of the Chrome extension to remove public static void RemoveExtension(string name) { - throw new NotImplementedException(); + BridgeConnector.Socket.Emit("browserWindowRemoveExtension", name); } /// @@ -2338,9 +2348,20 @@ namespace ElectronNET.API /// Note: This API cannot be called before the ready event of the app module is emitted. /// /// - public static Dictionary GetExtensions() + public static Task GetExtensionsAsync() { - throw new NotImplementedException(); + var taskCompletionSource = new TaskCompletionSource(); + + BridgeConnector.Socket.On("browserWindow-getExtensions-completed", (extensionslist) => { + BridgeConnector.Socket.Off("browserWindow-getExtensions-completed"); + var chromeExtensionInfos = ((JArray)extensionslist).ToObject(); + + taskCompletionSource.SetResult(chromeExtensionInfos); + }); + + BridgeConnector.Socket.Emit("browserWindowGetExtensions"); + + return taskCompletionSource.Task; } } } diff --git a/ElectronNET.API/Entities/ChromeExtensionInfo.cs b/ElectronNET.API/Entities/ChromeExtensionInfo.cs index 09ec67c..87a44d5 100644 --- a/ElectronNET.API/Entities/ChromeExtensionInfo.cs +++ b/ElectronNET.API/Entities/ChromeExtensionInfo.cs @@ -9,30 +9,20 @@ namespace ElectronNET.API.Entities /// public class ChromeExtensionInfo { - private string _name; - private string _version; - - - internal ChromeExtensionInfo(string name, string version) + public ChromeExtensionInfo(string name, string version) { - _name = name; - _version = version; + Name = name; + Version = version; } /// /// Name of the Chrome extension /// - public string Name - { - get => _name; - } + public string Name { get; set; } /// /// Version of the Chrome extension /// - public string Version - { - get => _version; - } + public string Version { get; set; } } } diff --git a/ElectronNET.Host/api/browserWindows.ts b/ElectronNET.Host/api/browserWindows.ts index ae473cb..302f34a 100644 --- a/ElectronNET.Host/api/browserWindows.ts +++ b/ElectronNET.Host/api/browserWindows.ts @@ -706,6 +706,28 @@ export = (socket: SocketIO.Socket, app: Electron.App) => { getWindowById(id).setVibrancy(type); }); + socket.on('browserWindowAddExtension', (path) => { + const extensionName = Electron.BrowserWindow.addExtension(path); + + electronSocket.emit('browserWindow-addExtension-completed', extensionName); + }); + + socket.on('browserWindowRemoveExtension', (name) => { + Electron.BrowserWindow.removeExtension(name); + }); + + socket.on('browserWindowGetExtensions', (path) => { + const extensionsList = Electron.BrowserWindow.getExtensions(); + + let chromeExtensionInfo = new Array(); + + Object.keys(extensionsList).forEach(key => { + chromeExtensionInfo.push(extensionsList[key]); + }); + + electronSocket.emit('browserWindow-getExtensions-completed', chromeExtensionInfo); + }); + function getWindowById(id: number): Electron.BrowserWindow { for (let index = 0; index < windows.length; index++) { const element = windows[index]; From a781234d05096958fdfef2998fabc11aa547c7bd Mon Sep 17 00:00:00 2001 From: Guillaume Date: Thu, 26 Sep 2019 13:37:01 +0200 Subject: [PATCH 03/29] - Removed not existent parameter in method declaration of browserWindowGetExtensions in browserWindows.ts --- ElectronNET.Host/api/browserWindows.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ElectronNET.Host/api/browserWindows.ts b/ElectronNET.Host/api/browserWindows.ts index 302f34a..fbdd696 100644 --- a/ElectronNET.Host/api/browserWindows.ts +++ b/ElectronNET.Host/api/browserWindows.ts @@ -716,7 +716,7 @@ export = (socket: SocketIO.Socket, app: Electron.App) => { Electron.BrowserWindow.removeExtension(name); }); - socket.on('browserWindowGetExtensions', (path) => { + socket.on('browserWindowGetExtensions', () => { const extensionsList = Electron.BrowserWindow.getExtensions(); let chromeExtensionInfo = new Array(); From a32b50f86fc1db618a6cd4a962fbd8e9106d4741 Mon Sep 17 00:00:00 2001 From: Guillaume Date: Thu, 26 Sep 2019 17:26:33 +0200 Subject: [PATCH 04/29] - Fixed / Updated API for Chrome extensions - Sample for quick testing will be put in the pull request --- ElectronNET.Host/api/browserWindows.js | 456 +++++++++++---------- ElectronNET.Host/api/browserWindows.js.map | 2 +- ElectronNET.Host/api/browserWindows.ts | 8 +- 3 files changed, 249 insertions(+), 217 deletions(-) diff --git a/ElectronNET.Host/api/browserWindows.js b/ElectronNET.Host/api/browserWindows.js index 239f235..2341833 100644 --- a/ElectronNET.Host/api/browserWindows.js +++ b/ElectronNET.Host/api/browserWindows.js @@ -1,162 +1,177 @@ "use strict"; -const electron_1 = require("electron"); -const path = require('path'); -const windows = []; -let window, lastOptions, electronSocket; -module.exports = (socket, app) => { +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var electron_1 = require("electron"); +var path = require('path'); +var windows = []; +var window, lastOptions, electronSocket, electronBrowserWindow; +module.exports = function (socket, app) { electronSocket = socket; - socket.on('register-browserWindow-ready-to-show', (id) => { - getWindowById(id).on('ready-to-show', () => { + socket.on('register-browserWindow-ready-to-show', function (id) { + getWindowById(id).on('ready-to-show', function () { electronSocket.emit('browserWindow-ready-to-show' + id); }); }); - socket.on('register-browserWindow-page-title-updated', (id) => { - getWindowById(id).on('page-title-updated', (event, title) => { + socket.on('register-browserWindow-page-title-updated', function (id) { + getWindowById(id).on('page-title-updated', function (event, title) { electronSocket.emit('browserWindow-page-title-updated' + id, title); }); }); - socket.on('register-browserWindow-close', (id) => { - getWindowById(id).on('close', () => { + socket.on('register-browserWindow-close', function (id) { + getWindowById(id).on('close', function () { electronSocket.emit('browserWindow-close' + id); }); }); - socket.on('register-browserWindow-closed', (id) => { - getWindowById(id).on('closed', () => { + socket.on('register-browserWindow-closed', function (id) { + getWindowById(id).on('closed', function () { electronSocket.emit('browserWindow-closed' + id); }); }); - socket.on('register-browserWindow-session-end', (id) => { - getWindowById(id).on('session-end', () => { + socket.on('register-browserWindow-session-end', function (id) { + getWindowById(id).on('session-end', function () { electronSocket.emit('browserWindow-session-end' + id); }); }); - socket.on('register-browserWindow-unresponsive', (id) => { - getWindowById(id).on('unresponsive', () => { + socket.on('register-browserWindow-unresponsive', function (id) { + getWindowById(id).on('unresponsive', function () { electronSocket.emit('browserWindow-unresponsive' + id); }); }); - socket.on('register-browserWindow-responsive', (id) => { - getWindowById(id).on('responsive', () => { + socket.on('register-browserWindow-responsive', function (id) { + getWindowById(id).on('responsive', function () { electronSocket.emit('browserWindow-responsive' + id); }); }); - socket.on('register-browserWindow-blur', (id) => { - getWindowById(id).on('blur', () => { + socket.on('register-browserWindow-blur', function (id) { + getWindowById(id).on('blur', function () { electronSocket.emit('browserWindow-blur' + id); }); }); - socket.on('register-browserWindow-focus', (id) => { - getWindowById(id).on('focus', () => { + socket.on('register-browserWindow-focus', function (id) { + getWindowById(id).on('focus', function () { electronSocket.emit('browserWindow-focus' + id); }); }); - socket.on('register-browserWindow-show', (id) => { - getWindowById(id).on('show', () => { + socket.on('register-browserWindow-show', function (id) { + getWindowById(id).on('show', function () { electronSocket.emit('browserWindow-show' + id); }); }); - socket.on('register-browserWindow-hide', (id) => { - getWindowById(id).on('hide', () => { + socket.on('register-browserWindow-hide', function (id) { + getWindowById(id).on('hide', function () { electronSocket.emit('browserWindow-hide' + id); }); }); - socket.on('register-browserWindow-maximize', (id) => { - getWindowById(id).on('maximize', () => { + socket.on('register-browserWindow-maximize', function (id) { + getWindowById(id).on('maximize', function () { electronSocket.emit('browserWindow-maximize' + id); }); }); - socket.on('register-browserWindow-unmaximize', (id) => { - getWindowById(id).on('unmaximize', () => { + socket.on('register-browserWindow-unmaximize', function (id) { + getWindowById(id).on('unmaximize', function () { electronSocket.emit('browserWindow-unmaximize' + id); }); }); - socket.on('register-browserWindow-minimize', (id) => { - getWindowById(id).on('minimize', () => { + socket.on('register-browserWindow-minimize', function (id) { + getWindowById(id).on('minimize', function () { electronSocket.emit('browserWindow-minimize' + id); }); }); - socket.on('register-browserWindow-restore', (id) => { - getWindowById(id).on('restore', () => { + socket.on('register-browserWindow-restore', function (id) { + getWindowById(id).on('restore', function () { electronSocket.emit('browserWindow-restore' + id); }); }); - socket.on('register-browserWindow-resize', (id) => { - getWindowById(id).on('resize', () => { + socket.on('register-browserWindow-resize', function (id) { + getWindowById(id).on('resize', function () { electronSocket.emit('browserWindow-resize' + id); }); }); - socket.on('register-browserWindow-move', (id) => { - getWindowById(id).on('move', () => { + socket.on('register-browserWindow-move', function (id) { + getWindowById(id).on('move', function () { electronSocket.emit('browserWindow-move' + id); }); }); - socket.on('register-browserWindow-moved', (id) => { - getWindowById(id).on('moved', () => { + socket.on('register-browserWindow-moved', function (id) { + getWindowById(id).on('moved', function () { electronSocket.emit('browserWindow-moved' + id); }); }); - socket.on('register-browserWindow-enter-full-screen', (id) => { - getWindowById(id).on('enter-full-screen', () => { + socket.on('register-browserWindow-enter-full-screen', function (id) { + getWindowById(id).on('enter-full-screen', function () { electronSocket.emit('browserWindow-enter-full-screen' + id); }); }); - socket.on('register-browserWindow-leave-full-screen', (id) => { - getWindowById(id).on('leave-full-screen', () => { + socket.on('register-browserWindow-leave-full-screen', function (id) { + getWindowById(id).on('leave-full-screen', function () { electronSocket.emit('browserWindow-leave-full-screen' + id); }); }); - socket.on('register-browserWindow-enter-html-full-screen', (id) => { - getWindowById(id).on('enter-html-full-screen', () => { + socket.on('register-browserWindow-enter-html-full-screen', function (id) { + getWindowById(id).on('enter-html-full-screen', function () { electronSocket.emit('browserWindow-enter-html-full-screen' + id); }); }); - socket.on('register-browserWindow-leave-html-full-screen', (id) => { - getWindowById(id).on('leave-html-full-screen', () => { + socket.on('register-browserWindow-leave-html-full-screen', function (id) { + getWindowById(id).on('leave-html-full-screen', function () { electronSocket.emit('browserWindow-leave-html-full-screen' + id); }); }); - socket.on('register-browserWindow-app-command', (id) => { - getWindowById(id).on('app-command', (event, command) => { + socket.on('register-browserWindow-app-command', function (id) { + getWindowById(id).on('app-command', function (event, command) { electronSocket.emit('browserWindow-app-command' + id, command); }); }); - socket.on('register-browserWindow-scroll-touch-begin', (id) => { - getWindowById(id).on('scroll-touch-begin', () => { + socket.on('register-browserWindow-scroll-touch-begin', function (id) { + getWindowById(id).on('scroll-touch-begin', function () { electronSocket.emit('browserWindow-scroll-touch-begin' + id); }); }); - socket.on('register-browserWindow-scroll-touch-end', (id) => { - getWindowById(id).on('scroll-touch-end', () => { + socket.on('register-browserWindow-scroll-touch-end', function (id) { + getWindowById(id).on('scroll-touch-end', function () { electronSocket.emit('browserWindow-scroll-touch-end' + id); }); }); - socket.on('register-browserWindow-scroll-touch-edge', (id) => { - getWindowById(id).on('scroll-touch-edge', () => { + socket.on('register-browserWindow-scroll-touch-edge', function (id) { + getWindowById(id).on('scroll-touch-edge', function () { electronSocket.emit('browserWindow-scroll-touch-edge' + id); }); }); - socket.on('register-browserWindow-swipe', (id) => { - getWindowById(id).on('swipe', (event, direction) => { + socket.on('register-browserWindow-swipe', function (id) { + getWindowById(id).on('swipe', function (event, direction) { electronSocket.emit('browserWindow-swipe' + id, direction); }); }); - socket.on('register-browserWindow-sheet-begin', (id) => { - getWindowById(id).on('sheet-begin', () => { + socket.on('register-browserWindow-sheet-begin', function (id) { + getWindowById(id).on('sheet-begin', function () { electronSocket.emit('browserWindow-sheet-begin' + id); }); }); - socket.on('register-browserWindow-sheet-end', (id) => { - getWindowById(id).on('sheet-end', () => { + socket.on('register-browserWindow-sheet-end', function (id) { + getWindowById(id).on('sheet-end', function () { electronSocket.emit('browserWindow-sheet-end' + id); }); }); - socket.on('register-browserWindow-new-window-for-tab', (id) => { - getWindowById(id).on('new-window-for-tab', () => { + socket.on('register-browserWindow-new-window-for-tab', function (id) { + getWindowById(id).on('new-window-for-tab', function () { electronSocket.emit('browserWindow-new-window-for-tab' + id); }); }); - function hasOwnChildreen(obj, ...childNames) { - for (let i = 0; i < childNames.length; i++) { + function hasOwnChildreen(obj) { + var childNames = []; + for (var _i = 1; _i < arguments.length; _i++) { + childNames[_i - 1] = arguments[_i]; + } + for (var i = 0; i < childNames.length; i++) { if (!obj || !obj.hasOwnProperty(childNames[i])) { return false; } @@ -164,29 +179,32 @@ module.exports = (socket, app) => { } return true; } - socket.on('createBrowserWindow', (options, loadUrl) => { + socket.on('createBrowserWindow', function (options, loadUrl) { if (!hasOwnChildreen(options, 'webPreferences', 'nodeIntegration')) { - options = Object.assign({}, options, { webPreferences: { nodeIntegration: true } }); + options = __assign(__assign({}, options), { webPreferences: { nodeIntegration: true } }); } window = new electron_1.BrowserWindow(options); lastOptions = options; - window.on('closed', (sender) => { - for (let index = 0; index < windows.length; index++) { - const windowItem = windows[index]; + window.on('closed', function (sender) { + var _loop_1 = function (index) { + var windowItem = windows[index]; try { windowItem.id; } catch (error) { if (error.message === 'Object has been destroyed') { windows.splice(index, 1); - const ids = []; - windows.forEach(x => ids.push(x.id)); - electronSocket.emit('BrowserWindowClosed', ids); + var ids_1 = []; + windows.forEach(function (x) { return ids_1.push(x.id); }); + electronSocket.emit('BrowserWindowClosed', ids_1); } } + }; + for (var index = 0; index < windows.length; index++) { + _loop_1(index); } }); - app.on('activate', () => { + app.on('activate', function () { // On macOS it's common to re-create a window in the app when the // dock icon is clicked and there are no other windows open. if (window === null && lastOptions) { @@ -199,191 +217,191 @@ module.exports = (socket, app) => { windows.push(window); electronSocket.emit('BrowserWindowCreated', window.id); }); - socket.on('browserWindowDestroy', (id) => { + socket.on('browserWindowDestroy', function (id) { getWindowById(id).destroy(); }); - socket.on('browserWindowClose', (id) => { + socket.on('browserWindowClose', function (id) { getWindowById(id).close(); }); - socket.on('browserWindowFocus', (id) => { + socket.on('browserWindowFocus', function (id) { getWindowById(id).focus(); }); - socket.on('browserWindowBlur', (id) => { + socket.on('browserWindowBlur', function (id) { getWindowById(id).blur(); }); - socket.on('browserWindowIsFocused', (id) => { - const isFocused = getWindowById(id).isFocused(); + socket.on('browserWindowIsFocused', function (id) { + var isFocused = getWindowById(id).isFocused(); electronSocket.emit('browserWindow-isFocused-completed', isFocused); }); - socket.on('browserWindowIsDestroyed', (id) => { - const isDestroyed = getWindowById(id).isDestroyed(); + socket.on('browserWindowIsDestroyed', function (id) { + var isDestroyed = getWindowById(id).isDestroyed(); electronSocket.emit('browserWindow-isDestroyed-completed', isDestroyed); }); - socket.on('browserWindowShow', (id) => { + socket.on('browserWindowShow', function (id) { getWindowById(id).show(); }); - socket.on('browserWindowShowInactive', (id) => { + socket.on('browserWindowShowInactive', function (id) { getWindowById(id).showInactive(); }); - socket.on('browserWindowHide', (id) => { + socket.on('browserWindowHide', function (id) { getWindowById(id).hide(); }); - socket.on('browserWindowIsVisible', (id) => { - const isVisible = getWindowById(id).isVisible(); + socket.on('browserWindowIsVisible', function (id) { + var isVisible = getWindowById(id).isVisible(); electronSocket.emit('browserWindow-isVisible-completed', isVisible); }); - socket.on('browserWindowIsModal', (id) => { - const isModal = getWindowById(id).isModal(); + socket.on('browserWindowIsModal', function (id) { + var isModal = getWindowById(id).isModal(); electronSocket.emit('browserWindow-isModal-completed', isModal); }); - socket.on('browserWindowMaximize', (id) => { + socket.on('browserWindowMaximize', function (id) { getWindowById(id).maximize(); }); - socket.on('browserWindowUnmaximize', (id) => { + socket.on('browserWindowUnmaximize', function (id) { getWindowById(id).unmaximize(); }); - socket.on('browserWindowIsMaximized', (id) => { - const isMaximized = getWindowById(id).isMaximized(); + socket.on('browserWindowIsMaximized', function (id) { + var isMaximized = getWindowById(id).isMaximized(); electronSocket.emit('browserWindow-isMaximized-completed', isMaximized); }); - socket.on('browserWindowMinimize', (id) => { + socket.on('browserWindowMinimize', function (id) { getWindowById(id).minimize(); }); - socket.on('browserWindowRestore', (id) => { + socket.on('browserWindowRestore', function (id) { getWindowById(id).restore(); }); - socket.on('browserWindowIsMinimized', (id) => { - const isMinimized = getWindowById(id).isMinimized(); + socket.on('browserWindowIsMinimized', function (id) { + var isMinimized = getWindowById(id).isMinimized(); electronSocket.emit('browserWindow-isMinimized-completed', isMinimized); }); - socket.on('browserWindowSetFullScreen', (id, fullscreen) => { + socket.on('browserWindowSetFullScreen', function (id, fullscreen) { getWindowById(id).setFullScreen(fullscreen); }); - socket.on('browserWindowIsFullScreen', (id) => { - const isFullScreen = getWindowById(id).isFullScreen(); + socket.on('browserWindowIsFullScreen', function (id) { + var isFullScreen = getWindowById(id).isFullScreen(); electronSocket.emit('browserWindow-isFullScreen-completed', isFullScreen); }); - socket.on('browserWindowSetAspectRatio', (id, aspectRatio, extraSize) => { + socket.on('browserWindowSetAspectRatio', function (id, aspectRatio, extraSize) { getWindowById(id).setAspectRatio(aspectRatio, extraSize); }); - socket.on('browserWindowPreviewFile', (id, path, displayname) => { + socket.on('browserWindowPreviewFile', function (id, path, displayname) { getWindowById(id).previewFile(path, displayname); }); - socket.on('browserWindowCloseFilePreview', (id) => { + socket.on('browserWindowCloseFilePreview', function (id) { getWindowById(id).closeFilePreview(); }); - socket.on('browserWindowSetBounds', (id, bounds, animate) => { + socket.on('browserWindowSetBounds', function (id, bounds, animate) { getWindowById(id).setBounds(bounds, animate); }); - socket.on('browserWindowGetBounds', (id) => { - const rectangle = getWindowById(id).getBounds(); + socket.on('browserWindowGetBounds', function (id) { + var rectangle = getWindowById(id).getBounds(); electronSocket.emit('browserWindow-getBounds-completed', rectangle); }); - socket.on('browserWindowSetContentBounds', (id, bounds, animate) => { + socket.on('browserWindowSetContentBounds', function (id, bounds, animate) { getWindowById(id).setContentBounds(bounds, animate); }); - socket.on('browserWindowGetContentBounds', (id) => { - const rectangle = getWindowById(id).getContentBounds(); + socket.on('browserWindowGetContentBounds', function (id) { + var rectangle = getWindowById(id).getContentBounds(); electronSocket.emit('browserWindow-getContentBounds-completed', rectangle); }); - socket.on('browserWindowSetSize', (id, width, height, animate) => { + socket.on('browserWindowSetSize', function (id, width, height, animate) { getWindowById(id).setSize(width, height, animate); }); - socket.on('browserWindowGetSize', (id) => { - const size = getWindowById(id).getSize(); + socket.on('browserWindowGetSize', function (id) { + var size = getWindowById(id).getSize(); electronSocket.emit('browserWindow-getSize-completed', size); }); - socket.on('browserWindowSetContentSize', (id, width, height, animate) => { + socket.on('browserWindowSetContentSize', function (id, width, height, animate) { getWindowById(id).setContentSize(width, height, animate); }); - socket.on('browserWindowGetContentSize', (id) => { - const size = getWindowById(id).getContentSize(); + socket.on('browserWindowGetContentSize', function (id) { + var size = getWindowById(id).getContentSize(); electronSocket.emit('browserWindow-getContentSize-completed', size); }); - socket.on('browserWindowSetMinimumSize', (id, width, height) => { + socket.on('browserWindowSetMinimumSize', function (id, width, height) { getWindowById(id).setMinimumSize(width, height); }); - socket.on('browserWindowGetMinimumSize', (id) => { - const size = getWindowById(id).getMinimumSize(); + socket.on('browserWindowGetMinimumSize', function (id) { + var size = getWindowById(id).getMinimumSize(); electronSocket.emit('browserWindow-getMinimumSize-completed', size); }); - socket.on('browserWindowSetMaximumSize', (id, width, height) => { + socket.on('browserWindowSetMaximumSize', function (id, width, height) { getWindowById(id).setMaximumSize(width, height); }); - socket.on('browserWindowGetMaximumSize', (id) => { - const size = getWindowById(id).getMaximumSize(); + socket.on('browserWindowGetMaximumSize', function (id) { + var size = getWindowById(id).getMaximumSize(); electronSocket.emit('browserWindow-getMaximumSize-completed', size); }); - socket.on('browserWindowSetResizable', (id, resizable) => { + socket.on('browserWindowSetResizable', function (id, resizable) { getWindowById(id).setResizable(resizable); }); - socket.on('browserWindowIsResizable', (id) => { - const resizable = getWindowById(id).isResizable(); + socket.on('browserWindowIsResizable', function (id) { + var resizable = getWindowById(id).isResizable(); electronSocket.emit('browserWindow-isResizable-completed', resizable); }); - socket.on('browserWindowSetMovable', (id, movable) => { + socket.on('browserWindowSetMovable', function (id, movable) { getWindowById(id).setMovable(movable); }); - socket.on('browserWindowIsMovable', (id) => { - const movable = getWindowById(id).isMovable(); + socket.on('browserWindowIsMovable', function (id) { + var movable = getWindowById(id).isMovable(); electronSocket.emit('browserWindow-isMovable-completed', movable); }); - socket.on('browserWindowSetMinimizable', (id, minimizable) => { + socket.on('browserWindowSetMinimizable', function (id, minimizable) { getWindowById(id).setMinimizable(minimizable); }); - socket.on('browserWindowIsMinimizable', (id) => { - const minimizable = getWindowById(id).isMinimizable(); + socket.on('browserWindowIsMinimizable', function (id) { + var minimizable = getWindowById(id).isMinimizable(); electronSocket.emit('browserWindow-isMinimizable-completed', minimizable); }); - socket.on('browserWindowSetMaximizable', (id, maximizable) => { + socket.on('browserWindowSetMaximizable', function (id, maximizable) { getWindowById(id).setMaximizable(maximizable); }); - socket.on('browserWindowIsMaximizable', (id) => { - const maximizable = getWindowById(id).isMaximizable(); + socket.on('browserWindowIsMaximizable', function (id) { + var maximizable = getWindowById(id).isMaximizable(); electronSocket.emit('browserWindow-isMaximizable-completed', maximizable); }); - socket.on('browserWindowSetFullScreenable', (id, fullscreenable) => { + socket.on('browserWindowSetFullScreenable', function (id, fullscreenable) { getWindowById(id).setFullScreenable(fullscreenable); }); - socket.on('browserWindowIsFullScreenable', (id) => { - const fullscreenable = getWindowById(id).isFullScreenable(); + socket.on('browserWindowIsFullScreenable', function (id) { + var fullscreenable = getWindowById(id).isFullScreenable(); electronSocket.emit('browserWindow-isFullScreenable-completed', fullscreenable); }); - socket.on('browserWindowSetClosable', (id, closable) => { + socket.on('browserWindowSetClosable', function (id, closable) { getWindowById(id).setClosable(closable); }); - socket.on('browserWindowIsClosable', (id) => { - const closable = getWindowById(id).isClosable(); + socket.on('browserWindowIsClosable', function (id) { + var closable = getWindowById(id).isClosable(); electronSocket.emit('browserWindow-isClosable-completed', closable); }); - socket.on('browserWindowSetAlwaysOnTop', (id, flag, level, relativeLevel) => { + socket.on('browserWindowSetAlwaysOnTop', function (id, flag, level, relativeLevel) { getWindowById(id).setAlwaysOnTop(flag, level, relativeLevel); }); - socket.on('browserWindowIsAlwaysOnTop', (id) => { - const isAlwaysOnTop = getWindowById(id).isAlwaysOnTop(); + socket.on('browserWindowIsAlwaysOnTop', function (id) { + var isAlwaysOnTop = getWindowById(id).isAlwaysOnTop(); electronSocket.emit('browserWindow-isAlwaysOnTop-completed', isAlwaysOnTop); }); - socket.on('browserWindowCenter', (id) => { + socket.on('browserWindowCenter', function (id) { getWindowById(id).center(); }); - socket.on('browserWindowSetPosition', (id, x, y, animate) => { + socket.on('browserWindowSetPosition', function (id, x, y, animate) { getWindowById(id).setPosition(x, y, animate); }); - socket.on('browserWindowGetPosition', (id) => { - const position = getWindowById(id).getPosition(); + socket.on('browserWindowGetPosition', function (id) { + var position = getWindowById(id).getPosition(); electronSocket.emit('browserWindow-getPosition-completed', position); }); - socket.on('browserWindowSetTitle', (id, title) => { + socket.on('browserWindowSetTitle', function (id, title) { getWindowById(id).setTitle(title); }); - socket.on('browserWindowGetTitle', (id) => { - const title = getWindowById(id).getTitle(); + socket.on('browserWindowGetTitle', function (id) { + var title = getWindowById(id).getTitle(); electronSocket.emit('browserWindow-getTitle-completed', title); }); - socket.on('browserWindowSetTitle', (id, title) => { + socket.on('browserWindowSetTitle', function (id, title) { getWindowById(id).setTitle(title); }); - socket.on('browserWindowSetSheetOffset', (id, offsetY, offsetX) => { + socket.on('browserWindowSetSheetOffset', function (id, offsetY, offsetX) { if (offsetX) { getWindowById(id).setSheetOffset(offsetY, offsetX); } @@ -391,160 +409,174 @@ module.exports = (socket, app) => { getWindowById(id).setSheetOffset(offsetY); } }); - socket.on('browserWindowFlashFrame', (id, flag) => { + socket.on('browserWindowFlashFrame', function (id, flag) { getWindowById(id).flashFrame(flag); }); - socket.on('browserWindowSetSkipTaskbar', (id, skip) => { + socket.on('browserWindowSetSkipTaskbar', function (id, skip) { getWindowById(id).setSkipTaskbar(skip); }); - socket.on('browserWindowSetKiosk', (id, flag) => { + socket.on('browserWindowSetKiosk', function (id, flag) { getWindowById(id).setKiosk(flag); }); - socket.on('browserWindowIsKiosk', (id) => { - const isKiosk = getWindowById(id).isKiosk(); + socket.on('browserWindowIsKiosk', function (id) { + var isKiosk = getWindowById(id).isKiosk(); electronSocket.emit('browserWindow-isKiosk-completed', isKiosk); }); - socket.on('browserWindowSetRepresentedFilename', (id, filename) => { + socket.on('browserWindowSetRepresentedFilename', function (id, filename) { getWindowById(id).setRepresentedFilename(filename); }); - socket.on('browserWindowGetRepresentedFilename', (id) => { - const pathname = getWindowById(id).getRepresentedFilename(); + socket.on('browserWindowGetRepresentedFilename', function (id) { + var pathname = getWindowById(id).getRepresentedFilename(); electronSocket.emit('browserWindow-getRepresentedFilename-completed', pathname); }); - socket.on('browserWindowSetDocumentEdited', (id, edited) => { + socket.on('browserWindowSetDocumentEdited', function (id, edited) { getWindowById(id).setDocumentEdited(edited); }); - socket.on('browserWindowIsDocumentEdited', (id) => { - const edited = getWindowById(id).isDocumentEdited(); + socket.on('browserWindowIsDocumentEdited', function (id) { + var edited = getWindowById(id).isDocumentEdited(); electronSocket.emit('browserWindow-isDocumentEdited-completed', edited); }); - socket.on('browserWindowFocusOnWebView', (id) => { + socket.on('browserWindowFocusOnWebView', function (id) { getWindowById(id).focusOnWebView(); }); - socket.on('browserWindowBlurWebView', (id) => { + socket.on('browserWindowBlurWebView', function (id) { getWindowById(id).blurWebView(); }); - socket.on('browserWindowLoadURL', (id, url, options) => { + socket.on('browserWindowLoadURL', function (id, url, options) { getWindowById(id).loadURL(url, options); }); - socket.on('browserWindowReload', (id) => { + socket.on('browserWindowReload', function (id) { getWindowById(id).reload(); }); - socket.on('browserWindowSetMenu', (id, menuItems) => { - let menu = null; + socket.on('browserWindowSetMenu', function (id, menuItems) { + var menu = null; if (menuItems) { menu = electron_1.Menu.buildFromTemplate(menuItems); - addMenuItemClickConnector(menu.items, (id) => { + addMenuItemClickConnector(menu.items, function (id) { electronSocket.emit('windowMenuItemClicked', id); }); } getWindowById(id).setMenu(menu); }); - socket.on('browserWindowRemoveMenu', (id) => { + socket.on('browserWindowRemoveMenu', function (id) { getWindowById(id).removeMenu(); }); function addMenuItemClickConnector(menuItems, callback) { - menuItems.forEach((item) => { + menuItems.forEach(function (item) { if (item.submenu && item.submenu.items.length > 0) { addMenuItemClickConnector(item.submenu.items, callback); } if ('id' in item && item.id) { - item.click = () => { callback(item.id); }; + item.click = function () { callback(item.id); }; } }); } - socket.on('browserWindowSetProgressBar', (id, progress) => { + socket.on('browserWindowSetProgressBar', function (id, progress) { getWindowById(id).setProgressBar(progress); }); - socket.on('browserWindowSetHasShadow', (id, hasShadow) => { + socket.on('browserWindowSetHasShadow', function (id, hasShadow) { getWindowById(id).setHasShadow(hasShadow); }); - socket.on('browserWindowHasShadow', (id) => { - const hasShadow = getWindowById(id).hasShadow(); + socket.on('browserWindowHasShadow', function (id) { + var hasShadow = getWindowById(id).hasShadow(); electronSocket.emit('browserWindow-hasShadow-completed', hasShadow); }); - socket.on('browserWindowSetThumbarButtons', (id, thumbarButtons) => { - thumbarButtons.forEach(thumbarButton => { - const imagePath = path.join(__dirname.replace('api', ''), 'bin', thumbarButton.icon.toString()); + socket.on('browserWindowSetThumbarButtons', function (id, thumbarButtons) { + thumbarButtons.forEach(function (thumbarButton) { + var imagePath = path.join(__dirname.replace('api', ''), 'bin', thumbarButton.icon.toString()); thumbarButton.icon = electron_1.nativeImage.createFromPath(imagePath); - thumbarButton.click = () => { + thumbarButton.click = function () { electronSocket.emit('thumbarButtonClicked', thumbarButton['id']); }; }); - const success = getWindowById(id).setThumbarButtons(thumbarButtons); + var success = getWindowById(id).setThumbarButtons(thumbarButtons); electronSocket.emit('browserWindowSetThumbarButtons-completed', success); }); - socket.on('browserWindowSetThumbnailClip', (id, rectangle) => { + socket.on('browserWindowSetThumbnailClip', function (id, rectangle) { getWindowById(id).setThumbnailClip(rectangle); }); - socket.on('browserWindowSetThumbnailToolTip', (id, toolTip) => { + socket.on('browserWindowSetThumbnailToolTip', function (id, toolTip) { getWindowById(id).setThumbnailToolTip(toolTip); }); - socket.on('browserWindowSetAppDetails', (id, options) => { + socket.on('browserWindowSetAppDetails', function (id, options) { getWindowById(id).setAppDetails(options); }); - socket.on('browserWindowShowDefinitionForSelection', (id) => { + socket.on('browserWindowShowDefinitionForSelection', function (id) { getWindowById(id).showDefinitionForSelection(); }); - socket.on('browserWindowSetAutoHideMenuBar', (id, hide) => { + socket.on('browserWindowSetAutoHideMenuBar', function (id, hide) { getWindowById(id).setAutoHideMenuBar(hide); }); - socket.on('browserWindowIsMenuBarAutoHide', (id) => { - const isMenuBarAutoHide = getWindowById(id).isMenuBarAutoHide(); + socket.on('browserWindowIsMenuBarAutoHide', function (id) { + var isMenuBarAutoHide = getWindowById(id).isMenuBarAutoHide(); electronSocket.emit('browserWindow-isMenuBarAutoHide-completed', isMenuBarAutoHide); }); - socket.on('browserWindowSetMenuBarVisibility', (id, visible) => { + socket.on('browserWindowSetMenuBarVisibility', function (id, visible) { getWindowById(id).setMenuBarVisibility(visible); }); - socket.on('browserWindowIsMenuBarVisible', (id) => { - const isMenuBarVisible = getWindowById(id).isMenuBarVisible(); + socket.on('browserWindowIsMenuBarVisible', function (id) { + var isMenuBarVisible = getWindowById(id).isMenuBarVisible(); electronSocket.emit('browserWindow-isMenuBarVisible-completed', isMenuBarVisible); }); - socket.on('browserWindowSetVisibleOnAllWorkspaces', (id, visible) => { + socket.on('browserWindowSetVisibleOnAllWorkspaces', function (id, visible) { getWindowById(id).setVisibleOnAllWorkspaces(visible); }); - socket.on('browserWindowIsVisibleOnAllWorkspaces', (id) => { - const isVisibleOnAllWorkspaces = getWindowById(id).isVisibleOnAllWorkspaces(); + socket.on('browserWindowIsVisibleOnAllWorkspaces', function (id) { + var isVisibleOnAllWorkspaces = getWindowById(id).isVisibleOnAllWorkspaces(); electronSocket.emit('browserWindow-isVisibleOnAllWorkspaces-completed', isVisibleOnAllWorkspaces); }); - socket.on('browserWindowSetIgnoreMouseEvents', (id, ignore) => { + socket.on('browserWindowSetIgnoreMouseEvents', function (id, ignore) { getWindowById(id).setIgnoreMouseEvents(ignore); }); - socket.on('browserWindowSetContentProtection', (id, enable) => { + socket.on('browserWindowSetContentProtection', function (id, enable) { getWindowById(id).setContentProtection(enable); }); - socket.on('browserWindowSetFocusable', (id, focusable) => { + socket.on('browserWindowSetFocusable', function (id, focusable) { getWindowById(id).setFocusable(focusable); }); - socket.on('browserWindowSetParentWindow', (id, parent) => { - const browserWindow = electron_1.BrowserWindow.fromId(parent.id); + socket.on('browserWindowSetParentWindow', function (id, parent) { + var browserWindow = electron_1.BrowserWindow.fromId(parent.id); getWindowById(id).setParentWindow(browserWindow); }); - socket.on('browserWindowGetParentWindow', (id) => { - const browserWindow = getWindowById(id).getParentWindow(); + socket.on('browserWindowGetParentWindow', function (id) { + var browserWindow = getWindowById(id).getParentWindow(); electronSocket.emit('browserWindow-getParentWindow-completed', browserWindow.id); }); - socket.on('browserWindowGetChildWindows', (id) => { - const browserWindows = getWindowById(id).getChildWindows(); - const ids = []; - browserWindows.forEach(x => { + socket.on('browserWindowGetChildWindows', function (id) { + var browserWindows = getWindowById(id).getChildWindows(); + var ids = []; + browserWindows.forEach(function (x) { ids.push(x.id); }); electronSocket.emit('browserWindow-getChildWindows-completed', ids); }); - socket.on('browserWindowSetAutoHideCursor', (id, autoHide) => { + socket.on('browserWindowSetAutoHideCursor', function (id, autoHide) { getWindowById(id).setAutoHideCursor(autoHide); }); - socket.on('browserWindowSetVibrancy', (id, type) => { + socket.on('browserWindowSetVibrancy', function (id, type) { getWindowById(id).setVibrancy(type); }); + socket.on('browserWindowAddExtension', function (path) { + var extensionName = electron_1.BrowserWindow.addExtension(path); + electronSocket.emit('browserWindow-addExtension-completed', extensionName); + }); + socket.on('browserWindowRemoveExtension', function (name) { + electron_1.BrowserWindow.removeExtension(name); + }); + socket.on('browserWindowGetExtensions', function () { + var extensionsList = electron_1.BrowserWindow.getExtensions(); + var chromeExtensionInfo = new Array(); + Object.keys(extensionsList).forEach(function (key) { + chromeExtensionInfo.push(extensionsList[key]); + }); + electronSocket.emit('browserWindow-getExtensions-completed', chromeExtensionInfo); + }); function getWindowById(id) { - for (let index = 0; index < windows.length; index++) { - const element = windows[index]; + for (var index = 0; index < windows.length; index++) { + var element = windows[index]; if (element.id == id) { return element; } } } }; -//# sourceMappingURL=browserWindows.js.map \ No newline at end of file diff --git a/ElectronNET.Host/api/browserWindows.js.map b/ElectronNET.Host/api/browserWindows.js.map index 5fce751..4656394 100644 --- a/ElectronNET.Host/api/browserWindows.js.map +++ b/ElectronNET.Host/api/browserWindows.js.map @@ -1 +1 @@ -{"version":3,"file":"browserWindows.js","sourceRoot":"","sources":["browserWindows.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"browserWindows.js","sourceRoot":"","sources":["browserWindows.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/ElectronNET.Host/api/browserWindows.ts b/ElectronNET.Host/api/browserWindows.ts index fbdd696..d8d3582 100644 --- a/ElectronNET.Host/api/browserWindows.ts +++ b/ElectronNET.Host/api/browserWindows.ts @@ -1,7 +1,7 @@ import { BrowserWindow, Menu, nativeImage } from 'electron'; const path = require('path'); const windows: Electron.BrowserWindow[] = []; -let window, lastOptions, electronSocket; +let window, lastOptions, electronSocket, electronBrowserWindow; export = (socket: SocketIO.Socket, app: Electron.App) => { electronSocket = socket; @@ -707,17 +707,17 @@ export = (socket: SocketIO.Socket, app: Electron.App) => { }); socket.on('browserWindowAddExtension', (path) => { - const extensionName = Electron.BrowserWindow.addExtension(path); + const extensionName = BrowserWindow.addExtension(path); electronSocket.emit('browserWindow-addExtension-completed', extensionName); }); socket.on('browserWindowRemoveExtension', (name) => { - Electron.BrowserWindow.removeExtension(name); + BrowserWindow.removeExtension(name); }); socket.on('browserWindowGetExtensions', () => { - const extensionsList = Electron.BrowserWindow.getExtensions(); + const extensionsList = BrowserWindow.getExtensions(); let chromeExtensionInfo = new Array(); From 8bf10c370c04b90b92db82df92aaf62d69f4de6f Mon Sep 17 00:00:00 2001 From: Guillaume Date: Thu, 26 Sep 2019 17:30:21 +0200 Subject: [PATCH 05/29] - Added XML documentation on ChromeExtensionInfo constructor --- ElectronNET.API/Entities/ChromeExtensionInfo.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ElectronNET.API/Entities/ChromeExtensionInfo.cs b/ElectronNET.API/Entities/ChromeExtensionInfo.cs index 87a44d5..8ceb986 100644 --- a/ElectronNET.API/Entities/ChromeExtensionInfo.cs +++ b/ElectronNET.API/Entities/ChromeExtensionInfo.cs @@ -9,6 +9,11 @@ namespace ElectronNET.API.Entities /// public class ChromeExtensionInfo { + /// + /// Initializes a new instance of the class. + /// + /// The name of the Chrome extension. + /// The version of the Chrome extension. public ChromeExtensionInfo(string name, string version) { Name = name; From 28be0dd209ccf18d7c59ed005a055864c4196007 Mon Sep 17 00:00:00 2001 From: Guillaume Date: Thu, 26 Sep 2019 17:34:18 +0200 Subject: [PATCH 06/29] - Removed unused variable from a previous attempt. --- ElectronNET.Host/api/browserWindows.js | 2 +- ElectronNET.Host/api/browserWindows.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ElectronNET.Host/api/browserWindows.js b/ElectronNET.Host/api/browserWindows.js index 2341833..01c6796 100644 --- a/ElectronNET.Host/api/browserWindows.js +++ b/ElectronNET.Host/api/browserWindows.js @@ -13,7 +13,7 @@ var __assign = (this && this.__assign) || function () { var electron_1 = require("electron"); var path = require('path'); var windows = []; -var window, lastOptions, electronSocket, electronBrowserWindow; +var window, lastOptions, electronSocket; module.exports = function (socket, app) { electronSocket = socket; socket.on('register-browserWindow-ready-to-show', function (id) { diff --git a/ElectronNET.Host/api/browserWindows.ts b/ElectronNET.Host/api/browserWindows.ts index d8d3582..3f7386f 100644 --- a/ElectronNET.Host/api/browserWindows.ts +++ b/ElectronNET.Host/api/browserWindows.ts @@ -1,7 +1,7 @@ import { BrowserWindow, Menu, nativeImage } from 'electron'; const path = require('path'); const windows: Electron.BrowserWindow[] = []; -let window, lastOptions, electronSocket, electronBrowserWindow; +let window, lastOptions, electronSocket; export = (socket: SocketIO.Socket, app: Electron.App) => { electronSocket = socket; From e25b89ff6a36cb1f1576b6583079b353ff3dc931 Mon Sep 17 00:00:00 2001 From: Robert Muehsig Date: Thu, 3 Oct 2019 22:30:58 +0200 Subject: [PATCH 07/29] Update to .NET Core 3.0 --- .travis.yml | 2 +- ElectronNET.API/ElectronNET.API.csproj | 14 +++++++++----- ElectronNET.API/PackageIcon.png | Bin 0 -> 39446 bytes ElectronNET.CLI/ElectronNET.CLI.csproj | 10 +++++++--- ElectronNET.CLI/PackageIcon.png | Bin 0 -> 39446 bytes .../Controllers/TrayController.cs | 4 ++-- .../ElectronHostHook/excelCreator.js | 3 ++- .../ElectronHostHook/excelCreator.js.map | 2 +- ElectronNET.WebApp/ElectronHostHook/index.js | 3 ++- .../ElectronHostHook/index.js.map | 2 +- ElectronNET.WebApp/ElectronNET.WebApp.csproj | 12 +++++------- ElectronNET.WebApp/Program.cs | 2 ++ ElectronNET.WebApp/Startup.cs | 17 +++++++---------- appveyor.yml | 2 +- 14 files changed, 40 insertions(+), 33 deletions(-) create mode 100644 ElectronNET.API/PackageIcon.png create mode 100644 ElectronNET.CLI/PackageIcon.png diff --git a/.travis.yml b/.travis.yml index 859739a..cdaa7ea 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: csharp mono: none dist: xenial -dotnet: 2.2 +dotnet: 3.0 before_script: - export PATH="$PATH:/home/travis/.dotnet/tools" - npm install electron-packager --global diff --git a/ElectronNET.API/ElectronNET.API.csproj b/ElectronNET.API/ElectronNET.API.csproj index 0da2662..ffdea36 100644 --- a/ElectronNET.API/ElectronNET.API.csproj +++ b/ElectronNET.API/ElectronNET.API.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 true ..\artifacts ElectronNET.API @@ -17,7 +17,7 @@ This package contains the API to access the "native" electron API. true electron aspnetcore Changelog: https://github.com/ElectronNET/Electron.NET/blob/master/Changelog.md - https://raw.githubusercontent.com/ElectronNET/Electron.NET/master/assets/images/electron.net-logo-square.png + PackageIcon.png 1.0.0.0 @@ -26,14 +26,18 @@ This package contains the API to access the "native" electron API. - bin\Release\netcoreapp2.0\ElectronNET.API.xml + bin\Release\netcoreapp3.0\ElectronNET.API.xml - bin\Debug\netcoreapp2.0\ElectronNET.API.xml + bin\Debug\netcoreapp3.0\ElectronNET.API.xml true + + + + @@ -41,7 +45,7 @@ This package contains the API to access the "native" electron API. - + all runtime; build; native; contentfiles; analyzers diff --git a/ElectronNET.API/PackageIcon.png b/ElectronNET.API/PackageIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..10d55ebe2477afb3d51044c5b642303942e31c1d GIT binary patch literal 39446 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 V=Mq`N85kHCJYD@<);T3K0RX`utw#U= literal 0 HcmV?d00001 diff --git a/ElectronNET.CLI/ElectronNET.CLI.csproj b/ElectronNET.CLI/ElectronNET.CLI.csproj index 6bb1330..d468d5b 100644 --- a/ElectronNET.CLI/ElectronNET.CLI.csproj +++ b/ElectronNET.CLI/ElectronNET.CLI.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp2.2 + netcoreapp3.0 electronize DotnetCliTool @@ -22,7 +22,7 @@ This package contains the dotnet tooling to electronize your application.true electron aspnetcore Changelog: https://github.com/ElectronNET/Electron.NET/blob/master/Changelog.md - https://raw.githubusercontent.com/ElectronNET/Electron.NET/master/assets/images/electron.net-logo-square.png + PackageIcon.png true @@ -38,7 +38,11 @@ This package contains the dotnet tooling to electronize your application. - + + + + + diff --git a/ElectronNET.CLI/PackageIcon.png b/ElectronNET.CLI/PackageIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..10d55ebe2477afb3d51044c5b642303942e31c1d GIT binary patch literal 39446 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 V=Mq`N85kHCJYD@<);T3K0RX`utw#U= literal 0 HcmV?d00001 diff --git a/ElectronNET.WebApp/Controllers/TrayController.cs b/ElectronNET.WebApp/Controllers/TrayController.cs index c57e571..115858a 100644 --- a/ElectronNET.WebApp/Controllers/TrayController.cs +++ b/ElectronNET.WebApp/Controllers/TrayController.cs @@ -8,9 +8,9 @@ namespace ElectronNET.WebApp.Controllers { public class TrayController : Controller { - private readonly IHostingEnvironment _env; + private readonly IWebHostEnvironment _env; - public TrayController(IHostingEnvironment env) + public TrayController(IWebHostEnvironment env) { _env = env; } diff --git a/ElectronNET.WebApp/ElectronHostHook/excelCreator.js b/ElectronNET.WebApp/ElectronHostHook/excelCreator.js index 30e51ef..bab2f86 100644 --- a/ElectronNET.WebApp/ElectronHostHook/excelCreator.js +++ b/ElectronNET.WebApp/ElectronHostHook/excelCreator.js @@ -1,9 +1,10 @@ "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; diff --git a/ElectronNET.WebApp/ElectronHostHook/excelCreator.js.map b/ElectronNET.WebApp/ElectronHostHook/excelCreator.js.map index 3b51186..b75f85d 100644 --- a/ElectronNET.WebApp/ElectronHostHook/excelCreator.js.map +++ b/ElectronNET.WebApp/ElectronHostHook/excelCreator.js.map @@ -1 +1 @@ -{"version":3,"file":"excelCreator.js","sourceRoot":"","sources":["excelCreator.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,iCAAiC;AAGjC,MAAa,YAAY;IACf,MAAM,CAAC,IAAY;;YACrB,MAAM,QAAQ,GAAa,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,SAAS,GAAc,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAC/D,SAAS,CAAC,OAAO,GAAG;gBAChB,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;gBACtC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC1C,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE;aACtE,CAAC;YACF,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9E,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAE9E,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,eAAe,CAAC,CAAC;YAEtD,OAAO,qBAAqB,CAAC;QACjC,CAAC;KAAA;CACJ;AAhBD,oCAgBC"} \ No newline at end of file +{"version":3,"file":"excelCreator.js","sourceRoot":"","sources":["excelCreator.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,iCAAiC;AAGjC,MAAa,YAAY;IACf,MAAM,CAAC,IAAY;;YACrB,MAAM,QAAQ,GAAa,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,SAAS,GAAc,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAC/D,SAAS,CAAC,OAAO,GAAG;gBAChB,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;gBACtC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC1C,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE;aACtE,CAAC;YACF,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9E,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAE9E,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,eAAe,CAAC,CAAC;YAEtD,OAAO,qBAAqB,CAAC;QACjC,CAAC;KAAA;CACJ;AAhBD,oCAgBC"} \ No newline at end of file diff --git a/ElectronNET.WebApp/ElectronHostHook/index.js b/ElectronNET.WebApp/ElectronHostHook/index.js index e919fc9..b6ea713 100644 --- a/ElectronNET.WebApp/ElectronHostHook/index.js +++ b/ElectronNET.WebApp/ElectronHostHook/index.js @@ -1,9 +1,10 @@ "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; diff --git a/ElectronNET.WebApp/ElectronHostHook/index.js.map b/ElectronNET.WebApp/ElectronHostHook/index.js.map index d95024d..258351d 100644 --- a/ElectronNET.WebApp/ElectronHostHook/index.js.map +++ b/ElectronNET.WebApp/ElectronHostHook/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;AAEA,2CAAwC;AACxC,iDAA8C;AAE9C,MAAa,WAAY,SAAQ,qBAAS;IACtC,YAAY,MAAuB,EAAS,GAAiB;QACzD,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QADqB,QAAG,GAAH,GAAG,CAAc;IAE7D,CAAC;IAED,WAAW;QACP,8CAA8C;QAC9C,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAO,IAAI,EAAE,IAAI,EAAE,EAAE;YAC9C,MAAM,YAAY,GAAiB,IAAI,2BAAY,EAAE,CAAC;YACtD,MAAM,MAAM,GAAW,MAAM,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEvD,IAAI,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC,CAAA,CAAC,CAAC;IACP,CAAC;CACJ;AAdD,kCAcC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,2CAAwC;AACxC,iDAA8C;AAE9C,MAAa,WAAY,SAAQ,qBAAS;IACtC,YAAY,MAAuB,EAAS,GAAiB;QACzD,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QADqB,QAAG,GAAH,GAAG,CAAc;IAE7D,CAAC;IAED,WAAW;QACP,8CAA8C;QAC9C,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAO,IAAI,EAAE,IAAI,EAAE,EAAE;YAC9C,MAAM,YAAY,GAAiB,IAAI,2BAAY,EAAE,CAAC;YACtD,MAAM,MAAM,GAAW,MAAM,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEvD,IAAI,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC,CAAA,CAAC,CAAC;IACP,CAAC;CACJ;AAdD,kCAcC"} \ No newline at end of file diff --git a/ElectronNET.WebApp/ElectronNET.WebApp.csproj b/ElectronNET.WebApp/ElectronNET.WebApp.csproj index 84651a2..09fa59e 100644 --- a/ElectronNET.WebApp/ElectronNET.WebApp.csproj +++ b/ElectronNET.WebApp/ElectronNET.WebApp.csproj @@ -1,8 +1,10 @@  - netcoreapp2.2 + netcoreapp3.0 + OutOfProcess + AspNetCoreModule win-x64 - 3.1 + 3.6 @@ -14,11 +16,7 @@ - - - - - + diff --git a/ElectronNET.WebApp/Program.cs b/ElectronNET.WebApp/Program.cs index 42ca51b..5f1de9a 100644 --- a/ElectronNET.WebApp/Program.cs +++ b/ElectronNET.WebApp/Program.cs @@ -1,6 +1,7 @@ using ElectronNET.API; using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Logging; namespace ElectronNET.WebApp { @@ -14,6 +15,7 @@ namespace ElectronNET.WebApp public static IWebHost BuildWebHost(string[] args) { return WebHost.CreateDefaultBuilder(args) + .ConfigureLogging((hostingContext, logging) => { logging.AddConsole(); }) .UseElectron(args) .UseStartup() .Build(); diff --git a/ElectronNET.WebApp/Startup.cs b/ElectronNET.WebApp/Startup.cs index c0dee4f..863b7b6 100644 --- a/ElectronNET.WebApp/Startup.cs +++ b/ElectronNET.WebApp/Startup.cs @@ -5,6 +5,7 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Hosting; namespace ElectronNET.WebApp { @@ -25,10 +26,8 @@ namespace ElectronNET.WebApp } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { - loggerFactory.AddConsole(); - if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); @@ -36,16 +35,14 @@ namespace ElectronNET.WebApp app.UseStaticFiles(); - app.UseMvc(routes => + app.UseRouting(); + + app.UseEndpoints(endpoints => { - routes.MapRoute( - name: "default", - template: "{controller=Home}/{action=Index}/{id?}"); + endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); }); - - - if(HybridSupport.IsElectronActive) + if (HybridSupport.IsElectronActive) { ElectronBootstrap(); } diff --git a/appveyor.yml b/appveyor.yml index 5cb7009..62d4674 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,5 @@ version: 1.0.{build} -image: Visual Studio 2017 +image: Visual Studio 2019 build_script: - cmd: buildAll.cmd pull_requests: From b3bb3ceb978b03ff6b0eac7ec6c383f8d46a7d65 Mon Sep 17 00:00:00 2001 From: Robert Muehsig Date: Thu, 3 Oct 2019 23:07:17 +0200 Subject: [PATCH 08/29] fix build issues --- ElectronNET.CLI/Commands/BuildCommand.cs | 5 +++-- buildAll.cmd | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/ElectronNET.CLI/Commands/BuildCommand.cs b/ElectronNET.CLI/Commands/BuildCommand.cs index ac3019c..2bbdc6c 100644 --- a/ElectronNET.CLI/Commands/BuildCommand.cs +++ b/ElectronNET.CLI/Commands/BuildCommand.cs @@ -108,16 +108,16 @@ namespace ElectronNET.CLI.Commands Console.WriteLine("Start npm install electron-builder..."); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - { // Works proper on Windows... ProcessHelper.CmdExecute("npm install electron-builder --global", tempPath); + } else { // ToDo: find another solution or document it proper // GH Issue https://github.com/electron-userland/electron-prebuilt/issues/48 - Console.WriteLine("Electron Builder - make sure you invoke 'sudo npm install electron-builder --global' at " + tempPath + " manually. Sry."); + Console.WriteLine("Electron Builder - make sure you invoke 'sudo npm install electron-builder --global' & 'sudo npm install typescript --global' at " + tempPath + " manually. Sry."); } Console.WriteLine("ElectronHostHook handling started..."); @@ -130,6 +130,7 @@ namespace ElectronNET.CLI.Commands DirectoryCopy.Do(electronhosthookDir, hosthookDir, true, new List() { "node_modules" }); Console.WriteLine("Start npm install for hosthooks..."); + ProcessHelper.CmdExecute("npm install typescript --global", tempPath); ProcessHelper.CmdExecute("npm install --production", hosthookDir); // ToDo: Global TypeScript installation is needed for ElectronHostHook diff --git a/buildAll.cmd b/buildAll.cmd index b546cab..b42a807 100755 --- a/buildAll.cmd +++ b/buildAll.cmd @@ -22,7 +22,7 @@ dotnet tool uninstall ElectronNET.CLI -g dotnet tool install ElectronNET.CLI -g echo "/target xxx (dev-build)" -electronize build /target custom win7-x86;win32 /dotnet-configuration Debug /electron-arch ia32 /electron-params "--prune=true " +electronize build /target custom win7-x86;win /dotnet-configuration Debug /electron-arch ia32 /electron-params " " echo "/target win (dev-build)" electronize build /target win @@ -30,8 +30,8 @@ electronize build /target win echo "/target linux (dev-build)" electronize build /target linux -echo "/target custom win7-x86;win32 (dev-build)" -electronize build /target custom win7-x86;win32 +echo "/target custom win7-x86;win (dev-build)" +electronize build /target custom win7-x86;win :: Be aware, that for non-electronnet-dev environments the correct From 5cd11a8110160df97bd0c1b74b43477e324eedba Mon Sep 17 00:00:00 2001 From: Robert Muehsig Date: Thu, 3 Oct 2019 23:36:21 +0200 Subject: [PATCH 09/29] build --- ElectronNET.API/ElectronNET.API.csproj | 2 +- ElectronNET.CLI/Commands/BuildCommand.cs | 5 ++--- ElectronNET.CLI/Commands/StartElectronCommand.cs | 3 ++- ElectronNET.CLI/ElectronNET.CLI.csproj | 3 ++- buildAll.cmd | 8 ++++---- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/ElectronNET.API/ElectronNET.API.csproj b/ElectronNET.API/ElectronNET.API.csproj index ffdea36..4a33f6a 100644 --- a/ElectronNET.API/ElectronNET.API.csproj +++ b/ElectronNET.API/ElectronNET.API.csproj @@ -18,7 +18,7 @@ This package contains the API to access the "native" electron API. electron aspnetcore Changelog: https://github.com/ElectronNET/Electron.NET/blob/master/Changelog.md PackageIcon.png - 1.0.0.0 + 99.0.0.0 diff --git a/ElectronNET.CLI/Commands/BuildCommand.cs b/ElectronNET.CLI/Commands/BuildCommand.cs index 2bbdc6c..d9eb03a 100644 --- a/ElectronNET.CLI/Commands/BuildCommand.cs +++ b/ElectronNET.CLI/Commands/BuildCommand.cs @@ -111,7 +111,6 @@ namespace ElectronNET.CLI.Commands { // Works proper on Windows... ProcessHelper.CmdExecute("npm install electron-builder --global", tempPath); - } else { @@ -129,8 +128,8 @@ namespace ElectronNET.CLI.Commands string hosthookDir = Path.Combine(tempPath, "ElectronHostHook"); DirectoryCopy.Do(electronhosthookDir, hosthookDir, true, new List() { "node_modules" }); - Console.WriteLine("Start npm install for hosthooks..."); - ProcessHelper.CmdExecute("npm install typescript --global", tempPath); + Console.WriteLine("Start npm install for typescript & hosthooks..."); + ProcessHelper.CmdExecute("npm install -g typescript", hosthookDir); ProcessHelper.CmdExecute("npm install --production", hosthookDir); // ToDo: Global TypeScript installation is needed for ElectronHostHook diff --git a/ElectronNET.CLI/Commands/StartElectronCommand.cs b/ElectronNET.CLI/Commands/StartElectronCommand.cs index ee661f2..432ffb1 100644 --- a/ElectronNET.CLI/Commands/StartElectronCommand.cs +++ b/ElectronNET.CLI/Commands/StartElectronCommand.cs @@ -76,7 +76,8 @@ namespace ElectronNET.CLI.Commands string hosthookDir = Path.Combine(tempPath, "ElectronHostHook"); DirectoryCopy.Do(electronhosthookDir, hosthookDir, true, new List() { "node_modules" }); - Console.WriteLine("Start npm install for hosthooks..."); + Console.WriteLine("Start npm install for typescript & hosthooks..."); + ProcessHelper.CmdExecute("npm install -g typescript", hosthookDir); ProcessHelper.CmdExecute("npm install", hosthookDir); string tscPath = Path.Combine(tempPath, "node_modules", ".bin"); diff --git a/ElectronNET.CLI/ElectronNET.CLI.csproj b/ElectronNET.CLI/ElectronNET.CLI.csproj index d468d5b..6258c6a 100644 --- a/ElectronNET.CLI/ElectronNET.CLI.csproj +++ b/ElectronNET.CLI/ElectronNET.CLI.csproj @@ -9,7 +9,8 @@ true ..\artifacts ElectronNET.CLI - 1.0.0.0 + + 99.0.0.0 Gregor Biswanger, Robert Muehsig Electron.NET diff --git a/buildAll.cmd b/buildAll.cmd index b42a807..04a7839 100755 --- a/buildAll.cmd +++ b/buildAll.cmd @@ -22,16 +22,16 @@ dotnet tool uninstall ElectronNET.CLI -g dotnet tool install ElectronNET.CLI -g echo "/target xxx (dev-build)" -electronize build /target custom win7-x86;win /dotnet-configuration Debug /electron-arch ia32 /electron-params " " +electronize build /target custom win7-x86;win /dotnet-configuration Debug /electron-arch ia32 /electron-params "--publish never" echo "/target win (dev-build)" -electronize build /target win +electronize build /target win /electron-params "--publish never" echo "/target linux (dev-build)" -electronize build /target linux +electronize build /target linux /electron-params "--publish never" echo "/target custom win7-x86;win (dev-build)" -electronize build /target custom win7-x86;win +electronize build /target custom win7-x86;win /electron-params "--publish never" :: Be aware, that for non-electronnet-dev environments the correct From f1eaffb2031c62828651e0bbc80aa3aa60ca4dc0 Mon Sep 17 00:00:00 2001 From: Robert Muehsig Date: Mon, 7 Oct 2019 22:48:49 +0200 Subject: [PATCH 10/29] update github sourcelink and framework reference --- ElectronNET.API/ElectronNET.API.csproj | 8 +++++--- ElectronNET.CLI/ElectronNET.CLI.csproj | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ElectronNET.API/ElectronNET.API.csproj b/ElectronNET.API/ElectronNET.API.csproj index 4a33f6a..0fa7fdd 100644 --- a/ElectronNET.API/ElectronNET.API.csproj +++ b/ElectronNET.API/ElectronNET.API.csproj @@ -35,7 +35,7 @@ This package contains the API to access the "native" electron API. - + @@ -45,8 +45,10 @@ This package contains the API to access the "native" electron API. - - + + + + all runtime; build; native; contentfiles; analyzers diff --git a/ElectronNET.CLI/ElectronNET.CLI.csproj b/ElectronNET.CLI/ElectronNET.CLI.csproj index 6258c6a..2132de6 100644 --- a/ElectronNET.CLI/ElectronNET.CLI.csproj +++ b/ElectronNET.CLI/ElectronNET.CLI.csproj @@ -101,7 +101,7 @@ This package contains the dotnet tooling to electronize your application. - + all runtime; build; native; contentfiles; analyzers From 25f35e34fef8392d43e6d176f927fa1c174b781f Mon Sep 17 00:00:00 2001 From: Robert Muehsig Date: Mon, 7 Oct 2019 22:53:50 +0200 Subject: [PATCH 11/29] global npm outside of build commands --- ElectronNET.CLI/Commands/BuildCommand.cs | 20 +------------------- buildAll.cmd | 5 +++++ 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/ElectronNET.CLI/Commands/BuildCommand.cs b/ElectronNET.CLI/Commands/BuildCommand.cs index d9eb03a..7f89e45 100644 --- a/ElectronNET.CLI/Commands/BuildCommand.cs +++ b/ElectronNET.CLI/Commands/BuildCommand.cs @@ -105,20 +105,6 @@ namespace ElectronNET.CLI.Commands Console.WriteLine("Start npm install..."); ProcessHelper.CmdExecute("npm install --production", tempPath); - Console.WriteLine("Start npm install electron-builder..."); - - if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - { - // Works proper on Windows... - ProcessHelper.CmdExecute("npm install electron-builder --global", tempPath); - } - else - { - // ToDo: find another solution or document it proper - // GH Issue https://github.com/electron-userland/electron-prebuilt/issues/48 - Console.WriteLine("Electron Builder - make sure you invoke 'sudo npm install electron-builder --global' & 'sudo npm install typescript --global' at " + tempPath + " manually. Sry."); - } - Console.WriteLine("ElectronHostHook handling started..."); string electronhosthookDir = Path.Combine(Directory.GetCurrentDirectory(), "ElectronHostHook"); @@ -128,13 +114,9 @@ namespace ElectronNET.CLI.Commands string hosthookDir = Path.Combine(tempPath, "ElectronHostHook"); DirectoryCopy.Do(electronhosthookDir, hosthookDir, true, new List() { "node_modules" }); - Console.WriteLine("Start npm install for typescript & hosthooks..."); - ProcessHelper.CmdExecute("npm install -g typescript", hosthookDir); + Console.WriteLine("Start npm install for hosthooks..."); ProcessHelper.CmdExecute("npm install --production", hosthookDir); - // ToDo: Global TypeScript installation is needed for ElectronHostHook - //string tscPath = Path.Combine(tempPath, "node_modules", ".bin"); - // ToDo: Not sure if this runs under linux/macos ProcessHelper.CmdExecute(@"tsc -p . --sourceMap false", hosthookDir); } diff --git a/buildAll.cmd b/buildAll.cmd index 04a7839..536f569 100755 --- a/buildAll.cmd +++ b/buildAll.cmd @@ -1,4 +1,9 @@ echo "Start building Electron.NET dev stack..." + +echo "Install NPM dependencies: Typescript and Bundler" +npm install typescript --global +npm install electron-builder --global + echo "Restore & Build API" cd ElectronNet.API dotnet restore From 8dd5d1561ac8bd8f1de0907312406d0dd0227292 Mon Sep 17 00:00:00 2001 From: Robert Muehsig Date: Mon, 7 Oct 2019 23:16:08 +0200 Subject: [PATCH 12/29] test --- appveyor.yml | 2 ++ buildAll.cmd | 4 ---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 62d4674..33f8eb9 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,6 +1,8 @@ version: 1.0.{build} image: Visual Studio 2019 build_script: +- cmd: npm install typescript --global +- cmd: npm install electron-builder --global - cmd: buildAll.cmd pull_requests: do_not_increment_build_number: true diff --git a/buildAll.cmd b/buildAll.cmd index 536f569..a981133 100755 --- a/buildAll.cmd +++ b/buildAll.cmd @@ -1,9 +1,5 @@ echo "Start building Electron.NET dev stack..." -echo "Install NPM dependencies: Typescript and Bundler" -npm install typescript --global -npm install electron-builder --global - echo "Restore & Build API" cd ElectronNet.API dotnet restore From cafffde339fce3f4442102daebd8caed6e82339b Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Mon, 14 Oct 2019 18:30:41 +0300 Subject: [PATCH 13/29] Change test application initialization procedure. It essentially the same as before, but MVC test tooling expect Program to have CreateWebHostBuilder. I referer to ability to seamlessly use WebApplicationFactory I understand that story for testing Electron application will be not easy as it is, but this is allow better defaults for testing web applications which can be run in hybrid mode. --- ElectronNET.WebApp/Program.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/ElectronNET.WebApp/Program.cs b/ElectronNET.WebApp/Program.cs index 42ca51b..d236088 100644 --- a/ElectronNET.WebApp/Program.cs +++ b/ElectronNET.WebApp/Program.cs @@ -8,15 +8,14 @@ namespace ElectronNET.WebApp { public static void Main(string[] args) { - BuildWebHost(args).Run(); + CreateWebHostBuilder(args).Build().Run(); } - public static IWebHost BuildWebHost(string[] args) + public static IWebHostBuilder CreateWebHostBuilder(string[] args) { return WebHost.CreateDefaultBuilder(args) .UseElectron(args) - .UseStartup() - .Build(); + .UseStartup(); } } } From b7e7ace6f360e4c670cfc950f92e31b58873e8ca Mon Sep 17 00:00:00 2001 From: Robert Muehsig Date: Mon, 14 Oct 2019 22:44:30 +0200 Subject: [PATCH 14/29] fix build issues on windows --- ElectronNET.CLI/Commands/BuildCommand.cs | 2 +- buildAll.cmd | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ElectronNET.CLI/Commands/BuildCommand.cs b/ElectronNET.CLI/Commands/BuildCommand.cs index 7f89e45..a4d5416 100644 --- a/ElectronNET.CLI/Commands/BuildCommand.cs +++ b/ElectronNET.CLI/Commands/BuildCommand.cs @@ -115,7 +115,7 @@ namespace ElectronNET.CLI.Commands DirectoryCopy.Do(electronhosthookDir, hosthookDir, true, new List() { "node_modules" }); Console.WriteLine("Start npm install for hosthooks..."); - ProcessHelper.CmdExecute("npm install --production", hosthookDir); + ProcessHelper.CmdExecute("npm install", hosthookDir); // ToDo: Not sure if this runs under linux/macos ProcessHelper.CmdExecute(@"tsc -p . --sourceMap false", hosthookDir); diff --git a/buildAll.cmd b/buildAll.cmd index a981133..6746420 100755 --- a/buildAll.cmd +++ b/buildAll.cmd @@ -28,9 +28,6 @@ electronize build /target custom win7-x86;win /dotnet-configuration Debug /elect echo "/target win (dev-build)" electronize build /target win /electron-params "--publish never" -echo "/target linux (dev-build)" -electronize build /target linux /electron-params "--publish never" - echo "/target custom win7-x86;win (dev-build)" electronize build /target custom win7-x86;win /electron-params "--publish never" @@ -41,3 +38,8 @@ electronize build /target custom win7-x86;win /electron-params "--publish never" :: Not supported on Windows Systems, because of SymLinks... :: echo "/target osx" :: dotnet electronize build /target osx + +:: Linux and Mac is not supported on with this buildAll.cmd test file, because the electron bundler does some strange stuff +:: Help welcome! +:: echo "/target linux (dev-build)" +:: electronize build /target linux /electron-params "--publish never" From 54ff11acf5f7c18cf5769b00b2733b4cf9bca580 Mon Sep 17 00:00:00 2001 From: Robert Muehsig Date: Tue, 15 Oct 2019 00:09:15 +0200 Subject: [PATCH 15/29] beta... --- buildReleaseNuGetPackages.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildReleaseNuGetPackages.cmd b/buildReleaseNuGetPackages.cmd index 5b2200d..5413b38 100644 --- a/buildReleaseNuGetPackages.cmd +++ b/buildReleaseNuGetPackages.cmd @@ -1,4 +1,4 @@ -set ENETVER=5.22.14 +set ENETVER=5.30.14-beta echo "Start building Electron.NET dev stack..." echo "Restore & Build API" cd ElectronNet.API From 14d02706c0a20b62cefb2f6c3c7eb6725e1282f2 Mon Sep 17 00:00:00 2001 From: Robert Muehsig Date: Tue, 15 Oct 2019 00:13:22 +0200 Subject: [PATCH 16/29] small changes for version stuff --- README.md | 2 +- buildReleaseNuGetPackages.cmd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 61d3a6e..34d02ff 100644 --- a/README.md +++ b/README.md @@ -161,7 +161,7 @@ The end result should be an electron app under your __/bin/desktop__ folder. # Working with this Repo -This repository consists of the main parts (API & CLI) and it's own "playground" ASP.NET Core application. Both main parts produce local NuGet packages, that are versioned with 1.0.0. The first thing you will need is to run one of the buildAll scripts (.cmd for Windows, the other for macOS/Linux). +This repository consists of the main parts (API & CLI) and it's own "playground" ASP.NET Core application. Both main parts produce local NuGet packages, that are versioned with 99.0.0. The first thing you will need is to run one of the buildAll scripts (.cmd for Windows, the other for macOS/Linux). If you look for pure __[demo projects](https://github.com/ElectronNET)__ checkout the other repositories. diff --git a/buildReleaseNuGetPackages.cmd b/buildReleaseNuGetPackages.cmd index 5413b38..fd1a0bc 100644 --- a/buildReleaseNuGetPackages.cmd +++ b/buildReleaseNuGetPackages.cmd @@ -1,4 +1,4 @@ -set ENETVER=5.30.14-beta +set ENETVER=5.30.0-beta echo "Start building Electron.NET dev stack..." echo "Restore & Build API" cd ElectronNet.API From f64b780a2791a7ef89b31d95ad4607158f8920fc Mon Sep 17 00:00:00 2001 From: Robert Muehsig Date: Tue, 15 Oct 2019 00:21:36 +0200 Subject: [PATCH 17/29] documentation and one minor adjustment --- ElectronNET.CLI/Commands/StartElectronCommand.cs | 1 - README.md | 8 +++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ElectronNET.CLI/Commands/StartElectronCommand.cs b/ElectronNET.CLI/Commands/StartElectronCommand.cs index 432ffb1..25835c2 100644 --- a/ElectronNET.CLI/Commands/StartElectronCommand.cs +++ b/ElectronNET.CLI/Commands/StartElectronCommand.cs @@ -77,7 +77,6 @@ namespace ElectronNET.CLI.Commands DirectoryCopy.Do(electronhosthookDir, hosthookDir, true, new List() { "node_modules" }); Console.WriteLine("Start npm install for typescript & hosthooks..."); - ProcessHelper.CmdExecute("npm install -g typescript", hosthookDir); ProcessHelper.CmdExecute("npm install", hosthookDir); string tscPath = Path.Combine(tempPath, "node_modules", ".bin"); diff --git a/README.md b/README.md index 34d02ff..a905b07 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,13 @@ Well... there are lots of different approaches how to get a X-plat desktop app r # Requirements to run: -The current Electron.NET CLI builds Windows/macOS/Linux binaries. Our API uses .NET Core 2.2, so our minimum base OS is the same as [.NET Core 2.2](https://github.com/dotnet/core/blob/master/release-notes/2.2/2.2-supported-os.md). +The current Electron.NET CLI builds Windows/macOS/Linux binaries. Our API uses .NET Core 3.0, so our minimum base OS is the same as [.NET Core 3.0](https://github.com/dotnet/core/blob/master/release-notes/3.0/3.0-supported-os.md). + +Also you should have installed: + +* npm +* npm install -g typescript +* npm install -g electron-builder # Community From aa98b85f18016c5e78e2ed1d69e4e89dbfbcd60f Mon Sep 17 00:00:00 2001 From: tadic-luka Date: Tue, 22 Oct 2019 10:48:55 +0200 Subject: [PATCH 18/29] Update README.md EnableEndpointRouting should be set to false. Otherwise people will get error: Application startup exception: System.InvalidOperationException: Endpoint Routing does not support 'IApplicationBuilder.UseMvc(...)'. To use 'IApplicationBuilder.UseMvc' set 'MvcOptions.EnableEndpointRouting = false' inside 'ConfigureServices(...). The solution is even proposed in stack trace. Issue was opened on https://github.com/aspnet/AspNetCore/issues/9542 and it is explained there what should be done. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index a905b07..f04b9a1 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,11 @@ public static IWebHost BuildWebHost(string[] args) Open the Electron Window in the Startup.cs file: ```csharp +public void ConfigureServices(IServiceCollection services) +{ + services.AddMvc(option => option.EnableEndpointRouting = false); +} + public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) From b6fb1cb0bfaf2c2ef63278ffb97f72f4278991c3 Mon Sep 17 00:00:00 2001 From: Jim Buck Date: Tue, 22 Oct 2019 23:59:47 -0400 Subject: [PATCH 19/29] Converted global npm dependencies to use npx. --- .travis.yml | 1 - ElectronNET.CLI/Commands/AddCommand.cs | 3 +-- ElectronNET.CLI/Commands/BuildCommand.cs | 4 ++-- ElectronNET.CLI/Commands/StartElectronCommand.cs | 3 +-- README.md | 8 -------- appveyor.yml | 2 -- 6 files changed, 4 insertions(+), 17 deletions(-) diff --git a/.travis.yml b/.travis.yml index cdaa7ea..38db3cc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,5 @@ dist: xenial dotnet: 3.0 before_script: - export PATH="$PATH:/home/travis/.dotnet/tools" - - npm install electron-packager --global script: - ./buildAll.sh diff --git a/ElectronNET.CLI/Commands/AddCommand.cs b/ElectronNET.CLI/Commands/AddCommand.cs index 065850a..8168d6d 100644 --- a/ElectronNET.CLI/Commands/AddCommand.cs +++ b/ElectronNET.CLI/Commands/AddCommand.cs @@ -72,9 +72,8 @@ namespace ElectronNET.CLI.Commands ProcessHelper.CmdExecute("npm install", targetFilePath); // run typescript compiler - string tscPath = Path.Combine(targetFilePath, "node_modules", ".bin"); // ToDo: Not sure if this runs under linux/macos - ProcessHelper.CmdExecute(@"tsc -p ../../", tscPath); + ProcessHelper.CmdExecute(@"npx tsc -p ../../", targetFilePath); // search .csproj Console.WriteLine($"Search your .csproj to add configure CopyToPublishDirectory to 'Never'"); diff --git a/ElectronNET.CLI/Commands/BuildCommand.cs b/ElectronNET.CLI/Commands/BuildCommand.cs index a4d5416..ded988c 100644 --- a/ElectronNET.CLI/Commands/BuildCommand.cs +++ b/ElectronNET.CLI/Commands/BuildCommand.cs @@ -118,7 +118,7 @@ namespace ElectronNET.CLI.Commands ProcessHelper.CmdExecute("npm install", hosthookDir); // ToDo: Not sure if this runs under linux/macos - ProcessHelper.CmdExecute(@"tsc -p . --sourceMap false", hosthookDir); + ProcessHelper.CmdExecute(@"npx tsc -p . --sourceMap false", hosthookDir); } Console.WriteLine("Build Electron Desktop Application..."); @@ -153,7 +153,7 @@ namespace ElectronNET.CLI.Commands ProcessHelper.CmdExecute($"node build-helper.js", tempPath); Console.WriteLine($"Package Electron App for Platform {platformInfo.ElectronPackerPlatform}..."); - ProcessHelper.CmdExecute($"electron-builder . --config=./bin/electron-builder.json --{platformInfo.ElectronPackerPlatform} --{electronArch} -c.electronVersion=5.0.8 {electronParams}", tempPath); + ProcessHelper.CmdExecute($"npx electron-builder . --config=./bin/electron-builder.json --{platformInfo.ElectronPackerPlatform} --{electronArch} -c.electronVersion=5.0.8 {electronParams}", tempPath); Console.WriteLine("... done"); diff --git a/ElectronNET.CLI/Commands/StartElectronCommand.cs b/ElectronNET.CLI/Commands/StartElectronCommand.cs index 25835c2..de27180 100644 --- a/ElectronNET.CLI/Commands/StartElectronCommand.cs +++ b/ElectronNET.CLI/Commands/StartElectronCommand.cs @@ -79,9 +79,8 @@ namespace ElectronNET.CLI.Commands Console.WriteLine("Start npm install for typescript & hosthooks..."); ProcessHelper.CmdExecute("npm install", hosthookDir); - string tscPath = Path.Combine(tempPath, "node_modules", ".bin"); // ToDo: Not sure if this runs under linux/macos - ProcessHelper.CmdExecute(@"tsc -p ../../ElectronHostHook", tscPath); + ProcessHelper.CmdExecute(@"npx tsc -p ../../ElectronHostHook", tempPath); } string path = Path.Combine(tempPath, "node_modules", ".bin"); diff --git a/README.md b/README.md index a905b07..4fe3ee0 100644 --- a/README.md +++ b/README.md @@ -31,8 +31,6 @@ The current Electron.NET CLI builds Windows/macOS/Linux binaries. Our API uses . Also you should have installed: * npm -* npm install -g typescript -* npm install -g electron-builder # Community @@ -104,12 +102,6 @@ To start the application make sure you have installed the "[ElectronNET.CLI](htt dotnet tool install ElectronNET.CLI -g ``` -* Make sure you have __node.js v8.6.0__ and on __macOS/Linux__ the electron-builder installed! - -``` -sudo npm install electron-builder --global -``` - At the first time, you need an Electron.NET project initialization. Type the following command in your ASP.NET Core folder: ``` diff --git a/appveyor.yml b/appveyor.yml index 33f8eb9..62d4674 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,8 +1,6 @@ version: 1.0.{build} image: Visual Studio 2019 build_script: -- cmd: npm install typescript --global -- cmd: npm install electron-builder --global - cmd: buildAll.cmd pull_requests: do_not_increment_build_number: true From 7f92ffa20e25abd22738525fc0331342a210f9f9 Mon Sep 17 00:00:00 2001 From: Robert Muehsig Date: Tue, 29 Oct 2019 00:33:03 +0100 Subject: [PATCH 20/29] 5.30.1 release --- Changelog.md | 19 +++++++++++++------ buildReleaseNuGetPackages.cmd | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Changelog.md b/Changelog.md index c89e1b0..1588b23 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,13 +1,20 @@ # Not released -# 5.22.15 - -ElectronNET.API: - -* New Feature: Add BrowserWindow.RemoveMenu() (thanks [hack2root](https://github.com/hack2root)) - # Released +# 5.30.1 + +ElectronNET.CLI: + +* Move to .NET Core 3.0 +* Use npm npx instead of global installations (thanks [jimbuck](https://github.com/jimbuck)) + +ElectronNET.API: + +* Move to .NET Core 3.0 +* New Feature: Add BrowserWindow.RemoveMenu() (thanks [hack2root](https://github.com/hack2root)) + +Thanks to [MaherJendoubi](https://github.com/MaherJendoubi), [kant2002](https://github.com/kant2002), [raz-canva](https://github.com/raz-canva) and [Daddoon](https://github.com/Daddoon) to give .NET Core 3.0 feedback! # 5.22.14 ElectronNET.CLI: diff --git a/buildReleaseNuGetPackages.cmd b/buildReleaseNuGetPackages.cmd index fd1a0bc..a3cb1bb 100644 --- a/buildReleaseNuGetPackages.cmd +++ b/buildReleaseNuGetPackages.cmd @@ -1,4 +1,4 @@ -set ENETVER=5.30.0-beta +set ENETVER=5.30.1 echo "Start building Electron.NET dev stack..." echo "Restore & Build API" cd ElectronNet.API From 3dda18ac9a89c803a7a6c46f0c29fb00b8fc88db Mon Sep 17 00:00:00 2001 From: Markus Hoffmann Date: Sat, 2 Nov 2019 13:31:18 +0100 Subject: [PATCH 21/29] use Electron Port as base --- ElectronNET.Host/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ElectronNET.Host/main.js b/ElectronNET.Host/main.js index 397dd44..244ce74 100644 --- a/ElectronNET.Host/main.js +++ b/ElectronNET.Host/main.js @@ -149,7 +149,7 @@ function startAspCoreBackend(electronPort) { startBackend(manifestJsonFile.aspCoreBackendPort) } else { // hostname needs to be localhost, otherwise Windows Firewall will be triggered. - portscanner.findAPortNotInUse(8000, 65535, 'localhost', function (error, electronWebPort) { + portscanner.findAPortNotInUse(electronPort + 1, 65535, 'localhost', function (error, electronWebPort) { startBackend(electronWebPort); }); } From 364db7dc259183392a3dc9dd6cbfe312842ac7da Mon Sep 17 00:00:00 2001 From: Jamie Brynes Date: Sat, 16 Nov 2019 15:13:02 +0000 Subject: [PATCH 22/29] check for arg --- ElectronNET.CLI/Commands/BuildCommand.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ElectronNET.CLI/Commands/BuildCommand.cs b/ElectronNET.CLI/Commands/BuildCommand.cs index ded988c..7966752 100644 --- a/ElectronNET.CLI/Commands/BuildCommand.cs +++ b/ElectronNET.CLI/Commands/BuildCommand.cs @@ -50,6 +50,13 @@ namespace ElectronNET.CLI.Commands SimpleCommandLineParser parser = new SimpleCommandLineParser(); parser.Parse(_args); + if (!parser.Arguments.ContainsKey(_paramTarget)) + { + Console.WriteLine($"Error: missing '{_paramTarget}' argument."); + Console.WriteLine(COMMAND_ARGUMENTS); + return false; + } + var desiredPlatform = parser.Arguments[_paramTarget][0]; string specifiedFromCustom = string.Empty; if (desiredPlatform == "custom" && parser.Arguments[_paramTarget].Length > 1) From 4014ef7a4dd6ab5a0c37adef1135793db76b1817 Mon Sep 17 00:00:00 2001 From: Jamie Brynes Date: Sat, 16 Nov 2019 15:17:55 +0000 Subject: [PATCH 23/29] changelog; --- Changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Changelog.md b/Changelog.md index 1588b23..6d9396b 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,9 @@ # Not released +ElectronNET.CLI + +* Fixed a bug where `electronize build` with no arguments would throw a `KeyNotFoundException`. + # Released # 5.30.1 From 72d1f4b2b926fbb9c23b0cae621d98d22eec3d53 Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Mon, 14 Oct 2019 23:44:25 +0300 Subject: [PATCH 24/29] Cleanup project with regard to documentation Was inspired when reviewing .NET Core 3 support --- ElectronNET.API/ElectronNET.API.csproj | 14 +------------- ElectronNET.CLI/ElectronNET.CLI.csproj | 10 +--------- 2 files changed, 2 insertions(+), 22 deletions(-) diff --git a/ElectronNET.API/ElectronNET.API.csproj b/ElectronNET.API/ElectronNET.API.csproj index 0fa7fdd..5d54631 100644 --- a/ElectronNET.API/ElectronNET.API.csproj +++ b/ElectronNET.API/ElectronNET.API.csproj @@ -19,19 +19,7 @@ This package contains the API to access the "native" electron API. Changelog: https://github.com/ElectronNET/Electron.NET/blob/master/Changelog.md PackageIcon.png 99.0.0.0 - - - - bin\Debug\netcoreapp2.0\ElectronNET.API.xml - - - - bin\Release\netcoreapp3.0\ElectronNET.API.xml - - - - bin\Debug\netcoreapp3.0\ElectronNET.API.xml - true + true diff --git a/ElectronNET.CLI/ElectronNET.CLI.csproj b/ElectronNET.CLI/ElectronNET.CLI.csproj index 2132de6..13b8df5 100644 --- a/ElectronNET.CLI/ElectronNET.CLI.csproj +++ b/ElectronNET.CLI/ElectronNET.CLI.csproj @@ -31,15 +31,7 @@ This package contains the dotnet tooling to electronize your application. - - - - - - - - - + From f5e2abfdb4f5a7cf85259aef8805104c597604b9 Mon Sep 17 00:00:00 2001 From: Gregor Biswanger Date: Thu, 28 Nov 2019 22:34:49 +0100 Subject: [PATCH 25/29] Change to Electron version 7, fix some breaking changes. --- ElectronNET.API/Entities/HighlightMode.cs | 33 - ElectronNET.API/Tray.cs | 12 - ElectronNET.Host/api/app.js | 24 +- ElectronNET.Host/api/app.js.map | 2 +- ElectronNET.Host/api/app.ts | 16 +- ElectronNET.Host/api/autoUpdater.js | 13 +- ElectronNET.Host/api/autoUpdater.js.map | 2 +- ElectronNET.Host/api/browserWindows.js | 455 +++--- ElectronNET.Host/api/browserWindows.js.map | 2 +- ElectronNET.Host/api/browserWindows.ts | 3 +- ElectronNET.Host/api/dialog.js | 50 +- ElectronNET.Host/api/dialog.js.map | 2 +- ElectronNET.Host/api/dialog.ts | 37 +- ElectronNET.Host/api/notification.js | 2 +- ElectronNET.Host/api/notification.js.map | 2 +- ElectronNET.Host/api/notification.ts | 2 +- ElectronNET.Host/api/tray.js | 6 - ElectronNET.Host/api/tray.js.map | 2 +- ElectronNET.Host/api/tray.ts | 7 - ElectronNET.Host/api/webContents.js | 110 +- ElectronNET.Host/api/webContents.js.map | 2 +- ElectronNET.Host/api/webContents.ts | 92 +- ElectronNET.Host/package-lock.json | 1540 +++++++------------- ElectronNET.Host/package.json | 6 +- 24 files changed, 929 insertions(+), 1493 deletions(-) delete mode 100644 ElectronNET.API/Entities/HighlightMode.cs diff --git a/ElectronNET.API/Entities/HighlightMode.cs b/ElectronNET.API/Entities/HighlightMode.cs deleted file mode 100644 index cc44e26..0000000 --- a/ElectronNET.API/Entities/HighlightMode.cs +++ /dev/null @@ -1,33 +0,0 @@ -namespace ElectronNET.API.Entities -{ - /// - /// - /// - public enum HighlightMode - { - /// - /// Highlight the tray icon when it is clicked and also when its context menu is open. This is the default. - /// - selection, - - /// - /// Always highlight the tray icon. - /// - always, - - /// - /// Never highlight the tray icon. - /// - never, - - /// - /// Activate highlight the tray icon. - /// - on, - - /// - /// Deactivate highlight the tray icon. - /// - off - } -} \ No newline at end of file diff --git a/ElectronNET.API/Tray.cs b/ElectronNET.API/Tray.cs index ebad1ee..d4170c2 100644 --- a/ElectronNET.API/Tray.cs +++ b/ElectronNET.API/Tray.cs @@ -307,18 +307,6 @@ namespace ElectronNET.API BridgeConnector.Socket.Emit("tray-setTitle", title); } - /// - /// macOS: Sets when the tray’s icon background becomes highlighted (in blue). - /// - /// Note: You can use highlightMode with a BrowserWindow by toggling between - /// 'never' and 'always' modes when the window visibility changes. - /// - /// - public void SetHighlightMode(HighlightMode highlightMode) - { - BridgeConnector.Socket.Emit("tray-setHighlightMode", highlightMode.ToString()); - } - /// /// Windows: Displays a tray balloon. /// diff --git a/ElectronNET.Host/api/app.js b/ElectronNET.Host/api/app.js index 34896fa..f00d20d 100644 --- a/ElectronNET.Host/api/app.js +++ b/ElectronNET.Host/api/app.js @@ -1,4 +1,13 @@ "use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; let isQuitWindowAllClosed = true, electronSocket; module.exports = (socket, app) => { electronSocket = socket; @@ -91,18 +100,17 @@ module.exports = (socket, app) => { // nativeImage[indexCount] = nativeImage; // } // } - socket.on('appGetFileIcon', (path, options) => { + socket.on('appGetFileIcon', (path, options) => __awaiter(void 0, void 0, void 0, function* () { + let error = {}; if (options) { - app.getFileIcon(path, options, (error, nativeImage) => { - electronSocket.emit('appGetFileIconCompleted', [error, nativeImage]); - }); + const nativeImage = yield app.getFileIcon(path, options).catch((errorFileIcon) => error = errorFileIcon); + electronSocket.emit('appGetFileIconCompleted', [error, nativeImage]); } else { - app.getFileIcon(path, (error, nativeImage) => { - electronSocket.emit('appGetFileIconCompleted', [error, nativeImage]); - }); + const nativeImage = yield app.getFileIcon(path).catch((errorFileIcon) => error = errorFileIcon); + electronSocket.emit('appGetFileIconCompleted', [error, nativeImage]); } - }); + })); socket.on('appSetPath', (name, path) => { app.setPath(name, path); }); diff --git a/ElectronNET.Host/api/app.js.map b/ElectronNET.Host/api/app.js.map index 5796360..cc80a34 100644 --- a/ElectronNET.Host/api/app.js.map +++ b/ElectronNET.Host/api/app.js.map @@ -1 +1 @@ -{"version":3,"file":"app.js","sourceRoot":"","sources":["app.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"app.js","sourceRoot":"","sources":["app.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,IAAI,qBAAqB,GAAG,IAAI,EAAE,cAAc,CAAC;AACjD,iBAAS,CAAC,MAAuB,EAAE,GAAiB,EAAE,EAAE;IACpD,cAAc,GAAG,MAAM,CAAC;IACxB,oCAAoC;IACpC,GAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC7B,4DAA4D;QAC5D,8DAA8D;QAC9D,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;YAC7B,qBAAqB,EAAE;YACvB,GAAG,CAAC,IAAI,EAAE,CAAC;SACd;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,kCAAkC,EAAE,CAAC,IAAI,EAAE,EAAE;QACnD,qBAAqB,GAAG,IAAI,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,sCAAsC,EAAE,CAAC,EAAE,EAAE,EAAE;QACrD,GAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC7B,cAAc,CAAC,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,gCAAgC,EAAE,CAAC,EAAE,EAAE,EAAE;QAC/C,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,cAAc,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,8BAA8B,EAAE,CAAC,EAAE,EAAE,EAAE;QAC7C,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,cAAc,CAAC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,wCAAwC,EAAE,CAAC,EAAE,EAAE,EAAE;QACvD,GAAG,CAAC,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC/B,cAAc,CAAC,IAAI,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yCAAyC,EAAE,CAAC,EAAE,EAAE,EAAE;QACxD,GAAG,CAAC,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAChC,cAAc,CAAC,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,2CAA2C,EAAE,CAAC,EAAE,EAAE,EAAE;QAC1D,GAAG,CAAC,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAClC,cAAc,CAAC,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yCAAyC,EAAE,CAAC,EAAE,EAAE,EAAE;QACxD,GAAG,CAAC,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAChC,cAAc,CAAC,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,kDAAkD,EAAE,CAAC,EAAE,EAAE,EAAE;QACjE,GAAG,CAAC,EAAE,CAAC,+BAA+B,EAAE,CAAC,KAAK,EAAE,2BAA2B,EAAE,EAAE;YAC3E,cAAc,CAAC,IAAI,CAAC,mCAAmC,GAAG,EAAE,EAAE,2BAA2B,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACtB,GAAG,CAAC,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,QAAQ,GAAG,CAAC,EAAE,EAAE;QAClC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE;QACjC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;QACvB,GAAG,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACtB,GAAG,CAAC,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACtB,GAAG,CAAC,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAC9B,cAAc,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,cAAc,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAE3B,+DAA+D;IAE/D,mDAAmD;IACnD,0CAA0C;IAC1C,eAAe;IACf,iEAAiE;IACjE,iDAAiD;IACjD,QAAQ;IACR,IAAI;IAEJ,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAO,IAAI,EAAE,OAAO,EAAE,EAAE;QAChD,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,IAAI,OAAO,EAAE;YACT,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,EAAE,CAAE,KAAK,GAAG,aAAa,CAAC,CAAC;YAE1G,cAAc,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;SACxE;aAAM;YACH,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,EAAE,CAAE,KAAK,GAAG,aAAa,CAAC,CAAC;YAEjG,cAAc,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;SACxE;IACL,CAAC,CAAA,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACnC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QACjC,cAAc,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;QACzB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3B,cAAc,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;QAC7B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;QAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;QAC/B,cAAc,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAAC,IAAI,EAAE,EAAE;QACvC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACtC,GAAG,CAAC,oBAAoB,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,+BAA+B,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAChE,MAAM,OAAO,GAAG,GAAG,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrE,cAAc,CAAC,IAAI,CAAC,wCAAwC,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,kCAAkC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QACnE,MAAM,OAAO,GAAG,GAAG,CAAC,6BAA6B,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACxE,cAAc,CAAC,IAAI,CAAC,2CAA2C,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,4BAA4B,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAClE,cAAc,CAAC,IAAI,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACxC,cAAc,CAAC,IAAI,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACrC,MAAM,gBAAgB,GAAG,GAAG,CAAC,mBAAmB,EAAE,CAAC;QACnD,cAAc,CAAC,IAAI,CAAC,iCAAiC,EAAE,gBAAgB,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,UAAU,EAAE,EAAE;QACvC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC3C,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE;YACjD,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,EAAE,CAAC;QAChD,cAAc,CAAC,IAAI,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC3C,GAAG,CAAC,yBAAyB,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE;QAC3D,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACxC,MAAM,YAAY,GAAG,GAAG,CAAC,sBAAsB,EAAE,CAAC;QAClD,cAAc,CAAC,IAAI,CAAC,oCAAoC,EAAE,YAAY,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAAC,EAAE,EAAE,EAAE;QACrC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAAC,OAAO,EAAE,EAAE;QAC1C,GAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;YACtC,cAAc,CAAC,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC/B,MAAM,cAAc,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QAC3C,cAAc,CAAC,IAAI,CAAC,2BAA2B,EAAE,cAAc,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACrC,MAAM,gBAAgB,GAAG,GAAG,CAAC,mBAAmB,EAAE,CAAC;QACnD,cAAc,CAAC,IAAI,CAAC,iCAAiC,EAAE,gBAAgB,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE;QACpC,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,cAAc,CAAC,IAAI,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QAClC,cAAc,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAChC,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;QAC5C,cAAc,CAAC,IAAI,CAAC,4BAA4B,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7C,MAAM,iBAAiB,GAAG,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC5D,cAAc,CAAC,IAAI,CAAC,kCAAkC,EAAE,iBAAiB,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC9C,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC/C,MAAM,6BAA6B,GAAG,GAAG,CAAC,6BAA6B,EAAE,CAAC;QAC1E,cAAc,CAAC,IAAI,CAAC,2CAA2C,EAAE,6BAA6B,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7C,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,4BAA4B,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACzD,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,8BAA8B,EAAE,CAAC,KAAK,EAAE,EAAE;QAChD,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,cAAc,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,EAAE,EAAE,EAAE;QACpC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC9C,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;QAClC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjC,cAAc,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,cAAc,CAAC,IAAI,CAAC,2BAA2B,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,mDAAmD;IACnD,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;QACjC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;QAClC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"} \ No newline at end of file diff --git a/ElectronNET.Host/api/app.ts b/ElectronNET.Host/api/app.ts index e3d1635..55695e7 100644 --- a/ElectronNET.Host/api/app.ts +++ b/ElectronNET.Host/api/app.ts @@ -113,15 +113,17 @@ export = (socket: SocketIO.Socket, app: Electron.App) => { // } // } - socket.on('appGetFileIcon', (path, options) => { + socket.on('appGetFileIcon', async (path, options) => { + let error = {}; + if (options) { - app.getFileIcon(path, options, (error, nativeImage) => { - electronSocket.emit('appGetFileIconCompleted', [error, nativeImage]); - }); + const nativeImage = await app.getFileIcon(path, options).catch((errorFileIcon) => error = errorFileIcon); + + electronSocket.emit('appGetFileIconCompleted', [error, nativeImage]); } else { - app.getFileIcon(path, (error, nativeImage) => { - electronSocket.emit('appGetFileIconCompleted', [error, nativeImage]); - }); + const nativeImage = await app.getFileIcon(path).catch((errorFileIcon) => error = errorFileIcon); + + electronSocket.emit('appGetFileIconCompleted', [error, nativeImage]); } }); diff --git a/ElectronNET.Host/api/autoUpdater.js b/ElectronNET.Host/api/autoUpdater.js index 6d478e5..c9a3ab1 100644 --- a/ElectronNET.Host/api/autoUpdater.js +++ b/ElectronNET.Host/api/autoUpdater.js @@ -1,9 +1,10 @@ "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; @@ -87,23 +88,23 @@ module.exports = (socket) => { electron_updater_1.autoUpdater.channel = value; }); // Methods ******** - socket.on('autoUpdaterCheckForUpdatesAndNotify', (guid) => __awaiter(this, void 0, void 0, function* () { + socket.on('autoUpdaterCheckForUpdatesAndNotify', (guid) => __awaiter(void 0, void 0, void 0, function* () { const updateCheckResult = yield electron_updater_1.autoUpdater.checkForUpdatesAndNotify(); electronSocket.emit('autoUpdaterCheckForUpdatesAndNotifyComplete' + guid, updateCheckResult); })); - socket.on('autoUpdaterCheckForUpdates', (guid) => __awaiter(this, void 0, void 0, function* () { + socket.on('autoUpdaterCheckForUpdates', (guid) => __awaiter(void 0, void 0, void 0, function* () { // autoUpdater.updateConfigPath = path.join(__dirname, 'dev-app-update.yml'); const updateCheckResult = yield electron_updater_1.autoUpdater.checkForUpdates(); electronSocket.emit('autoUpdaterCheckForUpdatesComplete' + guid, updateCheckResult); })); - socket.on('autoUpdaterQuitAndInstall', (isSilent, isForceRunAfter) => __awaiter(this, void 0, void 0, function* () { + socket.on('autoUpdaterQuitAndInstall', (isSilent, isForceRunAfter) => __awaiter(void 0, void 0, void 0, function* () { electron_updater_1.autoUpdater.quitAndInstall(isSilent, isForceRunAfter); })); - socket.on('autoUpdaterDownloadUpdate', (guid) => __awaiter(this, void 0, void 0, function* () { + socket.on('autoUpdaterDownloadUpdate', (guid) => __awaiter(void 0, void 0, void 0, function* () { const downloadedPath = yield electron_updater_1.autoUpdater.downloadUpdate(); electronSocket.emit('autoUpdaterDownloadUpdateComplete' + guid, downloadedPath); })); - socket.on('autoUpdaterGetFeedURL', (guid) => __awaiter(this, void 0, void 0, function* () { + socket.on('autoUpdaterGetFeedURL', (guid) => __awaiter(void 0, void 0, void 0, function* () { const feedUrl = yield electron_updater_1.autoUpdater.getFeedURL(); electronSocket.emit('autoUpdaterGetFeedURLComplete' + guid, feedUrl || ''); })); diff --git a/ElectronNET.Host/api/autoUpdater.js.map b/ElectronNET.Host/api/autoUpdater.js.map index 8c54771..94aa676 100644 --- a/ElectronNET.Host/api/autoUpdater.js.map +++ b/ElectronNET.Host/api/autoUpdater.js.map @@ -1 +1 @@ -{"version":3,"file":"autoUpdater.js","sourceRoot":"","sources":["autoUpdater.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"autoUpdater.js","sourceRoot":"","sources":["autoUpdater.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/ElectronNET.Host/api/browserWindows.js b/ElectronNET.Host/api/browserWindows.js index 01c6796..ea302ff 100644 --- a/ElectronNET.Host/api/browserWindows.js +++ b/ElectronNET.Host/api/browserWindows.js @@ -1,177 +1,162 @@ "use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var electron_1 = require("electron"); -var path = require('path'); -var windows = []; -var window, lastOptions, electronSocket; -module.exports = function (socket, app) { +const electron_1 = require("electron"); +const path = require('path'); +const windows = []; +let window, lastOptions, electronSocket; +module.exports = (socket, app) => { electronSocket = socket; - socket.on('register-browserWindow-ready-to-show', function (id) { - getWindowById(id).on('ready-to-show', function () { + socket.on('register-browserWindow-ready-to-show', (id) => { + getWindowById(id).on('ready-to-show', () => { electronSocket.emit('browserWindow-ready-to-show' + id); }); }); - socket.on('register-browserWindow-page-title-updated', function (id) { - getWindowById(id).on('page-title-updated', function (event, title) { + socket.on('register-browserWindow-page-title-updated', (id) => { + getWindowById(id).on('page-title-updated', (event, title) => { electronSocket.emit('browserWindow-page-title-updated' + id, title); }); }); - socket.on('register-browserWindow-close', function (id) { - getWindowById(id).on('close', function () { + socket.on('register-browserWindow-close', (id) => { + getWindowById(id).on('close', () => { electronSocket.emit('browserWindow-close' + id); }); }); - socket.on('register-browserWindow-closed', function (id) { - getWindowById(id).on('closed', function () { + socket.on('register-browserWindow-closed', (id) => { + getWindowById(id).on('closed', () => { electronSocket.emit('browserWindow-closed' + id); }); }); - socket.on('register-browserWindow-session-end', function (id) { - getWindowById(id).on('session-end', function () { + socket.on('register-browserWindow-session-end', (id) => { + getWindowById(id).on('session-end', () => { electronSocket.emit('browserWindow-session-end' + id); }); }); - socket.on('register-browserWindow-unresponsive', function (id) { - getWindowById(id).on('unresponsive', function () { + socket.on('register-browserWindow-unresponsive', (id) => { + getWindowById(id).on('unresponsive', () => { electronSocket.emit('browserWindow-unresponsive' + id); }); }); - socket.on('register-browserWindow-responsive', function (id) { - getWindowById(id).on('responsive', function () { + socket.on('register-browserWindow-responsive', (id) => { + getWindowById(id).on('responsive', () => { electronSocket.emit('browserWindow-responsive' + id); }); }); - socket.on('register-browserWindow-blur', function (id) { - getWindowById(id).on('blur', function () { + socket.on('register-browserWindow-blur', (id) => { + getWindowById(id).on('blur', () => { electronSocket.emit('browserWindow-blur' + id); }); }); - socket.on('register-browserWindow-focus', function (id) { - getWindowById(id).on('focus', function () { + socket.on('register-browserWindow-focus', (id) => { + getWindowById(id).on('focus', () => { electronSocket.emit('browserWindow-focus' + id); }); }); - socket.on('register-browserWindow-show', function (id) { - getWindowById(id).on('show', function () { + socket.on('register-browserWindow-show', (id) => { + getWindowById(id).on('show', () => { electronSocket.emit('browserWindow-show' + id); }); }); - socket.on('register-browserWindow-hide', function (id) { - getWindowById(id).on('hide', function () { + socket.on('register-browserWindow-hide', (id) => { + getWindowById(id).on('hide', () => { electronSocket.emit('browserWindow-hide' + id); }); }); - socket.on('register-browserWindow-maximize', function (id) { - getWindowById(id).on('maximize', function () { + socket.on('register-browserWindow-maximize', (id) => { + getWindowById(id).on('maximize', () => { electronSocket.emit('browserWindow-maximize' + id); }); }); - socket.on('register-browserWindow-unmaximize', function (id) { - getWindowById(id).on('unmaximize', function () { + socket.on('register-browserWindow-unmaximize', (id) => { + getWindowById(id).on('unmaximize', () => { electronSocket.emit('browserWindow-unmaximize' + id); }); }); - socket.on('register-browserWindow-minimize', function (id) { - getWindowById(id).on('minimize', function () { + socket.on('register-browserWindow-minimize', (id) => { + getWindowById(id).on('minimize', () => { electronSocket.emit('browserWindow-minimize' + id); }); }); - socket.on('register-browserWindow-restore', function (id) { - getWindowById(id).on('restore', function () { + socket.on('register-browserWindow-restore', (id) => { + getWindowById(id).on('restore', () => { electronSocket.emit('browserWindow-restore' + id); }); }); - socket.on('register-browserWindow-resize', function (id) { - getWindowById(id).on('resize', function () { + socket.on('register-browserWindow-resize', (id) => { + getWindowById(id).on('resize', () => { electronSocket.emit('browserWindow-resize' + id); }); }); - socket.on('register-browserWindow-move', function (id) { - getWindowById(id).on('move', function () { + socket.on('register-browserWindow-move', (id) => { + getWindowById(id).on('move', () => { electronSocket.emit('browserWindow-move' + id); }); }); - socket.on('register-browserWindow-moved', function (id) { - getWindowById(id).on('moved', function () { + socket.on('register-browserWindow-moved', (id) => { + getWindowById(id).on('moved', () => { electronSocket.emit('browserWindow-moved' + id); }); }); - socket.on('register-browserWindow-enter-full-screen', function (id) { - getWindowById(id).on('enter-full-screen', function () { + socket.on('register-browserWindow-enter-full-screen', (id) => { + getWindowById(id).on('enter-full-screen', () => { electronSocket.emit('browserWindow-enter-full-screen' + id); }); }); - socket.on('register-browserWindow-leave-full-screen', function (id) { - getWindowById(id).on('leave-full-screen', function () { + socket.on('register-browserWindow-leave-full-screen', (id) => { + getWindowById(id).on('leave-full-screen', () => { electronSocket.emit('browserWindow-leave-full-screen' + id); }); }); - socket.on('register-browserWindow-enter-html-full-screen', function (id) { - getWindowById(id).on('enter-html-full-screen', function () { + socket.on('register-browserWindow-enter-html-full-screen', (id) => { + getWindowById(id).on('enter-html-full-screen', () => { electronSocket.emit('browserWindow-enter-html-full-screen' + id); }); }); - socket.on('register-browserWindow-leave-html-full-screen', function (id) { - getWindowById(id).on('leave-html-full-screen', function () { + socket.on('register-browserWindow-leave-html-full-screen', (id) => { + getWindowById(id).on('leave-html-full-screen', () => { electronSocket.emit('browserWindow-leave-html-full-screen' + id); }); }); - socket.on('register-browserWindow-app-command', function (id) { - getWindowById(id).on('app-command', function (event, command) { + socket.on('register-browserWindow-app-command', (id) => { + getWindowById(id).on('app-command', (event, command) => { electronSocket.emit('browserWindow-app-command' + id, command); }); }); - socket.on('register-browserWindow-scroll-touch-begin', function (id) { - getWindowById(id).on('scroll-touch-begin', function () { + socket.on('register-browserWindow-scroll-touch-begin', (id) => { + getWindowById(id).on('scroll-touch-begin', () => { electronSocket.emit('browserWindow-scroll-touch-begin' + id); }); }); - socket.on('register-browserWindow-scroll-touch-end', function (id) { - getWindowById(id).on('scroll-touch-end', function () { + socket.on('register-browserWindow-scroll-touch-end', (id) => { + getWindowById(id).on('scroll-touch-end', () => { electronSocket.emit('browserWindow-scroll-touch-end' + id); }); }); - socket.on('register-browserWindow-scroll-touch-edge', function (id) { - getWindowById(id).on('scroll-touch-edge', function () { + socket.on('register-browserWindow-scroll-touch-edge', (id) => { + getWindowById(id).on('scroll-touch-edge', () => { electronSocket.emit('browserWindow-scroll-touch-edge' + id); }); }); - socket.on('register-browserWindow-swipe', function (id) { - getWindowById(id).on('swipe', function (event, direction) { + socket.on('register-browserWindow-swipe', (id) => { + getWindowById(id).on('swipe', (event, direction) => { electronSocket.emit('browserWindow-swipe' + id, direction); }); }); - socket.on('register-browserWindow-sheet-begin', function (id) { - getWindowById(id).on('sheet-begin', function () { + socket.on('register-browserWindow-sheet-begin', (id) => { + getWindowById(id).on('sheet-begin', () => { electronSocket.emit('browserWindow-sheet-begin' + id); }); }); - socket.on('register-browserWindow-sheet-end', function (id) { - getWindowById(id).on('sheet-end', function () { + socket.on('register-browserWindow-sheet-end', (id) => { + getWindowById(id).on('sheet-end', () => { electronSocket.emit('browserWindow-sheet-end' + id); }); }); - socket.on('register-browserWindow-new-window-for-tab', function (id) { - getWindowById(id).on('new-window-for-tab', function () { + socket.on('register-browserWindow-new-window-for-tab', (id) => { + getWindowById(id).on('new-window-for-tab', () => { electronSocket.emit('browserWindow-new-window-for-tab' + id); }); }); - function hasOwnChildreen(obj) { - var childNames = []; - for (var _i = 1; _i < arguments.length; _i++) { - childNames[_i - 1] = arguments[_i]; - } - for (var i = 0; i < childNames.length; i++) { + function hasOwnChildreen(obj, ...childNames) { + for (let i = 0; i < childNames.length; i++) { if (!obj || !obj.hasOwnProperty(childNames[i])) { return false; } @@ -179,32 +164,29 @@ module.exports = function (socket, app) { } return true; } - socket.on('createBrowserWindow', function (options, loadUrl) { + socket.on('createBrowserWindow', (options, loadUrl) => { if (!hasOwnChildreen(options, 'webPreferences', 'nodeIntegration')) { - options = __assign(__assign({}, options), { webPreferences: { nodeIntegration: true } }); + options = Object.assign(Object.assign({}, options), { webPreferences: { nodeIntegration: true } }); } window = new electron_1.BrowserWindow(options); lastOptions = options; - window.on('closed', function (sender) { - var _loop_1 = function (index) { - var windowItem = windows[index]; + window.on('closed', (sender) => { + for (let index = 0; index < windows.length; index++) { + const windowItem = windows[index]; try { windowItem.id; } catch (error) { if (error.message === 'Object has been destroyed') { windows.splice(index, 1); - var ids_1 = []; - windows.forEach(function (x) { return ids_1.push(x.id); }); - electronSocket.emit('BrowserWindowClosed', ids_1); + const ids = []; + windows.forEach(x => ids.push(x.id)); + electronSocket.emit('BrowserWindowClosed', ids); } } - }; - for (var index = 0; index < windows.length; index++) { - _loop_1(index); } }); - app.on('activate', function () { + app.on('activate', () => { // On macOS it's common to re-create a window in the app when the // dock icon is clicked and there are no other windows open. if (window === null && lastOptions) { @@ -217,191 +199,191 @@ module.exports = function (socket, app) { windows.push(window); electronSocket.emit('BrowserWindowCreated', window.id); }); - socket.on('browserWindowDestroy', function (id) { + socket.on('browserWindowDestroy', (id) => { getWindowById(id).destroy(); }); - socket.on('browserWindowClose', function (id) { + socket.on('browserWindowClose', (id) => { getWindowById(id).close(); }); - socket.on('browserWindowFocus', function (id) { + socket.on('browserWindowFocus', (id) => { getWindowById(id).focus(); }); - socket.on('browserWindowBlur', function (id) { + socket.on('browserWindowBlur', (id) => { getWindowById(id).blur(); }); - socket.on('browserWindowIsFocused', function (id) { - var isFocused = getWindowById(id).isFocused(); + socket.on('browserWindowIsFocused', (id) => { + const isFocused = getWindowById(id).isFocused(); electronSocket.emit('browserWindow-isFocused-completed', isFocused); }); - socket.on('browserWindowIsDestroyed', function (id) { - var isDestroyed = getWindowById(id).isDestroyed(); + socket.on('browserWindowIsDestroyed', (id) => { + const isDestroyed = getWindowById(id).isDestroyed(); electronSocket.emit('browserWindow-isDestroyed-completed', isDestroyed); }); - socket.on('browserWindowShow', function (id) { + socket.on('browserWindowShow', (id) => { getWindowById(id).show(); }); - socket.on('browserWindowShowInactive', function (id) { + socket.on('browserWindowShowInactive', (id) => { getWindowById(id).showInactive(); }); - socket.on('browserWindowHide', function (id) { + socket.on('browserWindowHide', (id) => { getWindowById(id).hide(); }); - socket.on('browserWindowIsVisible', function (id) { - var isVisible = getWindowById(id).isVisible(); + socket.on('browserWindowIsVisible', (id) => { + const isVisible = getWindowById(id).isVisible(); electronSocket.emit('browserWindow-isVisible-completed', isVisible); }); - socket.on('browserWindowIsModal', function (id) { - var isModal = getWindowById(id).isModal(); + socket.on('browserWindowIsModal', (id) => { + const isModal = getWindowById(id).isModal(); electronSocket.emit('browserWindow-isModal-completed', isModal); }); - socket.on('browserWindowMaximize', function (id) { + socket.on('browserWindowMaximize', (id) => { getWindowById(id).maximize(); }); - socket.on('browserWindowUnmaximize', function (id) { + socket.on('browserWindowUnmaximize', (id) => { getWindowById(id).unmaximize(); }); - socket.on('browserWindowIsMaximized', function (id) { - var isMaximized = getWindowById(id).isMaximized(); + socket.on('browserWindowIsMaximized', (id) => { + const isMaximized = getWindowById(id).isMaximized(); electronSocket.emit('browserWindow-isMaximized-completed', isMaximized); }); - socket.on('browserWindowMinimize', function (id) { + socket.on('browserWindowMinimize', (id) => { getWindowById(id).minimize(); }); - socket.on('browserWindowRestore', function (id) { + socket.on('browserWindowRestore', (id) => { getWindowById(id).restore(); }); - socket.on('browserWindowIsMinimized', function (id) { - var isMinimized = getWindowById(id).isMinimized(); + socket.on('browserWindowIsMinimized', (id) => { + const isMinimized = getWindowById(id).isMinimized(); electronSocket.emit('browserWindow-isMinimized-completed', isMinimized); }); - socket.on('browserWindowSetFullScreen', function (id, fullscreen) { + socket.on('browserWindowSetFullScreen', (id, fullscreen) => { getWindowById(id).setFullScreen(fullscreen); }); - socket.on('browserWindowIsFullScreen', function (id) { - var isFullScreen = getWindowById(id).isFullScreen(); + socket.on('browserWindowIsFullScreen', (id) => { + const isFullScreen = getWindowById(id).isFullScreen(); electronSocket.emit('browserWindow-isFullScreen-completed', isFullScreen); }); - socket.on('browserWindowSetAspectRatio', function (id, aspectRatio, extraSize) { + socket.on('browserWindowSetAspectRatio', (id, aspectRatio, extraSize) => { getWindowById(id).setAspectRatio(aspectRatio, extraSize); }); - socket.on('browserWindowPreviewFile', function (id, path, displayname) { + socket.on('browserWindowPreviewFile', (id, path, displayname) => { getWindowById(id).previewFile(path, displayname); }); - socket.on('browserWindowCloseFilePreview', function (id) { + socket.on('browserWindowCloseFilePreview', (id) => { getWindowById(id).closeFilePreview(); }); - socket.on('browserWindowSetBounds', function (id, bounds, animate) { + socket.on('browserWindowSetBounds', (id, bounds, animate) => { getWindowById(id).setBounds(bounds, animate); }); - socket.on('browserWindowGetBounds', function (id) { - var rectangle = getWindowById(id).getBounds(); + socket.on('browserWindowGetBounds', (id) => { + const rectangle = getWindowById(id).getBounds(); electronSocket.emit('browserWindow-getBounds-completed', rectangle); }); - socket.on('browserWindowSetContentBounds', function (id, bounds, animate) { + socket.on('browserWindowSetContentBounds', (id, bounds, animate) => { getWindowById(id).setContentBounds(bounds, animate); }); - socket.on('browserWindowGetContentBounds', function (id) { - var rectangle = getWindowById(id).getContentBounds(); + socket.on('browserWindowGetContentBounds', (id) => { + const rectangle = getWindowById(id).getContentBounds(); electronSocket.emit('browserWindow-getContentBounds-completed', rectangle); }); - socket.on('browserWindowSetSize', function (id, width, height, animate) { + socket.on('browserWindowSetSize', (id, width, height, animate) => { getWindowById(id).setSize(width, height, animate); }); - socket.on('browserWindowGetSize', function (id) { - var size = getWindowById(id).getSize(); + socket.on('browserWindowGetSize', (id) => { + const size = getWindowById(id).getSize(); electronSocket.emit('browserWindow-getSize-completed', size); }); - socket.on('browserWindowSetContentSize', function (id, width, height, animate) { + socket.on('browserWindowSetContentSize', (id, width, height, animate) => { getWindowById(id).setContentSize(width, height, animate); }); - socket.on('browserWindowGetContentSize', function (id) { - var size = getWindowById(id).getContentSize(); + socket.on('browserWindowGetContentSize', (id) => { + const size = getWindowById(id).getContentSize(); electronSocket.emit('browserWindow-getContentSize-completed', size); }); - socket.on('browserWindowSetMinimumSize', function (id, width, height) { + socket.on('browserWindowSetMinimumSize', (id, width, height) => { getWindowById(id).setMinimumSize(width, height); }); - socket.on('browserWindowGetMinimumSize', function (id) { - var size = getWindowById(id).getMinimumSize(); + socket.on('browserWindowGetMinimumSize', (id) => { + const size = getWindowById(id).getMinimumSize(); electronSocket.emit('browserWindow-getMinimumSize-completed', size); }); - socket.on('browserWindowSetMaximumSize', function (id, width, height) { + socket.on('browserWindowSetMaximumSize', (id, width, height) => { getWindowById(id).setMaximumSize(width, height); }); - socket.on('browserWindowGetMaximumSize', function (id) { - var size = getWindowById(id).getMaximumSize(); + socket.on('browserWindowGetMaximumSize', (id) => { + const size = getWindowById(id).getMaximumSize(); electronSocket.emit('browserWindow-getMaximumSize-completed', size); }); - socket.on('browserWindowSetResizable', function (id, resizable) { + socket.on('browserWindowSetResizable', (id, resizable) => { getWindowById(id).setResizable(resizable); }); - socket.on('browserWindowIsResizable', function (id) { - var resizable = getWindowById(id).isResizable(); + socket.on('browserWindowIsResizable', (id) => { + const resizable = getWindowById(id).isResizable(); electronSocket.emit('browserWindow-isResizable-completed', resizable); }); - socket.on('browserWindowSetMovable', function (id, movable) { + socket.on('browserWindowSetMovable', (id, movable) => { getWindowById(id).setMovable(movable); }); - socket.on('browserWindowIsMovable', function (id) { - var movable = getWindowById(id).isMovable(); + socket.on('browserWindowIsMovable', (id) => { + const movable = getWindowById(id).isMovable(); electronSocket.emit('browserWindow-isMovable-completed', movable); }); - socket.on('browserWindowSetMinimizable', function (id, minimizable) { + socket.on('browserWindowSetMinimizable', (id, minimizable) => { getWindowById(id).setMinimizable(minimizable); }); - socket.on('browserWindowIsMinimizable', function (id) { - var minimizable = getWindowById(id).isMinimizable(); + socket.on('browserWindowIsMinimizable', (id) => { + const minimizable = getWindowById(id).isMinimizable(); electronSocket.emit('browserWindow-isMinimizable-completed', minimizable); }); - socket.on('browserWindowSetMaximizable', function (id, maximizable) { + socket.on('browserWindowSetMaximizable', (id, maximizable) => { getWindowById(id).setMaximizable(maximizable); }); - socket.on('browserWindowIsMaximizable', function (id) { - var maximizable = getWindowById(id).isMaximizable(); + socket.on('browserWindowIsMaximizable', (id) => { + const maximizable = getWindowById(id).isMaximizable(); electronSocket.emit('browserWindow-isMaximizable-completed', maximizable); }); - socket.on('browserWindowSetFullScreenable', function (id, fullscreenable) { + socket.on('browserWindowSetFullScreenable', (id, fullscreenable) => { getWindowById(id).setFullScreenable(fullscreenable); }); - socket.on('browserWindowIsFullScreenable', function (id) { - var fullscreenable = getWindowById(id).isFullScreenable(); + socket.on('browserWindowIsFullScreenable', (id) => { + const fullscreenable = getWindowById(id).isFullScreenable(); electronSocket.emit('browserWindow-isFullScreenable-completed', fullscreenable); }); - socket.on('browserWindowSetClosable', function (id, closable) { + socket.on('browserWindowSetClosable', (id, closable) => { getWindowById(id).setClosable(closable); }); - socket.on('browserWindowIsClosable', function (id) { - var closable = getWindowById(id).isClosable(); + socket.on('browserWindowIsClosable', (id) => { + const closable = getWindowById(id).isClosable(); electronSocket.emit('browserWindow-isClosable-completed', closable); }); - socket.on('browserWindowSetAlwaysOnTop', function (id, flag, level, relativeLevel) { + socket.on('browserWindowSetAlwaysOnTop', (id, flag, level, relativeLevel) => { getWindowById(id).setAlwaysOnTop(flag, level, relativeLevel); }); - socket.on('browserWindowIsAlwaysOnTop', function (id) { - var isAlwaysOnTop = getWindowById(id).isAlwaysOnTop(); + socket.on('browserWindowIsAlwaysOnTop', (id) => { + const isAlwaysOnTop = getWindowById(id).isAlwaysOnTop(); electronSocket.emit('browserWindow-isAlwaysOnTop-completed', isAlwaysOnTop); }); - socket.on('browserWindowCenter', function (id) { + socket.on('browserWindowCenter', (id) => { getWindowById(id).center(); }); - socket.on('browserWindowSetPosition', function (id, x, y, animate) { + socket.on('browserWindowSetPosition', (id, x, y, animate) => { getWindowById(id).setPosition(x, y, animate); }); - socket.on('browserWindowGetPosition', function (id) { - var position = getWindowById(id).getPosition(); + socket.on('browserWindowGetPosition', (id) => { + const position = getWindowById(id).getPosition(); electronSocket.emit('browserWindow-getPosition-completed', position); }); - socket.on('browserWindowSetTitle', function (id, title) { + socket.on('browserWindowSetTitle', (id, title) => { getWindowById(id).setTitle(title); }); - socket.on('browserWindowGetTitle', function (id) { - var title = getWindowById(id).getTitle(); + socket.on('browserWindowGetTitle', (id) => { + const title = getWindowById(id).getTitle(); electronSocket.emit('browserWindow-getTitle-completed', title); }); - socket.on('browserWindowSetTitle', function (id, title) { + socket.on('browserWindowSetTitle', (id, title) => { getWindowById(id).setTitle(title); }); - socket.on('browserWindowSetSheetOffset', function (id, offsetY, offsetX) { + socket.on('browserWindowSetSheetOffset', (id, offsetY, offsetX) => { if (offsetX) { getWindowById(id).setSheetOffset(offsetY, offsetX); } @@ -409,174 +391,175 @@ module.exports = function (socket, app) { getWindowById(id).setSheetOffset(offsetY); } }); - socket.on('browserWindowFlashFrame', function (id, flag) { + socket.on('browserWindowFlashFrame', (id, flag) => { getWindowById(id).flashFrame(flag); }); - socket.on('browserWindowSetSkipTaskbar', function (id, skip) { + socket.on('browserWindowSetSkipTaskbar', (id, skip) => { getWindowById(id).setSkipTaskbar(skip); }); - socket.on('browserWindowSetKiosk', function (id, flag) { + socket.on('browserWindowSetKiosk', (id, flag) => { getWindowById(id).setKiosk(flag); }); - socket.on('browserWindowIsKiosk', function (id) { - var isKiosk = getWindowById(id).isKiosk(); + socket.on('browserWindowIsKiosk', (id) => { + const isKiosk = getWindowById(id).isKiosk(); electronSocket.emit('browserWindow-isKiosk-completed', isKiosk); }); - socket.on('browserWindowSetRepresentedFilename', function (id, filename) { + socket.on('browserWindowSetRepresentedFilename', (id, filename) => { getWindowById(id).setRepresentedFilename(filename); }); - socket.on('browserWindowGetRepresentedFilename', function (id) { - var pathname = getWindowById(id).getRepresentedFilename(); + socket.on('browserWindowGetRepresentedFilename', (id) => { + const pathname = getWindowById(id).getRepresentedFilename(); electronSocket.emit('browserWindow-getRepresentedFilename-completed', pathname); }); - socket.on('browserWindowSetDocumentEdited', function (id, edited) { + socket.on('browserWindowSetDocumentEdited', (id, edited) => { getWindowById(id).setDocumentEdited(edited); }); - socket.on('browserWindowIsDocumentEdited', function (id) { - var edited = getWindowById(id).isDocumentEdited(); + socket.on('browserWindowIsDocumentEdited', (id) => { + const edited = getWindowById(id).isDocumentEdited(); electronSocket.emit('browserWindow-isDocumentEdited-completed', edited); }); - socket.on('browserWindowFocusOnWebView', function (id) { + socket.on('browserWindowFocusOnWebView', (id) => { getWindowById(id).focusOnWebView(); }); - socket.on('browserWindowBlurWebView', function (id) { + socket.on('browserWindowBlurWebView', (id) => { getWindowById(id).blurWebView(); }); - socket.on('browserWindowLoadURL', function (id, url, options) { + socket.on('browserWindowLoadURL', (id, url, options) => { getWindowById(id).loadURL(url, options); }); - socket.on('browserWindowReload', function (id) { + socket.on('browserWindowReload', (id) => { getWindowById(id).reload(); }); - socket.on('browserWindowSetMenu', function (id, menuItems) { - var menu = null; + socket.on('browserWindowSetMenu', (id, menuItems) => { + let menu = null; if (menuItems) { menu = electron_1.Menu.buildFromTemplate(menuItems); - addMenuItemClickConnector(menu.items, function (id) { + addMenuItemClickConnector(menu.items, (id) => { electronSocket.emit('windowMenuItemClicked', id); }); } getWindowById(id).setMenu(menu); }); - socket.on('browserWindowRemoveMenu', function (id) { + socket.on('browserWindowRemoveMenu', (id) => { getWindowById(id).removeMenu(); }); function addMenuItemClickConnector(menuItems, callback) { - menuItems.forEach(function (item) { + menuItems.forEach((item) => { if (item.submenu && item.submenu.items.length > 0) { addMenuItemClickConnector(item.submenu.items, callback); } if ('id' in item && item.id) { - item.click = function () { callback(item.id); }; + item.click = () => { callback(item.id); }; } }); } - socket.on('browserWindowSetProgressBar', function (id, progress) { + socket.on('browserWindowSetProgressBar', (id, progress) => { getWindowById(id).setProgressBar(progress); }); - socket.on('browserWindowSetHasShadow', function (id, hasShadow) { + socket.on('browserWindowSetHasShadow', (id, hasShadow) => { getWindowById(id).setHasShadow(hasShadow); }); - socket.on('browserWindowHasShadow', function (id) { - var hasShadow = getWindowById(id).hasShadow(); + socket.on('browserWindowHasShadow', (id) => { + const hasShadow = getWindowById(id).hasShadow(); electronSocket.emit('browserWindow-hasShadow-completed', hasShadow); }); - socket.on('browserWindowSetThumbarButtons', function (id, thumbarButtons) { - thumbarButtons.forEach(function (thumbarButton) { - var imagePath = path.join(__dirname.replace('api', ''), 'bin', thumbarButton.icon.toString()); + socket.on('browserWindowSetThumbarButtons', (id, thumbarButtons) => { + thumbarButtons.forEach(thumbarButton => { + const imagePath = path.join(__dirname.replace('api', ''), 'bin', thumbarButton.icon.toString()); thumbarButton.icon = electron_1.nativeImage.createFromPath(imagePath); - thumbarButton.click = function () { + thumbarButton.click = () => { electronSocket.emit('thumbarButtonClicked', thumbarButton['id']); }; }); - var success = getWindowById(id).setThumbarButtons(thumbarButtons); + const success = getWindowById(id).setThumbarButtons(thumbarButtons); electronSocket.emit('browserWindowSetThumbarButtons-completed', success); }); - socket.on('browserWindowSetThumbnailClip', function (id, rectangle) { + socket.on('browserWindowSetThumbnailClip', (id, rectangle) => { getWindowById(id).setThumbnailClip(rectangle); }); - socket.on('browserWindowSetThumbnailToolTip', function (id, toolTip) { + socket.on('browserWindowSetThumbnailToolTip', (id, toolTip) => { getWindowById(id).setThumbnailToolTip(toolTip); }); - socket.on('browserWindowSetAppDetails', function (id, options) { + socket.on('browserWindowSetAppDetails', (id, options) => { getWindowById(id).setAppDetails(options); }); - socket.on('browserWindowShowDefinitionForSelection', function (id) { + socket.on('browserWindowShowDefinitionForSelection', (id) => { getWindowById(id).showDefinitionForSelection(); }); - socket.on('browserWindowSetAutoHideMenuBar', function (id, hide) { + socket.on('browserWindowSetAutoHideMenuBar', (id, hide) => { getWindowById(id).setAutoHideMenuBar(hide); }); - socket.on('browserWindowIsMenuBarAutoHide', function (id) { - var isMenuBarAutoHide = getWindowById(id).isMenuBarAutoHide(); + socket.on('browserWindowIsMenuBarAutoHide', (id) => { + const isMenuBarAutoHide = getWindowById(id).isMenuBarAutoHide(); electronSocket.emit('browserWindow-isMenuBarAutoHide-completed', isMenuBarAutoHide); }); - socket.on('browserWindowSetMenuBarVisibility', function (id, visible) { + socket.on('browserWindowSetMenuBarVisibility', (id, visible) => { getWindowById(id).setMenuBarVisibility(visible); }); - socket.on('browserWindowIsMenuBarVisible', function (id) { - var isMenuBarVisible = getWindowById(id).isMenuBarVisible(); + socket.on('browserWindowIsMenuBarVisible', (id) => { + const isMenuBarVisible = getWindowById(id).isMenuBarVisible(); electronSocket.emit('browserWindow-isMenuBarVisible-completed', isMenuBarVisible); }); - socket.on('browserWindowSetVisibleOnAllWorkspaces', function (id, visible) { + socket.on('browserWindowSetVisibleOnAllWorkspaces', (id, visible) => { getWindowById(id).setVisibleOnAllWorkspaces(visible); }); - socket.on('browserWindowIsVisibleOnAllWorkspaces', function (id) { - var isVisibleOnAllWorkspaces = getWindowById(id).isVisibleOnAllWorkspaces(); + socket.on('browserWindowIsVisibleOnAllWorkspaces', (id) => { + const isVisibleOnAllWorkspaces = getWindowById(id).isVisibleOnAllWorkspaces(); electronSocket.emit('browserWindow-isVisibleOnAllWorkspaces-completed', isVisibleOnAllWorkspaces); }); - socket.on('browserWindowSetIgnoreMouseEvents', function (id, ignore) { + socket.on('browserWindowSetIgnoreMouseEvents', (id, ignore) => { getWindowById(id).setIgnoreMouseEvents(ignore); }); - socket.on('browserWindowSetContentProtection', function (id, enable) { + socket.on('browserWindowSetContentProtection', (id, enable) => { getWindowById(id).setContentProtection(enable); }); - socket.on('browserWindowSetFocusable', function (id, focusable) { + socket.on('browserWindowSetFocusable', (id, focusable) => { getWindowById(id).setFocusable(focusable); }); - socket.on('browserWindowSetParentWindow', function (id, parent) { - var browserWindow = electron_1.BrowserWindow.fromId(parent.id); + socket.on('browserWindowSetParentWindow', (id, parent) => { + const browserWindow = electron_1.BrowserWindow.fromId(parent.id); getWindowById(id).setParentWindow(browserWindow); }); - socket.on('browserWindowGetParentWindow', function (id) { - var browserWindow = getWindowById(id).getParentWindow(); + socket.on('browserWindowGetParentWindow', (id) => { + const browserWindow = getWindowById(id).getParentWindow(); electronSocket.emit('browserWindow-getParentWindow-completed', browserWindow.id); }); - socket.on('browserWindowGetChildWindows', function (id) { - var browserWindows = getWindowById(id).getChildWindows(); - var ids = []; - browserWindows.forEach(function (x) { + socket.on('browserWindowGetChildWindows', (id) => { + const browserWindows = getWindowById(id).getChildWindows(); + const ids = []; + browserWindows.forEach(x => { ids.push(x.id); }); electronSocket.emit('browserWindow-getChildWindows-completed', ids); }); - socket.on('browserWindowSetAutoHideCursor', function (id, autoHide) { + socket.on('browserWindowSetAutoHideCursor', (id, autoHide) => { getWindowById(id).setAutoHideCursor(autoHide); }); - socket.on('browserWindowSetVibrancy', function (id, type) { + socket.on('browserWindowSetVibrancy', (id, type) => { getWindowById(id).setVibrancy(type); }); - socket.on('browserWindowAddExtension', function (path) { - var extensionName = electron_1.BrowserWindow.addExtension(path); + socket.on('browserWindowAddExtension', (path) => { + const extensionName = electron_1.BrowserWindow.addExtension(path); electronSocket.emit('browserWindow-addExtension-completed', extensionName); }); - socket.on('browserWindowRemoveExtension', function (name) { + socket.on('browserWindowRemoveExtension', (name) => { electron_1.BrowserWindow.removeExtension(name); }); - socket.on('browserWindowGetExtensions', function () { - var extensionsList = electron_1.BrowserWindow.getExtensions(); - var chromeExtensionInfo = new Array(); - Object.keys(extensionsList).forEach(function (key) { + socket.on('browserWindowGetExtensions', () => { + const extensionsList = electron_1.BrowserWindow.getExtensions(); + const chromeExtensionInfo = []; + Object.keys(extensionsList).forEach(key => { chromeExtensionInfo.push(extensionsList[key]); }); electronSocket.emit('browserWindow-getExtensions-completed', chromeExtensionInfo); }); function getWindowById(id) { - for (var index = 0; index < windows.length; index++) { - var element = windows[index]; + for (let index = 0; index < windows.length; index++) { + const element = windows[index]; if (element.id == id) { return element; } } } }; +//# sourceMappingURL=browserWindows.js.map \ No newline at end of file diff --git a/ElectronNET.Host/api/browserWindows.js.map b/ElectronNET.Host/api/browserWindows.js.map index 4656394..d32a653 100644 --- a/ElectronNET.Host/api/browserWindows.js.map +++ b/ElectronNET.Host/api/browserWindows.js.map @@ -1 +1 @@ -{"version":3,"file":"browserWindows.js","sourceRoot":"","sources":["browserWindows.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"browserWindows.js","sourceRoot":"","sources":["browserWindows.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/ElectronNET.Host/api/browserWindows.ts b/ElectronNET.Host/api/browserWindows.ts index 3f7386f..c0739e5 100644 --- a/ElectronNET.Host/api/browserWindows.ts +++ b/ElectronNET.Host/api/browserWindows.ts @@ -718,8 +718,7 @@ export = (socket: SocketIO.Socket, app: Electron.App) => { socket.on('browserWindowGetExtensions', () => { const extensionsList = BrowserWindow.getExtensions(); - - let chromeExtensionInfo = new Array(); + const chromeExtensionInfo = []; Object.keys(extensionsList).forEach(key => { chromeExtensionInfo.push(extensionsList[key]); diff --git a/ElectronNET.Host/api/dialog.js b/ElectronNET.Host/api/dialog.js index a7b865c..fd22744 100644 --- a/ElectronNET.Host/api/dialog.js +++ b/ElectronNET.Host/api/dialog.js @@ -1,42 +1,46 @@ "use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; const electron_1 = require("electron"); let electronSocket; module.exports = (socket) => { electronSocket = socket; - socket.on('showMessageBox', (browserWindow, options, guid) => { + socket.on('showMessageBox', (browserWindow, options, guid) => __awaiter(void 0, void 0, void 0, function* () { if ('id' in browserWindow) { const window = electron_1.BrowserWindow.fromId(browserWindow.id); - electron_1.dialog.showMessageBox(window, options, (response, checkboxChecked) => { - electronSocket.emit('showMessageBoxComplete' + guid, [response, checkboxChecked]); - }); + const messageBoxReturnValue = yield electron_1.dialog.showMessageBox(window, options); + electronSocket.emit('showMessageBoxComplete' + guid, [messageBoxReturnValue.response, messageBoxReturnValue.checkboxChecked]); } else { const id = guid || options; - electron_1.dialog.showMessageBox(browserWindow, (response, checkboxChecked) => { - electronSocket.emit('showMessageBoxComplete' + id, [response, checkboxChecked]); - }); + const messageBoxReturnValue = yield electron_1.dialog.showMessageBox(browserWindow); + electronSocket.emit('showMessageBoxComplete' + id, [messageBoxReturnValue.response, messageBoxReturnValue.checkboxChecked]); } - }); - socket.on('showOpenDialog', (browserWindow, options, guid) => { + })); + socket.on('showOpenDialog', (browserWindow, options, guid) => __awaiter(void 0, void 0, void 0, function* () { const window = electron_1.BrowserWindow.fromId(browserWindow.id); - electron_1.dialog.showOpenDialog(window, options, (filePaths) => { - electronSocket.emit('showOpenDialogComplete' + guid, filePaths || []); - }); - }); - socket.on('showSaveDialog', (browserWindow, options, guid) => { + const openDialogReturnValue = yield electron_1.dialog.showOpenDialog(window, options); + electronSocket.emit('showOpenDialogComplete' + guid, openDialogReturnValue.filePaths || []); + })); + socket.on('showSaveDialog', (browserWindow, options, guid) => __awaiter(void 0, void 0, void 0, function* () { const window = electron_1.BrowserWindow.fromId(browserWindow.id); - electron_1.dialog.showSaveDialog(window, options, (filename) => { - electronSocket.emit('showSaveDialogComplete' + guid, filename || ''); - }); - }); + const saveDialogReturnValue = yield electron_1.dialog.showSaveDialog(window, options); + electronSocket.emit('showSaveDialogComplete' + guid, saveDialogReturnValue.filePath || ''); + })); socket.on('showErrorBox', (title, content) => { electron_1.dialog.showErrorBox(title, content); }); - socket.on('showCertificateTrustDialog', (browserWindow, options, guid) => { + socket.on('showCertificateTrustDialog', (browserWindow, options, guid) => __awaiter(void 0, void 0, void 0, function* () { const window = electron_1.BrowserWindow.fromId(browserWindow.id); - electron_1.dialog.showCertificateTrustDialog(window, options, () => { - electronSocket.emit('showCertificateTrustDialogComplete' + guid); - }); - }); + yield electron_1.dialog.showCertificateTrustDialog(window, options); + electronSocket.emit('showCertificateTrustDialogComplete' + guid); + })); }; //# sourceMappingURL=dialog.js.map \ No newline at end of file diff --git a/ElectronNET.Host/api/dialog.js.map b/ElectronNET.Host/api/dialog.js.map index 226a098..e8935b9 100644 --- a/ElectronNET.Host/api/dialog.js.map +++ b/ElectronNET.Host/api/dialog.js.map @@ -1 +1 @@ -{"version":3,"file":"dialog.js","sourceRoot":"","sources":["dialog.ts"],"names":[],"mappings":";AAAA,uCAAiD;AACjD,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAuB,EAAE,EAAE;IACjC,cAAc,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACzD,IAAI,IAAI,IAAI,aAAa,EAAE;YACvB,MAAM,MAAM,GAAG,wBAAa,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAEtD,iBAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE;gBACjE,cAAc,CAAC,IAAI,CAAC,wBAAwB,GAAG,IAAI,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;SACN;aAAM;YACH,MAAM,EAAE,GAAG,IAAI,IAAI,OAAO,CAAC;YAC3B,iBAAM,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE;gBAC/D,cAAc,CAAC,IAAI,CAAC,wBAAwB,GAAG,EAAE,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;SACN;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,wBAAa,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACtD,iBAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE;YACjD,cAAc,CAAC,IAAI,CAAC,wBAAwB,GAAG,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,wBAAa,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACtD,iBAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;YAChD,cAAc,CAAC,IAAI,CAAC,wBAAwB,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACzC,iBAAM,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,4BAA4B,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACrE,MAAM,MAAM,GAAG,wBAAa,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACtD,iBAAM,CAAC,0BAA0B,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,IAAI,CAAC,oCAAoC,GAAG,IAAI,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"dialog.js","sourceRoot":"","sources":["dialog.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,uCAAiD;AACjD,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAuB,EAAE,EAAE;IACjC,cAAc,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAO,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC/D,IAAI,IAAI,IAAI,aAAa,EAAE;YACvB,MAAM,MAAM,GAAG,wBAAa,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAEtD,MAAM,qBAAqB,GAAG,MAAM,iBAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC3E,cAAc,CAAC,IAAI,CAAC,wBAAwB,GAAG,IAAI,EAAE,CAAC,qBAAqB,CAAC,QAAQ,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC;SACjI;aAAM;YACH,MAAM,EAAE,GAAG,IAAI,IAAI,OAAO,CAAC;YAC3B,MAAM,qBAAqB,GAAG,MAAM,iBAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAEzE,cAAc,CAAC,IAAI,CAAC,wBAAwB,GAAG,EAAE,EAAE,CAAC,qBAAqB,CAAC,QAAQ,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC;SAC/H;IACL,CAAC,CAAA,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAO,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC/D,MAAM,MAAM,GAAG,wBAAa,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,qBAAqB,GAAG,MAAM,iBAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE3E,cAAc,CAAC,IAAI,CAAC,wBAAwB,GAAG,IAAI,EAAE,qBAAqB,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAChG,CAAC,CAAA,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAO,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC/D,MAAM,MAAM,GAAG,wBAAa,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,qBAAqB,GAAG,MAAM,iBAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE3E,cAAc,CAAC,IAAI,CAAC,wBAAwB,GAAG,IAAI,EAAE,qBAAqB,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC/F,CAAC,CAAA,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACzC,iBAAM,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,4BAA4B,EAAE,CAAO,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,wBAAa,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,iBAAM,CAAC,0BAA0B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEzD,cAAc,CAAC,IAAI,CAAC,oCAAoC,GAAG,IAAI,CAAC,CAAC;IACrE,CAAC,CAAA,CAAC,CAAC;AACP,CAAC,CAAC"} \ No newline at end of file diff --git a/ElectronNET.Host/api/dialog.ts b/ElectronNET.Host/api/dialog.ts index ed0ef53..7cf6f1c 100644 --- a/ElectronNET.Host/api/dialog.ts +++ b/ElectronNET.Host/api/dialog.ts @@ -3,43 +3,42 @@ let electronSocket; export = (socket: SocketIO.Socket) => { electronSocket = socket; - socket.on('showMessageBox', (browserWindow, options, guid) => { + socket.on('showMessageBox', async (browserWindow, options, guid) => { if ('id' in browserWindow) { const window = BrowserWindow.fromId(browserWindow.id); - dialog.showMessageBox(window, options, (response, checkboxChecked) => { - electronSocket.emit('showMessageBoxComplete' + guid, [response, checkboxChecked]); - }); + const messageBoxReturnValue = await dialog.showMessageBox(window, options); + electronSocket.emit('showMessageBoxComplete' + guid, [messageBoxReturnValue.response, messageBoxReturnValue.checkboxChecked]); } else { const id = guid || options; - dialog.showMessageBox(browserWindow, (response, checkboxChecked) => { - electronSocket.emit('showMessageBoxComplete' + id, [response, checkboxChecked]); - }); + const messageBoxReturnValue = await dialog.showMessageBox(browserWindow); + + electronSocket.emit('showMessageBoxComplete' + id, [messageBoxReturnValue.response, messageBoxReturnValue.checkboxChecked]); } }); - socket.on('showOpenDialog', (browserWindow, options, guid) => { + socket.on('showOpenDialog', async (browserWindow, options, guid) => { const window = BrowserWindow.fromId(browserWindow.id); - dialog.showOpenDialog(window, options, (filePaths) => { - electronSocket.emit('showOpenDialogComplete' + guid, filePaths || []); - }); + const openDialogReturnValue = await dialog.showOpenDialog(window, options); + + electronSocket.emit('showOpenDialogComplete' + guid, openDialogReturnValue.filePaths || []); }); - socket.on('showSaveDialog', (browserWindow, options, guid) => { + socket.on('showSaveDialog', async (browserWindow, options, guid) => { const window = BrowserWindow.fromId(browserWindow.id); - dialog.showSaveDialog(window, options, (filename) => { - electronSocket.emit('showSaveDialogComplete' + guid, filename || ''); - }); + const saveDialogReturnValue = await dialog.showSaveDialog(window, options); + + electronSocket.emit('showSaveDialogComplete' + guid, saveDialogReturnValue.filePath || ''); }); socket.on('showErrorBox', (title, content) => { dialog.showErrorBox(title, content); }); - socket.on('showCertificateTrustDialog', (browserWindow, options, guid) => { + socket.on('showCertificateTrustDialog', async (browserWindow, options, guid) => { const window = BrowserWindow.fromId(browserWindow.id); - dialog.showCertificateTrustDialog(window, options, () => { - electronSocket.emit('showCertificateTrustDialogComplete' + guid); - }); + await dialog.showCertificateTrustDialog(window, options); + + electronSocket.emit('showCertificateTrustDialogComplete' + guid); }); }; diff --git a/ElectronNET.Host/api/notification.js b/ElectronNET.Host/api/notification.js index dcee04a..9f101aa 100644 --- a/ElectronNET.Host/api/notification.js +++ b/ElectronNET.Host/api/notification.js @@ -42,7 +42,7 @@ module.exports = (socket) => { } notification.show(); }); - socket.on('notificationIsSupported', (options) => { + socket.on('notificationIsSupported', () => { const isSupported = electron_1.Notification.isSupported; electronSocket.emit('notificationIsSupportedComplete', isSupported); }); diff --git a/ElectronNET.Host/api/notification.js.map b/ElectronNET.Host/api/notification.js.map index 2064074..3c89cbf 100644 --- a/ElectronNET.Host/api/notification.js.map +++ b/ElectronNET.Host/api/notification.js.map @@ -1 +1 @@ -{"version":3,"file":"notification.js","sourceRoot":"","sources":["notification.ts"],"names":[],"mappings":";AAAA,uCAAwC;AACxC,MAAM,aAAa,GAA4B,EAAE,CAAC;AAClD,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAuB,EAAE,EAAE;IACjC,cAAc,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,OAAO,EAAE,EAAE;QACxC,MAAM,YAAY,GAAG,IAAI,uBAAY,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACzB,cAAc,CAAC,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;SACN;QAED,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC1B,cAAc,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;SACN;QAED,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC1B,cAAc,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;SACN;QAED,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACtC,cAAc,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC5E,CAAC,CAAC,CAAC;SACN;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE;YAClB,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACvC,cAAc,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;SACN;QAED,IAAI,SAAS,EAAE;YACX,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACpC;QAED,YAAY,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7C,MAAM,WAAW,GAAG,uBAAY,CAAC,WAAW,CAAC;QAC7C,cAAc,CAAC,IAAI,CAAC,iCAAiC,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"notification.js","sourceRoot":"","sources":["notification.ts"],"names":[],"mappings":";AAAA,uCAAwC;AACxC,MAAM,aAAa,GAA4B,EAAE,CAAC;AAClD,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAuB,EAAE,EAAE;IACjC,cAAc,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,OAAO,EAAE,EAAE;QACxC,MAAM,YAAY,GAAG,IAAI,uBAAY,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACzB,cAAc,CAAC,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;SACN;QAED,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC1B,cAAc,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;SACN;QAED,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC1B,cAAc,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;SACN;QAED,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACtC,cAAc,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC5E,CAAC,CAAC,CAAC;SACN;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE;YAClB,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACvC,cAAc,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;SACN;QAED,IAAI,SAAS,EAAE;YACX,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACpC;QAED,YAAY,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACtC,MAAM,WAAW,GAAG,uBAAY,CAAC,WAAW,CAAC;QAC7C,cAAc,CAAC,IAAI,CAAC,iCAAiC,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"} \ No newline at end of file diff --git a/ElectronNET.Host/api/notification.ts b/ElectronNET.Host/api/notification.ts index 332f584..315f5b2 100644 --- a/ElectronNET.Host/api/notification.ts +++ b/ElectronNET.Host/api/notification.ts @@ -50,7 +50,7 @@ export = (socket: SocketIO.Socket) => { notification.show(); }); - socket.on('notificationIsSupported', (options) => { + socket.on('notificationIsSupported', () => { const isSupported = Notification.isSupported; electronSocket.emit('notificationIsSupportedComplete', isSupported); }); diff --git a/ElectronNET.Host/api/tray.js b/ElectronNET.Host/api/tray.js index 1dd42c7..6ed7e14 100644 --- a/ElectronNET.Host/api/tray.js +++ b/ElectronNET.Host/api/tray.js @@ -1,6 +1,5 @@ "use strict"; const electron_1 = require("electron"); -const path = require('path'); let tray; let electronSocket; module.exports = (socket) => { @@ -82,11 +81,6 @@ module.exports = (socket) => { tray.setTitle(title); } }); - socket.on('tray-setHighlightMode', (mode) => { - if (tray) { - tray.setHighlightMode(mode); - } - }); socket.on('tray-displayBalloon', (options) => { if (tray) { tray.displayBalloon(options); diff --git a/ElectronNET.Host/api/tray.js.map b/ElectronNET.Host/api/tray.js.map index c27f3d3..9d038fd 100644 --- a/ElectronNET.Host/api/tray.js.map +++ b/ElectronNET.Host/api/tray.js.map @@ -1 +1 @@ -{"version":3,"file":"tray.js","sourceRoot":"","sources":["tray.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tray.js","sourceRoot":"","sources":["tray.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/ElectronNET.Host/api/tray.ts b/ElectronNET.Host/api/tray.ts index 2a12e12..e7e8ef5 100644 --- a/ElectronNET.Host/api/tray.ts +++ b/ElectronNET.Host/api/tray.ts @@ -1,5 +1,4 @@ import { Menu, Tray, nativeImage } from 'electron'; -const path = require('path'); let tray: Electron.Tray; let electronSocket; @@ -97,12 +96,6 @@ export = (socket: SocketIO.Socket) => { } }); - socket.on('tray-setHighlightMode', (mode) => { - if (tray) { - tray.setHighlightMode(mode); - } - }); - socket.on('tray-displayBalloon', (options) => { if (tray) { tray.displayBalloon(options); diff --git a/ElectronNET.Host/api/webContents.js b/ElectronNET.Host/api/webContents.js index d8e8bad..d24e1c8 100644 --- a/ElectronNET.Host/api/webContents.js +++ b/ElectronNET.Host/api/webContents.js @@ -1,4 +1,13 @@ "use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; const electron_1 = require("electron"); const fs = require('fs'); let electronSocket; @@ -26,21 +35,17 @@ module.exports = (socket) => { getWindowById(id).webContents.openDevTools(); } }); - socket.on('webContents-printToPDF', (id, options, path) => { - getWindowById(id).webContents.printToPDF(options || {}, (error, data) => { + socket.on('webContents-printToPDF', (id, options = {}, path) => __awaiter(void 0, void 0, void 0, function* () { + const buffer = yield getWindowById(id).webContents.printToPDF(options); + fs.writeFile(path, buffer, (error) => { if (error) { - throw error; + electronSocket.emit('webContents-printToPDF-completed', false); + } + else { + electronSocket.emit('webContents-printToPDF-completed', true); } - fs.writeFile(path, data, (error) => { - if (error) { - electronSocket.emit('webContents-printToPDF-completed', false); - } - else { - electronSocket.emit('webContents-printToPDF-completed', true); - } - }); }); - }); + })); socket.on('webContents-getUrl', function (id) { const browserWindow = getWindowById(id); electronSocket.emit('webContents-getUrl' + id, browserWindow.webContents.getURL()); @@ -49,36 +54,31 @@ module.exports = (socket) => { const browserWindow = getWindowById(id); browserWindow.webContents.session.allowNTLMCredentialsForDomains(domains); }); - socket.on('webContents-session-clearAuthCache', (id, options, guid) => { + socket.on('webContents-session-clearAuthCache', (id, options, guid) => __awaiter(void 0, void 0, void 0, function* () { const browserWindow = getWindowById(id); - browserWindow.webContents.session.clearAuthCache(options, () => { - electronSocket.emit('webContents-session-clearAuthCache-completed' + guid); - }); - }); - socket.on('webContents-session-clearCache', (id, guid) => { + yield browserWindow.webContents.session.clearAuthCache(options); + electronSocket.emit('webContents-session-clearAuthCache-completed' + guid); + })); + socket.on('webContents-session-clearCache', (id, guid) => __awaiter(void 0, void 0, void 0, function* () { const browserWindow = getWindowById(id); - browserWindow.webContents.session.clearCache(() => { - electronSocket.emit('webContents-session-clearCache-completed' + guid); - }); - }); - socket.on('webContents-session-clearHostResolverCache', (id, guid) => { + yield browserWindow.webContents.session.clearCache(); + electronSocket.emit('webContents-session-clearCache-completed' + guid); + })); + socket.on('webContents-session-clearHostResolverCache', (id, guid) => __awaiter(void 0, void 0, void 0, function* () { const browserWindow = getWindowById(id); - browserWindow.webContents.session.clearHostResolverCache(() => { - electronSocket.emit('webContents-session-clearHostResolverCache-completed' + guid); - }); - }); - socket.on('webContents-session-clearStorageData', (id, guid) => { + yield browserWindow.webContents.session.clearHostResolverCache(); + electronSocket.emit('webContents-session-clearHostResolverCache-completed' + guid); + })); + socket.on('webContents-session-clearStorageData', (id, guid) => __awaiter(void 0, void 0, void 0, function* () { const browserWindow = getWindowById(id); - browserWindow.webContents.session.clearStorageData({}, () => { - electronSocket.emit('webContents-session-clearStorageData-completed' + guid); - }); - }); - socket.on('webContents-session-clearStorageData-options', (id, options, guid) => { + yield browserWindow.webContents.session.clearStorageData({}); + electronSocket.emit('webContents-session-clearStorageData-completed' + guid); + })); + socket.on('webContents-session-clearStorageData-options', (id, options, guid) => __awaiter(void 0, void 0, void 0, function* () { const browserWindow = getWindowById(id); - browserWindow.webContents.session.clearStorageData(options, () => { - electronSocket.emit('webContents-session-clearStorageData-options-completed' + guid); - }); - }); + yield browserWindow.webContents.session.clearStorageData(options); + electronSocket.emit('webContents-session-clearStorageData-options-completed' + guid); + })); socket.on('webContents-session-createInterruptedDownload', (id, options) => { const browserWindow = getWindowById(id); browserWindow.webContents.session.createInterruptedDownload(options); @@ -95,18 +95,16 @@ module.exports = (socket) => { const browserWindow = getWindowById(id); browserWindow.webContents.session.flushStorageData(); }); - socket.on('webContents-session-getBlobData', (id, identifier, guid) => { + socket.on('webContents-session-getBlobData', (id, identifier, guid) => __awaiter(void 0, void 0, void 0, function* () { const browserWindow = getWindowById(id); - browserWindow.webContents.session.getBlobData(identifier, (buffer) => { - electronSocket.emit('webContents-session-getBlobData-completed' + guid, buffer.buffer); - }); - }); - socket.on('webContents-session-getCacheSize', (id, guid) => { + const buffer = yield browserWindow.webContents.session.getBlobData(identifier); + electronSocket.emit('webContents-session-getBlobData-completed' + guid, buffer.buffer); + })); + socket.on('webContents-session-getCacheSize', (id, guid) => __awaiter(void 0, void 0, void 0, function* () { const browserWindow = getWindowById(id); - browserWindow.webContents.session.getCacheSize((size) => { - electronSocket.emit('webContents-session-getCacheSize-completed' + guid, size); - }); - }); + const size = yield browserWindow.webContents.session.getCacheSize(); + electronSocket.emit('webContents-session-getCacheSize-completed' + guid, size); + })); socket.on('webContents-session-getPreloads', (id, guid) => { const browserWindow = getWindowById(id); const preloads = browserWindow.webContents.session.getPreloads(); @@ -117,12 +115,11 @@ module.exports = (socket) => { const userAgent = browserWindow.webContents.session.getUserAgent(); electronSocket.emit('webContents-session-getUserAgent-completed' + guid, userAgent); }); - socket.on('webContents-session-resolveProxy', (id, url, guid) => { + socket.on('webContents-session-resolveProxy', (id, url, guid) => __awaiter(void 0, void 0, void 0, function* () { const browserWindow = getWindowById(id); - browserWindow.webContents.session.resolveProxy(url, (proxy) => { - electronSocket.emit('webContents-session-resolveProxy-completed' + guid, proxy); - }); - }); + const proxy = yield browserWindow.webContents.session.resolveProxy(url); + electronSocket.emit('webContents-session-resolveProxy-completed' + guid, proxy); + })); socket.on('webContents-session-setDownloadPath', (id, path) => { const browserWindow = getWindowById(id); browserWindow.webContents.session.setDownloadPath(path); @@ -131,12 +128,11 @@ module.exports = (socket) => { const browserWindow = getWindowById(id); browserWindow.webContents.session.setPreloads(preloads); }); - socket.on('webContents-session-setProxy', (id, configuration, guid) => { + socket.on('webContents-session-setProxy', (id, configuration, guid) => __awaiter(void 0, void 0, void 0, function* () { const browserWindow = getWindowById(id); - browserWindow.webContents.session.setProxy(configuration, () => { - electronSocket.emit('webContents-session-setProxy-completed' + guid); - }); - }); + yield browserWindow.webContents.session.setProxy(configuration); + electronSocket.emit('webContents-session-setProxy-completed' + guid); + })); socket.on('webContents-session-setUserAgent', (id, userAgent, acceptLanguages) => { const browserWindow = getWindowById(id); browserWindow.webContents.session.setUserAgent(userAgent, acceptLanguages); diff --git a/ElectronNET.Host/api/webContents.js.map b/ElectronNET.Host/api/webContents.js.map index 4b02bf3..be4abc4 100644 --- a/ElectronNET.Host/api/webContents.js.map +++ b/ElectronNET.Host/api/webContents.js.map @@ -1 +1 @@ -{"version":3,"file":"webContents.js","sourceRoot":"","sources":["webContents.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"webContents.js","sourceRoot":"","sources":["webContents.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/ElectronNET.Host/api/webContents.ts b/ElectronNET.Host/api/webContents.ts index be25706..3f8572f 100644 --- a/ElectronNET.Host/api/webContents.ts +++ b/ElectronNET.Host/api/webContents.ts @@ -30,19 +30,15 @@ export = (socket: SocketIO.Socket) => { } }); - socket.on('webContents-printToPDF', (id, options, path) => { - getWindowById(id).webContents.printToPDF(options || {}, (error, data) => { - if (error) { - throw error; - } + socket.on('webContents-printToPDF', async (id, options = {}, path) => { + const buffer = await getWindowById(id).webContents.printToPDF(options); - fs.writeFile(path, data, (error) => { - if (error) { - electronSocket.emit('webContents-printToPDF-completed', false); - } else { - electronSocket.emit('webContents-printToPDF-completed', true); - } - }); + fs.writeFile(path, buffer, (error) => { + if (error) { + electronSocket.emit('webContents-printToPDF-completed', false); + } else { + electronSocket.emit('webContents-printToPDF-completed', true); + } }); }); @@ -56,39 +52,39 @@ export = (socket: SocketIO.Socket) => { browserWindow.webContents.session.allowNTLMCredentialsForDomains(domains); }); - socket.on('webContents-session-clearAuthCache', (id, options, guid) => { + socket.on('webContents-session-clearAuthCache', async (id, options, guid) => { const browserWindow = getWindowById(id); - browserWindow.webContents.session.clearAuthCache(options, () => { - electronSocket.emit('webContents-session-clearAuthCache-completed' + guid); - }); + await browserWindow.webContents.session.clearAuthCache(options); + + electronSocket.emit('webContents-session-clearAuthCache-completed' + guid); }); - socket.on('webContents-session-clearCache', (id, guid) => { + socket.on('webContents-session-clearCache', async (id, guid) => { const browserWindow = getWindowById(id); - browserWindow.webContents.session.clearCache(() => { - electronSocket.emit('webContents-session-clearCache-completed' + guid); - }); + await browserWindow.webContents.session.clearCache(); + + electronSocket.emit('webContents-session-clearCache-completed' + guid); }); - socket.on('webContents-session-clearHostResolverCache', (id, guid) => { + socket.on('webContents-session-clearHostResolverCache', async (id, guid) => { const browserWindow = getWindowById(id); - browserWindow.webContents.session.clearHostResolverCache(() => { - electronSocket.emit('webContents-session-clearHostResolverCache-completed' + guid); - }); + await browserWindow.webContents.session.clearHostResolverCache(); + + electronSocket.emit('webContents-session-clearHostResolverCache-completed' + guid); }); - socket.on('webContents-session-clearStorageData', (id, guid) => { + socket.on('webContents-session-clearStorageData', async (id, guid) => { const browserWindow = getWindowById(id); - browserWindow.webContents.session.clearStorageData({}, () => { - electronSocket.emit('webContents-session-clearStorageData-completed' + guid); - }); + await browserWindow.webContents.session.clearStorageData({}); + + electronSocket.emit('webContents-session-clearStorageData-completed' + guid); }); - socket.on('webContents-session-clearStorageData-options', (id, options, guid) => { + socket.on('webContents-session-clearStorageData-options', async (id, options, guid) => { const browserWindow = getWindowById(id); - browserWindow.webContents.session.clearStorageData(options, () => { - electronSocket.emit('webContents-session-clearStorageData-options-completed' + guid); - }); + await browserWindow.webContents.session.clearStorageData(options); + + electronSocket.emit('webContents-session-clearStorageData-options-completed' + guid); }); socket.on('webContents-session-createInterruptedDownload', (id, options) => { @@ -111,18 +107,18 @@ export = (socket: SocketIO.Socket) => { browserWindow.webContents.session.flushStorageData(); }); - socket.on('webContents-session-getBlobData', (id, identifier, guid) => { + socket.on('webContents-session-getBlobData', async (id, identifier, guid) => { const browserWindow = getWindowById(id); - browserWindow.webContents.session.getBlobData(identifier, (buffer) => { - electronSocket.emit('webContents-session-getBlobData-completed' + guid, buffer.buffer); - }); + const buffer = await browserWindow.webContents.session.getBlobData(identifier); + + electronSocket.emit('webContents-session-getBlobData-completed' + guid, buffer.buffer); }); - socket.on('webContents-session-getCacheSize', (id, guid) => { + socket.on('webContents-session-getCacheSize', async (id, guid) => { const browserWindow = getWindowById(id); - browserWindow.webContents.session.getCacheSize((size) => { - electronSocket.emit('webContents-session-getCacheSize-completed' + guid, size); - }); + const size = await browserWindow.webContents.session.getCacheSize(); + + electronSocket.emit('webContents-session-getCacheSize-completed' + guid, size); }); socket.on('webContents-session-getPreloads', (id, guid) => { @@ -139,11 +135,11 @@ export = (socket: SocketIO.Socket) => { electronSocket.emit('webContents-session-getUserAgent-completed' + guid, userAgent); }); - socket.on('webContents-session-resolveProxy', (id, url, guid) => { + socket.on('webContents-session-resolveProxy', async (id, url, guid) => { const browserWindow = getWindowById(id); - browserWindow.webContents.session.resolveProxy(url, (proxy) => { - electronSocket.emit('webContents-session-resolveProxy-completed' + guid, proxy); - }); + const proxy = await browserWindow.webContents.session.resolveProxy(url); + + electronSocket.emit('webContents-session-resolveProxy-completed' + guid, proxy); }); socket.on('webContents-session-setDownloadPath', (id, path) => { @@ -156,11 +152,11 @@ export = (socket: SocketIO.Socket) => { browserWindow.webContents.session.setPreloads(preloads); }); - socket.on('webContents-session-setProxy', (id, configuration, guid) => { + socket.on('webContents-session-setProxy', async (id, configuration, guid) => { const browserWindow = getWindowById(id); - browserWindow.webContents.session.setProxy(configuration, () => { - electronSocket.emit('webContents-session-setProxy-completed' + guid); - }); + await browserWindow.webContents.session.setProxy(configuration); + + electronSocket.emit('webContents-session-setProxy-completed' + guid); }); socket.on('webContents-session-setUserAgent', (id, userAgent, acceptLanguages) => { diff --git a/ElectronNET.Host/package-lock.json b/ElectronNET.Host/package-lock.json index 21bebd3..e2c4e61 100644 --- a/ElectronNET.Host/package-lock.json +++ b/ElectronNET.Host/package-lock.json @@ -4,6 +4,57 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@electron/get": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.7.1.tgz", + "integrity": "sha512-+BOIzkmYbe+oOBGqSByq8zXYXCFztccoymR3uNkvX5ckJ/5xU+4peVyEvFyH6+zfv58hCo99RxgIpwuaMfRtRg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "global-agent": "^2.0.2", + "global-tunnel-ng": "^2.7.1", + "got": "^9.6.0", + "sanitize-filename": "^1.6.2", + "sumchecker": "^3.0.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, "@types/node": { "version": "10.14.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.6.tgz", @@ -33,30 +84,15 @@ "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "color-convert": "^1.9.0" } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -65,32 +101,11 @@ "sprintf-js": "~1.0.2" } }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, "arraybuffer.slice": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, "async": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", @@ -104,50 +119,6 @@ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - } - } - }, "backo2": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", @@ -169,15 +140,6 @@ "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, "better-assert": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", @@ -204,6 +166,12 @@ "bluebird": "^3.5.4" } }, + "boolean": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.0.tgz", + "integrity": "sha512-OElxJ1lUSinuoUnkpOgLmxp0DC4ytEhODEL6QJU0NpxE/mI4rUSh8h1P1Wkvfi3xQEBcxXR2gBIPNYNuaFcAbQ==", + "dev": true + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -246,69 +214,62 @@ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, "callsite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } }, "color-convert": { "version": "1.9.3", @@ -325,19 +286,10 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "component-bind": { @@ -371,44 +323,17 @@ "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } + } + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "dev": true, + "optional": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, "cookie": { @@ -416,99 +341,89 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, + "core-js": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.4.4.tgz", + "integrity": "sha512-vKea1DrcLA80Hrfc7AQgfoGvEaByfR5mH08t+zuWOWY94TFBmabdEL56mUbcijvadG9RxsXR2gUUFrfj4/iTcA==", + "dev": true, + "optional": true + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "defer-to-connect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.0.tgz", + "integrity": "sha512-WE2sZoctWm/v4smfCAdjYbrfS55JiMRdlY9ZubFhsYbteCK9+BvAx4YV7nPjYM6ZnX5BcoVKwfmyx9sIFTgQMQ==", "dev": true }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "optional": true, + "requires": { + "object-keys": "^1.0.12" + } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true, + "optional": true }, "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", + "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", "dev": true }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true }, "electron": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/electron/-/electron-5.0.8.tgz", - "integrity": "sha512-wkUVE2GaYCsqQTsISSHWkIkcdpwLwZ1jhzAXSFFoSzsTgugmzhX60rJjIccotUmZ0iPzw+u4ahfcaJ0eslrPNQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/electron/-/electron-7.1.2.tgz", + "integrity": "sha512-7hjONYt2GlQfKuKgQrhhUL1P9lbGWLBfMUq+2QFU3yeLtCvM0ROfPJCRP4OF5pVp3KDyfFp4DtmhuVzAnxV3jA==", "dev": true, "requires": { - "@types/node": "^10.12.18", - "electron-download": "^4.1.0", + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", "extract-zip": "^1.0.3" - } - }, - "electron-download": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-4.1.1.tgz", - "integrity": "sha512-FjEWG9Jb/ppK/2zToP+U5dds114fM1ZOJqMAR4aXXL5CvyPE9fiqBK/9YcwC9poIFQTEJk/EM/zyRwziziRZrg==", - "dev": true, - "requires": { - "debug": "^3.0.0", - "env-paths": "^1.0.0", - "fs-extra": "^4.0.1", - "minimist": "^1.2.0", - "nugget": "^2.0.1", - "path-exists": "^3.0.0", - "rc": "^1.2.1", - "semver": "^5.4.1", - "sumchecker": "^2.0.2" + }, + "dependencies": { + "@types/node": { + "version": "12.12.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.14.tgz", + "integrity": "sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA==", + "dev": true + } } }, "electron-updater": { @@ -527,6 +442,22 @@ "source-map-support": "^0.5.9" } }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "optional": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, "engine.io": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.3.2.tgz", @@ -601,19 +532,17 @@ } }, "env-paths": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", - "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", "dev": true }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } + "optional": true }, "escape-string-regexp": { "version": "1.0.5", @@ -627,15 +556,9 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "extract-zip": { @@ -667,24 +590,6 @@ } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, "fd-slicer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", @@ -694,53 +599,23 @@ "pend": "~1.2.0" } }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - } - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", + "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + } } }, "fs-extra-p": { @@ -770,25 +645,26 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true, + "optional": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "pump": "^3.0.0" } }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -799,36 +675,80 @@ "path-is-absolute": "^1.0.0" } }, + "global-agent": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.7.tgz", + "integrity": "sha512-ooK7eqGYZku+LgnbfH/Iv0RJ74XfhrBZDlke1QSzcBt0bw1PmJcnRADPAQuFE+R45pKKDTynAr25SBasY2kvow==", + "dev": true, + "optional": true, + "requires": { + "boolean": "^3.0.0", + "core-js": "^3.4.1", + "es6-error": "^4.1.1", + "matcher": "^2.0.0", + "roarr": "^2.14.5", + "semver": "^6.3.0", + "serialize-error": "^5.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "optional": true + } + } + }, + "global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "optional": true, + "requires": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + } + }, + "globalthis": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.0.tgz", + "integrity": "sha512-vcCAZTJ3r5Qcu5l8/2oyVdoFwxKgfYnMTR2vwWeux/NAVZK3PwcMaWkdUIn4GJbmKuRK7xcvDsLuK+CKcXyodg==", + "dev": true, + "optional": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "object-keys": "^1.0.12" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, "graceful-fs": { "version": "4.1.15", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, "has-binary2": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", @@ -855,37 +775,17 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "http-cache-semantics": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", + "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==", "dev": true }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, "image-size": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.4.tgz", "integrity": "sha512-GqPgxs+VkOr12aWwjSkyRzf5atzObWpFtiRuDgxCl2I/SDpZOKZFRD3iIAeAN6/usmn8SeLWRt7a8JRYK0Whbw==" }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", @@ -911,31 +811,8 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } + "optional": true }, "is-number-like": { "version": "1.0.8", @@ -945,34 +822,16 @@ "lodash.isfinite": "^3.3.2" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { @@ -984,29 +843,18 @@ "esprima": "^4.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "dev": true, + "optional": true }, "jsonfile": { "version": "4.0.0", @@ -1016,16 +864,13 @@ "graceful-fs": "^4.1.6" } }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", "dev": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" + "json-buffer": "3.0.0" } }, "lazy-val": { @@ -1033,19 +878,6 @@ "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz", "integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==" }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", @@ -1061,38 +893,29 @@ "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=" }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "map-obj": { + "lowercase-keys": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "matcher": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-2.1.0.tgz", + "integrity": "sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==", "dev": true, + "optional": true, "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "optional": true + } } }, "mime-db": { @@ -1108,6 +931,12 @@ "mime-db": "~1.37.0" } }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -1118,9 +947,9 @@ } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mkdirp": { @@ -1130,14 +959,6 @@ "dev": true, "requires": { "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } } }, "ms": { @@ -1150,88 +971,32 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + }, + "npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", "dev": true, + "optional": true, "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - } + "config-chain": "^1.1.11", + "pify": "^3.0.0" } }, - "nugget": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", - "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", - "dev": true, - "requires": { - "debug": "^2.1.3", - "minimist": "^1.1.0", - "pretty-bytes": "^1.0.2", - "progress-stream": "^1.1.0", - "request": "^2.45.0", - "single-line-log": "^1.1.2", - "throttleit": "0.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, "object-component": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" }, "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, "once": { @@ -1243,20 +1008,17 @@ "wrappy": "1" } }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, "pako": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, "parseqs": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", @@ -1273,15 +1035,9 @@ "better-assert": "~1.0.0" } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, "path-is-absolute": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, @@ -1291,49 +1047,18 @@ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true, - "requires": { - "pinkie": "^2.0.0" - } + "optional": true }, "portscanner": { "version": "2.2.0", @@ -1344,15 +1069,11 @@ "is-number-like": "^1.0.3" } }, - "pretty-bytes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", - "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.1.0" - } + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true }, "process-nextick-args": { "version": "2.0.1", @@ -1360,146 +1081,94 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "progress-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", - "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true, + "optional": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "speedometer": "~0.1.2", - "through2": "~0.2.3" - } - }, - "psl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz", - "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "resolve": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz", - "integrity": "sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", + "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", "dev": true, "requires": { "path-parse": "^1.0.6" } }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "roarr": { + "version": "2.14.6", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.14.6.tgz", + "integrity": "sha512-qjbw0BEesKA+3XFBPt+KVe1PC/Z6ShfJ4wPlx2XifqH5h2Lj8/KQT5XJTsy3n1Es5kai+BwKALaECW3F70B1cg==", + "dev": true, + "optional": true, + "requires": { + "boolean": "^3.0.0", + "detect-node": "^2.0.4", + "globalthis": "^1.0.0", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true, + "optional": true + } + } + }, "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "requires": { + "truncate-utf8-bytes": "^1.0.0" + } }, "sax": { "version": "1.2.4", @@ -1511,19 +1180,21 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "single-line-log": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", - "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true, + "optional": true + }, + "serialize-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz", + "integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==", + "dev": true, + "optional": true, "requires": { - "string-width": "^1.0.1" + "type-fest": "^0.8.0" } }, "socket.io": { @@ -1634,162 +1305,36 @@ "source-map": "^0.6.0" } }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", - "dev": true - }, - "speedometer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", - "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", - "dev": true - }, "sprintf-js": { "version": "1.0.3", "resolved": "http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "safe-buffer": "~5.1.0" } }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, "sumchecker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz", - "integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", "dev": true, "requires": { - "debug": "^2.2.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "debug": "^4.1.0" } }, "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "throttleit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", - "dev": true - }, - "through2": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", - "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "readable-stream": "~1.1.9", - "xtend": "~2.1.1" + "has-flag": "^3.0.0" } }, "to-array": { @@ -1797,54 +1342,46 @@ "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "trim-newlines": { + "to-readable-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", "dev": true }, + "truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", + "dev": true, + "requires": { + "utf8-byte-length": "^1.0.1" + } + }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", "dev": true }, "tslint": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.0.tgz", - "integrity": "sha512-CKEcH1MHUBhoV43SA/Jmy1l24HJJgI0eyLbBNSRyFlsQvb9v6Zdq+Nz2vEOH00nC5SUx4SneJ59PZUS/ARcokQ==", + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", + "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", "dev": true, "requires": { - "babel-code-frame": "^6.22.0", + "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", "chalk": "^2.3.0", "commander": "^2.12.1", - "diff": "^3.2.0", + "diff": "^4.0.1", "glob": "^7.1.1", - "js-yaml": "^3.7.0", + "js-yaml": "^3.13.1", "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", "resolve": "^1.3.2", "semver": "^5.3.0", "tslib": "^1.8.0", - "tsutils": "^2.27.2" + "tsutils": "^2.29.0" } }, "tsutils": { @@ -1856,20 +1393,19 @@ "tslib": "^1.8.1" } }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } + "optional": true }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "optional": true }, "typedarray": { "version": "0.0.6", @@ -1878,9 +1414,9 @@ "dev": true }, "typescript": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.2.tgz", - "integrity": "sha512-VCj5UiSyHBjwfYacmDuc/NOk4QQixbE+Wn7MFJuS0nRuPQbof132Pw4u53dm264O8LPc2MVsc7RJNml5szurkg==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz", + "integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==", "dev": true }, "universalify": { @@ -1888,48 +1424,27 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "punycode": "^2.1.0" + "prepend-http": "^2.0.0" } }, + "utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", + "dev": true + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -1949,15 +1464,6 @@ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" }, - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, - "requires": { - "object-keys": "~0.4.0" - } - }, "yauzl": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", diff --git a/ElectronNET.Host/package.json b/ElectronNET.Host/package.json index bef6799..c1ff2f5 100644 --- a/ElectronNET.Host/package.json +++ b/ElectronNET.Host/package.json @@ -20,8 +20,8 @@ "devDependencies": { "@types/node": "^10.14.4", "@types/socket.io": "^2.1.2", - "tslint": "^5.12.0", - "typescript": "^3.2.2", - "electron": "^5.0.8" + "electron": "^7.1.2", + "tslint": "^5.20.1", + "typescript": "^3.7.2" } } From a788d715304d74b293f7bbdbd999687b721925b3 Mon Sep 17 00:00:00 2001 From: Gregor Biswanger Date: Sat, 30 Nov 2019 01:30:22 +0100 Subject: [PATCH 26/29] Implemented Electrons CommandLine-API, Implemented arguments support, Implemented different manifest file support --- ElectronNET.API/App.cs | 45 ++----- ElectronNET.API/CommandLine.cs | 116 ++++++++++++++++++ .../Actions/DeployEmbeddedElectronFiles.cs | 1 + .../Commands/StartElectronCommand.cs | 34 +++-- ElectronNET.CLI/ElectronNET.CLI.csproj | 49 ++------ ElectronNET.Host/.vscode/launch.json | 6 +- ElectronNET.Host/api/app.js | 6 - ElectronNET.Host/api/app.js.map | 2 +- ElectronNET.Host/api/app.ts | 8 -- ElectronNET.Host/api/commandLine.js | 20 +++ ElectronNET.Host/api/commandLine.js.map | 1 + ElectronNET.Host/api/commandLine.ts | 23 ++++ ElectronNET.Host/main.js | 9 +- 13 files changed, 223 insertions(+), 97 deletions(-) create mode 100644 ElectronNET.API/CommandLine.cs create mode 100644 ElectronNET.Host/api/commandLine.js create mode 100644 ElectronNET.Host/api/commandLine.js.map create mode 100644 ElectronNET.Host/api/commandLine.ts diff --git a/ElectronNET.API/App.cs b/ElectronNET.API/App.cs index ea939e2..0f8e36d 100644 --- a/ElectronNET.API/App.cs +++ b/ElectronNET.API/App.cs @@ -351,7 +351,10 @@ namespace ElectronNET.API private event Action _accessibilitySupportChanged; - internal App() { } + internal App() + { + CommandLine = new CommandLine(); + } internal static App Instance { @@ -1224,7 +1227,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)success); }); - BridgeConnector.Socket.Emit("appSetBadgeCount"); + BridgeConnector.Socket.Emit("appSetBadgeCount", count); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -1255,6 +1258,11 @@ namespace ElectronNET.API } } + /// + /// Manipulate the command line arguments for your app that Chromium reads. + /// + public CommandLine CommandLine { get; internal set; } + /// /// Whether the current desktop environment is Unity launcher. /// @@ -1380,39 +1388,6 @@ namespace ElectronNET.API BridgeConnector.Socket.Emit("appSetAboutPanelOptions", JObject.FromObject(options, _jsonSerializer)); } - /// - /// Append a switch (with optional value) to Chromium's command line. Note: This - /// will not affect process.argv, and is mainly used by developers to control some - /// low-level Chromium behaviors. - /// - /// A command-line switch. - public void CommandLineAppendSwitch(string theSwtich) - { - BridgeConnector.Socket.Emit("appCommandLineAppendSwitch", theSwtich); - } - - /// - /// Append a switch (with optional value) to Chromium's command line. Note: This - /// will not affect process.argv, and is mainly used by developers to control some - /// low-level Chromium behaviors. - /// - /// A command-line switch. - /// A value for the given switch. - public void CommandLineAppendSwitch(string theSwtich, string value) - { - BridgeConnector.Socket.Emit("appCommandLineAppendSwitch", theSwtich, value); - } - - /// - /// Append an argument to Chromium's command line. The argument will be quoted - /// correctly.Note: This will not affect process.argv. - /// - /// The argument to append to the command line. - public void CommandLineAppendArgument(string value) - { - BridgeConnector.Socket.Emit("appCommandLineAppendArgument", value); - } - /// /// When critical is passed, the dock icon will bounce until either the application /// becomes active or the request is canceled.When informational is passed, the diff --git a/ElectronNET.API/CommandLine.cs b/ElectronNET.API/CommandLine.cs new file mode 100644 index 0000000..63466b4 --- /dev/null +++ b/ElectronNET.API/CommandLine.cs @@ -0,0 +1,116 @@ +using System.Threading; +using System.Threading.Tasks; + +namespace ElectronNET.API +{ + /// + /// Manipulate the command line arguments for your app that Chromium reads. + /// + public sealed class CommandLine + { + internal CommandLine() { } + + internal static CommandLine Instance + { + get + { + if (_commandLine == null) + { + lock (_syncRoot) + { + if (_commandLine == null) + { + _commandLine = new CommandLine(); + } + } + } + + return _commandLine; + } + } + + private static CommandLine _commandLine; + + private static object _syncRoot = new object(); + + /// + /// Append a switch (with optional value) to Chromium's command line. + /// + /// A command-line switch, without the leading -- + /// (optional) - A value for the given switch + /// + /// Note: This will not affect process.argv. The intended usage of this function is to control Chromium's behavior. + /// + public void AppendSwitch(string the_switch, string value = "") + { + BridgeConnector.Socket.Emit("appCommandLineAppendSwitch", the_switch, value); + } + + /// + /// Append an argument to Chromium's command line. The argument will be quoted correctly. Switches will precede arguments regardless of appending order. + /// + /// If you're appending an argument like --switch=value, consider using appendSwitch('switch', 'value') instead. + /// + /// The argument to append to the command line + /// + /// Note: This will not affect process.argv. The intended usage of this function is to control Chromium's behavior. + /// + public void AppendArgument(string value) + { + BridgeConnector.Socket.Emit("appCommandLineAppendArgument", value); + } + + /// + /// Whether the command-line switch is present. + /// + /// A command-line switch + /// + /// Whether the command-line switch is present. + public async Task HasSwitchAsync(string switchName, CancellationToken cancellationToken = default(CancellationToken)) + { + cancellationToken.ThrowIfCancellationRequested(); + + var taskCompletionSource = new TaskCompletionSource(); + using (cancellationToken.Register(() => taskCompletionSource.TrySetCanceled())) + { + BridgeConnector.Socket.On("appCommandLineHasSwitchCompleted", (result) => + { + BridgeConnector.Socket.Off("appCommandLineHasSwitchCompleted"); + taskCompletionSource.SetResult((bool)result); + }); + + BridgeConnector.Socket.Emit("appCommandLineHasSwitch", switchName); + + return await taskCompletionSource.Task.ConfigureAwait(false); + } + } + + /// + /// The command-line switch value. + /// + /// A command-line switch + /// + /// The command-line switch value. + /// + /// Note: When the switch is not present or has no value, it returns empty string. + /// + public async Task GetSwitchValueAsync(string switchName, CancellationToken cancellationToken = default(CancellationToken)) + { + cancellationToken.ThrowIfCancellationRequested(); + + var taskCompletionSource = new TaskCompletionSource(); + using (cancellationToken.Register(() => taskCompletionSource.TrySetCanceled())) + { + BridgeConnector.Socket.On("appCommandLineGetSwitchValueCompleted", (result) => + { + BridgeConnector.Socket.Off("appCommandLineGetSwitchValueCompleted"); + taskCompletionSource.SetResult((string)result); + }); + + BridgeConnector.Socket.Emit("appCommandLineGetSwitchValue", switchName); + + return await taskCompletionSource.Task.ConfigureAwait(false); + } + } + } +} diff --git a/ElectronNET.CLI/Commands/Actions/DeployEmbeddedElectronFiles.cs b/ElectronNET.CLI/Commands/Actions/DeployEmbeddedElectronFiles.cs index 5c82bf0..9f999e3 100644 --- a/ElectronNET.CLI/Commands/Actions/DeployEmbeddedElectronFiles.cs +++ b/ElectronNET.CLI/Commands/Actions/DeployEmbeddedElectronFiles.cs @@ -18,6 +18,7 @@ namespace ElectronNET.CLI.Commands.Actions EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "ipc.js", "api."); EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "app.js", "api."); EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "browserWindows.js", "api."); + EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "commandLine.js", "api."); EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "dialog.js", "api."); EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "menu.js", "api."); EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "notification.js", "api."); diff --git a/ElectronNET.CLI/Commands/StartElectronCommand.cs b/ElectronNET.CLI/Commands/StartElectronCommand.cs index de27180..e039cc5 100644 --- a/ElectronNET.CLI/Commands/StartElectronCommand.cs +++ b/ElectronNET.CLI/Commands/StartElectronCommand.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Runtime.InteropServices; using System.Threading.Tasks; using ElectronNET.CLI.Commands.Actions; @@ -21,19 +22,27 @@ namespace ElectronNET.CLI.Commands _args = args; } + private string _aspCoreProjectPath = "project-path"; + private string _arguments = "args"; + private string _manifest = "manifest"; + public Task ExecuteAsync() { return Task.Run(() => { Console.WriteLine("Start Electron Desktop Application..."); + SimpleCommandLineParser parser = new SimpleCommandLineParser(); + parser.Parse(_args); + string aspCoreProjectPath = ""; - if (_args.Length > 0) + if (parser.Arguments.ContainsKey(_aspCoreProjectPath)) { - if (Directory.Exists(_args[0])) + string projectPath = parser.Arguments[_aspCoreProjectPath].First(); + if (Directory.Exists(projectPath)) { - aspCoreProjectPath = _args[0]; + aspCoreProjectPath = projectPath; } } else @@ -83,19 +92,30 @@ namespace ElectronNET.CLI.Commands ProcessHelper.CmdExecute(@"npx tsc -p ../../ElectronHostHook", tempPath); } + string arguments = ""; + + if (parser.Arguments.ContainsKey(_arguments)) + { + arguments = string.Join(' ', parser.Arguments[_arguments]); + } + + if (parser.Arguments.ContainsKey(_manifest)) + { + arguments += " --manifest=" + parser.Arguments[_manifest].First(); + } + string path = Path.Combine(tempPath, "node_modules", ".bin"); - - bool isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows); + if (isWindows) { Console.WriteLine("Invoke electron.cmd - in dir: " + path); - ProcessHelper.CmdExecute(@"electron.cmd ""..\..\main.js""", path); + ProcessHelper.CmdExecute(@"electron.cmd ""..\..\main.js"" " + arguments, path); } else { Console.WriteLine("Invoke electron - in dir: " + path); - ProcessHelper.CmdExecute(@"./electron ""../../main.js""", path); + ProcessHelper.CmdExecute(@"./electron ""../../main.js"" " + arguments, path); } return true; diff --git a/ElectronNET.CLI/ElectronNET.CLI.csproj b/ElectronNET.CLI/ElectronNET.CLI.csproj index 13b8df5..91040ad 100644 --- a/ElectronNET.CLI/ElectronNET.CLI.csproj +++ b/ElectronNET.CLI/ElectronNET.CLI.csproj @@ -4,7 +4,7 @@ Exe netcoreapp3.0 electronize - + DotnetCliTool true ..\artifacts @@ -14,8 +14,10 @@ Gregor Biswanger, Robert Muehsig Electron.NET - Building cross platform electron based desktop apps with .NET Core and ASP.NET Core. -This package contains the dotnet tooling to electronize your application. + + Building cross platform electron based desktop apps with .NET Core and ASP.NET Core. + This package contains the dotnet tooling to electronize your application. + MIT https://github.com/ElectronNET/Electron.NET/ https://github.com/ElectronNET/Electron.NET/ @@ -31,63 +33,34 @@ This package contains the dotnet tooling to electronize your application. - + - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - + - - - - - - diff --git a/ElectronNET.Host/.vscode/launch.json b/ElectronNET.Host/.vscode/launch.json index 0b5625c..bb2469e 100644 --- a/ElectronNET.Host/.vscode/launch.json +++ b/ElectronNET.Host/.vscode/launch.json @@ -10,7 +10,11 @@ "name": "Launch Electron App", "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", "program": "${workspaceFolder}/main.js", - "sourceMaps": true + "sourceMaps": true, + "args": [ + "--test=true", + "--blub=wuhuu" + ] } ] } \ No newline at end of file diff --git a/ElectronNET.Host/api/app.js b/ElectronNET.Host/api/app.js index f00d20d..2f3f553 100644 --- a/ElectronNET.Host/api/app.js +++ b/ElectronNET.Host/api/app.js @@ -217,12 +217,6 @@ module.exports = (socket, app) => { socket.on('appSetAboutPanelOptions', (options) => { app.setAboutPanelOptions(options); }); - socket.on('appCommandLineAppendSwitch', (theSwitch, value) => { - app.commandLine.appendSwitch(theSwitch, value); - }); - socket.on('appCommandLineAppendArgument', (value) => { - app.commandLine.appendArgument(value); - }); socket.on('appDockBounce', (type) => { const id = app.dock.bounce(type); electronSocket.emit('appDockBounceCompleted', id); diff --git a/ElectronNET.Host/api/app.js.map b/ElectronNET.Host/api/app.js.map index cc80a34..55799ed 100644 --- a/ElectronNET.Host/api/app.js.map +++ b/ElectronNET.Host/api/app.js.map @@ -1 +1 @@ -{"version":3,"file":"app.js","sourceRoot":"","sources":["app.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"app.js","sourceRoot":"","sources":["app.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/ElectronNET.Host/api/app.ts b/ElectronNET.Host/api/app.ts index 55695e7..05cf38f 100644 --- a/ElectronNET.Host/api/app.ts +++ b/ElectronNET.Host/api/app.ts @@ -262,14 +262,6 @@ export = (socket: SocketIO.Socket, app: Electron.App) => { app.setAboutPanelOptions(options); }); - socket.on('appCommandLineAppendSwitch', (theSwitch, value) => { - app.commandLine.appendSwitch(theSwitch, value); - }); - - socket.on('appCommandLineAppendArgument', (value) => { - app.commandLine.appendArgument(value); - }); - socket.on('appDockBounce', (type) => { const id = app.dock.bounce(type); electronSocket.emit('appDockBounceCompleted', id); diff --git a/ElectronNET.Host/api/commandLine.js b/ElectronNET.Host/api/commandLine.js new file mode 100644 index 0000000..527c8b0 --- /dev/null +++ b/ElectronNET.Host/api/commandLine.js @@ -0,0 +1,20 @@ +"use strict"; +let electronSocket; +module.exports = (socket, app) => { + electronSocket = socket; + socket.on('appCommandLineAppendSwitch', (the_switch, value) => { + app.commandLine.appendSwitch(the_switch, value); + }); + socket.on('appCommandLineAppendArgument', (value) => { + app.commandLine.appendArgument(value); + }); + socket.on('appCommandLineHasSwitch', (value) => { + const hasSwitch = app.commandLine.hasSwitch(value); + electronSocket.emit('appCommandLineHasSwitchCompleted', hasSwitch); + }); + socket.on('appCommandLineGetSwitchValue', (the_switch) => { + const value = app.commandLine.getSwitchValue(the_switch); + electronSocket.emit('appCommandLineGetSwitchValueCompleted', value); + }); +}; +//# sourceMappingURL=commandLine.js.map \ No newline at end of file diff --git a/ElectronNET.Host/api/commandLine.js.map b/ElectronNET.Host/api/commandLine.js.map new file mode 100644 index 0000000..ea5614e --- /dev/null +++ b/ElectronNET.Host/api/commandLine.js.map @@ -0,0 +1 @@ +{"version":3,"file":"commandLine.js","sourceRoot":"","sources":["commandLine.ts"],"names":[],"mappings":";AAAA,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAuB,EAAE,GAAiB,EAAE,EAAE;IACpD,cAAc,GAAG,MAAM,CAAC;IAExB,MAAM,CAAC,EAAE,CAAC,4BAA4B,EAAE,CAAC,UAAkB,EAAE,KAAa,EAAE,EAAE;QAC1E,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,8BAA8B,EAAE,CAAC,KAAa,EAAE,EAAE;QACxD,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,KAAa,EAAE,EAAE;QACnD,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnD,cAAc,CAAC,IAAI,CAAC,kCAAkC,EAAE,SAAS,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,8BAA8B,EAAE,CAAC,UAAkB,EAAE,EAAE;QAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACzD,cAAc,CAAC,IAAI,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"} \ No newline at end of file diff --git a/ElectronNET.Host/api/commandLine.ts b/ElectronNET.Host/api/commandLine.ts new file mode 100644 index 0000000..44839c2 --- /dev/null +++ b/ElectronNET.Host/api/commandLine.ts @@ -0,0 +1,23 @@ +let electronSocket; + +export = (socket: SocketIO.Socket, app: Electron.App) => { + electronSocket = socket; + + socket.on('appCommandLineAppendSwitch', (the_switch: string, value: string) => { + app.commandLine.appendSwitch(the_switch, value); + }); + + socket.on('appCommandLineAppendArgument', (value: string) => { + app.commandLine.appendArgument(value); + }); + + socket.on('appCommandLineHasSwitch', (value: string) => { + const hasSwitch = app.commandLine.hasSwitch(value); + electronSocket.emit('appCommandLineHasSwitchCompleted', hasSwitch); + }); + + socket.on('appCommandLineGetSwitchValue', (the_switch: string) => { + const value = app.commandLine.getSwitchValue(the_switch); + electronSocket.emit('appCommandLineGetSwitchValueCompleted', value); + }); +}; diff --git a/ElectronNET.Host/main.js b/ElectronNET.Host/main.js index 244ce74..709493d 100644 --- a/ElectronNET.Host/main.js +++ b/ElectronNET.Host/main.js @@ -7,10 +7,16 @@ const imageSize = require('image-size'); let io, server, browserWindows, ipc, apiProcess, loadURL; let appApi, menu, dialogApi, notification, tray, webContents; let globalShortcut, shellApi, screen, clipboard, autoUpdater; +let commandLine; let splashScreen, hostHook; +let manifestJsonFileName = 'electron.manifest.json'; +if(app.commandLine.hasSwitch('manifest')) { + manifestJsonFileName = app.commandLine.getSwitchValue('manifest'); +}; + const currentBinPath = path.join(__dirname.replace('app.asar', ''), 'bin'); -const manifestJsonFilePath = path.join(currentBinPath, 'electron.manifest.json'); +const manifestJsonFilePath = path.join(currentBinPath, manifestJsonFileName); const manifestJsonFile = require(manifestJsonFilePath); if (manifestJsonFile.singleInstance || manifestJsonFile.aspCoreBackendPort) { const mainInstance = app.requestSingleInstanceLock(); @@ -110,6 +116,7 @@ function startSocketApiBridge(port) { appApi = require('./api/app')(socket, app); browserWindows = require('./api/browserWindows')(socket, app); + commandLine = require('./api/commandLine')(socket, app); autoUpdater = require('./api/autoUpdater')(socket); ipc = require('./api/ipc')(socket); menu = require('./api/menu')(socket); From db9d3b148481ee6832ebcbf39eca128b899df8bd Mon Sep 17 00:00:00 2001 From: Gregor Biswanger Date: Sat, 30 Nov 2019 02:48:23 +0100 Subject: [PATCH 27/29] activate Electron 7.1.2 build --- ElectronNET.CLI/Commands/BuildCommand.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ElectronNET.CLI/Commands/BuildCommand.cs b/ElectronNET.CLI/Commands/BuildCommand.cs index 7966752..85cb757 100644 --- a/ElectronNET.CLI/Commands/BuildCommand.cs +++ b/ElectronNET.CLI/Commands/BuildCommand.cs @@ -160,7 +160,7 @@ namespace ElectronNET.CLI.Commands ProcessHelper.CmdExecute($"node build-helper.js", tempPath); Console.WriteLine($"Package Electron App for Platform {platformInfo.ElectronPackerPlatform}..."); - ProcessHelper.CmdExecute($"npx electron-builder . --config=./bin/electron-builder.json --{platformInfo.ElectronPackerPlatform} --{electronArch} -c.electronVersion=5.0.8 {electronParams}", tempPath); + ProcessHelper.CmdExecute($"npx electron-builder . --config=./bin/electron-builder.json --{platformInfo.ElectronPackerPlatform} --{electronArch} -c.electronVersion=7.1.2 {electronParams}", tempPath); Console.WriteLine("... done"); From 30d49ff6e8ddfb2322b6c70763e583b9f5d0a5b6 Mon Sep 17 00:00:00 2001 From: Gregor Biswanger Date: Sat, 30 Nov 2019 23:30:15 +0100 Subject: [PATCH 28/29] Support for different manifest files (#340) --- ElectronNET.CLI/Commands/BuildCommand.cs | 18 +- ElectronNET.CLI/Commands/InitCommand.cs | 57 +- ElectronNET.CLI/EmbeddedFileHelper.cs | 14 + ElectronNET.Host/.vscode/launch.json | 12 + ElectronNET.Host/build-helper.js | 10 +- ElectronNET.Host/package-lock.json | 1483 +--------------------- ElectronNET.Host/package.json | 28 +- 7 files changed, 101 insertions(+), 1521 deletions(-) diff --git a/ElectronNET.CLI/Commands/BuildCommand.cs b/ElectronNET.CLI/Commands/BuildCommand.cs index 85cb757..3ab0768 100644 --- a/ElectronNET.CLI/Commands/BuildCommand.cs +++ b/ElectronNET.CLI/Commands/BuildCommand.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Runtime.InteropServices; using System.Threading.Tasks; using ElectronNET.CLI.Commands.Actions; @@ -40,6 +41,7 @@ namespace ElectronNET.CLI.Commands private string _paramAbsoluteOutput = "absolute-path"; private string _paramPackageJson = "package-json"; private string _paramForceNodeInstall = "install-modules"; + private string _manifest = "manifest"; public Task ExecuteAsync() { @@ -79,7 +81,13 @@ namespace ElectronNET.CLI.Commands if (Directory.Exists(tempPath) == false) { Directory.CreateDirectory(tempPath); + } + else + { + Directory.Delete(tempPath, true); + Directory.CreateDirectory(tempPath); } + Console.WriteLine("Executing dotnet publish in this directory: " + tempPath); @@ -157,7 +165,15 @@ namespace ElectronNET.CLI.Commands // ToDo: Make the same thing easer with native c# - we can save a tmp file in production code :) Console.WriteLine("Create electron-builder configuration file..."); - ProcessHelper.CmdExecute($"node build-helper.js", tempPath); + + string manifestFileName = "electron.manifest.json"; + + if(parser.Arguments.ContainsKey(_manifest)) + { + manifestFileName = parser.Arguments[_manifest].First(); + } + + ProcessHelper.CmdExecute($"node build-helper.js " + manifestFileName, tempPath); Console.WriteLine($"Package Electron App for Platform {platformInfo.ElectronPackerPlatform}..."); ProcessHelper.CmdExecute($"npx electron-builder . --config=./bin/electron-builder.json --{platformInfo.ElectronPackerPlatform} --{electronArch} -c.electronVersion=7.1.2 {electronParams}", tempPath); diff --git a/ElectronNET.CLI/Commands/InitCommand.cs b/ElectronNET.CLI/Commands/InitCommand.cs index 22bc71c..b0b96b5 100644 --- a/ElectronNET.CLI/Commands/InitCommand.cs +++ b/ElectronNET.CLI/Commands/InitCommand.cs @@ -16,26 +16,30 @@ namespace ElectronNET.CLI.Commands public const string COMMAND_ARGUMENTS = " from ASP.NET Core Project."; public static IList CommandOptions { get; set; } = new List(); - private const string ConfigName = "electron.manifest.json"; - - private string[] _args; + private static SimpleCommandLineParser _parser = new SimpleCommandLineParser(); + private static string ConfigName = "electron.manifest.json"; + private const string DefaultConfigFileName = "electron.manifest.json"; public InitCommand(string[] args) { - _args = args; + _parser.Parse(args); } + private static string _aspCoreProjectPath = "project-path"; + private static string _manifest = "manifest"; + public Task ExecuteAsync() { return Task.Run(() => { string aspCoreProjectPath = ""; - if (_args.Length > 0) + if (_parser.Arguments.ContainsKey(_aspCoreProjectPath)) { - if (Directory.Exists(_args[0])) + string projectPath = _parser.Arguments[_aspCoreProjectPath].First(); + if (Directory.Exists(projectPath)) { - aspCoreProjectPath = _args[0]; + aspCoreProjectPath = projectPath; } } else @@ -45,7 +49,15 @@ namespace ElectronNET.CLI.Commands var currentDirectory = aspCoreProjectPath; - Console.WriteLine("Adding our config file to your project..."); + if(_parser.Arguments.ContainsKey(_manifest)) + { + ConfigName = "electron.manifest." + _parser.Arguments[_manifest].First() + ".json"; + Console.WriteLine($"Adding your custom {ConfigName} config file to your project..."); + } + else + { + Console.WriteLine("Adding our config file to your project..."); + } var targetFilePath = Path.Combine(currentDirectory, ConfigName); @@ -56,7 +68,7 @@ namespace ElectronNET.CLI.Commands } // Deploy config file - EmbeddedFileHelper.DeployEmbeddedFile(currentDirectory, ConfigName); + EmbeddedFileHelper.DeployEmbeddedFileToTargetFile(currentDirectory, DefaultConfigFileName, ConfigName); // search .csproj Console.WriteLine($"Search your .csproj to add the needed {ConfigName}..."); @@ -99,7 +111,32 @@ namespace ElectronNET.CLI.Commands string launchSettingText = File.ReadAllText(launchSettingFile); - if (launchSettingText.Contains("\"executablePath\": \"electronize\"") == false) + if(_parser.Arguments.ContainsKey(_manifest)) + { + string manifestName = _parser.Arguments[_manifest].First(); + + if(launchSettingText.Contains("start /manifest " + ConfigName) == false) + { + StringBuilder debugProfileBuilder = new StringBuilder(); + debugProfileBuilder.AppendLine("profiles\": {"); + debugProfileBuilder.AppendLine(" \"Electron.NET App - " + manifestName + "\": {"); + debugProfileBuilder.AppendLine(" \"commandName\": \"Executable\","); + debugProfileBuilder.AppendLine(" \"executablePath\": \"electronize\","); + debugProfileBuilder.AppendLine(" \"commandLineArgs\": \"start /manifest " + ConfigName + "\","); + debugProfileBuilder.AppendLine(" \"workingDirectory\": \".\""); + debugProfileBuilder.AppendLine(" },"); + + launchSettingText = launchSettingText.Replace("profiles\": {", debugProfileBuilder.ToString()); + File.WriteAllText(launchSettingFile, launchSettingText); + + Console.WriteLine($"Debug profile added!"); + } + else + { + Console.WriteLine($"Debug profile already existing"); + } + } + else if (launchSettingText.Contains("\"executablePath\": \"electronize\"") == false) { StringBuilder debugProfileBuilder = new StringBuilder(); debugProfileBuilder.AppendLine("profiles\": {"); diff --git a/ElectronNET.CLI/EmbeddedFileHelper.cs b/ElectronNET.CLI/EmbeddedFileHelper.cs index 9af2e1a..d41e657 100644 --- a/ElectronNET.CLI/EmbeddedFileHelper.cs +++ b/ElectronNET.CLI/EmbeddedFileHelper.cs @@ -29,5 +29,19 @@ namespace ElectronNET.CLI streamFromEmbeddedFile.CopyTo(fileStream); } } + + public static void DeployEmbeddedFileToTargetFile(string targetPath, string embeddedFile, string targetFile, string namespacePath = "") + { + using (var fileStream = File.Create(Path.Combine(targetPath, targetFile))) + { + var streamFromEmbeddedFile = GetTestResourceFileStream("ElectronHost." + namespacePath + embeddedFile); + if (streamFromEmbeddedFile == null) + { + Console.WriteLine("Error: Couldn't find embedded file: " + embeddedFile); + } + + streamFromEmbeddedFile.CopyTo(fileStream); + } + } } } \ No newline at end of file diff --git a/ElectronNET.Host/.vscode/launch.json b/ElectronNET.Host/.vscode/launch.json index bb2469e..fb126ae 100644 --- a/ElectronNET.Host/.vscode/launch.json +++ b/ElectronNET.Host/.vscode/launch.json @@ -15,6 +15,18 @@ "--test=true", "--blub=wuhuu" ] + }, + { + "type": "node", + "request": "launch", + "name": "Launch build-helper", + "program": "${workspaceFolder}/build-helper.js", + "skipFiles": [ + "/**" + ], + "args": [ + "electron.manifest.json" + ] } ] } \ No newline at end of file diff --git a/ElectronNET.Host/build-helper.js b/ElectronNET.Host/build-helper.js index 940babf..194ae4e 100644 --- a/ElectronNET.Host/build-helper.js +++ b/ElectronNET.Host/build-helper.js @@ -1,5 +1,6 @@ +const manifestFileName = process.argv[2]; // @ts-ignore -const manifestFile = require('./bin/electron.manifest'); +const manifestFile = require('./bin/' + manifestFileName); const fs = require('fs'); const builderConfiguration = { ...manifestFile.build }; @@ -33,4 +34,11 @@ fs.writeFile('./bin/electron-builder.json', builderConfigurationString, (error) if(error) { console.log(error.message); } +}); + +const manifestContent = JSON.stringify(manifestFile); +fs.writeFile('./bin/electron.manifest.json', manifestContent, (error) => { + if(error) { + console.log(error.message); + } }); \ No newline at end of file diff --git a/ElectronNET.Host/package-lock.json b/ElectronNET.Host/package-lock.json index e2c4e61..6f1eb79 100644 --- a/ElectronNET.Host/package-lock.json +++ b/ElectronNET.Host/package-lock.json @@ -1,1482 +1 @@ -{ - "name": "electron.net.host", - "version": "1.0.2", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@electron/get": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.7.1.tgz", - "integrity": "sha512-+BOIzkmYbe+oOBGqSByq8zXYXCFztccoymR3uNkvX5ckJ/5xU+4peVyEvFyH6+zfv58hCo99RxgIpwuaMfRtRg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "env-paths": "^2.2.0", - "fs-extra": "^8.1.0", - "global-agent": "^2.0.2", - "global-tunnel-ng": "^2.7.1", - "got": "^9.6.0", - "sanitize-filename": "^1.6.2", - "sumchecker": "^3.0.0" - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/node": { - "version": "10.14.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.6.tgz", - "integrity": "sha512-Fvm24+u85lGmV4hT5G++aht2C5I4Z4dYlWZIh62FAfFO/TfzXtPpoLI6I7AuBWkIFqZCnhFOoTT7RjjaIL5Fjg==", - "dev": true - }, - "@types/socket.io": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@types/socket.io/-/socket.io-2.1.2.tgz", - "integrity": "sha512-Ind+4qMNfQ62llyB4IMs1D8znMEBsMKohZBPqfBUIXqLQ9bdtWIbNTBWwtdcBWJKnokMZGcmWOOKslatni5vtA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "requires": { - "mime-types": "~2.1.18", - "negotiator": "0.6.1" - } - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" - }, - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "requires": { - "lodash": "^4.17.10" - } - }, - "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "requires": { - "callsite": "1.0.0" - } - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, - "bluebird": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz", - "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==" - }, - "bluebird-lst": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.8.tgz", - "integrity": "sha512-InUDOaBaIjIobOa3O4YRAbFgff907uTJZXW0m0rhk3zhVZ4GvsmdCLEAKC1CTWTtUWCM8iWTTfFX9N/xQR/etw==", - "requires": { - "bluebird": "^3.5.4" - } - }, - "boolean": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.0.tgz", - "integrity": "sha512-OElxJ1lUSinuoUnkpOgLmxp0DC4ytEhODEL6QJU0NpxE/mI4rUSh8h1P1Wkvfi3xQEBcxXR2gBIPNYNuaFcAbQ==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "builder-util-runtime": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.1.1.tgz", - "integrity": "sha512-+ieS4PMB33vVE2S3ZNWBEQJ1zKmAs/agrBdh7XadE1lKLjrH4aXYuOh9OOGdxqIRldhlhNBaF+yKMMEFOdNVig==", - "requires": { - "bluebird-lst": "^1.0.6", - "debug": "^4.1.1", - "fs-extra-p": "^7.0.0", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", - "dev": true, - "optional": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - }, - "core-js": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.4.4.tgz", - "integrity": "sha512-vKea1DrcLA80Hrfc7AQgfoGvEaByfR5mH08t+zuWOWY94TFBmabdEL56mUbcijvadG9RxsXR2gUUFrfj4/iTcA==", - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "defer-to-connect": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.0.tgz", - "integrity": "sha512-WE2sZoctWm/v4smfCAdjYbrfS55JiMRdlY9ZubFhsYbteCK9+BvAx4YV7nPjYM6ZnX5BcoVKwfmyx9sIFTgQMQ==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "optional": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true, - "optional": true - }, - "diff": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", - "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", - "dev": true - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "electron": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/electron/-/electron-7.1.2.tgz", - "integrity": "sha512-7hjONYt2GlQfKuKgQrhhUL1P9lbGWLBfMUq+2QFU3yeLtCvM0ROfPJCRP4OF5pVp3KDyfFp4DtmhuVzAnxV3jA==", - "dev": true, - "requires": { - "@electron/get": "^1.0.1", - "@types/node": "^12.0.12", - "extract-zip": "^1.0.3" - }, - "dependencies": { - "@types/node": { - "version": "12.12.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.14.tgz", - "integrity": "sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA==", - "dev": true - } - } - }, - "electron-updater": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.0.6.tgz", - "integrity": "sha512-JPGLME6fxJcHG8hX7HWFl6Aew6iVm0DkcrENreKa5SUJCHG+uUaAhxDGDt+YGcNkyx1uJ6eBGMvFxDTLUv67pg==", - "requires": { - "bluebird-lst": "^1.0.6", - "builder-util-runtime": "~8.1.0", - "fs-extra-p": "^7.0.0", - "js-yaml": "^3.12.0", - "lazy-val": "^1.0.3", - "lodash.isequal": "^4.5.0", - "pako": "^1.0.7", - "semver": "^5.6.0", - "source-map-support": "^0.5.9" - } - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "optional": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.3.2.tgz", - "integrity": "sha512-AsaA9KG7cWPXWHp5FvHdDWY3AMWeZ8x+2pUVLcn71qE5AtAzgGbxuclOytygskw8XGmiQafTmnI9Bix3uihu2w==", - "requires": { - "accepts": "~1.3.4", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~6.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "engine.io-client": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.1.tgz", - "integrity": "sha512-q66JBFuQcy7CSlfAz9L3jH+v7DTT3i6ZEadYcVj2pOs8/0uJHLxKX3WBkGTvULJMdz0tUCyJag0aKT/dpXL9BQ==", - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~6.1.0", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "engine.io-parser": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", - "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "env-paths": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", - "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", - "dev": true - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true, - "optional": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "extract-zip": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", - "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "debug": "2.6.9", - "mkdirp": "0.5.1", - "yauzl": "2.4.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true - } - } - }, - "fs-extra-p": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.1.tgz", - "integrity": "sha512-yhd2OV0HnHt2oitlp+X9hl2ReX4X/7kQeL7/72qzPHTZj5eUPGzAKOvEglU02Fa1OeG2rSy/aKB4WGVaLiF8tw==", - "requires": { - "bluebird-lst": "^1.0.7", - "fs-extra": "^7.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true, - "optional": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global-agent": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.7.tgz", - "integrity": "sha512-ooK7eqGYZku+LgnbfH/Iv0RJ74XfhrBZDlke1QSzcBt0bw1PmJcnRADPAQuFE+R45pKKDTynAr25SBasY2kvow==", - "dev": true, - "optional": true, - "requires": { - "boolean": "^3.0.0", - "core-js": "^3.4.1", - "es6-error": "^4.1.1", - "matcher": "^2.0.0", - "roarr": "^2.14.5", - "semver": "^6.3.0", - "serialize-error": "^5.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "optional": true - } - } - }, - "global-tunnel-ng": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", - "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", - "dev": true, - "optional": true, - "requires": { - "encodeurl": "^1.0.2", - "lodash": "^4.17.10", - "npm-conf": "^1.1.3", - "tunnel": "^0.0.6" - } - }, - "globalthis": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.0.tgz", - "integrity": "sha512-vcCAZTJ3r5Qcu5l8/2oyVdoFwxKgfYnMTR2vwWeux/NAVZK3PwcMaWkdUIn4GJbmKuRK7xcvDsLuK+CKcXyodg==", - "dev": true, - "optional": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "object-keys": "^1.0.12" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "http-cache-semantics": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", - "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==", - "dev": true - }, - "image-size": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.4.tgz", - "integrity": "sha512-GqPgxs+VkOr12aWwjSkyRzf5atzObWpFtiRuDgxCl2I/SDpZOKZFRD3iIAeAN6/usmn8SeLWRt7a8JRYK0Whbw==" - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true, - "optional": true - }, - "is-number-like": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", - "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", - "requires": { - "lodash.isfinite": "^3.3.2" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true, - "optional": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, - "lazy-val": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz", - "integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==" - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, - "lodash.isfinite": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", - "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=" - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "matcher": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-2.1.0.tgz", - "integrity": "sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==", - "dev": true, - "optional": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" - }, - "mime-types": { - "version": "2.1.21", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", - "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", - "requires": { - "mime-db": "~1.37.0" - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true - }, - "npm-conf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", - "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", - "dev": true, - "optional": true, - "requires": { - "config-chain": "^1.1.11", - "pify": "^3.0.0" - } - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true - }, - "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "optional": true - }, - "portscanner": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", - "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", - "requires": { - "async": "^2.6.0", - "is-number-like": "^1.0.3" - } - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true, - "optional": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "resolve": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", - "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "roarr": { - "version": "2.14.6", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.14.6.tgz", - "integrity": "sha512-qjbw0BEesKA+3XFBPt+KVe1PC/Z6ShfJ4wPlx2XifqH5h2Lj8/KQT5XJTsy3n1Es5kai+BwKALaECW3F70B1cg==", - "dev": true, - "optional": true, - "requires": { - "boolean": "^3.0.0", - "detect-node": "^2.0.4", - "globalthis": "^1.0.0", - "json-stringify-safe": "^5.0.1", - "semver-compare": "^1.0.0", - "sprintf-js": "^1.1.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true, - "optional": true - } - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "dev": true, - "requires": { - "truncate-utf8-bytes": "^1.0.0" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" - }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true, - "optional": true - }, - "serialize-error": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz", - "integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==", - "dev": true, - "optional": true, - "requires": { - "type-fest": "^0.8.0" - } - }, - "socket.io": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.2.0.tgz", - "integrity": "sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w==", - "requires": { - "debug": "~4.1.0", - "engine.io": "~3.3.1", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.2.0", - "socket.io-parser": "~3.3.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "socket.io-adapter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", - "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=" - }, - "socket.io-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.2.0.tgz", - "integrity": "sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA==", - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.3.1", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "socket.io-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", - "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", - "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-support": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "sumchecker": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", - "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "dev": true, - "requires": { - "debug": "^4.1.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true - }, - "truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", - "dev": true, - "requires": { - "utf8-byte-length": "^1.0.1" - } - }, - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", - "dev": true - }, - "tslint": { - "version": "5.20.1", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", - "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.29.0" - } - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true, - "optional": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "optional": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typescript": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz", - "integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "requires": { - "prepend-http": "^2.0.0" - } - }, - "utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.2.tgz", - "integrity": "sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==", - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" - }, - "yauzl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", - "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", - "dev": true, - "requires": { - "fd-slicer": "~1.0.1" - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - } - } -} +{"name":"electron.net.host","version":"1.0.0","lockfileVersion":1,"requires":true,"dependencies":{"@babel/code-frame":{"version":"7.5.5","resolved":"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz","integrity":"sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==","dev":true,"requires":{"@babel/highlight":"^7.0.0"}},"@babel/highlight":{"version":"7.5.0","resolved":"https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz","integrity":"sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==","dev":true,"requires":{"chalk":"^2.0.0","esutils":"^2.0.2","js-tokens":"^4.0.0"}},"@electron/get":{"version":"1.7.1","resolved":"https://registry.npmjs.org/@electron/get/-/get-1.7.1.tgz","integrity":"sha512-+BOIzkmYbe+oOBGqSByq8zXYXCFztccoymR3uNkvX5ckJ/5xU+4peVyEvFyH6+zfv58hCo99RxgIpwuaMfRtRg==","dev":true,"requires":{"debug":"^4.1.1","env-paths":"^2.2.0","fs-extra":"^8.1.0","global-agent":"^2.0.2","global-tunnel-ng":"^2.7.1","got":"^9.6.0","sanitize-filename":"^1.6.2","sumchecker":"^3.0.0"}},"@sindresorhus/is":{"version":"0.14.0","resolved":"https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz","integrity":"sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==","dev":true},"@szmarczak/http-timer":{"version":"1.1.2","resolved":"https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz","integrity":"sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==","dev":true,"requires":{"defer-to-connect":"^1.0.1"}},"@types/node":{"version":"10.14.6","resolved":"https://registry.npmjs.org/@types/node/-/node-10.14.6.tgz","integrity":"sha512-Fvm24+u85lGmV4hT5G++aht2C5I4Z4dYlWZIh62FAfFO/TfzXtPpoLI6I7AuBWkIFqZCnhFOoTT7RjjaIL5Fjg==","dev":true},"@types/socket.io":{"version":"2.1.2","resolved":"https://registry.npmjs.org/@types/socket.io/-/socket.io-2.1.2.tgz","integrity":"sha512-Ind+4qMNfQ62llyB4IMs1D8znMEBsMKohZBPqfBUIXqLQ9bdtWIbNTBWwtdcBWJKnokMZGcmWOOKslatni5vtA==","dev":true,"requires":{"@types/node":"*"}},"accepts":{"version":"1.3.5","resolved":"https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz","integrity":"sha1-63d99gEXI6OxTopywIBcjoZ0a9I=","requires":{"mime-types":"~2.1.18","negotiator":"0.6.1"}},"after":{"version":"0.8.2","resolved":"https://registry.npmjs.org/after/-/after-0.8.2.tgz","integrity":"sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="},"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","dev":true,"requires":{"color-convert":"^1.9.0"}},"argparse":{"version":"1.0.10","resolved":"https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz","integrity":"sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==","requires":{"sprintf-js":"~1.0.2"}},"arraybuffer.slice":{"version":"0.0.7","resolved":"https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz","integrity":"sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="},"async":{"version":"2.6.1","resolved":"https://registry.npmjs.org/async/-/async-2.6.1.tgz","integrity":"sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==","requires":{"lodash":"^4.17.10"}},"async-limiter":{"version":"1.0.0","resolved":"https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz","integrity":"sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="},"backo2":{"version":"1.0.2","resolved":"https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz","integrity":"sha1-MasayLEpNjRj41s+u2n038+6eUc="},"balanced-match":{"version":"1.0.0","resolved":"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz","integrity":"sha1-ibTRmasr7kneFk6gK4nORi1xt2c=","dev":true},"base64-arraybuffer":{"version":"0.1.5","resolved":"https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz","integrity":"sha1-c5JncZI7Whl0etZmqlzUv5xunOg="},"base64id":{"version":"1.0.0","resolved":"https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz","integrity":"sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY="},"better-assert":{"version":"1.0.2","resolved":"https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz","integrity":"sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=","requires":{"callsite":"1.0.0"}},"blob":{"version":"0.0.5","resolved":"https://registry.npmjs.org/blob/-/blob-0.0.5.tgz","integrity":"sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig=="},"bluebird":{"version":"3.5.4","resolved":"https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz","integrity":"sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw=="},"bluebird-lst":{"version":"1.0.8","resolved":"https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.8.tgz","integrity":"sha512-InUDOaBaIjIobOa3O4YRAbFgff907uTJZXW0m0rhk3zhVZ4GvsmdCLEAKC1CTWTtUWCM8iWTTfFX9N/xQR/etw==","requires":{"bluebird":"^3.5.4"}},"boolean":{"version":"3.0.0","resolved":"https://registry.npmjs.org/boolean/-/boolean-3.0.0.tgz","integrity":"sha512-OElxJ1lUSinuoUnkpOgLmxp0DC4ytEhODEL6QJU0NpxE/mI4rUSh8h1P1Wkvfi3xQEBcxXR2gBIPNYNuaFcAbQ==","dev":true},"brace-expansion":{"version":"1.1.11","resolved":"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz","integrity":"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==","dev":true,"requires":{"balanced-match":"^1.0.0","concat-map":"0.0.1"}},"buffer-from":{"version":"1.1.1","resolved":"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz","integrity":"sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="},"builder-util-runtime":{"version":"8.1.1","resolved":"https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.1.1.tgz","integrity":"sha512-+ieS4PMB33vVE2S3ZNWBEQJ1zKmAs/agrBdh7XadE1lKLjrH4aXYuOh9OOGdxqIRldhlhNBaF+yKMMEFOdNVig==","requires":{"bluebird-lst":"^1.0.6","debug":"^4.1.1","fs-extra-p":"^7.0.0","sax":"^1.2.4"},"dependencies":{"debug":{"version":"4.1.1","resolved":"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz","integrity":"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==","requires":{"ms":"^2.1.1"}}}},"builtin-modules":{"version":"1.1.1","resolved":"https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz","integrity":"sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=","dev":true},"cacheable-request":{"version":"6.1.0","resolved":"https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz","integrity":"sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==","dev":true,"requires":{"clone-response":"^1.0.2","get-stream":"^5.1.0","http-cache-semantics":"^4.0.0","keyv":"^3.0.0","lowercase-keys":"^2.0.0","normalize-url":"^4.1.0","responselike":"^1.0.2"},"dependencies":{"get-stream":{"version":"5.1.0","resolved":"https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz","integrity":"sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==","dev":true,"requires":{"pump":"^3.0.0"}},"lowercase-keys":{"version":"2.0.0","resolved":"https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz","integrity":"sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==","dev":true}}},"callsite":{"version":"1.0.0","resolved":"https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz","integrity":"sha1-KAOY5dZkvXQDi28JBRU+borxvCA="},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","dev":true,"requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"clone-response":{"version":"1.0.2","resolved":"https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz","integrity":"sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=","dev":true,"requires":{"mimic-response":"^1.0.0"}},"color-convert":{"version":"1.9.3","resolved":"https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz","integrity":"sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==","dev":true,"requires":{"color-name":"1.1.3"}},"color-name":{"version":"1.1.3","resolved":"https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz","integrity":"sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=","dev":true},"commander":{"version":"2.20.3","resolved":"https://registry.npmjs.org/commander/-/commander-2.20.3.tgz","integrity":"sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==","dev":true},"component-bind":{"version":"1.0.0","resolved":"https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz","integrity":"sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="},"component-emitter":{"version":"1.2.1","resolved":"https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz","integrity":"sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="},"component-inherit":{"version":"0.0.3","resolved":"https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz","integrity":"sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM="},"concat-map":{"version":"0.0.1","resolved":"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz","integrity":"sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=","dev":true},"concat-stream":{"version":"1.6.2","resolved":"https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz","integrity":"sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==","dev":true,"requires":{"buffer-from":"^1.0.0","inherits":"^2.0.3","readable-stream":"^2.2.2","typedarray":"^0.0.6"}},"config-chain":{"version":"1.1.12","resolved":"https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz","integrity":"sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==","dev":true,"optional":true,"requires":{"ini":"^1.3.4","proto-list":"~1.2.1"}},"cookie":{"version":"0.3.1","resolved":"https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz","integrity":"sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="},"core-js":{"version":"3.4.4","resolved":"https://registry.npmjs.org/core-js/-/core-js-3.4.4.tgz","integrity":"sha512-vKea1DrcLA80Hrfc7AQgfoGvEaByfR5mH08t+zuWOWY94TFBmabdEL56mUbcijvadG9RxsXR2gUUFrfj4/iTcA==","dev":true,"optional":true},"core-util-is":{"version":"1.0.2","resolved":"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz","integrity":"sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=","dev":true},"debug":{"version":"4.1.1","resolved":"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz","integrity":"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==","dev":true,"requires":{"ms":"^2.1.1"}},"decompress-response":{"version":"3.3.0","resolved":"https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz","integrity":"sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=","dev":true,"requires":{"mimic-response":"^1.0.0"}},"defer-to-connect":{"version":"1.1.0","resolved":"https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.0.tgz","integrity":"sha512-WE2sZoctWm/v4smfCAdjYbrfS55JiMRdlY9ZubFhsYbteCK9+BvAx4YV7nPjYM6ZnX5BcoVKwfmyx9sIFTgQMQ==","dev":true},"define-properties":{"version":"1.1.3","resolved":"https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz","integrity":"sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==","dev":true,"optional":true,"requires":{"object-keys":"^1.0.12"}},"detect-node":{"version":"2.0.4","resolved":"https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz","integrity":"sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==","dev":true,"optional":true},"diff":{"version":"4.0.1","resolved":"https://registry.npmjs.org/diff/-/diff-4.0.1.tgz","integrity":"sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==","dev":true},"duplexer3":{"version":"0.1.4","resolved":"https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz","integrity":"sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=","dev":true},"electron":{"version":"7.1.2","resolved":"https://registry.npmjs.org/electron/-/electron-7.1.2.tgz","integrity":"sha512-7hjONYt2GlQfKuKgQrhhUL1P9lbGWLBfMUq+2QFU3yeLtCvM0ROfPJCRP4OF5pVp3KDyfFp4DtmhuVzAnxV3jA==","dev":true,"requires":{"@electron/get":"^1.0.1","@types/node":"^12.0.12","extract-zip":"^1.0.3"},"dependencies":{"@types/node":{"version":"12.12.14","resolved":"https://registry.npmjs.org/@types/node/-/node-12.12.14.tgz","integrity":"sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA==","dev":true}}},"electron-updater":{"version":"4.0.6","resolved":"https://registry.npmjs.org/electron-updater/-/electron-updater-4.0.6.tgz","integrity":"sha512-JPGLME6fxJcHG8hX7HWFl6Aew6iVm0DkcrENreKa5SUJCHG+uUaAhxDGDt+YGcNkyx1uJ6eBGMvFxDTLUv67pg==","requires":{"bluebird-lst":"^1.0.6","builder-util-runtime":"~8.1.0","fs-extra-p":"^7.0.0","js-yaml":"^3.12.0","lazy-val":"^1.0.3","lodash.isequal":"^4.5.0","pako":"^1.0.7","semver":"^5.6.0","source-map-support":"^0.5.9"}},"encodeurl":{"version":"1.0.2","resolved":"https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz","integrity":"sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=","dev":true,"optional":true},"end-of-stream":{"version":"1.4.4","resolved":"https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz","integrity":"sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==","dev":true,"requires":{"once":"^1.4.0"}},"engine.io":{"version":"3.3.2","resolved":"https://registry.npmjs.org/engine.io/-/engine.io-3.3.2.tgz","integrity":"sha512-AsaA9KG7cWPXWHp5FvHdDWY3AMWeZ8x+2pUVLcn71qE5AtAzgGbxuclOytygskw8XGmiQafTmnI9Bix3uihu2w==","requires":{"accepts":"~1.3.4","base64id":"1.0.0","cookie":"0.3.1","debug":"~3.1.0","engine.io-parser":"~2.1.0","ws":"~6.1.0"},"dependencies":{"debug":{"version":"3.1.0","resolved":"https://registry.npmjs.org/debug/-/debug-3.1.0.tgz","integrity":"sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==","requires":{"ms":"2.0.0"}},"ms":{"version":"2.0.0","resolved":"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz","integrity":"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="}}},"engine.io-client":{"version":"3.3.1","resolved":"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.1.tgz","integrity":"sha512-q66JBFuQcy7CSlfAz9L3jH+v7DTT3i6ZEadYcVj2pOs8/0uJHLxKX3WBkGTvULJMdz0tUCyJag0aKT/dpXL9BQ==","requires":{"component-emitter":"1.2.1","component-inherit":"0.0.3","debug":"~3.1.0","engine.io-parser":"~2.1.1","has-cors":"1.1.0","indexof":"0.0.1","parseqs":"0.0.5","parseuri":"0.0.5","ws":"~6.1.0","xmlhttprequest-ssl":"~1.5.4","yeast":"0.1.2"},"dependencies":{"debug":{"version":"3.1.0","resolved":"https://registry.npmjs.org/debug/-/debug-3.1.0.tgz","integrity":"sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==","requires":{"ms":"2.0.0"}},"ms":{"version":"2.0.0","resolved":"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz","integrity":"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="}}},"engine.io-parser":{"version":"2.1.3","resolved":"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz","integrity":"sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==","requires":{"after":"0.8.2","arraybuffer.slice":"~0.0.7","base64-arraybuffer":"0.1.5","blob":"0.0.5","has-binary2":"~1.0.2"}},"env-paths":{"version":"2.2.0","resolved":"https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz","integrity":"sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==","dev":true},"es6-error":{"version":"4.1.1","resolved":"https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz","integrity":"sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==","dev":true,"optional":true},"escape-string-regexp":{"version":"1.0.5","resolved":"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz","integrity":"sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=","dev":true},"esprima":{"version":"4.0.1","resolved":"https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz","integrity":"sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="},"esutils":{"version":"2.0.3","resolved":"https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz","integrity":"sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==","dev":true},"extract-zip":{"version":"1.6.7","resolved":"https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz","integrity":"sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=","dev":true,"requires":{"concat-stream":"1.6.2","debug":"2.6.9","mkdirp":"0.5.1","yauzl":"2.4.1"},"dependencies":{"debug":{"version":"2.6.9","resolved":"https://registry.npmjs.org/debug/-/debug-2.6.9.tgz","integrity":"sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==","dev":true,"requires":{"ms":"2.0.0"}},"ms":{"version":"2.0.0","resolved":"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz","integrity":"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=","dev":true}}},"fd-slicer":{"version":"1.0.1","resolved":"https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz","integrity":"sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=","dev":true,"requires":{"pend":"~1.2.0"}},"fs-extra":{"version":"8.1.0","resolved":"https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz","integrity":"sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==","dev":true,"requires":{"graceful-fs":"^4.2.0","jsonfile":"^4.0.0","universalify":"^0.1.0"},"dependencies":{"graceful-fs":{"version":"4.2.3","resolved":"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz","integrity":"sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==","dev":true}}},"fs-extra-p":{"version":"7.0.1","resolved":"https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.1.tgz","integrity":"sha512-yhd2OV0HnHt2oitlp+X9hl2ReX4X/7kQeL7/72qzPHTZj5eUPGzAKOvEglU02Fa1OeG2rSy/aKB4WGVaLiF8tw==","requires":{"bluebird-lst":"^1.0.7","fs-extra":"^7.0.1"},"dependencies":{"fs-extra":{"version":"7.0.1","resolved":"https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz","integrity":"sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==","requires":{"graceful-fs":"^4.1.2","jsonfile":"^4.0.0","universalify":"^0.1.0"}}}},"fs.realpath":{"version":"1.0.0","resolved":"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz","integrity":"sha1-FQStJSMVjKpA20onh8sBQRmU6k8=","dev":true},"function-bind":{"version":"1.1.1","resolved":"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz","integrity":"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==","dev":true,"optional":true},"get-stream":{"version":"4.1.0","resolved":"https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz","integrity":"sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==","dev":true,"requires":{"pump":"^3.0.0"}},"glob":{"version":"7.1.6","resolved":"https://registry.npmjs.org/glob/-/glob-7.1.6.tgz","integrity":"sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==","dev":true,"requires":{"fs.realpath":"^1.0.0","inflight":"^1.0.4","inherits":"2","minimatch":"^3.0.4","once":"^1.3.0","path-is-absolute":"^1.0.0"}},"global-agent":{"version":"2.1.7","resolved":"https://registry.npmjs.org/global-agent/-/global-agent-2.1.7.tgz","integrity":"sha512-ooK7eqGYZku+LgnbfH/Iv0RJ74XfhrBZDlke1QSzcBt0bw1PmJcnRADPAQuFE+R45pKKDTynAr25SBasY2kvow==","dev":true,"optional":true,"requires":{"boolean":"^3.0.0","core-js":"^3.4.1","es6-error":"^4.1.1","matcher":"^2.0.0","roarr":"^2.14.5","semver":"^6.3.0","serialize-error":"^5.0.0"},"dependencies":{"semver":{"version":"6.3.0","resolved":"https://registry.npmjs.org/semver/-/semver-6.3.0.tgz","integrity":"sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==","dev":true,"optional":true}}},"global-tunnel-ng":{"version":"2.7.1","resolved":"https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz","integrity":"sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==","dev":true,"optional":true,"requires":{"encodeurl":"^1.0.2","lodash":"^4.17.10","npm-conf":"^1.1.3","tunnel":"^0.0.6"}},"globalthis":{"version":"1.0.0","resolved":"https://registry.npmjs.org/globalthis/-/globalthis-1.0.0.tgz","integrity":"sha512-vcCAZTJ3r5Qcu5l8/2oyVdoFwxKgfYnMTR2vwWeux/NAVZK3PwcMaWkdUIn4GJbmKuRK7xcvDsLuK+CKcXyodg==","dev":true,"optional":true,"requires":{"define-properties":"^1.1.2","function-bind":"^1.1.1","object-keys":"^1.0.12"}},"got":{"version":"9.6.0","resolved":"https://registry.npmjs.org/got/-/got-9.6.0.tgz","integrity":"sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==","dev":true,"requires":{"@sindresorhus/is":"^0.14.0","@szmarczak/http-timer":"^1.1.2","cacheable-request":"^6.0.0","decompress-response":"^3.3.0","duplexer3":"^0.1.4","get-stream":"^4.1.0","lowercase-keys":"^1.0.1","mimic-response":"^1.0.1","p-cancelable":"^1.0.0","to-readable-stream":"^1.0.0","url-parse-lax":"^3.0.0"}},"graceful-fs":{"version":"4.1.15","resolved":"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz","integrity":"sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="},"has-binary2":{"version":"1.0.3","resolved":"https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz","integrity":"sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==","requires":{"isarray":"2.0.1"},"dependencies":{"isarray":{"version":"2.0.1","resolved":"https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz","integrity":"sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="}}},"has-cors":{"version":"1.1.0","resolved":"https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz","integrity":"sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk="},"has-flag":{"version":"3.0.0","resolved":"https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz","integrity":"sha1-tdRU3CGZriJWmfNGfloH87lVuv0=","dev":true},"http-cache-semantics":{"version":"4.0.3","resolved":"https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz","integrity":"sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==","dev":true},"image-size":{"version":"0.7.4","resolved":"https://registry.npmjs.org/image-size/-/image-size-0.7.4.tgz","integrity":"sha512-GqPgxs+VkOr12aWwjSkyRzf5atzObWpFtiRuDgxCl2I/SDpZOKZFRD3iIAeAN6/usmn8SeLWRt7a8JRYK0Whbw=="},"indexof":{"version":"0.0.1","resolved":"https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz","integrity":"sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="},"inflight":{"version":"1.0.6","resolved":"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz","integrity":"sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=","dev":true,"requires":{"once":"^1.3.0","wrappy":"1"}},"inherits":{"version":"2.0.3","resolved":"https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz","integrity":"sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=","dev":true},"ini":{"version":"1.3.5","resolved":"https://registry.npmjs.org/ini/-/ini-1.3.5.tgz","integrity":"sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==","dev":true,"optional":true},"is-number-like":{"version":"1.0.8","resolved":"https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz","integrity":"sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==","requires":{"lodash.isfinite":"^3.3.2"}},"isarray":{"version":"1.0.0","resolved":"https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz","integrity":"sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=","dev":true},"js-tokens":{"version":"4.0.0","resolved":"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz","integrity":"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==","dev":true},"js-yaml":{"version":"3.13.1","resolved":"https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz","integrity":"sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==","requires":{"argparse":"^1.0.7","esprima":"^4.0.0"}},"json-buffer":{"version":"3.0.0","resolved":"https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz","integrity":"sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=","dev":true},"json-stringify-safe":{"version":"5.0.1","resolved":"https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz","integrity":"sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=","dev":true,"optional":true},"jsonfile":{"version":"4.0.0","resolved":"https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz","integrity":"sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=","requires":{"graceful-fs":"^4.1.6"}},"keyv":{"version":"3.1.0","resolved":"https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz","integrity":"sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==","dev":true,"requires":{"json-buffer":"3.0.0"}},"lazy-val":{"version":"1.0.4","resolved":"https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz","integrity":"sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q=="},"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="},"lodash.isequal":{"version":"4.5.0","resolved":"https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz","integrity":"sha1-QVxEePK8wwEgwizhDtMib30+GOA="},"lodash.isfinite":{"version":"3.3.2","resolved":"https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz","integrity":"sha1-+4m2WpqAKBgz8LdHizpRBPiY67M="},"lowercase-keys":{"version":"1.0.1","resolved":"https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz","integrity":"sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==","dev":true},"matcher":{"version":"2.1.0","resolved":"https://registry.npmjs.org/matcher/-/matcher-2.1.0.tgz","integrity":"sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==","dev":true,"optional":true,"requires":{"escape-string-regexp":"^2.0.0"},"dependencies":{"escape-string-regexp":{"version":"2.0.0","resolved":"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz","integrity":"sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==","dev":true,"optional":true}}},"mime-db":{"version":"1.37.0","resolved":"https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz","integrity":"sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg=="},"mime-types":{"version":"2.1.21","resolved":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz","integrity":"sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==","requires":{"mime-db":"~1.37.0"}},"mimic-response":{"version":"1.0.1","resolved":"https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz","integrity":"sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==","dev":true},"minimatch":{"version":"3.0.4","resolved":"https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz","integrity":"sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==","dev":true,"requires":{"brace-expansion":"^1.1.7"}},"minimist":{"version":"0.0.8","resolved":"https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz","integrity":"sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=","dev":true},"mkdirp":{"version":"0.5.1","resolved":"https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz","integrity":"sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=","dev":true,"requires":{"minimist":"0.0.8"}},"ms":{"version":"2.1.1","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.1.tgz","integrity":"sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="},"negotiator":{"version":"0.6.1","resolved":"https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz","integrity":"sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="},"normalize-url":{"version":"4.5.0","resolved":"https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz","integrity":"sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==","dev":true},"npm-conf":{"version":"1.1.3","resolved":"https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz","integrity":"sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==","dev":true,"optional":true,"requires":{"config-chain":"^1.1.11","pify":"^3.0.0"}},"object-component":{"version":"0.0.3","resolved":"https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz","integrity":"sha1-8MaapQ78lbhmwYb0AKM3acsvEpE="},"object-keys":{"version":"1.1.1","resolved":"https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz","integrity":"sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==","dev":true},"once":{"version":"1.4.0","resolved":"https://registry.npmjs.org/once/-/once-1.4.0.tgz","integrity":"sha1-WDsap3WWHUsROsF9nFC6753Xa9E=","dev":true,"requires":{"wrappy":"1"}},"p-cancelable":{"version":"1.1.0","resolved":"https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz","integrity":"sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==","dev":true},"pako":{"version":"1.0.10","resolved":"https://registry.npmjs.org/pako/-/pako-1.0.10.tgz","integrity":"sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw=="},"parseqs":{"version":"0.0.5","resolved":"https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz","integrity":"sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=","requires":{"better-assert":"~1.0.0"}},"parseuri":{"version":"0.0.5","resolved":"https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz","integrity":"sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=","requires":{"better-assert":"~1.0.0"}},"path-is-absolute":{"version":"1.0.1","resolved":"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz","integrity":"sha1-F0uSaHNVNP+8es5r9TpanhtcX18=","dev":true},"path-parse":{"version":"1.0.6","resolved":"https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz","integrity":"sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==","dev":true},"pend":{"version":"1.2.0","resolved":"https://registry.npmjs.org/pend/-/pend-1.2.0.tgz","integrity":"sha1-elfrVQpng/kRUzH89GY9XI4AelA=","dev":true},"pify":{"version":"3.0.0","resolved":"https://registry.npmjs.org/pify/-/pify-3.0.0.tgz","integrity":"sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=","dev":true,"optional":true},"portscanner":{"version":"2.2.0","resolved":"https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz","integrity":"sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==","requires":{"async":"^2.6.0","is-number-like":"^1.0.3"}},"prepend-http":{"version":"2.0.0","resolved":"https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz","integrity":"sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=","dev":true},"process-nextick-args":{"version":"2.0.1","resolved":"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz","integrity":"sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==","dev":true},"proto-list":{"version":"1.2.4","resolved":"https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz","integrity":"sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=","dev":true,"optional":true},"pump":{"version":"3.0.0","resolved":"https://registry.npmjs.org/pump/-/pump-3.0.0.tgz","integrity":"sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==","dev":true,"requires":{"end-of-stream":"^1.1.0","once":"^1.3.1"}},"readable-stream":{"version":"2.3.6","resolved":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz","integrity":"sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==","dev":true,"requires":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~2.0.0","safe-buffer":"~5.1.1","string_decoder":"~1.1.1","util-deprecate":"~1.0.1"}},"resolve":{"version":"1.13.1","resolved":"https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz","integrity":"sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==","dev":true,"requires":{"path-parse":"^1.0.6"}},"responselike":{"version":"1.0.2","resolved":"https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz","integrity":"sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=","dev":true,"requires":{"lowercase-keys":"^1.0.0"}},"roarr":{"version":"2.14.6","resolved":"https://registry.npmjs.org/roarr/-/roarr-2.14.6.tgz","integrity":"sha512-qjbw0BEesKA+3XFBPt+KVe1PC/Z6ShfJ4wPlx2XifqH5h2Lj8/KQT5XJTsy3n1Es5kai+BwKALaECW3F70B1cg==","dev":true,"optional":true,"requires":{"boolean":"^3.0.0","detect-node":"^2.0.4","globalthis":"^1.0.0","json-stringify-safe":"^5.0.1","semver-compare":"^1.0.0","sprintf-js":"^1.1.2"},"dependencies":{"sprintf-js":{"version":"1.1.2","resolved":"https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz","integrity":"sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==","dev":true,"optional":true}}},"safe-buffer":{"version":"5.1.2","resolved":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz","integrity":"sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==","dev":true},"sanitize-filename":{"version":"1.6.3","resolved":"https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz","integrity":"sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==","dev":true,"requires":{"truncate-utf8-bytes":"^1.0.0"}},"sax":{"version":"1.2.4","resolved":"https://registry.npmjs.org/sax/-/sax-1.2.4.tgz","integrity":"sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="},"semver":{"version":"5.6.0","resolved":"https://registry.npmjs.org/semver/-/semver-5.6.0.tgz","integrity":"sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="},"semver-compare":{"version":"1.0.0","resolved":"https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz","integrity":"sha1-De4hahyUGrN+nvsXiPavxf9VN/w=","dev":true,"optional":true},"serialize-error":{"version":"5.0.0","resolved":"https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz","integrity":"sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==","dev":true,"optional":true,"requires":{"type-fest":"^0.8.0"}},"socket.io":{"version":"2.2.0","resolved":"https://registry.npmjs.org/socket.io/-/socket.io-2.2.0.tgz","integrity":"sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w==","requires":{"debug":"~4.1.0","engine.io":"~3.3.1","has-binary2":"~1.0.2","socket.io-adapter":"~1.1.0","socket.io-client":"2.2.0","socket.io-parser":"~3.3.0"},"dependencies":{"debug":{"version":"4.1.1","resolved":"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz","integrity":"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==","requires":{"ms":"^2.1.1"}}}},"socket.io-adapter":{"version":"1.1.1","resolved":"https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz","integrity":"sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs="},"socket.io-client":{"version":"2.2.0","resolved":"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.2.0.tgz","integrity":"sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA==","requires":{"backo2":"1.0.2","base64-arraybuffer":"0.1.5","component-bind":"1.0.0","component-emitter":"1.2.1","debug":"~3.1.0","engine.io-client":"~3.3.1","has-binary2":"~1.0.2","has-cors":"1.1.0","indexof":"0.0.1","object-component":"0.0.3","parseqs":"0.0.5","parseuri":"0.0.5","socket.io-parser":"~3.3.0","to-array":"0.1.4"},"dependencies":{"debug":{"version":"3.1.0","resolved":"https://registry.npmjs.org/debug/-/debug-3.1.0.tgz","integrity":"sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==","requires":{"ms":"2.0.0"}},"ms":{"version":"2.0.0","resolved":"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz","integrity":"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="}}},"socket.io-parser":{"version":"3.3.0","resolved":"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz","integrity":"sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==","requires":{"component-emitter":"1.2.1","debug":"~3.1.0","isarray":"2.0.1"},"dependencies":{"debug":{"version":"3.1.0","resolved":"https://registry.npmjs.org/debug/-/debug-3.1.0.tgz","integrity":"sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==","requires":{"ms":"2.0.0"}},"isarray":{"version":"2.0.1","resolved":"https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz","integrity":"sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="},"ms":{"version":"2.0.0","resolved":"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz","integrity":"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="}}},"source-map":{"version":"0.6.1","resolved":"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz","integrity":"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="},"source-map-support":{"version":"0.5.12","resolved":"https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz","integrity":"sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==","requires":{"buffer-from":"^1.0.0","source-map":"^0.6.0"}},"sprintf-js":{"version":"1.0.3","resolved":"http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz","integrity":"sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="},"string_decoder":{"version":"1.1.1","resolved":"https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz","integrity":"sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==","dev":true,"requires":{"safe-buffer":"~5.1.0"}},"sumchecker":{"version":"3.0.1","resolved":"https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz","integrity":"sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==","dev":true,"requires":{"debug":"^4.1.0"}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","dev":true,"requires":{"has-flag":"^3.0.0"}},"to-array":{"version":"0.1.4","resolved":"https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz","integrity":"sha1-F+bBH3PdTz10zaek/zI46a2b+JA="},"to-readable-stream":{"version":"1.0.0","resolved":"https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz","integrity":"sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==","dev":true},"truncate-utf8-bytes":{"version":"1.0.2","resolved":"https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz","integrity":"sha1-QFkjkJWS1W94pYGENLC3hInKXys=","dev":true,"requires":{"utf8-byte-length":"^1.0.1"}},"tslib":{"version":"1.10.0","resolved":"https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz","integrity":"sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==","dev":true},"tslint":{"version":"5.20.1","resolved":"https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz","integrity":"sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==","dev":true,"requires":{"@babel/code-frame":"^7.0.0","builtin-modules":"^1.1.1","chalk":"^2.3.0","commander":"^2.12.1","diff":"^4.0.1","glob":"^7.1.1","js-yaml":"^3.13.1","minimatch":"^3.0.4","mkdirp":"^0.5.1","resolve":"^1.3.2","semver":"^5.3.0","tslib":"^1.8.0","tsutils":"^2.29.0"}},"tsutils":{"version":"2.29.0","resolved":"https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz","integrity":"sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==","dev":true,"requires":{"tslib":"^1.8.1"}},"tunnel":{"version":"0.0.6","resolved":"https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz","integrity":"sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==","dev":true,"optional":true},"type-fest":{"version":"0.8.1","resolved":"https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz","integrity":"sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==","dev":true,"optional":true},"typedarray":{"version":"0.0.6","resolved":"https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz","integrity":"sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=","dev":true},"typescript":{"version":"3.7.2","resolved":"https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz","integrity":"sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==","dev":true},"universalify":{"version":"0.1.2","resolved":"https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz","integrity":"sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="},"url-parse-lax":{"version":"3.0.0","resolved":"https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz","integrity":"sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=","dev":true,"requires":{"prepend-http":"^2.0.0"}},"utf8-byte-length":{"version":"1.0.4","resolved":"https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz","integrity":"sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=","dev":true},"util-deprecate":{"version":"1.0.2","resolved":"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz","integrity":"sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=","dev":true},"wrappy":{"version":"1.0.2","resolved":"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz","integrity":"sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=","dev":true},"ws":{"version":"6.1.2","resolved":"https://registry.npmjs.org/ws/-/ws-6.1.2.tgz","integrity":"sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==","requires":{"async-limiter":"~1.0.0"}},"xmlhttprequest-ssl":{"version":"1.5.5","resolved":"https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz","integrity":"sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4="},"yauzl":{"version":"2.4.1","resolved":"https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz","integrity":"sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=","dev":true,"requires":{"fd-slicer":"~1.0.1"}},"yeast":{"version":"0.1.2","resolved":"https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz","integrity":"sha1-AI4G2AlDIMNy28L47XagymyKxBk="}}} \ No newline at end of file diff --git a/ElectronNET.Host/package.json b/ElectronNET.Host/package.json index c1ff2f5..e55465e 100644 --- a/ElectronNET.Host/package.json +++ b/ElectronNET.Host/package.json @@ -1,27 +1 @@ -{ - "name": "electron.net.host", - "version": "1.0.2", - "description": "Electron-Host for Electron.NET.", - "repository": { - "url": "https://github.com/ElectronNET/Electron.NET" - }, - "main": "main.js", - "author": "Gregor Biswanger", - "license": "MIT", - "scripts": { - "start": "tsc -p ." - }, - "dependencies": { - "electron-updater": "^4.0.6", - "image-size": "^0.7.4", - "portscanner": "^2.2.0", - "socket.io": "^2.2.0" - }, - "devDependencies": { - "@types/node": "^10.14.4", - "@types/socket.io": "^2.1.2", - "electron": "^7.1.2", - "tslint": "^5.20.1", - "typescript": "^3.7.2" - } -} +{"name":"electron.net.host","version":"1.0.0","description":"Electron-Host for Electron.NET.","repository":{"url":"https://github.com/ElectronNET/Electron.NET"},"main":"main.js","author":"Gregor Biswanger","license":"MIT","scripts":{"start":"tsc -p ."},"dependencies":{"electron-updater":"^4.0.6","image-size":"^0.7.4","portscanner":"^2.2.0","socket.io":"^2.2.0"},"devDependencies":{"@types/node":"^10.14.4","@types/socket.io":"^2.1.2","electron":"^7.1.2","tslint":"^5.20.1","typescript":"^3.7.2"}} \ No newline at end of file From f4d8144a8b645e59aaff922f53dbac0039f1dc45 Mon Sep 17 00:00:00 2001 From: Gregor Biswanger Date: Sun, 1 Dec 2019 01:17:00 +0100 Subject: [PATCH 29/29] update changelog with the new release 7.30.2 --- Changelog.md | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/Changelog.md b/Changelog.md index 6d9396b..427b912 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,11 +1,32 @@ # Not released -ElectronNET.CLI - -* Fixed a bug where `electronize build` with no arguments would throw a `KeyNotFoundException`. +# 7.30.3 # Released +# 7.30.2 + +ElectronNET.CLI: + +* Different manifest file support [\#340](https://github.com/ElectronNET/Electron.NET/issues/340) + * Create a additional manifest file: `electronize init /manifest test` + * Start the app with your additional manifest file: `electronize start /manifest electron.manifest.test.json` + * Build the app with your additional manifest file: `electronize build /target win /manifest electron.manifest.test.json`. + +* Command Line support [\#337](https://github.com/ElectronNET/Electron.NET/issues/337) + * You can start the app with: `electronize start /args --dog=woof --test=true` + * Or as binary: `myapp.exe /args --dog=woof --test=true` +* Fixed bug: Start process with listen port 8000 error. [\#308](https://github.com/ElectronNET/Electron.NET/issues/308) (thanks [thecodejedi](https://github.com/thecodejedi)) +* Fixed bug: `electronize build` with no arguments would throw a `KeyNotFoundException`. (thanks [jamiebrynes7](https://github.com/jamiebrynes7)) + +ElectronNET.API: + +* New Feature: Electron 7.1.2 support, but not all new features (we search contributors) [\#341](https://github.com/ElectronNET/Electron.NET/issues/341) +* New Feature: Electron.App.CommandLine API [\#337](https://github.com/ElectronNET/Electron.NET/issues/337) +* New Feature: Support of BrowserWindow.AddExtension, BrowserWindow.RemoveExtension, BrowserWindow.GetExtensions (thanks [Daddoon](https://github.com/Daddoon)) + +Thank you for donation [robertmclaws](https://github.com/robertmclaws) ❤ + # 5.30.1 ElectronNET.CLI: