diff --git a/README.md b/README.md index b2b1620e..842071ff 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Also you should have installed: Besides the chat on Gitter and the issues [discussed here](https://github.com/ElectronNET/Electron.NET/issues) you can also use [StackOverflow](https://stackoverflow.com/questions/tagged/electron.net) with the tag `electron.net`. -If you want to sponsor the further maintenance and development of this project [see the donate section](#๐Ÿ™-donate). +If you want to sponsor the further maintenance and development of this project [see the donate section](#-donate). ## ๐Ÿ‘ฉโ€๐Ÿซ Usage @@ -173,11 +173,15 @@ The end result should be an electron app under your __/bin/desktop__ folder. ### Note -> macOS builds can't be created on Windows machines because they require symlinks that aren't supported on Windows (per [this Electron issue](https://github.com/electron-userland/electron-packager/issues/71)). macOS builds can be produced on either Linux or macOS machines. +> macOS builds can't be created on Windows machines because they require symlinks that aren't supported on Windows (per [this Electron issue](https://github.com/electron-userland/electron-packager/issues/71)). + +Consequently, macOS builds can be produced on either Linux or macOS machines. ## ๐Ÿ”„ Update -After an update to the latest Electron.API package, an update to the latest Electron.CLI is always required. In addition, always update the CLI via NuGet: +After an update to the latest Electron.API package, an update to the latest Electron.CLI is always required. + +In addition, always update the CLI via NuGet: ```sh dotnet tool update ElectronNET.CLI -g @@ -193,7 +197,8 @@ See also the list of [contributors](https://github.com/ElectronNET/Electron.NET/ ## ๐Ÿ™‹โ€โ™€๏ธ๐Ÿ™‹โ€โ™‚ Contributing -Feel free to submit a pull request if you find any bugs (to see a list of active issues, visit the [Issues section](https://github.com/ElectronNET/Electron.NET/issues). +Feel free to submit a pull request if you find any bugs. To see a list of active issues, visit the [Issues section](https://github.com/ElectronNET/Electron.NET/issues). + Please make sure all commits are properly documented. ## ๐Ÿงช Working with this Repo diff --git a/src/.editorconfig b/src/.editorconfig new file mode 100644 index 00000000..be3fc63b --- /dev/null +++ b/src/.editorconfig @@ -0,0 +1,2 @@ +[*.cs] +dotnet_diagnostic.CA1416.severity=silent diff --git a/src/ElectronNET.API/App.cs b/src/ElectronNET.API/App.cs index bd56a832..bf09deea 100644 --- a/src/ElectronNET.API/App.cs +++ b/src/ElectronNET.API/App.cs @@ -7,7 +7,6 @@ using System.Threading; using System.Threading.Tasks; using ElectronNET.API.Extensions; -using static System.Collections.Specialized.BitVector32; namespace ElectronNET.API { @@ -39,7 +38,7 @@ public event Action WindowAllClosed } }); - BridgeConnector.Socket.Emit("register-app-window-all-closed-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-app-window-all-closed-event", GetHashCode()).FireAndForget(); } _windowAllClosed += value; } @@ -111,7 +110,7 @@ public event Func BeforeQuit } }); - BridgeConnector.Socket.Emit("register-app-before-quit-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-app-before-quit-event", GetHashCode()).FireAndForget(); } _beforeQuit += value; } @@ -162,7 +161,7 @@ public event Func WillQuit } }); - BridgeConnector.Socket.Emit("register-app-will-quit-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-app-will-quit-event", GetHashCode()).FireAndForget(); } _willQuit += value; } @@ -171,7 +170,9 @@ public event Func WillQuit _willQuit -= value; if (_willQuit == null) + { BridgeConnector.Socket.Off("app-will-quit" + GetHashCode()); + } } } @@ -190,14 +191,14 @@ public event Func Quitting { BridgeConnector.Socket.On("app-will-quit" + GetHashCode() + "quitting", async () => { - if(_willQuit == null) + if (_willQuit == null) { await _quitting(); Exit(); } }); - BridgeConnector.Socket.Emit("register-app-will-quit-event", GetHashCode() + "quitting"); + BridgeConnector.Socket.Emit("register-app-will-quit-event", GetHashCode() + "quitting").FireAndForget(); } _quitting += value; } @@ -206,7 +207,9 @@ public event Func Quitting _quitting -= value; if (_quitting == null) + { BridgeConnector.Socket.Off("app-will-quit" + GetHashCode() + "quitting"); + } } } @@ -226,7 +229,7 @@ public event Action BrowserWindowBlur _browserWindowBlur(); }); - BridgeConnector.Socket.Emit("register-app-browser-window-blur-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-app-browser-window-blur-event", GetHashCode()).FireAndForget(); } _browserWindowBlur += value; } @@ -235,7 +238,9 @@ public event Action BrowserWindowBlur _browserWindowBlur -= value; if (_browserWindowBlur == null) + { BridgeConnector.Socket.Off("app-browser-window-blur" + GetHashCode()); + } } } @@ -255,7 +260,7 @@ public event Action BrowserWindowFocus _browserWindowFocus(); }); - BridgeConnector.Socket.Emit("register-app-browser-window-focus-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-app-browser-window-focus-event", GetHashCode()).FireAndForget(); } _browserWindowFocus += value; } @@ -264,7 +269,9 @@ public event Action BrowserWindowFocus _browserWindowFocus -= value; if (_browserWindowFocus == null) + { BridgeConnector.Socket.Off("app-browser-window-focus" + GetHashCode()); + } } } @@ -284,7 +291,7 @@ public event Action BrowserWindowCreated _browserWindowCreated(); }); - BridgeConnector.Socket.Emit("register-app-browser-window-created-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-app-browser-window-created-event", GetHashCode()).FireAndForget(); } _browserWindowCreated += value; } @@ -293,7 +300,9 @@ public event Action BrowserWindowCreated _browserWindowCreated -= value; if (_browserWindowCreated == null) + { BridgeConnector.Socket.Off("app-browser-window-created" + GetHashCode()); + } } } @@ -313,7 +322,7 @@ public event Action WebContentsCreated _webContentsCreated(); }); - BridgeConnector.Socket.Emit("register-app-web-contents-created-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-app-web-contents-created-event", GetHashCode()).FireAndForget(); } _webContentsCreated += value; } @@ -322,7 +331,9 @@ public event Action WebContentsCreated _webContentsCreated -= value; if (_webContentsCreated == null) + { BridgeConnector.Socket.Off("app-web-contents-created" + GetHashCode()); + } } } @@ -344,7 +355,7 @@ public event Action AccessibilitySupportChanged _accessibilitySupportChanged((bool)state); }); - BridgeConnector.Socket.Emit("register-app-accessibility-support-changed-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-app-accessibility-support-changed-event", GetHashCode()).FireAndForget(); } _accessibilitySupportChanged += value; } @@ -353,7 +364,9 @@ public event Action AccessibilitySupportChanged _accessibilitySupportChanged -= value; if (_accessibilitySupportChanged == null) + { BridgeConnector.Socket.Off("app-accessibility-support-changed" + GetHashCode()); + } } } @@ -391,7 +404,7 @@ internal set { _isReady = value; - if(value) + if (value) { _ready?.Invoke(); } @@ -417,7 +430,7 @@ public event Action OpenFile _openFile(file.ToString()); }); - BridgeConnector.Socket.Emit("register-app-open-file-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-app-open-file-event", GetHashCode()).FireAndForget(); } _openFile += value; } @@ -426,7 +439,9 @@ public event Action OpenFile _openFile -= value; if (_openFile == null) + { BridgeConnector.Socket.Off("app-open-file" + GetHashCode()); + } } } @@ -448,7 +463,7 @@ public event Action OpenUrl _openUrl(url.ToString()); }); - BridgeConnector.Socket.Emit("register-app-open-url-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-app-open-url-event", GetHashCode()).FireAndForget(); } _openUrl += value; } @@ -457,7 +472,9 @@ public event Action OpenUrl _openUrl -= value; if (_openUrl == null) + { BridgeConnector.Socket.Off("app-open-url" + GetHashCode()); + } } } @@ -480,7 +497,7 @@ public string Name } set { - BridgeConnector.Socket.Emit("appSetName", value); + BridgeConnector.Socket.Emit("appSetName", value).FireAndForget(); } } @@ -506,7 +523,7 @@ public Task NameAsync taskCompletionSource.SetResult((string)result); }); - BridgeConnector.Socket.Emit("appGetName"); + BridgeConnector.Socket.Emit("appGetName").FireAndForget(); return taskCompletionSource.Task; }); @@ -539,6 +556,7 @@ internal static App Instance } private static App _app; + private static object _syncRoot = new object(); private readonly JsonSerializer _jsonSerializer = new JsonSerializer() @@ -554,7 +572,7 @@ internal static App Instance /// public void Quit() { - BridgeConnector.Socket.Emit("appQuit"); + BridgeConnector.Socket.Emit("appQuit").FireAndForget(); } /// @@ -564,7 +582,7 @@ public void Quit() /// Exits immediately with exitCode. exitCode defaults to 0. public void Exit(int exitCode = 0) { - BridgeConnector.Socket.Emit("appExit", exitCode); + BridgeConnector.Socket.Emit("appExit", exitCode).FireAndForget(); } /// @@ -579,7 +597,7 @@ public void Exit(int exitCode = 0) /// public void Relaunch() { - BridgeConnector.Socket.Emit("appRelaunch"); + BridgeConnector.Socket.Emit("appRelaunch").FireAndForget(); } /// @@ -597,7 +615,7 @@ public void Relaunch() /// Options for the relaunch. public void Relaunch(RelaunchOptions relaunchOptions) { - BridgeConnector.Socket.Emit("appRelaunch", JObject.FromObject(relaunchOptions, _jsonSerializer)); + BridgeConnector.Socket.Emit("appRelaunch", JObject.FromObject(relaunchOptions, _jsonSerializer)).FireAndForget(); } /// @@ -606,7 +624,7 @@ public void Relaunch(RelaunchOptions relaunchOptions) /// public void Focus() { - BridgeConnector.Socket.Emit("appFocus"); + BridgeConnector.Socket.Emit("appFocus").FireAndForget(); } /// @@ -617,7 +635,7 @@ public void Focus() /// public void Focus(FocusOptions focusOptions) { - BridgeConnector.Socket.Emit("appFocus", JObject.FromObject(focusOptions, _jsonSerializer)); + BridgeConnector.Socket.Emit("appFocus", JObject.FromObject(focusOptions, _jsonSerializer)).FireAndForget(); } /// @@ -625,7 +643,7 @@ public void Focus(FocusOptions focusOptions) /// public void Hide() { - BridgeConnector.Socket.Emit("appHide"); + BridgeConnector.Socket.Emit("appHide").FireAndForget(); } /// @@ -633,7 +651,7 @@ public void Hide() /// public void Show() { - BridgeConnector.Socket.Emit("appShow"); + BridgeConnector.Socket.Emit("appShow").FireAndForget(); } /// @@ -644,7 +662,8 @@ public async Task GetAppPathAsync(CancellationToken cancellationToken = cancellationToken.ThrowIfCancellationRequested(); var taskCompletionSource = new TaskCompletionSource(); - using(cancellationToken.Register(() => taskCompletionSource.TrySetCanceled())) + + using (cancellationToken.Register(() => taskCompletionSource.TrySetCanceled())) { BridgeConnector.Socket.On("appGetAppPathCompleted", (path) => { @@ -652,7 +671,7 @@ public async Task GetAppPathAsync(CancellationToken cancellationToken = taskCompletionSource.SetResult(path.ToString()); }); - BridgeConnector.Socket.Emit("appGetAppPath"); + BridgeConnector.Socket.Emit("appGetAppPath").FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -669,7 +688,7 @@ public async Task GetAppPathAsync(CancellationToken cancellationToken = /// A custom path for your logs. Must be absolute. public void SetAppLogsPath(string path) { - BridgeConnector.Socket.Emit("appSetAppLogsPath", path); + BridgeConnector.Socket.Emit("appSetAppLogsPath", path).FireAndForget(); } /// @@ -685,7 +704,8 @@ public async Task GetPathAsync(PathName pathName, CancellationToken canc cancellationToken.ThrowIfCancellationRequested(); var taskCompletionSource = new TaskCompletionSource(); - using(cancellationToken.Register(() => taskCompletionSource.TrySetCanceled())) + + using (cancellationToken.Register(() => taskCompletionSource.TrySetCanceled())) { BridgeConnector.Socket.On("appGetPathCompleted", (path) => { @@ -694,7 +714,7 @@ public async Task GetPathAsync(PathName pathName, CancellationToken canc taskCompletionSource.SetResult(path.ToString()); }); - BridgeConnector.Socket.Emit("appGetPath", pathName.GetDescription()); + BridgeConnector.Socket.Emit("appGetPath", pathName.GetDescription()).FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -715,7 +735,7 @@ public async Task GetPathAsync(PathName pathName, CancellationToken canc /// public void SetPath(PathName name, string path) { - BridgeConnector.Socket.Emit("appSetPath", name.GetDescription(), path); + BridgeConnector.Socket.Emit("appSetPath", name.GetDescription(), path).FireAndForget(); } /// @@ -728,7 +748,7 @@ public async Task GetVersionAsync(CancellationToken cancellationToken = cancellationToken.ThrowIfCancellationRequested(); var taskCompletionSource = new TaskCompletionSource(); - using(cancellationToken.Register(() => taskCompletionSource.TrySetCanceled())) + using (cancellationToken.Register(() => taskCompletionSource.TrySetCanceled())) { BridgeConnector.Socket.On("appGetVersionCompleted", (version) => { @@ -736,7 +756,7 @@ public async Task GetVersionAsync(CancellationToken cancellationToken = taskCompletionSource.SetResult(version.ToString()); }); - BridgeConnector.Socket.Emit("appGetVersion"); + BridgeConnector.Socket.Emit("appGetVersion").FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -764,7 +784,7 @@ public async Task GetLocaleAsync(CancellationToken cancellationToken = d taskCompletionSource.SetResult(local.ToString()); }); - BridgeConnector.Socket.Emit("appGetLocale"); + BridgeConnector.Socket.Emit("appGetLocale").FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -778,7 +798,7 @@ public async Task GetLocaleAsync(CancellationToken cancellationToken = d /// Path to add. public void AddRecentDocument(string path) { - BridgeConnector.Socket.Emit("appAddRecentDocument", path); + BridgeConnector.Socket.Emit("appAddRecentDocument", path).FireAndForget(); } /// @@ -786,7 +806,7 @@ public void AddRecentDocument(string path) /// public void ClearRecentDocuments() { - BridgeConnector.Socket.Emit("appClearRecentDocuments"); + BridgeConnector.Socket.Emit("appClearRecentDocuments").FireAndForget(); } /// @@ -890,7 +910,7 @@ public async Task SetAsDefaultProtocolClientAsync(string protocol, string taskCompletionSource.SetResult((bool) success); }); - BridgeConnector.Socket.Emit("appSetAsDefaultProtocolClient", protocol, path, args); + BridgeConnector.Socket.Emit("appSetAsDefaultProtocolClient", protocol, path, args).FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -944,7 +964,7 @@ public async Task RemoveAsDefaultProtocolClientAsync(string protocol, stri taskCompletionSource.SetResult((bool) success); }); - BridgeConnector.Socket.Emit("appRemoveAsDefaultProtocolClient", protocol, path, args); + BridgeConnector.Socket.Emit("appRemoveAsDefaultProtocolClient", protocol, path, args).FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -1016,7 +1036,7 @@ public async Task IsDefaultProtocolClientAsync(string protocol, string pat taskCompletionSource.SetResult((bool) success); }); - BridgeConnector.Socket.Emit("appIsDefaultProtocolClient", protocol, path, args); + BridgeConnector.Socket.Emit("appIsDefaultProtocolClient", protocol, path, args).FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -1044,7 +1064,7 @@ public async Task SetUserTasksAsync(UserTask[] userTasks, CancellationToke taskCompletionSource.SetResult((bool) success); }); - BridgeConnector.Socket.Emit("appSetUserTasks", JArray.FromObject(userTasks, _jsonSerializer)); + BridgeConnector.Socket.Emit("appSetUserTasks", JArray.FromObject(userTasks, _jsonSerializer)).FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -1069,7 +1089,7 @@ public async Task GetJumpListSettingsAsync(CancellationToken c taskCompletionSource.SetResult(JObject.Parse(jumpListSettings.ToString()).ToObject()); }); - BridgeConnector.Socket.Emit("appGetJumpListSettings"); + BridgeConnector.Socket.Emit("appGetJumpListSettings").FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -1094,7 +1114,7 @@ public async Task GetJumpListSettingsAsync(CancellationToken c /// Array of objects. public void SetJumpList(JumpListCategory[] categories) { - BridgeConnector.Socket.Emit("appSetJumpList", JArray.FromObject(categories, _jsonSerializer)); + BridgeConnector.Socket.Emit("appSetJumpList", JArray.FromObject(categories, _jsonSerializer)).FireAndForget(); } /// @@ -1141,7 +1161,7 @@ public async Task RequestSingleInstanceLockAsync(Action newInstanceOpened(args, workingDirectory); }); - BridgeConnector.Socket.Emit("appRequestSingleInstanceLock"); + BridgeConnector.Socket.Emit("appRequestSingleInstanceLock").FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -1154,7 +1174,7 @@ public async Task RequestSingleInstanceLockAsync(Action /// public void ReleaseSingleInstanceLock() { - BridgeConnector.Socket.Emit("appReleaseSingleInstanceLock"); + BridgeConnector.Socket.Emit("appReleaseSingleInstanceLock").FireAndForget(); } /// @@ -1176,7 +1196,7 @@ public async Task HasSingleInstanceLockAsync(CancellationToken cancellatio taskCompletionSource.SetResult((bool) hasLock); }); - BridgeConnector.Socket.Emit("appHasSingleInstanceLock"); + BridgeConnector.Socket.Emit("appHasSingleInstanceLock").FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -1209,7 +1229,7 @@ public void SetUserActivity(string type, object userInfo) /// public void SetUserActivity(string type, object userInfo, string webpageUrl) { - BridgeConnector.Socket.Emit("appSetUserActivity", type, userInfo, webpageUrl); + BridgeConnector.Socket.Emit("appSetUserActivity", type, userInfo, webpageUrl).FireAndForget(); } /// @@ -1229,7 +1249,7 @@ public async Task GetCurrentActivityTypeAsync(CancellationToken cancella taskCompletionSource.SetResult(activityType.ToString()); }); - BridgeConnector.Socket.Emit("appGetCurrentActivityType"); + BridgeConnector.Socket.Emit("appGetCurrentActivityType").FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -1241,7 +1261,7 @@ public async Task GetCurrentActivityTypeAsync(CancellationToken cancella /// public void InvalidateCurrentActivity() { - BridgeConnector.Socket.Emit("appInvalidateCurrentActivity"); + BridgeConnector.Socket.Emit("appInvalidateCurrentActivity").FireAndForget(); } /// @@ -1249,7 +1269,7 @@ public void InvalidateCurrentActivity() /// public void ResignCurrentActivity() { - BridgeConnector.Socket.Emit("appResignCurrentActivity"); + BridgeConnector.Socket.Emit("appResignCurrentActivity").FireAndForget(); } /// @@ -1258,7 +1278,7 @@ public void ResignCurrentActivity() /// Model Id. public void SetAppUserModelId(string id) { - BridgeConnector.Socket.Emit("appSetAppUserModelId", id); + BridgeConnector.Socket.Emit("appSetAppUserModelId", id).FireAndForget(); } /// TODO: Check new parameter which is a function [App.ImportCertificate] @@ -1283,7 +1303,7 @@ public async Task ImportCertificateAsync(ImportCertificateOptions options, taskCompletionSource.SetResult((int) result); }); - BridgeConnector.Socket.Emit("appImportCertificate", JObject.FromObject(options, _jsonSerializer)); + BridgeConnector.Socket.Emit("appImportCertificate", JObject.FromObject(options, _jsonSerializer)).FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -1313,7 +1333,7 @@ public async Task GetAppMetricsAsync(CancellationToken cancella taskCompletionSource.SetResult(processMetrics); }); - BridgeConnector.Socket.Emit("appGetAppMetrics"); + BridgeConnector.Socket.Emit("appGetAppMetrics").FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -1341,7 +1361,7 @@ public async Task GetGpuFeatureStatusAsync(CancellationToken c taskCompletionSource.SetResult(gpuFeatureStatus); }); - BridgeConnector.Socket.Emit("appGetGpuFeatureStatus"); + BridgeConnector.Socket.Emit("appGetGpuFeatureStatus").FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -1361,8 +1381,8 @@ public async Task GetGpuFeatureStatusAsync(CancellationToken c public async Task SetBadgeCountAsync(int count, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); - var taskCompletionSource = new TaskCompletionSource(); + using (cancellationToken.Register(() => taskCompletionSource.TrySetCanceled())) { BridgeConnector.Socket.On("appSetBadgeCountCompleted", (success) => @@ -1371,7 +1391,7 @@ public async Task SetBadgeCountAsync(int count, CancellationToken cancella taskCompletionSource.SetResult((bool) success); }); - BridgeConnector.Socket.Emit("appSetBadgeCount", count); + BridgeConnector.Socket.Emit("appSetBadgeCount", count).FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -1385,8 +1405,8 @@ public async Task SetBadgeCountAsync(int count, CancellationToken cancella public async Task GetBadgeCountAsync(CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); - var taskCompletionSource = new TaskCompletionSource(); + using (cancellationToken.Register(() => taskCompletionSource.TrySetCanceled())) { BridgeConnector.Socket.On("appGetBadgeCountCompleted", (count) => @@ -1395,7 +1415,7 @@ public async Task GetBadgeCountAsync(CancellationToken cancellationToken = taskCompletionSource.SetResult((int)count); }); - BridgeConnector.Socket.Emit("appGetBadgeCount"); + BridgeConnector.Socket.Emit("appGetBadgeCount").FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -1414,8 +1434,8 @@ public async Task GetBadgeCountAsync(CancellationToken cancellationToken = public async Task IsUnityRunningAsync(CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); - var taskCompletionSource = new TaskCompletionSource(); + using (cancellationToken.Register(() => taskCompletionSource.TrySetCanceled())) { BridgeConnector.Socket.On("appIsUnityRunningCompleted", (isUnityRunning) => @@ -1424,7 +1444,7 @@ public async Task IsUnityRunningAsync(CancellationToken cancellationToken taskCompletionSource.SetResult((bool)isUnityRunning); }); - BridgeConnector.Socket.Emit("appIsUnityRunning"); + BridgeConnector.Socket.Emit("appIsUnityRunning").FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -1464,11 +1484,11 @@ public async Task GetLoginItemSettingsAsync(LoginItemSettings if (options == null) { - BridgeConnector.Socket.Emit("appGetLoginItemSettings"); + BridgeConnector.Socket.Emit("appGetLoginItemSettings").FireAndForget(); } else { - BridgeConnector.Socket.Emit("appGetLoginItemSettings", JObject.FromObject(options, _jsonSerializer)); + BridgeConnector.Socket.Emit("appGetLoginItemSettings", JObject.FromObject(options, _jsonSerializer)).FireAndForget(); } return await taskCompletionSource.Task @@ -1484,7 +1504,7 @@ public async Task GetLoginItemSettingsAsync(LoginItemSettings /// public void SetLoginItemSettings(LoginSettings loginSettings) { - BridgeConnector.Socket.Emit("appSetLoginItemSettings", JObject.FromObject(loginSettings, _jsonSerializer)); + BridgeConnector.Socket.Emit("appSetLoginItemSettings", JObject.FromObject(loginSettings, _jsonSerializer)).FireAndForget(); } /// @@ -1496,8 +1516,8 @@ public void SetLoginItemSettings(LoginSettings loginSettings) public async Task IsAccessibilitySupportEnabledAsync(CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); - var taskCompletionSource = new TaskCompletionSource(); + using (cancellationToken.Register(() => taskCompletionSource.TrySetCanceled())) { BridgeConnector.Socket.On("appIsAccessibilitySupportEnabledCompleted", (isAccessibilitySupportEnabled) => @@ -1506,7 +1526,7 @@ public async Task IsAccessibilitySupportEnabledAsync(CancellationToken can taskCompletionSource.SetResult((bool)isAccessibilitySupportEnabled); }); - BridgeConnector.Socket.Emit("appIsAccessibilitySupportEnabled"); + BridgeConnector.Socket.Emit("appIsAccessibilitySupportEnabled").FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -1525,7 +1545,7 @@ public async Task IsAccessibilitySupportEnabledAsync(CancellationToken can /// Enable or disable accessibility tree rendering. public void SetAccessibilitySupportEnabled(bool enabled) { - BridgeConnector.Socket.Emit("appSetAboutPanelOptions", enabled); + BridgeConnector.Socket.Emit("appSetAboutPanelOptions", enabled).FireAndForget(); } /// @@ -1534,7 +1554,7 @@ public void SetAccessibilitySupportEnabled(bool enabled) /// public void ShowAboutPanel() { - BridgeConnector.Socket.Emit("appShowAboutPanel"); + BridgeConnector.Socket.Emit("appShowAboutPanel").FireAndForget(); } /// @@ -1550,7 +1570,7 @@ public void ShowAboutPanel() /// About panel options. public void SetAboutPanelOptions(AboutPanelOptions options) { - BridgeConnector.Socket.Emit("appSetAboutPanelOptions", JObject.FromObject(options, _jsonSerializer)); + BridgeConnector.Socket.Emit("appSetAboutPanelOptions", JObject.FromObject(options, _jsonSerializer)).FireAndForget(); } /// @@ -1570,7 +1590,7 @@ public string UserAgentFallback } set { - BridgeConnector.Socket.Emit("appSetUserAgentFallback", value); + BridgeConnector.Socket.Emit("appSetUserAgentFallback", value).FireAndForget(); } } @@ -1596,8 +1616,7 @@ public Task UserAgentFallbackAsync taskCompletionSource.SetResult((string)result); }); - BridgeConnector.Socket.Emit("appGetUserAgentFallback"); - + BridgeConnector.Socket.Emit("appGetUserAgentFallback").FireAndForget(); return taskCompletionSource.Task; }); } diff --git a/src/ElectronNET.API/AutoUpdater.cs b/src/ElectronNET.API/AutoUpdater.cs index da1001fa..0f0f46e1 100644 --- a/src/ElectronNET.API/AutoUpdater.cs +++ b/src/ElectronNET.API/AutoUpdater.cs @@ -30,14 +30,14 @@ public bool AutoDownload taskCompletionSource.SetResult((bool)result); }); - BridgeConnector.Socket.Emit("autoUpdater-autoDownload-get"); + BridgeConnector.Socket.Emit("autoUpdater-autoDownload-get").FireAndForget(); return taskCompletionSource.Task; }).Result; } set { - BridgeConnector.Socket.Emit("autoUpdater-autoDownload-set", value); + BridgeConnector.Socket.Emit("autoUpdater-autoDownload-set", value).FireAndForget(); } } @@ -60,14 +60,13 @@ public bool AutoInstallOnAppQuit taskCompletionSource.SetResult((bool)result); }); - BridgeConnector.Socket.Emit("autoUpdater-autoInstallOnAppQuit-get"); - + BridgeConnector.Socket.Emit("autoUpdater-autoInstallOnAppQuit-get").FireAndForget(); return taskCompletionSource.Task; }).Result; } set { - BridgeConnector.Socket.Emit("autoUpdater-autoInstallOnAppQuit-set", value); + BridgeConnector.Socket.Emit("autoUpdater-autoInstallOnAppQuit-set", value).FireAndForget(); } } @@ -91,14 +90,14 @@ public bool AllowPrerelease taskCompletionSource.SetResult((bool)result); }); - BridgeConnector.Socket.Emit("autoUpdater-allowPrerelease-get"); + BridgeConnector.Socket.Emit("autoUpdater-allowPrerelease-get").FireAndForget(); return taskCompletionSource.Task; }).Result; } set { - BridgeConnector.Socket.Emit("autoUpdater-allowPrerelease-set", value); + BridgeConnector.Socket.Emit("autoUpdater-allowPrerelease-set", value).FireAndForget(); } } @@ -120,14 +119,14 @@ public bool FullChangelog taskCompletionSource.SetResult((bool)result); }); - BridgeConnector.Socket.Emit("autoUpdater-fullChangelog-get"); + BridgeConnector.Socket.Emit("autoUpdater-fullChangelog-get").FireAndForget(); return taskCompletionSource.Task; }).Result; } set { - BridgeConnector.Socket.Emit("autoUpdater-fullChangelog-set", value); + BridgeConnector.Socket.Emit("autoUpdater-fullChangelog-set", value).FireAndForget(); } } @@ -150,14 +149,14 @@ public bool AllowDowngrade taskCompletionSource.SetResult((bool)result); }); - BridgeConnector.Socket.Emit("autoUpdater-allowDowngrade-get"); + BridgeConnector.Socket.Emit("autoUpdater-allowDowngrade-get").FireAndForget(); return taskCompletionSource.Task; }).Result; } set { - BridgeConnector.Socket.Emit("autoUpdater-allowDowngrade-set", value); + BridgeConnector.Socket.Emit("autoUpdater-allowDowngrade-set", value).FireAndForget(); } } @@ -178,7 +177,7 @@ public string UpdateConfigPath taskCompletionSource.SetResult(result.ToString()); }); - BridgeConnector.Socket.Emit("autoUpdater-updateConfigPath-get"); + BridgeConnector.Socket.Emit("autoUpdater-updateConfigPath-get").FireAndForget(); return taskCompletionSource.Task; }).Result; @@ -195,15 +194,14 @@ public Task CurrentVersionAsync return Task.Run(() => { var taskCompletionSource = new TaskCompletionSource(); - BridgeConnector.Socket.On("autoUpdater-currentVersion-get-reply", (result) => { BridgeConnector.Socket.Off("autoUpdater-currentVersion-get-reply"); SemVer version = ((JObject)result).ToObject(); taskCompletionSource.SetResult(version); }); - BridgeConnector.Socket.Emit("autoUpdater-currentVersion-get"); + BridgeConnector.Socket.Emit("autoUpdater-currentVersion-get").FireAndForget(); return taskCompletionSource.Task; }); } @@ -239,8 +237,8 @@ public Task ChannelAsync BridgeConnector.Socket.Off("autoUpdater-channel-get-reply"); taskCompletionSource.SetResult(result.ToString()); }); - BridgeConnector.Socket.Emit("autoUpdater-channel-get"); + BridgeConnector.Socket.Emit("autoUpdater-channel-get").FireAndForget(); return taskCompletionSource.Task; }); } @@ -264,7 +262,8 @@ public Task> RequestHeadersAsync Dictionary result = ((JObject)headers).ToObject>(); taskCompletionSource.SetResult(result); }); - BridgeConnector.Socket.Emit("autoUpdater-requestHeaders-get"); + + BridgeConnector.Socket.Emit("autoUpdater-requestHeaders-get").FireAndForget(); return taskCompletionSource.Task; }); } @@ -277,7 +276,7 @@ public Dictionary RequestHeaders { set { - BridgeConnector.Socket.Emit("autoUpdater-requestHeaders-set", JObject.FromObject(value, _jsonSerializer)); + BridgeConnector.Socket.Emit("autoUpdater-requestHeaders-set", JObject.FromObject(value, _jsonSerializer)).FireAndForget(); } } @@ -295,7 +294,7 @@ public event Action OnError _error(message.ToString()); }); - BridgeConnector.Socket.Emit("register-autoUpdater-error-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-autoUpdater-error-event", GetHashCode()).FireAndForget(); } _error += value; } @@ -304,7 +303,9 @@ public event Action OnError _error -= value; if (_error == null) + { BridgeConnector.Socket.Off("autoUpdater-error" + GetHashCode()); + } } } @@ -324,7 +325,7 @@ public event Action OnCheckingForUpdate _checkingForUpdate(); }); - BridgeConnector.Socket.Emit("register-autoUpdater-checking-for-update-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-autoUpdater-checking-for-update-event", GetHashCode()).FireAndForget(); } _checkingForUpdate += value; } @@ -354,7 +355,7 @@ public event Action OnUpdateAvailable _updateAvailable(JObject.Parse(updateInfo.ToString()).ToObject()); }); - BridgeConnector.Socket.Emit("register-autoUpdater-update-available-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-autoUpdater-update-available-event", GetHashCode()).FireAndForget(); } _updateAvailable += value; } @@ -363,7 +364,9 @@ public event Action OnUpdateAvailable _updateAvailable -= value; if (_updateAvailable == null) + { BridgeConnector.Socket.Off("autoUpdater-update-available" + GetHashCode()); + } } } @@ -383,7 +386,7 @@ public event Action OnUpdateNotAvailable _updateNotAvailable(JObject.Parse(updateInfo.ToString()).ToObject()); }); - BridgeConnector.Socket.Emit("register-autoUpdater-update-not-available-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-autoUpdater-update-not-available-event", GetHashCode()).FireAndForget(); } _updateNotAvailable += value; } @@ -392,7 +395,9 @@ public event Action OnUpdateNotAvailable _updateNotAvailable -= value; if (_updateNotAvailable == null) + { BridgeConnector.Socket.Off("autoUpdater-update-not-available" + GetHashCode()); + } } } @@ -412,7 +417,7 @@ public event Action OnDownloadProgress _downloadProgress(JObject.Parse(progressInfo.ToString()).ToObject()); }); - BridgeConnector.Socket.Emit("register-autoUpdater-download-progress-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-autoUpdater-download-progress-event", GetHashCode()).FireAndForget(); } _downloadProgress += value; } @@ -421,7 +426,9 @@ public event Action OnDownloadProgress _downloadProgress -= value; if (_downloadProgress == null) + { BridgeConnector.Socket.Off("autoUpdater-download-progress" + GetHashCode()); + } } } @@ -441,7 +448,7 @@ public event Action OnUpdateDownloaded _updateDownloaded(JObject.Parse(updateInfo.ToString()).ToObject()); }); - BridgeConnector.Socket.Emit("register-autoUpdater-update-downloaded-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-autoUpdater-update-downloaded-event", GetHashCode()).FireAndForget(); } _updateDownloaded += value; } @@ -450,7 +457,9 @@ public event Action OnUpdateDownloaded _updateDownloaded -= value; if (_updateDownloaded == null) + { BridgeConnector.Socket.Off("autoUpdater-update-downloaded" + GetHashCode()); + } } } @@ -506,14 +515,17 @@ public Task CheckForUpdatesAsync() { BridgeConnector.Socket.Off("autoUpdaterCheckForUpdatesComplete" + guid); BridgeConnector.Socket.Off("autoUpdaterCheckForUpdatesError" + guid); - string message = "An error occurred in CheckForUpdatesAsync"; + var message = "An error occurred in CheckForUpdatesAsync"; + if (error != null && !string.IsNullOrEmpty(error.ToString())) + { message = JsonConvert.SerializeObject(error); + } + taskCompletionSource.SetException(new Exception(message)); }); - BridgeConnector.Socket.Emit("autoUpdaterCheckForUpdates", guid); - + BridgeConnector.Socket.Emit("autoUpdaterCheckForUpdates", guid).FireAndForget(); return taskCompletionSource.Task; } @@ -534,10 +546,15 @@ public Task CheckForUpdatesAndNotifyAsync() { BridgeConnector.Socket.Off("autoUpdaterCheckForUpdatesAndNotifyComplete" + guid); BridgeConnector.Socket.Off("autoUpdaterCheckForUpdatesAndNotifyError" + guid); + if (updateCheckResult == null) + { taskCompletionSource.SetResult(null); + } else + { taskCompletionSource.SetResult(JObject.Parse(updateCheckResult.ToString()).ToObject()); + } } catch (Exception ex) { @@ -548,14 +565,17 @@ public Task CheckForUpdatesAndNotifyAsync() { BridgeConnector.Socket.Off("autoUpdaterCheckForUpdatesAndNotifyComplete" + guid); BridgeConnector.Socket.Off("autoUpdaterCheckForUpdatesAndNotifyError" + guid); - string message = "An error occurred in autoUpdaterCheckForUpdatesAndNotify"; + var message = "An error occurred in autoUpdaterCheckForUpdatesAndNotify"; + if (error != null) + { message = JsonConvert.SerializeObject(error); + } + taskCompletionSource.SetException(new Exception(message)); }); - BridgeConnector.Socket.Emit("autoUpdaterCheckForUpdatesAndNotify", guid); - + BridgeConnector.Socket.Emit("autoUpdaterCheckForUpdatesAndNotify", guid).FireAndForget(); return taskCompletionSource.Task; } @@ -570,7 +590,7 @@ public Task CheckForUpdatesAndNotifyAsync() /// Run the app after finish even on silent install. Not applicable for macOS. Ignored if `isSilent` is set to `false`. public void QuitAndInstall(bool isSilent = false, bool isForceRunAfter = false) { - BridgeConnector.Socket.Emit("autoUpdaterQuitAndInstall", isSilent, isForceRunAfter); + BridgeConnector.Socket.Emit("autoUpdaterQuitAndInstall", isSilent, isForceRunAfter).FireAndForget(); } /// @@ -580,7 +600,7 @@ public void QuitAndInstall(bool isSilent = false, bool isForceRunAfter = false) public Task DownloadUpdateAsync() { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("autoUpdaterDownloadUpdateComplete" + guid, (downloadedPath) => { @@ -588,8 +608,7 @@ public Task DownloadUpdateAsync() taskCompletionSource.SetResult(downloadedPath.ToString()); }); - BridgeConnector.Socket.Emit("autoUpdaterDownloadUpdate", guid); - + BridgeConnector.Socket.Emit("autoUpdaterDownloadUpdate", guid).FireAndForget(); return taskCompletionSource.Task; } @@ -600,7 +619,7 @@ public Task DownloadUpdateAsync() public Task GetFeedURLAsync() { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("autoUpdaterGetFeedURLComplete" + guid, (downloadedPath) => { @@ -608,8 +627,7 @@ public Task GetFeedURLAsync() taskCompletionSource.SetResult(downloadedPath.ToString()); }); - BridgeConnector.Socket.Emit("autoUpdaterGetFeedURL", guid); - + BridgeConnector.Socket.Emit("autoUpdaterGetFeedURL", guid).FireAndForget(); return taskCompletionSource.Task; } diff --git a/src/ElectronNET.API/BrowserView.cs b/src/ElectronNET.API/BrowserView.cs index 96bddd7f..01f8816a 100644 --- a/src/ElectronNET.API/BrowserView.cs +++ b/src/ElectronNET.API/BrowserView.cs @@ -45,14 +45,14 @@ public Rectangle Bounds taskCompletionSource.SetResult((Rectangle)result); }); - BridgeConnector.Socket.Emit("browserView-getBounds", Id); + BridgeConnector.Socket.Emit("browserView-getBounds", Id).FireAndForget(); return taskCompletionSource.Task; }).Result; } set { - BridgeConnector.Socket.Emit("browserView-setBounds", Id, JObject.FromObject(value, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserView-setBounds", Id, JObject.FromObject(value, _jsonSerializer)).FireAndForget(); } } @@ -74,7 +74,7 @@ internal BrowserView(int id) /// public void SetAutoResize(AutoResizeOptions options) { - BridgeConnector.Socket.Emit("browserView-setAutoResize", Id, JObject.FromObject(options, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserView-setAutoResize", Id, JObject.FromObject(options, _jsonSerializer)).FireAndForget(); } /// @@ -85,7 +85,7 @@ public void SetAutoResize(AutoResizeOptions options) /// Color in #aarrggbb or #argb form. The alpha channel is optional. public void SetBackgroundColor(string color) { - BridgeConnector.Socket.Emit("browserView-setBackgroundColor", Id, color); + BridgeConnector.Socket.Emit("browserView-setBackgroundColor", Id, color).FireAndForget(); } private JsonSerializer _jsonSerializer = new JsonSerializer() diff --git a/src/ElectronNET.API/BrowserWindow.cs b/src/ElectronNET.API/BrowserWindow.cs index cb295d2d..4cf05ce3 100644 --- a/src/ElectronNET.API/BrowserWindow.cs +++ b/src/ElectronNET.API/BrowserWindow.cs @@ -39,8 +39,9 @@ public event Action OnReadyToShow _readyToShow(); }); - BridgeConnector.Socket.Emit("register-browserWindow-ready-to-show", Id); + BridgeConnector.Socket.Emit("register-browserWindow-ready-to-show", Id).FireAndForget(); } + _readyToShow += value; } remove @@ -48,7 +49,9 @@ public event Action OnReadyToShow _readyToShow -= value; if (_readyToShow == null) + { BridgeConnector.Socket.Off("browserWindow-ready-to-show" + Id); + } } } @@ -68,7 +71,7 @@ public event Action OnPageTitleUpdated _pageTitleUpdated(title.ToString()); }); - BridgeConnector.Socket.Emit("register-browserWindow-page-title-updated", Id); + BridgeConnector.Socket.Emit("register-browserWindow-page-title-updated", Id).FireAndForget(); } _pageTitleUpdated += value; } @@ -77,7 +80,9 @@ public event Action OnPageTitleUpdated _pageTitleUpdated -= value; if (_pageTitleUpdated == null) + { BridgeConnector.Socket.Off("browserWindow-page-title-updated" + Id); + } } } @@ -97,7 +102,7 @@ public event Action OnClose _close(); }); - BridgeConnector.Socket.Emit("register-browserWindow-close", Id); + BridgeConnector.Socket.Emit("register-browserWindow-close", Id).FireAndForget(); } _close += value; } @@ -106,7 +111,9 @@ public event Action OnClose _close -= value; if (_close == null) + { BridgeConnector.Socket.Off("browserWindow-close" + Id); + } } } @@ -128,7 +135,7 @@ public event Action OnClosed _closed(); }); - BridgeConnector.Socket.Emit("register-browserWindow-closed", Id); + BridgeConnector.Socket.Emit("register-browserWindow-closed", Id).FireAndForget(); } _closed += value; } @@ -137,7 +144,9 @@ public event Action OnClosed _closed -= value; if (_closed == null) + { BridgeConnector.Socket.Off("browserWindow-closed" + Id); + } } } @@ -157,7 +166,7 @@ public event Action OnSessionEnd _sessionEnd(); }); - BridgeConnector.Socket.Emit("register-browserWindow-session-end", Id); + BridgeConnector.Socket.Emit("register-browserWindow-session-end", Id).FireAndForget(); } _sessionEnd += value; } @@ -166,7 +175,9 @@ public event Action OnSessionEnd _sessionEnd -= value; if (_sessionEnd == null) + { BridgeConnector.Socket.Off("browserWindow-session-end" + Id); + } } } @@ -186,7 +197,7 @@ public event Action OnUnresponsive _unresponsive(); }); - BridgeConnector.Socket.Emit("register-browserWindow-unresponsive", Id); + BridgeConnector.Socket.Emit("register-browserWindow-unresponsive", Id).FireAndForget(); } _unresponsive += value; } @@ -195,7 +206,9 @@ public event Action OnUnresponsive _unresponsive -= value; if (_unresponsive == null) + { BridgeConnector.Socket.Off("browserWindow-unresponsive" + Id); + } } } @@ -215,7 +228,7 @@ public event Action OnResponsive _responsive(); }); - BridgeConnector.Socket.Emit("register-browserWindow-responsive", Id); + BridgeConnector.Socket.Emit("register-browserWindow-responsive", Id).FireAndForget(); } _responsive += value; } @@ -224,7 +237,9 @@ public event Action OnResponsive _responsive -= value; if (_responsive == null) + { BridgeConnector.Socket.Off("browserWindow-responsive" + Id); + } } } @@ -244,7 +259,7 @@ public event Action OnBlur _blur(); }); - BridgeConnector.Socket.Emit("register-browserWindow-blur", Id); + BridgeConnector.Socket.Emit("register-browserWindow-blur", Id).FireAndForget(); } _blur += value; } @@ -253,7 +268,9 @@ public event Action OnBlur _blur -= value; if (_blur == null) + { BridgeConnector.Socket.Off("browserWindow-blur" + Id); + } } } @@ -273,7 +290,7 @@ public event Action OnFocus _focus(); }); - BridgeConnector.Socket.Emit("register-browserWindow-focus", Id); + BridgeConnector.Socket.Emit("register-browserWindow-focus", Id).FireAndForget(); } _focus += value; } @@ -282,7 +299,9 @@ public event Action OnFocus _focus -= value; if (_focus == null) + { BridgeConnector.Socket.Off("browserWindow-focus" + Id); + } } } @@ -302,7 +321,7 @@ public event Action OnShow _show(); }); - BridgeConnector.Socket.Emit("register-browserWindow-show", Id); + BridgeConnector.Socket.Emit("register-browserWindow-show", Id).FireAndForget(); } _show += value; } @@ -311,7 +330,9 @@ public event Action OnShow _show -= value; if (_show == null) + { BridgeConnector.Socket.Off("browserWindow-show" + Id); + } } } @@ -331,7 +352,7 @@ public event Action OnHide _hide(); }); - BridgeConnector.Socket.Emit("register-browserWindow-hide", Id); + BridgeConnector.Socket.Emit("register-browserWindow-hide", Id).FireAndForget(); } _hide += value; } @@ -340,7 +361,9 @@ public event Action OnHide _hide -= value; if (_hide == null) + { BridgeConnector.Socket.Off("browserWindow-hide" + Id); + } } } @@ -360,7 +383,7 @@ public event Action OnMaximize _maximize(); }); - BridgeConnector.Socket.Emit("register-browserWindow-maximize", Id); + BridgeConnector.Socket.Emit("register-browserWindow-maximize", Id).FireAndForget(); } _maximize += value; } @@ -369,7 +392,9 @@ public event Action OnMaximize _maximize -= value; if (_maximize == null) + { BridgeConnector.Socket.Off("browserWindow-maximize" + Id); + } } } @@ -389,7 +414,7 @@ public event Action OnUnmaximize _unmaximize(); }); - BridgeConnector.Socket.Emit("register-browserWindow-unmaximize", Id); + BridgeConnector.Socket.Emit("register-browserWindow-unmaximize", Id).FireAndForget(); } _unmaximize += value; } @@ -398,7 +423,9 @@ public event Action OnUnmaximize _unmaximize -= value; if (_unmaximize == null) + { BridgeConnector.Socket.Off("browserWindow-unmaximize" + Id); + } } } @@ -418,7 +445,7 @@ public event Action OnMinimize _minimize(); }); - BridgeConnector.Socket.Emit("register-browserWindow-minimize", Id); + BridgeConnector.Socket.Emit("register-browserWindow-minimize", Id).FireAndForget(); } _minimize += value; } @@ -427,7 +454,9 @@ public event Action OnMinimize _minimize -= value; if (_minimize == null) + { BridgeConnector.Socket.Off("browserWindow-minimize" + Id); + } } } @@ -447,7 +476,7 @@ public event Action OnRestore _restore(); }); - BridgeConnector.Socket.Emit("register-browserWindow-restore", Id); + BridgeConnector.Socket.Emit("register-browserWindow-restore", Id).FireAndForget(); } _restore += value; } @@ -456,7 +485,9 @@ public event Action OnRestore _restore -= value; if (_restore == null) + { BridgeConnector.Socket.Off("browserWindow-restore" + Id); + } } } @@ -476,7 +507,7 @@ public event Action OnResize _resize(); }); - BridgeConnector.Socket.Emit("register-browserWindow-resize", Id); + BridgeConnector.Socket.Emit("register-browserWindow-resize", Id).FireAndForget(); } _resize += value; } @@ -485,7 +516,9 @@ public event Action OnResize _resize -= value; if (_resize == null) + { BridgeConnector.Socket.Off("browserWindow-resize" + Id); + } } } @@ -507,7 +540,7 @@ public event Action OnMove _move(); }); - BridgeConnector.Socket.Emit("register-browserWindow-move", Id); + BridgeConnector.Socket.Emit("register-browserWindow-move", Id).FireAndForget(); } _move += value; } @@ -516,7 +549,9 @@ public event Action OnMove _move -= value; if (_move == null) + { BridgeConnector.Socket.Off("browserWindow-move" + Id); + } } } @@ -536,7 +571,7 @@ public event Action OnMoved _moved(); }); - BridgeConnector.Socket.Emit("register-browserWindow-moved", Id); + BridgeConnector.Socket.Emit("register-browserWindow-moved", Id).FireAndForget(); } _moved += value; } @@ -545,7 +580,9 @@ public event Action OnMoved _moved -= value; if (_moved == null) + { BridgeConnector.Socket.Off("browserWindow-moved" + Id); + } } } @@ -565,7 +602,7 @@ public event Action OnEnterFullScreen _enterFullScreen(); }); - BridgeConnector.Socket.Emit("register-browserWindow-enter-full-screen", Id); + BridgeConnector.Socket.Emit("register-browserWindow-enter-full-screen", Id).FireAndForget(); } _enterFullScreen += value; } @@ -574,7 +611,9 @@ public event Action OnEnterFullScreen _enterFullScreen -= value; if (_enterFullScreen == null) + { BridgeConnector.Socket.Off("browserWindow-enter-full-screen" + Id); + } } } @@ -594,7 +633,7 @@ public event Action OnLeaveFullScreen _leaveFullScreen(); }); - BridgeConnector.Socket.Emit("register-browserWindow-leave-full-screen", Id); + BridgeConnector.Socket.Emit("register-browserWindow-leave-full-screen", Id).FireAndForget(); } _leaveFullScreen += value; } @@ -603,7 +642,9 @@ public event Action OnLeaveFullScreen _leaveFullScreen -= value; if (_leaveFullScreen == null) + { BridgeConnector.Socket.Off("browserWindow-leave-full-screen" + Id); + } } } @@ -623,7 +664,7 @@ public event Action OnEnterHtmlFullScreen _enterHtmlFullScreen(); }); - BridgeConnector.Socket.Emit("register-browserWindow-enter-html-full-screen", Id); + BridgeConnector.Socket.Emit("register-browserWindow-enter-html-full-screen", Id).FireAndForget(); } _enterHtmlFullScreen += value; } @@ -632,7 +673,9 @@ public event Action OnEnterHtmlFullScreen _enterHtmlFullScreen -= value; if (_enterHtmlFullScreen == null) + { BridgeConnector.Socket.Off("browserWindow-enter-html-full-screen" + Id); + } } } @@ -652,7 +695,7 @@ public event Action OnLeaveHtmlFullScreen _leaveHtmlFullScreen(); }); - BridgeConnector.Socket.Emit("register-browserWindow-leave-html-full-screen", Id); + BridgeConnector.Socket.Emit("register-browserWindow-leave-html-full-screen", Id).FireAndForget(); } _leaveHtmlFullScreen += value; } @@ -661,7 +704,9 @@ public event Action OnLeaveHtmlFullScreen _leaveHtmlFullScreen -= value; if (_leaveHtmlFullScreen == null) + { BridgeConnector.Socket.Off("browserWindow-leave-html-full-screen" + Id); + } } } @@ -687,7 +732,7 @@ public event Action OnAppCommand _appCommand(command.ToString()); }); - BridgeConnector.Socket.Emit("register-browserWindow-app-command", Id); + BridgeConnector.Socket.Emit("register-browserWindow-app-command", Id).FireAndForget(); } _appCommand += value; } @@ -696,7 +741,9 @@ public event Action OnAppCommand _appCommand -= value; if (_appCommand == null) + { BridgeConnector.Socket.Off("browserWindow-app-command" + Id); + } } } @@ -716,7 +763,7 @@ public event Action OnSwipe _swipe(direction.ToString()); }); - BridgeConnector.Socket.Emit("register-browserWindow-swipe", Id); + BridgeConnector.Socket.Emit("register-browserWindow-swipe", Id).FireAndForget(); } _swipe += value; } @@ -725,7 +772,9 @@ public event Action OnSwipe _swipe -= value; if (_swipe == null) + { BridgeConnector.Socket.Off("browserWindow-swipe" + Id); + } } } @@ -745,7 +794,7 @@ public event Action OnSheetBegin _sheetBegin(); }); - BridgeConnector.Socket.Emit("register-browserWindow-sheet-begin", Id); + BridgeConnector.Socket.Emit("register-browserWindow-sheet-begin", Id).FireAndForget(); } _sheetBegin += value; } @@ -754,7 +803,9 @@ public event Action OnSheetBegin _sheetBegin -= value; if (_sheetBegin == null) + { BridgeConnector.Socket.Off("browserWindow-sheet-begin" + Id); + } } } @@ -774,7 +825,7 @@ public event Action OnSheetEnd _sheetEnd(); }); - BridgeConnector.Socket.Emit("register-browserWindow-sheet-end", Id); + BridgeConnector.Socket.Emit("register-browserWindow-sheet-end", Id).FireAndForget(); } _sheetEnd += value; } @@ -783,7 +834,9 @@ public event Action OnSheetEnd _sheetEnd -= value; if (_sheetEnd == null) + { BridgeConnector.Socket.Off("browserWindow-sheet-end" + Id); + } } } @@ -803,7 +856,7 @@ public event Action OnNewWindowForTab _newWindowForTab(); }); - BridgeConnector.Socket.Emit("register-browserWindow-new-window-for-tab", Id); + BridgeConnector.Socket.Emit("register-browserWindow-new-window-for-tab", Id).FireAndForget(); } _newWindowForTab += value; } @@ -812,7 +865,9 @@ public event Action OnNewWindowForTab _newWindowForTab -= value; if (_newWindowForTab == null) + { BridgeConnector.Socket.Off("browserWindow-new-window-for-tab" + Id); + } } } @@ -830,7 +885,7 @@ internal BrowserWindow(int id) { /// public void Destroy() { - BridgeConnector.Socket.Emit("browserWindowDestroy", Id); + BridgeConnector.Socket.Emit("browserWindowDestroy", Id).FireAndForget(); } /// @@ -839,7 +894,7 @@ public void Destroy() /// public void Close() { - BridgeConnector.Socket.Emit("browserWindowClose", Id); + BridgeConnector.Socket.Emit("browserWindowClose", Id).FireAndForget(); } /// @@ -847,7 +902,7 @@ public void Close() /// public void Focus() { - BridgeConnector.Socket.Emit("browserWindowFocus", Id); + BridgeConnector.Socket.Emit("browserWindowFocus", Id).FireAndForget(); } /// @@ -855,7 +910,7 @@ public void Focus() /// public void Blur() { - BridgeConnector.Socket.Emit("browserWindowBlur", Id); + BridgeConnector.Socket.Emit("browserWindowBlur", Id).FireAndForget(); } /// @@ -872,7 +927,7 @@ public Task IsFocusedAsync() taskCompletionSource.SetResult((bool)isFocused); }); - BridgeConnector.Socket.Emit("browserWindowIsFocused", Id); + BridgeConnector.Socket.Emit("browserWindowIsFocused", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -891,7 +946,7 @@ public Task IsDestroyedAsync() taskCompletionSource.SetResult((bool)isDestroyed); }); - BridgeConnector.Socket.Emit("browserWindowIsDestroyed", Id); + BridgeConnector.Socket.Emit("browserWindowIsDestroyed", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -901,7 +956,7 @@ public Task IsDestroyedAsync() /// public void Show() { - BridgeConnector.Socket.Emit("browserWindowShow", Id); + BridgeConnector.Socket.Emit("browserWindowShow", Id).FireAndForget(); } /// @@ -909,7 +964,7 @@ public void Show() /// public void ShowInactive() { - BridgeConnector.Socket.Emit("browserWindowShowInactive", Id); + BridgeConnector.Socket.Emit("browserWindowShowInactive", Id).FireAndForget(); } /// @@ -917,7 +972,7 @@ public void ShowInactive() /// public void Hide() { - BridgeConnector.Socket.Emit("browserWindowHide", Id); + BridgeConnector.Socket.Emit("browserWindowHide", Id).FireAndForget(); } /// @@ -934,7 +989,7 @@ public Task IsVisibleAsync() taskCompletionSource.SetResult((bool)isVisible); }); - BridgeConnector.Socket.Emit("browserWindowIsVisible", Id); + BridgeConnector.Socket.Emit("browserWindowIsVisible", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -953,7 +1008,7 @@ public Task IsModalAsync() taskCompletionSource.SetResult((bool)isModal); }); - BridgeConnector.Socket.Emit("browserWindowIsModal", Id); + BridgeConnector.Socket.Emit("browserWindowIsModal", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -963,7 +1018,7 @@ public Task IsModalAsync() /// public void Maximize() { - BridgeConnector.Socket.Emit("browserWindowMaximize", Id); + BridgeConnector.Socket.Emit("browserWindowMaximize", Id).FireAndForget(); } /// @@ -971,7 +1026,7 @@ public void Maximize() /// public void Unmaximize() { - BridgeConnector.Socket.Emit("browserWindowUnmaximize", Id); + BridgeConnector.Socket.Emit("browserWindowUnmaximize", Id).FireAndForget(); } /// @@ -988,7 +1043,7 @@ public Task IsMaximizedAsync() taskCompletionSource.SetResult((bool)isMaximized); }); - BridgeConnector.Socket.Emit("browserWindowIsMaximized", Id); + BridgeConnector.Socket.Emit("browserWindowIsMaximized", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -998,7 +1053,7 @@ public Task IsMaximizedAsync() /// public void Minimize() { - BridgeConnector.Socket.Emit("browserWindowMinimize", Id); + BridgeConnector.Socket.Emit("browserWindowMinimize", Id).FireAndForget(); } /// @@ -1006,7 +1061,7 @@ public void Minimize() /// public void Restore() { - BridgeConnector.Socket.Emit("browserWindowRestore", Id); + BridgeConnector.Socket.Emit("browserWindowRestore", Id).FireAndForget(); } /// @@ -1023,7 +1078,7 @@ public Task IsMinimizedAsync() taskCompletionSource.SetResult((bool)isMinimized); }); - BridgeConnector.Socket.Emit("browserWindowIsMinimized", Id); + BridgeConnector.Socket.Emit("browserWindowIsMinimized", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1033,7 +1088,7 @@ public Task IsMinimizedAsync() /// public void SetFullScreen(bool flag) { - BridgeConnector.Socket.Emit("browserWindowSetFullScreen", Id, flag); + BridgeConnector.Socket.Emit("browserWindowSetFullScreen", Id, flag).FireAndForget(); } /// @@ -1050,7 +1105,7 @@ public Task IsFullScreenAsync() taskCompletionSource.SetResult((bool)isFullScreen); }); - BridgeConnector.Socket.Emit("browserWindowIsFullScreen", Id); + BridgeConnector.Socket.Emit("browserWindowIsFullScreen", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1071,7 +1126,7 @@ public Task IsFullScreenAsync() /// The extra size not to be included while maintaining the aspect ratio. public void SetAspectRatio(int aspectRatio, Size extraSize) { - BridgeConnector.Socket.Emit("browserWindowSetAspectRatio", Id, aspectRatio, JObject.FromObject(extraSize, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowSetAspectRatio", Id, aspectRatio, JObject.FromObject(extraSize, _jsonSerializer)).FireAndForget(); } /// @@ -1082,7 +1137,7 @@ public void SetAspectRatio(int aspectRatio, Size extraSize) /// file to open. public void PreviewFile(string path) { - BridgeConnector.Socket.Emit("browserWindowPreviewFile", Id, path); + BridgeConnector.Socket.Emit("browserWindowPreviewFile", Id, path).FireAndForget(); } /// @@ -1095,7 +1150,7 @@ public void PreviewFile(string path) /// purely visual and does not affect the content type of the file. Defaults to path. public void PreviewFile(string path, string displayname) { - BridgeConnector.Socket.Emit("browserWindowPreviewFile", Id, path, displayname); + BridgeConnector.Socket.Emit("browserWindowPreviewFile", Id, path, displayname).FireAndForget(); } /// @@ -1103,7 +1158,7 @@ public void PreviewFile(string path, string displayname) /// public void CloseFilePreview() { - BridgeConnector.Socket.Emit("browserWindowCloseFilePreview", Id); + BridgeConnector.Socket.Emit("browserWindowCloseFilePreview", Id).FireAndForget(); } /// @@ -1112,7 +1167,7 @@ public void CloseFilePreview() /// public void SetBounds(Rectangle bounds) { - BridgeConnector.Socket.Emit("browserWindowSetBounds", Id, JObject.FromObject(bounds, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowSetBounds", Id, JObject.FromObject(bounds, _jsonSerializer)).FireAndForget(); } /// @@ -1122,7 +1177,7 @@ public void SetBounds(Rectangle bounds) /// public void SetBounds(Rectangle bounds, bool animate) { - BridgeConnector.Socket.Emit("browserWindowSetBounds", Id, JObject.FromObject(bounds, _jsonSerializer), animate); + BridgeConnector.Socket.Emit("browserWindowSetBounds", Id, JObject.FromObject(bounds, _jsonSerializer), animate).FireAndForget(); } /// @@ -1139,7 +1194,7 @@ public Task GetBoundsAsync() taskCompletionSource.SetResult(((JObject)getBounds).ToObject()); }); - BridgeConnector.Socket.Emit("browserWindowGetBounds", Id); + BridgeConnector.Socket.Emit("browserWindowGetBounds", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1150,7 +1205,7 @@ public Task GetBoundsAsync() /// public void SetContentBounds(Rectangle bounds) { - BridgeConnector.Socket.Emit("browserWindowSetContentBounds", Id, JObject.FromObject(bounds, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowSetContentBounds", Id, JObject.FromObject(bounds, _jsonSerializer)).FireAndForget(); } /// @@ -1160,7 +1215,7 @@ public void SetContentBounds(Rectangle bounds) /// public void SetContentBounds(Rectangle bounds, bool animate) { - BridgeConnector.Socket.Emit("browserWindowSetContentBounds", Id, JObject.FromObject(bounds, _jsonSerializer), animate); + BridgeConnector.Socket.Emit("browserWindowSetContentBounds", Id, JObject.FromObject(bounds, _jsonSerializer), animate).FireAndForget(); } /// @@ -1177,7 +1232,7 @@ public Task GetContentBoundsAsync() taskCompletionSource.SetResult(((JObject)getContentBounds).ToObject()); }); - BridgeConnector.Socket.Emit("browserWindowGetContentBounds", Id); + BridgeConnector.Socket.Emit("browserWindowGetContentBounds", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1189,7 +1244,7 @@ public Task GetContentBoundsAsync() /// public void SetSize(int width, int height) { - BridgeConnector.Socket.Emit("browserWindowSetSize", Id, width, height); + BridgeConnector.Socket.Emit("browserWindowSetSize", Id, width, height).FireAndForget(); } /// @@ -1200,7 +1255,7 @@ public void SetSize(int width, int height) /// public void SetSize(int width, int height, bool animate) { - BridgeConnector.Socket.Emit("browserWindowSetSize", Id, width, height, animate); + BridgeConnector.Socket.Emit("browserWindowSetSize", Id, width, height, animate).FireAndForget(); } /// @@ -1217,7 +1272,7 @@ public Task GetSizeAsync() taskCompletionSource.SetResult(((JArray)size).ToObject()); }); - BridgeConnector.Socket.Emit("browserWindowGetSize", Id); + BridgeConnector.Socket.Emit("browserWindowGetSize", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1229,7 +1284,7 @@ public Task GetSizeAsync() /// public void SetContentSize(int width, int height) { - BridgeConnector.Socket.Emit("browserWindowSetContentSize", Id, width, height); + BridgeConnector.Socket.Emit("browserWindowSetContentSize", Id, width, height).FireAndForget(); } /// @@ -1240,7 +1295,7 @@ public void SetContentSize(int width, int height) /// public void SetContentSize(int width, int height, bool animate) { - BridgeConnector.Socket.Emit("browserWindowSetContentSize", Id, width, height, animate); + BridgeConnector.Socket.Emit("browserWindowSetContentSize", Id, width, height, animate).FireAndForget(); } /// @@ -1257,7 +1312,7 @@ public Task GetContentSizeAsync() taskCompletionSource.SetResult(((JArray)size).ToObject()); }); - BridgeConnector.Socket.Emit("browserWindowGetContentSize", Id); + BridgeConnector.Socket.Emit("browserWindowGetContentSize", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1269,7 +1324,7 @@ public Task GetContentSizeAsync() /// public void SetMinimumSize(int width, int height) { - BridgeConnector.Socket.Emit("browserWindowSetMinimumSize", Id, width, height); + BridgeConnector.Socket.Emit("browserWindowSetMinimumSize", Id, width, height).FireAndForget(); } /// @@ -1286,7 +1341,7 @@ public Task GetMinimumSizeAsync() taskCompletionSource.SetResult(((JArray)size).ToObject()); }); - BridgeConnector.Socket.Emit("browserWindowGetMinimumSize", Id); + BridgeConnector.Socket.Emit("browserWindowGetMinimumSize", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1298,7 +1353,7 @@ public Task GetMinimumSizeAsync() /// public void SetMaximumSize(int width, int height) { - BridgeConnector.Socket.Emit("browserWindowSetMaximumSize", Id, width, height); + BridgeConnector.Socket.Emit("browserWindowSetMaximumSize", Id, width, height).FireAndForget(); } /// @@ -1315,7 +1370,7 @@ public Task GetMaximumSizeAsync() taskCompletionSource.SetResult(((JArray)size).ToObject()); }); - BridgeConnector.Socket.Emit("browserWindowGetMaximumSize", Id); + BridgeConnector.Socket.Emit("browserWindowGetMaximumSize", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1326,7 +1381,7 @@ public Task GetMaximumSizeAsync() /// public void SetResizable(bool resizable) { - BridgeConnector.Socket.Emit("browserWindowSetResizable", Id, resizable); + BridgeConnector.Socket.Emit("browserWindowSetResizable", Id, resizable).FireAndForget(); } /// @@ -1343,7 +1398,7 @@ public Task IsResizableAsync() taskCompletionSource.SetResult((bool)resizable); }); - BridgeConnector.Socket.Emit("browserWindowIsResizable", Id); + BridgeConnector.Socket.Emit("browserWindowIsResizable", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1354,7 +1409,7 @@ public Task IsResizableAsync() /// public void SetMovable(bool movable) { - BridgeConnector.Socket.Emit("browserWindowSetMovable", Id, movable); + BridgeConnector.Socket.Emit("browserWindowSetMovable", Id, movable).FireAndForget(); } /// @@ -1373,7 +1428,7 @@ public Task IsMovableAsync() taskCompletionSource.SetResult((bool)movable); }); - BridgeConnector.Socket.Emit("browserWindowIsMovable", Id); + BridgeConnector.Socket.Emit("browserWindowIsMovable", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1384,7 +1439,7 @@ public Task IsMovableAsync() /// public void SetMinimizable(bool minimizable) { - BridgeConnector.Socket.Emit("browserWindowSetMinimizable", Id, minimizable); + BridgeConnector.Socket.Emit("browserWindowSetMinimizable", Id, minimizable).FireAndForget(); } /// @@ -1403,7 +1458,7 @@ public Task IsMinimizableAsync() taskCompletionSource.SetResult((bool)minimizable); }); - BridgeConnector.Socket.Emit("browserWindowIsMinimizable", Id); + BridgeConnector.Socket.Emit("browserWindowIsMinimizable", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1414,7 +1469,7 @@ public Task IsMinimizableAsync() /// public void SetMaximizable(bool maximizable) { - BridgeConnector.Socket.Emit("browserWindowSetMaximizable", Id, maximizable); + BridgeConnector.Socket.Emit("browserWindowSetMaximizable", Id, maximizable).FireAndForget(); } /// @@ -1433,7 +1488,7 @@ public Task IsMaximizableAsync() taskCompletionSource.SetResult((bool)maximizable); }); - BridgeConnector.Socket.Emit("browserWindowIsMaximizable", Id); + BridgeConnector.Socket.Emit("browserWindowIsMaximizable", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1444,7 +1499,7 @@ public Task IsMaximizableAsync() /// public void SetFullScreenable(bool fullscreenable) { - BridgeConnector.Socket.Emit("browserWindowSetFullScreenable", Id, fullscreenable); + BridgeConnector.Socket.Emit("browserWindowSetFullScreenable", Id, fullscreenable).FireAndForget(); } /// @@ -1461,7 +1516,7 @@ public Task IsFullScreenableAsync() taskCompletionSource.SetResult((bool)fullscreenable); }); - BridgeConnector.Socket.Emit("browserWindowIsFullScreenable", Id); + BridgeConnector.Socket.Emit("browserWindowIsFullScreenable", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1472,7 +1527,7 @@ public Task IsFullScreenableAsync() /// public void SetClosable(bool closable) { - BridgeConnector.Socket.Emit("browserWindowSetClosable", Id, closable); + BridgeConnector.Socket.Emit("browserWindowSetClosable", Id, closable).FireAndForget(); } /// @@ -1491,7 +1546,7 @@ public Task IsClosableAsync() taskCompletionSource.SetResult((bool)closable); }); - BridgeConnector.Socket.Emit("browserWindowIsClosable", Id); + BridgeConnector.Socket.Emit("browserWindowIsClosable", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1504,7 +1559,7 @@ public Task IsClosableAsync() /// public void SetAlwaysOnTop(bool flag) { - BridgeConnector.Socket.Emit("browserWindowSetAlwaysOnTop", Id, flag); + BridgeConnector.Socket.Emit("browserWindowSetAlwaysOnTop", Id, flag).FireAndForget(); } /// @@ -1518,7 +1573,7 @@ public void SetAlwaysOnTop(bool flag) /// See the macOS docs public void SetAlwaysOnTop(bool flag, OnTopLevel level) { - BridgeConnector.Socket.Emit("browserWindowSetAlwaysOnTop", Id, flag, level.GetDescription()); + BridgeConnector.Socket.Emit("browserWindowSetAlwaysOnTop", Id, flag, level.GetDescription()).FireAndForget(); } /// @@ -1534,7 +1589,7 @@ public void SetAlwaysOnTop(bool flag, OnTopLevel level) /// The default is 0. Note that Apple discourages setting levels higher than 1 above screen-saver. public void SetAlwaysOnTop(bool flag, OnTopLevel level, int relativeLevel) { - BridgeConnector.Socket.Emit("browserWindowSetAlwaysOnTop", Id, flag, level.GetDescription(), relativeLevel); + BridgeConnector.Socket.Emit("browserWindowSetAlwaysOnTop", Id, flag, level.GetDescription(), relativeLevel).FireAndForget(); } /// @@ -1551,7 +1606,7 @@ public Task IsAlwaysOnTopAsync() taskCompletionSource.SetResult((bool)isAlwaysOnTop); }); - BridgeConnector.Socket.Emit("browserWindowIsAlwaysOnTop", Id); + BridgeConnector.Socket.Emit("browserWindowIsAlwaysOnTop", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1561,7 +1616,7 @@ public Task IsAlwaysOnTopAsync() /// public void Center() { - BridgeConnector.Socket.Emit("browserWindowCenter", Id); + BridgeConnector.Socket.Emit("browserWindowCenter", Id).FireAndForget(); } /// @@ -1578,7 +1633,7 @@ public void SetPosition(int x, int y) x = x - 7; } - BridgeConnector.Socket.Emit("browserWindowSetPosition", Id, x, y); + BridgeConnector.Socket.Emit("browserWindowSetPosition", Id, x, y).FireAndForget(); } /// @@ -1596,7 +1651,7 @@ public void SetPosition(int x, int y, bool animate) x = x - 7; } - BridgeConnector.Socket.Emit("browserWindowSetPosition", Id, x, y, animate); + BridgeConnector.Socket.Emit("browserWindowSetPosition", Id, x, y, animate).FireAndForget(); } private bool isWindows10() @@ -1618,7 +1673,7 @@ public Task GetPositionAsync() taskCompletionSource.SetResult(((JArray)position).ToObject()); }); - BridgeConnector.Socket.Emit("browserWindowGetPosition", Id); + BridgeConnector.Socket.Emit("browserWindowGetPosition", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1629,7 +1684,7 @@ public Task GetPositionAsync() /// public void SetTitle(string title) { - BridgeConnector.Socket.Emit("browserWindowSetTitle", Id, title); + BridgeConnector.Socket.Emit("browserWindowSetTitle", Id, title).FireAndForget(); } /// @@ -1648,7 +1703,7 @@ public Task GetTitleAsync() taskCompletionSource.SetResult(title.ToString()); }); - BridgeConnector.Socket.Emit("browserWindowGetTitle", Id); + BridgeConnector.Socket.Emit("browserWindowGetTitle", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1661,7 +1716,7 @@ public Task GetTitleAsync() /// public void SetSheetOffset(float offsetY) { - BridgeConnector.Socket.Emit("browserWindowSetSheetOffset", Id, offsetY); + BridgeConnector.Socket.Emit("browserWindowSetSheetOffset", Id, offsetY).FireAndForget(); } /// @@ -1673,7 +1728,7 @@ public void SetSheetOffset(float offsetY) /// public void SetSheetOffset(float offsetY, float offsetX) { - BridgeConnector.Socket.Emit("browserWindowSetSheetOffset", Id, offsetY, offsetX); + BridgeConnector.Socket.Emit("browserWindowSetSheetOffset", Id, offsetY, offsetX).FireAndForget(); } /// @@ -1682,7 +1737,7 @@ public void SetSheetOffset(float offsetY, float offsetX) /// public void FlashFrame(bool flag) { - BridgeConnector.Socket.Emit("browserWindowFlashFrame", Id, flag); + BridgeConnector.Socket.Emit("browserWindowFlashFrame", Id, flag).FireAndForget(); } /// @@ -1691,7 +1746,7 @@ public void FlashFrame(bool flag) /// public void SetSkipTaskbar(bool skip) { - BridgeConnector.Socket.Emit("browserWindowSetSkipTaskbar", Id, skip); + BridgeConnector.Socket.Emit("browserWindowSetSkipTaskbar", Id, skip).FireAndForget(); } /// @@ -1700,7 +1755,7 @@ public void SetSkipTaskbar(bool skip) /// public void SetKiosk(bool flag) { - BridgeConnector.Socket.Emit("browserWindowSetKiosk", Id, flag); + BridgeConnector.Socket.Emit("browserWindowSetKiosk", Id, flag).FireAndForget(); } /// @@ -1717,7 +1772,7 @@ public Task IsKioskAsync() taskCompletionSource.SetResult((bool)isKiosk); }); - BridgeConnector.Socket.Emit("browserWindowIsKiosk", Id); + BridgeConnector.Socket.Emit("browserWindowIsKiosk", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1736,7 +1791,7 @@ public Task GetNativeWindowHandle() taskCompletionSource.SetResult(nativeWindowHandle.ToString()); }); - BridgeConnector.Socket.Emit("browserWindowGetNativeWindowHandle", Id); + BridgeConnector.Socket.Emit("browserWindowGetNativeWindowHandle", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1748,7 +1803,7 @@ public Task GetNativeWindowHandle() /// public void SetRepresentedFilename(string filename) { - BridgeConnector.Socket.Emit("browserWindowSetRepresentedFilename", Id, filename); + BridgeConnector.Socket.Emit("browserWindowSetRepresentedFilename", Id, filename).FireAndForget(); } /// @@ -1765,7 +1820,7 @@ public Task GetRepresentedFilenameAsync() taskCompletionSource.SetResult(pathname.ToString()); }); - BridgeConnector.Socket.Emit("browserWindowGetRepresentedFilename", Id); + BridgeConnector.Socket.Emit("browserWindowGetRepresentedFilename", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1777,7 +1832,7 @@ public Task GetRepresentedFilenameAsync() /// public void SetDocumentEdited(bool edited) { - BridgeConnector.Socket.Emit("browserWindowSetDocumentEdited", Id, edited); + BridgeConnector.Socket.Emit("browserWindowSetDocumentEdited", Id, edited).FireAndForget(); } /// @@ -1794,7 +1849,7 @@ public Task IsDocumentEditedAsync() taskCompletionSource.SetResult((bool)edited); }); - BridgeConnector.Socket.Emit("browserWindowIsDocumentEdited", Id); + BridgeConnector.Socket.Emit("browserWindowIsDocumentEdited", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1804,7 +1859,7 @@ public Task IsDocumentEditedAsync() /// public void FocusOnWebView() { - BridgeConnector.Socket.Emit("browserWindowFocusOnWebView", Id); + BridgeConnector.Socket.Emit("browserWindowFocusOnWebView", Id).FireAndForget(); } /// @@ -1812,7 +1867,7 @@ public void FocusOnWebView() /// public void BlurWebView() { - BridgeConnector.Socket.Emit("browserWindowBlurWebView", Id); + BridgeConnector.Socket.Emit("browserWindowBlurWebView", Id).FireAndForget(); } /// @@ -1822,7 +1877,7 @@ public void BlurWebView() /// public void LoadURL(string url) { - BridgeConnector.Socket.Emit("browserWindowLoadURL", Id, url); + BridgeConnector.Socket.Emit("browserWindowLoadURL", Id, url).FireAndForget(); } /// @@ -1833,7 +1888,7 @@ public void LoadURL(string url) /// public void LoadURL(string url, LoadURLOptions options) { - BridgeConnector.Socket.Emit("browserWindowLoadURL", Id, url, JObject.FromObject(options, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowLoadURL", Id, url, JObject.FromObject(options, _jsonSerializer)).FireAndForget(); } /// @@ -1841,7 +1896,7 @@ public void LoadURL(string url, LoadURLOptions options) /// public void Reload() { - BridgeConnector.Socket.Emit("browserWindowReload", Id); + BridgeConnector.Socket.Emit("browserWindowReload", Id).FireAndForget(); } /// @@ -1850,7 +1905,8 @@ public void Reload() /// /// The menu items. /// - public IReadOnlyCollection MenuItems { get { return _items.AsReadOnly(); } } + public IReadOnlyCollection MenuItems => _items.AsReadOnly(); + private List _items = new List(); /// @@ -1861,7 +1917,7 @@ public void Reload() public void SetMenu(MenuItem[] menuItems) { menuItems.AddMenuItemsId(); - BridgeConnector.Socket.Emit("browserWindowSetMenu", Id, JArray.FromObject(menuItems, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowSetMenu", Id, JArray.FromObject(menuItems, _jsonSerializer)).FireAndForget(); _items.AddRange(menuItems); BridgeConnector.Socket.Off("windowMenuItemClicked"); @@ -1876,7 +1932,7 @@ public void SetMenu(MenuItem[] menuItems) /// public void RemoveMenu() { - BridgeConnector.Socket.Emit("browserWindowRemoveMenu", Id); + BridgeConnector.Socket.Emit("browserWindowRemoveMenu", Id).FireAndForget(); } /// @@ -1892,7 +1948,7 @@ public void RemoveMenu() /// public void SetProgressBar(double progress) { - BridgeConnector.Socket.Emit("browserWindowSetProgressBar", Id, progress); + BridgeConnector.Socket.Emit("browserWindowSetProgressBar", Id, progress).FireAndForget(); } /// @@ -1909,7 +1965,7 @@ public void SetProgressBar(double progress) /// public void SetProgressBar(double progress, ProgressBarOptions progressBarOptions) { - BridgeConnector.Socket.Emit("browserWindowSetProgressBar", Id, progress, JObject.FromObject(progressBarOptions, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowSetProgressBar", Id, progress, JObject.FromObject(progressBarOptions, _jsonSerializer)).FireAndForget(); } /// @@ -1918,7 +1974,7 @@ public void SetProgressBar(double progress, ProgressBarOptions progressBarOption /// public void SetHasShadow(bool hasShadow) { - BridgeConnector.Socket.Emit("browserWindowSetHasShadow", Id, hasShadow); + BridgeConnector.Socket.Emit("browserWindowSetHasShadow", Id, hasShadow).FireAndForget(); } /// @@ -1937,7 +1993,7 @@ public Task HasShadowAsync() taskCompletionSource.SetResult((bool)hasShadow); }); - BridgeConnector.Socket.Emit("browserWindowHasShadow", Id); + BridgeConnector.Socket.Emit("browserWindowHasShadow", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -1974,7 +2030,7 @@ public Task SetThumbarButtonsAsync(ThumbarButton[] thumbarButtons) }); thumbarButtons.AddThumbarButtonsId(); - BridgeConnector.Socket.Emit("browserWindowSetThumbarButtons", Id, JArray.FromObject(thumbarButtons, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowSetThumbarButtons", Id, JArray.FromObject(thumbarButtons, _jsonSerializer)).FireAndForget(); _thumbarButtons.Clear(); _thumbarButtons.AddRange(thumbarButtons); @@ -1995,7 +2051,7 @@ public Task SetThumbarButtonsAsync(ThumbarButton[] thumbarButtons) /// public void SetThumbnailClip(Rectangle rectangle) { - BridgeConnector.Socket.Emit("browserWindowSetThumbnailClip", Id, rectangle); + BridgeConnector.Socket.Emit("browserWindowSetThumbnailClip", Id, rectangle).FireAndForget(); } /// @@ -2004,7 +2060,7 @@ public void SetThumbnailClip(Rectangle rectangle) /// public void SetThumbnailToolTip(string tooltip) { - BridgeConnector.Socket.Emit("browserWindowSetThumbnailToolTip", Id, tooltip); + BridgeConnector.Socket.Emit("browserWindowSetThumbnailToolTip", Id, tooltip).FireAndForget(); } /// @@ -2016,7 +2072,7 @@ public void SetThumbnailToolTip(string tooltip) /// public void SetAppDetails(AppDetailsOptions options) { - BridgeConnector.Socket.Emit("browserWindowSetAppDetails", Id, JObject.FromObject(options, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowSetAppDetails", Id, JObject.FromObject(options, _jsonSerializer)).FireAndForget(); } /// @@ -2024,7 +2080,7 @@ public void SetAppDetails(AppDetailsOptions options) /// public void ShowDefinitionForSelection() { - BridgeConnector.Socket.Emit("browserWindowShowDefinitionForSelection", Id); + BridgeConnector.Socket.Emit("browserWindowShowDefinitionForSelection", Id).FireAndForget(); } /// @@ -2036,7 +2092,7 @@ public void ShowDefinitionForSelection() /// public void SetAutoHideMenuBar(bool hide) { - BridgeConnector.Socket.Emit("browserWindowSetAutoHideMenuBar", Id, hide); + BridgeConnector.Socket.Emit("browserWindowSetAutoHideMenuBar", Id, hide).FireAndForget(); } /// @@ -2053,7 +2109,7 @@ public Task IsMenuBarAutoHideAsync() taskCompletionSource.SetResult((bool)isMenuBarAutoHide); }); - BridgeConnector.Socket.Emit("browserWindowIsMenuBarAutoHide", Id); + BridgeConnector.Socket.Emit("browserWindowIsMenuBarAutoHide", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -2065,7 +2121,7 @@ public Task IsMenuBarAutoHideAsync() /// public void SetMenuBarVisibility(bool visible) { - BridgeConnector.Socket.Emit("browserWindowSetMenuBarVisibility", Id, visible); + BridgeConnector.Socket.Emit("browserWindowSetMenuBarVisibility", Id, visible).FireAndForget(); } /// @@ -2082,7 +2138,7 @@ public Task IsMenuBarVisibleAsync() taskCompletionSource.SetResult((bool)isMenuBarVisible); }); - BridgeConnector.Socket.Emit("browserWindowIsMenuBarVisible", Id); + BridgeConnector.Socket.Emit("browserWindowIsMenuBarVisible", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -2095,7 +2151,7 @@ public Task IsMenuBarVisibleAsync() /// public void SetVisibleOnAllWorkspaces(bool visible) { - BridgeConnector.Socket.Emit("browserWindowSetVisibleOnAllWorkspaces", Id, visible); + BridgeConnector.Socket.Emit("browserWindowSetVisibleOnAllWorkspaces", Id, visible).FireAndForget(); } /// @@ -2114,7 +2170,7 @@ public Task IsVisibleOnAllWorkspacesAsync() taskCompletionSource.SetResult((bool)isVisibleOnAllWorkspaces); }); - BridgeConnector.Socket.Emit("browserWindowIsVisibleOnAllWorkspaces", Id); + BridgeConnector.Socket.Emit("browserWindowIsVisibleOnAllWorkspaces", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -2128,7 +2184,7 @@ public Task IsVisibleOnAllWorkspacesAsync() /// public void SetIgnoreMouseEvents(bool ignore) { - BridgeConnector.Socket.Emit("browserWindowSetIgnoreMouseEvents", Id, ignore); + BridgeConnector.Socket.Emit("browserWindowSetIgnoreMouseEvents", Id, ignore).FireAndForget(); } /// @@ -2140,7 +2196,7 @@ public void SetIgnoreMouseEvents(bool ignore) /// public void SetContentProtection(bool enable) { - BridgeConnector.Socket.Emit("browserWindowSetContentProtection", Id, enable); + BridgeConnector.Socket.Emit("browserWindowSetContentProtection", Id, enable).FireAndForget(); } /// @@ -2149,7 +2205,7 @@ public void SetContentProtection(bool enable) /// public void SetFocusable(bool focusable) { - BridgeConnector.Socket.Emit("browserWindowSetFocusable", Id, focusable); + BridgeConnector.Socket.Emit("browserWindowSetFocusable", Id, focusable).FireAndForget(); } /// @@ -2159,7 +2215,7 @@ public void SetFocusable(bool focusable) /// public void SetParentWindow(BrowserWindow parent) { - BridgeConnector.Socket.Emit("browserWindowSetParentWindow", Id, JObject.FromObject(parent, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowSetParentWindow", Id, JObject.FromObject(parent, _jsonSerializer)).FireAndForget(); } /// @@ -2178,7 +2234,7 @@ public Task GetParentWindowAsync() taskCompletionSource.SetResult(browserWindow); }); - BridgeConnector.Socket.Emit("browserWindowGetParentWindow", Id); + BridgeConnector.Socket.Emit("browserWindowGetParentWindow", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -2206,7 +2262,7 @@ public Task> GetChildWindowsAsync() taskCompletionSource.SetResult(browserWindows); }); - BridgeConnector.Socket.Emit("browserWindowGetChildWindows", Id); + BridgeConnector.Socket.Emit("browserWindowGetChildWindows", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -2217,7 +2273,7 @@ public Task> GetChildWindowsAsync() /// public void SetAutoHideCursor(bool autoHide) { - BridgeConnector.Socket.Emit("browserWindowSetAutoHideCursor", Id, autoHide); + BridgeConnector.Socket.Emit("browserWindowSetAutoHideCursor", Id, autoHide).FireAndForget(); } /// @@ -2229,7 +2285,7 @@ public void SetAutoHideCursor(bool autoHide) /// See the macOS documentation for more details. public void SetVibrancy(Vibrancy type) { - BridgeConnector.Socket.Emit("browserWindowSetVibrancy", Id, type.GetDescription()); + BridgeConnector.Socket.Emit("browserWindowSetVibrancy", Id, type.GetDescription()).FireAndForget(); } /// @@ -2245,7 +2301,7 @@ public void SetVibrancy(Vibrancy type) /// public void SetBrowserView(BrowserView browserView) { - BridgeConnector.Socket.Emit("browserWindow-setBrowserView", Id, browserView.Id); + BridgeConnector.Socket.Emit("browserWindow-setBrowserView", Id, browserView.Id).FireAndForget(); } private readonly JsonSerializer _jsonSerializer = new() diff --git a/src/ElectronNET.API/Clipboard.cs b/src/ElectronNET.API/Clipboard.cs index e7535378..415defd5 100644 --- a/src/ElectronNET.API/Clipboard.cs +++ b/src/ElectronNET.API/Clipboard.cs @@ -51,7 +51,7 @@ public Task ReadTextAsync(string type = "") taskCompletionSource.SetResult(text.ToString()); }); - BridgeConnector.Socket.Emit("clipboard-readText", type); + BridgeConnector.Socket.Emit("clipboard-readText", type).FireAndForget(); return taskCompletionSource.Task; } @@ -63,7 +63,7 @@ public Task ReadTextAsync(string type = "") /// public void WriteText(string text, string type = "") { - BridgeConnector.Socket.Emit("clipboard-writeText", text, type); + BridgeConnector.Socket.Emit("clipboard-writeText", text, type).FireAndForget(); } /// @@ -82,7 +82,7 @@ public Task ReadHTMLAsync(string type = "") taskCompletionSource.SetResult(text.ToString()); }); - BridgeConnector.Socket.Emit("clipboard-readHTML", type); + BridgeConnector.Socket.Emit("clipboard-readHTML", type).FireAndForget(); return taskCompletionSource.Task; } @@ -94,7 +94,7 @@ public Task ReadHTMLAsync(string type = "") /// public void WriteHTML(string markup, string type = "") { - BridgeConnector.Socket.Emit("clipboard-writeHTML", markup, type); + BridgeConnector.Socket.Emit("clipboard-writeHTML", markup, type).FireAndForget(); } /// @@ -113,7 +113,7 @@ public Task ReadRTFAsync(string type = "") taskCompletionSource.SetResult(text.ToString()); }); - BridgeConnector.Socket.Emit("clipboard-readRTF", type); + BridgeConnector.Socket.Emit("clipboard-readRTF", type).FireAndForget(); return taskCompletionSource.Task; } @@ -125,7 +125,7 @@ public Task ReadRTFAsync(string type = "") /// public void WriteRTF(string text, string type = "") { - BridgeConnector.Socket.Emit("clipboard-writeHTML", text, type); + BridgeConnector.Socket.Emit("clipboard-writeHTML", text, type).FireAndForget(); } /// @@ -145,7 +145,7 @@ public Task ReadBookmarkAsync() taskCompletionSource.SetResult(((JObject)bookmark).ToObject()); }); - BridgeConnector.Socket.Emit("clipboard-readBookmark"); + BridgeConnector.Socket.Emit("clipboard-readBookmark").FireAndForget(); return taskCompletionSource.Task; } @@ -162,7 +162,7 @@ public Task ReadBookmarkAsync() /// public void WriteBookmark(string title, string url, string type = "") { - BridgeConnector.Socket.Emit("clipboard-writeBookmark", title, url, type); + BridgeConnector.Socket.Emit("clipboard-writeBookmark", title, url, type).FireAndForget(); } /// @@ -182,7 +182,7 @@ public Task ReadFindTextAsync() taskCompletionSource.SetResult(text.ToString()); }); - BridgeConnector.Socket.Emit("clipboard-readFindText"); + BridgeConnector.Socket.Emit("clipboard-readFindText").FireAndForget(); return taskCompletionSource.Task; } @@ -194,7 +194,7 @@ public Task ReadFindTextAsync() /// public void WriteFindText(string text) { - BridgeConnector.Socket.Emit("clipboard-writeFindText", text); + BridgeConnector.Socket.Emit("clipboard-writeFindText", text).FireAndForget(); } /// @@ -203,7 +203,7 @@ public void WriteFindText(string text) /// public void Clear(string type = "") { - BridgeConnector.Socket.Emit("clipboard-clear", type); + BridgeConnector.Socket.Emit("clipboard-clear", type).FireAndForget(); } /// @@ -222,7 +222,7 @@ public Task AvailableFormatsAsync(string type = "") taskCompletionSource.SetResult(((JArray)formats).ToObject()); }); - BridgeConnector.Socket.Emit("clipboard-availableFormats", type); + BridgeConnector.Socket.Emit("clipboard-availableFormats", type).FireAndForget(); return taskCompletionSource.Task; } @@ -234,7 +234,7 @@ public Task AvailableFormatsAsync(string type = "") /// public void Write(Data data, string type = "") { - BridgeConnector.Socket.Emit("clipboard-write", JObject.FromObject(data, _jsonSerializer), type); + BridgeConnector.Socket.Emit("clipboard-write", JObject.FromObject(data, _jsonSerializer), type).FireAndForget(); } /// @@ -256,7 +256,7 @@ public Task ReadImageAsync(string type = "") }); - BridgeConnector.Socket.Emit("clipboard-readImage", type); + BridgeConnector.Socket.Emit("clipboard-readImage", type).FireAndForget(); return taskCompletionSource.Task; } @@ -268,7 +268,7 @@ public Task ReadImageAsync(string type = "") /// public void WriteImage(NativeImage image, string type = "") { - BridgeConnector.Socket.Emit("clipboard-writeImage", JsonConvert.SerializeObject(image), type); + BridgeConnector.Socket.Emit("clipboard-writeImage", JsonConvert.SerializeObject(image), type).FireAndForget(); } private JsonSerializer _jsonSerializer = new JsonSerializer() diff --git a/src/ElectronNET.API/CommandLine.cs b/src/ElectronNET.API/CommandLine.cs index 63466b4b..dabde509 100644 --- a/src/ElectronNET.API/CommandLine.cs +++ b/src/ElectronNET.API/CommandLine.cs @@ -43,7 +43,7 @@ internal static CommandLine Instance /// public void AppendSwitch(string the_switch, string value = "") { - BridgeConnector.Socket.Emit("appCommandLineAppendSwitch", the_switch, value); + BridgeConnector.Socket.Emit("appCommandLineAppendSwitch", the_switch, value).FireAndForget(); } /// @@ -57,7 +57,7 @@ public void AppendSwitch(string the_switch, string value = "") /// public void AppendArgument(string value) { - BridgeConnector.Socket.Emit("appCommandLineAppendArgument", value); + BridgeConnector.Socket.Emit("appCommandLineAppendArgument", value).FireAndForget(); } /// @@ -69,8 +69,8 @@ public void AppendArgument(string value) 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) => @@ -79,8 +79,7 @@ public void AppendArgument(string value) taskCompletionSource.SetResult((bool)result); }); - BridgeConnector.Socket.Emit("appCommandLineHasSwitch", switchName); - + BridgeConnector.Socket.Emit("appCommandLineHasSwitch", switchName).FireAndForget(); return await taskCompletionSource.Task.ConfigureAwait(false); } } @@ -97,8 +96,8 @@ public void AppendArgument(string value) 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) => @@ -107,8 +106,7 @@ public void AppendArgument(string value) taskCompletionSource.SetResult((string)result); }); - BridgeConnector.Socket.Emit("appCommandLineGetSwitchValue", switchName); - + BridgeConnector.Socket.Emit("appCommandLineGetSwitchValue", switchName).FireAndForget(); return await taskCompletionSource.Task.ConfigureAwait(false); } } diff --git a/src/ElectronNET.API/Cookies.cs b/src/ElectronNET.API/Cookies.cs index 98be3d42..68c80ad7 100644 --- a/src/ElectronNET.API/Cookies.cs +++ b/src/ElectronNET.API/Cookies.cs @@ -42,7 +42,7 @@ public event Action OnChanged _changed(cookie, cause, removed); }); - BridgeConnector.Socket.Emit("register-webContents-session-cookies-changed", Id); + BridgeConnector.Socket.Emit("register-webContents-session-cookies-changed", Id).FireAndForget(); } _changed += value; } @@ -51,7 +51,9 @@ public event Action OnChanged _changed -= value; if (_changed == null) + { BridgeConnector.Socket.Off("webContents-session-cookies-changed" + Id); + } } } @@ -66,7 +68,7 @@ public event Action OnChanged public Task GetAsync(CookieFilter filter) { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-cookies-get-completed" + guid, (cookies) => { @@ -76,8 +78,7 @@ public Task GetAsync(CookieFilter filter) taskCompletionSource.SetResult(result); }); - BridgeConnector.Socket.Emit("webContents-session-cookies-get", Id, JObject.FromObject(filter, _jsonSerializer), guid); - + BridgeConnector.Socket.Emit("webContents-session-cookies-get", Id, JObject.FromObject(filter, _jsonSerializer), guid).FireAndForget(); return taskCompletionSource.Task; } @@ -89,7 +90,7 @@ public Task GetAsync(CookieFilter filter) public Task SetAsync(CookieDetails details) { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-cookies-set-completed" + guid, () => { @@ -97,8 +98,7 @@ public Task SetAsync(CookieDetails details) taskCompletionSource.SetResult(null); }); - BridgeConnector.Socket.Emit("webContents-session-cookies-set", Id, JObject.FromObject(details, _jsonSerializer), guid); - + BridgeConnector.Socket.Emit("webContents-session-cookies-set", Id, JObject.FromObject(details, _jsonSerializer), guid).FireAndForget(); return taskCompletionSource.Task; } @@ -111,7 +111,7 @@ public Task SetAsync(CookieDetails details) public Task RemoveAsync(string url, string name) { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-cookies-remove-completed" + guid, () => { @@ -119,8 +119,7 @@ public Task RemoveAsync(string url, string name) taskCompletionSource.SetResult(null); }); - BridgeConnector.Socket.Emit("webContents-session-cookies-remove", Id, url, name, guid); - + BridgeConnector.Socket.Emit("webContents-session-cookies-remove", Id, url, name, guid).FireAndForget(); return taskCompletionSource.Task; } @@ -131,7 +130,7 @@ public Task RemoveAsync(string url, string name) public Task FlushStoreAsync() { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-cookies-flushStore-completed" + guid, () => { @@ -139,8 +138,7 @@ public Task FlushStoreAsync() taskCompletionSource.SetResult(null); }); - BridgeConnector.Socket.Emit("webContents-session-cookies-flushStore", Id, guid); - + BridgeConnector.Socket.Emit("webContents-session-cookies-flushStore", Id, guid).FireAndForget(); return taskCompletionSource.Task; } diff --git a/src/ElectronNET.API/Dialog.cs b/src/ElectronNET.API/Dialog.cs index ddc7be5d..a4230e05 100644 --- a/src/ElectronNET.API/Dialog.cs +++ b/src/ElectronNET.API/Dialog.cs @@ -48,7 +48,7 @@ internal static Dialog Instance public Task ShowOpenDialogAsync(BrowserWindow browserWindow, OpenDialogOptions options) { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("showOpenDialogComplete" + guid, (filePaths) => { @@ -59,10 +59,7 @@ public Task ShowOpenDialogAsync(BrowserWindow browserWindow, OpenDialo }); - BridgeConnector.Socket.Emit("showOpenDialog", - JObject.FromObject(browserWindow, _jsonSerializer), - JObject.FromObject(options, _jsonSerializer), guid); - + BridgeConnector.Socket.Emit("showOpenDialog", JObject.FromObject(browserWindow, _jsonSerializer), JObject.FromObject(options, _jsonSerializer), guid).FireAndForget(); return taskCompletionSource.Task; } @@ -75,7 +72,7 @@ public Task ShowOpenDialogAsync(BrowserWindow browserWindow, OpenDialo public Task ShowSaveDialogAsync(BrowserWindow browserWindow, SaveDialogOptions options) { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("showSaveDialogComplete" + guid, (filename) => { @@ -84,11 +81,7 @@ public Task ShowSaveDialogAsync(BrowserWindow browserWindow, SaveDialogO taskCompletionSource.SetResult(filename.ToString()); }); - BridgeConnector.Socket.Emit("showSaveDialog", - JObject.FromObject(browserWindow, _jsonSerializer), - JObject.FromObject(options, _jsonSerializer), - guid); - + BridgeConnector.Socket.Emit("showSaveDialog", JObject.FromObject(browserWindow, _jsonSerializer), JObject.FromObject(options, _jsonSerializer), guid).FireAndForget(); return taskCompletionSource.Task; } @@ -162,13 +155,11 @@ public Task ShowMessageBoxAsync(BrowserWindow browserWindow, M if (browserWindow == null) { - BridgeConnector.Socket.Emit("showMessageBox", JObject.FromObject(messageBoxOptions, _jsonSerializer), guid); - } else + BridgeConnector.Socket.Emit("showMessageBox", JObject.FromObject(messageBoxOptions, _jsonSerializer), guid).FireAndForget(); + } + else { - BridgeConnector.Socket.Emit("showMessageBox", - JObject.FromObject(browserWindow, _jsonSerializer), - JObject.FromObject(messageBoxOptions, _jsonSerializer), - guid); + BridgeConnector.Socket.Emit("showMessageBox", JObject.FromObject(browserWindow, _jsonSerializer), JObject.FromObject(messageBoxOptions, _jsonSerializer), guid).FireAndForget(); } return taskCompletionSource.Task; @@ -186,7 +177,7 @@ public Task ShowMessageBoxAsync(BrowserWindow browserWindow, M /// The text content to display in the error box. public void ShowErrorBox(string title, string content) { - BridgeConnector.Socket.Emit("showErrorBox", title, content); + BridgeConnector.Socket.Emit("showErrorBox", title, content).FireAndForget(); } /// @@ -212,7 +203,7 @@ public Task ShowCertificateTrustDialogAsync(CertificateTrustDialogOptions option public Task ShowCertificateTrustDialogAsync(BrowserWindow browserWindow, CertificateTrustDialogOptions options) { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("showCertificateTrustDialogComplete" + guid, () => { @@ -220,11 +211,7 @@ public Task ShowCertificateTrustDialogAsync(BrowserWindow browserWindow, Certifi taskCompletionSource.SetResult(null); }); - BridgeConnector.Socket.Emit("showCertificateTrustDialog", - JObject.FromObject(browserWindow, _jsonSerializer), - JObject.FromObject(options, _jsonSerializer), - guid); - + BridgeConnector.Socket.Emit("showCertificateTrustDialog", JObject.FromObject(browserWindow, _jsonSerializer), JObject.FromObject(options, _jsonSerializer), guid).FireAndForget(); return taskCompletionSource.Task; } diff --git a/src/ElectronNET.API/Dock.cs b/src/ElectronNET.API/Dock.cs index 03276842..c6803005 100644 --- a/src/ElectronNET.API/Dock.cs +++ b/src/ElectronNET.API/Dock.cs @@ -63,7 +63,7 @@ public async Task BounceAsync(DockBounceType type, CancellationToken cancel taskCompletionSource.SetResult((int) id); }); - BridgeConnector.Socket.Emit("dock-bounce", type.GetDescription()); + BridgeConnector.Socket.Emit("dock-bounce", type.GetDescription()).FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -76,7 +76,7 @@ public async Task BounceAsync(DockBounceType type, CancellationToken cancel /// Id of the request. public void CancelBounce(int id) { - BridgeConnector.Socket.Emit("dock-cancelBounce", id); + BridgeConnector.Socket.Emit("dock-cancelBounce", id).FireAndForget(); } /// @@ -85,7 +85,7 @@ public void CancelBounce(int id) /// public void DownloadFinished(string filePath) { - BridgeConnector.Socket.Emit("dock-downloadFinished", filePath); + BridgeConnector.Socket.Emit("dock-downloadFinished", filePath).FireAndForget(); } /// @@ -94,7 +94,7 @@ public void DownloadFinished(string filePath) /// public void SetBadge(string text) { - BridgeConnector.Socket.Emit("dock-setBadge", text); + BridgeConnector.Socket.Emit("dock-setBadge", text).FireAndForget(); } /// @@ -115,7 +115,7 @@ public async Task GetBadgeAsync(CancellationToken cancellationToken = de taskCompletionSource.SetResult((string) text); }); - BridgeConnector.Socket.Emit("dock-getBadge"); + BridgeConnector.Socket.Emit("dock-getBadge").FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -127,7 +127,7 @@ public async Task GetBadgeAsync(CancellationToken cancellationToken = de /// public void Hide() { - BridgeConnector.Socket.Emit("dock-hide"); + BridgeConnector.Socket.Emit("dock-hide").FireAndForget(); } /// @@ -135,7 +135,7 @@ public void Hide() /// public void Show() { - BridgeConnector.Socket.Emit("dock-show"); + BridgeConnector.Socket.Emit("dock-show").FireAndForget(); } /// @@ -157,7 +157,7 @@ public async Task IsVisibleAsync(CancellationToken cancellationToken = def taskCompletionSource.SetResult((bool) isVisible); }); - BridgeConnector.Socket.Emit("dock-isVisible"); + BridgeConnector.Socket.Emit("dock-isVisible").FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -179,7 +179,7 @@ public async Task IsVisibleAsync(CancellationToken cancellationToken = def public void SetMenu(MenuItem[] menuItems) { menuItems.AddMenuItemsId(); - BridgeConnector.Socket.Emit("dock-setMenu", JArray.FromObject(menuItems, _jsonSerializer)); + BridgeConnector.Socket.Emit("dock-setMenu", JArray.FromObject(menuItems, _jsonSerializer)).FireAndForget(); _items.AddRange(menuItems); BridgeConnector.Socket.Off("dockMenuItemClicked"); @@ -207,7 +207,7 @@ public async Task GetMenu(CancellationToken cancellationToken = default) taskCompletionSource.SetResult(((JObject)menu).ToObject()); }); - BridgeConnector.Socket.Emit("dock-getMenu"); + BridgeConnector.Socket.Emit("dock-getMenu").FireAndForget(); return await taskCompletionSource.Task .ConfigureAwait(false); @@ -220,7 +220,7 @@ public async Task GetMenu(CancellationToken cancellationToken = default) /// public void SetIcon(string image) { - BridgeConnector.Socket.Emit("dock-setIcon", image); + BridgeConnector.Socket.Emit("dock-setIcon", image).FireAndForget(); } private JsonSerializer _jsonSerializer = new JsonSerializer() diff --git a/src/ElectronNET.API/Entities/PrintToPDFOptions.cs b/src/ElectronNET.API/Entities/PrintToPDFOptions.cs index 8ec814cb..1f28339e 100644 --- a/src/ElectronNET.API/Entities/PrintToPDFOptions.cs +++ b/src/ElectronNET.API/Entities/PrintToPDFOptions.cs @@ -1,7 +1,7 @@ ๏ปฟnamespace ElectronNET.API.Entities; /// -/// +/// The DTO for the print to PDF dialog options. /// public class PrintToPDFOptions { @@ -59,5 +59,8 @@ public class PrintToPDFOptions /// public bool PreferCSSPageSize { get; set; } = false; + /// + /// The margins to use for the print page. + /// public Margins Margins { get; set; } } \ No newline at end of file diff --git a/src/ElectronNET.API/Events.cs b/src/ElectronNET.API/Events.cs index 4c3c3661..bb2195b3 100644 --- a/src/ElectronNET.API/Events.cs +++ b/src/ElectronNET.API/Events.cs @@ -65,7 +65,7 @@ public async Task On(string moduleName, string eventName, Action action) /// /// The name of the module, e.g. app, dock, etc... /// The name of the event - /// The event handler + /// The event handler public void Once(string moduleName, string eventName, Action action) => Once(moduleName, eventName, action); diff --git a/src/ElectronNET.API/GlobalShortcut.cs b/src/ElectronNET.API/GlobalShortcut.cs index d2867ecd..5bf9d9d8 100644 --- a/src/ElectronNET.API/GlobalShortcut.cs +++ b/src/ElectronNET.API/GlobalShortcut.cs @@ -58,7 +58,7 @@ public void Register(string accelerator, Action function) } }); - BridgeConnector.Socket.Emit("globalShortcut-register", accelerator); + BridgeConnector.Socket.Emit("globalShortcut-register", accelerator).FireAndForget(); } } @@ -79,7 +79,7 @@ public Task IsRegisteredAsync(string accelerator) taskCompletionSource.SetResult((bool)isRegistered); }); - BridgeConnector.Socket.Emit("globalShortcut-isRegistered", accelerator); + BridgeConnector.Socket.Emit("globalShortcut-isRegistered", accelerator).FireAndForget(); return taskCompletionSource.Task; } @@ -90,7 +90,7 @@ public Task IsRegisteredAsync(string accelerator) public void Unregister(string accelerator) { _shortcuts.Remove(accelerator); - BridgeConnector.Socket.Emit("globalShortcut-unregister", accelerator); + BridgeConnector.Socket.Emit("globalShortcut-unregister", accelerator).FireAndForget(); } /// @@ -99,7 +99,7 @@ public void Unregister(string accelerator) public void UnregisterAll() { _shortcuts.Clear(); - BridgeConnector.Socket.Emit("globalShortcut-unregisterAll"); + BridgeConnector.Socket.Emit("globalShortcut-unregisterAll").FireAndForget(); } } } \ No newline at end of file diff --git a/src/ElectronNET.API/GlobalUsings.cs b/src/ElectronNET.API/GlobalUsings.cs index 7b02f48e..e69de29b 100644 --- a/src/ElectronNET.API/GlobalUsings.cs +++ b/src/ElectronNET.API/GlobalUsings.cs @@ -1,3 +0,0 @@ -// Global using directives - -global using System.Web; \ No newline at end of file diff --git a/src/ElectronNET.API/HostHook.cs b/src/ElectronNET.API/HostHook.cs index 37606250..56db671f 100644 --- a/src/ElectronNET.API/HostHook.cs +++ b/src/ElectronNET.API/HostHook.cs @@ -53,7 +53,7 @@ public void Call(string socketEventName, params dynamic[] arguments) Electron.Dialog.ShowErrorBox("Host Hook Exception", result.ToString()); }); - BridgeConnector.Socket.Emit(socketEventName, arguments, oneCallguid); + BridgeConnector.Socket.Emit(socketEventName, arguments, oneCallguid).FireAndForget(); } /// @@ -66,7 +66,7 @@ public void Call(string socketEventName, params dynamic[] arguments) public Task CallAsync(string socketEventName, params dynamic[] arguments) { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On(socketEventName + "Error" + guid, (result) => { @@ -113,8 +113,7 @@ public Task CallAsync(string socketEventName, params dynamic[] arguments) taskCompletionSource.SetResult(data); }); - BridgeConnector.Socket.Emit(socketEventName, arguments, guid); - + BridgeConnector.Socket.Emit(socketEventName, arguments, guid).FireAndForget(); return taskCompletionSource.Task; } diff --git a/src/ElectronNET.API/IpcMain.cs b/src/ElectronNET.API/IpcMain.cs index e670dffb..11f281de 100644 --- a/src/ElectronNET.API/IpcMain.cs +++ b/src/ElectronNET.API/IpcMain.cs @@ -90,10 +90,11 @@ private List FormatArguments(object args) /// public void OnSync(string channel, Func listener) { - BridgeConnector.Socket.Emit("registerSyncIpcMainChannel", channel); + BridgeConnector.Socket.Emit("registerSyncIpcMainChannel", channel).FireAndForget(); BridgeConnector.Socket.On(channel, (args) => { - List objectArray = FormatArguments(args); + var objectArray = FormatArguments(args); object parameter; + if (objectArray.Count == 1) { parameter = objectArray.First(); @@ -104,7 +105,7 @@ public void OnSync(string channel, Func listener) } var result = listener(parameter); - BridgeConnector.Socket.Emit(channel + "Sync", result); + BridgeConnector.Socket.Emit(channel + "Sync", result).FireAndForget(); }); } @@ -116,10 +117,10 @@ public void OnSync(string channel, Func listener) /// Callback Method. public void Once(string channel, Action listener) { - BridgeConnector.Socket.Emit("registerOnceIpcMainChannel", channel); + BridgeConnector.Socket.Emit("registerOnceIpcMainChannel", channel).FireAndForget(); BridgeConnector.Socket.On(channel, (args) => { - List objectArray = FormatArguments(args); + var objectArray = FormatArguments(args); if (objectArray.Count == 1) { @@ -138,7 +139,7 @@ public void Once(string channel, Action listener) /// Channelname. public void RemoveAllListeners(string channel) { - BridgeConnector.Socket.Emit("removeAllListenersIpcMainChannel", channel); + BridgeConnector.Socket.Emit("removeAllListenersIpcMainChannel", channel).FireAndForget(); } /// @@ -152,31 +153,33 @@ public void RemoveAllListeners(string channel) /// Arguments data. public void Send(BrowserWindow browserWindow, string channel, params object[] data) { - List jobjects = new List(); - List jarrays = new List(); - List objects = new List(); + var jobjects = new List(); + var jarrays = new List(); + var objects = new List(); foreach (var parameterObject in data) { if(parameterObject.GetType().IsArray || parameterObject.GetType().IsGenericType && parameterObject is IEnumerable) { jarrays.Add(JArray.FromObject(parameterObject, _jsonSerializer)); - } else if(parameterObject.GetType().IsClass && !parameterObject.GetType().IsPrimitive && !(parameterObject is string)) + } + else if (parameterObject.GetType().IsClass && !parameterObject.GetType().IsPrimitive && !(parameterObject is string)) { jobjects.Add(JObject.FromObject(parameterObject, _jsonSerializer)); - } else if(parameterObject.GetType().IsPrimitive || (parameterObject is string)) + } + else if (parameterObject.GetType().IsPrimitive || (parameterObject is string)) { objects.Add(parameterObject); } } - if(jobjects.Count > 0 || jarrays.Count > 0) + if (jobjects.Count > 0 || jarrays.Count > 0) { - BridgeConnector.Socket.Emit("sendToIpcRenderer", JObject.FromObject(browserWindow, _jsonSerializer), channel, jarrays.ToArray(), jobjects.ToArray(), objects.ToArray()); + BridgeConnector.Socket.Emit("sendToIpcRenderer", JObject.FromObject(browserWindow, _jsonSerializer), channel, jarrays.ToArray(), jobjects.ToArray(), objects.ToArray()).FireAndForget(); } else { - BridgeConnector.Socket.Emit("sendToIpcRenderer", JObject.FromObject(browserWindow, _jsonSerializer), channel, data); + BridgeConnector.Socket.Emit("sendToIpcRenderer", JObject.FromObject(browserWindow, _jsonSerializer), channel, data).FireAndForget(); } } @@ -191,9 +194,9 @@ public void Send(BrowserWindow browserWindow, string channel, params object[] da /// Arguments data. public void Send(BrowserView browserView, string channel, params object[] data) { - List jobjects = new List(); - List jarrays = new List(); - List objects = new List(); + var jobjects = new List(); + var jarrays = new List(); + var objects = new List(); foreach (var parameterObject in data) { @@ -209,13 +212,13 @@ public void Send(BrowserView browserView, string channel, params object[] data) } } - if(jobjects.Count > 0 || jarrays.Count > 0) + if (jobjects.Count > 0 || jarrays.Count > 0) { - BridgeConnector.Socket.Emit("sendToIpcRendererBrowserView", browserView.Id, channel, jarrays.ToArray(), jobjects.ToArray(), objects.ToArray()); + BridgeConnector.Socket.Emit("sendToIpcRendererBrowserView", browserView.Id, channel, jarrays.ToArray(), jobjects.ToArray(), objects.ToArray()).FireAndForget(); } else { - BridgeConnector.Socket.Emit("sendToIpcRendererBrowserView", browserView.Id, channel, data); + BridgeConnector.Socket.Emit("sendToIpcRendererBrowserView", browserView.Id, channel, data).FireAndForget(); } } diff --git a/src/ElectronNET.API/Menu.cs b/src/ElectronNET.API/Menu.cs index 8397a10d..0edd0670 100644 --- a/src/ElectronNET.API/Menu.cs +++ b/src/ElectronNET.API/Menu.cs @@ -58,7 +58,7 @@ public void SetApplicationMenu(MenuItem[] menuItems) menuItems.AddMenuItemsId(); menuItems.AddSubmenuTypes(); - BridgeConnector.Socket.Emit("menu-setApplicationMenu", JArray.FromObject(menuItems, _jsonSerializer)); + BridgeConnector.Socket.Emit("menu-setApplicationMenu", JArray.FromObject(menuItems, _jsonSerializer)).FireAndForget(); _menuItems.AddRange(menuItems); BridgeConnector.Socket.Off("menuItemClicked"); @@ -75,6 +75,7 @@ public void SetApplicationMenu(MenuItem[] menuItems) /// The context menu items. /// public IReadOnlyDictionary> ContextMenuItems { get; internal set; } + private Dictionary> _contextMenuItems = new Dictionary>(); /// @@ -87,7 +88,7 @@ public void SetContextMenu(BrowserWindow browserWindow, MenuItem[] menuItems) menuItems.AddMenuItemsId(); menuItems.AddSubmenuTypes(); - BridgeConnector.Socket.Emit("menu-setContextMenu", browserWindow.Id, JArray.FromObject(menuItems, _jsonSerializer)); + BridgeConnector.Socket.Emit("menu-setContextMenu", browserWindow.Id, JArray.FromObject(menuItems, _jsonSerializer)).FireAndForget(); if (!_contextMenuItems.ContainsKey(browserWindow.Id)) { @@ -113,7 +114,7 @@ public void SetContextMenu(BrowserWindow browserWindow, MenuItem[] menuItems) /// The browser window. public void ContextMenuPopup(BrowserWindow browserWindow) { - BridgeConnector.Socket.Emit("menu-contextMenuPopup", browserWindow.Id); + BridgeConnector.Socket.Emit("menu-contextMenuPopup", browserWindow.Id).FireAndForget(); } private JsonSerializer _jsonSerializer = new JsonSerializer() diff --git a/src/ElectronNET.API/NativeTheme.cs b/src/ElectronNET.API/NativeTheme.cs index 037a97a6..b2e709fd 100644 --- a/src/ElectronNET.API/NativeTheme.cs +++ b/src/ElectronNET.API/NativeTheme.cs @@ -94,7 +94,7 @@ public void SetThemeSource(ThemeSourceMode themeSourceMode) { var themeSource = themeSourceMode.GetDescription(); - BridgeConnector.Socket.Emit("nativeTheme-themeSource", themeSource); + BridgeConnector.Socket.Emit("nativeTheme-themeSource", themeSource).FireAndForget(); } /// @@ -114,7 +114,7 @@ public Task GetThemeSourceAsync() taskCompletionSource.SetResult(themeSourceValue); }); - BridgeConnector.Socket.Emit("nativeTheme-themeSource-get"); + BridgeConnector.Socket.Emit("nativeTheme-themeSource-get").FireAndForget(); return taskCompletionSource.Task; } @@ -134,7 +134,7 @@ public Task ShouldUseDarkColorsAsync() taskCompletionSource.SetResult((bool)shouldUseDarkColors); }); - BridgeConnector.Socket.Emit("nativeTheme-shouldUseDarkColors"); + BridgeConnector.Socket.Emit("nativeTheme-shouldUseDarkColors").FireAndForget(); return taskCompletionSource.Task; } @@ -153,7 +153,7 @@ public Task ShouldUseHighContrastColorsAsync() taskCompletionSource.SetResult((bool)shouldUseHighContrastColors); }); - BridgeConnector.Socket.Emit("nativeTheme-shouldUseHighContrastColors"); + BridgeConnector.Socket.Emit("nativeTheme-shouldUseHighContrastColors").FireAndForget(); return taskCompletionSource.Task; } @@ -172,7 +172,7 @@ public Task ShouldUseInvertedColorSchemeAsync() taskCompletionSource.SetResult((bool)shouldUseInvertedColorScheme); }); - BridgeConnector.Socket.Emit("nativeTheme-shouldUseInvertedColorScheme"); + BridgeConnector.Socket.Emit("nativeTheme-shouldUseInvertedColorScheme").FireAndForget(); return taskCompletionSource.Task; } @@ -192,7 +192,7 @@ public event Action Updated _updated(); }); - BridgeConnector.Socket.Emit("register-nativeTheme-updated-event", GetHashCode()); + BridgeConnector.Socket.Emit("register-nativeTheme-updated-event", GetHashCode()).FireAndForget(); } _updated += value; } diff --git a/src/ElectronNET.API/Notification.cs b/src/ElectronNET.API/Notification.cs index 68ac4e14..16064e99 100644 --- a/src/ElectronNET.API/Notification.cs +++ b/src/ElectronNET.API/Notification.cs @@ -48,7 +48,7 @@ public void Show(NotificationOptions notificationOptions) { GenerateIDsForDefinedActions(notificationOptions); - BridgeConnector.Socket.Emit("createNotification", JObject.FromObject(notificationOptions, _jsonSerializer)); + BridgeConnector.Socket.Emit("createNotification", JObject.FromObject(notificationOptions, _jsonSerializer)).FireAndForget(); } private static void GenerateIDsForDefinedActions(NotificationOptions notificationOptions) @@ -132,7 +132,7 @@ public Task IsSupportedAsync() taskCompletionSource.SetResult((bool)isSupported); }); - BridgeConnector.Socket.Emit("notificationIsSupported"); + BridgeConnector.Socket.Emit("notificationIsSupported").FireAndForget(); return taskCompletionSource.Task; } diff --git a/src/ElectronNET.API/PowerMonitor.cs b/src/ElectronNET.API/PowerMonitor.cs index 03e68748..1cffcd8d 100644 --- a/src/ElectronNET.API/PowerMonitor.cs +++ b/src/ElectronNET.API/PowerMonitor.cs @@ -22,7 +22,7 @@ public event Action OnLockScreen _lockScreen(); }); - BridgeConnector.Socket.Emit("register-pm-lock-screen"); + BridgeConnector.Socket.Emit("register-pm-lock-screen").FireAndForget(); } _lockScreen += value; } @@ -31,7 +31,9 @@ public event Action OnLockScreen _lockScreen -= value; if (_lockScreen == null) + { BridgeConnector.Socket.Off("pm-lock-screen"); + } } } @@ -51,7 +53,7 @@ public event Action OnUnLockScreen _unlockScreen(); }); - BridgeConnector.Socket.Emit("register-pm-unlock-screen"); + BridgeConnector.Socket.Emit("register-pm-unlock-screen").FireAndForget(); } _unlockScreen += value; } @@ -60,7 +62,9 @@ public event Action OnUnLockScreen _unlockScreen -= value; if (_unlockScreen == null) + { BridgeConnector.Socket.Off("pm-unlock-screen"); + } } } @@ -80,7 +84,7 @@ public event Action OnSuspend _suspend(); }); - BridgeConnector.Socket.Emit("register-pm-suspend"); + BridgeConnector.Socket.Emit("register-pm-suspend").FireAndForget(); } _suspend += value; } @@ -89,7 +93,9 @@ public event Action OnSuspend _suspend -= value; if (_suspend == null) + { BridgeConnector.Socket.Off("pm-suspend"); + } } } @@ -109,7 +115,7 @@ public event Action OnResume _resume(); }); - BridgeConnector.Socket.Emit("register-pm-resume"); + BridgeConnector.Socket.Emit("register-pm-resume").FireAndForget(); } _resume += value; } @@ -118,7 +124,9 @@ public event Action OnResume _resume -= value; if (_resume == null) + { BridgeConnector.Socket.Off("pm-resume"); + } } } @@ -138,7 +146,7 @@ public event Action OnAC _onAC(); }); - BridgeConnector.Socket.Emit("register-pm-on-ac"); + BridgeConnector.Socket.Emit("register-pm-on-ac").FireAndForget(); } _onAC += value; } @@ -147,7 +155,9 @@ public event Action OnAC _onAC -= value; if (_onAC == null) + { BridgeConnector.Socket.Off("pm-on-ac"); + } } } @@ -167,7 +177,7 @@ public event Action OnBattery _onBattery(); }); - BridgeConnector.Socket.Emit("register-pm-on-battery"); + BridgeConnector.Socket.Emit("register-pm-on-battery").FireAndForget(); } _onBattery += value; } @@ -176,7 +186,9 @@ public event Action OnBattery _onBattery -= value; if (_onBattery == null) + { BridgeConnector.Socket.Off("pm-on-battery"); + } } } @@ -200,7 +212,7 @@ public event Action OnShutdown _shutdown(); }); - BridgeConnector.Socket.Emit("register-pm-shutdown"); + BridgeConnector.Socket.Emit("register-pm-shutdown").FireAndForget(); } _shutdown += value; } @@ -209,7 +221,9 @@ public event Action OnShutdown _shutdown -= value; if (_shutdown == null) + { BridgeConnector.Socket.Off("pm-on-shutdown"); + } } } diff --git a/src/ElectronNET.API/Screen.cs b/src/ElectronNET.API/Screen.cs index 31cecb5f..61e583ca 100644 --- a/src/ElectronNET.API/Screen.cs +++ b/src/ElectronNET.API/Screen.cs @@ -26,7 +26,7 @@ public event Action OnDisplayAdded _onDisplayAdded(((JObject)display).ToObject()); }); - BridgeConnector.Socket.Emit("register-screen-display-added", GetHashCode()); + BridgeConnector.Socket.Emit("register-screen-display-added", GetHashCode()).FireAndForget(); } _onDisplayAdded += value; } @@ -35,7 +35,9 @@ public event Action OnDisplayAdded _onDisplayAdded -= value; if (_onDisplayAdded == null) + { BridgeConnector.Socket.Off("screen-display-added-event" + GetHashCode()); + } } } @@ -55,7 +57,7 @@ public event Action OnDisplayRemoved _onDisplayRemoved(((JObject)display).ToObject()); }); - BridgeConnector.Socket.Emit("register-screen-display-removed", GetHashCode()); + BridgeConnector.Socket.Emit("register-screen-display-removed", GetHashCode()).FireAndForget(); } _onDisplayRemoved += value; } @@ -64,7 +66,9 @@ public event Action OnDisplayRemoved _onDisplayRemoved -= value; if (_onDisplayRemoved == null) + { BridgeConnector.Socket.Off("screen-display-removed-event" + GetHashCode()); + } } } @@ -89,7 +93,7 @@ public event Action OnDisplayMetricsChanged _onDisplayMetricsChanged(display, metrics); }); - BridgeConnector.Socket.Emit("register-screen-display-metrics-changed", GetHashCode()); + BridgeConnector.Socket.Emit("register-screen-display-metrics-changed", GetHashCode()).FireAndForget(); } _onDisplayMetricsChanged += value; } @@ -98,13 +102,16 @@ public event Action OnDisplayMetricsChanged _onDisplayMetricsChanged -= value; if (_onDisplayMetricsChanged == null) + { BridgeConnector.Socket.Off("screen-display-metrics-changed-event" + GetHashCode()); + } } } private event Action _onDisplayMetricsChanged; private static Screen _screen; + private static object _syncRoot = new object(); internal Screen() { } @@ -143,8 +150,7 @@ public Task GetCursorScreenPointAsync() taskCompletionSource.SetResult(((JObject)point).ToObject()); }); - BridgeConnector.Socket.Emit("screen-getCursorScreenPoint"); - + BridgeConnector.Socket.Emit("screen-getCursorScreenPoint").FireAndForget(); return taskCompletionSource.Task; } @@ -163,8 +169,7 @@ public Task GetMenuBarHeightAsync() taskCompletionSource.SetResult(int.Parse(height.ToString())); }); - BridgeConnector.Socket.Emit("screen-getMenuBarHeight"); - + BridgeConnector.Socket.Emit("screen-getMenuBarHeight").FireAndForget(); return taskCompletionSource.Task; } @@ -183,8 +188,7 @@ public Task GetPrimaryDisplayAsync() taskCompletionSource.SetResult(((JObject)display).ToObject()); }); - BridgeConnector.Socket.Emit("screen-getPrimaryDisplay"); - + BridgeConnector.Socket.Emit("screen-getPrimaryDisplay").FireAndForget(); return taskCompletionSource.Task; } @@ -203,8 +207,7 @@ public Task GetAllDisplaysAsync() taskCompletionSource.SetResult(((JArray)displays).ToObject()); }); - BridgeConnector.Socket.Emit("screen-getAllDisplays"); - + BridgeConnector.Socket.Emit("screen-getAllDisplays").FireAndForget(); return taskCompletionSource.Task; } @@ -223,8 +226,7 @@ public Task GetDisplayNearestPointAsync(Point point) taskCompletionSource.SetResult(((JObject)display).ToObject()); }); - BridgeConnector.Socket.Emit("screen-getDisplayNearestPoint", JObject.FromObject(point, _jsonSerializer)); - + BridgeConnector.Socket.Emit("screen-getDisplayNearestPoint", JObject.FromObject(point, _jsonSerializer)).FireAndForget(); return taskCompletionSource.Task; } @@ -244,8 +246,7 @@ public Task GetDisplayMatchingAsync(Rectangle rectangle) taskCompletionSource.SetResult(((JObject)display).ToObject()); }); - BridgeConnector.Socket.Emit("screen-getDisplayMatching", JObject.FromObject(rectangle, _jsonSerializer)); - + BridgeConnector.Socket.Emit("screen-getDisplayMatching", JObject.FromObject(rectangle, _jsonSerializer)).FireAndForget(); return taskCompletionSource.Task; } diff --git a/src/ElectronNET.API/Session.cs b/src/ElectronNET.API/Session.cs index a4cb6bb6..e3d1f359 100644 --- a/src/ElectronNET.API/Session.cs +++ b/src/ElectronNET.API/Session.cs @@ -37,7 +37,7 @@ internal Session(int id) /// A comma-separated list of servers for which integrated authentication is enabled. public void AllowNTLMCredentialsForDomains(string domains) { - BridgeConnector.Socket.Emit("webContents-session-allowNTLMCredentialsForDomains", Id, domains); + BridgeConnector.Socket.Emit("webContents-session-allowNTLMCredentialsForDomains", Id, domains).FireAndForget(); } /// @@ -48,7 +48,7 @@ public void AllowNTLMCredentialsForDomains(string domains) public Task ClearAuthCacheAsync(RemovePassword options) { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-clearAuthCache-completed" + guid, () => { @@ -56,7 +56,7 @@ public Task ClearAuthCacheAsync(RemovePassword options) taskCompletionSource.SetResult(null); }); - BridgeConnector.Socket.Emit("webContents-session-clearAuthCache", Id, JObject.FromObject(options, _jsonSerializer), guid); + BridgeConnector.Socket.Emit("webContents-session-clearAuthCache", Id, JObject.FromObject(options, _jsonSerializer), guid).FireAndForget(); return taskCompletionSource.Task; } @@ -67,7 +67,7 @@ public Task ClearAuthCacheAsync(RemovePassword options) public Task ClearAuthCacheAsync() { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-clearAuthCache-completed" + guid, () => { @@ -75,7 +75,7 @@ public Task ClearAuthCacheAsync() taskCompletionSource.SetResult(null); }); - BridgeConnector.Socket.Emit("webContents-session-clearAuthCache", Id, guid); + BridgeConnector.Socket.Emit("webContents-session-clearAuthCache", Id, guid).FireAndForget(); return taskCompletionSource.Task; } @@ -87,7 +87,7 @@ public Task ClearAuthCacheAsync() public Task ClearCacheAsync() { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-clearCache-completed" + guid, () => { @@ -95,7 +95,7 @@ public Task ClearCacheAsync() taskCompletionSource.SetResult(null); }); - BridgeConnector.Socket.Emit("webContents-session-clearCache", Id, guid); + BridgeConnector.Socket.Emit("webContents-session-clearCache", Id, guid).FireAndForget(); return taskCompletionSource.Task; } @@ -107,7 +107,7 @@ public Task ClearCacheAsync() public Task ClearHostResolverCacheAsync() { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-clearHostResolverCache-completed" + guid, () => { @@ -115,7 +115,7 @@ public Task ClearHostResolverCacheAsync() taskCompletionSource.SetResult(null); }); - BridgeConnector.Socket.Emit("webContents-session-clearHostResolverCache", Id, guid); + BridgeConnector.Socket.Emit("webContents-session-clearHostResolverCache", Id, guid).FireAndForget(); return taskCompletionSource.Task; } @@ -127,7 +127,7 @@ public Task ClearHostResolverCacheAsync() public Task ClearStorageDataAsync() { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-clearStorageData-completed" + guid, () => { @@ -135,7 +135,7 @@ public Task ClearStorageDataAsync() taskCompletionSource.SetResult(null); }); - BridgeConnector.Socket.Emit("webContents-session-clearStorageData", Id, guid); + BridgeConnector.Socket.Emit("webContents-session-clearStorageData", Id, guid).FireAndForget(); return taskCompletionSource.Task; } @@ -148,7 +148,7 @@ public Task ClearStorageDataAsync() public Task ClearStorageDataAsync(ClearStorageDataOptions options) { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-clearStorageData-options-completed" + guid, () => { @@ -156,7 +156,7 @@ public Task ClearStorageDataAsync(ClearStorageDataOptions options) taskCompletionSource.SetResult(null); }); - BridgeConnector.Socket.Emit("webContents-session-clearStorageData-options", Id, JObject.FromObject(options, _jsonSerializer), guid); + BridgeConnector.Socket.Emit("webContents-session-clearStorageData-options", Id, JObject.FromObject(options, _jsonSerializer), guid).FireAndForget(); return taskCompletionSource.Task; } @@ -171,7 +171,7 @@ public Task ClearStorageDataAsync(ClearStorageDataOptions options) /// public void CreateInterruptedDownload(CreateInterruptedDownloadOptions options) { - BridgeConnector.Socket.Emit("webContents-session-createInterruptedDownload", Id, JObject.FromObject(options, _jsonSerializer)); + BridgeConnector.Socket.Emit("webContents-session-createInterruptedDownload", Id, JObject.FromObject(options, _jsonSerializer)).FireAndForget(); } /// @@ -180,7 +180,7 @@ public void CreateInterruptedDownload(CreateInterruptedDownloadOptions options) /// public void DisableNetworkEmulation() { - BridgeConnector.Socket.Emit("webContents-session-disableNetworkEmulation", Id); + BridgeConnector.Socket.Emit("webContents-session-disableNetworkEmulation", Id).FireAndForget(); } /// @@ -189,7 +189,7 @@ public void DisableNetworkEmulation() /// public void EnableNetworkEmulation(EnableNetworkEmulationOptions options) { - BridgeConnector.Socket.Emit("webContents-session-enableNetworkEmulation", Id, JObject.FromObject(options, _jsonSerializer)); + BridgeConnector.Socket.Emit("webContents-session-enableNetworkEmulation", Id, JObject.FromObject(options, _jsonSerializer)).FireAndForget(); } /// @@ -197,7 +197,7 @@ public void EnableNetworkEmulation(EnableNetworkEmulationOptions options) /// public void FlushStorageData() { - BridgeConnector.Socket.Emit("webContents-session-flushStorageData", Id); + BridgeConnector.Socket.Emit("webContents-session-flushStorageData", Id).FireAndForget(); } /// @@ -208,7 +208,7 @@ public void FlushStorageData() public Task GetBlobDataAsync(string identifier) { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-getBlobData-completed" + guid, (buffer) => { @@ -218,8 +218,7 @@ public Task GetBlobDataAsync(string identifier) taskCompletionSource.SetResult(result); }); - BridgeConnector.Socket.Emit("webContents-session-getBlobData", Id, identifier, guid); - + BridgeConnector.Socket.Emit("webContents-session-getBlobData", Id, identifier, guid).FireAndForget(); return taskCompletionSource.Task; } @@ -230,7 +229,7 @@ public Task GetBlobDataAsync(string identifier) public Task GetCacheSizeAsync() { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-getCacheSize-completed" + guid, (size) => { @@ -238,8 +237,7 @@ public Task GetCacheSizeAsync() taskCompletionSource.SetResult((int)size); }); - BridgeConnector.Socket.Emit("webContents-session-getCacheSize", Id, guid); - + BridgeConnector.Socket.Emit("webContents-session-getCacheSize", Id, guid).FireAndForget(); return taskCompletionSource.Task; } @@ -250,7 +248,7 @@ public Task GetCacheSizeAsync() public Task GetPreloadsAsync() { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-getPreloads-completed" + guid, (preloads) => { @@ -259,8 +257,7 @@ public Task GetPreloadsAsync() taskCompletionSource.SetResult(result); }); - BridgeConnector.Socket.Emit("webContents-session-getPreloads", Id, guid); - + BridgeConnector.Socket.Emit("webContents-session-getPreloads", Id, guid).FireAndForget(); return taskCompletionSource.Task; } @@ -271,7 +268,7 @@ public Task GetPreloadsAsync() public Task GetUserAgent() { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-getUserAgent-completed" + guid, (userAgent) => { @@ -279,8 +276,7 @@ public Task GetUserAgent() taskCompletionSource.SetResult(userAgent.ToString()); }); - BridgeConnector.Socket.Emit("webContents-session-getUserAgent", Id, guid); - + BridgeConnector.Socket.Emit("webContents-session-getUserAgent", Id, guid).FireAndForget(); return taskCompletionSource.Task; } @@ -293,7 +289,7 @@ public Task GetUserAgent() public Task ResolveProxyAsync(string url) { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-resolveProxy-completed" + guid, (proxy) => { @@ -301,8 +297,7 @@ public Task ResolveProxyAsync(string url) taskCompletionSource.SetResult(proxy.ToString()); }); - BridgeConnector.Socket.Emit("webContents-session-resolveProxy", Id, url, guid); - + BridgeConnector.Socket.Emit("webContents-session-resolveProxy", Id, url, guid).FireAndForget(); return taskCompletionSource.Task; } @@ -313,7 +308,7 @@ public Task ResolveProxyAsync(string url) /// public void SetDownloadPath(string path) { - BridgeConnector.Socket.Emit("webContents-session-setDownloadPath", Id, path); + BridgeConnector.Socket.Emit("webContents-session-setDownloadPath", Id, path).FireAndForget(); } /// @@ -323,7 +318,7 @@ public void SetDownloadPath(string path) /// public void SetPreloads(string[] preloads) { - BridgeConnector.Socket.Emit("webContents-session-setPreloads", Id, preloads); + BridgeConnector.Socket.Emit("webContents-session-setPreloads", Id, preloads).FireAndForget(); } /// @@ -335,7 +330,7 @@ public void SetPreloads(string[] preloads) public Task SetProxyAsync(ProxyConfig config) { var taskCompletionSource = new TaskCompletionSource(); - string guid = Guid.NewGuid().ToString(); + var guid = Guid.NewGuid().ToString(); BridgeConnector.Socket.On("webContents-session-setProxy-completed" + guid, () => { @@ -343,8 +338,7 @@ public Task SetProxyAsync(ProxyConfig config) taskCompletionSource.SetResult(null); }); - BridgeConnector.Socket.Emit("webContents-session-setProxy", Id, JObject.FromObject(config, _jsonSerializer), guid); - + BridgeConnector.Socket.Emit("webContents-session-setProxy", Id, JObject.FromObject(config, _jsonSerializer), guid).FireAndForget(); return taskCompletionSource.Task; } @@ -356,7 +350,7 @@ public Task SetProxyAsync(ProxyConfig config) /// public void SetUserAgent(string userAgent) { - BridgeConnector.Socket.Emit("webContents-session-setUserAgent", Id, userAgent); + BridgeConnector.Socket.Emit("webContents-session-setUserAgent", Id, userAgent).FireAndForget(); } /// @@ -372,7 +366,7 @@ public void SetUserAgent(string userAgent) /// example "en-US,fr,de,ko,zh-CN,ja". public void SetUserAgent(string userAgent, string acceptLanguages) { - BridgeConnector.Socket.Emit("webContents-session-setUserAgent", Id, userAgent, acceptLanguages); + BridgeConnector.Socket.Emit("webContents-session-setUserAgent", Id, userAgent, acceptLanguages).FireAndForget(); } /// @@ -392,8 +386,7 @@ public Task GetAllExtensionsAsync() taskCompletionSource.SetResult(chromeExtensionInfos); }); - BridgeConnector.Socket.Emit("webContents-session-getAllExtensions", Id); - + BridgeConnector.Socket.Emit("webContents-session-getAllExtensions", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -404,7 +397,7 @@ public Task GetAllExtensionsAsync() /// Name of the Chrome extension to remove public void RemoveExtension(string name) { - BridgeConnector.Socket.Emit("webContents-session-removeExtension", Id, name); + BridgeConnector.Socket.Emit("webContents-session-removeExtension", Id, name).FireAndForget(); } /// @@ -445,8 +438,7 @@ public Task LoadExtensionAsync(string path, bool allowFileAccess = fa taskCompletionSource.SetResult(((JObject)extension).ToObject()); }); - BridgeConnector.Socket.Emit("webContents-session-loadExtension", Id, path, allowFileAccess); - + BridgeConnector.Socket.Emit("webContents-session-loadExtension", Id, path, allowFileAccess).FireAndForget(); return taskCompletionSource.Task; } diff --git a/src/ElectronNET.API/Shell.cs b/src/ElectronNET.API/Shell.cs index 71f458e4..b87801bc 100644 --- a/src/ElectronNET.API/Shell.cs +++ b/src/ElectronNET.API/Shell.cs @@ -49,7 +49,7 @@ public Task ShowItemInFolderAsync(string fullPath) BridgeConnector.Socket.Off("shell-showItemInFolderCompleted"); }); - BridgeConnector.Socket.Emit("shell-showItemInFolder", fullPath); + BridgeConnector.Socket.Emit("shell-showItemInFolder", fullPath).FireAndForget(); return taskCompletionSource.Task; } @@ -70,7 +70,7 @@ public Task OpenPathAsync(string path) taskCompletionSource.SetResult((string) errorMessage); }); - BridgeConnector.Socket.Emit("shell-openPath", path); + BridgeConnector.Socket.Emit("shell-openPath", path).FireAndForget(); return taskCompletionSource.Task; } @@ -106,11 +106,11 @@ public Task OpenExternalAsync(string url, OpenExternalOptions options) if (options == null) { - BridgeConnector.Socket.Emit("shell-openExternal", url); + BridgeConnector.Socket.Emit("shell-openExternal", url).FireAndForget(); } else { - BridgeConnector.Socket.Emit("shell-openExternal", url, JObject.FromObject(options, _jsonSerializer)); + BridgeConnector.Socket.Emit("shell-openExternal", url, JObject.FromObject(options, _jsonSerializer)).FireAndForget(); } return taskCompletionSource.Task; @@ -132,7 +132,7 @@ public Task TrashItemAsync(string fullPath) taskCompletionSource.SetResult((bool) success); }); - BridgeConnector.Socket.Emit("shell-trashItem", fullPath); + BridgeConnector.Socket.Emit("shell-trashItem", fullPath).FireAndForget(); return taskCompletionSource.Task; } @@ -142,7 +142,7 @@ public Task TrashItemAsync(string fullPath) /// public void Beep() { - BridgeConnector.Socket.Emit("shell-beep"); + BridgeConnector.Socket.Emit("shell-beep").FireAndForget(); } /// @@ -163,8 +163,7 @@ public Task WriteShortcutLinkAsync(string shortcutPath, ShortcutLinkOperat taskCompletionSource.SetResult((bool) success); }); - BridgeConnector.Socket.Emit("shell-writeShortcutLink", shortcutPath, operation.GetDescription(), JObject.FromObject(options, _jsonSerializer)); - + BridgeConnector.Socket.Emit("shell-writeShortcutLink", shortcutPath, operation.GetDescription(), JObject.FromObject(options, _jsonSerializer)).FireAndForget(); return taskCompletionSource.Task; } @@ -188,8 +187,7 @@ public Task ReadShortcutLinkAsync(string shortcutPath) taskCompletionSource.SetResult(details); }); - BridgeConnector.Socket.Emit("shell-readShortcutLink", shortcutPath); - + BridgeConnector.Socket.Emit("shell-readShortcutLink", shortcutPath).FireAndForget(); return taskCompletionSource.Task; } diff --git a/src/ElectronNET.API/TaskExtensions.cs b/src/ElectronNET.API/TaskExtensions.cs new file mode 100644 index 00000000..cfd02647 --- /dev/null +++ b/src/ElectronNET.API/TaskExtensions.cs @@ -0,0 +1,11 @@ +using System.Threading.Tasks; + +namespace ElectronNET.API; + +internal static class TaskExtensions +{ + public static void FireAndForget(this Task task) + { + // empty on purpose + } +} diff --git a/src/ElectronNET.API/Tray.cs b/src/ElectronNET.API/Tray.cs index e8947fae..625cdd41 100644 --- a/src/ElectronNET.API/Tray.cs +++ b/src/ElectronNET.API/Tray.cs @@ -31,7 +31,7 @@ public event Action OnClick _click(trayClickEventArgs, bounds); }); - BridgeConnector.Socket.Emit("register-tray-click", GetHashCode()); + BridgeConnector.Socket.Emit("register-tray-click", GetHashCode()).FireAndForget(); } _click += value; } @@ -40,7 +40,9 @@ public event Action OnClick _click -= value; if (_click == null) + { BridgeConnector.Socket.Off("tray-click-event" + GetHashCode()); + } } } @@ -63,7 +65,7 @@ public event Action OnRightClick _rightClick(trayClickEventArgs, bounds); }); - BridgeConnector.Socket.Emit("register-tray-right-click", GetHashCode()); + BridgeConnector.Socket.Emit("register-tray-right-click", GetHashCode()).FireAndForget(); } _rightClick += value; } @@ -72,7 +74,9 @@ public event Action OnRightClick _rightClick -= value; if (_rightClick == null) + { BridgeConnector.Socket.Off("tray-right-click-event" + GetHashCode()); + } } } @@ -95,7 +99,7 @@ public event Action OnDoubleClick _doubleClick(trayClickEventArgs, bounds); }); - BridgeConnector.Socket.Emit("register-tray-double-click", GetHashCode()); + BridgeConnector.Socket.Emit("register-tray-double-click", GetHashCode()).FireAndForget(); } _doubleClick += value; } @@ -104,7 +108,9 @@ public event Action OnDoubleClick _doubleClick -= value; if (_doubleClick == null) + { BridgeConnector.Socket.Off("tray-double-click-event" + GetHashCode()); + } } } @@ -124,7 +130,7 @@ public event Action OnBalloonShow _balloonShow(); }); - BridgeConnector.Socket.Emit("register-tray-balloon-show", GetHashCode()); + BridgeConnector.Socket.Emit("register-tray-balloon-show", GetHashCode()).FireAndForget(); } _balloonShow += value; } @@ -133,7 +139,9 @@ public event Action OnBalloonShow _balloonShow -= value; if (_balloonShow == null) + { BridgeConnector.Socket.Off("tray-balloon-show-event" + GetHashCode()); + } } } @@ -153,7 +161,7 @@ public event Action OnBalloonClick _balloonClick(); }); - BridgeConnector.Socket.Emit("register-tray-balloon-click", GetHashCode()); + BridgeConnector.Socket.Emit("register-tray-balloon-click", GetHashCode()).FireAndForget(); } _balloonClick += value; } @@ -162,7 +170,9 @@ public event Action OnBalloonClick _balloonClick -= value; if (_balloonClick == null) + { BridgeConnector.Socket.Off("tray-balloon-click-event" + GetHashCode()); + } } } @@ -183,7 +193,7 @@ public event Action OnBalloonClosed _balloonClosed(); }); - BridgeConnector.Socket.Emit("register-tray-balloon-closed", GetHashCode()); + BridgeConnector.Socket.Emit("register-tray-balloon-closed", GetHashCode()).FireAndForget(); } _balloonClosed += value; } @@ -192,7 +202,9 @@ public event Action OnBalloonClosed _balloonClosed -= value; if (_balloonClosed == null) + { BridgeConnector.Socket.Off("tray-balloon-closed-event" + GetHashCode()); + } } } @@ -354,6 +366,7 @@ public async Task IsDestroyedAsync() }; private const string ModuleName = "tray"; + /// /// Subscribe to an unmapped event on the module. /// @@ -361,6 +374,7 @@ public async Task IsDestroyedAsync() /// The handler public void On(string eventName, Action action) => Events.Instance.On(ModuleName, eventName, action); + /// /// Subscribe to an unmapped event on the module. /// @@ -368,6 +382,7 @@ public void On(string eventName, Action action) /// The handler public async Task On(string eventName, Action action) => await Events.Instance.On(ModuleName, eventName, action); + /// /// Subscribe to an unmapped event on the module once. /// @@ -375,6 +390,7 @@ public async Task On(string eventName, Action action) /// The handler public void Once(string eventName, Action action) => Events.Instance.Once(ModuleName, eventName, action); + /// /// Subscribe to an unmapped event on the module once. /// diff --git a/src/ElectronNET.API/WebContents.cs b/src/ElectronNET.API/WebContents.cs index cf3c0eb9..b1830be3 100644 --- a/src/ElectronNET.API/WebContents.cs +++ b/src/ElectronNET.API/WebContents.cs @@ -39,8 +39,9 @@ public event Action OnCrashed _crashed((bool)killed); }); - BridgeConnector.Socket.Emit("register-webContents-crashed", Id); + BridgeConnector.Socket.Emit("register-webContents-crashed", Id).FireAndForget(); } + _crashed += value; } remove @@ -48,7 +49,9 @@ public event Action OnCrashed _crashed -= value; if (_crashed == null) + { BridgeConnector.Socket.Off("webContents-crashed" + Id); + } } } @@ -69,7 +72,7 @@ public event Action OnDidFinishLoad _didFinishLoad(); }); - BridgeConnector.Socket.Emit("register-webContents-didFinishLoad", Id); + BridgeConnector.Socket.Emit("register-webContents-didFinishLoad", Id).FireAndForget(); } _didFinishLoad += value; } @@ -78,7 +81,9 @@ public event Action OnDidFinishLoad _didFinishLoad -= value; if (_didFinishLoad == null) + { BridgeConnector.Socket.Off("webContents-didFinishLoad" + Id); + } } } @@ -99,7 +104,7 @@ public event Action InputEvent _inputEvent(inputEvent); }); - BridgeConnector.Socket.Emit("register-webContents-input-event", Id); + BridgeConnector.Socket.Emit("register-webContents-input-event", Id).FireAndForget(); } _inputEvent += value; } @@ -108,7 +113,9 @@ public event Action InputEvent _inputEvent -= value; if (_inputEvent == null) + { BridgeConnector.Socket.Off("webContents-input-event" + Id); + } } } @@ -125,7 +132,7 @@ internal WebContents(int id) /// public void OpenDevTools() { - BridgeConnector.Socket.Emit("webContentsOpenDevTools", Id); + BridgeConnector.Socket.Emit("webContentsOpenDevTools", Id).FireAndForget(); } /// @@ -134,7 +141,7 @@ public void OpenDevTools() /// public void OpenDevTools(OpenDevToolsOptions openDevToolsOptions) { - BridgeConnector.Socket.Emit("webContentsOpenDevTools", Id, JObject.FromObject(openDevToolsOptions, _jsonSerializer)); + BridgeConnector.Socket.Emit("webContentsOpenDevTools", Id, JObject.FromObject(openDevToolsOptions, _jsonSerializer)).FireAndForget(); } /// @@ -152,8 +159,7 @@ public Task GetPrintersAsync() taskCompletionSource.SetResult(((Newtonsoft.Json.Linq.JArray)printers).ToObject()); }); - BridgeConnector.Socket.Emit("webContents-getPrinters", Id); - + BridgeConnector.Socket.Emit("webContents-getPrinters", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -174,11 +180,11 @@ public Task PrintAsync(PrintOptions options = null) if(options == null) { - BridgeConnector.Socket.Emit("webContents-print", Id, ""); + BridgeConnector.Socket.Emit("webContents-print", Id, "").FireAndForget(); } else { - BridgeConnector.Socket.Emit("webContents-print", Id, JObject.FromObject(options, _jsonSerializer)); + BridgeConnector.Socket.Emit("webContents-print", Id, JObject.FromObject(options, _jsonSerializer)).FireAndForget(); } return taskCompletionSource.Task; @@ -205,11 +211,11 @@ public Task PrintToPDFAsync(string path, PrintToPDFOptions options = null) if(options == null) { - BridgeConnector.Socket.Emit("webContents-printToPDF", Id, "", path); + BridgeConnector.Socket.Emit("webContents-printToPDF", Id, "", path).FireAndForget(); } else { - BridgeConnector.Socket.Emit("webContents-printToPDF", Id, JObject.FromObject(options, _jsonSerializer), path); + BridgeConnector.Socket.Emit("webContents-printToPDF", Id, JObject.FromObject(options, _jsonSerializer), path).FireAndForget(); } return taskCompletionSource.Task; @@ -223,16 +229,15 @@ public Task PrintToPDFAsync(string path, PrintToPDFOptions options = null) public Task GetUrl() { var taskCompletionSource = new TaskCompletionSource(); - var eventString = "webContents-getUrl" + Id; + BridgeConnector.Socket.On(eventString, (url) => { BridgeConnector.Socket.Off(eventString); taskCompletionSource.SetResult((string)url); }); - BridgeConnector.Socket.Emit("webContents-getUrl", Id); - + BridgeConnector.Socket.Emit("webContents-getUrl", Id).FireAndForget(); return taskCompletionSource.Task; } @@ -283,8 +288,7 @@ public Task LoadURLAsync(string url, LoadURLOptions options) taskCompletionSource.SetException(new InvalidOperationException(error.ToString())); }); - BridgeConnector.Socket.Emit("webContents-loadURL", Id, url, JObject.FromObject(options, _jsonSerializer)); - + BridgeConnector.Socket.Emit("webContents-loadURL", Id, url, JObject.FromObject(options, _jsonSerializer)).FireAndForget(); return taskCompletionSource.Task; } @@ -297,7 +301,7 @@ public Task LoadURLAsync(string url, LoadURLOptions options) /// Absolute path to the CSS file location public void InsertCSS(bool isBrowserWindow, string path) { - BridgeConnector.Socket.Emit("webContents-insertCSS", Id, isBrowserWindow, path); + BridgeConnector.Socket.Emit("webContents-insertCSS", Id, isBrowserWindow, path).FireAndForget(); } private readonly JsonSerializer _jsonSerializer = new() diff --git a/src/ElectronNET.API/WindowManager.cs b/src/ElectronNET.API/WindowManager.cs index 0f9b5b5f..10f0cada 100644 --- a/src/ElectronNET.API/WindowManager.cs +++ b/src/ElectronNET.API/WindowManager.cs @@ -51,7 +51,7 @@ public bool IsQuitOnWindowAllClosed get => _isQuitOnWindowAllClosed; set { - BridgeConnector.Socket.Emit("quit-app-window-all-closed-event", value); + BridgeConnector.Socket.Emit("quit-app-window-all-closed-event", value).FireAndForget(); _isQuitOnWindowAllClosed = value; } } @@ -115,7 +115,7 @@ public async Task CreateWindowAsync(BrowserWindowOptions options, var browserWindowIds = ((JArray)ids).ToObject(); - for (int index = 0; index < _browserWindows.Count; index++) + for (var index = 0; index < _browserWindows.Count; index++) { if (!browserWindowIds.Contains(_browserWindows[index].Id)) { @@ -195,7 +195,7 @@ public async Task CreateBrowserViewAsync(BrowserViewConstructorOpti { BridgeConnector.Socket.Off("BrowserViewCreated"); - string browserViewId = id.ToString(); + var browserViewId = id.ToString(); BrowserView browserView = new BrowserView(int.Parse(browserViewId)); _browserViews.Add(browserView); @@ -208,8 +208,8 @@ public async Task CreateBrowserViewAsync(BrowserViewConstructorOpti ContractResolver = new CamelCasePropertyNamesContractResolver(), NullValueHandling = NullValueHandling.Ignore }; - await BridgeConnector.Socket.Emit("createBrowserView", JObject.FromObject(options, ownjsonSerializer)); + await BridgeConnector.Socket.Emit("createBrowserView", JObject.FromObject(options, ownjsonSerializer)); return await taskCompletionSource.Task; } diff --git a/src/ElectronNET.CLI/Commands/Actions/DeployEmbeddedElectronFiles.cs b/src/ElectronNET.CLI/Commands/Actions/DeployEmbeddedElectronFiles.cs index 205ff7b4..19aab128 100644 --- a/src/ElectronNET.CLI/Commands/Actions/DeployEmbeddedElectronFiles.cs +++ b/src/ElectronNET.CLI/Commands/Actions/DeployEmbeddedElectronFiles.cs @@ -6,49 +6,31 @@ public static class DeployEmbeddedElectronFiles { public static void Do(string tempPath) { - EmbeddedFileHelper.DeployEmbeddedFile(tempPath, "main.js"); - EmbeddedFileHelper.DeployEmbeddedFile(tempPath, "package.json"); - EmbeddedFileHelper.DeployEmbeddedFile(tempPath, "build-helper.js"); - - string vscodeFolder = Path.Combine(tempPath, ".vscode"); - if (Directory.Exists(vscodeFolder) == false) + var hostDistFolder = Path.Combine(tempPath, "dist"); + var vscodeFolder = Path.Combine(tempPath, ".vscode"); + var splashscreenFolder = Path.Combine(tempPath, "splashscreen"); + + if (!Directory.Exists(hostDistFolder)) { - Directory.CreateDirectory(vscodeFolder); + Directory.CreateDirectory(hostDistFolder); } - EmbeddedFileHelper.DeployEmbeddedFile(vscodeFolder, "launch.json", ".vscode."); - EmbeddedFileHelper.DeployEmbeddedFile(vscodeFolder, "tasks.json", ".vscode."); - string hostApiFolder = Path.Combine(tempPath, "api"); - if (Directory.Exists(hostApiFolder) == false) + if (!Directory.Exists(vscodeFolder)) { - Directory.CreateDirectory(hostApiFolder); + Directory.CreateDirectory(vscodeFolder); } - 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, "dock.js", "api."); - EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "menu.js", "api."); - EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "notification.js", "api."); - EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "tray.js", "api."); - EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "webContents.js", "api."); - EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "globalShortcut.js", "api."); - EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "shell.js", "api."); - EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "screen.js", "api."); - EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "clipboard.js", "api."); - EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "autoUpdater.js", "api."); - EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "browserView.js", "api."); - EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "powerMonitor.js", "api."); - EmbeddedFileHelper.DeployEmbeddedFile(hostApiFolder, "nativeTheme.js", "api."); - - string splashscreenFolder = Path.Combine(tempPath, "splashscreen"); - if (Directory.Exists(splashscreenFolder) == false) + if (!Directory.Exists(splashscreenFolder)) { Directory.CreateDirectory(splashscreenFolder); } - EmbeddedFileHelper.DeployEmbeddedFile(splashscreenFolder, "index.html", "splashscreen."); + + EmbeddedFileHelper.DeployEmbeddedFile(tempPath, "package.json"); + EmbeddedFileHelper.DeployEmbeddedFile(hostDistFolder, "main.js", "dist."); + EmbeddedFileHelper.DeployEmbeddedFile(hostDistFolder, "build-helper.js", "dist."); + EmbeddedFileHelper.DeployEmbeddedFile(vscodeFolder, "launch.json", ".vscode."); + EmbeddedFileHelper.DeployEmbeddedFile(vscodeFolder, "tasks.json", ".vscode."); + EmbeddedFileHelper.DeployEmbeddedFile(splashscreenFolder, "index.html", "splashscreen."); } } } diff --git a/src/ElectronNET.CLI/Commands/Actions/DirectoryCopy.cs b/src/ElectronNET.CLI/Commands/Actions/DirectoryCopy.cs index 39ded697..622646b3 100644 --- a/src/ElectronNET.CLI/Commands/Actions/DirectoryCopy.cs +++ b/src/ElectronNET.CLI/Commands/Actions/DirectoryCopy.cs @@ -8,16 +8,15 @@ public static class DirectoryCopy public static void Do(string sourceDirName, string destDirName, bool copySubDirs, List ignoredSubDirs) { // Get the subdirectories for the specified directory. - DirectoryInfo dir = new DirectoryInfo(sourceDirName); + var dir = new DirectoryInfo(sourceDirName); if (!dir.Exists) { - throw new DirectoryNotFoundException( - "Source directory does not exist or could not be found: " - + sourceDirName); + throw new DirectoryNotFoundException("Source directory does not exist or could not be found: " + sourceDirName); } - DirectoryInfo[] dirs = dir.GetDirectories(); + var dirs = dir.GetDirectories(); + // If the destination directory doesn't exist, create it. if (!Directory.Exists(destDirName)) { @@ -25,40 +24,39 @@ public static void Do(string sourceDirName, string destDirName, bool copySubDirs } else { - DirectoryInfo targetDir = new DirectoryInfo(destDirName); + var targetDir = new DirectoryInfo(destDirName); - foreach (FileInfo fileDel in targetDir.EnumerateFiles()) + foreach (var fileDel in targetDir.EnumerateFiles()) { fileDel.Delete(); } - foreach (DirectoryInfo dirDel in targetDir.EnumerateDirectories()) + + foreach (var dirDel in targetDir.EnumerateDirectories()) { dirDel.Delete(true); } } - - - // Get the files in the directory and copy them to the new location. - FileInfo[] files = dir.GetFiles(); - foreach (FileInfo file in files) + var files = dir.GetFiles(); + + foreach (var file in files) { - string temppath = Path.Combine(destDirName, file.Name); + var temppath = Path.Combine(destDirName, file.Name); file.CopyTo(temppath, false); } // If copying subdirectories, copy them and their contents to new location. if (copySubDirs) { - foreach (DirectoryInfo subdir in dirs) + foreach (var subdir in dirs) { if (ignoredSubDirs.Contains(subdir.Name)) { continue; } - string temppath = Path.Combine(destDirName, subdir.Name); + var temppath = Path.Combine(destDirName, subdir.Name); Do(subdir.FullName, temppath, copySubDirs, ignoredSubDirs); } } diff --git a/src/ElectronNET.CLI/Commands/Actions/GetTargetPlatformInformation.cs b/src/ElectronNET.CLI/Commands/Actions/GetTargetPlatformInformation.cs index a12d4275..66a17a57 100644 --- a/src/ElectronNET.CLI/Commands/Actions/GetTargetPlatformInformation.cs +++ b/src/ElectronNET.CLI/Commands/Actions/GetTargetPlatformInformation.cs @@ -9,13 +9,12 @@ public struct GetTargetPlatformInformationResult { public string NetCorePublishRid { get; set; } public string ElectronPackerPlatform { get; set; } - } public static GetTargetPlatformInformationResult Do(string desiredPlatform, string specifiedPlatfromFromCustom) { - string netCorePublishRid = string.Empty; - string electronPackerPlatform = string.Empty; + var netCorePublishRid = string.Empty; + var electronPackerPlatform = string.Empty; switch (desiredPlatform) { @@ -60,7 +59,7 @@ public static GetTargetPlatformInformationResult Do(string desiredPlatform, stri break; } - return new GetTargetPlatformInformationResult() + return new GetTargetPlatformInformationResult { ElectronPackerPlatform = electronPackerPlatform, NetCorePublishRid = netCorePublishRid diff --git a/src/ElectronNET.CLI/Commands/AddCommand.cs b/src/ElectronNET.CLI/Commands/AddCommand.cs index cbfb0dd6..2c4be745 100644 --- a/src/ElectronNET.CLI/Commands/AddCommand.cs +++ b/src/ElectronNET.CLI/Commands/AddCommand.cs @@ -15,7 +15,6 @@ public class AddCommand : ICommand public const string COMMAND_ARGUMENTS = "hosthook"; public static IList CommandOptions { get; set; } = new List(); - private string[] _args; public AddCommand(string[] args) @@ -23,71 +22,57 @@ public AddCommand(string[] args) _args = args; } - private static string ElectronHostHookFolderName = "ElectronHostHook"; - public Task ExecuteAsync() { return Task.Run(() => { - if(_args.Length == 0) + if (_args.Length == 0) { Console.WriteLine("Specify 'hosthook' to add custom npm packages."); return false; } - if(_args[0].ToLowerInvariant() != "hosthook") + if (_args[0].ToLowerInvariant() != "hosthook") { Console.WriteLine("Specify 'hosthook' to add custom npm packages."); return false; } - string aspCoreProjectPath = ""; - // Maybe ToDo: Adding the possiblity to specify a path (like we did in the InitCommand, but this would require a better command args parser) - aspCoreProjectPath = Directory.GetCurrentDirectory(); - - var currentDirectory = aspCoreProjectPath; - - var targetFilePath = Path.Combine(currentDirectory, ElectronHostHookFolderName); - - if(Directory.Exists(targetFilePath)) + var currentDirectory = Directory.GetCurrentDirectory(); + var hostFolder = Path.Combine(currentDirectory, "ElectronHostHook"); + + if (!Directory.Exists(hostFolder)) { - Console.WriteLine("ElectronHostHook directory already in place. If you want to start over, delete the folder and invoke this command again."); - return false; + Directory.CreateDirectory(hostFolder); } - Console.WriteLine("Adding the ElectronHostHook folder to your project..."); - - Directory.CreateDirectory(targetFilePath); - // Deploy related files - EmbeddedFileHelper.DeployEmbeddedFile(targetFilePath, "index.ts", "ElectronHostHook."); - EmbeddedFileHelper.DeployEmbeddedFile(targetFilePath, "connector.ts", "ElectronHostHook."); - EmbeddedFileHelper.DeployEmbeddedFile(targetFilePath, "package.json", "ElectronHostHook."); - EmbeddedFileHelper.DeployEmbeddedFile(targetFilePath, "tsconfig.json", "ElectronHostHook."); - EmbeddedFileHelper.DeployEmbeddedFile(targetFilePath, ".gitignore", "ElectronHostHook."); - - // npm for typescript compiler etc. - Console.WriteLine("Start npm install..."); - ProcessHelper.CmdExecute("npm install", targetFilePath); + EmbeddedFileHelper.DeployEmbeddedFile(hostFolder, "package.json", "hook."); + EmbeddedFileHelper.DeployEmbeddedFile(hostFolder, "tsconfig.json", "hook."); + EmbeddedFileHelper.DeployEmbeddedFile(hostFolder, ".gitignore", "hook."); + EmbeddedFileHelper.DeployEmbeddedFile(hostFolder, "index.ts", "hook."); - // run typescript compiler - // ToDo: Not sure if this runs under linux/macos - ProcessHelper.CmdExecute(@"npx tsc -p ../../", targetFilePath); + Console.WriteLine($"Installing the dependencies ..."); + ProcessHelper.CheckNodeModules(hostFolder); // search .csproj or .fsproj (.csproj has higher precedence) Console.WriteLine($"Search your .csproj/.fsproj to add configure CopyToPublishDirectory to 'Never'"); - var projectFile = Directory.EnumerateFiles(currentDirectory, "*.csproj", SearchOption.TopDirectoryOnly) + + var projectFile = Directory + .EnumerateFiles(currentDirectory, "*.csproj", SearchOption.TopDirectoryOnly) .Union(Directory.EnumerateFiles(currentDirectory, "*.fsproj", SearchOption.TopDirectoryOnly)) .FirstOrDefault(); var extension = Path.GetExtension(projectFile); Console.WriteLine($"Found your {extension}: {projectFile} - check for existing CopyToPublishDirectory setting or update it."); - if (!EditProjectFile(projectFile)) return false; + if (!EditProjectFile(projectFile)) + { + return false; + } Console.WriteLine($"Everything done - happy electronizing with your custom npm packages!"); - return true; }); } @@ -98,20 +83,19 @@ private static bool EditProjectFile(string projectFile) using (var stream = File.Open(projectFile, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { var xmlDocument = XDocument.Load(stream); - var projectElement = xmlDocument.Descendants("Project").FirstOrDefault(); + if (projectElement == null || projectElement.Attribute("Sdk")?.Value != "Microsoft.NET.Sdk.Web") { - Console.WriteLine( - $"Project file is not a compatible type of 'Microsoft.NET.Sdk.Web'. Your project: {projectElement?.Attribute("Sdk")?.Value}"); + Console.WriteLine($"Project file is not a compatible type of 'Microsoft.NET.Sdk.Web'. Your project: {projectElement?.Attribute("Sdk")?.Value}"); return false; } - string itemGroupXmlString = "" + - "" + - "Never" + - "" + - ""; + var itemGroupXmlString = "" + + "" + + "Never" + + "" + + ""; var newItemGroupForConfig = XElement.Parse(itemGroupXmlString); xmlDocument.Root.Add(newItemGroupForConfig); @@ -124,11 +108,11 @@ private static bool EditProjectFile(string projectFile) OmitXmlDeclaration = true, Indent = true }; + using (XmlWriter xw = XmlWriter.Create(stream, xws)) { xmlDocument.Save(xw); } - } Console.WriteLine($"Publish setting added in csproj/fsproj!"); diff --git a/src/ElectronNET.CLI/Commands/BuildCommand.cs b/src/ElectronNET.CLI/Commands/BuildCommand.cs index 2f4f52c7..eded479f 100644 --- a/src/ElectronNET.CLI/Commands/BuildCommand.cs +++ b/src/ElectronNET.CLI/Commands/BuildCommand.cs @@ -51,15 +51,18 @@ public Task ExecuteAsync() { return Task.Run(() => { - Console.WriteLine("Build Electron Application..."); + var parser = new SimpleCommandLineParser(); - SimpleCommandLineParser parser = new SimpleCommandLineParser(); + Console.WriteLine("Build Electron Application..."); parser.Parse(_args); //This version will be shared between the dotnet publish and electron-builder commands - string version = null; + var version = string.Empty; + if (parser.Arguments.ContainsKey(_paramVersion)) + { version = parser.Arguments[_paramVersion][0]; + } if (!parser.Arguments.ContainsKey(_paramTarget)) { @@ -69,23 +72,24 @@ public Task ExecuteAsync() } var desiredPlatform = parser.Arguments[_paramTarget][0]; - string specifiedFromCustom = string.Empty; + var specifiedFromCustom = string.Empty; + if (desiredPlatform == "custom" && parser.Arguments[_paramTarget].Length > 1) { specifiedFromCustom = parser.Arguments[_paramTarget][1]; } - string configuration = "Release"; + var configuration = "Release"; + if (parser.Arguments.ContainsKey(_paramDotNetConfig)) { configuration = parser.Arguments[_paramDotNetConfig][0]; } var platformInfo = GetTargetPlatformInformation.Do(desiredPlatform, specifiedFromCustom); - Console.WriteLine($"Build ASP.NET Core App for {platformInfo.NetCorePublishRid}..."); - string tempPath = Path.Combine(Directory.GetCurrentDirectory(), "obj", "desktop", desiredPlatform); + var tempPath = Path.Combine(Directory.GetCurrentDirectory(), "obj", "desktop", desiredPlatform); if (Directory.Exists(tempPath) == false) { @@ -97,17 +101,13 @@ public Task ExecuteAsync() Directory.CreateDirectory(tempPath); } - Console.WriteLine("Executing dotnet publish in this directory: " + tempPath); - string tempBinPath = Path.Combine(tempPath, "bin"); + var tempBinPath = Path.Combine(tempPath, "bin"); + Console.WriteLine($"Build ASP.NET Core App for {platformInfo.NetCorePublishRid} under {configuration}-Configuration..."); - Console.WriteLine($"Build ASP.NET Core App for {platformInfo.NetCorePublishRid} under {configuration}-Configuration..."); - var dotNetPublishFlags = GetDotNetPublishFlags(parser); - - var command = - $"dotnet publish -r {platformInfo.NetCorePublishRid} -c \"{configuration}\" --output \"{tempBinPath}\" {string.Join(' ', dotNetPublishFlags.Select(kvp => $"{kvp.Key}={kvp.Value}"))} --self-contained"; + var command = $"dotnet publish -r {platformInfo.NetCorePublishRid} -c \"{configuration}\" --output \"{tempBinPath}\" {string.Join(' ', dotNetPublishFlags.Select(kvp => $"{kvp.Key}={kvp.Value}"))} --self-contained"; // output the command Console.ForegroundColor = ConsoleColor.Green; @@ -132,33 +132,16 @@ public Task ExecuteAsync() File.Copy(parser.Arguments[_paramPackageJson][0], Path.Combine(tempPath, "package.json"), true); } - var checkForNodeModulesDirPath = Path.Combine(tempPath, "node_modules"); - - if (Directory.Exists(checkForNodeModulesDirPath) == false || parser.Contains(_paramForceNodeInstall) || parser.Contains(_paramPackageJson)) - - Console.WriteLine("Start npm install..."); - ProcessHelper.CmdExecute("npm install --production", tempPath); + ProcessHelper.CheckNodeModules(tempPath, parser.Contains(_paramForceNodeInstall) || parser.Contains(_paramPackageJson)); Console.WriteLine("ElectronHostHook handling started..."); - - string electronhosthookDir = Path.Combine(Directory.GetCurrentDirectory(), "ElectronHostHook"); - - if (Directory.Exists(electronhosthookDir)) - { - 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", hosthookDir); - - // ToDo: Not sure if this runs under linux/macos - ProcessHelper.CmdExecute(@"npx tsc -p . --sourceMap false", hosthookDir); - } + ProcessHelper.BundleHostHook(tempPath); Console.WriteLine("Build Electron Desktop Application..."); // Specifying an absolute path supercedes a relative path - string buildPath = Path.Combine(Directory.GetCurrentDirectory(), "bin", "desktop"); + var buildPath = Path.Combine(Directory.GetCurrentDirectory(), "bin", "desktop"); + if (parser.Arguments.ContainsKey(_paramAbsoluteOutput)) { buildPath = parser.Arguments[_paramAbsoluteOutput][0]; @@ -170,13 +153,15 @@ public Task ExecuteAsync() Console.WriteLine("Executing electron magic in this directory: " + buildPath); - string electronArch = "x64"; + var electronArch = "x64"; + if (parser.Arguments.ContainsKey(_paramElectronArch)) { electronArch = parser.Arguments[_paramElectronArch][0]; } - string electronParams = ""; + var electronParams = string.Empty; + if (parser.Arguments.ContainsKey(_paramElectronParams)) { electronParams = parser.Arguments[_paramElectronParams][0]; @@ -185,7 +170,7 @@ public Task ExecuteAsync() // 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..."); - string manifestFileName = "electron.manifest.json"; + var manifestFileName = "electron.manifest.json"; if (parser.Arguments.ContainsKey(_manifest)) { @@ -194,14 +179,13 @@ public Task ExecuteAsync() ProcessHelper.CmdExecute( string.IsNullOrWhiteSpace(version) - ? $"node build-helper.js {manifestFileName}" - : $"node build-helper.js {manifestFileName} {version}", tempPath); + ? $"node dist/build-helper.js {manifestFileName}" + : $"node dist/build-helper.js {manifestFileName} {version}", tempPath); - Console.WriteLine($"Package Electron App for Platform {platformInfo.ElectronPackerPlatform}..."); + Console.WriteLine($"Package Electron App for Platform {platformInfo.ElectronPackerPlatform} ..."); ProcessHelper.CmdExecute($"npx electron-builder --config=./bin/electron-builder.json --{platformInfo.ElectronPackerPlatform} --{electronArch} -c.electronVersion=23.2.0 {electronParams}", tempPath); Console.WriteLine("... done"); - return true; }); } @@ -216,21 +200,28 @@ private Dictionary GetDotNetPublishFlags(SimpleCommandLineParser if (parser.Arguments.ContainsKey(_paramVersion)) { - if(parser.Arguments.Keys.All(key => !key.StartsWith("p:Version=") && !key.StartsWith("property:Version="))) + if (parser.Arguments.Keys.All(key => !key.StartsWith("p:Version=") && !key.StartsWith("property:Version="))) + { dotNetPublishFlags.Add("/p:Version", parser.Arguments[_paramVersion][0]); - if(parser.Arguments.Keys.All(key => !key.StartsWith("p:ProductVersion=") && !key.StartsWith("property:ProductVersion="))) + } + + if (parser.Arguments.Keys.All(key => !key.StartsWith("p:ProductVersion=") && !key.StartsWith("property:ProductVersion="))) + { dotNetPublishFlags.Add("/p:ProductVersion", parser.Arguments[_paramVersion][0]); + } } foreach (var parm in parser.Arguments.Keys.Where(key => key.StartsWith("p:") || key.StartsWith("property:"))) { var split = parm.IndexOf('='); + if (split < 0) { continue; } var key = $"/{parm.Substring(0, split)}"; + // normalize the key if (key.StartsWith("/property:")) { diff --git a/src/ElectronNET.CLI/Commands/CommandOption.cs b/src/ElectronNET.CLI/Commands/CommandOption.cs index 675f571e..7ff44bd8 100644 --- a/src/ElectronNET.CLI/Commands/CommandOption.cs +++ b/src/ElectronNET.CLI/Commands/CommandOption.cs @@ -43,8 +43,11 @@ public string ConfigFileKey get { var key = this.Switch; + if (key.StartsWith("--")) + { key = key.Substring(2); + } return key; } diff --git a/src/ElectronNET.CLI/Commands/InitCommand.cs b/src/ElectronNET.CLI/Commands/InitCommand.cs index c2539200..ca68592d 100644 --- a/src/ElectronNET.CLI/Commands/InitCommand.cs +++ b/src/ElectronNET.CLI/Commands/InitCommand.cs @@ -32,11 +32,12 @@ public Task ExecuteAsync() { return Task.Run(() => { - string aspCoreProjectPath = ""; + var aspCoreProjectPath = ""; if (_parser.Arguments.ContainsKey(_aspCoreProjectPath)) { - string projectPath = _parser.Arguments[_aspCoreProjectPath].First(); + var projectPath = _parser.Arguments[_aspCoreProjectPath].First(); + if (Directory.Exists(projectPath)) { aspCoreProjectPath = projectPath; @@ -49,7 +50,7 @@ public Task ExecuteAsync() var currentDirectory = aspCoreProjectPath; - if(_parser.Arguments.ContainsKey(_manifest)) + if (_parser.Arguments.ContainsKey(_manifest)) { ConfigName = "electron.manifest." + _parser.Arguments[_manifest].First() + ".json"; Console.WriteLine($"Adding your custom {ConfigName} config file to your project..."); @@ -72,20 +73,26 @@ public Task ExecuteAsync() // search .csproj/.fsproj (.csproj has higher precedence) Console.WriteLine($"Search your .csproj/fsproj to add the needed {ConfigName}..."); + var projectFile = Directory.EnumerateFiles(currentDirectory, "*.csproj", SearchOption.TopDirectoryOnly) .Union(Directory.EnumerateFiles(currentDirectory, "*.fsproj", SearchOption.TopDirectoryOnly)) .FirstOrDefault(); // update config file with the name of the csproj/fsproj // ToDo: If the csproj/fsproj name != application name, this will fail - string text = File.ReadAllText(targetFilePath); - text = text.Replace("{{executable}}", Path.GetFileNameWithoutExtension(projectFile)); + var text = File + .ReadAllText(targetFilePath) + .Replace("{{executable}}", Path.GetFileNameWithoutExtension(projectFile)); + File.WriteAllText(targetFilePath, text); var extension = Path.GetExtension(projectFile); Console.WriteLine($"Found your {extension}: {projectFile} - check for existing config or update it."); - if (!EditProjectFile(projectFile)) return false; + if (!EditProjectFile(projectFile)) + { + return false; + } // search launchSettings.json Console.WriteLine($"Search your .launchSettings to add our electron debug profile..."); @@ -112,22 +119,22 @@ private static void EditLaunchSettings(string currentDirectory) return; } - string launchSettingText = File.ReadAllText(launchSettingFile); + var launchSettingText = File.ReadAllText(launchSettingFile); if(_parser.Arguments.ContainsKey(_manifest)) { - string manifestName = _parser.Arguments[_manifest].First(); + var manifestName = _parser.Arguments[_manifest].First(); - if(launchSettingText.Contains("start /manifest " + ConfigName) == false) + 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(" },"); + var debugProfileBuilder = new StringBuilder() + .AppendLine("profiles\": {") + .AppendLine(" \"Electron.NET App - " + manifestName + "\": {") + .AppendLine(" \"commandName\": \"Executable\",") + .AppendLine(" \"executablePath\": \"electronize\",") + .AppendLine(" \"commandLineArgs\": \"start /manifest " + ConfigName + "\",") + .AppendLine(" \"workingDirectory\": \".\"") + .AppendLine(" },"); launchSettingText = launchSettingText.Replace("profiles\": {", debugProfileBuilder.ToString()); File.WriteAllText(launchSettingFile, launchSettingText); @@ -141,14 +148,14 @@ private static void EditLaunchSettings(string currentDirectory) } else if (launchSettingText.Contains("\"executablePath\": \"electronize\"") == false) { - StringBuilder debugProfileBuilder = new StringBuilder(); - debugProfileBuilder.AppendLine("profiles\": {"); - debugProfileBuilder.AppendLine(" \"Electron.NET App\": {"); - debugProfileBuilder.AppendLine(" \"commandName\": \"Executable\","); - debugProfileBuilder.AppendLine(" \"executablePath\": \"electronize\","); - debugProfileBuilder.AppendLine(" \"commandLineArgs\": \"start\","); - debugProfileBuilder.AppendLine(" \"workingDirectory\": \".\""); - debugProfileBuilder.AppendLine(" },"); + var debugProfileBuilder = new StringBuilder() + .AppendLine("profiles\": {") + .AppendLine(" \"Electron.NET App\": {") + .AppendLine(" \"commandName\": \"Executable\",") + .AppendLine(" \"executablePath\": \"electronize\",") + .AppendLine(" \"commandLineArgs\": \"start\",") + .AppendLine(" \"workingDirectory\": \".\"") + .AppendLine(" },"); launchSettingText = launchSettingText.Replace("profiles\": {", debugProfileBuilder.ToString()); File.WriteAllText(launchSettingFile, launchSettingText); @@ -166,8 +173,8 @@ private static bool EditProjectFile(string projectFile) using (var stream = File.Open(projectFile, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { var xmlDocument = XDocument.Load(stream); - var projectElement = xmlDocument.Descendants("Project").FirstOrDefault(); + if (projectElement == null || projectElement.Attribute("Sdk")?.Value != "Microsoft.NET.Sdk.Web") { Console.WriteLine( @@ -183,11 +190,11 @@ private static bool EditProjectFile(string projectFile) Console.WriteLine($"{ConfigName} will be added to csproj/fsproj."); - string itemGroupXmlString = "" + - "" + - "PreserveNewest" + - "" + - ""; + var itemGroupXmlString = "" + + "" + + "PreserveNewest" + + "" + + ""; var newItemGroupForConfig = XElement.Parse(itemGroupXmlString); xmlDocument.Root.Add(newItemGroupForConfig); @@ -200,11 +207,11 @@ private static bool EditProjectFile(string projectFile) OmitXmlDeclaration = true, Indent = true }; + using (XmlWriter xw = XmlWriter.Create(stream, xws)) { xmlDocument.Save(xw); } - } Console.WriteLine($"{ConfigName} added in csproj/fsproj!"); diff --git a/src/ElectronNET.CLI/Commands/StartElectronCommand.cs b/src/ElectronNET.CLI/Commands/StartElectronCommand.cs index 03382ecd..fbe828f4 100644 --- a/src/ElectronNET.CLI/Commands/StartElectronCommand.cs +++ b/src/ElectronNET.CLI/Commands/StartElectronCommand.cs @@ -35,16 +35,16 @@ public Task ExecuteAsync() { return Task.Run(() => { - Console.WriteLine("Start Electron Desktop Application..."); + var parser = new SimpleCommandLineParser(); + var aspCoreProjectPath = string.Empty; - SimpleCommandLineParser parser = new SimpleCommandLineParser(); + Console.WriteLine("Start Electron Desktop Application ..."); parser.Parse(_args); - string aspCoreProjectPath = ""; - if (parser.Arguments.ContainsKey(_aspCoreProjectPath)) { - string projectPath = parser.Arguments[_aspCoreProjectPath].First(); + var projectPath = parser.Arguments[_aspCoreProjectPath].First(); + if (Directory.Exists(projectPath)) { aspCoreProjectPath = projectPath; @@ -55,16 +55,17 @@ public Task ExecuteAsync() aspCoreProjectPath = Directory.GetCurrentDirectory(); } - string tempPath = Path.Combine(aspCoreProjectPath, "obj", "Host"); - if (Directory.Exists(tempPath) == false) + var tempPath = Path.Combine(aspCoreProjectPath, "obj", "Host"); + + if (!Directory.Exists(tempPath)) { Directory.CreateDirectory(tempPath); } - string tempBinPath = Path.Combine(tempPath, "bin"); + var tempBinPath = Path.Combine(tempPath, "bin"); var resultCode = 0; + var publishReadyToRun = "/p:PublishReadyToRun="; - string publishReadyToRun = "/p:PublishReadyToRun="; if (parser.Arguments.ContainsKey(_paramPublishReadyToRun)) { publishReadyToRun += parser.Arguments[_paramPublishReadyToRun][0]; @@ -74,7 +75,8 @@ public Task ExecuteAsync() publishReadyToRun += "true"; } - string publishSingleFile = "/p:PublishSingleFile="; + var publishSingleFile = "/p:PublishSingleFile="; + if (parser.Arguments.ContainsKey(_paramPublishSingleFile)) { publishSingleFile += parser.Arguments[_paramPublishSingleFile][0]; @@ -88,18 +90,22 @@ public Task ExecuteAsync() // Format is the same as the build command. // If target is not specified, autodetect it. var platformInfo = GetTargetPlatformInformation.Do(string.Empty, string.Empty); + if (parser.Arguments.ContainsKey(_paramTarget)) { var desiredPlatform = parser.Arguments[_paramTarget][0]; - string specifiedFromCustom = string.Empty; + var specifiedFromCustom = string.Empty; + if (desiredPlatform == "custom" && parser.Arguments[_paramTarget].Length > 1) { specifiedFromCustom = parser.Arguments[_paramTarget][1]; } + platformInfo = GetTargetPlatformInformation.Do(desiredPlatform, specifiedFromCustom); } - string configuration = "Debug"; + var configuration = "Debug"; + if (parser.Arguments.ContainsKey(_paramDotNetConfig)) { configuration = parser.Arguments[_paramDotNetConfig][0]; @@ -117,31 +123,12 @@ public Task ExecuteAsync() } DeployEmbeddedElectronFiles.Do(tempPath); + ProcessHelper.CheckNodeModules(tempPath); - var nodeModulesDirPath = Path.Combine(tempPath, "node_modules"); - - Console.WriteLine("node_modules missing in: " + nodeModulesDirPath); + Console.WriteLine("ElectronHostHook handling started ..."); + ProcessHelper.BundleHostHook(tempPath); - Console.WriteLine("Start npm install..."); - ProcessHelper.CmdExecute("npm install", tempPath); - - Console.WriteLine("ElectronHostHook handling started..."); - - string electronhosthookDir = Path.Combine(Directory.GetCurrentDirectory(), "ElectronHostHook"); - - if (Directory.Exists(electronhosthookDir)) - { - 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", hosthookDir); - - // ToDo: Not sure if this runs under linux/macos - ProcessHelper.CmdExecute(@"npx tsc -p ../../ElectronHostHook", tempPath); - } - - string arguments = ""; + var arguments = string.Empty; if (parser.Arguments.ContainsKey(_arguments)) { @@ -163,19 +150,18 @@ public Task ExecuteAsync() arguments += " --watch=true"; } - string path = Path.Combine(tempPath, "node_modules", ".bin"); - bool isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows); + var path = Path.Combine(tempPath, "node_modules", ".bin"); + var isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows); if (isWindows) { Console.WriteLine("Invoke electron.cmd - in dir: " + path); - ProcessHelper.CmdExecute(@"electron.cmd ""..\..\main.js"" " + arguments, path); - + ProcessHelper.CmdExecute(@"electron.cmd ""..\..\dist\main.js"" " + arguments, path); } else { Console.WriteLine("Invoke electron - in dir: " + path); - ProcessHelper.CmdExecute(@"./electron ""../../main.js"" " + arguments, path); + ProcessHelper.CmdExecute(@"./electron ""../../dist/main.js"" " + arguments, path); } return true; diff --git a/src/ElectronNET.CLI/ElectronNET.CLI.csproj b/src/ElectronNET.CLI/ElectronNET.CLI.csproj index 2023d894..c3051962 100644 --- a/src/ElectronNET.CLI/ElectronNET.CLI.csproj +++ b/src/ElectronNET.CLI/ElectronNET.CLI.csproj @@ -39,36 +39,17 @@ - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - + + + + diff --git a/src/ElectronNET.CLI/ProcessHelper.cs b/src/ElectronNET.CLI/ProcessHelper.cs index 9e0048f4..9c40cd7b 100644 --- a/src/ElectronNET.CLI/ProcessHelper.cs +++ b/src/ElectronNET.CLI/ProcessHelper.cs @@ -1,16 +1,44 @@ ๏ปฟusing System; using System.Diagnostics; +using System.IO; using System.Runtime.InteropServices; namespace ElectronNET.CLI { public class ProcessHelper { + public static void CheckNodeModules(string root, bool force = false) + { + var nodeModulesDirPath = Path.Combine(root, "node_modules"); + + if (!Directory.Exists(nodeModulesDirPath) || force) + { + Console.WriteLine("Starting npm install ..."); + ProcessHelper.CmdExecute("npm install", root); + } + } + + public static void BundleHostHook(string root) + { + var electronhosthookDir = Path.Combine(Directory.GetCurrentDirectory(), "ElectronHostHook"); + + if (Directory.Exists(electronhosthookDir)) + { + CheckNodeModules(electronhosthookDir); + + // TODO: should be more complex, i.e., look at package.json, determine "source" or "main" and resolve it + var hookSource = Path.Combine(electronhosthookDir, "index.ts"); + var hookTarget = Path.Combine(root, "dist", "host-hook.js"); + Console.WriteLine("Bundle ElectronHostHook ..."); + CmdExecute($"npm start -- --outfile={hookTarget}", electronhosthookDir); + } + } + public static int CmdExecute(string command, string workingDirectoryPath, bool output = true, bool waitForExit = true) { using (Process cmd = new Process()) { - bool isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows); + var isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows); if (isWindows) { diff --git a/src/ElectronNET.Host/.gitignore b/src/ElectronNET.Host/.gitignore index 9e87c054..76add878 100644 --- a/src/ElectronNET.Host/.gitignore +++ b/src/ElectronNET.Host/.gitignore @@ -1,2 +1,2 @@ node_modules -bin \ No newline at end of file +dist \ No newline at end of file diff --git a/src/ElectronNET.Host/.vscode/launch.json b/src/ElectronNET.Host/.vscode/launch.json index fb126aee..0d9d6206 100644 --- a/src/ElectronNET.Host/.vscode/launch.json +++ b/src/ElectronNET.Host/.vscode/launch.json @@ -9,7 +9,7 @@ "request": "launch", "name": "Launch Electron App", "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", - "program": "${workspaceFolder}/main.js", + "program": "${workspaceFolder}/dist/main.js", "sourceMaps": true, "args": [ "--test=true", @@ -20,7 +20,7 @@ "type": "node", "request": "launch", "name": "Launch build-helper", - "program": "${workspaceFolder}/build-helper.js", + "program": "${workspaceFolder}/dist/build-helper.js", "skipFiles": [ "/**" ], diff --git a/src/ElectronNET.Host/ElectronHostHook/.gitignore b/src/ElectronNET.Host/ElectronHostHook/.gitignore deleted file mode 100644 index 3da6e16f..00000000 --- a/src/ElectronNET.Host/ElectronHostHook/.gitignore +++ /dev/null @@ -1,91 +0,0 @@ - -# Created by https://www.gitignore.io/api/node -# Edit at https://www.gitignore.io/?templates=node - -### Node ### -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env -.env.test - -# parcel-bundler cache (https://parceljs.org/) -.cache - -# next.js build output -.next - -# nuxt.js build output -.nuxt - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# End of https://www.gitignore.io/api/node \ No newline at end of file diff --git a/src/ElectronNET.Host/ElectronHostHook/connector.js b/src/ElectronNET.Host/ElectronHostHook/connector.js deleted file mode 100644 index 5e5a0e81..00000000 --- a/src/ElectronNET.Host/ElectronHostHook/connector.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Connector = void 0; -class Connector { - constructor(socket, - // @ts-ignore - app) { - this.socket = socket; - this.app = app; - } - on(key, javaScriptCode) { - this.socket.on(key, (...args) => { - const id = args.pop(); - try { - javaScriptCode(...args, (data) => { - if (data) { - this.socket.emit(`${key}Complete${id}`, data); - } - }); - } - catch (error) { - this.socket.emit(`${key}Error${id}`, `Host Hook Exception`, error); - } - }); - } -} -exports.Connector = Connector; -//# sourceMappingURL=connector.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/ElectronHostHook/connector.js.map b/src/ElectronNET.Host/ElectronHostHook/connector.js.map deleted file mode 100644 index be84b690..00000000 --- a/src/ElectronNET.Host/ElectronHostHook/connector.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"connector.js","sourceRoot":"","sources":["connector.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAClB,YAAoB,MAAuB;IACvC,aAAa;IACN,GAAiB;QAFR,WAAM,GAAN,MAAM,CAAiB;QAEhC,QAAG,GAAH,GAAG,CAAc;IAAI,CAAC;IAEjC,EAAE,CAAC,GAAW,EAAE,cAAwB;QACpC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACnC,MAAM,EAAE,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;YAE9B,IAAI;gBACA,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC7B,IAAI,IAAI,EAAE;wBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;qBACjD;gBACL,CAAC,CAAC,CAAC;aACN;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;aACtE;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AApBD,8BAoBC"} \ No newline at end of file diff --git a/src/ElectronNET.Host/ElectronHostHook/connector.ts b/src/ElectronNET.Host/ElectronHostHook/connector.ts deleted file mode 100644 index 8cd217b2..00000000 --- a/src/ElectronNET.Host/ElectronHostHook/connector.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Socket } from 'socket.io'; - -export class Connector { - constructor(private socket: Socket, - // @ts-ignore - public app: Electron.App) { } - - on(key: string, javaScriptCode: Function): void { - this.socket.on(key, (...args: any[]) => { - const id: string = args.pop(); - - try { - javaScriptCode(...args, (data) => { - if (data) { - this.socket.emit(`${key}Complete${id}`, data); - } - }); - } catch (error) { - this.socket.emit(`${key}Error${id}`, `Host Hook Exception`, error); - } - }); - } -} diff --git a/src/ElectronNET.Host/ElectronHostHook/index.js b/src/ElectronNET.Host/ElectronHostHook/index.js deleted file mode 100644 index 813f7a15..00000000 --- a/src/ElectronNET.Host/ElectronHostHook/index.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.HookService = void 0; -const connector_1 = require("./connector"); -class HookService extends connector_1.Connector { - constructor(socket, app) { - super(socket, app); - this.app = app; - } - onHostReady() { - // execute your own JavaScript Host logic here - } -} -exports.HookService = HookService; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/ElectronHostHook/index.js.map b/src/ElectronNET.Host/ElectronHostHook/index.js.map deleted file mode 100644 index 868dd903..00000000 --- a/src/ElectronNET.Host/ElectronHostHook/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAEA,2CAAwC;AAExC,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;IAClD,CAAC;CACJ;AARD,kCAQC"} \ No newline at end of file diff --git a/src/ElectronNET.Host/ElectronHostHook/index.ts b/src/ElectronNET.Host/ElectronHostHook/index.ts deleted file mode 100644 index ce930436..00000000 --- a/src/ElectronNET.Host/ElectronHostHook/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -// @ts-ignore -import * as Electron from "electron"; -import { Socket } from "socket.io"; -import { Connector } from "./connector"; - -export class HookService extends Connector { - constructor(socket: Socket, public app: Electron.App) { - super(socket, app); - } - - onHostReady(): void { - // execute your own JavaScript Host logic here - } -} diff --git a/src/ElectronNET.Host/ElectronHostHook/package-lock.json b/src/ElectronNET.Host/ElectronHostHook/package-lock.json deleted file mode 100644 index 373eefec..00000000 --- a/src/ElectronNET.Host/ElectronHostHook/package-lock.json +++ /dev/null @@ -1,441 +0,0 @@ -{ - "name": "electron-host-hook", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "electron-host-hook", - "version": "1.0.0", - "license": "MIT", - "devDependencies": { - "socket.io": "^4.6.1", - "typescript": "^5.0.2" - } - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true - }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true - }, - "node_modules/@types/cors": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", - "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "18.15.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.5.tgz", - "integrity": "sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==", - "dev": true - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true, - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/engine.io": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.1.tgz", - "integrity": "sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==", - "dev": true, - "dependencies": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.11.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/engine.io-parser": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", - "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/socket.io": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", - "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.2", - "engine.io": "~6.4.1", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", - "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", - "dev": true, - "dependencies": { - "ws": "~8.11.0" - } - }, - "node_modules/socket.io-parser": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", - "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", - "dev": true, - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/typescript": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz", - "integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - } - }, - "dependencies": { - "@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true - }, - "@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true - }, - "@types/cors": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", - "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "18.15.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.5.tgz", - "integrity": "sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==", - "dev": true - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true - }, - "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "engine.io": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.1.tgz", - "integrity": "sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==", - "dev": true, - "requires": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.11.0" - } - }, - "engine.io-parser": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", - "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", - "dev": true - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "socket.io": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", - "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.2", - "engine.io": "~6.4.1", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.1" - } - }, - "socket.io-adapter": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", - "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", - "dev": true, - "requires": { - "ws": "~8.11.0" - } - }, - "socket.io-parser": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", - "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", - "dev": true, - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - } - }, - "typescript": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz", - "integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true - }, - "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "requires": {} - } - } -} diff --git a/src/ElectronNET.Host/ElectronHostHook/tsconfig.json b/src/ElectronNET.Host/ElectronHostHook/tsconfig.json deleted file mode 100644 index 01f4d55f..00000000 --- a/src/ElectronNET.Host/ElectronHostHook/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "sourceMap": true, - "skipLibCheck": true, - "target": "es2015" - }, - "exclude": [ - "node_modules" - ] -} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/app.js b/src/ElectronNET.Host/api/app.js deleted file mode 100644 index 783b204a..00000000 --- a/src/ElectronNET.Host/api/app.js +++ /dev/null @@ -1,252 +0,0 @@ -"use strict"; -let isQuitWindowAllClosed = true, electronSocket; -let appWindowAllClosedEventId; -module.exports = (socket, app) => { - electronSocket = socket; - // By default, quit when all windows are closed - app.on('window-all-closed', () => { - // On macOS it is common for applications and their menu bar - // to stay active until the user quits explicitly with Cmd + Q - if (process.platform !== 'darwin' && isQuitWindowAllClosed) { - app.quit(); - } - else if (appWindowAllClosedEventId) { - // If the user is on macOS - // - OR - - // If the user has indicated NOT to quit when all windows are closed, - // emit the event. - electronSocket.emit('app-window-all-closed' + appWindowAllClosedEventId); - } - }); - socket.on('quit-app-window-all-closed-event', (quit) => { - isQuitWindowAllClosed = quit; - }); - socket.on('register-app-window-all-closed-event', (id) => { - appWindowAllClosedEventId = id; - }); - socket.on('register-app-before-quit-event', (id) => { - app.on('before-quit', (event) => { - event.preventDefault(); - electronSocket.emit('app-before-quit' + id); - }); - }); - socket.on('register-app-will-quit-event', (id) => { - app.on('will-quit', (event) => { - event.preventDefault(); - electronSocket.emit('app-will-quit' + id); - }); - }); - socket.on('register-app-browser-window-blur-event', (id) => { - app.on('browser-window-blur', () => { - electronSocket.emit('app-browser-window-blur' + id); - }); - }); - socket.on('register-app-browser-window-focus-event', (id) => { - app.on('browser-window-focus', () => { - electronSocket.emit('app-browser-window-focus' + id); - }); - }); - socket.on('register-app-browser-window-created-event', (id) => { - app.on('browser-window-created', () => { - electronSocket.emit('app-browser-window-created' + id); - }); - }); - socket.on('register-app-web-contents-created-event', (id) => { - app.on('web-contents-created', () => { - electronSocket.emit('app-web-contents-created' + id); - }); - }); - socket.on('register-app-accessibility-support-changed-event', (id) => { - app.on('accessibility-support-changed', (event, accessibilitySupportEnabled) => { - electronSocket.emit('app-accessibility-support-changed' + id, accessibilitySupportEnabled); - }); - }); - socket.on('appQuit', () => { - app.quit(); - }); - socket.on('appExit', (exitCode = 0) => { - app.exit(exitCode); - }); - socket.on('appRelaunch', (options) => { - app.relaunch(options); - }); - socket.on('appFocus', (options) => { - app.focus(options); - }); - socket.on('appHide', () => { - app.hide(); - }); - socket.on('appShow', () => { - app.show(); - }); - socket.on('appGetAppPath', () => { - const path = app.getAppPath(); - electronSocket.emit('appGetAppPathCompleted', path); - }); - socket.on('appSetAppLogsPath', (path) => { - app.setAppLogsPath(path); - }); - socket.on('appGetPath', (name) => { - const path = app.getPath(name); - electronSocket.emit('appGetPathCompleted', path); - }); - socket.on('appGetFileIcon', async (path, options) => { - let error = {}; - if (options) { - const nativeImage = await app.getFileIcon(path, options).catch((errorFileIcon) => error = errorFileIcon); - electronSocket.emit('appGetFileIconCompleted', [error, nativeImage]); - } - else { - const nativeImage = await app.getFileIcon(path).catch((errorFileIcon) => error = errorFileIcon); - electronSocket.emit('appGetFileIconCompleted', [error, nativeImage]); - } - }); - socket.on('appSetPath', (name, path) => { - app.setPath(name, path); - }); - socket.on('appGetVersion', () => { - const version = app.getVersion(); - electronSocket.emit('appGetVersionCompleted', version); - }); - socket.on('appGetName', () => { - electronSocket.emit('appGetNameCompleted', app.name); - }); - socket.on('appSetName', (name) => { - app.name = name; - }); - socket.on('appGetLocale', () => { - const locale = app.getLocale(); - electronSocket.emit('appGetLocaleCompleted', locale); - }); - socket.on('appAddRecentDocument', (path) => { - app.addRecentDocument(path); - }); - socket.on('appClearRecentDocuments', () => { - app.clearRecentDocuments(); - }); - socket.on('appSetAsDefaultProtocolClient', (protocol, path, args) => { - const success = app.setAsDefaultProtocolClient(protocol, path, args); - electronSocket.emit('appSetAsDefaultProtocolClientCompleted', success); - }); - socket.on('appRemoveAsDefaultProtocolClient', (protocol, path, args) => { - const success = app.removeAsDefaultProtocolClient(protocol, path, args); - electronSocket.emit('appRemoveAsDefaultProtocolClientCompleted', success); - }); - socket.on('appIsDefaultProtocolClient', (protocol, path, args) => { - const success = app.isDefaultProtocolClient(protocol, path, args); - electronSocket.emit('appIsDefaultProtocolClientCompleted', success); - }); - socket.on('appSetUserTasks', (tasks) => { - const success = app.setUserTasks(tasks); - electronSocket.emit('appSetUserTasksCompleted', success); - }); - socket.on('appGetJumpListSettings', () => { - const jumpListSettings = app.getJumpListSettings(); - electronSocket.emit('appGetJumpListSettingsCompleted', jumpListSettings); - }); - socket.on('appSetJumpList', (categories) => { - app.setJumpList(categories); - }); - socket.on('appRequestSingleInstanceLock', () => { - const success = app.requestSingleInstanceLock(); - electronSocket.emit('appRequestSingleInstanceLockCompleted', success); - app.on('second-instance', (event, args = [], workingDirectory = '') => { - electronSocket.emit('secondInstance', [args, workingDirectory]); - }); - }); - socket.on('appHasSingleInstanceLock', () => { - const hasLock = app.hasSingleInstanceLock(); - electronSocket.emit('appHasSingleInstanceLockCompleted', hasLock); - }); - socket.on('appReleaseSingleInstanceLock', () => { - app.releaseSingleInstanceLock(); - }); - socket.on('appSetUserActivity', (type, userInfo, webpageUrl) => { - app.setUserActivity(type, userInfo, webpageUrl); - }); - socket.on('appGetCurrentActivityType', () => { - const activityType = app.getCurrentActivityType(); - electronSocket.emit('appGetCurrentActivityTypeCompleted', activityType); - }); - socket.on('appInvalidateCurrentActivity', () => { - app.invalidateCurrentActivity(); - }); - socket.on('appResignCurrentActivity', () => { - app.resignCurrentActivity(); - }); - socket.on('appSetAppUserModelId', (id) => { - app.setAppUserModelId(id); - }); - socket.on('appImportCertificate', (options) => { - app.importCertificate(options, (result) => { - electronSocket.emit('appImportCertificateCompleted', result); - }); - }); - socket.on('appGetAppMetrics', () => { - const processMetrics = app.getAppMetrics(); - electronSocket.emit('appGetAppMetricsCompleted', processMetrics); - }); - socket.on('appGetGpuFeatureStatus', () => { - const gpuFeatureStatus = app.getGPUFeatureStatus(); - electronSocket.emit('appGetGpuFeatureStatusCompleted', gpuFeatureStatus); - }); - socket.on('appSetBadgeCount', (count) => { - const success = app.setBadgeCount(count); - electronSocket.emit('appSetBadgeCountCompleted', success); - }); - socket.on('appGetBadgeCount', () => { - const count = app.getBadgeCount(); - electronSocket.emit('appGetBadgeCountCompleted', count); - }); - socket.on('appIsUnityRunning', () => { - const isUnityRunning = app.isUnityRunning(); - electronSocket.emit('appIsUnityRunningCompleted', isUnityRunning); - }); - socket.on('appGetLoginItemSettings', (options) => { - const loginItemSettings = app.getLoginItemSettings(options); - electronSocket.emit('appGetLoginItemSettingsCompleted', loginItemSettings); - }); - socket.on('appSetLoginItemSettings', (settings) => { - app.setLoginItemSettings(settings); - }); - socket.on('appIsAccessibilitySupportEnabled', () => { - const isAccessibilitySupportEnabled = app.isAccessibilitySupportEnabled(); - electronSocket.emit('appIsAccessibilitySupportEnabledCompleted', isAccessibilitySupportEnabled); - }); - socket.on('appSetAccessibilitySupportEnabled', (enabled) => { - app.setAccessibilitySupportEnabled(enabled); - }); - socket.on('appShowAboutPanel', () => { - app.showAboutPanel(); - }); - socket.on('appSetAboutPanelOptions', (options) => { - app.setAboutPanelOptions(options); - }); - socket.on('appGetUserAgentFallback', () => { - electronSocket.emit('appGetUserAgentFallbackCompleted', app.userAgentFallback); - }); - socket.on('appSetUserAgentFallback', (userAgent) => { - app.userAgentFallback = userAgent; - }); - socket.on('register-app-on-event', (eventName, listenerName) => { - app.on(eventName, (...args) => { - if (args.length > 1) { - electronSocket.emit(listenerName, args[1]); - } - else { - electronSocket.emit(listenerName); - } - }); - }); - socket.on('register-app-once-event', (eventName, listenerName) => { - app.once(eventName, (...args) => { - if (args.length > 1) { - electronSocket.emit(listenerName, args[1]); - } - else { - electronSocket.emit(listenerName); - } - }); - }); -}; -//# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/app.js.map b/src/ElectronNET.Host/api/app.js.map deleted file mode 100644 index 25e66972..00000000 --- a/src/ElectronNET.Host/api/app.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"app.js","sourceRoot":"","sources":["app.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/app.ts b/src/ElectronNET.Host/api/app.ts deleted file mode 100644 index 1f04f9f0..00000000 --- a/src/ElectronNET.Host/api/app.ts +++ /dev/null @@ -1,312 +0,0 @@ -import { Socket } from "net"; - -let isQuitWindowAllClosed = true, electronSocket; -let appWindowAllClosedEventId; -export = (socket: Socket, app: Electron.App) => { - electronSocket = socket; - - // By default, quit when all windows are closed - app.on('window-all-closed', () => { - // On macOS it is common for applications and their menu bar - // to stay active until the user quits explicitly with Cmd + Q - if (process.platform !== 'darwin' && isQuitWindowAllClosed) { - app.quit(); - } else if (appWindowAllClosedEventId) { - // If the user is on macOS - // - OR - - // If the user has indicated NOT to quit when all windows are closed, - // emit the event. - electronSocket.emit('app-window-all-closed' + appWindowAllClosedEventId); - } - }); - - socket.on('quit-app-window-all-closed-event', (quit) => { - isQuitWindowAllClosed = quit; - }); - - socket.on('register-app-window-all-closed-event', (id) => { - appWindowAllClosedEventId = id; - }); - - socket.on('register-app-before-quit-event', (id) => { - app.on('before-quit', (event) => { - event.preventDefault(); - - electronSocket.emit('app-before-quit' + id); - }); - }); - - socket.on('register-app-will-quit-event', (id) => { - app.on('will-quit', (event) => { - event.preventDefault(); - - electronSocket.emit('app-will-quit' + id); - }); - }); - - socket.on('register-app-browser-window-blur-event', (id) => { - app.on('browser-window-blur', () => { - electronSocket.emit('app-browser-window-blur' + id); - }); - }); - - socket.on('register-app-browser-window-focus-event', (id) => { - app.on('browser-window-focus', () => { - electronSocket.emit('app-browser-window-focus' + id); - }); - }); - - socket.on('register-app-browser-window-created-event', (id) => { - app.on('browser-window-created', () => { - electronSocket.emit('app-browser-window-created' + id); - }); - }); - - socket.on('register-app-web-contents-created-event', (id) => { - app.on('web-contents-created', () => { - electronSocket.emit('app-web-contents-created' + id); - }); - }); - - socket.on('register-app-accessibility-support-changed-event', (id) => { - app.on('accessibility-support-changed', (event, accessibilitySupportEnabled) => { - electronSocket.emit('app-accessibility-support-changed' + id, accessibilitySupportEnabled); - }); - }); - - socket.on('appQuit', () => { - app.quit(); - }); - - socket.on('appExit', (exitCode = 0) => { - app.exit(exitCode); - }); - - socket.on('appRelaunch', (options) => { - app.relaunch(options); - }); - - socket.on('appFocus', (options) => { - app.focus(options); - }); - - socket.on('appHide', () => { - app.hide(); - }); - - socket.on('appShow', () => { - app.show(); - }); - - socket.on('appGetAppPath', () => { - const path = app.getAppPath(); - electronSocket.emit('appGetAppPathCompleted', path); - }); - - socket.on('appSetAppLogsPath', (path) => { - app.setAppLogsPath(path); - }); - - socket.on('appGetPath', (name) => { - const path = app.getPath(name); - electronSocket.emit('appGetPathCompleted', path); - }); - - socket.on('appGetFileIcon', async (path, options) => { - let error = {}; - - if (options) { - const nativeImage = await app.getFileIcon(path, options).catch((errorFileIcon) => error = errorFileIcon); - - electronSocket.emit('appGetFileIconCompleted', [error, nativeImage]); - } else { - const nativeImage = await app.getFileIcon(path).catch((errorFileIcon) => error = errorFileIcon); - - electronSocket.emit('appGetFileIconCompleted', [error, nativeImage]); - } - }); - - socket.on('appSetPath', (name, path) => { - app.setPath(name, path); - }); - - socket.on('appGetVersion', () => { - const version = app.getVersion(); - electronSocket.emit('appGetVersionCompleted', version); - }); - - socket.on('appGetName', () => { - electronSocket.emit('appGetNameCompleted', app.name); - }); - - socket.on('appSetName', (name) => { - app.name = name; - }); - - socket.on('appGetLocale', () => { - const locale = app.getLocale(); - electronSocket.emit('appGetLocaleCompleted', locale); - }); - - socket.on('appAddRecentDocument', (path) => { - app.addRecentDocument(path); - }); - - socket.on('appClearRecentDocuments', () => { - app.clearRecentDocuments(); - }); - - socket.on('appSetAsDefaultProtocolClient', (protocol, path, args) => { - const success = app.setAsDefaultProtocolClient(protocol, path, args); - electronSocket.emit('appSetAsDefaultProtocolClientCompleted', success); - }); - - socket.on('appRemoveAsDefaultProtocolClient', (protocol, path, args) => { - const success = app.removeAsDefaultProtocolClient(protocol, path, args); - electronSocket.emit('appRemoveAsDefaultProtocolClientCompleted', success); - }); - - socket.on('appIsDefaultProtocolClient', (protocol, path, args) => { - const success = app.isDefaultProtocolClient(protocol, path, args); - electronSocket.emit('appIsDefaultProtocolClientCompleted', success); - }); - - socket.on('appSetUserTasks', (tasks) => { - const success = app.setUserTasks(tasks); - electronSocket.emit('appSetUserTasksCompleted', success); - }); - - socket.on('appGetJumpListSettings', () => { - const jumpListSettings = app.getJumpListSettings(); - electronSocket.emit('appGetJumpListSettingsCompleted', jumpListSettings); - }); - - socket.on('appSetJumpList', (categories) => { - app.setJumpList(categories); - }); - - socket.on('appRequestSingleInstanceLock', () => { - const success = app.requestSingleInstanceLock(); - electronSocket.emit('appRequestSingleInstanceLockCompleted', success); - - app.on('second-instance', (event, args = [], workingDirectory = '') => { - electronSocket.emit('secondInstance', [args, workingDirectory]); - }); - }); - - socket.on('appHasSingleInstanceLock', () => { - const hasLock = app.hasSingleInstanceLock(); - - electronSocket.emit('appHasSingleInstanceLockCompleted', hasLock); - }); - - socket.on('appReleaseSingleInstanceLock', () => { - app.releaseSingleInstanceLock(); - }); - - socket.on('appSetUserActivity', (type, userInfo, webpageUrl) => { - app.setUserActivity(type, userInfo, webpageUrl); - }); - - socket.on('appGetCurrentActivityType', () => { - const activityType = app.getCurrentActivityType(); - electronSocket.emit('appGetCurrentActivityTypeCompleted', activityType); - }); - - socket.on('appInvalidateCurrentActivity', () => { - app.invalidateCurrentActivity(); - }); - - socket.on('appResignCurrentActivity', () => { - app.resignCurrentActivity(); - }); - - socket.on('appSetAppUserModelId', (id) => { - app.setAppUserModelId(id); - }); - - socket.on('appImportCertificate', (options) => { - app.importCertificate(options, (result) => { - electronSocket.emit('appImportCertificateCompleted', result); - }); - }); - - socket.on('appGetAppMetrics', () => { - const processMetrics = app.getAppMetrics(); - electronSocket.emit('appGetAppMetricsCompleted', processMetrics); - }); - - socket.on('appGetGpuFeatureStatus', () => { - const gpuFeatureStatus = app.getGPUFeatureStatus(); - electronSocket.emit('appGetGpuFeatureStatusCompleted', gpuFeatureStatus); - }); - - socket.on('appSetBadgeCount', (count) => { - const success = app.setBadgeCount(count); - electronSocket.emit('appSetBadgeCountCompleted', success); - }); - - socket.on('appGetBadgeCount', () => { - const count = app.getBadgeCount(); - electronSocket.emit('appGetBadgeCountCompleted', count); - }); - - socket.on('appIsUnityRunning', () => { - const isUnityRunning = app.isUnityRunning(); - electronSocket.emit('appIsUnityRunningCompleted', isUnityRunning); - }); - - socket.on('appGetLoginItemSettings', (options) => { - const loginItemSettings = app.getLoginItemSettings(options); - electronSocket.emit('appGetLoginItemSettingsCompleted', loginItemSettings); - }); - - socket.on('appSetLoginItemSettings', (settings) => { - app.setLoginItemSettings(settings); - }); - - socket.on('appIsAccessibilitySupportEnabled', () => { - const isAccessibilitySupportEnabled = app.isAccessibilitySupportEnabled(); - electronSocket.emit('appIsAccessibilitySupportEnabledCompleted', isAccessibilitySupportEnabled); - }); - - socket.on('appSetAccessibilitySupportEnabled', (enabled) => { - app.setAccessibilitySupportEnabled(enabled); - }); - - socket.on('appShowAboutPanel', () => { - app.showAboutPanel(); - }); - - socket.on('appSetAboutPanelOptions', (options) => { - app.setAboutPanelOptions(options); - }); - - socket.on('appGetUserAgentFallback', () => { - electronSocket.emit('appGetUserAgentFallbackCompleted', app.userAgentFallback); - }); - - socket.on('appSetUserAgentFallback', (userAgent) => { - app.userAgentFallback = userAgent; - }); - - socket.on('register-app-on-event', (eventName, listenerName) => { - app.on(eventName, (...args) => { - if (args.length > 1) { - electronSocket.emit(listenerName, args[1]); - } else { - electronSocket.emit(listenerName); - } - }); - }); - - socket.on('register-app-once-event', (eventName, listenerName) => { - app.once(eventName, (...args) => { - if (args.length > 1) { - electronSocket.emit(listenerName, args[1]); - } else { - electronSocket.emit(listenerName); - } - }); - }); -}; diff --git a/src/ElectronNET.Host/api/autoUpdater.js b/src/ElectronNET.Host/api/autoUpdater.js deleted file mode 100644 index 3ba69caa..00000000 --- a/src/ElectronNET.Host/api/autoUpdater.js +++ /dev/null @@ -1,114 +0,0 @@ -"use strict"; -const electron_updater_1 = require("electron-updater"); -let electronSocket; -module.exports = (socket) => { - electronSocket = socket; - socket.on('register-autoUpdater-error-event', (id) => { - electron_updater_1.autoUpdater.on('error', (error) => { - electronSocket.emit('autoUpdater-error' + id, error.message); - }); - }); - socket.on('register-autoUpdater-checking-for-update-event', (id) => { - electron_updater_1.autoUpdater.on('checking-for-update', () => { - electronSocket.emit('autoUpdater-checking-for-update' + id); - }); - }); - socket.on('register-autoUpdater-update-available-event', (id) => { - electron_updater_1.autoUpdater.on('update-available', (updateInfo) => { - electronSocket.emit('autoUpdater-update-available' + id, updateInfo); - }); - }); - socket.on('register-autoUpdater-update-not-available-event', (id) => { - electron_updater_1.autoUpdater.on('update-not-available', (updateInfo) => { - electronSocket.emit('autoUpdater-update-not-available' + id, updateInfo); - }); - }); - socket.on('register-autoUpdater-download-progress-event', (id) => { - electron_updater_1.autoUpdater.on('download-progress', (progressInfo) => { - electronSocket.emit('autoUpdater-download-progress' + id, progressInfo); - }); - }); - socket.on('register-autoUpdater-update-downloaded-event', (id) => { - electron_updater_1.autoUpdater.on('update-downloaded', (updateInfo) => { - electronSocket.emit('autoUpdater-update-downloaded' + id, updateInfo); - }); - }); - // Properties ***** - socket.on('autoUpdater-autoDownload-get', () => { - electronSocket.emit('autoUpdater-autoDownload-get-reply', electron_updater_1.autoUpdater.autoDownload); - }); - socket.on('autoUpdater-autoDownload-set', (value) => { - electron_updater_1.autoUpdater.autoDownload = value; - }); - socket.on('autoUpdater-autoInstallOnAppQuit-get', () => { - electronSocket.emit('autoUpdater-autoInstallOnAppQuit-get-reply', electron_updater_1.autoUpdater.autoInstallOnAppQuit); - }); - socket.on('autoUpdater-autoInstallOnAppQuit-set', (value) => { - electron_updater_1.autoUpdater.autoInstallOnAppQuit = value; - }); - socket.on('autoUpdater-allowPrerelease-get', () => { - electronSocket.emit('autoUpdater-allowPrerelease-get-reply', electron_updater_1.autoUpdater.allowPrerelease); - }); - socket.on('autoUpdater-allowPrerelease-set', (value) => { - electron_updater_1.autoUpdater.allowPrerelease = value; - }); - socket.on('autoUpdater-fullChangelog-get', () => { - electronSocket.emit('autoUpdater-fullChangelog-get-reply', electron_updater_1.autoUpdater.fullChangelog); - }); - socket.on('autoUpdater-fullChangelog-set', (value) => { - electron_updater_1.autoUpdater.fullChangelog = value; - }); - socket.on('autoUpdater-allowDowngrade-get', () => { - electronSocket.emit('autoUpdater-allowDowngrade-get-reply', electron_updater_1.autoUpdater.allowDowngrade); - }); - socket.on('autoUpdater-allowDowngrade-set', (value) => { - electron_updater_1.autoUpdater.allowDowngrade = value; - }); - socket.on('autoUpdater-updateConfigPath-get', () => { - electronSocket.emit('autoUpdater-updateConfigPath-get-reply', electron_updater_1.autoUpdater.updateConfigPath || ''); - }); - socket.on('autoUpdater-updateConfigPath-set', (value) => { - electron_updater_1.autoUpdater.updateConfigPath = value; - }); - socket.on('autoUpdater-currentVersion-get', () => { - electronSocket.emit('autoUpdater-currentVersion-get-reply', electron_updater_1.autoUpdater.currentVersion); - }); - socket.on('autoUpdater-channel-get', () => { - electronSocket.emit('autoUpdater-channel-get-reply', electron_updater_1.autoUpdater.channel || ''); - }); - socket.on('autoUpdater-channel-set', (value) => { - electron_updater_1.autoUpdater.channel = value; - }); - socket.on('autoUpdater-requestHeaders-get', () => { - electronSocket.emit('autoUpdater-requestHeaders-get-reply', electron_updater_1.autoUpdater.requestHeaders); - }); - socket.on('autoUpdater-requestHeaders-set', (value) => { - electron_updater_1.autoUpdater.requestHeaders = value; - }); - socket.on('autoUpdaterCheckForUpdatesAndNotify', async (guid) => { - electron_updater_1.autoUpdater.checkForUpdatesAndNotify().then((updateCheckResult) => { - electronSocket.emit('autoUpdaterCheckForUpdatesAndNotifyComplete' + guid, updateCheckResult); - }).catch((error) => { - electronSocket.emit('autoUpdaterCheckForUpdatesAndNotifyError' + guid, error); - }); - }); - socket.on('autoUpdaterCheckForUpdates', async (guid) => { - electron_updater_1.autoUpdater.checkForUpdates().then((updateCheckResult) => { - electronSocket.emit('autoUpdaterCheckForUpdatesComplete' + guid, updateCheckResult); - }).catch((error) => { - electronSocket.emit('autoUpdaterCheckForUpdatesError' + guid, error); - }); - }); - socket.on('autoUpdaterQuitAndInstall', async (isSilent, isForceRunAfter) => { - electron_updater_1.autoUpdater.quitAndInstall(isSilent, isForceRunAfter); - }); - socket.on('autoUpdaterDownloadUpdate', async (guid) => { - const downloadedPath = await electron_updater_1.autoUpdater.downloadUpdate(); - electronSocket.emit('autoUpdaterDownloadUpdateComplete' + guid, downloadedPath); - }); - socket.on('autoUpdaterGetFeedURL', async (guid) => { - const feedUrl = await electron_updater_1.autoUpdater.getFeedURL(); - electronSocket.emit('autoUpdaterGetFeedURLComplete' + guid, feedUrl || ''); - }); -}; -//# sourceMappingURL=autoUpdater.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/autoUpdater.js.map b/src/ElectronNET.Host/api/autoUpdater.js.map deleted file mode 100644 index 3e9bdd2c..00000000 --- a/src/ElectronNET.Host/api/autoUpdater.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"autoUpdater.js","sourceRoot":"","sources":["autoUpdater.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/autoUpdater.ts b/src/ElectronNET.Host/api/autoUpdater.ts deleted file mode 100644 index f72c5d18..00000000 --- a/src/ElectronNET.Host/api/autoUpdater.ts +++ /dev/null @@ -1,143 +0,0 @@ -import { Socket } from 'net'; -import { autoUpdater } from 'electron-updater'; -let electronSocket; - -export = (socket: Socket) => { - electronSocket = socket; - - socket.on('register-autoUpdater-error-event', (id) => { - autoUpdater.on('error', (error) => { - electronSocket.emit('autoUpdater-error' + id, error.message); - }); - }); - - socket.on('register-autoUpdater-checking-for-update-event', (id) => { - autoUpdater.on('checking-for-update', () => { - electronSocket.emit('autoUpdater-checking-for-update' + id); - }); - }); - - socket.on('register-autoUpdater-update-available-event', (id) => { - autoUpdater.on('update-available', (updateInfo) => { - electronSocket.emit('autoUpdater-update-available' + id, updateInfo); - }); - }); - - socket.on('register-autoUpdater-update-not-available-event', (id) => { - autoUpdater.on('update-not-available', (updateInfo) => { - electronSocket.emit('autoUpdater-update-not-available' + id, updateInfo); - }); - }); - - socket.on('register-autoUpdater-download-progress-event', (id) => { - autoUpdater.on('download-progress', (progressInfo) => { - electronSocket.emit('autoUpdater-download-progress' + id, progressInfo); - }); - }); - - socket.on('register-autoUpdater-update-downloaded-event', (id) => { - autoUpdater.on('update-downloaded', (updateInfo) => { - electronSocket.emit('autoUpdater-update-downloaded' + id, updateInfo); - }); - }); - - // Properties ***** - - socket.on('autoUpdater-autoDownload-get', () => { - electronSocket.emit('autoUpdater-autoDownload-get-reply', autoUpdater.autoDownload); - }); - - socket.on('autoUpdater-autoDownload-set', (value) => { - autoUpdater.autoDownload = value; - }); - - socket.on('autoUpdater-autoInstallOnAppQuit-get', () => { - electronSocket.emit('autoUpdater-autoInstallOnAppQuit-get-reply', autoUpdater.autoInstallOnAppQuit); - }); - - socket.on('autoUpdater-autoInstallOnAppQuit-set', (value) => { - autoUpdater.autoInstallOnAppQuit = value; - }); - - socket.on('autoUpdater-allowPrerelease-get', () => { - electronSocket.emit('autoUpdater-allowPrerelease-get-reply', autoUpdater.allowPrerelease); - }); - - socket.on('autoUpdater-allowPrerelease-set', (value) => { - autoUpdater.allowPrerelease = value; - }); - - socket.on('autoUpdater-fullChangelog-get', () => { - electronSocket.emit('autoUpdater-fullChangelog-get-reply', autoUpdater.fullChangelog); - }); - - socket.on('autoUpdater-fullChangelog-set', (value) => { - autoUpdater.fullChangelog = value; - }); - - socket.on('autoUpdater-allowDowngrade-get', () => { - electronSocket.emit('autoUpdater-allowDowngrade-get-reply', autoUpdater.allowDowngrade); - }); - - socket.on('autoUpdater-allowDowngrade-set', (value) => { - autoUpdater.allowDowngrade = value; - }); - - socket.on('autoUpdater-updateConfigPath-get', () => { - electronSocket.emit('autoUpdater-updateConfigPath-get-reply', autoUpdater.updateConfigPath || ''); - }); - - socket.on('autoUpdater-updateConfigPath-set', (value) => { - autoUpdater.updateConfigPath = value; - }); - - socket.on('autoUpdater-currentVersion-get', () => { - electronSocket.emit('autoUpdater-currentVersion-get-reply', autoUpdater.currentVersion); - }); - - socket.on('autoUpdater-channel-get', () => { - electronSocket.emit('autoUpdater-channel-get-reply', autoUpdater.channel || ''); - }); - - socket.on('autoUpdater-channel-set', (value) => { - autoUpdater.channel = value; - }); - - socket.on('autoUpdater-requestHeaders-get', () => { - electronSocket.emit('autoUpdater-requestHeaders-get-reply', autoUpdater.requestHeaders); - }); - - socket.on('autoUpdater-requestHeaders-set', (value) => { - autoUpdater.requestHeaders = value; - }); - - socket.on('autoUpdaterCheckForUpdatesAndNotify', async (guid) => { - autoUpdater.checkForUpdatesAndNotify().then((updateCheckResult) => { - electronSocket.emit('autoUpdaterCheckForUpdatesAndNotifyComplete' + guid, updateCheckResult); - }).catch((error) => { - electronSocket.emit('autoUpdaterCheckForUpdatesAndNotifyError' + guid, error); - }); - }); - - socket.on('autoUpdaterCheckForUpdates', async (guid) => { - autoUpdater.checkForUpdates().then((updateCheckResult) => { - electronSocket.emit('autoUpdaterCheckForUpdatesComplete' + guid, updateCheckResult); - }).catch((error) => { - electronSocket.emit('autoUpdaterCheckForUpdatesError' + guid, error); - }); - }); - - socket.on('autoUpdaterQuitAndInstall', async (isSilent, isForceRunAfter) => { - autoUpdater.quitAndInstall(isSilent, isForceRunAfter); - }); - - socket.on('autoUpdaterDownloadUpdate', async (guid) => { - const downloadedPath = await autoUpdater.downloadUpdate(); - electronSocket.emit('autoUpdaterDownloadUpdateComplete' + guid, downloadedPath); - }); - - socket.on('autoUpdaterGetFeedURL', async (guid) => { - const feedUrl = await autoUpdater.getFeedURL(); - electronSocket.emit('autoUpdaterGetFeedURLComplete' + guid, feedUrl || ''); - }); -}; diff --git a/src/ElectronNET.Host/api/browserView.js b/src/ElectronNET.Host/api/browserView.js deleted file mode 100644 index 17e01897..00000000 --- a/src/ElectronNET.Host/api/browserView.js +++ /dev/null @@ -1,61 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.browserViewMediateService = exports.browserViewApi = void 0; -const electron_1 = require("electron"); -const browserViews = (global['browserViews'] = global['browserViews'] || []); -let browserView, electronSocket; -const proxyToCredentialsMap = (global['proxyToCredentialsMap'] = global['proxyToCredentialsMap'] || []); -const browserViewApi = (socket) => { - electronSocket = socket; - socket.on('createBrowserView', (options) => { - if (!hasOwnChildreen(options, 'webPreferences', 'nodeIntegration')) { - options = { ...options, webPreferences: { nodeIntegration: true, contextIsolation: false } }; - } - browserView = new electron_1.BrowserView(options); - browserView['id'] = browserViews.length + 1; - if (options.proxy) { - browserView.webContents.session.setProxy({ proxyRules: options.proxy }); - } - if (options.proxy && options.proxyCredentials) { - proxyToCredentialsMap[options.proxy] = options.proxyCredentials; - } - browserViews.push(browserView); - electronSocket.emit('BrowserViewCreated', browserView['id']); - }); - socket.on('browserView-getBounds', (id) => { - const bounds = getBrowserViewById(id).getBounds(); - electronSocket.emit('browserView-getBounds-reply', bounds); - }); - socket.on('browserView-setBounds', (id, bounds) => { - getBrowserViewById(id).setBounds(bounds); - }); - socket.on('browserView-setAutoResize', (id, options) => { - getBrowserViewById(id).setAutoResize(options); - }); - socket.on('browserView-setBackgroundColor', (id, color) => { - getBrowserViewById(id).setBackgroundColor(color); - }); - function hasOwnChildreen(obj, ...childNames) { - for (let i = 0; i < childNames.length; i++) { - if (!obj || !obj.hasOwnProperty(childNames[i])) { - return false; - } - obj = obj[childNames[i]]; - } - return true; - } -}; -exports.browserViewApi = browserViewApi; -const browserViewMediateService = (browserViewId) => { - return getBrowserViewById(browserViewId); -}; -exports.browserViewMediateService = browserViewMediateService; -function getBrowserViewById(id) { - for (let index = 0; index < browserViews.length; index++) { - const browserViewItem = browserViews[index]; - if (browserViewItem['id'] === id) { - return browserViewItem; - } - } -} -//# sourceMappingURL=browserView.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/browserView.js.map b/src/ElectronNET.Host/api/browserView.js.map deleted file mode 100644 index 596b53ab..00000000 --- a/src/ElectronNET.Host/api/browserView.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browserView.js","sourceRoot":"","sources":["browserView.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/browserView.ts b/src/ElectronNET.Host/api/browserView.ts deleted file mode 100644 index 5d7a314b..00000000 --- a/src/ElectronNET.Host/api/browserView.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { Socket } from 'net'; -import { BrowserView } from 'electron'; -const browserViews: BrowserView[] = (global['browserViews'] = global['browserViews'] || []) as BrowserView[]; -let browserView: BrowserView, electronSocket; -const proxyToCredentialsMap: { [proxy: string]: string } = (global['proxyToCredentialsMap'] = global['proxyToCredentialsMap'] || []) as { [proxy: string]: string }; - -const browserViewApi = (socket: Socket) => { - electronSocket = socket; - - socket.on('createBrowserView', (options) => { - if (!hasOwnChildreen(options, 'webPreferences', 'nodeIntegration')) { - options = { ...options, webPreferences: { nodeIntegration: true, contextIsolation: false } }; - } - - browserView = new BrowserView(options); - browserView['id'] = browserViews.length + 1; - - if (options.proxy) { - browserView.webContents.session.setProxy({proxyRules: options.proxy}); - } - - if (options.proxy && options.proxyCredentials) { - proxyToCredentialsMap[options.proxy] = options.proxyCredentials; - } - - browserViews.push(browserView); - - electronSocket.emit('BrowserViewCreated', browserView['id']); - }); - - socket.on('browserView-getBounds', (id) => { - const bounds = getBrowserViewById(id).getBounds(); - - electronSocket.emit('browserView-getBounds-reply', bounds); - }); - - socket.on('browserView-setBounds', (id, bounds) => { - getBrowserViewById(id).setBounds(bounds); - }); - - socket.on('browserView-setAutoResize', (id, options) => { - getBrowserViewById(id).setAutoResize(options); - }); - - socket.on('browserView-setBackgroundColor', (id, color) => { - getBrowserViewById(id).setBackgroundColor(color); - }); - - function hasOwnChildreen(obj, ...childNames) { - for (let i = 0; i < childNames.length; i++) { - if (!obj || !obj.hasOwnProperty(childNames[i])) { - return false; - } - obj = obj[childNames[i]]; - } - - return true; - } -}; - -const browserViewMediateService = (browserViewId: number): BrowserView => { - return getBrowserViewById(browserViewId); -}; - -function getBrowserViewById(id: number) { - for (let index = 0; index < browserViews.length; index++) { - const browserViewItem = browserViews[index]; - if (browserViewItem['id'] === id) { - return browserViewItem; - } - } -} - -export { browserViewApi, browserViewMediateService }; diff --git a/src/ElectronNET.Host/api/browserWindows.js b/src/ElectronNET.Host/api/browserWindows.js deleted file mode 100644 index 551b10fd..00000000 --- a/src/ElectronNET.Host/api/browserWindows.js +++ /dev/null @@ -1,595 +0,0 @@ -"use strict"; -const electron_1 = require("electron"); -const browserView_1 = require("./browserView"); -const path = require('path'); -const windows = (global['browserWindows'] = global['browserWindows'] || []); -let readyToShowWindowsIds = []; -let window, lastOptions, electronSocket; -let mainWindowURL; -const proxyToCredentialsMap = (global['proxyToCredentialsMap'] = global['proxyToCredentialsMap'] || []); -module.exports = (socket, app) => { - electronSocket = socket; - app.on('login', (event, webContents, request, authInfo, callback) => { - if (authInfo.isProxy) { - let proxy = `${authInfo.host}:${authInfo.port}`; - if (proxy in proxyToCredentialsMap && proxyToCredentialsMap[proxy].split(':').length === 2) { - event.preventDefault(); - let user = proxyToCredentialsMap[proxy].split(':')[0]; - let pass = proxyToCredentialsMap[proxy].split(':')[1]; - callback(user, pass); - } - } - }); - socket.on('register-browserWindow-ready-to-show', (id) => { - if (readyToShowWindowsIds.includes(id)) { - readyToShowWindowsIds = readyToShowWindowsIds.filter(value => value !== id); - electronSocket.emit('browserWindow-ready-to-show' + id); - } - getWindowById(id).on('ready-to-show', () => { - readyToShowWindowsIds.push(id); - electronSocket.emit('browserWindow-ready-to-show' + id); - }); - }); - 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', (id) => { - getWindowById(id).on('close', () => { - electronSocket.emit('browserWindow-close' + id); - }); - }); - socket.on('register-browserWindow-closed', (id) => { - getWindowById(id).on('closed', () => { - electronSocket.emit('browserWindow-closed' + id); - }); - }); - socket.on('register-browserWindow-session-end', (id) => { - getWindowById(id).on('session-end', () => { - electronSocket.emit('browserWindow-session-end' + id); - }); - }); - socket.on('register-browserWindow-unresponsive', (id) => { - getWindowById(id).on('unresponsive', () => { - electronSocket.emit('browserWindow-unresponsive' + id); - }); - }); - socket.on('register-browserWindow-responsive', (id) => { - getWindowById(id).on('responsive', () => { - electronSocket.emit('browserWindow-responsive' + id); - }); - }); - socket.on('register-browserWindow-blur', (id) => { - getWindowById(id).on('blur', () => { - electronSocket.emit('browserWindow-blur' + id); - }); - }); - socket.on('register-browserWindow-focus', (id) => { - getWindowById(id).on('focus', () => { - electronSocket.emit('browserWindow-focus' + id); - }); - }); - socket.on('register-browserWindow-show', (id) => { - getWindowById(id).on('show', () => { - electronSocket.emit('browserWindow-show' + id); - }); - }); - socket.on('register-browserWindow-hide', (id) => { - getWindowById(id).on('hide', () => { - electronSocket.emit('browserWindow-hide' + id); - }); - }); - socket.on('register-browserWindow-maximize', (id) => { - getWindowById(id).on('maximize', () => { - electronSocket.emit('browserWindow-maximize' + id); - }); - }); - socket.on('register-browserWindow-unmaximize', (id) => { - getWindowById(id).on('unmaximize', () => { - electronSocket.emit('browserWindow-unmaximize' + id); - }); - }); - socket.on('register-browserWindow-minimize', (id) => { - getWindowById(id).on('minimize', () => { - electronSocket.emit('browserWindow-minimize' + id); - }); - }); - socket.on('register-browserWindow-restore', (id) => { - getWindowById(id).on('restore', () => { - electronSocket.emit('browserWindow-restore' + id); - }); - }); - socket.on('register-browserWindow-resize', (id) => { - getWindowById(id).on('resize', () => { - electronSocket.emit('browserWindow-resize' + id); - }); - }); - socket.on('register-browserWindow-move', (id) => { - getWindowById(id).on('move', () => { - electronSocket.emit('browserWindow-move' + id); - }); - }); - socket.on('register-browserWindow-moved', (id) => { - getWindowById(id).on('moved', () => { - electronSocket.emit('browserWindow-moved' + id); - }); - }); - 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', (id) => { - getWindowById(id).on('leave-full-screen', () => { - electronSocket.emit('browserWindow-leave-full-screen' + id); - }); - }); - 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', (id) => { - getWindowById(id).on('leave-html-full-screen', () => { - electronSocket.emit('browserWindow-leave-html-full-screen' + id); - }); - }); - 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-swipe', (id) => { - getWindowById(id).on('swipe', (event, direction) => { - electronSocket.emit('browserWindow-swipe' + id, direction); - }); - }); - socket.on('register-browserWindow-sheet-begin', (id) => { - getWindowById(id).on('sheet-begin', () => { - electronSocket.emit('browserWindow-sheet-begin' + id); - }); - }); - 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', (id) => { - getWindowById(id).on('new-window-for-tab', () => { - electronSocket.emit('browserWindow-new-window-for-tab' + id); - }); - }); - socket.on('createBrowserWindow', (options, loadUrl) => { - if (options.webPreferences && !('nodeIntegration' in options.webPreferences)) { - options = { ...options, webPreferences: { ...options.webPreferences, nodeIntegration: true, contextIsolation: false } }; - } - else if (!options.webPreferences) { - options = { ...options, webPreferences: { nodeIntegration: true, contextIsolation: false } }; - } - // we dont want to recreate the window when watch is ready. - if (app.commandLine.hasSwitch('watch') && app['mainWindowURL'] === loadUrl) { - window = app['mainWindow']; - if (window) { - window.reload(); - windows.push(window); - electronSocket.emit('BrowserWindowCreated', window.id); - return; - } - } - else { - window = new electron_1.BrowserWindow(options); - } - if (options.proxy) { - window.webContents.session.setProxy({ proxyRules: options.proxy }); - } - if (options.proxy && options.proxyCredentials) { - proxyToCredentialsMap[options.proxy] = options.proxyCredentials; - } - window.on('ready-to-show', () => { - if (readyToShowWindowsIds.includes(window.id)) { - readyToShowWindowsIds = readyToShowWindowsIds.filter(value => value !== window.id); - } - else { - readyToShowWindowsIds.push(window.id); - } - }); - lastOptions = options; - 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); - const ids = []; - windows.forEach(x => ids.push(x.id)); - electronSocket.emit('BrowserWindowClosed', ids); - } - } - } - }); - 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) { - window = new electron_1.BrowserWindow(lastOptions); - } - }); - if (loadUrl) { - window.loadURL(loadUrl); - } - if (app.commandLine.hasSwitch('clear-cache') && - app.commandLine.getSwitchValue('clear-cache')) { - window.webContents.session.clearCache(); - console.log('auto clear-cache active for new window.'); - } - // set main window url - if (app['mainWindowURL'] == undefined || app['mainWindowURL'] == "") { - app['mainWindowURL'] = loadUrl; - app['mainWindow'] = window; - } - windows.push(window); - electronSocket.emit('BrowserWindowCreated', window.id); - }); - socket.on('browserWindowDestroy', (id) => { - getWindowById(id).destroy(); - }); - socket.on('browserWindowClose', (id) => { - getWindowById(id).close(); - }); - socket.on('browserWindowFocus', (id) => { - getWindowById(id).focus(); - }); - socket.on('browserWindowBlur', (id) => { - getWindowById(id).blur(); - }); - socket.on('browserWindowIsFocused', (id) => { - const isFocused = getWindowById(id).isFocused(); - electronSocket.emit('browserWindow-isFocused-completed', isFocused); - }); - socket.on('browserWindowIsDestroyed', (id) => { - const isDestroyed = getWindowById(id).isDestroyed(); - electronSocket.emit('browserWindow-isDestroyed-completed', isDestroyed); - }); - socket.on('browserWindowShow', (id) => { - getWindowById(id).show(); - }); - socket.on('browserWindowShowInactive', (id) => { - getWindowById(id).showInactive(); - }); - socket.on('browserWindowHide', (id) => { - getWindowById(id).hide(); - }); - socket.on('browserWindowIsVisible', (id) => { - const isVisible = getWindowById(id).isVisible(); - electronSocket.emit('browserWindow-isVisible-completed', isVisible); - }); - socket.on('browserWindowIsModal', (id) => { - const isModal = getWindowById(id).isModal(); - electronSocket.emit('browserWindow-isModal-completed', isModal); - }); - socket.on('browserWindowMaximize', (id) => { - getWindowById(id).maximize(); - }); - socket.on('browserWindowUnmaximize', (id) => { - getWindowById(id).unmaximize(); - }); - socket.on('browserWindowIsMaximized', (id) => { - const isMaximized = getWindowById(id).isMaximized(); - electronSocket.emit('browserWindow-isMaximized-completed', isMaximized); - }); - socket.on('browserWindowMinimize', (id) => { - getWindowById(id).minimize(); - }); - socket.on('browserWindowRestore', (id) => { - getWindowById(id).restore(); - }); - socket.on('browserWindowIsMinimized', (id) => { - const isMinimized = getWindowById(id).isMinimized(); - electronSocket.emit('browserWindow-isMinimized-completed', isMinimized); - }); - socket.on('browserWindowSetFullScreen', (id, fullscreen) => { - getWindowById(id).setFullScreen(fullscreen); - }); - socket.on('browserWindowIsFullScreen', (id) => { - const isFullScreen = getWindowById(id).isFullScreen(); - electronSocket.emit('browserWindow-isFullScreen-completed', isFullScreen); - }); - socket.on('browserWindowSetAspectRatio', (id, aspectRatio, extraSize) => { - getWindowById(id).setAspectRatio(aspectRatio, extraSize); - }); - socket.on('browserWindowPreviewFile', (id, path, displayname) => { - getWindowById(id).previewFile(path, displayname); - }); - socket.on('browserWindowCloseFilePreview', (id) => { - getWindowById(id).closeFilePreview(); - }); - socket.on('browserWindowSetBounds', (id, bounds, animate) => { - getWindowById(id).setBounds(bounds, animate); - }); - socket.on('browserWindowGetBounds', (id) => { - const rectangle = getWindowById(id).getBounds(); - electronSocket.emit('browserWindow-getBounds-completed', rectangle); - }); - socket.on('browserWindowSetContentBounds', (id, bounds, animate) => { - getWindowById(id).setContentBounds(bounds, animate); - }); - socket.on('browserWindowGetContentBounds', (id) => { - const rectangle = getWindowById(id).getContentBounds(); - electronSocket.emit('browserWindow-getContentBounds-completed', rectangle); - }); - socket.on('browserWindowSetSize', (id, width, height, animate) => { - getWindowById(id).setSize(width, height, animate); - }); - socket.on('browserWindowGetSize', (id) => { - const size = getWindowById(id).getSize(); - electronSocket.emit('browserWindow-getSize-completed', size); - }); - socket.on('browserWindowSetContentSize', (id, width, height, animate) => { - getWindowById(id).setContentSize(width, height, animate); - }); - socket.on('browserWindowGetContentSize', (id) => { - const size = getWindowById(id).getContentSize(); - electronSocket.emit('browserWindow-getContentSize-completed', size); - }); - socket.on('browserWindowSetMinimumSize', (id, width, height) => { - getWindowById(id).setMinimumSize(width, height); - }); - socket.on('browserWindowGetMinimumSize', (id) => { - const size = getWindowById(id).getMinimumSize(); - electronSocket.emit('browserWindow-getMinimumSize-completed', size); - }); - socket.on('browserWindowSetMaximumSize', (id, width, height) => { - getWindowById(id).setMaximumSize(width, height); - }); - socket.on('browserWindowGetMaximumSize', (id) => { - const size = getWindowById(id).getMaximumSize(); - electronSocket.emit('browserWindow-getMaximumSize-completed', size); - }); - socket.on('browserWindowSetResizable', (id, resizable) => { - getWindowById(id).setResizable(resizable); - }); - socket.on('browserWindowIsResizable', (id) => { - const resizable = getWindowById(id).isResizable(); - electronSocket.emit('browserWindow-isResizable-completed', resizable); - }); - socket.on('browserWindowSetMovable', (id, movable) => { - getWindowById(id).setMovable(movable); - }); - socket.on('browserWindowIsMovable', (id) => { - const movable = getWindowById(id).isMovable(); - electronSocket.emit('browserWindow-isMovable-completed', movable); - }); - socket.on('browserWindowSetMinimizable', (id, minimizable) => { - getWindowById(id).setMinimizable(minimizable); - }); - socket.on('browserWindowIsMinimizable', (id) => { - const minimizable = getWindowById(id).isMinimizable(); - electronSocket.emit('browserWindow-isMinimizable-completed', minimizable); - }); - socket.on('browserWindowSetMaximizable', (id, maximizable) => { - getWindowById(id).setMaximizable(maximizable); - }); - socket.on('browserWindowIsMaximizable', (id) => { - const maximizable = getWindowById(id).isMaximizable(); - electronSocket.emit('browserWindow-isMaximizable-completed', maximizable); - }); - socket.on('browserWindowSetFullScreenable', (id, fullscreenable) => { - getWindowById(id).setFullScreenable(fullscreenable); - }); - socket.on('browserWindowIsFullScreenable', (id) => { - const fullscreenable = getWindowById(id).isFullScreenable(); - electronSocket.emit('browserWindow-isFullScreenable-completed', fullscreenable); - }); - socket.on('browserWindowSetClosable', (id, closable) => { - getWindowById(id).setClosable(closable); - }); - socket.on('browserWindowIsClosable', (id) => { - const closable = getWindowById(id).isClosable(); - electronSocket.emit('browserWindow-isClosable-completed', closable); - }); - socket.on('browserWindowSetAlwaysOnTop', (id, flag, level, relativeLevel) => { - getWindowById(id).setAlwaysOnTop(flag, level, relativeLevel); - }); - socket.on('browserWindowIsAlwaysOnTop', (id) => { - const isAlwaysOnTop = getWindowById(id).isAlwaysOnTop(); - electronSocket.emit('browserWindow-isAlwaysOnTop-completed', isAlwaysOnTop); - }); - socket.on('browserWindowCenter', (id) => { - getWindowById(id).center(); - }); - socket.on('browserWindowSetPosition', (id, x, y, animate) => { - getWindowById(id).setPosition(x, y, animate); - }); - socket.on('browserWindowGetPosition', (id) => { - const position = getWindowById(id).getPosition(); - electronSocket.emit('browserWindow-getPosition-completed', position); - }); - socket.on('browserWindowSetTitle', (id, title) => { - getWindowById(id).setTitle(title); - }); - socket.on('browserWindowGetTitle', (id) => { - const title = getWindowById(id).getTitle(); - electronSocket.emit('browserWindow-getTitle-completed', title); - }); - socket.on('browserWindowSetTitle', (id, title) => { - getWindowById(id).setTitle(title); - }); - socket.on('browserWindowSetSheetOffset', (id, offsetY, offsetX) => { - if (offsetX) { - getWindowById(id).setSheetOffset(offsetY, offsetX); - } - else { - getWindowById(id).setSheetOffset(offsetY); - } - }); - socket.on('browserWindowFlashFrame', (id, flag) => { - getWindowById(id).flashFrame(flag); - }); - socket.on('browserWindowSetSkipTaskbar', (id, skip) => { - getWindowById(id).setSkipTaskbar(skip); - }); - socket.on('browserWindowSetKiosk', (id, flag) => { - getWindowById(id).setKiosk(flag); - }); - socket.on('browserWindowIsKiosk', (id) => { - const isKiosk = getWindowById(id).isKiosk(); - electronSocket.emit('browserWindow-isKiosk-completed', isKiosk); - }); - socket.on('browserWindowGetNativeWindowHandle', (id) => { - const nativeWindowHandle = getWindowById(id).getNativeWindowHandle().readInt32LE(0).toString(16); - electronSocket.emit('browserWindow-getNativeWindowHandle-completed', nativeWindowHandle); - }); - socket.on('browserWindowSetRepresentedFilename', (id, filename) => { - getWindowById(id).setRepresentedFilename(filename); - }); - socket.on('browserWindowGetRepresentedFilename', (id) => { - const pathname = getWindowById(id).getRepresentedFilename(); - electronSocket.emit('browserWindow-getRepresentedFilename-completed', pathname); - }); - socket.on('browserWindowSetDocumentEdited', (id, edited) => { - getWindowById(id).setDocumentEdited(edited); - }); - socket.on('browserWindowIsDocumentEdited', (id) => { - const edited = getWindowById(id).isDocumentEdited(); - electronSocket.emit('browserWindow-isDocumentEdited-completed', edited); - }); - socket.on('browserWindowFocusOnWebView', (id) => { - getWindowById(id).focusOnWebView(); - }); - socket.on('browserWindowBlurWebView', (id) => { - getWindowById(id).blurWebView(); - }); - socket.on('browserWindowLoadURL', (id, url, options) => { - getWindowById(id).loadURL(url, options); - }); - socket.on('browserWindowReload', (id) => { - getWindowById(id).reload(); - }); - socket.on('browserWindowSetMenu', (id, menuItems) => { - let menu = null; - if (menuItems) { - menu = electron_1.Menu.buildFromTemplate(menuItems); - addMenuItemClickConnector(menu.items, (id) => { - electronSocket.emit('windowMenuItemClicked', id); - }); - } - getWindowById(id).setMenu(menu); - }); - socket.on('browserWindowRemoveMenu', (id) => { - getWindowById(id).removeMenu(); - }); - function addMenuItemClickConnector(menuItems, callback) { - menuItems.forEach((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); }; - } - }); - } - socket.on('browserWindowSetProgressBar', (id, progress) => { - getWindowById(id).setProgressBar(progress); - }); - socket.on('browserWindowSetProgressBar', (id, progress, options) => { - getWindowById(id).setProgressBar(progress, options); - }); - socket.on('browserWindowSetHasShadow', (id, hasShadow) => { - getWindowById(id).setHasShadow(hasShadow); - }); - socket.on('browserWindowHasShadow', (id) => { - const 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()); - thumbarButton.icon = electron_1.nativeImage.createFromPath(imagePath); - thumbarButton.click = () => { - electronSocket.emit('thumbarButtonClicked', thumbarButton['id']); - }; - }); - const success = getWindowById(id).setThumbarButtons(thumbarButtons); - electronSocket.emit('browserWindowSetThumbarButtons-completed', success); - }); - socket.on('browserWindowSetThumbnailClip', (id, rectangle) => { - getWindowById(id).setThumbnailClip(rectangle); - }); - socket.on('browserWindowSetThumbnailToolTip', (id, toolTip) => { - getWindowById(id).setThumbnailToolTip(toolTip); - }); - socket.on('browserWindowSetAppDetails', (id, options) => { - getWindowById(id).setAppDetails(options); - }); - socket.on('browserWindowShowDefinitionForSelection', (id) => { - getWindowById(id).showDefinitionForSelection(); - }); - socket.on('browserWindowSetAutoHideMenuBar', (id, hide) => { - getWindowById(id).setAutoHideMenuBar(hide); - }); - socket.on('browserWindowIsMenuBarAutoHide', (id) => { - const isMenuBarAutoHide = getWindowById(id).isMenuBarAutoHide(); - electronSocket.emit('browserWindow-isMenuBarAutoHide-completed', isMenuBarAutoHide); - }); - socket.on('browserWindowSetMenuBarVisibility', (id, visible) => { - getWindowById(id).setMenuBarVisibility(visible); - }); - socket.on('browserWindowIsMenuBarVisible', (id) => { - const isMenuBarVisible = getWindowById(id).isMenuBarVisible(); - electronSocket.emit('browserWindow-isMenuBarVisible-completed', isMenuBarVisible); - }); - socket.on('browserWindowSetVisibleOnAllWorkspaces', (id, visible) => { - getWindowById(id).setVisibleOnAllWorkspaces(visible); - }); - socket.on('browserWindowIsVisibleOnAllWorkspaces', (id) => { - const isVisibleOnAllWorkspaces = getWindowById(id).isVisibleOnAllWorkspaces(); - electronSocket.emit('browserWindow-isVisibleOnAllWorkspaces-completed', isVisibleOnAllWorkspaces); - }); - socket.on('browserWindowSetIgnoreMouseEvents', (id, ignore) => { - getWindowById(id).setIgnoreMouseEvents(ignore); - }); - socket.on('browserWindowSetContentProtection', (id, enable) => { - getWindowById(id).setContentProtection(enable); - }); - socket.on('browserWindowSetFocusable', (id, focusable) => { - getWindowById(id).setFocusable(focusable); - }); - socket.on('browserWindowSetParentWindow', (id, parent) => { - const browserWindow = electron_1.BrowserWindow.fromId(parent.id); - getWindowById(id).setParentWindow(browserWindow); - }); - socket.on('browserWindowGetParentWindow', (id) => { - const 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 => { - ids.push(x.id); - }); - electronSocket.emit('browserWindow-getChildWindows-completed', ids); - }); - socket.on('browserWindowSetAutoHideCursor', (id, autoHide) => { - getWindowById(id).setAutoHideCursor(autoHide); - }); - socket.on('browserWindowSetVibrancy', (id, type) => { - getWindowById(id).setVibrancy(type); - }); - socket.on('browserWindow-setBrowserView', (id, browserViewId) => { - getWindowById(id).setBrowserView((0, browserView_1.browserViewMediateService)(browserViewId)); - }); - function getWindowById(id) { - 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/src/ElectronNET.Host/api/browserWindows.js.map b/src/ElectronNET.Host/api/browserWindows.js.map deleted file mode 100644 index ea5862a6..00000000 --- a/src/ElectronNET.Host/api/browserWindows.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browserWindows.js","sourceRoot":"","sources":["browserWindows.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/browserWindows.ts b/src/ElectronNET.Host/api/browserWindows.ts deleted file mode 100644 index a6a56a56..00000000 --- a/src/ElectronNET.Host/api/browserWindows.ts +++ /dev/null @@ -1,767 +0,0 @@ -import { Socket } from 'net'; -import { BrowserWindow, Menu, nativeImage } from 'electron'; -import { browserViewMediateService } from './browserView'; -const path = require('path'); -const windows: Electron.BrowserWindow[] = (global['browserWindows'] = global['browserWindows'] || []) as Electron.BrowserWindow[]; -let readyToShowWindowsIds: number[] = []; -let window, lastOptions, electronSocket; -let mainWindowURL; -const proxyToCredentialsMap: { [proxy: string]: string } = (global['proxyToCredentialsMap'] = global['proxyToCredentialsMap'] || []) as { [proxy: string]: string }; - -export = (socket: Socket, app: Electron.App) => { - electronSocket = socket; - - app.on('login', (event, webContents, request, authInfo, callback) => { - if (authInfo.isProxy) { - let proxy = `${authInfo.host}:${authInfo.port}` - if (proxy in proxyToCredentialsMap && proxyToCredentialsMap[proxy].split(':').length === 2) { - event.preventDefault() - let user = proxyToCredentialsMap[proxy].split(':')[0] - let pass = proxyToCredentialsMap[proxy].split(':')[1] - callback(user, pass) - } - } - }) - - socket.on('register-browserWindow-ready-to-show', (id) => { - if (readyToShowWindowsIds.includes(id)) { - readyToShowWindowsIds = readyToShowWindowsIds.filter(value => value !== id); - electronSocket.emit('browserWindow-ready-to-show' + id); - } - - getWindowById(id).on('ready-to-show', () => { - readyToShowWindowsIds.push(id); - electronSocket.emit('browserWindow-ready-to-show' + id); - }); - }); - - 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', (id) => { - getWindowById(id).on('close', () => { - electronSocket.emit('browserWindow-close' + id); - }); - }); - - socket.on('register-browserWindow-closed', (id) => { - getWindowById(id).on('closed', () => { - electronSocket.emit('browserWindow-closed' + id); - }); - }); - - socket.on('register-browserWindow-session-end', (id) => { - getWindowById(id).on('session-end', () => { - electronSocket.emit('browserWindow-session-end' + id); - }); - }); - - socket.on('register-browserWindow-unresponsive', (id) => { - getWindowById(id).on('unresponsive', () => { - electronSocket.emit('browserWindow-unresponsive' + id); - }); - }); - - socket.on('register-browserWindow-responsive', (id) => { - getWindowById(id).on('responsive', () => { - electronSocket.emit('browserWindow-responsive' + id); - }); - }); - - socket.on('register-browserWindow-blur', (id) => { - getWindowById(id).on('blur', () => { - electronSocket.emit('browserWindow-blur' + id); - }); - }); - - socket.on('register-browserWindow-focus', (id) => { - getWindowById(id).on('focus', () => { - electronSocket.emit('browserWindow-focus' + id); - }); - }); - - socket.on('register-browserWindow-show', (id) => { - getWindowById(id).on('show', () => { - electronSocket.emit('browserWindow-show' + id); - }); - }); - - socket.on('register-browserWindow-hide', (id) => { - getWindowById(id).on('hide', () => { - electronSocket.emit('browserWindow-hide' + id); - }); - }); - - socket.on('register-browserWindow-maximize', (id) => { - getWindowById(id).on('maximize', () => { - electronSocket.emit('browserWindow-maximize' + id); - }); - }); - - socket.on('register-browserWindow-unmaximize', (id) => { - getWindowById(id).on('unmaximize', () => { - electronSocket.emit('browserWindow-unmaximize' + id); - }); - }); - - socket.on('register-browserWindow-minimize', (id) => { - getWindowById(id).on('minimize', () => { - electronSocket.emit('browserWindow-minimize' + id); - }); - }); - - socket.on('register-browserWindow-restore', (id) => { - getWindowById(id).on('restore', () => { - electronSocket.emit('browserWindow-restore' + id); - }); - }); - - socket.on('register-browserWindow-resize', (id) => { - getWindowById(id).on('resize', () => { - electronSocket.emit('browserWindow-resize' + id); - }); - }); - - socket.on('register-browserWindow-move', (id) => { - getWindowById(id).on('move', () => { - electronSocket.emit('browserWindow-move' + id); - }); - }); - - socket.on('register-browserWindow-moved', (id) => { - getWindowById(id).on('moved', () => { - electronSocket.emit('browserWindow-moved' + id); - }); - }); - - 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', (id) => { - getWindowById(id).on('leave-full-screen', () => { - electronSocket.emit('browserWindow-leave-full-screen' + id); - }); - }); - - 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', (id) => { - getWindowById(id).on('leave-html-full-screen', () => { - electronSocket.emit('browserWindow-leave-html-full-screen' + id); - }); - }); - - 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-swipe', (id) => { - getWindowById(id).on('swipe', (event, direction) => { - electronSocket.emit('browserWindow-swipe' + id, direction); - }); - }); - - socket.on('register-browserWindow-sheet-begin', (id) => { - getWindowById(id).on('sheet-begin', () => { - electronSocket.emit('browserWindow-sheet-begin' + id); - }); - }); - - 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', (id) => { - getWindowById(id).on('new-window-for-tab', () => { - electronSocket.emit('browserWindow-new-window-for-tab' + id); - }); - }); - - socket.on('createBrowserWindow', (options, loadUrl) => { - if (options.webPreferences && !('nodeIntegration' in options.webPreferences)) { - options = { ...options, webPreferences: { ...options.webPreferences, nodeIntegration: true, contextIsolation: false } }; - } else if (!options.webPreferences) { - options = { ...options, webPreferences: { nodeIntegration: true, contextIsolation: false } }; - } - - // we dont want to recreate the window when watch is ready. - if (app.commandLine.hasSwitch('watch') && app['mainWindowURL'] === loadUrl) { - window = app['mainWindow']; - if (window) { - window.reload(); - windows.push(window); - electronSocket.emit('BrowserWindowCreated', window.id); - return; - } - } else { - window = new BrowserWindow(options); - } - - if (options.proxy) { - window.webContents.session.setProxy({proxyRules: options.proxy}); - } - - if (options.proxy && options.proxyCredentials) { - proxyToCredentialsMap[options.proxy] = options.proxyCredentials; - } - - window.on('ready-to-show', () => { - if (readyToShowWindowsIds.includes(window.id)) { - readyToShowWindowsIds = readyToShowWindowsIds.filter(value => value !== window.id); - } else { - readyToShowWindowsIds.push(window.id); - } - }); - - lastOptions = options; - - 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); - - const ids = []; - windows.forEach(x => ids.push(x.id)); - electronSocket.emit('BrowserWindowClosed', ids); - } - } - } - }); - - 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) { - window = new BrowserWindow(lastOptions); - } - }); - - if (loadUrl) { - window.loadURL(loadUrl); - } - - if (app.commandLine.hasSwitch('clear-cache') && - app.commandLine.getSwitchValue('clear-cache')) { - window.webContents.session.clearCache(); - console.log('auto clear-cache active for new window.'); - } - - // set main window url - if (app['mainWindowURL'] == undefined || app['mainWindowURL'] == "") { - app['mainWindowURL'] = loadUrl; - app['mainWindow'] = window; - } - - windows.push(window); - electronSocket.emit('BrowserWindowCreated', window.id); - }); - - socket.on('browserWindowDestroy', (id) => { - getWindowById(id).destroy(); - }); - - socket.on('browserWindowClose', (id) => { - getWindowById(id).close(); - }); - - socket.on('browserWindowFocus', (id) => { - getWindowById(id).focus(); - }); - - socket.on('browserWindowBlur', (id) => { - getWindowById(id).blur(); - }); - - socket.on('browserWindowIsFocused', (id) => { - const isFocused = getWindowById(id).isFocused(); - - electronSocket.emit('browserWindow-isFocused-completed', isFocused); - }); - - socket.on('browserWindowIsDestroyed', (id) => { - const isDestroyed = getWindowById(id).isDestroyed(); - - electronSocket.emit('browserWindow-isDestroyed-completed', isDestroyed); - }); - - socket.on('browserWindowShow', (id) => { - getWindowById(id).show(); - }); - - socket.on('browserWindowShowInactive', (id) => { - getWindowById(id).showInactive(); - }); - - socket.on('browserWindowHide', (id) => { - getWindowById(id).hide(); - }); - - socket.on('browserWindowIsVisible', (id) => { - const isVisible = getWindowById(id).isVisible(); - - electronSocket.emit('browserWindow-isVisible-completed', isVisible); - }); - - socket.on('browserWindowIsModal', (id) => { - const isModal = getWindowById(id).isModal(); - - electronSocket.emit('browserWindow-isModal-completed', isModal); - }); - - socket.on('browserWindowMaximize', (id) => { - getWindowById(id).maximize(); - }); - - socket.on('browserWindowUnmaximize', (id) => { - getWindowById(id).unmaximize(); - }); - - socket.on('browserWindowIsMaximized', (id) => { - const isMaximized = getWindowById(id).isMaximized(); - - electronSocket.emit('browserWindow-isMaximized-completed', isMaximized); - }); - - socket.on('browserWindowMinimize', (id) => { - getWindowById(id).minimize(); - }); - - socket.on('browserWindowRestore', (id) => { - getWindowById(id).restore(); - }); - - socket.on('browserWindowIsMinimized', (id) => { - const isMinimized = getWindowById(id).isMinimized(); - - electronSocket.emit('browserWindow-isMinimized-completed', isMinimized); - }); - - socket.on('browserWindowSetFullScreen', (id, fullscreen) => { - getWindowById(id).setFullScreen(fullscreen); - }); - - socket.on('browserWindowIsFullScreen', (id) => { - const isFullScreen = getWindowById(id).isFullScreen(); - - electronSocket.emit('browserWindow-isFullScreen-completed', isFullScreen); - }); - - socket.on('browserWindowSetAspectRatio', (id, aspectRatio, extraSize) => { - getWindowById(id).setAspectRatio(aspectRatio, extraSize); - }); - - socket.on('browserWindowPreviewFile', (id, path, displayname) => { - getWindowById(id).previewFile(path, displayname); - }); - - socket.on('browserWindowCloseFilePreview', (id) => { - getWindowById(id).closeFilePreview(); - }); - - socket.on('browserWindowSetBounds', (id, bounds, animate) => { - getWindowById(id).setBounds(bounds, animate); - }); - - socket.on('browserWindowGetBounds', (id) => { - const rectangle = getWindowById(id).getBounds(); - - electronSocket.emit('browserWindow-getBounds-completed', rectangle); - }); - - socket.on('browserWindowSetContentBounds', (id, bounds, animate) => { - getWindowById(id).setContentBounds(bounds, animate); - }); - - socket.on('browserWindowGetContentBounds', (id) => { - const rectangle = getWindowById(id).getContentBounds(); - - electronSocket.emit('browserWindow-getContentBounds-completed', rectangle); - }); - - socket.on('browserWindowSetSize', (id, width, height, animate) => { - getWindowById(id).setSize(width, height, animate); - }); - - socket.on('browserWindowGetSize', (id) => { - const size = getWindowById(id).getSize(); - - electronSocket.emit('browserWindow-getSize-completed', size); - }); - - socket.on('browserWindowSetContentSize', (id, width, height, animate) => { - getWindowById(id).setContentSize(width, height, animate); - }); - - socket.on('browserWindowGetContentSize', (id) => { - const size = getWindowById(id).getContentSize(); - - electronSocket.emit('browserWindow-getContentSize-completed', size); - }); - - socket.on('browserWindowSetMinimumSize', (id, width, height) => { - getWindowById(id).setMinimumSize(width, height); - }); - - socket.on('browserWindowGetMinimumSize', (id) => { - const size = getWindowById(id).getMinimumSize(); - - electronSocket.emit('browserWindow-getMinimumSize-completed', size); - }); - - socket.on('browserWindowSetMaximumSize', (id, width, height) => { - getWindowById(id).setMaximumSize(width, height); - }); - - socket.on('browserWindowGetMaximumSize', (id) => { - const size = getWindowById(id).getMaximumSize(); - - electronSocket.emit('browserWindow-getMaximumSize-completed', size); - }); - - socket.on('browserWindowSetResizable', (id, resizable) => { - getWindowById(id).setResizable(resizable); - }); - - socket.on('browserWindowIsResizable', (id) => { - const resizable = getWindowById(id).isResizable(); - - electronSocket.emit('browserWindow-isResizable-completed', resizable); - }); - - socket.on('browserWindowSetMovable', (id, movable) => { - getWindowById(id).setMovable(movable); - }); - - socket.on('browserWindowIsMovable', (id) => { - const movable = getWindowById(id).isMovable(); - - electronSocket.emit('browserWindow-isMovable-completed', movable); - }); - - socket.on('browserWindowSetMinimizable', (id, minimizable) => { - getWindowById(id).setMinimizable(minimizable); - }); - - socket.on('browserWindowIsMinimizable', (id) => { - const minimizable = getWindowById(id).isMinimizable(); - - electronSocket.emit('browserWindow-isMinimizable-completed', minimizable); - }); - - socket.on('browserWindowSetMaximizable', (id, maximizable) => { - getWindowById(id).setMaximizable(maximizable); - }); - - socket.on('browserWindowIsMaximizable', (id) => { - const maximizable = getWindowById(id).isMaximizable(); - - electronSocket.emit('browserWindow-isMaximizable-completed', maximizable); - }); - - socket.on('browserWindowSetFullScreenable', (id, fullscreenable) => { - getWindowById(id).setFullScreenable(fullscreenable); - }); - - socket.on('browserWindowIsFullScreenable', (id) => { - const fullscreenable = getWindowById(id).isFullScreenable(); - - electronSocket.emit('browserWindow-isFullScreenable-completed', fullscreenable); - }); - - socket.on('browserWindowSetClosable', (id, closable) => { - getWindowById(id).setClosable(closable); - }); - - socket.on('browserWindowIsClosable', (id) => { - const closable = getWindowById(id).isClosable(); - - electronSocket.emit('browserWindow-isClosable-completed', closable); - }); - - socket.on('browserWindowSetAlwaysOnTop', (id, flag, level, relativeLevel) => { - getWindowById(id).setAlwaysOnTop(flag, level, relativeLevel); - }); - - socket.on('browserWindowIsAlwaysOnTop', (id) => { - const isAlwaysOnTop = getWindowById(id).isAlwaysOnTop(); - - electronSocket.emit('browserWindow-isAlwaysOnTop-completed', isAlwaysOnTop); - }); - - socket.on('browserWindowCenter', (id) => { - getWindowById(id).center(); - }); - - socket.on('browserWindowSetPosition', (id, x, y, animate) => { - getWindowById(id).setPosition(x, y, animate); - }); - - socket.on('browserWindowGetPosition', (id) => { - const position = getWindowById(id).getPosition(); - - electronSocket.emit('browserWindow-getPosition-completed', position); - }); - - socket.on('browserWindowSetTitle', (id, title) => { - getWindowById(id).setTitle(title); - }); - - socket.on('browserWindowGetTitle', (id) => { - const title = getWindowById(id).getTitle(); - - electronSocket.emit('browserWindow-getTitle-completed', title); - }); - - socket.on('browserWindowSetTitle', (id, title) => { - getWindowById(id).setTitle(title); - }); - - socket.on('browserWindowSetSheetOffset', (id, offsetY, offsetX) => { - if (offsetX) { - getWindowById(id).setSheetOffset(offsetY, offsetX); - } else { - getWindowById(id).setSheetOffset(offsetY); - } - }); - - socket.on('browserWindowFlashFrame', (id, flag) => { - getWindowById(id).flashFrame(flag); - }); - - socket.on('browserWindowSetSkipTaskbar', (id, skip) => { - getWindowById(id).setSkipTaskbar(skip); - }); - - socket.on('browserWindowSetKiosk', (id, flag) => { - getWindowById(id).setKiosk(flag); - }); - - socket.on('browserWindowIsKiosk', (id) => { - const isKiosk = getWindowById(id).isKiosk(); - - electronSocket.emit('browserWindow-isKiosk-completed', isKiosk); - }); - - socket.on('browserWindowGetNativeWindowHandle', (id) => { - const nativeWindowHandle = getWindowById(id).getNativeWindowHandle().readInt32LE(0).toString(16); - electronSocket.emit('browserWindow-getNativeWindowHandle-completed', nativeWindowHandle); - }); - - socket.on('browserWindowSetRepresentedFilename', (id, filename) => { - getWindowById(id).setRepresentedFilename(filename); - }); - - socket.on('browserWindowGetRepresentedFilename', (id) => { - const pathname = getWindowById(id).getRepresentedFilename(); - - electronSocket.emit('browserWindow-getRepresentedFilename-completed', pathname); - }); - - socket.on('browserWindowSetDocumentEdited', (id, edited) => { - getWindowById(id).setDocumentEdited(edited); - }); - - socket.on('browserWindowIsDocumentEdited', (id) => { - const edited = getWindowById(id).isDocumentEdited(); - - electronSocket.emit('browserWindow-isDocumentEdited-completed', edited); - }); - - socket.on('browserWindowFocusOnWebView', (id) => { - getWindowById(id).focusOnWebView(); - }); - - socket.on('browserWindowBlurWebView', (id) => { - getWindowById(id).blurWebView(); - }); - - socket.on('browserWindowLoadURL', (id, url, options) => { - getWindowById(id).loadURL(url, options); - }); - - socket.on('browserWindowReload', (id) => { - getWindowById(id).reload(); - }); - - socket.on('browserWindowSetMenu', (id, menuItems) => { - let menu = null; - - if (menuItems) { - menu = Menu.buildFromTemplate(menuItems); - - addMenuItemClickConnector(menu.items, (id) => { - electronSocket.emit('windowMenuItemClicked', id); - }); - } - - getWindowById(id).setMenu(menu); - }); - - socket.on('browserWindowRemoveMenu', (id) => { - getWindowById(id).removeMenu(); - }); - - function addMenuItemClickConnector(menuItems, callback) { - menuItems.forEach((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); }; - } - }); - } - - socket.on('browserWindowSetProgressBar', (id, progress) => { - getWindowById(id).setProgressBar(progress); - }); - - socket.on('browserWindowSetProgressBar', (id, progress, options) => { - getWindowById(id).setProgressBar(progress, options); - }); - - socket.on('browserWindowSetHasShadow', (id, hasShadow) => { - getWindowById(id).setHasShadow(hasShadow); - }); - - socket.on('browserWindowHasShadow', (id) => { - const hasShadow = getWindowById(id).hasShadow(); - - electronSocket.emit('browserWindow-hasShadow-completed', hasShadow); - }); - - socket.on('browserWindowSetThumbarButtons', (id, thumbarButtons: Electron.ThumbarButton[]) => { - thumbarButtons.forEach(thumbarButton => { - const imagePath = path.join(__dirname.replace('api', ''), 'bin', thumbarButton.icon.toString()); - thumbarButton.icon = nativeImage.createFromPath(imagePath); - thumbarButton.click = () => { - electronSocket.emit('thumbarButtonClicked', thumbarButton['id']); - }; - }); - - const success = getWindowById(id).setThumbarButtons(thumbarButtons); - electronSocket.emit('browserWindowSetThumbarButtons-completed', success); - }); - - socket.on('browserWindowSetThumbnailClip', (id, rectangle) => { - getWindowById(id).setThumbnailClip(rectangle); - }); - - socket.on('browserWindowSetThumbnailToolTip', (id, toolTip) => { - getWindowById(id).setThumbnailToolTip(toolTip); - }); - - socket.on('browserWindowSetAppDetails', (id, options) => { - getWindowById(id).setAppDetails(options); - }); - - socket.on('browserWindowShowDefinitionForSelection', (id) => { - getWindowById(id).showDefinitionForSelection(); - }); - - socket.on('browserWindowSetAutoHideMenuBar', (id, hide) => { - getWindowById(id).setAutoHideMenuBar(hide); - }); - - socket.on('browserWindowIsMenuBarAutoHide', (id) => { - const isMenuBarAutoHide = getWindowById(id).isMenuBarAutoHide(); - - electronSocket.emit('browserWindow-isMenuBarAutoHide-completed', isMenuBarAutoHide); - }); - - socket.on('browserWindowSetMenuBarVisibility', (id, visible) => { - getWindowById(id).setMenuBarVisibility(visible); - }); - - socket.on('browserWindowIsMenuBarVisible', (id) => { - const isMenuBarVisible = getWindowById(id).isMenuBarVisible(); - - electronSocket.emit('browserWindow-isMenuBarVisible-completed', isMenuBarVisible); - }); - - socket.on('browserWindowSetVisibleOnAllWorkspaces', (id, visible) => { - getWindowById(id).setVisibleOnAllWorkspaces(visible); - }); - - socket.on('browserWindowIsVisibleOnAllWorkspaces', (id) => { - const isVisibleOnAllWorkspaces = getWindowById(id).isVisibleOnAllWorkspaces(); - - electronSocket.emit('browserWindow-isVisibleOnAllWorkspaces-completed', isVisibleOnAllWorkspaces); - }); - - socket.on('browserWindowSetIgnoreMouseEvents', (id, ignore) => { - getWindowById(id).setIgnoreMouseEvents(ignore); - }); - - socket.on('browserWindowSetContentProtection', (id, enable) => { - getWindowById(id).setContentProtection(enable); - }); - - socket.on('browserWindowSetFocusable', (id, focusable) => { - getWindowById(id).setFocusable(focusable); - }); - - socket.on('browserWindowSetParentWindow', (id, parent) => { - const browserWindow = BrowserWindow.fromId(parent.id); - - getWindowById(id).setParentWindow(browserWindow); - }); - - socket.on('browserWindowGetParentWindow', (id) => { - const 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 => { - ids.push(x.id); - }); - - electronSocket.emit('browserWindow-getChildWindows-completed', ids); - }); - - socket.on('browserWindowSetAutoHideCursor', (id, autoHide) => { - getWindowById(id).setAutoHideCursor(autoHide); - }); - - socket.on('browserWindowSetVibrancy', (id, type) => { - getWindowById(id).setVibrancy(type); - }); - - socket.on('browserWindow-setBrowserView', (id, browserViewId) => { - getWindowById(id).setBrowserView(browserViewMediateService(browserViewId)); - }); - - function getWindowById(id: number): Electron.BrowserWindow { - for (let index = 0; index < windows.length; index++) { - const element = windows[index]; - if (element.id === id) { - return element; - } - } - } -}; diff --git a/src/ElectronNET.Host/api/clipboard.js b/src/ElectronNET.Host/api/clipboard.js deleted file mode 100644 index f7e7ef10..00000000 --- a/src/ElectronNET.Host/api/clipboard.js +++ /dev/null @@ -1,68 +0,0 @@ -"use strict"; -const electron_1 = require("electron"); -let electronSocket; -module.exports = (socket) => { - electronSocket = socket; - socket.on('clipboard-readText', (type) => { - const text = electron_1.clipboard.readText(type); - electronSocket.emit('clipboard-readText-Completed', text); - }); - socket.on('clipboard-writeText', (text, type) => { - electron_1.clipboard.writeText(text, type); - }); - socket.on('clipboard-readHTML', (type) => { - const content = electron_1.clipboard.readHTML(type); - electronSocket.emit('clipboard-readHTML-Completed', content); - }); - socket.on('clipboard-writeHTML', (markup, type) => { - electron_1.clipboard.writeHTML(markup, type); - }); - socket.on('clipboard-readRTF', (type) => { - const content = electron_1.clipboard.readRTF(type); - electronSocket.emit('clipboard-readRTF-Completed', content); - }); - socket.on('clipboard-writeRTF', (text, type) => { - electron_1.clipboard.writeHTML(text, type); - }); - socket.on('clipboard-readBookmark', () => { - const bookmark = electron_1.clipboard.readBookmark(); - electronSocket.emit('clipboard-readBookmark-Completed', bookmark); - }); - socket.on('clipboard-writeBookmark', (title, url, type) => { - electron_1.clipboard.writeBookmark(title, url, type); - }); - socket.on('clipboard-readFindText', () => { - const content = electron_1.clipboard.readFindText(); - electronSocket.emit('clipboard-readFindText-Completed', content); - }); - socket.on('clipboard-writeFindText', (text) => { - electron_1.clipboard.writeFindText(text); - }); - socket.on('clipboard-clear', (type) => { - electron_1.clipboard.clear(type); - }); - socket.on('clipboard-availableFormats', (type) => { - const formats = electron_1.clipboard.availableFormats(type); - electronSocket.emit('clipboard-availableFormats-Completed', formats); - }); - socket.on('clipboard-write', (data, type) => { - electron_1.clipboard.write(data, type); - }); - socket.on('clipboard-readImage', (type) => { - const image = electron_1.clipboard.readImage(type); - electronSocket.emit('clipboard-readImage-Completed', { 1: image.toPNG().toString('base64') }); - }); - socket.on('clipboard-writeImage', (data, type) => { - const dataContent = JSON.parse(data); - const image = electron_1.nativeImage.createEmpty(); - // tslint:disable-next-line: forin - for (const key in dataContent) { - const scaleFactor = key; - const bytes = data[key]; - const buffer = Buffer.from(bytes, 'base64'); - image.addRepresentation({ scaleFactor: +scaleFactor, buffer: buffer }); - } - electron_1.clipboard.writeImage(image, type); - }); -}; -//# sourceMappingURL=clipboard.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/clipboard.js.map b/src/ElectronNET.Host/api/clipboard.js.map deleted file mode 100644 index c45e255f..00000000 --- a/src/ElectronNET.Host/api/clipboard.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"clipboard.js","sourceRoot":"","sources":["clipboard.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/clipboard.ts b/src/ElectronNET.Host/api/clipboard.ts deleted file mode 100644 index 6a172299..00000000 --- a/src/ElectronNET.Host/api/clipboard.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { Socket } from 'net'; -import { clipboard, nativeImage } from 'electron'; -let electronSocket; - -export = (socket: Socket) => { - electronSocket = socket; - socket.on('clipboard-readText', (type) => { - const text = clipboard.readText(type); - electronSocket.emit('clipboard-readText-Completed', text); - }); - - socket.on('clipboard-writeText', (text, type) => { - clipboard.writeText(text, type); - }); - - socket.on('clipboard-readHTML', (type) => { - const content = clipboard.readHTML(type); - electronSocket.emit('clipboard-readHTML-Completed', content); - }); - - socket.on('clipboard-writeHTML', (markup, type) => { - clipboard.writeHTML(markup, type); - }); - - socket.on('clipboard-readRTF', (type) => { - const content = clipboard.readRTF(type); - electronSocket.emit('clipboard-readRTF-Completed', content); - }); - - socket.on('clipboard-writeRTF', (text, type) => { - clipboard.writeHTML(text, type); - }); - - socket.on('clipboard-readBookmark', () => { - const bookmark = clipboard.readBookmark(); - electronSocket.emit('clipboard-readBookmark-Completed', bookmark); - }); - - socket.on('clipboard-writeBookmark', (title, url, type) => { - clipboard.writeBookmark(title, url, type); - }); - - socket.on('clipboard-readFindText', () => { - const content = clipboard.readFindText(); - electronSocket.emit('clipboard-readFindText-Completed', content); - }); - - socket.on('clipboard-writeFindText', (text) => { - clipboard.writeFindText(text); - }); - - socket.on('clipboard-clear', (type) => { - clipboard.clear(type); - }); - - socket.on('clipboard-availableFormats', (type) => { - const formats = clipboard.availableFormats(type); - electronSocket.emit('clipboard-availableFormats-Completed', formats); - }); - - socket.on('clipboard-write', (data, type) => { - clipboard.write(data, type); - }); - - socket.on('clipboard-readImage', (type) => { - const image = clipboard.readImage(type); - electronSocket.emit('clipboard-readImage-Completed', { 1: image.toPNG().toString('base64') }); - }); - - socket.on('clipboard-writeImage', (data, type) => { - const dataContent = JSON.parse(data); - const image = nativeImage.createEmpty(); - - // tslint:disable-next-line: forin - for (const key in dataContent) { - const scaleFactor = key; - const bytes = data[key]; - const buffer = Buffer.from(bytes, 'base64'); - image.addRepresentation({ scaleFactor: +scaleFactor, buffer: buffer }); - } - - clipboard.writeImage(image, type); - }); -}; diff --git a/src/ElectronNET.Host/api/commandLine.js b/src/ElectronNET.Host/api/commandLine.js deleted file mode 100644 index 527c8b08..00000000 --- a/src/ElectronNET.Host/api/commandLine.js +++ /dev/null @@ -1,20 +0,0 @@ -"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/src/ElectronNET.Host/api/commandLine.js.map b/src/ElectronNET.Host/api/commandLine.js.map deleted file mode 100644 index 7d84909c..00000000 --- a/src/ElectronNET.Host/api/commandLine.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"commandLine.js","sourceRoot":"","sources":["commandLine.ts"],"names":[],"mappings":";AACA,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAc,EAAE,GAAiB,EAAE,EAAE;IAC3C,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/src/ElectronNET.Host/api/commandLine.ts b/src/ElectronNET.Host/api/commandLine.ts deleted file mode 100644 index f206b93e..00000000 --- a/src/ElectronNET.Host/api/commandLine.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Socket } from 'net'; -let electronSocket; - -export = (socket: 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/src/ElectronNET.Host/api/dialog.js b/src/ElectronNET.Host/api/dialog.js deleted file mode 100644 index 20f9572f..00000000 --- a/src/ElectronNET.Host/api/dialog.js +++ /dev/null @@ -1,37 +0,0 @@ -"use strict"; -const electron_1 = require("electron"); -let electronSocket; -module.exports = (socket) => { - electronSocket = socket; - socket.on('showMessageBox', async (browserWindow, options, guid) => { - if ('id' in browserWindow) { - const window = electron_1.BrowserWindow.fromId(browserWindow.id); - const messageBoxReturnValue = await electron_1.dialog.showMessageBox(window, options); - electronSocket.emit('showMessageBoxComplete' + guid, [messageBoxReturnValue.response, messageBoxReturnValue.checkboxChecked]); - } - else { - const id = guid || options; - const messageBoxReturnValue = await electron_1.dialog.showMessageBox(browserWindow); - electronSocket.emit('showMessageBoxComplete' + id, [messageBoxReturnValue.response, messageBoxReturnValue.checkboxChecked]); - } - }); - socket.on('showOpenDialog', async (browserWindow, options, guid) => { - const window = electron_1.BrowserWindow.fromId(browserWindow.id); - const openDialogReturnValue = await electron_1.dialog.showOpenDialog(window, options); - electronSocket.emit('showOpenDialogComplete' + guid, openDialogReturnValue.filePaths || []); - }); - socket.on('showSaveDialog', async (browserWindow, options, guid) => { - const window = electron_1.BrowserWindow.fromId(browserWindow.id); - const saveDialogReturnValue = await 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', async (browserWindow, options, guid) => { - const window = electron_1.BrowserWindow.fromId(browserWindow.id); - await electron_1.dialog.showCertificateTrustDialog(window, options); - electronSocket.emit('showCertificateTrustDialogComplete' + guid); - }); -}; -//# sourceMappingURL=dialog.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/dialog.js.map b/src/ElectronNET.Host/api/dialog.js.map deleted file mode 100644 index 185e223d..00000000 --- a/src/ElectronNET.Host/api/dialog.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"dialog.js","sourceRoot":"","sources":["dialog.ts"],"names":[],"mappings":";AACA,uCAAiD;AACjD,IAAI,cAAsB,CAAC;AAE3B,iBAAS,CAAC,MAAc,EAAE,EAAE;IACxB,cAAc,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,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,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,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,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,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,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,KAAK,EAAE,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,CAAC,CAAC;AACP,CAAC,CAAC"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/dialog.ts b/src/ElectronNET.Host/api/dialog.ts deleted file mode 100644 index 7e331393..00000000 --- a/src/ElectronNET.Host/api/dialog.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { Socket } from 'net'; -import { BrowserWindow, dialog } from 'electron'; -let electronSocket: Socket; - -export = (socket: Socket) => { - electronSocket = socket; - socket.on('showMessageBox', async (browserWindow, options, guid) => { - if ('id' in browserWindow) { - const window = BrowserWindow.fromId(browserWindow.id); - - const messageBoxReturnValue = await dialog.showMessageBox(window, options); - electronSocket.emit('showMessageBoxComplete' + guid, [messageBoxReturnValue.response, messageBoxReturnValue.checkboxChecked]); - } else { - const id = guid || options; - const messageBoxReturnValue = await dialog.showMessageBox(browserWindow); - - electronSocket.emit('showMessageBoxComplete' + id, [messageBoxReturnValue.response, messageBoxReturnValue.checkboxChecked]); - } - }); - - socket.on('showOpenDialog', async (browserWindow, options, guid) => { - const window = BrowserWindow.fromId(browserWindow.id); - const openDialogReturnValue = await dialog.showOpenDialog(window, options); - - electronSocket.emit('showOpenDialogComplete' + guid, openDialogReturnValue.filePaths || []); - }); - - socket.on('showSaveDialog', async (browserWindow, options, guid) => { - const window = BrowserWindow.fromId(browserWindow.id); - 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', async (browserWindow, options, guid) => { - const window = BrowserWindow.fromId(browserWindow.id); - await dialog.showCertificateTrustDialog(window, options); - - electronSocket.emit('showCertificateTrustDialogComplete' + guid); - }); -}; diff --git a/src/ElectronNET.Host/api/dock.js b/src/ElectronNET.Host/api/dock.js deleted file mode 100644 index 7d5010d6..00000000 --- a/src/ElectronNET.Host/api/dock.js +++ /dev/null @@ -1,62 +0,0 @@ -"use strict"; -const electron_1 = require("electron"); -let electronSocket; -module.exports = (socket) => { - electronSocket = socket; - socket.on('dock-bounce', (type) => { - const id = electron_1.app.dock.bounce(type); - electronSocket.emit('dock-bounce-completed', id); - }); - socket.on('dock-cancelBounce', (id) => { - electron_1.app.dock.cancelBounce(id); - }); - socket.on('dock-downloadFinished', (filePath) => { - electron_1.app.dock.downloadFinished(filePath); - }); - socket.on('dock-setBadge', (text) => { - electron_1.app.dock.setBadge(text); - }); - socket.on('dock-getBadge', () => { - const text = electron_1.app.dock.getBadge(); - electronSocket.emit('dock-getBadge-completed', text); - }); - socket.on('dock-hide', () => { - electron_1.app.dock.hide(); - }); - socket.on('dock-show', () => { - electron_1.app.dock.show(); - }); - socket.on('dock-isVisible', () => { - const isVisible = electron_1.app.dock.isVisible(); - electronSocket.emit('dock-isVisible-completed', isVisible); - }); - socket.on('dock-setMenu', (menuItems) => { - let menu = null; - if (menuItems) { - menu = electron_1.Menu.buildFromTemplate(menuItems); - addMenuItemClickConnector(menu.items, (id) => { - electronSocket.emit('dockMenuItemClicked', id); - }); - } - electron_1.app.dock.setMenu(menu); - }); - // TODO: Menu (macOS) still to be implemented - socket.on('dock-getMenu', () => { - const menu = electron_1.app.dock.getMenu(); - electronSocket.emit('dock-getMenu-completed', menu); - }); - socket.on('dock-setIcon', (image) => { - electron_1.app.dock.setIcon(image); - }); - function addMenuItemClickConnector(menuItems, callback) { - menuItems.forEach((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); }; - } - }); - } -}; -//# sourceMappingURL=dock.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/dock.js.map b/src/ElectronNET.Host/api/dock.js.map deleted file mode 100644 index 449d44b6..00000000 --- a/src/ElectronNET.Host/api/dock.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"dock.js","sourceRoot":"","sources":["dock.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/dock.ts b/src/ElectronNET.Host/api/dock.ts deleted file mode 100644 index bf2b908d..00000000 --- a/src/ElectronNET.Host/api/dock.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { Socket } from 'net'; -import { app, Menu } from 'electron'; -let electronSocket; - -export = (socket: Socket) => { - electronSocket = socket; - - socket.on('dock-bounce', (type) => { - const id = app.dock.bounce(type); - electronSocket.emit('dock-bounce-completed', id); - }); - - socket.on('dock-cancelBounce', (id) => { - app.dock.cancelBounce(id); - }); - - socket.on('dock-downloadFinished', (filePath) => { - app.dock.downloadFinished(filePath); - }); - - socket.on('dock-setBadge', (text) => { - app.dock.setBadge(text); - }); - - socket.on('dock-getBadge', () => { - const text = app.dock.getBadge(); - electronSocket.emit('dock-getBadge-completed', text); - }); - - socket.on('dock-hide', () => { - app.dock.hide(); - }); - - socket.on('dock-show', () => { - app.dock.show(); - }); - - socket.on('dock-isVisible', () => { - const isVisible = app.dock.isVisible(); - electronSocket.emit('dock-isVisible-completed', isVisible); - }); - - socket.on('dock-setMenu', (menuItems) => { - let menu = null; - - if (menuItems) { - menu = Menu.buildFromTemplate(menuItems); - - addMenuItemClickConnector(menu.items, (id) => { - electronSocket.emit('dockMenuItemClicked', id); - }); - } - - app.dock.setMenu(menu); - }); - - // TODO: Menu (macOS) still to be implemented - socket.on('dock-getMenu', () => { - const menu = app.dock.getMenu(); - electronSocket.emit('dock-getMenu-completed', menu); - }); - - socket.on('dock-setIcon', (image) => { - app.dock.setIcon(image); - }); - - function addMenuItemClickConnector(menuItems, callback) { - menuItems.forEach((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); }; - } - }); - } -}; diff --git a/src/ElectronNET.Host/api/globalShortcut.js b/src/ElectronNET.Host/api/globalShortcut.js deleted file mode 100644 index dd018d02..00000000 --- a/src/ElectronNET.Host/api/globalShortcut.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; -const electron_1 = require("electron"); -let electronSocket; -module.exports = (socket) => { - electronSocket = socket; - socket.on('globalShortcut-register', (accelerator) => { - electron_1.globalShortcut.register(accelerator, () => { - electronSocket.emit('globalShortcut-pressed', accelerator); - }); - }); - socket.on('globalShortcut-isRegistered', (accelerator) => { - const isRegistered = electron_1.globalShortcut.isRegistered(accelerator); - electronSocket.emit('globalShortcut-isRegisteredCompleted', isRegistered); - }); - socket.on('globalShortcut-unregister', (accelerator) => { - electron_1.globalShortcut.unregister(accelerator); - }); - socket.on('globalShortcut-unregisterAll', () => { - try { - electron_1.globalShortcut.unregisterAll(); - } - catch (error) { } - }); -}; -//# sourceMappingURL=globalShortcut.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/globalShortcut.js.map b/src/ElectronNET.Host/api/globalShortcut.js.map deleted file mode 100644 index bed5642c..00000000 --- a/src/ElectronNET.Host/api/globalShortcut.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"globalShortcut.js","sourceRoot":"","sources":["globalShortcut.ts"],"names":[],"mappings":";AAAA,uCAA0C;AAE1C,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAc,EAAE,EAAE;IACxB,cAAc,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,WAAW,EAAE,EAAE;QACjD,yBAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;YACtC,cAAc,CAAC,IAAI,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,6BAA6B,EAAE,CAAC,WAAW,EAAE,EAAE;QACrD,MAAM,YAAY,GAAG,yBAAc,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAE9D,cAAc,CAAC,IAAI,CAAC,sCAAsC,EAAE,YAAY,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,2BAA2B,EAAE,CAAC,WAAW,EAAE,EAAE;QACnD,yBAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC3C,IAAI;YACA,yBAAc,CAAC,aAAa,EAAE,CAAC;SAClC;QAAC,OAAO,KAAK,EAAE,GAAG;IACvB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/globalShortcut.ts b/src/ElectronNET.Host/api/globalShortcut.ts deleted file mode 100644 index da9e7652..00000000 --- a/src/ElectronNET.Host/api/globalShortcut.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { globalShortcut } from 'electron'; -import { Socket } from 'net'; -let electronSocket; - -export = (socket: Socket) => { - electronSocket = socket; - socket.on('globalShortcut-register', (accelerator) => { - globalShortcut.register(accelerator, () => { - electronSocket.emit('globalShortcut-pressed', accelerator); - }); - }); - - socket.on('globalShortcut-isRegistered', (accelerator) => { - const isRegistered = globalShortcut.isRegistered(accelerator); - - electronSocket.emit('globalShortcut-isRegisteredCompleted', isRegistered); - }); - - socket.on('globalShortcut-unregister', (accelerator) => { - globalShortcut.unregister(accelerator); - }); - - socket.on('globalShortcut-unregisterAll', () => { - try { - globalShortcut.unregisterAll(); - } catch (error) { } - }); -}; diff --git a/src/ElectronNET.Host/api/ipc.js b/src/ElectronNET.Host/api/ipc.js deleted file mode 100644 index 4c18ea83..00000000 --- a/src/ElectronNET.Host/api/ipc.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; -const electron_1 = require("electron"); -let electronSocket; -module.exports = (socket) => { - electronSocket = socket; - socket.on('registerIpcMainChannel', (channel) => { - electron_1.ipcMain.on(channel, (event, args) => { - electronSocket.emit(channel, [event.preventDefault(), args]); - }); - }); - socket.on('registerSyncIpcMainChannel', (channel) => { - electron_1.ipcMain.on(channel, (event, args) => { - const x = socket; - x.removeAllListeners(channel + 'Sync'); - socket.on(channel + 'Sync', (result) => { - event.returnValue = result; - }); - electronSocket.emit(channel, [event.preventDefault(), args]); - }); - }); - socket.on('registerOnceIpcMainChannel', (channel) => { - electron_1.ipcMain.once(channel, (event, args) => { - electronSocket.emit(channel, [event.preventDefault(), args]); - }); - }); - socket.on('removeAllListenersIpcMainChannel', (channel) => { - electron_1.ipcMain.removeAllListeners(channel); - }); - socket.on('sendToIpcRenderer', (browserWindow, channel, ...data) => { - const window = electron_1.BrowserWindow.fromId(browserWindow.id); - if (window) { - window.webContents.send(channel, ...data); - } - }); - socket.on('sendToIpcRendererBrowserView', (id, channel, ...data) => { - const browserViews = (global['browserViews'] = global['browserViews'] || []); - let view = null; - for (let i = 0; i < browserViews.length; i++) { - if (browserViews[i]['id'] === id) { - view = browserViews[i]; - break; - } - } - if (view) { - view.webContents.send(channel, ...data); - } - }); -}; -//# sourceMappingURL=ipc.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/ipc.js.map b/src/ElectronNET.Host/api/ipc.js.map deleted file mode 100644 index 2876296b..00000000 --- a/src/ElectronNET.Host/api/ipc.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ipc.js","sourceRoot":"","sources":["ipc.ts"],"names":[],"mappings":";AAAA,uCAA+D;AAE/D,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAc,EAAE,EAAE;IACxB,cAAc,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,OAAO,EAAE,EAAE;QAC5C,kBAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAChC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,4BAA4B,EAAE,CAAC,OAAO,EAAE,EAAE;QAChD,kBAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAChC,MAAM,CAAC,GAAQ,MAAM,CAAC;YACtB,CAAC,CAAC,kBAAkB,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;YACvC,MAAM,CAAC,EAAE,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBACnC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,4BAA4B,EAAE,CAAC,OAAO,EAAE,EAAE;QAChD,kBAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAClC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,kCAAkC,EAAE,CAAC,OAAO,EAAE,EAAE;QACtD,kBAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;QAC/D,MAAM,MAAM,GAAG,wBAAa,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAEtD,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;SAC7C;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,8BAA8B,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;QAC/D,MAAM,YAAY,GAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAkB,CAAC;QAC7G,IAAI,IAAI,GAAgB,IAAI,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;gBAC9B,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM;aACT;SACJ;QAED,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;SAC3C;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/ipc.ts b/src/ElectronNET.Host/api/ipc.ts deleted file mode 100644 index 801160f6..00000000 --- a/src/ElectronNET.Host/api/ipc.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { ipcMain, BrowserWindow, BrowserView } from 'electron'; -import { Socket } from 'net'; -let electronSocket; - -export = (socket: Socket) => { - electronSocket = socket; - socket.on('registerIpcMainChannel', (channel) => { - ipcMain.on(channel, (event, args) => { - electronSocket.emit(channel, [event.preventDefault(), args]); - }); - }); - - socket.on('registerSyncIpcMainChannel', (channel) => { - ipcMain.on(channel, (event, args) => { - const x = socket; - x.removeAllListeners(channel + 'Sync'); - socket.on(channel + 'Sync', (result) => { - event.returnValue = result; - }); - - electronSocket.emit(channel, [event.preventDefault(), args]); - }); - }); - - socket.on('registerOnceIpcMainChannel', (channel) => { - ipcMain.once(channel, (event, args) => { - electronSocket.emit(channel, [event.preventDefault(), args]); - }); - }); - - socket.on('removeAllListenersIpcMainChannel', (channel) => { - ipcMain.removeAllListeners(channel); - }); - - socket.on('sendToIpcRenderer', (browserWindow, channel, ...data) => { - const window = BrowserWindow.fromId(browserWindow.id); - - if (window) { - window.webContents.send(channel, ...data); - } - }); - - socket.on('sendToIpcRendererBrowserView', (id, channel, ...data) => { - const browserViews: BrowserView[] = (global['browserViews'] = global['browserViews'] || []) as BrowserView[]; - let view: BrowserView = null; - for (let i = 0; i < browserViews.length; i++) { - if (browserViews[i]['id'] === id) { - view = browserViews[i]; - break; - } - } - - if (view) { - view.webContents.send(channel, ...data); - } - }); -}; diff --git a/src/ElectronNET.Host/api/menu.js b/src/ElectronNET.Host/api/menu.js deleted file mode 100644 index 2500036f..00000000 --- a/src/ElectronNET.Host/api/menu.js +++ /dev/null @@ -1,60 +0,0 @@ -"use strict"; -const electron_1 = require("electron"); -const contextMenuItems = (global['contextMenuItems'] = global['contextMenuItems'] || []); -let electronSocket; -module.exports = (socket) => { - electronSocket = socket; - socket.on('menu-setContextMenu', (browserWindowId, menuItems) => { - const menu = electron_1.Menu.buildFromTemplate(menuItems); - addContextMenuItemClickConnector(menu.items, browserWindowId, (id, windowId) => { - electronSocket.emit('contextMenuItemClicked', [id, windowId]); - }); - const index = contextMenuItems.findIndex(contextMenu => contextMenu.browserWindowId === browserWindowId); - const contextMenuItem = { - menu: menu, - browserWindowId: browserWindowId - }; - if (index === -1) { - contextMenuItems.push(contextMenuItem); - } - else { - contextMenuItems[index] = contextMenuItem; - } - }); - function addContextMenuItemClickConnector(menuItems, browserWindowId, callback) { - menuItems.forEach((item) => { - if (item.submenu && item.submenu.items.length > 0) { - addContextMenuItemClickConnector(item.submenu.items, browserWindowId, callback); - } - if ('id' in item && item.id) { - item.click = () => { callback(item.id, browserWindowId); }; - } - }); - } - socket.on('menu-contextMenuPopup', (browserWindowId) => { - contextMenuItems.forEach(x => { - if (x.browserWindowId === browserWindowId) { - const browserWindow = electron_1.BrowserWindow.fromId(browserWindowId); - x.menu.popup(browserWindow); - } - }); - }); - socket.on('menu-setApplicationMenu', (menuItems) => { - const menu = electron_1.Menu.buildFromTemplate(menuItems); - addMenuItemClickConnector(menu.items, (id) => { - electronSocket.emit('menuItemClicked', id); - }); - electron_1.Menu.setApplicationMenu(menu); - }); - function addMenuItemClickConnector(menuItems, callback) { - menuItems.forEach((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); }; - } - }); - } -}; -//# sourceMappingURL=menu.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/menu.js.map b/src/ElectronNET.Host/api/menu.js.map deleted file mode 100644 index 1ad421e4..00000000 --- a/src/ElectronNET.Host/api/menu.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"menu.js","sourceRoot":"","sources":["menu.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/menu.ts b/src/ElectronNET.Host/api/menu.ts deleted file mode 100644 index efadf31d..00000000 --- a/src/ElectronNET.Host/api/menu.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { Socket } from 'net'; -import { Menu, BrowserWindow } from 'electron'; -const contextMenuItems = (global['contextMenuItems'] = global['contextMenuItems'] || []); -let electronSocket; - -export = (socket: Socket) => { - electronSocket = socket; - socket.on('menu-setContextMenu', (browserWindowId, menuItems) => { - const menu = Menu.buildFromTemplate(menuItems); - - addContextMenuItemClickConnector(menu.items, browserWindowId, (id, windowId) => { - electronSocket.emit('contextMenuItemClicked', [id, windowId]); - }); - - const index = contextMenuItems.findIndex(contextMenu => contextMenu.browserWindowId === browserWindowId); - - const contextMenuItem = { - menu: menu, - browserWindowId: browserWindowId - }; - - if (index === -1) { - contextMenuItems.push(contextMenuItem); - } else { - contextMenuItems[index] = contextMenuItem; - } - }); - - function addContextMenuItemClickConnector(menuItems, browserWindowId, callback) { - menuItems.forEach((item) => { - if (item.submenu && item.submenu.items.length > 0) { - addContextMenuItemClickConnector(item.submenu.items, browserWindowId, callback); - } - - if ('id' in item && item.id) { - item.click = () => { callback(item.id, browserWindowId); }; - } - }); - } - - socket.on('menu-contextMenuPopup', (browserWindowId) => { - contextMenuItems.forEach(x => { - if (x.browserWindowId === browserWindowId) { - const browserWindow = BrowserWindow.fromId(browserWindowId); - x.menu.popup(browserWindow); - } - }); - }); - - socket.on('menu-setApplicationMenu', (menuItems) => { - const menu = Menu.buildFromTemplate(menuItems); - - addMenuItemClickConnector(menu.items, (id) => { - electronSocket.emit('menuItemClicked', id); - }); - - Menu.setApplicationMenu(menu); - }); - - function addMenuItemClickConnector(menuItems, callback) { - menuItems.forEach((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); }; - } - }); - } -}; diff --git a/src/ElectronNET.Host/api/nativeTheme.js b/src/ElectronNET.Host/api/nativeTheme.js deleted file mode 100644 index b971f6bb..00000000 --- a/src/ElectronNET.Host/api/nativeTheme.js +++ /dev/null @@ -1,31 +0,0 @@ -"use strict"; -const electron_1 = require("electron"); -let electronSocket; -module.exports = (socket) => { - electronSocket = socket; - socket.on('nativeTheme-shouldUseDarkColors', () => { - const shouldUseDarkColors = electron_1.nativeTheme.shouldUseDarkColors; - electronSocket.emit('nativeTheme-shouldUseDarkColors-completed', shouldUseDarkColors); - }); - socket.on('nativeTheme-shouldUseHighContrastColors', () => { - const shouldUseHighContrastColors = electron_1.nativeTheme.shouldUseHighContrastColors; - electronSocket.emit('nativeTheme-shouldUseHighContrastColors-completed', shouldUseHighContrastColors); - }); - socket.on('nativeTheme-shouldUseInvertedColorScheme', () => { - const shouldUseInvertedColorScheme = electron_1.nativeTheme.shouldUseInvertedColorScheme; - electronSocket.emit('nativeTheme-shouldUseInvertedColorScheme-completed', shouldUseInvertedColorScheme); - }); - socket.on('nativeTheme-themeSource-get', () => { - const themeSource = electron_1.nativeTheme.themeSource; - electronSocket.emit('nativeTheme-themeSource-getCompleted', themeSource); - }); - socket.on('nativeTheme-themeSource', (themeSource) => { - electron_1.nativeTheme.themeSource = themeSource; - }); - socket.on('register-nativeTheme-updated-event', (id) => { - electron_1.nativeTheme.on('updated', () => { - electronSocket.emit('nativeTheme-updated' + id); - }); - }); -}; -//# sourceMappingURL=nativeTheme.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/nativeTheme.js.map b/src/ElectronNET.Host/api/nativeTheme.js.map deleted file mode 100644 index 5f4bfd4d..00000000 --- a/src/ElectronNET.Host/api/nativeTheme.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"nativeTheme.js","sourceRoot":"","sources":["nativeTheme.ts"],"names":[],"mappings":";AACA,uCAAuC;AACvC,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAc,EAAE,EAAE;IACxB,cAAc,GAAG,MAAM,CAAC;IAExB,MAAM,CAAC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC9C,MAAM,mBAAmB,GAAG,sBAAW,CAAC,mBAAmB,CAAC;QAE5D,cAAc,CAAC,IAAI,CAAC,2CAA2C,EAAE,mBAAmB,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACtD,MAAM,2BAA2B,GAAG,sBAAW,CAAC,2BAA2B,CAAC;QAE5E,cAAc,CAAC,IAAI,CAAC,mDAAmD,EAAE,2BAA2B,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACvD,MAAM,4BAA4B,GAAG,sBAAW,CAAC,4BAA4B,CAAC;QAE9E,cAAc,CAAC,IAAI,CAAC,oDAAoD,EAAE,4BAA4B,CAAC,CAAC;IAC5G,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC1C,MAAM,WAAW,GAAG,sBAAW,CAAC,WAAW,CAAC;QAE5C,cAAc,CAAC,IAAI,CAAC,sCAAsC,EAAE,WAAW,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,WAAW,EAAE,EAAE;QACjD,sBAAW,CAAC,WAAW,GAAG,WAAW,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,oCAAoC,EAAE,CAAC,EAAE,EAAE,EAAE;QACnD,sBAAW,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YAC3B,cAAc,CAAC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/nativeTheme.ts b/src/ElectronNET.Host/api/nativeTheme.ts deleted file mode 100644 index 16d22cdc..00000000 --- a/src/ElectronNET.Host/api/nativeTheme.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Socket } from 'net'; -import { nativeTheme } from 'electron'; -let electronSocket; - -export = (socket: Socket) => { - electronSocket = socket; - - socket.on('nativeTheme-shouldUseDarkColors', () => { - const shouldUseDarkColors = nativeTheme.shouldUseDarkColors; - - electronSocket.emit('nativeTheme-shouldUseDarkColors-completed', shouldUseDarkColors); - }); - - socket.on('nativeTheme-shouldUseHighContrastColors', () => { - const shouldUseHighContrastColors = nativeTheme.shouldUseHighContrastColors; - - electronSocket.emit('nativeTheme-shouldUseHighContrastColors-completed', shouldUseHighContrastColors); - }); - - socket.on('nativeTheme-shouldUseInvertedColorScheme', () => { - const shouldUseInvertedColorScheme = nativeTheme.shouldUseInvertedColorScheme; - - electronSocket.emit('nativeTheme-shouldUseInvertedColorScheme-completed', shouldUseInvertedColorScheme); - }); - - socket.on('nativeTheme-themeSource-get', () => { - const themeSource = nativeTheme.themeSource; - - electronSocket.emit('nativeTheme-themeSource-getCompleted', themeSource); - }); - - socket.on('nativeTheme-themeSource', (themeSource) => { - nativeTheme.themeSource = themeSource; - }); - - socket.on('register-nativeTheme-updated-event', (id) => { - nativeTheme.on('updated', () => { - electronSocket.emit('nativeTheme-updated' + id); - }); - }); -}; diff --git a/src/ElectronNET.Host/api/notification.js b/src/ElectronNET.Host/api/notification.js deleted file mode 100644 index 3a575cf2..00000000 --- a/src/ElectronNET.Host/api/notification.js +++ /dev/null @@ -1,50 +0,0 @@ -"use strict"; -const electron_1 = require("electron"); -const notifications = (global['notifications'] = global['notifications'] || []); -let electronSocket; -module.exports = (socket) => { - electronSocket = socket; - socket.on('createNotification', (options) => { - const notification = new electron_1.Notification(options); - let haveEvent = false; - if (options.showID) { - haveEvent = true; - notification.on('show', () => { - electronSocket.emit('NotificationEventShow', options.showID); - }); - } - if (options.clickID) { - haveEvent = true; - notification.on('click', () => { - electronSocket.emit('NotificationEventClick', options.clickID); - }); - } - if (options.closeID) { - haveEvent = true; - notification.on('close', () => { - electronSocket.emit('NotificationEventClose', options.closeID); - }); - } - if (options.replyID) { - haveEvent = true; - notification.on('reply', (event, value) => { - electronSocket.emit('NotificationEventReply', [options.replyID, value]); - }); - } - if (options.actionID) { - haveEvent = true; - notification.on('action', (event, value) => { - electronSocket.emit('NotificationEventAction', [options.actionID, value]); - }); - } - if (haveEvent) { - notifications.push(notification); - } - notification.show(); - }); - socket.on('notificationIsSupported', () => { - const isSupported = electron_1.Notification.isSupported; - electronSocket.emit('notificationIsSupportedComplete', isSupported); - }); -}; -//# sourceMappingURL=notification.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/notification.js.map b/src/ElectronNET.Host/api/notification.js.map deleted file mode 100644 index f6e58d46..00000000 --- a/src/ElectronNET.Host/api/notification.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"notification.js","sourceRoot":"","sources":["notification.ts"],"names":[],"mappings":";AACA,uCAAwC;AACxC,MAAM,aAAa,GAA4B,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAA4B,CAAC;AACpI,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAc,EAAE,EAAE;IACxB,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/src/ElectronNET.Host/api/notification.ts b/src/ElectronNET.Host/api/notification.ts deleted file mode 100644 index 50f1a2d6..00000000 --- a/src/ElectronNET.Host/api/notification.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Socket } from 'net'; -import { Notification } from 'electron'; -const notifications: Electron.Notification[] = (global['notifications'] = global['notifications'] || []) as Electron.Notification[]; -let electronSocket; - -export = (socket: Socket) => { - electronSocket = socket; - socket.on('createNotification', (options) => { - const notification = new Notification(options); - let haveEvent = false; - - if (options.showID) { - haveEvent = true; - notification.on('show', () => { - electronSocket.emit('NotificationEventShow', options.showID); - }); - } - - if (options.clickID) { - haveEvent = true; - notification.on('click', () => { - electronSocket.emit('NotificationEventClick', options.clickID); - }); - } - - if (options.closeID) { - haveEvent = true; - notification.on('close', () => { - electronSocket.emit('NotificationEventClose', options.closeID); - }); - } - - if (options.replyID) { - haveEvent = true; - notification.on('reply', (event, value) => { - electronSocket.emit('NotificationEventReply', [options.replyID, value]); - }); - } - - if (options.actionID) { - haveEvent = true; - notification.on('action', (event, value) => { - electronSocket.emit('NotificationEventAction', [options.actionID, value]); - }); - } - - if (haveEvent) { - notifications.push(notification); - } - - notification.show(); - }); - - socket.on('notificationIsSupported', () => { - const isSupported = Notification.isSupported; - electronSocket.emit('notificationIsSupportedComplete', isSupported); - }); -}; diff --git a/src/ElectronNET.Host/api/powerMonitor.js b/src/ElectronNET.Host/api/powerMonitor.js deleted file mode 100644 index 0b4dd7a6..00000000 --- a/src/ElectronNET.Host/api/powerMonitor.js +++ /dev/null @@ -1,42 +0,0 @@ -"use strict"; -const electron_1 = require("electron"); -let electronSocket; -module.exports = (socket) => { - electronSocket = socket; - socket.on('register-pm-lock-screen', () => { - electron_1.powerMonitor.on('lock-screen', () => { - electronSocket.emit('pm-lock-screen'); - }); - }); - socket.on('register-pm-unlock-screen', () => { - electron_1.powerMonitor.on('unlock-screen', () => { - electronSocket.emit('pm-unlock-screen'); - }); - }); - socket.on('register-pm-suspend', () => { - electron_1.powerMonitor.on('suspend', () => { - electronSocket.emit('pm-suspend'); - }); - }); - socket.on('register-pm-resume', () => { - electron_1.powerMonitor.on('resume', () => { - electronSocket.emit('pm-resume'); - }); - }); - socket.on('register-pm-on-ac', () => { - electron_1.powerMonitor.on('on-ac', () => { - electronSocket.emit('pm-on-ac'); - }); - }); - socket.on('register-pm-on-battery', () => { - electron_1.powerMonitor.on('on-battery', () => { - electronSocket.emit('pm-on-battery'); - }); - }); - socket.on('register-pm-shutdown', () => { - electron_1.powerMonitor.on('shutdown', () => { - electronSocket.emit('pm-shutdown'); - }); - }); -}; -//# sourceMappingURL=powerMonitor.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/powerMonitor.js.map b/src/ElectronNET.Host/api/powerMonitor.js.map deleted file mode 100644 index f83530e0..00000000 --- a/src/ElectronNET.Host/api/powerMonitor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"powerMonitor.js","sourceRoot":"","sources":["powerMonitor.ts"],"names":[],"mappings":";AACA,uCAAwC;AACxC,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAc,EAAE,EAAE;IACxB,cAAc,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACtC,uBAAY,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;YAChC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACxC,uBAAY,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YAClC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAClC,uBAAY,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YAC5B,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QACjC,uBAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC3B,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAChC,uBAAY,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC1B,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACrC,uBAAY,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAC/B,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACnC,uBAAY,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;YAC7B,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/powerMonitor.ts b/src/ElectronNET.Host/api/powerMonitor.ts deleted file mode 100644 index f4c1fd45..00000000 --- a/src/ElectronNET.Host/api/powerMonitor.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Socket } from 'net'; -import { powerMonitor } from 'electron'; -let electronSocket; - -export = (socket: Socket) => { - electronSocket = socket; - socket.on('register-pm-lock-screen', () => { - powerMonitor.on('lock-screen', () => { - electronSocket.emit('pm-lock-screen'); - }); - }); - socket.on('register-pm-unlock-screen', () => { - powerMonitor.on('unlock-screen', () => { - electronSocket.emit('pm-unlock-screen'); - }); - }); - socket.on('register-pm-suspend', () => { - powerMonitor.on('suspend', () => { - electronSocket.emit('pm-suspend'); - }); - }); - socket.on('register-pm-resume', () => { - powerMonitor.on('resume', () => { - electronSocket.emit('pm-resume'); - }); - }); - socket.on('register-pm-on-ac', () => { - powerMonitor.on('on-ac', () => { - electronSocket.emit('pm-on-ac'); - }); - }); - socket.on('register-pm-on-battery', () => { - powerMonitor.on('on-battery', () => { - electronSocket.emit('pm-on-battery'); - }); - }); - socket.on('register-pm-shutdown', () => { - powerMonitor.on('shutdown', () => { - electronSocket.emit('pm-shutdown'); - }); - }); -}; diff --git a/src/ElectronNET.Host/api/screen.js b/src/ElectronNET.Host/api/screen.js deleted file mode 100644 index cfd025a3..00000000 --- a/src/ElectronNET.Host/api/screen.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; -const electron_1 = require("electron"); -let electronSocket; -module.exports = (socket) => { - electronSocket = socket; - socket.on('register-screen-display-added', (id) => { - electron_1.screen.on('display-added', (event, display) => { - electronSocket.emit('screen-display-added-event' + id, display); - }); - }); - socket.on('register-screen-display-removed', (id) => { - electron_1.screen.on('display-removed', (event, display) => { - electronSocket.emit('screen-display-removed-event' + id, display); - }); - }); - socket.on('register-screen-display-metrics-changed', (id) => { - electron_1.screen.on('display-metrics-changed', (event, display, changedMetrics) => { - electronSocket.emit('screen-display-metrics-changed-event' + id, [display, changedMetrics]); - }); - }); - socket.on('screen-getCursorScreenPoint', () => { - const point = electron_1.screen.getCursorScreenPoint(); - electronSocket.emit('screen-getCursorScreenPointCompleted', point); - }); - socket.on('screen-getMenuBarHeight', () => { - const height = electron_1.screen.getPrimaryDisplay().workArea; - electronSocket.emit('screen-getMenuBarHeightCompleted', height); - }); - socket.on('screen-getPrimaryDisplay', () => { - const display = electron_1.screen.getPrimaryDisplay(); - electronSocket.emit('screen-getPrimaryDisplayCompleted', display); - }); - socket.on('screen-getAllDisplays', () => { - const display = electron_1.screen.getAllDisplays(); - electronSocket.emit('screen-getAllDisplaysCompleted', display); - }); - socket.on('screen-getDisplayNearestPoint', (point) => { - const display = electron_1.screen.getDisplayNearestPoint(point); - electronSocket.emit('screen-getDisplayNearestPointCompleted', display); - }); - socket.on('screen-getDisplayMatching', (rectangle) => { - const display = electron_1.screen.getDisplayMatching(rectangle); - electronSocket.emit('screen-getDisplayMatchingCompleted', display); - }); -}; -//# sourceMappingURL=screen.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/screen.js.map b/src/ElectronNET.Host/api/screen.js.map deleted file mode 100644 index 1514a5e9..00000000 --- a/src/ElectronNET.Host/api/screen.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"screen.js","sourceRoot":"","sources":["screen.ts"],"names":[],"mappings":";AACA,uCAAkC;AAClC,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAc,EAAE,EAAE;IACxB,cAAc,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,+BAA+B,EAAE,CAAC,EAAE,EAAE,EAAE;QAC9C,iBAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC1C,cAAc,CAAC,IAAI,CAAC,4BAA4B,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,iCAAiC,EAAE,CAAC,EAAE,EAAE,EAAE;QAChD,iBAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC5C,cAAc,CAAC,IAAI,CAAC,8BAA8B,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yCAAyC,EAAE,CAAC,EAAE,EAAE,EAAE;QACxD,iBAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE;YACpE,cAAc,CAAC,IAAI,CAAC,sCAAsC,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC1C,MAAM,KAAK,GAAG,iBAAM,CAAC,oBAAoB,EAAE,CAAC;QAC5C,cAAc,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,iBAAM,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC;QACnD,cAAc,CAAC,IAAI,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACvC,MAAM,OAAO,GAAG,iBAAM,CAAC,iBAAiB,EAAE,CAAC;QAC3C,cAAc,CAAC,IAAI,CAAC,mCAAmC,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACpC,MAAM,OAAO,GAAG,iBAAM,CAAC,cAAc,EAAE,CAAC;QACxC,cAAc,CAAC,IAAI,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,+BAA+B,EAAE,CAAC,KAAK,EAAE,EAAE;QACjD,MAAM,OAAO,GAAG,iBAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACrD,cAAc,CAAC,IAAI,CAAC,wCAAwC,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,2BAA2B,EAAE,CAAC,SAAS,EAAE,EAAE;QACjD,MAAM,OAAO,GAAG,iBAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACrD,cAAc,CAAC,IAAI,CAAC,oCAAoC,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/screen.ts b/src/ElectronNET.Host/api/screen.ts deleted file mode 100644 index 3a8b91cc..00000000 --- a/src/ElectronNET.Host/api/screen.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Socket } from 'net'; -import { screen } from 'electron'; -let electronSocket; - -export = (socket: Socket) => { - electronSocket = socket; - socket.on('register-screen-display-added', (id) => { - screen.on('display-added', (event, display) => { - electronSocket.emit('screen-display-added-event' + id, display); - }); - }); - - socket.on('register-screen-display-removed', (id) => { - screen.on('display-removed', (event, display) => { - electronSocket.emit('screen-display-removed-event' + id, display); - }); - }); - - socket.on('register-screen-display-metrics-changed', (id) => { - screen.on('display-metrics-changed', (event, display, changedMetrics) => { - electronSocket.emit('screen-display-metrics-changed-event' + id, [display, changedMetrics]); - }); - }); - - socket.on('screen-getCursorScreenPoint', () => { - const point = screen.getCursorScreenPoint(); - electronSocket.emit('screen-getCursorScreenPointCompleted', point); - }); - - socket.on('screen-getMenuBarHeight', () => { - const height = screen.getPrimaryDisplay().workArea; - electronSocket.emit('screen-getMenuBarHeightCompleted', height); - }); - - socket.on('screen-getPrimaryDisplay', () => { - const display = screen.getPrimaryDisplay(); - electronSocket.emit('screen-getPrimaryDisplayCompleted', display); - }); - - socket.on('screen-getAllDisplays', () => { - const display = screen.getAllDisplays(); - electronSocket.emit('screen-getAllDisplaysCompleted', display); - }); - - socket.on('screen-getDisplayNearestPoint', (point) => { - const display = screen.getDisplayNearestPoint(point); - electronSocket.emit('screen-getDisplayNearestPointCompleted', display); - }); - - socket.on('screen-getDisplayMatching', (rectangle) => { - const display = screen.getDisplayMatching(rectangle); - electronSocket.emit('screen-getDisplayMatchingCompleted', display); - }); -}; diff --git a/src/ElectronNET.Host/api/shell.js b/src/ElectronNET.Host/api/shell.js deleted file mode 100644 index 0bf8c89e..00000000 --- a/src/ElectronNET.Host/api/shell.js +++ /dev/null @@ -1,51 +0,0 @@ -"use strict"; -const electron_1 = require("electron"); -let electronSocket; -module.exports = (socket) => { - electronSocket = socket; - socket.on('shell-showItemInFolder', (fullPath) => { - electron_1.shell.showItemInFolder(fullPath); - electronSocket.emit('shell-showItemInFolderCompleted'); - }); - socket.on('shell-openPath', async (path) => { - const errorMessage = await electron_1.shell.openPath(path); - electronSocket.emit('shell-openPathCompleted', errorMessage); - }); - socket.on('shell-openExternal', async (url, options) => { - let result = ''; - if (options) { - await electron_1.shell.openExternal(url, options).catch(e => { - result = e.message; - }); - } - else { - await electron_1.shell.openExternal(url).catch((e) => { - result = e.message; - }); - } - electronSocket.emit('shell-openExternalCompleted', result); - }); - socket.on('shell-trashItem', async (fullPath, deleteOnFail) => { - let success = false; - try { - await electron_1.shell.trashItem(fullPath); - success = true; - } - catch (error) { - success = false; - } - electronSocket.emit('shell-trashItem-completed', success); - }); - socket.on('shell-beep', () => { - electron_1.shell.beep(); - }); - socket.on('shell-writeShortcutLink', (shortcutPath, operation, options) => { - const success = electron_1.shell.writeShortcutLink(shortcutPath, operation, options); - electronSocket.emit('shell-writeShortcutLinkCompleted', success); - }); - socket.on('shell-readShortcutLink', (shortcutPath) => { - const shortcutDetails = electron_1.shell.readShortcutLink(shortcutPath); - electronSocket.emit('shell-readShortcutLinkCompleted', shortcutDetails); - }); -}; -//# sourceMappingURL=shell.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/shell.js.map b/src/ElectronNET.Host/api/shell.js.map deleted file mode 100644 index 83dbfa2b..00000000 --- a/src/ElectronNET.Host/api/shell.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"shell.js","sourceRoot":"","sources":["shell.ts"],"names":[],"mappings":";AACA,uCAAiC;AACjC,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAc,EAAE,EAAE;IACxB,cAAc,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC7C,gBAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEjC,cAAc,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACvC,MAAM,YAAY,GAAG,MAAM,gBAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEhD,cAAc,CAAC,IAAI,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;QACnD,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,OAAO,EAAE;YACT,MAAM,gBAAK,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC7C,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;YACvB,CAAC,CAAC,CAAC;SACN;aAAM;YACH,MAAM,gBAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACtC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;YACvB,CAAC,CAAC,CAAC;SACN;QAED,cAAc,CAAC,IAAI,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC1D,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,IAAI;YACA,MAAM,gBAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAChC,OAAO,GAAG,IAAI,CAAC;SAClB;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,GAAG,KAAK,CAAC;SACnB;QAED,cAAc,CAAC,IAAI,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;QACzB,gBAAK,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;QACtE,MAAM,OAAO,GAAG,gBAAK,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAE1E,cAAc,CAAC,IAAI,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,YAAY,EAAE,EAAE;QACjD,MAAM,eAAe,GAAG,gBAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAE7D,cAAc,CAAC,IAAI,CAAC,iCAAiC,EAAE,eAAe,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/shell.ts b/src/ElectronNET.Host/api/shell.ts deleted file mode 100644 index 9a0dfd7f..00000000 --- a/src/ElectronNET.Host/api/shell.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Socket } from 'net'; -import { shell } from 'electron'; -let electronSocket; - -export = (socket: Socket) => { - electronSocket = socket; - socket.on('shell-showItemInFolder', (fullPath) => { - shell.showItemInFolder(fullPath); - - electronSocket.emit('shell-showItemInFolderCompleted'); - }); - - socket.on('shell-openPath', async (path) => { - const errorMessage = await shell.openPath(path); - - electronSocket.emit('shell-openPathCompleted', errorMessage); - }); - - socket.on('shell-openExternal', async (url, options) => { - let result = ''; - - if (options) { - await shell.openExternal(url, options).catch(e => { - result = e.message; - }); - } else { - await shell.openExternal(url).catch((e) => { - result = e.message; - }); - } - - electronSocket.emit('shell-openExternalCompleted', result); - }); - - socket.on('shell-trashItem', async (fullPath, deleteOnFail) => { - let success = false; - - try { - await shell.trashItem(fullPath); - success = true; - } catch (error) { - success = false; - } - - electronSocket.emit('shell-trashItem-completed', success); - }); - - socket.on('shell-beep', () => { - shell.beep(); - }); - - socket.on('shell-writeShortcutLink', (shortcutPath, operation, options) => { - const success = shell.writeShortcutLink(shortcutPath, operation, options); - - electronSocket.emit('shell-writeShortcutLinkCompleted', success); - }); - - socket.on('shell-readShortcutLink', (shortcutPath) => { - const shortcutDetails = shell.readShortcutLink(shortcutPath); - - electronSocket.emit('shell-readShortcutLinkCompleted', shortcutDetails); - }); -}; diff --git a/src/ElectronNET.Host/api/tray.js b/src/ElectronNET.Host/api/tray.js deleted file mode 100644 index 98fb740c..00000000 --- a/src/ElectronNET.Host/api/tray.js +++ /dev/null @@ -1,132 +0,0 @@ -"use strict"; -const electron_1 = require("electron"); -let tray = (global['$tray'] = global['tray'] || { value: null }); -let electronSocket; -module.exports = (socket) => { - electronSocket = socket; - socket.on('register-tray-click', (id) => { - if (tray.value) { - tray.value.on('click', (event, bounds) => { - electronSocket.emit('tray-click-event' + id, [event.__proto__, bounds]); - }); - } - }); - socket.on('register-tray-right-click', (id) => { - if (tray.value) { - tray.value.on('right-click', (event, bounds) => { - electronSocket.emit('tray-right-click-event' + id, [event.__proto__, bounds]); - }); - } - }); - socket.on('register-tray-double-click', (id) => { - if (tray.value) { - tray.value.on('double-click', (event, bounds) => { - electronSocket.emit('tray-double-click-event' + id, [event.__proto__, bounds]); - }); - } - }); - socket.on('register-tray-balloon-show', (id) => { - if (tray.value) { - tray.value.on('balloon-show', () => { - electronSocket.emit('tray-balloon-show-event' + id); - }); - } - }); - socket.on('register-tray-balloon-click', (id) => { - if (tray.value) { - tray.value.on('balloon-click', () => { - electronSocket.emit('tray-balloon-click-event' + id); - }); - } - }); - socket.on('register-tray-balloon-closed', (id) => { - if (tray.value) { - tray.value.on('balloon-closed', () => { - electronSocket.emit('tray-balloon-closed-event' + id); - }); - } - }); - socket.on('create-tray', (image, menuItems) => { - const trayIcon = electron_1.nativeImage.createFromPath(image); - tray.value = new electron_1.Tray(trayIcon); - if (menuItems) { - const menu = electron_1.Menu.buildFromTemplate(menuItems); - addMenuItemClickConnector(menu.items, (id) => { - electronSocket.emit('trayMenuItemClicked', id); - }); - tray.value.setContextMenu(menu); - } - }); - socket.on('tray-destroy', () => { - if (tray.value) { - tray.value.destroy(); - } - }); - socket.on('tray-setImage', (image) => { - if (tray.value) { - tray.value.setImage(image); - } - }); - socket.on('tray-setPressedImage', (image) => { - if (tray.value) { - const img = electron_1.nativeImage.createFromPath(image); - tray.value.setPressedImage(img); - } - }); - socket.on('tray-setToolTip', (toolTip) => { - if (tray.value) { - tray.value.setToolTip(toolTip); - } - }); - socket.on('tray-setTitle', (title) => { - if (tray.value) { - tray.value.setTitle(title); - } - }); - socket.on('tray-displayBalloon', (options) => { - if (tray.value) { - tray.value.displayBalloon(options); - } - }); - socket.on('tray-isDestroyed', () => { - if (tray.value) { - const isDestroyed = tray.value.isDestroyed(); - electronSocket.emit('tray-isDestroyedCompleted', isDestroyed); - } - }); - socket.on('register-tray-on-event', (eventName, listenerName) => { - if (tray.value) { - tray.value.on(eventName, (...args) => { - if (args.length > 1) { - electronSocket.emit(listenerName, args[1]); - } - else { - electronSocket.emit(listenerName); - } - }); - } - }); - socket.on('register-tray-once-event', (eventName, listenerName) => { - if (tray.value) { - tray.value.once(eventName, (...args) => { - if (args.length > 1) { - electronSocket.emit(listenerName, args[1]); - } - else { - electronSocket.emit(listenerName); - } - }); - } - }); - function addMenuItemClickConnector(menuItems, callback) { - menuItems.forEach((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); }; - } - }); - } -}; -//# sourceMappingURL=tray.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/tray.js.map b/src/ElectronNET.Host/api/tray.js.map deleted file mode 100644 index 6a84a7ad..00000000 --- a/src/ElectronNET.Host/api/tray.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tray.js","sourceRoot":"","sources":["tray.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/tray.ts b/src/ElectronNET.Host/api/tray.ts deleted file mode 100644 index af9f6cf2..00000000 --- a/src/ElectronNET.Host/api/tray.ts +++ /dev/null @@ -1,150 +0,0 @@ -import { Socket } from 'net'; -import { Menu, Tray, nativeImage } from 'electron'; -let tray: { value: Electron.Tray } = (global['$tray'] = global['tray'] || { value: null }); -let electronSocket; - -export = (socket: Socket) => { - electronSocket = socket; - socket.on('register-tray-click', (id) => { - if (tray.value) { - tray.value.on('click', (event, bounds) => { - electronSocket.emit('tray-click-event' + id, [(event).__proto__, bounds]); - }); - } - }); - - socket.on('register-tray-right-click', (id) => { - if (tray.value) { - tray.value.on('right-click', (event, bounds) => { - electronSocket.emit('tray-right-click-event' + id, [(event).__proto__, bounds]); - }); - } - }); - - socket.on('register-tray-double-click', (id) => { - if (tray.value) { - tray.value.on('double-click', (event, bounds) => { - electronSocket.emit('tray-double-click-event' + id, [(event).__proto__, bounds]); - }); - } - }); - - socket.on('register-tray-balloon-show', (id) => { - if (tray.value) { - tray.value.on('balloon-show', () => { - electronSocket.emit('tray-balloon-show-event' + id); - }); - } - }); - - socket.on('register-tray-balloon-click', (id) => { - if (tray.value) { - tray.value.on('balloon-click', () => { - electronSocket.emit('tray-balloon-click-event' + id); - }); - } - }); - - socket.on('register-tray-balloon-closed', (id) => { - if (tray.value) { - tray.value.on('balloon-closed', () => { - electronSocket.emit('tray-balloon-closed-event' + id); - }); - } - }); - - socket.on('create-tray', (image, menuItems) => { - const trayIcon = nativeImage.createFromPath(image); - - tray.value = new Tray(trayIcon); - - if (menuItems) { - const menu = Menu.buildFromTemplate(menuItems); - - addMenuItemClickConnector(menu.items, (id) => { - electronSocket.emit('trayMenuItemClicked', id); - }); - tray.value.setContextMenu(menu); - } - }); - - socket.on('tray-destroy', () => { - if (tray.value) { - tray.value.destroy(); - } - }); - - socket.on('tray-setImage', (image) => { - if (tray.value) { - tray.value.setImage(image); - } - }); - - socket.on('tray-setPressedImage', (image) => { - if (tray.value) { - const img = nativeImage.createFromPath(image); - tray.value.setPressedImage(img); - } - }); - - socket.on('tray-setToolTip', (toolTip) => { - if (tray.value) { - tray.value.setToolTip(toolTip); - } - }); - - socket.on('tray-setTitle', (title) => { - if (tray.value) { - tray.value.setTitle(title); - } - }); - - socket.on('tray-displayBalloon', (options) => { - if (tray.value) { - tray.value.displayBalloon(options); - } - }); - - socket.on('tray-isDestroyed', () => { - if (tray.value) { - const isDestroyed = tray.value.isDestroyed(); - electronSocket.emit('tray-isDestroyedCompleted', isDestroyed); - } - }); - - socket.on('register-tray-on-event', (eventName, listenerName) => { - if (tray.value){ - tray.value.on(eventName, (...args) => { - if (args.length > 1) { - electronSocket.emit(listenerName, args[1]); - } else { - electronSocket.emit(listenerName); - } - }); - } - }); - - socket.on('register-tray-once-event', (eventName, listenerName) => { - if (tray.value){ - tray.value.once(eventName, (...args) => { - if (args.length > 1) { - electronSocket.emit(listenerName, args[1]); - } else { - electronSocket.emit(listenerName); - } - }); - } - }); - - function addMenuItemClickConnector(menuItems, callback) { - menuItems.forEach((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); }; - } - }); - } -}; diff --git a/src/ElectronNET.Host/api/webContents.js b/src/ElectronNET.Host/api/webContents.js deleted file mode 100644 index 8df97114..00000000 --- a/src/ElectronNET.Host/api/webContents.js +++ /dev/null @@ -1,234 +0,0 @@ -"use strict"; -const electron_1 = require("electron"); -const browserView_1 = require("./browserView"); -const fs = require('fs'); -let electronSocket; -module.exports = (socket) => { - electronSocket = socket; - socket.on('register-webContents-crashed', (id) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.removeAllListeners('crashed'); - browserWindow.webContents.on('crashed', (event, killed) => { - electronSocket.emit('webContents-crashed' + id, killed); - }); - }); - socket.on('register-webContents-didFinishLoad', (id) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.removeAllListeners('did-finish-load'); - browserWindow.webContents.on('did-finish-load', () => { - electronSocket.emit('webContents-didFinishLoad' + id); - }); - }); - socket.on('register-webContents-input-event', (id) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.removeAllListeners('input-event'); - browserWindow.webContents.on('input-event', (_, eventArgs) => { - if (eventArgs.type !== 'char') { - electronSocket.emit('webContents-input-event' + id, eventArgs); - } - }); - }); - socket.on('webContentsOpenDevTools', (id, options) => { - if (options) { - getWindowById(id).webContents.openDevTools(options); - } - else { - getWindowById(id).webContents.openDevTools(); - } - }); - socket.on('webContents-getPrinters', async (id) => { - const printers = await getWindowById(id).webContents.getPrintersAsync(); - electronSocket.emit('webContents-getPrinters-completed', printers); - }); - socket.on('webContents-print', async (id, options = {}) => { - await getWindowById(id).webContents.print(options); - electronSocket.emit('webContents-print-completed', true); - }); - socket.on('webContents-printToPDF', async (id, options = {}, path) => { - const buffer = await getWindowById(id).webContents.printToPDF(options); - fs.writeFile(path, buffer, (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()); - }); - socket.on('webContents-session-allowNTLMCredentialsForDomains', (id, domains) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.session.allowNTLMCredentialsForDomains(domains); - }); - socket.on('webContents-session-clearAuthCache', async (id, guid) => { - const browserWindow = getWindowById(id); - await browserWindow.webContents.session.clearAuthCache(); - electronSocket.emit('webContents-session-clearAuthCache-completed' + guid); - }); - socket.on('webContents-session-clearCache', async (id, guid) => { - const browserWindow = getWindowById(id); - await browserWindow.webContents.session.clearCache(); - electronSocket.emit('webContents-session-clearCache-completed' + guid); - }); - socket.on('webContents-session-clearHostResolverCache', async (id, guid) => { - const browserWindow = getWindowById(id); - await browserWindow.webContents.session.clearHostResolverCache(); - electronSocket.emit('webContents-session-clearHostResolverCache-completed' + guid); - }); - socket.on('webContents-session-clearStorageData', async (id, guid) => { - const browserWindow = getWindowById(id); - await browserWindow.webContents.session.clearStorageData({}); - electronSocket.emit('webContents-session-clearStorageData-completed' + guid); - }); - socket.on('webContents-session-clearStorageData-options', async (id, options, guid) => { - const browserWindow = getWindowById(id); - await 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); - }); - socket.on('webContents-session-disableNetworkEmulation', (id) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.session.disableNetworkEmulation(); - }); - socket.on('webContents-session-enableNetworkEmulation', (id, options) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.session.enableNetworkEmulation(options); - }); - socket.on('webContents-session-flushStorageData', (id) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.session.flushStorageData(); - }); - socket.on('webContents-session-getBlobData', async (id, identifier, guid) => { - const browserWindow = getWindowById(id); - const buffer = await browserWindow.webContents.session.getBlobData(identifier); - electronSocket.emit('webContents-session-getBlobData-completed' + guid, buffer.buffer); - }); - socket.on('webContents-session-getCacheSize', async (id, guid) => { - const browserWindow = getWindowById(id); - const size = await 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(); - electronSocket.emit('webContents-session-getPreloads-completed' + guid, preloads); - }); - socket.on('webContents-session-getUserAgent', (id, guid) => { - const browserWindow = getWindowById(id); - const userAgent = browserWindow.webContents.session.getUserAgent(); - electronSocket.emit('webContents-session-getUserAgent-completed' + guid, userAgent); - }); - socket.on('webContents-session-resolveProxy', async (id, url, guid) => { - const browserWindow = getWindowById(id); - const proxy = await 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); - }); - socket.on('webContents-session-setPreloads', (id, preloads) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.session.setPreloads(preloads); - }); - socket.on('webContents-session-setProxy', async (id, configuration, guid) => { - const browserWindow = getWindowById(id); - await 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); - }); - socket.on('register-webContents-session-cookies-changed', (id) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.session.cookies.removeAllListeners('changed'); - browserWindow.webContents.session.cookies.on('changed', (event, cookie, cause, removed) => { - electronSocket.emit('webContents-session-cookies-changed' + id, [cookie, cause, removed]); - }); - }); - socket.on('webContents-session-cookies-get', async (id, filter, guid) => { - const browserWindow = getWindowById(id); - const cookies = await browserWindow.webContents.session.cookies.get(filter); - electronSocket.emit('webContents-session-cookies-get-completed' + guid, cookies); - }); - socket.on('webContents-session-cookies-set', async (id, details, guid) => { - const browserWindow = getWindowById(id); - await browserWindow.webContents.session.cookies.set(details); - electronSocket.emit('webContents-session-cookies-set-completed' + guid); - }); - socket.on('webContents-session-cookies-remove', async (id, url, name, guid) => { - const browserWindow = getWindowById(id); - await browserWindow.webContents.session.cookies.remove(url, name); - electronSocket.emit('webContents-session-cookies-remove-completed' + guid); - }); - socket.on('webContents-session-cookies-flushStore', async (id, guid) => { - const browserWindow = getWindowById(id); - await browserWindow.webContents.session.cookies.flushStore(); - electronSocket.emit('webContents-session-cookies-flushStore-completed' + guid); - }); - socket.on('webContents-loadURL', (id, url, options) => { - const browserWindow = getWindowById(id); - browserWindow.webContents - .loadURL(url, options) - .then(() => { - electronSocket.emit('webContents-loadURL-complete' + id); - }) - .catch((error) => { - console.error(error); - electronSocket.emit('webContents-loadURL-error' + id, error); - }); - }); - socket.on('webContents-insertCSS', (id, isBrowserWindow, path) => { - if (isBrowserWindow) { - const browserWindow = getWindowById(id); - if (browserWindow) { - browserWindow.webContents.insertCSS(fs.readFileSync(path, 'utf8')); - } - } - else { - const browserViews = (global['browserViews'] = global['browserViews'] || []); - let view = null; - for (let i = 0; i < browserViews.length; i++) { - if (browserViews[i]['id'] + 1000 === id) { - view = browserViews[i]; - break; - } - } - if (view) { - view.webContents.insertCSS(fs.readFileSync(path, 'utf8')); - } - } - }); - socket.on('webContents-session-getAllExtensions', (id) => { - const browserWindow = getWindowById(id); - const extensionsList = browserWindow.webContents.session.getAllExtensions(); - const chromeExtensionInfo = []; - Object.keys(extensionsList).forEach((key) => { - chromeExtensionInfo.push(extensionsList[key]); - }); - electronSocket.emit('webContents-session-getAllExtensions-completed', chromeExtensionInfo); - }); - socket.on('webContents-session-removeExtension', (id, name) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.session.removeExtension(name); - }); - socket.on('webContents-session-loadExtension', async (id, path, allowFileAccess = false) => { - const browserWindow = getWindowById(id); - const extension = await browserWindow.webContents.session.loadExtension(path, { allowFileAccess: allowFileAccess }); - electronSocket.emit('webContents-session-loadExtension-completed', extension); - }); - function getWindowById(id) { - if (id >= 1000) { - return (0, browserView_1.browserViewMediateService)(id - 1000); - } - return electron_1.BrowserWindow.fromId(id); - } -}; -//# sourceMappingURL=webContents.js.map \ No newline at end of file diff --git a/src/ElectronNET.Host/api/webContents.js.map b/src/ElectronNET.Host/api/webContents.js.map deleted file mode 100644 index e9936136..00000000 --- a/src/ElectronNET.Host/api/webContents.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"webContents.js","sourceRoot":"","sources":["webContents.ts"],"names":[],"mappings":";AACA,uCAAsD;AACtD,+CAA0D;AAC1D,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACzB,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAc,EAAE,EAAE;IAC1B,cAAc,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,8BAA8B,EAAE,CAAC,EAAE,EAAE,EAAE;QAC/C,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAExC,aAAa,CAAC,WAAW,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACxD,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACxD,cAAc,CAAC,IAAI,CAAC,qBAAqB,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,oCAAoC,EAAE,CAAC,EAAE,EAAE,EAAE;QACrD,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAExC,aAAa,CAAC,WAAW,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAChE,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;YACnD,cAAc,CAAC,IAAI,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,kCAAkC,EAAE,CAAC,EAAE,EAAE,EAAE;QACnD,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAExC,aAAa,CAAC,WAAW,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAC5D,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE;YAC3D,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE;gBAC7B,cAAc,CAAC,IAAI,CAAC,yBAAyB,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;aAChE;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;QACnD,IAAI,OAAO,EAAE;YACX,aAAa,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;SACrD;aAAM;YACL,aAAa,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;SAC9C;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QAChD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACxE,cAAc,CAAC,IAAI,CAAC,mCAAmC,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;QACxD,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnD,cAAc,CAAC,IAAI,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,wBAAwB,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE;QACnE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEvE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACnC,IAAI,KAAK,EAAE;gBACT,cAAc,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;aAChE;iBAAM;gBACL,cAAc,CAAC,IAAI,CAAC,kCAAkC,EAAE,IAAI,CAAC,CAAC;aAC/D;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,UAAU,EAAE;QAC1C,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,cAAc,CAAC,IAAI,CAAC,oBAAoB,GAAG,EAAE,EAAE,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,oDAAoD,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;QAC9E,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,oCAAoC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QACjE,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAEzD,cAAc,CAAC,IAAI,CAAC,8CAA8C,GAAG,IAAI,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,gCAAgC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QAC7D,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAErD,cAAc,CAAC,IAAI,CAAC,0CAA0C,GAAG,IAAI,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,4CAA4C,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QACzE,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;QAEjE,cAAc,CAAC,IAAI,CAAC,sDAAsD,GAAG,IAAI,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,sCAAsC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QACnE,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAE7D,cAAc,CAAC,IAAI,CAAC,gDAAgD,GAAG,IAAI,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,8CAA8C,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACpF,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAElE,cAAc,CAAC,IAAI,CAAC,wDAAwD,GAAG,IAAI,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,+CAA+C,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;QACzE,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,6CAA6C,EAAE,CAAC,EAAE,EAAE,EAAE;QAC9D,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,4CAA4C,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;QACtE,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,sCAAsC,EAAE,CAAC,EAAE,EAAE,EAAE;QACvD,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,iCAAiC,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;QAC1E,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAE/E,cAAc,CAAC,IAAI,CAAC,2CAA2C,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,kCAAkC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QAC/D,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAEpE,cAAc,CAAC,IAAI,CAAC,4CAA4C,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,iCAAiC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;QACxD,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAEjE,cAAc,CAAC,IAAI,CAAC,2CAA2C,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,kCAAkC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;QACzD,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAEnE,cAAc,CAAC,IAAI,CAAC,4CAA4C,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,kCAAkC,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACpE,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAExE,cAAc,CAAC,IAAI,CAAC,4CAA4C,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,qCAAqC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;QAC5D,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,iCAAiC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE;QAC5D,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,8BAA8B,EAAE,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE;QAC1E,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAEhE,cAAc,CAAC,IAAI,CAAC,wCAAwC,GAAG,IAAI,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,kCAAkC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE;QAC/E,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,8CAA8C,EAAE,CAAC,EAAE,EAAE,EAAE;QAC/D,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAExC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACxE,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACxF,cAAc,CAAC,IAAI,CAAC,qCAAqC,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,iCAAiC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QACtE,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE5E,cAAc,CAAC,IAAI,CAAC,2CAA2C,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,iCAAiC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACvE,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE7D,cAAc,CAAC,IAAI,CAAC,2CAA2C,GAAG,IAAI,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,oCAAoC,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC5E,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAElE,cAAc,CAAC,IAAI,CAAC,8CAA8C,GAAG,IAAI,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,wCAAwC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QACrE,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAE7D,cAAc,CAAC,IAAI,CAAC,kDAAkD,GAAG,IAAI,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;QACpD,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,aAAa,CAAC,WAAW;aACtB,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC;aACrB,IAAI,CAAC,GAAG,EAAE;YACT,cAAc,CAAC,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,cAAc,CAAC,IAAI,CAAC,2BAA2B,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,uBAAuB,EAAE,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE;QAC/D,IAAI,eAAe,EAAE;YACnB,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,aAAa,EAAE;gBACjB,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;aACpE;SACF;aAAM;YACL,MAAM,YAAY,GAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAkB,CAAC;YAC7G,IAAI,IAAI,GAAgB,IAAI,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5C,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,EAAE,EAAE;oBACvC,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACvB,MAAM;iBACP;aACF;YACD,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;aAC3D;SACF;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,sCAAsC,EAAE,CAAC,EAAE,EAAE,EAAE;QACvD,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,cAAc,GAAG,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC5E,MAAM,mBAAmB,GAAG,EAAE,CAAC;QAE/B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1C,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,cAAc,CAAC,IAAI,CAAC,gDAAgD,EAAE,mBAAmB,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,qCAAqC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;QAC5D,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,mCAAmC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,GAAG,KAAK,EAAE,EAAE;QACzF,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC;QAEpH,cAAc,CAAC,IAAI,CAAC,6CAA6C,EAAE,SAAS,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,SAAS,aAAa,CAAC,EAAU;QAC/B,IAAI,EAAE,IAAI,IAAI,EAAE;YACd,OAAO,IAAA,uCAAyB,EAAC,EAAE,GAAG,IAAI,CAAC,CAAC;SAC7C;QAED,OAAO,wBAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;AACH,CAAC,CAAC"} \ No newline at end of file diff --git a/src/ElectronNET.Host/api/webContents.ts b/src/ElectronNET.Host/api/webContents.ts deleted file mode 100644 index 4bf6fddf..00000000 --- a/src/ElectronNET.Host/api/webContents.ts +++ /dev/null @@ -1,292 +0,0 @@ -import { Socket } from 'net'; -import { BrowserWindow, BrowserView } from 'electron'; -import { browserViewMediateService } from './browserView'; -const fs = require('fs'); -let electronSocket; - -export = (socket: Socket) => { - electronSocket = socket; - socket.on('register-webContents-crashed', (id) => { - const browserWindow = getWindowById(id); - - browserWindow.webContents.removeAllListeners('crashed'); - browserWindow.webContents.on('crashed', (event, killed) => { - electronSocket.emit('webContents-crashed' + id, killed); - }); - }); - - socket.on('register-webContents-didFinishLoad', (id) => { - const browserWindow = getWindowById(id); - - browserWindow.webContents.removeAllListeners('did-finish-load'); - browserWindow.webContents.on('did-finish-load', () => { - electronSocket.emit('webContents-didFinishLoad' + id); - }); - }); - - socket.on('register-webContents-input-event', (id) => { - const browserWindow = getWindowById(id); - - browserWindow.webContents.removeAllListeners('input-event'); - browserWindow.webContents.on('input-event', (_, eventArgs) => { - if (eventArgs.type !== 'char') { - electronSocket.emit('webContents-input-event' + id, eventArgs); - } - }); - }); - - socket.on('webContentsOpenDevTools', (id, options) => { - if (options) { - getWindowById(id).webContents.openDevTools(options); - } else { - getWindowById(id).webContents.openDevTools(); - } - }); - - socket.on('webContents-getPrinters', async (id) => { - const printers = await getWindowById(id).webContents.getPrintersAsync(); - electronSocket.emit('webContents-getPrinters-completed', printers); - }); - - socket.on('webContents-print', async (id, options = {}) => { - await getWindowById(id).webContents.print(options); - electronSocket.emit('webContents-print-completed', true); - }); - - socket.on('webContents-printToPDF', async (id, options = {}, path) => { - const buffer = await getWindowById(id).webContents.printToPDF(options); - - fs.writeFile(path, buffer, (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()); - }); - - socket.on('webContents-session-allowNTLMCredentialsForDomains', (id, domains) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.session.allowNTLMCredentialsForDomains(domains); - }); - - socket.on('webContents-session-clearAuthCache', async (id, guid) => { - const browserWindow = getWindowById(id); - await browserWindow.webContents.session.clearAuthCache(); - - electronSocket.emit('webContents-session-clearAuthCache-completed' + guid); - }); - - socket.on('webContents-session-clearCache', async (id, guid) => { - const browserWindow = getWindowById(id); - await browserWindow.webContents.session.clearCache(); - - electronSocket.emit('webContents-session-clearCache-completed' + guid); - }); - - socket.on('webContents-session-clearHostResolverCache', async (id, guid) => { - const browserWindow = getWindowById(id); - await browserWindow.webContents.session.clearHostResolverCache(); - - electronSocket.emit('webContents-session-clearHostResolverCache-completed' + guid); - }); - - socket.on('webContents-session-clearStorageData', async (id, guid) => { - const browserWindow = getWindowById(id); - await browserWindow.webContents.session.clearStorageData({}); - - electronSocket.emit('webContents-session-clearStorageData-completed' + guid); - }); - - socket.on('webContents-session-clearStorageData-options', async (id, options, guid) => { - const browserWindow = getWindowById(id); - await 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); - }); - - socket.on('webContents-session-disableNetworkEmulation', (id) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.session.disableNetworkEmulation(); - }); - - socket.on('webContents-session-enableNetworkEmulation', (id, options) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.session.enableNetworkEmulation(options); - }); - - socket.on('webContents-session-flushStorageData', (id) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.session.flushStorageData(); - }); - - socket.on('webContents-session-getBlobData', async (id, identifier, guid) => { - const browserWindow = getWindowById(id); - const buffer = await browserWindow.webContents.session.getBlobData(identifier); - - electronSocket.emit('webContents-session-getBlobData-completed' + guid, buffer.buffer); - }); - - socket.on('webContents-session-getCacheSize', async (id, guid) => { - const browserWindow = getWindowById(id); - const size = await 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(); - - electronSocket.emit('webContents-session-getPreloads-completed' + guid, preloads); - }); - - socket.on('webContents-session-getUserAgent', (id, guid) => { - const browserWindow = getWindowById(id); - const userAgent = browserWindow.webContents.session.getUserAgent(); - - electronSocket.emit('webContents-session-getUserAgent-completed' + guid, userAgent); - }); - - socket.on('webContents-session-resolveProxy', async (id, url, guid) => { - const browserWindow = getWindowById(id); - const proxy = await 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); - }); - - socket.on('webContents-session-setPreloads', (id, preloads) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.session.setPreloads(preloads); - }); - - socket.on('webContents-session-setProxy', async (id, configuration, guid) => { - const browserWindow = getWindowById(id); - await 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); - }); - - socket.on('register-webContents-session-cookies-changed', (id) => { - const browserWindow = getWindowById(id); - - browserWindow.webContents.session.cookies.removeAllListeners('changed'); - browserWindow.webContents.session.cookies.on('changed', (event, cookie, cause, removed) => { - electronSocket.emit('webContents-session-cookies-changed' + id, [cookie, cause, removed]); - }); - }); - - socket.on('webContents-session-cookies-get', async (id, filter, guid) => { - const browserWindow = getWindowById(id); - const cookies = await browserWindow.webContents.session.cookies.get(filter); - - electronSocket.emit('webContents-session-cookies-get-completed' + guid, cookies); - }); - - socket.on('webContents-session-cookies-set', async (id, details, guid) => { - const browserWindow = getWindowById(id); - await browserWindow.webContents.session.cookies.set(details); - - electronSocket.emit('webContents-session-cookies-set-completed' + guid); - }); - - socket.on('webContents-session-cookies-remove', async (id, url, name, guid) => { - const browserWindow = getWindowById(id); - await browserWindow.webContents.session.cookies.remove(url, name); - - electronSocket.emit('webContents-session-cookies-remove-completed' + guid); - }); - - socket.on('webContents-session-cookies-flushStore', async (id, guid) => { - const browserWindow = getWindowById(id); - await browserWindow.webContents.session.cookies.flushStore(); - - electronSocket.emit('webContents-session-cookies-flushStore-completed' + guid); - }); - - socket.on('webContents-loadURL', (id, url, options) => { - const browserWindow = getWindowById(id); - browserWindow.webContents - .loadURL(url, options) - .then(() => { - electronSocket.emit('webContents-loadURL-complete' + id); - }) - .catch((error) => { - console.error(error); - electronSocket.emit('webContents-loadURL-error' + id, error); - }); - }); - - socket.on('webContents-insertCSS', (id, isBrowserWindow, path) => { - if (isBrowserWindow) { - const browserWindow = getWindowById(id); - if (browserWindow) { - browserWindow.webContents.insertCSS(fs.readFileSync(path, 'utf8')); - } - } else { - const browserViews: BrowserView[] = (global['browserViews'] = global['browserViews'] || []) as BrowserView[]; - let view: BrowserView = null; - for (let i = 0; i < browserViews.length; i++) { - if (browserViews[i]['id'] + 1000 === id) { - view = browserViews[i]; - break; - } - } - if (view) { - view.webContents.insertCSS(fs.readFileSync(path, 'utf8')); - } - } - }); - - socket.on('webContents-session-getAllExtensions', (id) => { - const browserWindow = getWindowById(id); - const extensionsList = browserWindow.webContents.session.getAllExtensions(); - const chromeExtensionInfo = []; - - Object.keys(extensionsList).forEach((key) => { - chromeExtensionInfo.push(extensionsList[key]); - }); - - electronSocket.emit('webContents-session-getAllExtensions-completed', chromeExtensionInfo); - }); - - socket.on('webContents-session-removeExtension', (id, name) => { - const browserWindow = getWindowById(id); - browserWindow.webContents.session.removeExtension(name); - }); - - socket.on('webContents-session-loadExtension', async (id, path, allowFileAccess = false) => { - const browserWindow = getWindowById(id); - const extension = await browserWindow.webContents.session.loadExtension(path, { allowFileAccess: allowFileAccess }); - - electronSocket.emit('webContents-session-loadExtension-completed', extension); - }); - - function getWindowById(id: number): Electron.BrowserWindow | Electron.BrowserView { - if (id >= 1000) { - return browserViewMediateService(id - 1000); - } - - return BrowserWindow.fromId(id); - } -}; diff --git a/src/ElectronNET.Host/build-helper.js b/src/ElectronNET.Host/build-helper.js deleted file mode 100644 index d8ebc944..00000000 --- a/src/ElectronNET.Host/build-helper.js +++ /dev/null @@ -1,53 +0,0 @@ -const manifestFileName = process.argv[2]; -// @ts-ignore -const manifestFile = require('./bin/' + manifestFileName); -const dasherize = require('dasherize'); -const fs = require('fs'); - -const builderConfiguration = { ...manifestFile.build }; -if(process.argv.length > 3) { - builderConfiguration.buildVersion = process.argv[3]; -} -if(builderConfiguration.hasOwnProperty('buildVersion')) { - // @ts-ignore - const packageJson = require('./package'); - packageJson.name = dasherize(manifestFile.name || 'electron-net'); - packageJson.author = manifestFile.author || ''; - packageJson.version = builderConfiguration.buildVersion; - packageJson.description = manifestFile.description || ''; - - fs.writeFile('./package.json', JSON.stringify(packageJson), (error) => { - if(error) { - console.log(error.message); - } - }); - - try { - // @ts-ignore - const packageLockJson = require('./package-lock'); - packageLockJson.name = dasherize(manifestFile.name || 'electron-net'); - packageLockJson.author = manifestFile.author || ''; - packageLockJson.version = builderConfiguration.buildVersion; - fs.writeFile('./package-lock.json', JSON.stringify(packageLockJson), (error) => { - if(error) { - console.log(error.message); - } - }); - } catch (error) { - // ignore missing module - } -} - -const builderConfigurationString = JSON.stringify(builderConfiguration); -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/src/ElectronNET.Host/main.js b/src/ElectronNET.Host/main.js deleted file mode 100644 index 0e4079cc..00000000 --- a/src/ElectronNET.Host/main.js +++ /dev/null @@ -1,349 +0,0 @@ -๏ปฟconst { app } = require('electron'); -const { BrowserWindow } = require('electron'); -const { protocol } = require('electron'); -const path = require('path'); -const cProcess = require('child_process').spawn; -const portscanner = require('portscanner'); -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, browserView; -let powerMonitor; -let splashScreen, hostHook; -let nativeTheme; -let dock; -let launchFile; -let launchUrl; - -let manifestJsonFileName = 'electron.manifest.json'; -let watchable = false; -if (app.commandLine.hasSwitch('manifest')) { - manifestJsonFileName = app.commandLine.getSwitchValue('manifest'); -} - -if (app.commandLine.hasSwitch('watch')) { - watchable = true; -} - -let currentBinPath = path.join(__dirname.replace('app.asar', ''), 'bin'); -let manifestJsonFilePath = path.join(currentBinPath, manifestJsonFileName); - -// if watch is enabled lets change the path -if (watchable) { - currentBinPath = path.join(__dirname, '../../'); // go to project directory - manifestJsonFilePath = path.join(currentBinPath, manifestJsonFileName); -} - -// handle macOS events for opening the app with a file, etc -app.on('will-finish-launching', () => { - app.on('open-file', (evt, file) => { - evt.preventDefault(); - launchFile = file; - }); - app.on('open-url', (evt, url) => { - evt.preventDefault(); - launchUrl = url; - }); -}); - -const manifestJsonFile = require(manifestJsonFilePath); -if (manifestJsonFile.singleInstance || manifestJsonFile.aspCoreBackendPort) { - const mainInstance = app.requestSingleInstanceLock(); - app.on('second-instance', (events, args = []) => { - args.forEach((parameter) => { - const words = parameter.split('='); - - if (words.length > 1) { - app.commandLine.appendSwitch(words[0].replace('--', ''), words[1]); - } else { - app.commandLine.appendSwitch(words[0].replace('--', '')); - } - }); - - const windows = BrowserWindow.getAllWindows(); - if (windows.length) { - if (windows[0].isMinimized()) { - windows[0].restore(); - } - windows[0].focus(); - } - }); - - if (!mainInstance) { - app.quit(); - } -} - -app.on('ready', () => { - // Fix ERR_UNKNOWN_URL_SCHEME using file protocol - // https://github.com/electron/electron/issues/23757 - protocol.registerFileProtocol('file', (request, callback) => { - const pathname = request.url.replace('file:///', ''); - callback(pathname); - }); - - if (isSplashScreenEnabled()) { - startSplashScreen(); - } - // Added default port as configurable for port restricted environments. - let defaultElectronPort = 8000; - if (manifestJsonFile.electronPort) { - defaultElectronPort = manifestJsonFile.electronPort; - } - // hostname needs to be localhost, otherwise Windows Firewall will be triggered. - portscanner.findAPortNotInUse(defaultElectronPort, 65535, 'localhost', function (error, port) { - console.log('Electron Socket IO Port: ' + port); - startSocketApiBridge(port); - }); -}); - -app.on('quit', async (event, exitCode) => { - await server.close(); - apiProcess.kill(); -}); - -function isSplashScreenEnabled() { - if (manifestJsonFile.hasOwnProperty('splashscreen')) { - if (manifestJsonFile.splashscreen.hasOwnProperty('imageFile')) { - return Boolean(manifestJsonFile.splashscreen.imageFile); - } - } - - return false; -} - -function startSplashScreen() { - let imageFile = path.join(currentBinPath, manifestJsonFile.splashscreen.imageFile); - imageSize(imageFile, (error, dimensions) => { - if (error) { - console.log(`load splashscreen error:`); - console.error(error); - - throw new Error(error.message); - } - - splashScreen = new BrowserWindow({ - width: dimensions.width, - height: dimensions.height, - transparent: true, - center: true, - frame: false, - closable: false, - resizable: false, - skipTaskbar: true, - alwaysOnTop: true, - show: true, - }); - splashScreen.setIgnoreMouseEvents(true); - - app.once('browser-window-created', () => { - splashScreen.destroy(); - }); - - const loadSplashscreenUrl = path.join(__dirname, 'splashscreen', 'index.html') + '?imgPath=' + imageFile; - splashScreen.loadURL('file://' + loadSplashscreenUrl); - - splashScreen.once('closed', () => { - splashScreen = null; - }); - }); -} - -function startSocketApiBridge(port) { - // instead of 'require('socket.io')(port);' we need to use this workaround - // otherwise the Windows Firewall will be triggered - server = require('http').createServer(); - const { Server } = require('socket.io'); - io = new Server({ - pingTimeout: 60000, // in ms, default is 5000 - pingInterval: 10000, // in ms, default is 25000 - }); - io.attach(server); - - server.listen(port, 'localhost'); - server.on('listening', function () { - console.log('Electron Socket started on port %s at %s', server.address().port, server.address().address); - // Now that socket connection is established, we can guarantee port will not be open for portscanner - if (watchable) { - startAspCoreBackendWithWatch(port); - } else { - startAspCoreBackend(port); - } - }); - - // prototype - app['mainWindowURL'] = ''; - app['mainWindow'] = null; - - // @ts-ignore - io.on('connection', (socket) => { - socket.on('disconnect', function (reason) { - console.log('Got disconnect! Reason: ' + reason); - try { - if (hostHook) { - const hostHookScriptFilePath = path.join(__dirname, 'ElectronHostHook', 'index.js'); - delete require.cache[require.resolve(hostHookScriptFilePath)]; - hostHook = undefined; - } - } catch (error) { - console.error(error.message); - } - }); - - if (global['electronsocket'] === undefined) { - global['electronsocket'] = socket; - global['electronsocket'].setMaxListeners(0); - } - - console.log( - 'ASP.NET Core Application connected...', - 'global.electronsocket', - global['electronsocket'].id, - new Date() - ); - - if (appApi === undefined) appApi = require('./api/app')(socket, app); - if (browserWindows === undefined) browserWindows = require('./api/browserWindows')(socket, app); - if (commandLine === undefined) commandLine = require('./api/commandLine')(socket, app); - if (autoUpdater === undefined) autoUpdater = require('./api/autoUpdater')(socket); - if (ipc === undefined) ipc = require('./api/ipc')(socket); - if (menu === undefined) menu = require('./api/menu')(socket); - if (dialogApi === undefined) dialogApi = require('./api/dialog')(socket); - if (notification === undefined) notification = require('./api/notification')(socket); - if (tray === undefined) tray = require('./api/tray')(socket); - if (webContents === undefined) webContents = require('./api/webContents')(socket); - if (globalShortcut === undefined) globalShortcut = require('./api/globalShortcut')(socket); - if (shellApi === undefined) shellApi = require('./api/shell')(socket); - if (screen === undefined) screen = require('./api/screen')(socket); - if (clipboard === undefined) clipboard = require('./api/clipboard')(socket); - if (browserView === undefined) browserView = require('./api/browserView').browserViewApi(socket); - if (powerMonitor === undefined) powerMonitor = require('./api/powerMonitor')(socket); - if (nativeTheme === undefined) nativeTheme = require('./api/nativeTheme')(socket); - if (dock === undefined) dock = require('./api/dock')(socket); - - socket.on('register-app-open-file-event', (id) => { - global['electronsocket'] = socket; - - app.on('open-file', (event, file) => { - event.preventDefault(); - - global['electronsocket'].emit('app-open-file' + id, file); - }); - - if (launchFile) { - global['electronsocket'].emit('app-open-file' + id, launchFile); - } - }); - - socket.on('register-app-open-url-event', (id) => { - global['electronsocket'] = socket; - - app.on('open-url', (event, url) => { - event.preventDefault(); - - global['electronsocket'].emit('app-open-url' + id, url); - }); - - if (launchUrl) { - global['electronsocket'].emit('app-open-url' + id, launchUrl); - } - }); - - try { - const hostHookScriptFilePath = path.join(__dirname, 'ElectronHostHook', 'index.js'); - - if (isModuleAvailable(hostHookScriptFilePath) && hostHook === undefined) { - const { HookService } = require(hostHookScriptFilePath); - hostHook = new HookService(socket, app); - hostHook.onHostReady(); - } - } catch (error) { - console.error(error.message); - } - }); -} - -function isModuleAvailable(name) { - try { - require.resolve(name); - return true; - } catch (e) {} - return false; -} - -function startAspCoreBackend(electronPort) { - if (manifestJsonFile.aspCoreBackendPort) { - startBackend(manifestJsonFile.aspCoreBackendPort); - } else { - // hostname needs to be localhost, otherwise Windows Firewall will be triggered. - portscanner.findAPortNotInUse(electronPort + 1, 65535, 'localhost', function (error, electronWebPort) { - startBackend(electronWebPort); - }); - } - - function startBackend(aspCoreBackendPort) { - console.log('ASP.NET Core Port: ' + aspCoreBackendPort); - loadURL = `http://localhost:${aspCoreBackendPort}`; - const parameters = [ - getEnvironmentParameter(), - `/electronPort=${electronPort}`, - `/electronWebPort=${aspCoreBackendPort}`, - ]; - let binaryFile = manifestJsonFile.executable; - - const os = require('os'); - if (os.platform() === 'win32') { - binaryFile = binaryFile + '.exe'; - } - - let binFilePath = path.join(currentBinPath, binaryFile); - var options = { cwd: currentBinPath }; - apiProcess = cProcess(binFilePath, parameters, options); - - apiProcess.stdout.on('data', (data) => { - console.log(`stdout: ${data.toString()}`); - }); - } -} - -function startAspCoreBackendWithWatch(electronPort) { - if (manifestJsonFile.aspCoreBackendPort) { - startBackend(manifestJsonFile.aspCoreBackendPort); - } else { - // hostname needs to be localhost, otherwise Windows Firewall will be triggered. - portscanner.findAPortNotInUse(electronPort + 1, 65535, 'localhost', function (error, electronWebPort) { - startBackend(electronWebPort); - }); - } - - function startBackend(aspCoreBackendPort) { - console.log('ASP.NET Core Watch Port: ' + aspCoreBackendPort); - loadURL = `http://localhost:${aspCoreBackendPort}`; - const parameters = [ - 'watch', - 'run', - getEnvironmentParameter(), - `/electronPort=${electronPort}`, - `/electronWebPort=${aspCoreBackendPort}`, - ]; - - var options = { - cwd: currentBinPath, - env: process.env, - }; - apiProcess = cProcess('dotnet', parameters, options); - - apiProcess.stdout.on('data', (data) => { - console.log(`stdout: ${data.toString()}`); - }); - } -} - -function getEnvironmentParameter() { - if (manifestJsonFile.environment) { - return '--environment=' + manifestJsonFile.environment; - } - - return ''; -} diff --git a/src/ElectronNET.Host/package-lock.json b/src/ElectronNET.Host/package-lock.json index a5258df7..7b7cbe62 100644 --- a/src/ElectronNET.Host/package-lock.json +++ b/src/ElectronNET.Host/package-lock.json @@ -1,1634 +1,9 @@ { - "name": "electron.net.host", + "name": "@electronnet/host", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "electron.net.host", - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "dasherize": "^2.0.0", - "electron-updater": "^5.3.0", - "image-size": "^1.0.2", - "portscanner": "^2.2.0", - "socket.io": "^4.6.1" - }, - "devDependencies": { - "@types/node": "^18.15.5", - "electron": "^23.2.0", - "tslint": "^6.1.3", - "typescript": "^5.0.2" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@electron/get": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.2.tgz", - "integrity": "sha512-eFZVFoRXb3GFGd7Ak7W4+6jBl9wBtiZ4AaYOse97ej6mKj5tkyO0dUnUChs1IhJZtx1BENo4/p4WUTXpi6vT+g==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "env-paths": "^2.2.0", - "fs-extra": "^8.1.0", - "got": "^11.8.5", - "progress": "^2.0.3", - "semver": "^6.2.0", - "sumchecker": "^3.0.1" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "global-agent": "^3.0.0" - } - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" - }, - "node_modules/@types/cors": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", - "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "18.15.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.5.tgz", - "integrity": "sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==" - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" - }, - "node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/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, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/boolean": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", - "dev": true, - "optional": true - }, - "node_modules/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, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/builder-util-runtime": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", - "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", - "dependencies": { - "debug": "^4.3.4", - "sax": "^1.2.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/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, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/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, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/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 - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/dasherize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz", - "integrity": "sha512-APql/TZ6FdLEpf2z7/X2a2zyqK8juYtqaSVqxw9mYoQ64CXkfU15AeLh8pUszT8+fnYjgm6t0aIYpWKJbnLkuA==" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dev": true, - "optional": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true, - "optional": true - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/electron": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-23.2.0.tgz", - "integrity": "sha512-De9e21cri0QYct/w6tTNOnKyCt9RVKUw5F8PEN4FPzGR9tr6IT53uyt42uH754uJWrZeLMCAdoXy6/0GmMmYZA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@electron/get": "^2.0.0", - "@types/node": "^16.11.26", - "extract-zip": "^2.0.1" - }, - "bin": { - "electron": "cli.js" - }, - "engines": { - "node": ">= 12.20.55" - } - }, - "node_modules/electron-updater": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-5.3.0.tgz", - "integrity": "sha512-iKEr7yQBcvnQUPnSDYGSWC9t0eF2YbZWeYYYZzYxdl+HiRejXFENjYMnYjoOm2zxyD6Cr2JTHZhp9pqxiXuCOw==", - "dependencies": { - "@types/semver": "^7.3.6", - "builder-util-runtime": "9.1.1", - "fs-extra": "^10.0.0", - "js-yaml": "^4.1.0", - "lazy-val": "^1.0.5", - "lodash.escaperegexp": "^4.1.2", - "lodash.isequal": "^4.5.0", - "semver": "^7.3.5", - "typed-emitter": "^2.1.0" - } - }, - "node_modules/electron-updater/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/electron-updater/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/electron-updater/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/electron-updater/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/electron/node_modules/@types/node": { - "version": "16.18.16", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.16.tgz", - "integrity": "sha512-ZOzvDRWp8dCVBmgnkIqYCArgdFOO9YzocZp8Ra25N/RStKiWvMOXHMz+GjSeVNe5TstaTmTWPucGJkDw0XXJWA==", - "dev": true - }, - "node_modules/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, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.1.tgz", - "integrity": "sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==", - "dependencies": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.11.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/engine.io-parser": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", - "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/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 - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/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, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dev": true, - "optional": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/global-agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", - "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", - "dev": true, - "optional": true, - "dependencies": { - "boolean": "^3.0.1", - "es6-error": "^4.1.1", - "matcher": "^3.0.0", - "roarr": "^2.15.3", - "semver": "^7.3.2", - "serialize-error": "^7.0.1" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/global-agent/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "optional": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "optional": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/image-size": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", - "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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==", - "dependencies": { - "lodash.isfinite": "^3.3.2" - } - }, - "node_modules/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 - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true, - "optional": true - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/lazy-val": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", - "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==" - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.escaperegexp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" - }, - "node_modules/lodash.isfinite": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", - "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==" - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/matcher": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", - "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "dev": true, - "optional": true, - "dependencies": { - "escape-string-regexp": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/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, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "optional": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "node_modules/portscanner": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", - "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", - "dependencies": { - "async": "^2.6.0", - "is-number-like": "^1.0.3" - }, - "engines": { - "node": ">=0.4", - "npm": ">=1.0.0" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/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, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "dependencies": { - "inherits": "~2.0.3" - } - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/roarr": { - "version": "2.15.4", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", - "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", - "dev": true, - "optional": true, - "dependencies": { - "boolean": "^3.0.1", - "detect-node": "^2.0.4", - "globalthis": "^1.0.1", - "json-stringify-safe": "^5.0.1", - "semver-compare": "^1.0.0", - "sprintf-js": "^1.1.2" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "optional": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/rxjs/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "optional": true - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "dev": true, - "optional": true - }, - "node_modules/serialize-error": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", - "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "dev": true, - "optional": true, - "dependencies": { - "type-fest": "^0.13.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/socket.io": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", - "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", - "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.2", - "engine.io": "~6.4.1", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", - "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", - "dependencies": { - "ws": "~8.11.0" - } - }, - "node_modules/socket.io-parser": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", - "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/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 - }, - "node_modules/sumchecker": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", - "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "dev": true, - "dependencies": { - "debug": "^4.1.0" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/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, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", - "dev": true, - "dependencies": { - "@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.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" - }, - "engines": { - "node": ">=4.8.0" - }, - "peerDependencies": { - "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" - } - }, - "node_modules/tslint/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/tslint/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/tslint/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/tslint/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "peerDependencies": { - "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" - } - }, - "node_modules/type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", - "integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==", - "optionalDependencies": { - "rxjs": "*" - } - }, - "node_modules/typescript": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz", - "integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - } - }, "dependencies": { - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, "@electron/get": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.2.tgz", @@ -1645,6 +20,160 @@ "sumchecker": "^3.0.1" } }, + "@esbuild/android-arm": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.15.tgz", + "integrity": "sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.15.tgz", + "integrity": "sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.15.tgz", + "integrity": "sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.15.tgz", + "integrity": "sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.15.tgz", + "integrity": "sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.15.tgz", + "integrity": "sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.15.tgz", + "integrity": "sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.15.tgz", + "integrity": "sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.15.tgz", + "integrity": "sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.15.tgz", + "integrity": "sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.15.tgz", + "integrity": "sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.15.tgz", + "integrity": "sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.15.tgz", + "integrity": "sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.15.tgz", + "integrity": "sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.15.tgz", + "integrity": "sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.15.tgz", + "integrity": "sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.15.tgz", + "integrity": "sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.15.tgz", + "integrity": "sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.15.tgz", + "integrity": "sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.15.tgz", + "integrity": "sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.15.tgz", + "integrity": "sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.15.tgz", + "integrity": "sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA==", + "dev": true, + "optional": true + }, "@sindresorhus/is": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", @@ -1654,7 +183,8 @@ "@socket.io/component-emitter": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true }, "@szmarczak/http-timer": { "version": "4.0.6", @@ -1680,16 +210,24 @@ "@types/cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true }, "@types/cors": { "version": "2.8.13", "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", + "dev": true, "requires": { "@types/node": "*" } }, + "@types/dasherize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/dasherize/-/dasherize-2.0.0.tgz", + "integrity": "sha512-p3NbpO2u+Ozru0lF2ex1HPxMCmuNQgrQBSnVtk0Ap23qRYBHFVurI1XEkYsaxrzFVYR02Zki6o9Uz2ulywNXtw==", + "dev": true + }, "@types/http-cache-semantics": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", @@ -1708,7 +246,14 @@ "@types/node": { "version": "18.15.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.5.tgz", - "integrity": "sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==" + "integrity": "sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==", + "dev": true + }, + "@types/portscanner": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/portscanner/-/portscanner-2.1.1.tgz", + "integrity": "sha512-1NsVIbgBKvrqxwtMN0V6CLji1ERwKSI/RWz0J3y++CzSwYNGBStCfpIFgxV3ZwxsDR5PoZqoUWhwraDm+Ztn0Q==", + "dev": true }, "@types/responselike": { "version": "1.0.0", @@ -1722,7 +267,8 @@ "@types/semver": { "version": "7.3.13", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true }, "@types/yauzl": { "version": "2.10.0", @@ -1738,43 +284,32 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, "requires": { "mime-types": "~2.1.34", "negotiator": "0.6.3" } }, - "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": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "async": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, "requires": { "lodash": "^4.17.14" } }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, "base64id": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true }, "boolean": { "version": "3.2.0", @@ -1783,16 +318,6 @@ "dev": true, "optional": 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-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -1803,17 +328,12 @@ "version": "9.1.1", "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", + "dev": true, "requires": { "debug": "^4.3.4", "sax": "^1.2.4" } }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", - "dev": true - }, "cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -1835,25 +355,6 @@ "responselike": "^2.0.0" } }, - "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" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - } - } - }, "clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -1863,42 +364,17 @@ "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "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 - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, "cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true }, "cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, "requires": { "object-assign": "^4", "vary": "^1" @@ -1907,12 +383,14 @@ "dasherize": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz", - "integrity": "sha512-APql/TZ6FdLEpf2z7/X2a2zyqK8juYtqaSVqxw9mYoQ64CXkfU15AeLh8pUszT8+fnYjgm6t0aIYpWKJbnLkuA==" + "integrity": "sha512-APql/TZ6FdLEpf2z7/X2a2zyqK8juYtqaSVqxw9mYoQ64CXkfU15AeLh8pUszT8+fnYjgm6t0aIYpWKJbnLkuA==", + "dev": true }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "requires": { "ms": "2.1.2" } @@ -1958,12 +436,6 @@ "dev": true, "optional": true }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, "electron": { "version": "23.2.0", "resolved": "https://registry.npmjs.org/electron/-/electron-23.2.0.tgz", @@ -1987,6 +459,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-5.3.0.tgz", "integrity": "sha512-iKEr7yQBcvnQUPnSDYGSWC9t0eF2YbZWeYYYZzYxdl+HiRejXFENjYMnYjoOm2zxyD6Cr2JTHZhp9pqxiXuCOw==", + "dev": true, "requires": { "@types/semver": "^7.3.6", "builder-util-runtime": "9.1.1", @@ -2003,6 +476,7 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -2013,6 +487,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" @@ -2022,6 +497,7 @@ "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, "requires": { "lru-cache": "^6.0.0" } @@ -2029,7 +505,8 @@ "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true } } }, @@ -2046,6 +523,7 @@ "version": "6.4.1", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.1.tgz", "integrity": "sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==", + "dev": true, "requires": { "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", @@ -2062,7 +540,8 @@ "engine.io-parser": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", - "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==" + "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", + "dev": true }, "env-paths": { "version": "2.2.1", @@ -2077,6 +556,36 @@ "dev": true, "optional": true }, + "esbuild": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.15.tgz", + "integrity": "sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.17.15", + "@esbuild/android-arm64": "0.17.15", + "@esbuild/android-x64": "0.17.15", + "@esbuild/darwin-arm64": "0.17.15", + "@esbuild/darwin-x64": "0.17.15", + "@esbuild/freebsd-arm64": "0.17.15", + "@esbuild/freebsd-x64": "0.17.15", + "@esbuild/linux-arm": "0.17.15", + "@esbuild/linux-arm64": "0.17.15", + "@esbuild/linux-ia32": "0.17.15", + "@esbuild/linux-loong64": "0.17.15", + "@esbuild/linux-mips64el": "0.17.15", + "@esbuild/linux-ppc64": "0.17.15", + "@esbuild/linux-riscv64": "0.17.15", + "@esbuild/linux-s390x": "0.17.15", + "@esbuild/linux-x64": "0.17.15", + "@esbuild/netbsd-x64": "0.17.15", + "@esbuild/openbsd-x64": "0.17.15", + "@esbuild/sunos-x64": "0.17.15", + "@esbuild/win32-arm64": "0.17.15", + "@esbuild/win32-ia32": "0.17.15", + "@esbuild/win32-x64": "0.17.15" + } + }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -2084,12 +593,6 @@ "dev": true, "optional": 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==", - "dev": true - }, "extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -2122,17 +625,12 @@ "universalify": "^0.1.0" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "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 + "dev": true, + "optional": true }, "get-intrinsic": { "version": "1.2.0", @@ -2155,20 +653,6 @@ "pump": "^3.0.0" } }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "global-agent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", @@ -2228,23 +712,19 @@ "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, + "optional": true, "requires": { "function-bind": "^1.1.1" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, "has-property-descriptors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", @@ -2282,52 +762,31 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", - "requires": { - "queue": "6.0.2" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "queue": "6.0.2" } }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": 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==", + "dev": true, "requires": { "lodash.isfinite": "^3.3.2" } }, - "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": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, "requires": { "argparse": "^2.0.1" } @@ -2366,27 +825,32 @@ "lazy-val": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", - "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==" + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", + "dev": true }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true }, "lodash.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", + "dev": true }, "lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true }, "lodash.isfinite": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", - "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==" + "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", + "dev": true }, "lowercase-keys": { "version": "2.0.0", @@ -2398,6 +862,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "requires": { "yallist": "^4.0.0" } @@ -2415,12 +880,14 @@ "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "requires": { "mime-db": "1.52.0" } @@ -2431,39 +898,17 @@ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true }, "normalize-url": { "version": "6.1.0", @@ -2474,7 +919,8 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true }, "object-keys": { "version": "1.1.1", @@ -2498,18 +944,6 @@ "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", "dev": true }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -2520,6 +954,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", + "dev": true, "requires": { "async": "^2.6.0", "is-number-like": "^1.0.3" @@ -2545,6 +980,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "dev": true, "requires": { "inherits": "~2.0.3" } @@ -2555,17 +991,6 @@ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, "resolve-alpn": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", @@ -2600,6 +1025,7 @@ "version": "7.8.0", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "dev": true, "optional": true, "requires": { "tslib": "^2.1.0" @@ -2609,6 +1035,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true, "optional": true } } @@ -2616,7 +1043,8 @@ "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true }, "semver": { "version": "6.3.0", @@ -2645,6 +1073,7 @@ "version": "4.6.1", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", + "dev": true, "requires": { "accepts": "~1.3.4", "base64id": "~2.0.0", @@ -2658,6 +1087,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "dev": true, "requires": { "ws": "~8.11.0" } @@ -2666,6 +1096,7 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", + "dev": true, "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" @@ -2687,90 +1118,6 @@ "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" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "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.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - } - } - }, - "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" - } - }, "type-fest": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", @@ -2782,6 +1129,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", "integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==", + "dev": true, "requires": { "rxjs": "*" } @@ -2801,7 +1149,8 @@ "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true }, "wrappy": { "version": "1.0.2", @@ -2813,12 +1162,13 @@ "version": "8.11.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "requires": {} + "dev": true }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "yauzl": { "version": "2.10.0", diff --git a/src/ElectronNET.Host/package.json b/src/ElectronNET.Host/package.json index ad77a940..8335e0ab 100644 --- a/src/ElectronNET.Host/package.json +++ b/src/ElectronNET.Host/package.json @@ -1,27 +1,29 @@ { - "name": "electron.net.host", + "name": "@electronnet/host", "version": "1.0.0", "description": "Electron-Host for Electron.NET.", "repository": { "url": "https://github.com/ElectronNET/Electron.NET" }, - "main": "main.js", + "main": "dist/main.js", "author": "Gregor Biswanger, Florian Rappl", "license": "MIT", "scripts": { - "start": "tsc -p ." + "start": "npm run build:main && npm run build:build-helper", + "build:main": "esbuild src/main.ts --external:electron --platform=node --target=es2020 --bundle --outdir=dist", + "build:build-helper": "esbuild src/build-helper.ts --external:electron --platform=node --target=es2020 --bundle --outdir=dist" }, "dependencies": { + "@types/dasherize": "^2.0.0", + "@types/node": "^18.15.5", + "@types/portscanner": "^2.1.1", "dasherize": "^2.0.0", + "electron": "^23.2.0", "electron-updater": "^5.3.0", + "esbuild": "^0.17.15", "image-size": "^1.0.2", "portscanner": "^2.2.0", - "socket.io": "^4.6.1" - }, - "devDependencies": { - "@types/node": "^18.15.5", - "electron": "^23.2.0", - "tslint": "^6.1.3", + "socket.io": "^4.6.1", "typescript": "^5.0.2" } } diff --git a/src/ElectronNET.Host/splashscreen/index.html b/src/ElectronNET.Host/splashscreen/index.html index ddd85e22..4da3cbcb 100644 --- a/src/ElectronNET.Host/splashscreen/index.html +++ b/src/ElectronNET.Host/splashscreen/index.html @@ -13,9 +13,14 @@ body { overflow: hidden; } + + .splashscreen-image { + width: 100%; + height: 100%; + } - splashscreen + splashscreen