From b3ced506b44ba3f0f42b3285489f626b8396e01e Mon Sep 17 00:00:00 2001 From: cabboose <57953499+shayanhabibi@users.noreply.github.com> Date: Sat, 25 Apr 2026 08:59:57 +0800 Subject: [PATCH 1/8] fix(ci): Build system on cloud CI should be more resilient to errors (#61) --- ci/Build.fs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/ci/Build.fs b/ci/Build.fs index 6427e98..597829a 100644 --- a/ci/Build.fs +++ b/ci/Build.fs @@ -141,7 +141,20 @@ Target.create Ops.push (fun _ -> Target.deactivateFinal Ops.gitnet) Target.create Ops.generateApiDocs (ignore >> ApiDocs.validateDir >> ApiDocs.build) -Target.create Ops.setupTest (fun _ -> Electron.installTests Args.npmCi) +Target.create Ops.setupTest (fun _ -> + // If the CI fails because of a lock file error, then we'll do a standard install first + // to update the lock file, try again, and then fallback again to a clean install if that also fails. + try Electron.installTests Args.npmCi with + | e when + Args.npmCi + && (e.Message.Contains("code EUSAGE") + || e.Message.Contains("Please update your lock file with `npm install`")) -> + try + Electron.installTests false + with + | _ -> Electron.installTests true + | _ -> reraise() +) Target.create Ops.test <| function From 49e1eea3d131fda8bd9f47356608619236583c47 Mon Sep 17 00:00:00 2001 From: shayanhabibi Date: Sun, 26 Apr 2026 19:43:37 +0800 Subject: [PATCH 2/8] chore(ci): try prevent package-lock block --- ci/Build.fs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/ci/Build.fs b/ci/Build.fs index 597829a..944e0fa 100644 --- a/ci/Build.fs +++ b/ci/Build.fs @@ -142,18 +142,17 @@ Target.create Ops.push (fun _ -> Target.create Ops.generateApiDocs (ignore >> ApiDocs.validateDir >> ApiDocs.build) Target.create Ops.setupTest (fun _ -> + let tryRun (withNpmCi: bool) = + try Electron.installTests withNpmCi + ValueNone + with e -> ValueSome e + // If the CI fails because of a lock file error, then we'll do a standard install first // to update the lock file, try again, and then fallback again to a clean install if that also fails. - try Electron.installTests Args.npmCi with - | e when - Args.npmCi - && (e.Message.Contains("code EUSAGE") - || e.Message.Contains("Please update your lock file with `npm install`")) -> - try - Electron.installTests false - with - | _ -> Electron.installTests true - | _ -> reraise() + tryRun Args.npmCi + |> ValueOption.bind (fun _ -> tryRun false) + |> ValueOption.bind (fun _ -> tryRun true) + |> ValueOption.iter raise ) Target.create Ops.test From d0a61eb26ed96b22998ebb6b944660885de2ff15 Mon Sep 17 00:00:00 2001 From: shayanhabibi Date: Sun, 26 Apr 2026 19:54:39 +0800 Subject: [PATCH 3/8] chore(ci): update FSharp.Core version and global json --- Build.fsproj | 4 ++-- global.json | 2 +- tests/Build.Tests/Build.Tests.fsproj | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Build.fsproj b/Build.fsproj index f7d3ea4..0afe469 100644 --- a/Build.fsproj +++ b/Build.fsproj @@ -29,8 +29,8 @@ - - + + diff --git a/global.json b/global.json index 79f0661..032440a 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "10.0.100", + "version": "10.0.5", "rollForward": "latestMinor", "allowPrerelease": true } diff --git a/tests/Build.Tests/Build.Tests.fsproj b/tests/Build.Tests/Build.Tests.fsproj index 678e9be..459f44f 100644 --- a/tests/Build.Tests/Build.Tests.fsproj +++ b/tests/Build.Tests/Build.Tests.fsproj @@ -17,7 +17,7 @@ - + From 2a668bf40a343335bf255a57e219d55ff0ddec67 Mon Sep 17 00:00:00 2001 From: shayanhabibi Date: Sun, 26 Apr 2026 19:58:19 +0800 Subject: [PATCH 4/8] chore(ci): update global.json --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index 032440a..60c7da5 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "10.0.5", + "version": "10.0.203", "rollForward": "latestMinor", "allowPrerelease": true } From a25ec38dfdc9167ef0baac92d66d9658b378b2e3 Mon Sep 17 00:00:00 2001 From: GitHub Action <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 26 Apr 2026 12:01:31 +0000 Subject: [PATCH 5/8] feat: Electron binding update to match v40.9.2 This commit is automatically generated by the Fable.Electron CI. generated: true --- ci/cache.json | 2 +- .../Fable.Electron.Forge.fsproj | 4 +- .../Fable.Electron.Remoting.fsproj | 4 +- src/Fable.Electron/Fable.Electron.fsproj | 6 +- src/Fable.Electron/Program.fs | 179 +++++++++++------- 5 files changed, 123 insertions(+), 72 deletions(-) diff --git a/ci/cache.json b/ci/cache.json index e06aec7..9b7c82c 100644 --- a/ci/cache.json +++ b/ci/cache.json @@ -1 +1 @@ -{"createdAt":"2026-02-19T05:27:01Z","isLatest":true,"isPrerelease":false,"tagName":"v40.6.0"} \ No newline at end of file +{"createdAt":"2026-04-21T18:21:44Z","isLatest":false,"isPrerelease":false,"tagName":"v40.9.2"} \ No newline at end of file diff --git a/src/Fable.Electron.Forge/Fable.Electron.Forge.fsproj b/src/Fable.Electron.Forge/Fable.Electron.Forge.fsproj index d0b85f7..19c012a 100644 --- a/src/Fable.Electron.Forge/Fable.Electron.Forge.fsproj +++ b/src/Fable.Electron.Forge/Fable.Electron.Forge.fsproj @@ -20,8 +20,8 @@ Shayan Habibi and Contributors Copyright (c) 2025 Shayan Habibi and Fable-Hub contributors README.md - 8.1.0 - 8.1.0 + 8.2.0 + 8.2.0 7.0.0 feleico-dark.png diff --git a/src/Fable.Electron.Remoting/Fable.Electron.Remoting.fsproj b/src/Fable.Electron.Remoting/Fable.Electron.Remoting.fsproj index b81c8f7..c07260c 100644 --- a/src/Fable.Electron.Remoting/Fable.Electron.Remoting.fsproj +++ b/src/Fable.Electron.Remoting/Fable.Electron.Remoting.fsproj @@ -19,8 +19,8 @@ Fable;F#;FSharp;Electron;Bindings;Native;JavaScript;JS;Remoting;fable-javascript Shayan Habibi and Contributors Copyright (c) 2025 Shayan Habibi and Fable-Hub contributors - 7.1.0 - 7.1.0 + 7.2.0 + 7.2.0 README.md 0.1.0 feleico-dark.png diff --git a/src/Fable.Electron/Fable.Electron.fsproj b/src/Fable.Electron/Fable.Electron.fsproj index 3065ebb..2653a7e 100644 --- a/src/Fable.Electron/Fable.Electron.fsproj +++ b/src/Fable.Electron/Fable.Electron.fsproj @@ -19,9 +19,9 @@ Shayan Habibi and Contributors Copyright (c) 2025 Shayan Habibi and Fable-Hub contributors README.md - 40.6.0 - 40.6.0 - 40.6.0 + 40.9.2 + 40.9.2 + 40.9.2 feleico-dark.png diff --git a/src/Fable.Electron/Program.fs b/src/Fable.Electron/Program.fs index a0060c4..66726d5 100644 --- a/src/Fable.Electron/Program.fs +++ b/src/Fable.Electron/Program.fs @@ -19,9 +19,12 @@ module Types = /// The requested output format of the shared texture. Defaults to argb. The name is originated from Chromium media::VideoPixelFormat enum /// suffix and only subset of them are supported. The actual output pixel format and color space of the texture should /// refer to OffscreenSharedTexture object in the paint event. + /// The device scale factor of the offscreen rendering output. If not set, will use primary display's scale factor as + /// default. ( ?useSharedTexture: bool, - ?sharedTexturePixelFormat: Enums.Types.WebPreferences.Offscreen.SharedTexturePixelFormat + ?sharedTexturePixelFormat: Enums.Types.WebPreferences.Offscreen.SharedTexturePixelFormat, + ?deviceScaleFactor: float ) = class end @@ -42,6 +45,12 @@ module Types = member val sharedTexturePixelFormat: Enums.Types.WebPreferences.Offscreen.SharedTexturePixelFormat = Unchecked.defaultof<_> with get, set + /// + /// The device scale factor of the offscreen rendering output. If not set, will use primary display's scale factor as default. + /// + [] + member val deviceScaleFactor: float = Unchecked.defaultof<_> with get, set + [] type DefaultFontFamily /// Defaults to Times New Roman. @@ -606,6 +615,7 @@ module Types = /// Default false. /// Default false. /// Enable V8 code cache for the scheme, only works when standard is also set to true. Default false. + /// Allow Chrome extensions to be used on pages served over this protocol. Default false. ( ?standard: bool, ?secure: bool, @@ -614,7 +624,8 @@ module Types = ?supportFetchAPI: bool, ?corsEnabled: bool, ?stream: bool, - ?codeCache: bool + ?codeCache: bool, + ?allowExtensions: bool ) = class end @@ -667,6 +678,12 @@ module Types = [] member val codeCache: bool = Unchecked.defaultof<_> with get, set + /// + /// Allow Chrome extensions to be used on pages served over this protocol. Default false. + /// + [] + member val allowExtensions: bool = Unchecked.defaultof<_> with get, set + module BrowserWindowConstructorOptions = [] type TitleBarOverlay @@ -25326,8 +25343,8 @@ module Main = /// was opened as a login item that should restore the state from the previous session. This indicates that the app /// should restore the windows that were open the last time the app was closed. This setting is not available on /// MAS builds or on macOS 13 and up. - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || can be one of - /// not-registered, enabled, requires-approval, or not-found. + /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || can be not-registered, enabled, + /// requires-approval, or not-found. /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ || true if app is /// set to open at login and its run key is not deactivated. This differs from openAtLogin as it ignores the /// args option, this property will be true if the given executable would be launched at login with any arguments. @@ -25352,7 +25369,7 @@ module Main = #endif #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC , - status: string + status: Main.Enums.App.GetLoginItemSettings.Status #endif #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN , @@ -25415,10 +25432,10 @@ module Main = #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC /// /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ - /// can be one of not-registered, enabled, requires-approval, or not-found. + /// can be not-registered, enabled, requires-approval, or not-found. /// [] - member val status: string = Unchecked.defaultof<_> with get, set + member val status: Main.Enums.App.GetLoginItemSettings.Status = Unchecked.defaultof<_> with get, set #endif #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN @@ -25450,7 +25467,7 @@ module Main = /// app that corresponds to a registry entry. /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ || the command-line arguments to /// pass to the executable. - /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ || one of user or + /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ || can be user or /// machine. Indicates whether the registry entry is under HKEY_CURRENT USER or HKEY_LOCAL_MACHINE. /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ || true if the app /// registry key is startup approved and therefore shows as enabled in Task Manager and Windows settings. @@ -25468,7 +25485,7 @@ module Main = #endif #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN , - scope: string + scope: Main.Enums.App.GetLoginItemSettings.LaunchItems.Scope #endif #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN , @@ -25508,10 +25525,11 @@ module Main = #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN /// /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ - /// one of user or machine. Indicates whether the registry entry is under HKEY_CURRENT USER or HKEY_LOCAL_MACHINE. + /// can be user or machine. Indicates whether the registry entry is under HKEY_CURRENT USER or HKEY_LOCAL_MACHINE. /// [] - member val scope: string = Unchecked.defaultof<_> with get, set + member val scope: Main.Enums.App.GetLoginItemSettings.LaunchItems.Scope = + Unchecked.defaultof<_> with get, set #endif #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN @@ -25526,9 +25544,9 @@ module Main = [] type Options - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || Can be one of - /// mainAppService, agentService, daemonService, or loginItemService. Defaults to mainAppService. Only available on macOS 13 and up. See app.setLoginItemSettings for more information - /// about each type. + /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || Can be mainAppService, agentService, + /// daemonService, or loginItemService. Defaults to mainAppService. Only available on macOS 13 and up. See app.setLoginItemSettings for more information about each + /// type. /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || The name of the /// service. Required if type is non-default. Only available on macOS 13 and up. /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ || The executable path to @@ -25537,7 +25555,7 @@ module Main = /// compare against. Defaults to an empty array. ( #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC - ?``type``: string + ?``type``: Main.Enums.App.GetLoginItemSettings.Options.Type #endif #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC , @@ -25558,11 +25576,12 @@ module Main = #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC /// /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ - /// Can be one of mainAppService, agentService, daemonService, or loginItemService. Defaults to mainAppService. Only available on macOS 13 and up. See - /// app.setLoginItemSettings for more information about each type. + /// Can be mainAppService, agentService, daemonService, or loginItemService. Defaults to mainAppService. Only available on macOS 13 and up. See app.setLoginItemSettings for + /// more information about each type. /// [] - member val ``type``: string = Unchecked.defaultof<_> with get, set + member val ``type``: Main.Enums.App.GetLoginItemSettings.Options.Type = + Unchecked.defaultof<_> with get, set #endif #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC @@ -27104,21 +27123,6 @@ module Main = | [] Serviceworkers | [] Cachestorage - module Details = - [] - type Level = - | [] Info - | [] Warning - | [] Error - | [] Debug - - [] - type RunningStatus = - | [] Starting - | [] Running - | [] Stopping - | [] Stopped - module ServiceWorkers = module ConsoleMessage = module MessageDetails = @@ -27230,6 +27234,27 @@ module Main = | [] Locked | [] Unknown + module Details = + [] + type Level = + | [] Info + | [] Warning + | [] Error + | [] Debug + + [] + type RunningStatus = + | [] Starting + | [] Running + | [] Stopping + | [] Stopped + + [] + type Reason = + | [] UserCanceled + | [] ApplicationHidden + | [] TimedOut + module Notification = [] type TimeoutType = @@ -28082,6 +28107,28 @@ module Main = /// | [] LoginItemService + module GetLoginItemSettings = + module LaunchItems = + [] + type Scope = + | [] User + | [] Machine + + [] + type Status = + | [] NotRegistered + | [] Enabled + | [] RequiresApproval + | [] NotFound + + module Options = + [] + type Type = + | [] MainAppService + | [] AgentService + | [] DaemonService + | [] LoginItemService + module GetGPUInfo = [] type InfoType = @@ -28190,9 +28237,9 @@ module Main = type Details = inherit Event /// - /// The string the user entered into the inline reply field. + /// The reason the notification was closed. This can be 'userCanceled', 'applicationHidden', or 'timedOut'. /// - abstract member reply: string with get, set + abstract member reason: Main.Enums.Details.Reason with get, set /// /// ⚠ Process Availability: Main ✔ | Renderer ❌ | Utility ❌ | Exported ❌ @@ -36723,8 +36770,8 @@ module Main = Unchecked.defaultof<_> /// - /// The current absolute position of the mouse pointer.

> [!NOTE] The return value is a DIP point, not a screen physical - /// point. + /// The current absolute position of the mouse pointer.

Not supported on Wayland (Linux).

> [!NOTE] The return value is a DIP point, + /// not a screen physical point. ///
[] static member inline getCursorScreenPoint() : Point = Unchecked.defaultof<_> @@ -38026,7 +38073,7 @@ module Main = /// but the close event will not be emitted again. ///
[] - member inline _.onClose(handler: Event -> unit) : unit = Unchecked.defaultof<_> + member inline _.onClose(handler: Main.Details -> unit) : unit = Unchecked.defaultof<_> /// /// Emitted when the notification is closed by manual intervention from the user.

This event is not guaranteed to be emitted in @@ -38036,7 +38083,7 @@ module Main = /// but the close event will not be emitted again. ///
[] - member inline _.onceClose(handler: Event -> unit) : unit = Unchecked.defaultof<_> + member inline _.onceClose(handler: Main.Details -> unit) : unit = Unchecked.defaultof<_> /// /// Emitted when the notification is closed by manual intervention from the user.

This event is not guaranteed to be emitted in @@ -38046,7 +38093,7 @@ module Main = /// but the close event will not be emitted again. ///
[] - member inline _.offClose(handler: Event -> unit) : unit = Unchecked.defaultof<_> + member inline _.offClose(handler: Main.Details -> unit) : unit = Unchecked.defaultof<_> #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN /// /// @@ -39147,7 +39194,7 @@ module Main = /// &. For example, &&File would result in &File displayed on the button label.

Passing null will suppress the default menu. On /// Windows and Linux, this has the additional effect of removing the menu bar from the window.

> [!NOTE] The default menu /// will be created automatically if the app does not set one. It contains standard items such as File, Edit, View, - /// Window and Help. + /// and Window. ///
/// [] @@ -39270,13 +39317,13 @@ module Main = end /// - /// A string indicating the item's unique id. This property can be dynamically changed. + /// A string indicating the item's unique id.

This property can be dynamically changed. ///
[] member val id: string = Unchecked.defaultof<_> with get, set /// - /// A string indicating the item's visible label. + /// A string indicating the item's visible label.

This property can be dynamically changed. ///
[] member val label: string = Unchecked.defaultof<_> with get, set @@ -39328,13 +39375,13 @@ module Main = /// - /// A NativeImage | string (optional) indicating the item's icon, if set. + /// A NativeImage | string (optional) indicating the item's icon, if set.

This property can be dynamically changed. ///
[] member val icon: U2 = Unchecked.defaultof<_> with get, set /// - /// A string indicating the item's sublabel. + /// A string indicating the item's sublabel.

This property can be dynamically changed. ///
[] member val sublabel: string = Unchecked.defaultof<_> with get, set @@ -39349,21 +39396,21 @@ module Main = /// - /// A boolean indicating whether the item is enabled. This property can be dynamically changed. + /// A boolean indicating whether the item is enabled.

This property can be dynamically changed. ///
[] member val enabled: bool = Unchecked.defaultof<_> with get, set /// - /// A boolean indicating whether the item is visible. This property can be dynamically changed. + /// A boolean indicating whether the item is visible.

This property can be dynamically changed. ///
[] member val visible: bool = Unchecked.defaultof<_> with get, set /// - /// A boolean indicating whether the item is checked. This property can be dynamically changed.

A checkbox menu item will toggle the - /// checked property on and off when selected.

A radio menu item will turn on its checked property when clicked, and will - /// turn off that property for all adjacent items in the same menu.

You can add a click function for additional behavior. + /// A boolean indicating whether the item is checked.

This property can be dynamically changed.

A checkbox menu item will toggle the checked + /// property on and off when selected.

A radio menu item will turn on its checked property when clicked, and will turn + /// off that property for all adjacent items in the same menu.

You can add a click function for additional behavior. ///
[] member val ``checked``: bool = Unchecked.defaultof<_> with get, set @@ -49905,18 +49952,18 @@ module Main = /// _macOS_ _Deprecated_ - true if the app was opened as a login item that should restore the state from the /// previous session. This indicates that the app should restore the windows that were open the last time the app was /// closed. This setting is not available on MAS builds or on macOS 13 and up.
* status string _macOS_ - can - /// be one of not-registered, enabled, requires-approval, or not-found.
* executableWillLaunchAtLogin boolean _Windows_ - true if app is set to open at - /// login and its run key is not deactivated. This differs from openAtLogin as it ignores the args option, this property - /// will be true if the given executable would be launched at login with any arguments.
* launchItems Object[] _Windows_
* - /// name string _Windows_ - name value of a registry entry.
* path string _Windows_ - The executable to an - /// app that corresponds to a registry entry.
* args string[] _Windows_ - the command-line arguments to pass to the - /// executable.
* scope string _Windows_ - one of user or machine. Indicates whether the registry entry is under HKEY_CURRENT - /// USER or HKEY_LOCAL_MACHINE.
* enabled boolean _Windows_ - true if the app registry key is startup approved and therefore - /// shows as enabled in Task Manager and Windows settings. - /// - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || Can be one of - /// mainAppService, agentService, daemonService, or loginItemService. Defaults to mainAppService. Only available on macOS 13 and up. See app.setLoginItemSettings for more information - /// about each type. + /// be not-registered, enabled, requires-approval, or not-found.
* executableWillLaunchAtLogin boolean _Windows_ - true if app is set to open at login and + /// its run key is not deactivated. This differs from openAtLogin as it ignores the args option, this property will be + /// true if the given executable would be launched at login with any arguments.
* launchItems Object[] _Windows_
* name string + /// _Windows_ - name value of a registry entry.
* path string _Windows_ - The executable to an app that + /// corresponds to a registry entry.
* args string[] _Windows_ - the command-line arguments to pass to the executable.
+ /// * scope string _Windows_ - can be user or machine. Indicates whether the registry entry is under HKEY_CURRENT USER or + /// HKEY_LOCAL_MACHINE.
* enabled boolean _Windows_ - true if the app registry key is startup approved and therefore shows as + /// enabled in Task Manager and Windows settings. + /// + /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || Can be mainAppService, agentService, + /// daemonService, or loginItemService. Defaults to mainAppService. Only available on macOS 13 and up. See app.setLoginItemSettings for more information about each + /// type. /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || The name of the /// service. Required if type is non-default. Only available on macOS 13 and up. /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ || The executable path to @@ -49925,8 +49972,12 @@ module Main = /// compare against. Defaults to an empty array. [] static member inline getLoginItemSettings - (?``type``: string, ?serviceName: string, ?path: string, ?args: string[]) - : Main.App.GetLoginItemSettings = + ( + ?``type``: Main.Enums.App.GetLoginItemSettings.Options.Type, + ?serviceName: string, + ?path: string, + ?args: string[] + ) : Main.App.GetLoginItemSettings = Unchecked.defaultof<_> #endif From 0108f1306724b08b2433dfef470fca7e6db5d8c9 Mon Sep 17 00:00:00 2001 From: GitHub Action <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 26 Apr 2026 12:01:32 +0000 Subject: [PATCH 6/8] [skip ci] GitNet auto file update. --- RELEASE_NOTES.md | 334 ++++++++++++++++++++++++++--------------------- 1 file changed, 183 insertions(+), 151 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 81ce851..a07b5cc 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -13,268 +13,275 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). **Scope** | Current Release | Commit Count :--- | :---: | :---: -[**Electron**](#electron) | [40.6.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Electron%29_40.4.1..._%28Electron%29_40.6.0) | 60 commits -[**Forge**](#forge) | [8.1.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Forge%29_8.0.0..._%28Forge%29_8.1.0) | 32 commits -[**Remoting**](#remoting) | [7.1.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Remoting%29_7.0.0..._%28Remoting%29_7.1.0) | 44 commits +[**Electron**](#electron) | [40.9.2](https://github.com/fable-hub/Fable.Electron/compare/_%28Electron%29_40.6.0..._%28Electron%29_40.9.2) | 61 commits +[**Forge**](#forge) | [8.2.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Forge%29_8.1.0..._%28Forge%29_8.2.0) | 36 commits +[**Remoting**](#remoting) | [7.2.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Remoting%29_7.1.0..._%28Remoting%29_7.2.0) | 48 commits ----------------------- # Electron -### [UNRELEASED](https://github.com/fable-hub/Fable.Electron/compare/_%28Electron%29_40.6.0...HEAD) +### [UNRELEASED](https://github.com/fable-hub/Fable.Electron/compare/_%28Electron%29_40.9.2...HEAD) + +### [40.9.2](https://github.com/fable-hub/Fable.Electron/compare/_%28Electron%29_40.6.0..._%28Electron%29_40.9.2) - (2026-04-26) + +#### Added + +* Electron binding update to match v40.9.2 by [@GitHub Action](https://github.com/GitHub Action) with [#a25ec](https://github.com/fable-hub/Fable.Electron/commit/a25ec38dfdc9167ef0baac92d66d9658b378b2e3) + ### [40.6.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Electron%29_40.4.1..._%28Electron%29_40.6.0) - (2026-02-22) #### Added * Electron binding update to match v40.6.0 by [@GitHub Action](https://github.com/GitHub Action) with [#8c6cd](https://github.com/fable-hub/Fable.Electron/commit/8c6cdaa715dea4ebe4bace060c94fc61d01403e4) - + ### [40.4.1](https://github.com/fable-hub/Fable.Electron/compare/_%28Electron%29_40.2.1..._%28Electron%29_40.4.1) - (2026-02-15) #### Added * Electron binding update to match v40.4.1 by [@GitHub Action](https://github.com/GitHub Action) with [#4e5a8](https://github.com/fable-hub/Fable.Electron/commit/4e5a8b57a45b409c0bf257ef1a087f30e35fd0e9) - + ### [40.2.1](https://github.com/fable-hub/Fable.Electron/compare/6.0.0..._%28Electron%29_40.2.1) - (2026-02-08) #### Added * merge ci/electron/v39.2.3 (#14) by [@cabboose](https://github.com/cabboose) with [#70a75](https://github.com/fable-hub/Fable.Electron/commit/70a7585ede20df3f166be498a61ba692c31e409f) - + * Electron binding update to match v39.2.3 by [@GitHub Action](https://github.com/GitHub Action) with [#04d59](https://github.com/fable-hub/Fable.Electron/commit/04d595134197b4000200cb8cf692a18aefe5ea42) - + * Electron binding update to match v39.2.3 by [@GitHub Action](https://github.com/GitHub Action) with [#1637d](https://github.com/fable-hub/Fable.Electron/commit/1637d5b59378f0b44a4db4217ef3170d07bcce4c) - + * Electron binding update to match v40.2.1 by [@GitHub Action](https://github.com/GitHub Action) with [#4bbda](https://github.com/fable-hub/Fable.Electron/commit/4bbda9cd47caa431da822c47ba19a0819a54bb39) - + #### Fixed * update bindings to 39.2.4 (#21) by [@cabboose](https://github.com/cabboose) with [#e4182](https://github.com/fable-hub/Fable.Electron/commit/e4182617efb335d3cd3060497420822211a877c0) - + * Electron binding update to match v39.2.6 by [@GitHub Action](https://github.com/GitHub Action) with [#700bc](https://github.com/fable-hub/Fable.Electron/commit/700bc8a2ce8caa9a6ba48450a70fdf29449ee719) - + * Push Tags; Compatibility for Electron 40.1.0 (#34) by [@cabboose](https://github.com/cabboose) with [#80f48](https://github.com/fable-hub/Fable.Electron/commit/80f48953fb03a639aac0edcdd840ef81dc5c7156) - + #### Others * init by [@cabboose](https://github.com/cabboose) with [#7fac9](https://github.com/fable-hub/Fable.Electron/commit/7fac9f0c65f11ed78e75e4b122918c48237e24c5) - + * flesh out CLI spec for build and apply fantomas by [@cabboose](https://github.com/cabboose) with [#32f16](https://github.com/fable-hub/Fable.Electron/commit/32f160121c1a0ee924a65b516c4e408029e2a001) - + * incomplete meta data update for projects for CI tests by [@cabboose](https://github.com/cabboose) with [#a31fb](https://github.com/fable-hub/Fable.Electron/commit/a31fbecb473902a16e5fc9c532a4c03f948a35a2) - + * update meta-data in projects by [@cabboose](https://github.com/cabboose) with [#e1d0f](https://github.com/fable-hub/Fable.Electron/commit/e1d0f6a12847ef35ee01dfe67bf94a0d9be97210) - + * transform doc emphasis; provide alt event gen attribute expr by [@cabboose](https://github.com/cabboose) with [#6a9f7](https://github.com/fable-hub/Fable.Electron/commit/6a9f786dba08faab4c71c4551b2bfa305deb05e1) - + * update proj meta data with 'IsPackable' by [@cabboose](https://github.com/cabboose) with [#bc419](https://github.com/fable-hub/Fable.Electron/commit/bc4199c37654c50359f54af843436a8f2968b2f5) - + * release CI workflow (#11) (#12) by [@cabboose](https://github.com/cabboose) with [#986ef](https://github.com/fable-hub/Fable.Electron/commit/986effc3d6f02359f7df6d1eda46f6f07d2afe6c) - - -* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) - + * Revert "[skip ci]" by [@shayanhabibi](https://github.com/shayanhabibi) with [#4e58c](https://github.com/fable-hub/Fable.Electron/commit/4e58cca7b29658a2198c3f5b4e2609afa985bc49) + +* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) + * enable release by [@shayanhabibi](https://github.com/shayanhabibi) with [#564d7](https://github.com/fable-hub/Fable.Electron/commit/564d76f5960d18dba68442bd77439f755d274296) - + * Workflow that allows automatic versioning for main pushes (#15) by [@cabboose](https://github.com/cabboose) with [#4238e](https://github.com/fable-hub/Fable.Electron/commit/4238e3cd728c85bd57ee78421949321f95944fec) - + * add reproduction for #25 by [@Kevin F](https://github.com/Kevin F) with [#b63f8](https://github.com/fable-hub/Fable.Electron/commit/b63f87082701227909a7118ac868b7c72fe6dd3c) - + * Delete src/Fable.Electron/Types.js by [@cabboose](https://github.com/cabboose) with [#2fec9](https://github.com/fable-hub/Fable.Electron/commit/2fec9f3735667ca0f36a6dd535cb12e3107c87ea) - + * Update electron to 40.1.0 (#36) by [@cabboose](https://github.com/cabboose) with [#70007](https://github.com/fable-hub/Fable.Electron/commit/70007d151377e241edd46aef1c589ea4c1e4a3a1) - + ### [6.0.0](https://github.com/fable-hub/Fable.Electron/compare/5.5.0...6.0.0) - (2020-05-24) #### Others * Update for Electron 9.0 by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#73b83](https://github.com/fable-hub/Fable.Electron/commit/73b83b83c4fc65ce0c314174a36af579ee41c76e) - + ### [5.5.0](https://github.com/fable-hub/Fable.Electron/compare/5.4.0...5.5.0) - (2020-05-16) #### Others * Update from official docs by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#a2f92](https://github.com/fable-hub/Fable.Electron/commit/a2f925a96f83367811597d9b328eca43456b71aa) - + * Update for Electron 8.3 by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#3328b](https://github.com/fable-hub/Fable.Electron/commit/3328bb3a6eac1cf1b2eb93facb2d7b1612cff7c1) - + ### [5.4.0](https://github.com/fable-hub/Fable.Electron/compare/5.3.0...5.4.0) - (2020-04-04) #### Others * Update based on fixed docs by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#01d23](https://github.com/fable-hub/Fable.Electron/commit/01d23296caf8214d22e0645865a85727c7162523) - + ### [5.3.0](https://github.com/fable-hub/Fable.Electron/compare/5.2.0...5.3.0) - (2020-03-28) #### Others * Update for Electron 8.2 by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#4c41f](https://github.com/fable-hub/Fable.Electron/commit/4c41fa1dd9624a2165109120a7c9977b51637046) - + ### [5.2.0](https://github.com/fable-hub/Fable.Electron/compare/5.1.0...5.2.0) - (2020-03-21) #### Others * Update docs by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#3375a](https://github.com/fable-hub/Fable.Electron/commit/3375a2d9a97f4290ecec8dab96d873995193f33b) - + * Update for Electron 8.1 by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#03f80](https://github.com/fable-hub/Fable.Electron/commit/03f807a0b4ec3a79549e2a68932f9da689ba75a7) - + ### [5.1.0](https://github.com/fable-hub/Fable.Electron/compare/5.0.0...5.1.0) - (2020-02-24) #### Others * Minor update based on updated Electron docs by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#ed09b](https://github.com/fable-hub/Fable.Electron/commit/ed09bbe913e816552452280d9c6f9951cf5446b3) - + ### [5.0.0](https://github.com/fable-hub/Fable.Electron/compare/4.3.0...5.0.0) - (2020-02-10) #### Others * Update doc comments by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#3b552](https://github.com/fable-hub/Fable.Electron/commit/3b5526af820787e72d9a1d6020baba366843618d) - + * Update for Electron 8 by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#f448a](https://github.com/fable-hub/Fable.Electron/commit/f448a17bb875c457e754ef615e59043d4c02023f) - + ### [4.3.0](https://github.com/fable-hub/Fable.Electron/compare/4.2.0...4.3.0) - (2019-12-08) #### Others * Update from Electron docs: Login Request -> AuthenticationResponseDetails by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#5b925](https://github.com/fable-hub/Fable.Electron/commit/5b92587bbfc304aade93d40ca1b81173b4595e0a) - + ### [4.2.0](https://github.com/fable-hub/Fable.Electron/compare/4.1.0...4.2.0) - (2019-11-09) #### Others * Update based on fixed Electron docs by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#e8339](https://github.com/fable-hub/Fable.Electron/commit/e83396b1dadf1ccc967dc2692a00dcafcccdf17a) - + ### [4.1.0](https://github.com/fable-hub/Fable.Electron/compare/4.0.0...4.1.0) - (2019-11-06) #### Others * Update for Electron 7.1 by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#592bd](https://github.com/fable-hub/Fable.Electron/commit/592bd66193c6302046658f96035b3e369f8175f4) - + ### [4.0.0](https://github.com/fable-hub/Fable.Electron/compare/3.0.0...4.0.0) - (2019-11-01) #### Others * Update for Electron 7 by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#730c1](https://github.com/fable-hub/Fable.Electron/commit/730c1f2332d04bf40090fa63306aee6e497f0658) - + ### [3.0.0](https://github.com/fable-hub/Fable.Electron/compare/2.0.0...3.0.0) - (2019-09-11) #### Others * Use Action wrappers for multi-parameter callback properties by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#15c0c](https://github.com/fable-hub/Fable.Electron/commit/15c0c4d7f82da44160b5934000663203f2231f04) - + ### [2.0.0](https://github.com/fable-hub/Fable.Electron/compare/1.0.0...2.0.0) - (2019-08-20) #### Others * Update from API docs by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#37902](https://github.com/fable-hub/Fable.Electron/commit/37902e9c7d1fd336484a6fa1528b1f066cf832b9) - + * Make MessageBoxOptions.icon also accept string by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#bcffb](https://github.com/fable-hub/Fable.Electron/commit/bcffb111efc02688d936a0c7b2ea80137ef2ba74) - + ### [1.0.0](https://github.com/fable-hub/Fable.Electron/compare/v0.37.7...1.0.0) - (2019-07-31) #### Others * Update for Electron 5 and add infrastructure by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#65ceb](https://github.com/fable-hub/Fable.Electron/commit/65ceb3756879836b0c54d3ccd0881140a9e3094d) - + * AutoUpdater documentation by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#097b4](https://github.com/fable-hub/Fable.Electron/commit/097b49c90e8b200fdca4382aa27d073d68f0fec2) - + * Add femto support by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#1cb02](https://github.com/fable-hub/Fable.Electron/commit/1cb029b9c78f038b8ac532aa92aa28d50a84c974) - + * BrowserView documentation by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#e18d3](https://github.com/fable-hub/Fable.Electron/commit/e18d3c253616590544b9cdda13d62e6c9df6d17e) - + * Re-flow comments by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#0e871](https://github.com/fable-hub/Fable.Electron/commit/0e871d93f47f82d75ef4895616ce4ece5098b596) - + * Fix typos by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#15994](https://github.com/fable-hub/Fable.Electron/commit/1599424da1207d73820536df338e24a451f25956) - + * Improve BrowserWindow by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#0fecf](https://github.com/fable-hub/Fable.Electron/commit/0fecf186943e8f15fc941384c7807c3972642ce5) - + * Improve BrowserWindow and BrowserWindowProxy by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#ce011](https://github.com/fable-hub/Fable.Electron/commit/ce011d209e1d1b383a7b0d4636339b9ce629ecc9) - + * Fixes and improvements to API and documentation by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#71086](https://github.com/fable-hub/Fable.Electron/commit/71086a486528066b5a3c30351858e3635c7e7b7e) - + * Fixes and improvements to API and documentation by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#3242a](https://github.com/fable-hub/Fable.Electron/commit/3242a21d560917161133d6f167e09d95f9a023a4) - + * Fixes and improvements to API and documentation by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#35cb8](https://github.com/fable-hub/Fable.Electron/commit/35cb8fb7a3397cceec30095a24a8245f876ca741) - + * Fixes and improvements to API and documentation by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#177cd](https://github.com/fable-hub/Fable.Electron/commit/177cd0535980dbc0ddad29a76cf1cbb0a23c4a1b) - + * Fixes and improvements to API and documentation by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#b10f0](https://github.com/fable-hub/Fable.Electron/commit/b10f0da91dbce8d0e006ac99432643c7a0ef2e5d) - + * Update for Electron 6 beta 12 by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#47ddf](https://github.com/fable-hub/Fable.Electron/commit/47ddf847627b1dfcebe9a58b885bccdd96bdd8db) - + * API/doc improvements/fixes by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#07ebc](https://github.com/fable-hub/Fable.Electron/commit/07ebcff78374e6eafe8326ef1aac62a54f27338c) - + * Improve/fix docs/API by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#f5100](https://github.com/fable-hub/Fable.Electron/commit/f51007bfb8525071dd61c49a60254e380627de8c) - + * Move bindings to separate file; use top-level namespace instead of module by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#006a3](https://github.com/fable-hub/Fable.Electron/commit/006a3276770209bc4fddf8bf33d92eda42639fc3) - + * Change unit to Event according to docs and https://github.com/electron/electron/pull/19465 by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#62350](https://github.com/fable-hub/Fable.Electron/commit/62350b161f316949ca201b4d619b63ad2214b38e) - + * Remove setters from assumed get-only properties by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#3c550](https://github.com/fable-hub/Fable.Electron/commit/3c5504f4fcfd7cb581c1022cfad5c5030f674291) - + * Update according to new docs for 6.0.0 release by [@Christer van der Meeren](https://github.com/Christer van der Meeren) with [#b8798](https://github.com/fable-hub/Fable.Electron/commit/b8798856820703aa5373699dc1197f9d7b76593d) - + @@ -282,123 +289,139 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). # Forge -### [UNRELEASED](https://github.com/fable-hub/Fable.Electron/compare/_%28Forge%29_8.1.0...HEAD) +### [UNRELEASED](https://github.com/fable-hub/Fable.Electron/compare/_%28Forge%29_8.2.0...HEAD) + +* Electron binding update to match v40.9.2 by [@GitHub Action](https://github.com/GitHub Action) with [#a25ec](https://github.com/fable-hub/Fable.Electron/commit/a25ec38dfdc9167ef0baac92d66d9658b378b2e3) + + +* improved IpcMainEvent dx - new utilities such as dispose void function returns (#59) by [@cabboose](https://github.com/cabboose) with [#35580](https://github.com/fable-hub/Fable.Electron/commit/35580315f1cf6b09154cb8cdccdc319390a3663a) + + +### [8.2.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Forge%29_8.1.0..._%28Forge%29_8.2.0) - (2026-04-26) + +#### Added * Electron binding update to match v40.6.0 by [@GitHub Action](https://github.com/GitHub Action) with [#8c6cd](https://github.com/fable-hub/Fable.Electron/commit/8c6cdaa715dea4ebe4bace060c94fc61d01403e4) + + +* improved IpcMainEvent dx - new utilities such as dispose void function returns (#59) by [@cabboose](https://github.com/cabboose) with [#35580](https://github.com/fable-hub/Fable.Electron/commit/35580315f1cf6b09154cb8cdccdc319390a3663a) + +* Electron binding update to match v40.9.2 by [@GitHub Action](https://github.com/GitHub Action) with [#a25ec](https://github.com/fable-hub/Fable.Electron/commit/a25ec38dfdc9167ef0baac92d66d9658b378b2e3) + ### [8.1.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Forge%29_8.0.0..._%28Forge%29_8.1.0) - (2026-02-22) #### Added * Electron binding update to match v40.4.1 by [@GitHub Action](https://github.com/GitHub Action) with [#4e5a8](https://github.com/fable-hub/Fable.Electron/commit/4e5a8b57a45b409c0bf257ef1a087f30e35fd0e9) - + * Electron binding update to match v40.6.0 by [@GitHub Action](https://github.com/GitHub Action) with [#8c6cd](https://github.com/fable-hub/Fable.Electron/commit/8c6cdaa715dea4ebe4bace060c94fc61d01403e4) - + ### [8.0.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Forge%29_7.0.0..._%28Forge%29_8.0.0) - (2026-02-15) #### Added * Electron binding update to match v39.2.3 by [@GitHub Action](https://github.com/GitHub Action) with [#04d59](https://github.com/fable-hub/Fable.Electron/commit/04d595134197b4000200cb8cf692a18aefe5ea42) - + * Electron binding update to match v39.2.3 by [@GitHub Action](https://github.com/GitHub Action) with [#1637d](https://github.com/fable-hub/Fable.Electron/commit/1637d5b59378f0b44a4db4217ef3170d07bcce4c) - + * force bump by [@cabboose](https://github.com/cabboose) with [#c42a8](https://github.com/fable-hub/Fable.Electron/commit/c42a8bc3bfee20d90ad9e35b221f7d45dc64e736) - + * Electron binding update to match v40.2.1 by [@GitHub Action](https://github.com/GitHub Action) with [#4bbda](https://github.com/fable-hub/Fable.Electron/commit/4bbda9cd47caa431da822c47ba19a0819a54bb39) - + * Electron binding update to match v40.4.1 by [@GitHub Action](https://github.com/GitHub Action) with [#4e5a8](https://github.com/fable-hub/Fable.Electron/commit/4e5a8b57a45b409c0bf257ef1a087f30e35fd0e9) - + #### Fixed * Push Tags; Compatibility for Electron 40.1.0 (#34) by [@cabboose](https://github.com/cabboose) with [#80f48](https://github.com/fable-hub/Fable.Electron/commit/80f48953fb03a639aac0edcdd840ef81dc5c7156) - + #### Others * init by [@cabboose](https://github.com/cabboose) with [#7fac9](https://github.com/fable-hub/Fable.Electron/commit/7fac9f0c65f11ed78e75e4b122918c48237e24c5) - + * incomplete meta data update for projects for CI tests by [@cabboose](https://github.com/cabboose) with [#a31fb](https://github.com/fable-hub/Fable.Electron/commit/a31fbecb473902a16e5fc9c532a4c03f948a35a2) - + * update meta-data in projects by [@cabboose](https://github.com/cabboose) with [#e1d0f](https://github.com/fable-hub/Fable.Electron/commit/e1d0f6a12847ef35ee01dfe67bf94a0d9be97210) - + * update proj meta data with 'IsPackable' by [@cabboose](https://github.com/cabboose) with [#bc419](https://github.com/fable-hub/Fable.Electron/commit/bc4199c37654c50359f54af843436a8f2968b2f5) - + * release CI workflow (#11) (#12) by [@cabboose](https://github.com/cabboose) with [#986ef](https://github.com/fable-hub/Fable.Electron/commit/986effc3d6f02359f7df6d1eda46f6f07d2afe6c) - - -* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) - + * Revert "[skip ci]" by [@shayanhabibi](https://github.com/shayanhabibi) with [#4e58c](https://github.com/fable-hub/Fable.Electron/commit/4e58cca7b29658a2198c3f5b4e2609afa985bc49) + +* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) + * enable release by [@shayanhabibi](https://github.com/shayanhabibi) with [#564d7](https://github.com/fable-hub/Fable.Electron/commit/564d76f5960d18dba68442bd77439f755d274296) - + * Update electron to 40.1.0 (#36) by [@cabboose](https://github.com/cabboose) with [#70007](https://github.com/fable-hub/Fable.Electron/commit/70007d151377e241edd46aef1c589ea4c1e4a3a1) - + ### [7.0.0](https://github.com/fable-hub/Fable.Electron/compare/6.0.0..._%28Forge%29_7.0.0) - (2026-02-08) #### Added * Electron binding update to match v39.2.3 by [@GitHub Action](https://github.com/GitHub Action) with [#04d59](https://github.com/fable-hub/Fable.Electron/commit/04d595134197b4000200cb8cf692a18aefe5ea42) - + * Electron binding update to match v39.2.3 by [@GitHub Action](https://github.com/GitHub Action) with [#1637d](https://github.com/fable-hub/Fable.Electron/commit/1637d5b59378f0b44a4db4217ef3170d07bcce4c) - + * force bump by [@cabboose](https://github.com/cabboose) with [#c42a8](https://github.com/fable-hub/Fable.Electron/commit/c42a8bc3bfee20d90ad9e35b221f7d45dc64e736) - + * Electron binding update to match v40.2.1 by [@GitHub Action](https://github.com/GitHub Action) with [#4bbda](https://github.com/fable-hub/Fable.Electron/commit/4bbda9cd47caa431da822c47ba19a0819a54bb39) - + #### Fixed * Push Tags; Compatibility for Electron 40.1.0 (#34) by [@cabboose](https://github.com/cabboose) with [#80f48](https://github.com/fable-hub/Fable.Electron/commit/80f48953fb03a639aac0edcdd840ef81dc5c7156) - + #### Others * init by [@cabboose](https://github.com/cabboose) with [#7fac9](https://github.com/fable-hub/Fable.Electron/commit/7fac9f0c65f11ed78e75e4b122918c48237e24c5) - + * incomplete meta data update for projects for CI tests by [@cabboose](https://github.com/cabboose) with [#a31fb](https://github.com/fable-hub/Fable.Electron/commit/a31fbecb473902a16e5fc9c532a4c03f948a35a2) - + * update meta-data in projects by [@cabboose](https://github.com/cabboose) with [#e1d0f](https://github.com/fable-hub/Fable.Electron/commit/e1d0f6a12847ef35ee01dfe67bf94a0d9be97210) - + * update proj meta data with 'IsPackable' by [@cabboose](https://github.com/cabboose) with [#bc419](https://github.com/fable-hub/Fable.Electron/commit/bc4199c37654c50359f54af843436a8f2968b2f5) - + * release CI workflow (#11) (#12) by [@cabboose](https://github.com/cabboose) with [#986ef](https://github.com/fable-hub/Fable.Electron/commit/986effc3d6f02359f7df6d1eda46f6f07d2afe6c) - - -* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) - + * Revert "[skip ci]" by [@shayanhabibi](https://github.com/shayanhabibi) with [#4e58c](https://github.com/fable-hub/Fable.Electron/commit/4e58cca7b29658a2198c3f5b4e2609afa985bc49) + +* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) + * enable release by [@shayanhabibi](https://github.com/shayanhabibi) with [#564d7](https://github.com/fable-hub/Fable.Electron/commit/564d76f5960d18dba68442bd77439f755d274296) - + * Update electron to 40.1.0 (#36) by [@cabboose](https://github.com/cabboose) with [#70007](https://github.com/fable-hub/Fable.Electron/commit/70007d151377e241edd46aef1c589ea4c1e4a3a1) - + @@ -406,166 +429,175 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). # Remoting -### [UNRELEASED](https://github.com/fable-hub/Fable.Electron/compare/_%28Remoting%29_7.1.0...HEAD) +### [UNRELEASED](https://github.com/fable-hub/Fable.Electron/compare/_%28Remoting%29_7.2.0...HEAD) -* Electron binding update to match v40.6.0 by [@GitHub Action](https://github.com/GitHub Action) with [#8c6cd](https://github.com/fable-hub/Fable.Electron/commit/8c6cdaa715dea4ebe4bace060c94fc61d01403e4) +* Electron binding update to match v40.9.2 by [@GitHub Action](https://github.com/GitHub Action) with [#a25ec](https://github.com/fable-hub/Fable.Electron/commit/a25ec38dfdc9167ef0baac92d66d9658b378b2e3) + + +* improved IpcMainEvent dx - new utilities such as dispose void function returns (#59) by [@cabboose](https://github.com/cabboose) with [#35580](https://github.com/fable-hub/Fable.Electron/commit/35580315f1cf6b09154cb8cdccdc319390a3663a) + + +### [7.2.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Remoting%29_7.1.0..._%28Remoting%29_7.2.0) - (2026-04-26) -#### Migration Notes (Breaking) +#### Added + +* Electron binding update to match v40.6.0 by [@GitHub Action](https://github.com/GitHub Action) with [#8c6cd](https://github.com/fable-hub/Fable.Electron/commit/8c6cdaa715dea4ebe4bace060c94fc61d01403e4) + -* Main `Remoting.init` was renamed to `Remoting.createHandler()`. -* Main `Remoting.buildHandler` was removed. -* Main two-way handler registration now uses `Remoting.fromValue` or `Remoting.fromIpcMainEvent`. -* Shared contracts should no longer include renderer-supplied placeholder `IpcMainEvent` arguments. +* improved IpcMainEvent dx - new utilities such as dispose void function returns (#59) by [@cabboose](https://github.com/cabboose) with [#35580](https://github.com/fable-hub/Fable.Electron/commit/35580315f1cf6b09154cb8cdccdc319390a3663a) + +* Electron binding update to match v40.9.2 by [@GitHub Action](https://github.com/GitHub Action) with [#a25ec](https://github.com/fable-hub/Fable.Electron/commit/a25ec38dfdc9167ef0baac92d66d9658b378b2e3) + ### [7.1.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Remoting%29_7.0.0..._%28Remoting%29_7.1.0) - (2026-02-22) #### Added * Electron binding update to match v40.4.1 by [@GitHub Action](https://github.com/GitHub Action) with [#4e5a8](https://github.com/fable-hub/Fable.Electron/commit/4e5a8b57a45b409c0bf257ef1a087f30e35fd0e9) - + * Electron binding update to match v40.6.0 by [@GitHub Action](https://github.com/GitHub Action) with [#8c6cd](https://github.com/fable-hub/Fable.Electron/commit/8c6cdaa715dea4ebe4bace060c94fc61d01403e4) - + ### [7.0.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Remoting%29_6.1.0..._%28Remoting%29_7.0.0) - (2026-02-15) #### Added * Electron binding update to match v39.2.3 by [@GitHub Action](https://github.com/GitHub Action) with [#04d59](https://github.com/fable-hub/Fable.Electron/commit/04d595134197b4000200cb8cf692a18aefe5ea42) - + * Electron binding update to match v39.2.3 by [@GitHub Action](https://github.com/GitHub Action) with [#1637d](https://github.com/fable-hub/Fable.Electron/commit/1637d5b59378f0b44a4db4217ef3170d07bcce4c) - + * Electron binding update to match v40.4.1 by [@GitHub Action](https://github.com/GitHub Action) with [#4e5a8](https://github.com/fable-hub/Fable.Electron/commit/4e5a8b57a45b409c0bf257ef1a087f30e35fd0e9) - + #### Fixed * Push Tags; Compatibility for Electron 40.1.0 (#34) by [@cabboose](https://github.com/cabboose) with [#80f48](https://github.com/fable-hub/Fable.Electron/commit/80f48953fb03a639aac0edcdd840ef81dc5c7156) - + #### Others * init by [@cabboose](https://github.com/cabboose) with [#7fac9](https://github.com/fable-hub/Fable.Electron/commit/7fac9f0c65f11ed78e75e4b122918c48237e24c5) - + * flesh out CLI spec for build and apply fantomas by [@cabboose](https://github.com/cabboose) with [#32f16](https://github.com/fable-hub/Fable.Electron/commit/32f160121c1a0ee924a65b516c4e408029e2a001) - + * incomplete meta data update for projects for CI tests by [@cabboose](https://github.com/cabboose) with [#a31fb](https://github.com/fable-hub/Fable.Electron/commit/a31fbecb473902a16e5fc9c532a4c03f948a35a2) - + * implement region markers; improve remoting docs with code snippets by [@cabboose](https://github.com/cabboose) with [#03717](https://github.com/fable-hub/Fable.Electron/commit/037170c47c282ea1047f11c804dc83036b015148) - + * update meta-data in projects by [@cabboose](https://github.com/cabboose) with [#e1d0f](https://github.com/fable-hub/Fable.Electron/commit/e1d0f6a12847ef35ee01dfe67bf94a0d9be97210) - + * transform doc emphasis; provide alt event gen attribute expr by [@cabboose](https://github.com/cabboose) with [#6a9f7](https://github.com/fable-hub/Fable.Electron/commit/6a9f786dba08faab4c71c4551b2bfa305deb05e1) - + * update proj meta data with 'IsPackable' by [@cabboose](https://github.com/cabboose) with [#bc419](https://github.com/fable-hub/Fable.Electron/commit/bc4199c37654c50359f54af843436a8f2968b2f5) - + * release CI workflow (#11) (#12) by [@cabboose](https://github.com/cabboose) with [#986ef](https://github.com/fable-hub/Fable.Electron/commit/986effc3d6f02359f7df6d1eda46f6f07d2afe6c) - - -* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) - + * Revert "[skip ci]" by [@shayanhabibi](https://github.com/shayanhabibi) with [#4e58c](https://github.com/fable-hub/Fable.Electron/commit/4e58cca7b29658a2198c3f5b4e2609afa985bc49) + +* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) + * enable release by [@shayanhabibi](https://github.com/shayanhabibi) with [#564d7](https://github.com/fable-hub/Fable.Electron/commit/564d76f5960d18dba68442bd77439f755d274296) - + * add reproduction for #25 by [@Kevin F](https://github.com/Kevin F) with [#b63f8](https://github.com/fable-hub/Fable.Electron/commit/b63f87082701227909a7118ac868b7c72fe6dd3c) - + * Delete src/Fable.Electron.Remoting/Main.js by [@cabboose](https://github.com/cabboose) with [#a989e](https://github.com/fable-hub/Fable.Electron/commit/a989e3aec21c2880f561bca7c0e4d8e7b70c39dd) - + * Delete src/Fable.Electron.Remoting/Preload.js by [@cabboose](https://github.com/cabboose) with [#fdedf](https://github.com/fable-hub/Fable.Electron/commit/fdedf988de158de649cbeb37d81d03cd70b55159) - + * Delete src/Fable.Electron.Remoting/Renderer.js by [@cabboose](https://github.com/cabboose) with [#3bdf8](https://github.com/fable-hub/Fable.Electron/commit/3bdf8023b7d92e8e753dace6f1687a8a27515400) - + * Fix argument handling in ipcMain handlers by [@cabboose](https://github.com/cabboose) with [#8c47c](https://github.com/fable-hub/Fable.Electron/commit/8c47c24ed18b3f5a1afb66adec6ef4ce9652e4d4) - + * Update electron to 40.1.0 (#36) by [@cabboose](https://github.com/cabboose) with [#70007](https://github.com/fable-hub/Fable.Electron/commit/70007d151377e241edd46aef1c589ea4c1e4a3a1) - + ### [6.1.0](https://github.com/fable-hub/Fable.Electron/compare/6.0.0..._%28Remoting%29_6.1.0) - (2026-02-08) #### Added * Electron binding update to match v39.2.3 by [@GitHub Action](https://github.com/GitHub Action) with [#04d59](https://github.com/fable-hub/Fable.Electron/commit/04d595134197b4000200cb8cf692a18aefe5ea42) - + * Electron binding update to match v39.2.3 by [@GitHub Action](https://github.com/GitHub Action) with [#1637d](https://github.com/fable-hub/Fable.Electron/commit/1637d5b59378f0b44a4db4217ef3170d07bcce4c) - + #### Fixed * Push Tags; Compatibility for Electron 40.1.0 (#34) by [@cabboose](https://github.com/cabboose) with [#80f48](https://github.com/fable-hub/Fable.Electron/commit/80f48953fb03a639aac0edcdd840ef81dc5c7156) - + #### Others * init by [@cabboose](https://github.com/cabboose) with [#7fac9](https://github.com/fable-hub/Fable.Electron/commit/7fac9f0c65f11ed78e75e4b122918c48237e24c5) - + * flesh out CLI spec for build and apply fantomas by [@cabboose](https://github.com/cabboose) with [#32f16](https://github.com/fable-hub/Fable.Electron/commit/32f160121c1a0ee924a65b516c4e408029e2a001) - + * incomplete meta data update for projects for CI tests by [@cabboose](https://github.com/cabboose) with [#a31fb](https://github.com/fable-hub/Fable.Electron/commit/a31fbecb473902a16e5fc9c532a4c03f948a35a2) - + * implement region markers; improve remoting docs with code snippets by [@cabboose](https://github.com/cabboose) with [#03717](https://github.com/fable-hub/Fable.Electron/commit/037170c47c282ea1047f11c804dc83036b015148) - + * update meta-data in projects by [@cabboose](https://github.com/cabboose) with [#e1d0f](https://github.com/fable-hub/Fable.Electron/commit/e1d0f6a12847ef35ee01dfe67bf94a0d9be97210) - + * transform doc emphasis; provide alt event gen attribute expr by [@cabboose](https://github.com/cabboose) with [#6a9f7](https://github.com/fable-hub/Fable.Electron/commit/6a9f786dba08faab4c71c4551b2bfa305deb05e1) - + * update proj meta data with 'IsPackable' by [@cabboose](https://github.com/cabboose) with [#bc419](https://github.com/fable-hub/Fable.Electron/commit/bc4199c37654c50359f54af843436a8f2968b2f5) - + * release CI workflow (#11) (#12) by [@cabboose](https://github.com/cabboose) with [#986ef](https://github.com/fable-hub/Fable.Electron/commit/986effc3d6f02359f7df6d1eda46f6f07d2afe6c) - - -* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) - + * Revert "[skip ci]" by [@shayanhabibi](https://github.com/shayanhabibi) with [#4e58c](https://github.com/fable-hub/Fable.Electron/commit/4e58cca7b29658a2198c3f5b4e2609afa985bc49) + +* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) + * enable release by [@shayanhabibi](https://github.com/shayanhabibi) with [#564d7](https://github.com/fable-hub/Fable.Electron/commit/564d76f5960d18dba68442bd77439f755d274296) - + * add reproduction for #25 by [@Kevin F](https://github.com/Kevin F) with [#b63f8](https://github.com/fable-hub/Fable.Electron/commit/b63f87082701227909a7118ac868b7c72fe6dd3c) - + * Delete src/Fable.Electron.Remoting/Main.js by [@cabboose](https://github.com/cabboose) with [#a989e](https://github.com/fable-hub/Fable.Electron/commit/a989e3aec21c2880f561bca7c0e4d8e7b70c39dd) - + * Delete src/Fable.Electron.Remoting/Preload.js by [@cabboose](https://github.com/cabboose) with [#fdedf](https://github.com/fable-hub/Fable.Electron/commit/fdedf988de158de649cbeb37d81d03cd70b55159) - + * Delete src/Fable.Electron.Remoting/Renderer.js by [@cabboose](https://github.com/cabboose) with [#3bdf8](https://github.com/fable-hub/Fable.Electron/commit/3bdf8023b7d92e8e753dace6f1687a8a27515400) - + * Fix argument handling in ipcMain handlers by [@cabboose](https://github.com/cabboose) with [#8c47c](https://github.com/fable-hub/Fable.Electron/commit/8c47c24ed18b3f5a1afb66adec6ef4ce9652e4d4) - + * Update electron to 40.1.0 (#36) by [@cabboose](https://github.com/cabboose) with [#70007](https://github.com/fable-hub/Fable.Electron/commit/70007d151377e241edd46aef1c589ea4c1e4a3a1) - + From 8d53bc820663bc521a6186806870244b6609bfdd Mon Sep 17 00:00:00 2001 From: GitHub Action <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 28 Jun 2026 08:02:57 +0000 Subject: [PATCH 7/8] feat!: Electron binding update to match v42.5.0 This commit is automatically generated by the Fable.Electron CI. generated: true --- ci/cache.json | 2 +- .../Fable.Electron.Forge.fsproj | 4 +- .../Fable.Electron.Remoting.fsproj | 4 +- src/Fable.Electron/Fable.Electron.fsproj | 6 +- src/Fable.Electron/Program.fs | 2079 ++++++++++++++--- 5 files changed, 1755 insertions(+), 340 deletions(-) diff --git a/ci/cache.json b/ci/cache.json index 9b7c82c..c19bab4 100644 --- a/ci/cache.json +++ b/ci/cache.json @@ -1 +1 @@ -{"createdAt":"2026-04-21T18:21:44Z","isLatest":false,"isPrerelease":false,"tagName":"v40.9.2"} \ No newline at end of file +{"createdAt":"2026-06-23T16:00:20Z","isLatest":true,"isPrerelease":false,"tagName":"v42.5.0"} \ No newline at end of file diff --git a/src/Fable.Electron.Forge/Fable.Electron.Forge.fsproj b/src/Fable.Electron.Forge/Fable.Electron.Forge.fsproj index 19c012a..89b1146 100644 --- a/src/Fable.Electron.Forge/Fable.Electron.Forge.fsproj +++ b/src/Fable.Electron.Forge/Fable.Electron.Forge.fsproj @@ -20,8 +20,8 @@ Shayan Habibi and Contributors Copyright (c) 2025 Shayan Habibi and Fable-Hub contributors README.md - 8.2.0 - 8.2.0 + 8.3.0 + 8.3.0 7.0.0 feleico-dark.png diff --git a/src/Fable.Electron.Remoting/Fable.Electron.Remoting.fsproj b/src/Fable.Electron.Remoting/Fable.Electron.Remoting.fsproj index c07260c..583cf45 100644 --- a/src/Fable.Electron.Remoting/Fable.Electron.Remoting.fsproj +++ b/src/Fable.Electron.Remoting/Fable.Electron.Remoting.fsproj @@ -19,8 +19,8 @@ Fable;F#;FSharp;Electron;Bindings;Native;JavaScript;JS;Remoting;fable-javascript Shayan Habibi and Contributors Copyright (c) 2025 Shayan Habibi and Fable-Hub contributors - 7.2.0 - 7.2.0 + 7.3.0 + 7.3.0 README.md 0.1.0 feleico-dark.png diff --git a/src/Fable.Electron/Fable.Electron.fsproj b/src/Fable.Electron/Fable.Electron.fsproj index 2653a7e..257c02e 100644 --- a/src/Fable.Electron/Fable.Electron.fsproj +++ b/src/Fable.Electron/Fable.Electron.fsproj @@ -19,9 +19,9 @@ Shayan Habibi and Contributors Copyright (c) 2025 Shayan Habibi and Fable-Hub contributors README.md - 40.9.2 - 40.9.2 - 40.9.2 + 42.5.0 + 42.5.0 + 42.5.0 feleico-dark.png diff --git a/src/Fable.Electron/Program.fs b/src/Fable.Electron/Program.fs index 66726d5..2b56811 100644 --- a/src/Fable.Electron/Program.fs +++ b/src/Fable.Electron/Program.fs @@ -19,8 +19,7 @@ module Types = /// The requested output format of the shared texture. Defaults to argb. The name is originated from Chromium media::VideoPixelFormat enum /// suffix and only subset of them are supported. The actual output pixel format and color space of the texture should /// refer to OffscreenSharedTexture object in the paint event. - /// The device scale factor of the offscreen rendering output. If not set, will use primary display's scale factor as - /// default. + /// The device scale factor of the offscreen rendering output. If not set, will use 1 as default. ( ?useSharedTexture: bool, ?sharedTexturePixelFormat: Enums.Types.WebPreferences.Offscreen.SharedTexturePixelFormat, @@ -46,7 +45,7 @@ module Types = Unchecked.defaultof<_> with get, set /// - /// The device scale factor of the offscreen rendering output. If not set, will use primary display's scale factor as default. + /// The device scale factor of the offscreen rendering output. If not set, will use 1 as default. /// [] member val deviceScaleFactor: float = Unchecked.defaultof<_> with get, set @@ -849,6 +848,40 @@ module Types = member val createWindow: BrowserWindowConstructorOptions -> Main.WebContents = Unchecked.defaultof<_> with get, set + [] + type WebAuthnAccount + /// URL-safe base64-encoded (no padding) credential ID of the discoverable credential. Matches PublicKeyCredential.id returned by navigator.credentials.get() in the renderer. + /// URL-safe base64-encoded (no padding) user handle (user.id) that was provided when the credential was created. + /// Human-palatable identifier for the account (for example, an email address or username). + /// Human-palatable name for the account, intended for display. + (credentialId: string, ?userHandle: string, ?name: string, ?displayName: string) = + class + end + + /// + /// URL-safe base64-encoded (no padding) credential ID of the discoverable credential. Matches PublicKeyCredential.id returned by navigator.credentials.get() in the renderer. + /// + [] + member val credentialId: string = Unchecked.defaultof<_> with get, set + + /// + /// URL-safe base64-encoded (no padding) user handle (user.id) that was provided when the credential was created. + /// + [] + member val userHandle: string = Unchecked.defaultof<_> with get, set + + /// + /// Human-palatable identifier for the account (for example, an email address or username). + /// + [] + member val name: string = Unchecked.defaultof<_> with get, set + + /// + /// Human-palatable name for the account, intended for display. + /// + [] + member val displayName: string = Unchecked.defaultof<_> with get, set + [] type WebSource /// @@ -2320,7 +2353,8 @@ module Types = [] type SharedTextureHandle /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ || NT HANDLE holds the - /// shared texture. Note that this NT HANDLE is local to current process. + /// shared texture. Note that this NT HANDLE is local to current process. Output textures of rgba, bgra, rgbaf16 formats + /// don't have a keyed mutex on the texture handle, but nv12 format texture handles do have a keyed mutex. /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || IOSurfaceRef holds the shared /// texture. Note that this IOSurface is local to current process (not global). /// ⚠ OS Compatibility: WIN ❌ | MAC ❌ | LIN ✔ | MAS ❌ || Structure contains planes of @@ -2344,7 +2378,9 @@ module Types = #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN /// /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ - /// NT HANDLE holds the shared texture. Note that this NT HANDLE is local to current process. + /// NT HANDLE holds the shared texture. Note that this NT HANDLE is local to current process. Output textures of + /// rgba, bgra, rgbaf16 formats don't have a keyed mutex on the texture handle, but nv12 format texture handles do have + /// a keyed mutex. /// [] member val ntHandle: Buffer = Unchecked.defaultof<_> with get, set @@ -4754,6 +4790,43 @@ module Types = [] member val version: string = Unchecked.defaultof<_> with get, set + [] + type EnableHeapProfilingOptions + /// Controls which processes are profiled. Equivalent to --memlog in Chrome. Default is all. + /// Controls the sampling interval in bytes. The lower the interval, the more precise the profile is. However it comes + /// at the cost of performance. Default is 100000 (100KB). That is enough to observe allocation sites that make allocations >500KB + /// total, where total equals to a single allocation size times the number of such allocations at the same call site. + /// Equivalent to --memlog-sampling-rate in Chrome. Must be an integer between 1000 and 10000000. + /// Controls the type of metadata recorded for each allocation. Equivalent to --memlog-stack-mode in Chrome. Default is native. + ( + ?mode: Enums.Types.EnableHeapProfilingOptions.Mode, + ?samplingRate: float, + ?stackMode: Enums.Types.EnableHeapProfilingOptions.StackMode + ) = + class + end + + /// + /// Controls which processes are profiled. Equivalent to --memlog in Chrome. Default is all. + /// + [] + member val mode: Enums.Types.EnableHeapProfilingOptions.Mode = Unchecked.defaultof<_> with get, set + + /// + /// Controls the sampling interval in bytes. The lower the interval, the more precise the profile is. However it comes at + /// the cost of performance. Default is 100000 (100KB). That is enough to observe allocation sites that make allocations >500KB total, + /// where total equals to a single allocation size times the number of such allocations at the same call site. Equivalent + /// to --memlog-sampling-rate in Chrome. Must be an integer between 1000 and 10000000. + /// + [] + member val samplingRate: float = Unchecked.defaultof<_> with get, set + + /// + /// Controls the type of metadata recorded for each allocation. Equivalent to --memlog-stack-mode in Chrome. Default is native. + /// + [] + member val stackMode: Enums.Types.EnableHeapProfilingOptions.StackMode = Unchecked.defaultof<_> with get, set + /// /// The Display object represents a physical display connected to the system. A fake Display may exist on a headless system, /// or a Display may correspond to a remote, virtual display. @@ -6567,6 +6640,48 @@ module Types = #endif + [] + type ActivationArguments + /// The type of activation that launched the app: 'click', 'action', or 'reply'. + /// The raw activation arguments string from Windows. + /// For 'action' type, the index of the button that was clicked. + /// For 'reply' type, the text the user entered in the reply field. + /// A dictionary of all user inputs from the notification. + (``type``: string, arguments: string, ?actionIndex: float, ?reply: string, ?userInputs: Record) + = + class + end + + /// + /// The type of activation that launched the app: 'click', 'action', or 'reply'. + /// + [] + member val ``type``: string = Unchecked.defaultof<_> with get, set + + /// + /// The raw activation arguments string from Windows. + /// + [] + member val arguments: string = Unchecked.defaultof<_> with get, set + + /// + /// For 'action' type, the index of the button that was clicked. + /// + [] + member val actionIndex: float = Unchecked.defaultof<_> with get, set + + /// + /// For 'reply' type, the text the user entered in the reply field. + /// + [] + member val reply: string = Unchecked.defaultof<_> with get, set + + /// + /// A dictionary of all user inputs from the notification. + /// + [] + member val userInputs: Record = Unchecked.defaultof<_> with get, set + [] module Enums = module Types = @@ -6680,6 +6795,14 @@ module Enums = /// 12bpp with Y plane followed by a 2x2 interleaved UV plane. /// | [] Nv12 + /// + /// 16bpp with Y plane followed by a 2x1 interleaved UV plane. + /// + | [] Nv16 + /// + /// 4:2:0 10-bit YUV (little-endian), Y plane followed by a 2x2 interleaved UV plane. + /// + | [] P010le module ResolvedEndpoint = [] @@ -7053,6 +7176,58 @@ module Enums = | [] Writable | [] Readable + module EnableHeapProfilingOptions = + [] + type StackMode = + /// + /// Instruction addresses from unwinding the stack. + /// + | [] Native + /// + /// Instruction addresses from unwinding the stack. Includes the thread name as the first frame. + /// + | [] NativeWithThreadNames + + [] + type Mode = + /// + /// Profile all processes. + /// + | [] All + /// + /// Profile only the browser process. + /// + | [] Browser + /// + /// Profile only the GPU process. + /// + | [] Gpu + /// + /// Profile only the browser and GPU processes. + /// + | [] Minimal + /// + /// Profile at most 1 renderer process. Each renderer process has a fixed probability of being profiled when the renderer process + /// is started or, for existing processes, when heap profiling is enabled. + /// + | [] RendererSampling + /// + /// Profile all renderer processes. + /// + | [] AllRenderers + /// + /// Each utility process has a fixed probability of being profiled. + /// + | [] UtilitySampling + /// + /// Profile all utility processes. + /// + | [] AllUtilities + /// + /// Profile all utility processes and the browser process. + /// + | [] UtilityAndBrowser + module Display = [] type TouchSupport = @@ -7485,35 +7660,10 @@ module Renderer = module UtilityProcess = [] - let Error = "error" - - module UtilityProcess = - /// - /// Emitted when the child process needs to terminate due to non continuable error from V8.

No matter if you listen to - /// the error event, the exit event will be emitted after the child process terminates. - ///
- [] - type IOnError = - /// - /// Type of error. One of the following values: - /// - [] - abstract member ``type``: Renderer.Enums.UtilityProcess.Error.Type with get, set - - /// - /// Source location from where the error originated. - /// - [] - abstract member location: string with get, set + let Login = "login" - /// - /// Node.js diagnostic report. - /// - [] - abstract member report: string with get, set + [] + let Error = "error" module WebviewTag = /// @@ -8352,6 +8502,10 @@ module Renderer = /// string to be printed as page footer. /// Specify page size of the printed document. Can be A3, A4, A5, Legal, Letter, Tabloid or an Object containing /// height in microns. + /// Whether to use the system's default page size. Default is false. Cannot be combined with pageSize. When deviceName is + /// provided, uses the default page size of that specific printer. When deviceName is not provided, uses the default page size + /// of the system's default printer. If the printer's default page size cannot be retrieved, falls back to A4 (210mm x + /// 297mm). ( ?silent: bool, ?printBackground: bool, @@ -8368,7 +8522,8 @@ module Renderer = ?dpi: Record, ?header: string, ?footer: string, - ?pageSize: U2 + ?pageSize: U2, + ?usePrinterDefaultPageSize: bool ) = class end @@ -8468,6 +8623,14 @@ module Renderer = member val pageSize: U2 = Unchecked.defaultof<_> with get, set + /// + /// Whether to use the system's default page size. Default is false. Cannot be combined with pageSize. When deviceName is provided, + /// uses the default page size of that specific printer. When deviceName is not provided, uses the default page size of + /// the system's default printer. If the printer's default page size cannot be retrieved, falls back to A4 (210mm x 297mm). + /// + [] + member val usePrinterDefaultPageSize: bool = Unchecked.defaultof<_> with get, set + module Options = [] type PageRanges @@ -9326,6 +9489,98 @@ module Renderer = /// type SpellCheck = delegate of words: string[] * callback: (string[] -> unit) -> unit + module UtilityProcess = + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + type IOnLogin = + [] + abstract member authenticationResponseDetails: Renderer.UtilityProcess.Login.AuthenticationResponseDetails with get, set + + [] + abstract member authInfo: Renderer.UtilityProcess.Login.AuthInfo with get, set + + [] + abstract member callback: Option * Option -> unit with get, set + + /// + /// Emitted when the child process needs to terminate due to non continuable error from V8.

No matter if you listen to + /// the error event, the exit event will be emitted after the child process terminates. + ///
+ [] + type IOnError = + /// + /// Type of error. One of the following values: + /// + [] + abstract member ``type``: Renderer.Enums.UtilityProcess.Error.Type with get, set + + /// + /// Source location from where the error originated. + /// + [] + abstract member location: string with get, set + + /// + /// Node.js diagnostic report. + /// + [] + abstract member report: string with get, set + + module Login = + [] + type AuthInfo + /// + /// + /// + /// + /// + (isProxy: bool, scheme: string, host: string, port: int, realm: string) = + class + end + + [] + member val isProxy: bool = Unchecked.defaultof<_> with get, set + + [] + member val scheme: string = Unchecked.defaultof<_> with get, set + + [] + member val host: string = Unchecked.defaultof<_> with get, set + + [] + member val port: int = Unchecked.defaultof<_> with get, set + + [] + member val realm: string = Unchecked.defaultof<_> with get, set + + [] + type AuthenticationResponseDetails + /// + /// + (url: URL, pid: float) = + class + end + + [] + member val url: URL = Unchecked.defaultof<_> with get, set + + [] + member val pid: float = Unchecked.defaultof<_> with get, set + + /// + /// + type Callback = delegate of ?username: string * ?password: string -> unit + module SharedTexture = module SendSharedTexture = [] @@ -11093,6 +11348,10 @@ module Renderer = /// string to be printed as page footer. /// Specify page size of the printed document. Can be A3, A4, A5, Legal, Letter, Tabloid or an Object containing /// height in microns. + /// Whether to use the system's default page size. Default is false. Cannot be combined with pageSize. When deviceName is + /// provided, uses the default page size of that specific printer. When deviceName is not provided, uses the default page size + /// of the system's default printer. If the printer's default page size cannot be retrieved, falls back to A4 (210mm x + /// 297mm). [] member inline _.print ( @@ -11111,7 +11370,8 @@ module Renderer = ?dpi: Record, ?header: string, ?footer: string, - ?pageSize: U2 + ?pageSize: U2, + ?usePrinterDefaultPageSize: bool ) : Promise = Unchecked.defaultof<_> @@ -11737,6 +11997,84 @@ module Renderer = [] member inline _.offMessage(handler: obj -> unit) : unit = Unchecked.defaultof<_> + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.onLogin + ( + handler: + Renderer.UtilityProcess.Login.AuthenticationResponseDetails + -> Renderer.UtilityProcess.Login.AuthInfo + -> Option * Option -> unit + -> unit + ) : unit = + Unchecked.defaultof<_> + + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.onLogin(handler: Renderer.UtilityProcess.IOnLogin -> unit) : unit = Unchecked.defaultof<_> + + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.onceLogin + ( + handler: + Renderer.UtilityProcess.Login.AuthenticationResponseDetails + -> Renderer.UtilityProcess.Login.AuthInfo + -> Option * Option -> unit + -> unit + ) : unit = + Unchecked.defaultof<_> + + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.onceLogin(handler: Renderer.UtilityProcess.IOnLogin -> unit) : unit = Unchecked.defaultof<_> + + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.offLogin + ( + handler: + Renderer.UtilityProcess.Login.AuthenticationResponseDetails + -> Renderer.UtilityProcess.Login.AuthInfo + -> Option * Option -> unit + -> unit + ) : unit = + Unchecked.defaultof<_> + + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.offLogin(handler: Renderer.UtilityProcess.IOnLogin -> unit) : unit = Unchecked.defaultof<_> + /// /// Send a message to the child process, optionally transferring ownership of zero or more MessagePortMain objects.

For example: ///
@@ -12925,6 +13263,9 @@ module Renderer = module Utility = module Constants = module UtilityProcess = + [] + let Login = "login" + [] let Error = "error" @@ -12939,34 +13280,6 @@ module Utility = [] let Login = "login" - module UtilityProcess = - /// - /// Emitted when the child process needs to terminate due to non continuable error from V8.

No matter if you listen to - /// the error event, the exit event will be emitted after the child process terminates. - ///
- [] - type IOnError = - /// - /// Type of error. One of the following values: - /// - [] - abstract member ``type``: Utility.Enums.UtilityProcess.Error.Type with get, set - - /// - /// Source location from where the error originated. - /// - [] - abstract member location: string with get, set - - /// - /// Node.js diagnostic report. - /// - [] - abstract member report: string with get, set - module ParentPort = module Message = [] @@ -13031,6 +13344,98 @@ module Utility = member val secureDnsPolicy: Utility.Enums.Net.ResolveHost.Options.SecureDnsPolicy = Unchecked.defaultof<_> with get, set + module UtilityProcess = + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + type IOnLogin = + [] + abstract member authenticationResponseDetails: Utility.UtilityProcess.Login.AuthenticationResponseDetails with get, set + + [] + abstract member authInfo: Utility.UtilityProcess.Login.AuthInfo with get, set + + [] + abstract member callback: Option * Option -> unit with get, set + + /// + /// Emitted when the child process needs to terminate due to non continuable error from V8.

No matter if you listen to + /// the error event, the exit event will be emitted after the child process terminates. + ///
+ [] + type IOnError = + /// + /// Type of error. One of the following values: + /// + [] + abstract member ``type``: Utility.Enums.UtilityProcess.Error.Type with get, set + + /// + /// Source location from where the error originated. + /// + [] + abstract member location: string with get, set + + /// + /// Node.js diagnostic report. + /// + [] + abstract member report: string with get, set + + module Login = + [] + type AuthInfo + /// + /// + /// + /// + /// + (isProxy: bool, scheme: string, host: string, port: int, realm: string) = + class + end + + [] + member val isProxy: bool = Unchecked.defaultof<_> with get, set + + [] + member val scheme: string = Unchecked.defaultof<_> with get, set + + [] + member val host: string = Unchecked.defaultof<_> with get, set + + [] + member val port: int = Unchecked.defaultof<_> with get, set + + [] + member val realm: string = Unchecked.defaultof<_> with get, set + + [] + type AuthenticationResponseDetails + /// + /// + (url: URL, pid: float) = + class + end + + [] + member val url: URL = Unchecked.defaultof<_> with get, set + + [] + member val pid: float = Unchecked.defaultof<_> with get, set + + /// + /// + type Callback = delegate of ?username: string * ?password: string -> unit + module SystemPreferences = #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_LIN || ELECTRON_OS_WIN /// @@ -13898,6 +14303,84 @@ module Utility = [] member inline _.offMessage(handler: obj -> unit) : unit = Unchecked.defaultof<_> + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.onLogin + ( + handler: + Utility.UtilityProcess.Login.AuthenticationResponseDetails + -> Utility.UtilityProcess.Login.AuthInfo + -> Option * Option -> unit + -> unit + ) : unit = + Unchecked.defaultof<_> + + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.onLogin(handler: Utility.UtilityProcess.IOnLogin -> unit) : unit = Unchecked.defaultof<_> + + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.onceLogin + ( + handler: + Utility.UtilityProcess.Login.AuthenticationResponseDetails + -> Utility.UtilityProcess.Login.AuthInfo + -> Option * Option -> unit + -> unit + ) : unit = + Unchecked.defaultof<_> + + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.onceLogin(handler: Utility.UtilityProcess.IOnLogin -> unit) : unit = Unchecked.defaultof<_> + + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.offLogin + ( + handler: + Utility.UtilityProcess.Login.AuthenticationResponseDetails + -> Utility.UtilityProcess.Login.AuthInfo + -> Option * Option -> unit + -> unit + ) : unit = + Unchecked.defaultof<_> + + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.offLogin(handler: Utility.UtilityProcess.IOnLogin -> unit) : unit = Unchecked.defaultof<_> + /// /// Send a message to the child process, optionally transferring ownership of zero or more MessagePortMain objects.

For example: ///
@@ -15079,6 +15562,9 @@ module Main = let DidFailLoad = "did-fail-load" module UtilityProcess = + [] + let Login = "login" + [] let Error = "error" @@ -15121,6 +15607,9 @@ module Main = let AccentColorChanged = "accent-color-changed" module Session = + [] + let SelectWebauthnAccount = "select-webauthn-account" + [] let UsbDeviceRevoked = "usb-device-revoked" @@ -15529,6 +16018,43 @@ module Main = abstract member newDisplay: Display with get, set module WebContentsView = + module SetBounds = + [] + type Options + /// If true, the bounds change will be animated. If an object is passed, it can contain the following properties: + (?animate: U2) = + class + end + + /// + /// If true, the bounds change will be animated. If an object is passed, it can contain the following properties: + /// + [] + member val animate: U2 = + Unchecked.defaultof<_> with get, set + + module Options = + [] + type Animate + /// Duration of the animation in milliseconds. Default is 250. + /// Easing function for the animation. Default is linear. + (?duration: int, ?easing: Main.Enums.WebContentsView.SetBounds.Options.Animate.Easing) = + class + end + + /// + /// Duration of the animation in milliseconds. Default is 250. + /// + [] + member val duration: int = Unchecked.defaultof<_> with get, set + + /// + /// Easing function for the animation. Default is linear. + /// + [] + member val easing: Main.Enums.WebContentsView.SetBounds.Options.Animate.Easing = + Unchecked.defaultof<_> with get, set + [] type Options /// Settings of web page's features. @@ -15551,148 +16077,42 @@ module Main = [] member val webContents: Main.WebContents = Unchecked.defaultof<_> with get, set - module UtilityProcess = - /// - /// Emitted when the child process needs to terminate due to non continuable error from V8.

No matter if you listen to - /// the error event, the exit event will be emitted after the child process terminates. - ///
- [] - type IOnError = - /// - /// Type of error. One of the following values: - /// - [] - abstract member ``type``: Main.Enums.UtilityProcess.Error.Type with get, set - - /// - /// Source location from where the error originated. - /// - [] - abstract member location: string with get, set - - /// - /// Node.js diagnostic report. - /// - [] - abstract member report: string with get, set - - module Fork = + module View = + module SetBounds = [] type Options - /// Environment key-value pairs. Default is process.env. - /// List of string arguments passed to the executable. - /// Current working directory of the child process. - /// Allows configuring the mode for stdout and stderr of the child process. Default is inherit. String value can be - /// one of pipe, ignore, inherit, for more details on these values you can refer to stdio documentation from Node.js. Currently - /// this option only supports configuring stdout and stderr to either pipe, inherit or ignore. Configuring stdin to any property other - /// than ignore is not supported and will result in an error. For example, the supported values will be processed as - /// following: - /// Name of the process that will appear in name property of ProcessMetric returned by app.getAppMetrics and child-process-gone event of - /// app. Default is Node Utility Process. - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || With this flag, the - /// utility process will be launched via the Electron Helper (Plugin).app helper executable on macOS, which can be codesigned with com.apple.security.cs.disable-library-validation - /// and com.apple.security.cs.allow-unsigned-executable-memory entitlements. This will allow the utility process to load unsigned libraries. Unless you specifically need this capability, it - /// is best to leave this disabled. Default is false. - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || With this flag, the - /// utility process will disclaim responsibility for the child process. This causes the operating system to consider the child process as - /// a separate entity for purposes of security policies like Transparency, Consent, and Control (TCC). When responsibility is disclaimed, the parent - /// process will not be attributed for any TCC requests initiated by the child process. This is useful when launching processes - /// that run third-party or otherwise untrusted code. Default is false. - /// With this flag, all HTTP 401 and 407 network requests created via the net module will allow responding to - /// them via the app#login event in the main process instead of the default login event on the ClientRequest object. Default - /// is false. - ( - ?env: obj, - ?execArgv: string[], - ?cwd: string, - ?stdio: U2, - ?serviceName: string - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC - , - ?allowLoadingUnsignedLibraries: bool - #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC - , - ?disclaim: bool - #endif - , - ?respondToAuthRequestsFromMainProcess: bool - ) = + /// If true, the bounds change will be animated. If an object is passed, it can contain the following properties: + (?animate: U2) = class end /// - /// Environment key-value pairs. Default is process.env. - /// - [] - member val env: obj = Unchecked.defaultof<_> with get, set - - /// - /// List of string arguments passed to the executable. - /// - [] - member val execArgv: string[] = Unchecked.defaultof<_> with get, set - - /// - /// Current working directory of the child process. + /// If true, the bounds change will be animated. If an object is passed, it can contain the following properties: /// [] - member val cwd: string = Unchecked.defaultof<_> with get, set - - /// - /// Allows configuring the mode for stdout and stderr of the child process. Default is inherit. String value can be one - /// of pipe, ignore, inherit, for more details on these values you can refer to stdio documentation from Node.js. Currently this - /// option only supports configuring stdout and stderr to either pipe, inherit or ignore. Configuring stdin to any property other than - /// ignore is not supported and will result in an error. For example, the supported values will be processed as following: - /// - [] - member val stdio: U2 = - Unchecked.defaultof<_> with get, set - - /// - /// Name of the process that will appear in name property of ProcessMetric returned by app.getAppMetrics and child-process-gone event of app. - /// Default is Node Utility Process. - /// - [] - member val serviceName: string = Unchecked.defaultof<_> with get, set - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC - /// - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ - /// With this flag, the utility process will be launched via the Electron Helper (Plugin).app helper executable on macOS, which can - /// be codesigned with com.apple.security.cs.disable-library-validation and com.apple.security.cs.allow-unsigned-executable-memory entitlements. This will allow the utility process to load unsigned libraries. Unless you specifically - /// need this capability, it is best to leave this disabled. Default is false. - /// - [] - member val allowLoadingUnsignedLibraries: bool = Unchecked.defaultof<_> with get, set - #endif - - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC - /// - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ - /// With this flag, the utility process will disclaim responsibility for the child process. This causes the operating system to consider - /// the child process as a separate entity for purposes of security policies like Transparency, Consent, and Control (TCC). When responsibility - /// is disclaimed, the parent process will not be attributed for any TCC requests initiated by the child process. This is - /// useful when launching processes that run third-party or otherwise untrusted code. Default is false. - /// - [] - member val disclaim: bool = Unchecked.defaultof<_> with get, set - #endif - - - /// - /// With this flag, all HTTP 401 and 407 network requests created via the net module will allow responding to them - /// via the app#login event in the main process instead of the default login event on the ClientRequest object. Default is - /// false. - /// - [] - member val respondToAuthRequestsFromMainProcess: bool = Unchecked.defaultof<_> with get, set + member val animate: U2 = Unchecked.defaultof<_> with get, set module Options = [] - type Env() = class end + type Animate + /// Duration of the animation in milliseconds. Default is 250. + /// Easing function for the animation. Default is linear. + (?duration: int, ?easing: Main.Enums.View.SetBounds.Options.Animate.Easing) = + class + end + + /// + /// Duration of the animation in milliseconds. Default is 250. + /// + [] + member val duration: int = Unchecked.defaultof<_> with get, set + + /// + /// Easing function for the animation. Default is linear. + /// + [] + member val easing: Main.Enums.View.SetBounds.Options.Animate.Easing = + Unchecked.defaultof<_> with get, set module Tray = #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN @@ -16476,6 +16896,31 @@ module Main = [] member val ``end``: unit -> unit = Unchecked.defaultof<_> with get, set + module SafeStorage = + [] + type DecryptStringAsync + /// whether data that has just been returned from the decrypt operation should be re-encrypted, as the key has been + /// rotated or a new key is available that provides a different security level. If true, you should call decryptStringAsync + /// again to receive the new decrypted string. + /// the decrypted string. + (shouldReEncrypt: bool, result: string) = + class + end + + /// + /// whether data that has just been returned from the decrypt operation should be re-encrypted, as the key has been rotated + /// or a new key is available that provides a different security level. If true, you should call decryptStringAsync again + /// to receive the new decrypted string. + /// + [] + member val shouldReEncrypt: bool = Unchecked.defaultof<_> with get, set + + /// + /// the decrypted string. + /// + [] + member val result: string = Unchecked.defaultof<_> with get, set + module Process = [] type GetSystemMemoryInfo @@ -16635,9 +17080,9 @@ module Main = member val doesZapGarbage: bool = Unchecked.defaultof<_> with get, set module Notification = - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN /// - /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ /// Emitted when an error is encountered while creating and showing the native notification. /// [] type Options + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ || A unique identifier for + /// the notification. On macOS, maps to UNNotificationRequest's identifier property. On Windows, maps to the toast notification's Tag property. Defaults to + /// a random UUID if not provided or if an empty string is passed. Use this identifier with Notification.remove() to remove + /// specific delivered notifications, or with Notification.getHistory() to identify them. + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ || A string identifier used + /// to visually group notifications together in Notification Center / Action Center. On macOS, maps to UNNotificationContent's threadIdentifier property. On Windows, + /// maps to the toast notification's Group property. Use this identifier with Notification.removeGroup() to remove all notifications in a group. + /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ || A title for the + /// notification group header. When both groupId and groupTitle are specified, Windows will display a header above the notification that groups + /// related notifications together. Maps to the toast notification's header element. /// A title for the notification, which will be displayed at the top of the notification window when it is /// shown. /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || A subtitle for the @@ -16699,23 +17154,35 @@ module Main = /// Whether or not to suppress the OS notification noise when showing the notification. /// An icon to use in the notification. If a string is passed, it must be a valid path to /// a local icon file. - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || Whether or not to + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ || Whether or not to /// add an inline reply option to the notification. /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ✔ | MAS ❌ || The timeout duration of /// the notification. Can be 'default' or 'never'. - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || The placeholder to write + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ || The placeholder to write /// in the inline reply input field. /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || The name of the /// sound file to play when the notification is shown. - /// ⚠ OS Compatibility: WIN ❌ | MAC ❌ | LIN ✔ | MAS ❌ || The urgency level of + /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ✔ | MAS ❌ || The urgency level of /// the notification. Can be 'normal', 'critical', or 'low'. - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || Actions to add to + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ || Actions to add to /// the notification. Please read the available actions and limitations in the NotificationAction documentation. /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || A custom title for /// the close button of an alert. An empty string will cause the default localized text to be used. /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ || A custom description of /// the Notification on Windows superseding all properties above. Provides full customization of design and behavior of the notification. ( + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN + ?id: string + #endif + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN + , + ?groupId: string + #endif + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN + , + ?groupTitle: string + #endif + , ?title: string #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC , @@ -16725,7 +17192,7 @@ module Main = ?body: string, ?silent: bool, ?icon: U2 - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN , ?hasReply: bool #endif @@ -16733,7 +17200,7 @@ module Main = , ?timeoutType: Main.Enums.Notification.Options.TimeoutType #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN , ?replyPlaceholder: string #endif @@ -16741,11 +17208,11 @@ module Main = , ?sound: string #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_LIN + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_LIN || ELECTRON_OS_WIN , ?urgency: Main.Enums.Notification.Options.Urgency #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN , ?actions: NotificationAction[] #endif @@ -16761,6 +17228,38 @@ module Main = ) = class end + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN + /// + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ + /// A unique identifier for the notification. On macOS, maps to UNNotificationRequest's identifier property. On Windows, maps to the toast notification's + /// Tag property. Defaults to a random UUID if not provided or if an empty string is passed. Use this identifier + /// with Notification.remove() to remove specific delivered notifications, or with Notification.getHistory() to identify them. + /// + [] + member val id: string = Unchecked.defaultof<_> with get, set + #endif + + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN + /// + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ + /// A string identifier used to visually group notifications together in Notification Center / Action Center. On macOS, maps to UNNotificationContent's + /// threadIdentifier property. On Windows, maps to the toast notification's Group property. Use this identifier with Notification.removeGroup() to remove all notifications + /// in a group. + /// + [] + member val groupId: string = Unchecked.defaultof<_> with get, set + #endif + + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN + /// + /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ + /// A title for the notification group header. When both groupId and groupTitle are specified, Windows will display a header above + /// the notification that groups related notifications together. Maps to the toast notification's header element. + /// + [] + member val groupTitle: string = Unchecked.defaultof<_> with get, set + #endif + /// /// A title for the notification, which will be displayed at the top of the notification window when it is shown. @@ -16795,9 +17294,9 @@ module Main = /// [] member val icon: U2 = Unchecked.defaultof<_> with get, set - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN /// - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ /// Whether or not to add an inline reply option to the notification. /// [] @@ -16813,9 +17312,9 @@ module Main = member val timeoutType: Main.Enums.Notification.Options.TimeoutType = Unchecked.defaultof<_> with get, set #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN /// - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ /// The placeholder to write in the inline reply input field. /// [] @@ -16831,18 +17330,18 @@ module Main = member val sound: string = Unchecked.defaultof<_> with get, set #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_LIN + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_LIN || ELECTRON_OS_WIN /// - /// ⚠ OS Compatibility: WIN ❌ | MAC ❌ | LIN ✔ | MAS ❌ + /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ✔ | MAS ❌ /// The urgency level of the notification. Can be 'normal', 'critical', or 'low'. /// [] member val urgency: Main.Enums.Notification.Options.Urgency = Unchecked.defaultof<_> with get, set #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN /// - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ /// Actions to add to the notification. Please read the available actions and limitations in the NotificationAction documentation. /// [] @@ -17292,6 +17791,44 @@ module Main = [] member val username: string = Unchecked.defaultof<_> with get, set + module ImageView = + module SetBounds = + [] + type Options + /// If true, the bounds change will be animated. If an object is passed, it can contain the following properties: + (?animate: U2) = + class + end + + /// + /// If true, the bounds change will be animated. If an object is passed, it can contain the following properties: + /// + [] + member val animate: U2 = + Unchecked.defaultof<_> with get, set + + module Options = + [] + type Animate + /// Duration of the animation in milliseconds. Default is 250. + /// Easing function for the animation. Default is linear. + (?duration: int, ?easing: Main.Enums.ImageView.SetBounds.Options.Animate.Easing) = + class + end + + /// + /// Duration of the animation in milliseconds. Default is 250. + /// + [] + member val duration: int = Unchecked.defaultof<_> with get, set + + /// + /// Easing function for the animation. Default is linear. + /// + [] + member val easing: Main.Enums.ImageView.SetBounds.Options.Animate.Easing = + Unchecked.defaultof<_> with get, set + module Extensions = /// /// Emitted after an extension is loaded and all necessary browser state is initialized to support the start of the extension's @@ -20693,7 +21230,8 @@ module Main = /// The post data that will be sent to the new window, along with the appropriate headers that will be /// set. If no post data is to be sent, the value will be null. Only defined when the window is /// being created by a form that set target=_blank. - /// Can be default, foreground-tab, background-tab, new-window or other. + /// Can be default, foreground-tab, background-tab, new-window or other. Corresponds to the manner an associated link was clicked. See Chromium's + /// WindowOpenDisposition. ( url: string, frameName: string, @@ -20740,7 +21278,7 @@ module Main = member val postBody: PostBody = Unchecked.defaultof<_> with get, set /// - /// Can be default, foreground-tab, background-tab, new-window or other. + /// Can be default, foreground-tab, background-tab, new-window or other. Corresponds to the manner an associated link was clicked. See Chromium's WindowOpenDisposition. /// [] member val disposition: Main.Enums.WebContents.DidCreateWindow.Details.Disposition = @@ -21129,7 +21667,8 @@ module Main = /// https://the-origin/the/current/path/foo. /// Name of the window provided in window.open() /// Comma separated list of window features provided to window.open(). - /// Can be default, foreground-tab, background-tab, new-window or other. + /// Can be default, foreground-tab, background-tab, new-window or other. Corresponds to the manner an associated link was clicked. See Chromium's + /// WindowOpenDisposition. /// The referrer that will be passed to the new window. May or may not result in the Referer header /// being sent, depending on the referrer policy. /// The post data that will be sent to the new window, along with the appropriate headers that will be @@ -21165,7 +21704,7 @@ module Main = member val features: string = Unchecked.defaultof<_> with get, set /// - /// Can be default, foreground-tab, background-tab, new-window or other. + /// Can be default, foreground-tab, background-tab, new-window or other. Corresponds to the manner an associated link was clicked. See Chromium's WindowOpenDisposition. /// [] member val disposition: Main.Enums.WebContents.SetWindowOpenHandler.Handler.Details.Disposition = @@ -21373,6 +21912,10 @@ module Main = /// string to be printed as page footer. /// Specify page size of the printed document. Can be A0, A1, A2, A3, A4, A5, A6, Legal, Letter, Tabloid /// or an Object containing height and width. + /// Whether to use a given printer's default page size. Default is false. Cannot be combined with pageSize. When deviceName + /// is provided, uses the default page size of that specific printer. When deviceName is not provided, uses the default page + /// size of the system's default printer. If the printer's default page size cannot be retrieved, falls back to A4 (210mm + /// x 297mm). ( ?silent: bool, ?printBackground: bool, @@ -21389,7 +21932,8 @@ module Main = ?dpi: Record, ?header: string, ?footer: string, - ?pageSize: U2 + ?pageSize: U2, + ?usePrinterDefaultPageSize: bool ) = class end @@ -21489,6 +22033,15 @@ module Main = member val pageSize: U2 = Unchecked.defaultof<_> with get, set + /// + /// Whether to use a given printer's default page size. Default is false. Cannot be combined with pageSize. When deviceName is + /// provided, uses the default page size of that specific printer. When deviceName is not provided, uses the default page size + /// of the system's default printer. If the printer's default page size cannot be retrieved, falls back to A4 (210mm x + /// 297mm). + /// + [] + member val usePrinterDefaultPageSize: bool = Unchecked.defaultof<_> with get, set + module Options = [] type PageRanges @@ -21564,6 +22117,241 @@ module Main = /// Error description called back if the print fails. type Callback = delegate of success: bool * failureReason: string -> unit + module UtilityProcess = + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + type IOnLogin = + [] + abstract member authenticationResponseDetails: Main.UtilityProcess.Login.AuthenticationResponseDetails with get, set + + [] + abstract member authInfo: Main.UtilityProcess.Login.AuthInfo with get, set + + [] + abstract member callback: Option * Option -> unit with get, set + + /// + /// Emitted when the child process needs to terminate due to non continuable error from V8.

No matter if you listen to + /// the error event, the exit event will be emitted after the child process terminates. + ///
+ [] + type IOnError = + /// + /// Type of error. One of the following values: + /// + [] + abstract member ``type``: Main.Enums.UtilityProcess.Error.Type with get, set + + /// + /// Source location from where the error originated. + /// + [] + abstract member location: string with get, set + + /// + /// Node.js diagnostic report. + /// + [] + abstract member report: string with get, set + + module Fork = + [] + type Options + /// Environment key-value pairs. Default is process.env. + /// List of string arguments passed to the executable. + /// Current working directory of the child process. + /// Sets the session used by the process for network requests. By default, network requests from the utility process will + /// use the system network context which does not have HTTP cache support. Setting a session enables HTTP caching and other + /// session-specific network features. See session for more information. + /// Sets the session used by the process according to the session's partition string. If partition starts with persist:, the + /// process will use a persistent session available to all pages in the app with the same partition. If there is + /// no persist: prefix, the process will use an in-memory session. By assigning the same partition, multiple processes can share the + /// same session. If the session option is set, this option is ignored. + /// Allows configuring the mode for stdout and stderr of the child process. Default is inherit. String value can be + /// one of pipe, ignore, inherit, for more details on these values you can refer to stdio documentation from Node.js. Currently + /// this option only supports configuring stdout and stderr to either pipe, inherit or ignore. Configuring stdin to any property other + /// than ignore is not supported and will result in an error. For example, the supported values will be processed as + /// following: + /// Name of the process that will appear in name property of ProcessMetric returned by app.getAppMetrics and child-process-gone event of + /// app. Default is Node Utility Process. + /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || With this flag, the + /// utility process will be launched via the Electron Helper (Plugin).app helper executable on macOS, which can be codesigned with com.apple.security.cs.disable-library-validation + /// and com.apple.security.cs.allow-unsigned-executable-memory entitlements. This will allow the utility process to load unsigned libraries. Unless you specifically need this capability, it + /// is best to leave this disabled. Default is false. + /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || With this flag, the + /// utility process will disclaim responsibility for the child process. This causes the operating system to consider the child process as + /// a separate entity for purposes of security policies like Transparency, Consent, and Control (TCC). When responsibility is disclaimed, the parent + /// process will not be attributed for any TCC requests initiated by the child process. This is useful when launching processes + /// that run third-party or otherwise untrusted code. Default is false. + /// With this flag, all HTTP 401 and 407 network requests created via the net module will allow responding to + /// them via the login event on the UtilityProcess instance when a session is provided, or via the app#login event in + /// the main process when using the default system network context. Without this flag, auth challenges are handled by the default + /// login event on the ClientRequest object. Default is false. + ( + ?env: obj, + ?execArgv: string[], + ?cwd: string, + ?session: Main.Session, + ?partition: string, + ?stdio: U2, + ?serviceName: string + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + , + ?allowLoadingUnsignedLibraries: bool + #endif + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + , + ?disclaim: bool + #endif + , + ?respondToAuthRequestsFromMainProcess: bool + ) = + class + end + + /// + /// Environment key-value pairs. Default is process.env. + /// + [] + member val env: obj = Unchecked.defaultof<_> with get, set + + /// + /// List of string arguments passed to the executable. + /// + [] + member val execArgv: string[] = Unchecked.defaultof<_> with get, set + + /// + /// Current working directory of the child process. + /// + [] + member val cwd: string = Unchecked.defaultof<_> with get, set + + /// + /// Sets the session used by the process for network requests. By default, network requests from the utility process will use + /// the system network context which does not have HTTP cache support. Setting a session enables HTTP caching and other session-specific + /// network features. See session for more information. + /// + [] + member val session: Main.Session = Unchecked.defaultof<_> with get, set + + /// + /// Sets the session used by the process according to the session's partition string. If partition starts with persist:, the process + /// will use a persistent session available to all pages in the app with the same partition. If there is no + /// persist: prefix, the process will use an in-memory session. By assigning the same partition, multiple processes can share the same + /// session. If the session option is set, this option is ignored. + /// + [] + member val partition: string = Unchecked.defaultof<_> with get, set + + /// + /// Allows configuring the mode for stdout and stderr of the child process. Default is inherit. String value can be one + /// of pipe, ignore, inherit, for more details on these values you can refer to stdio documentation from Node.js. Currently this + /// option only supports configuring stdout and stderr to either pipe, inherit or ignore. Configuring stdin to any property other than + /// ignore is not supported and will result in an error. For example, the supported values will be processed as following: + /// + [] + member val stdio: U2 = + Unchecked.defaultof<_> with get, set + + /// + /// Name of the process that will appear in name property of ProcessMetric returned by app.getAppMetrics and child-process-gone event of app. + /// Default is Node Utility Process. + /// + [] + member val serviceName: string = Unchecked.defaultof<_> with get, set + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + /// + /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ + /// With this flag, the utility process will be launched via the Electron Helper (Plugin).app helper executable on macOS, which can + /// be codesigned with com.apple.security.cs.disable-library-validation and com.apple.security.cs.allow-unsigned-executable-memory entitlements. This will allow the utility process to load unsigned libraries. Unless you specifically + /// need this capability, it is best to leave this disabled. Default is false. + /// + [] + member val allowLoadingUnsignedLibraries: bool = Unchecked.defaultof<_> with get, set + #endif + + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + /// + /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ + /// With this flag, the utility process will disclaim responsibility for the child process. This causes the operating system to consider + /// the child process as a separate entity for purposes of security policies like Transparency, Consent, and Control (TCC). When responsibility + /// is disclaimed, the parent process will not be attributed for any TCC requests initiated by the child process. This is + /// useful when launching processes that run third-party or otherwise untrusted code. Default is false. + /// + [] + member val disclaim: bool = Unchecked.defaultof<_> with get, set + #endif + + + /// + /// With this flag, all HTTP 401 and 407 network requests created via the net module will allow responding to them + /// via the login event on the UtilityProcess instance when a session is provided, or via the app#login event in the + /// main process when using the default system network context. Without this flag, auth challenges are handled by the default login + /// event on the ClientRequest object. Default is false. + /// + [] + member val respondToAuthRequestsFromMainProcess: bool = Unchecked.defaultof<_> with get, set + + module Options = + [] + type Env() = class end + + module Login = + [] + type AuthInfo + /// + /// + /// + /// + /// + (isProxy: bool, scheme: string, host: string, port: int, realm: string) = + class + end + + [] + member val isProxy: bool = Unchecked.defaultof<_> with get, set + + [] + member val scheme: string = Unchecked.defaultof<_> with get, set + + [] + member val host: string = Unchecked.defaultof<_> with get, set + + [] + member val port: int = Unchecked.defaultof<_> with get, set + + [] + member val realm: string = Unchecked.defaultof<_> with get, set + + [] + type AuthenticationResponseDetails + /// + /// + (url: URL, pid: float) = + class + end + + [] + member val url: URL = Unchecked.defaultof<_> with get, set + + [] + member val pid: float = Unchecked.defaultof<_> with get, set + + /// + /// + type Callback = delegate of ?username: string * ?password: string -> unit + module TouchBarSegmentedControl = [] type Options @@ -21761,6 +22549,28 @@ module Main = Promise module Session = + /// + /// Emitted when a call to navigator.credentials.get() resolves multiple discoverable WebAuthn credentials and the user must choose one. callback should be + /// called with the credentialId of the selected account; passing no arguments — or a credentialId that does not match one + /// of the provided accounts — will cancel the request and the page will receive a NotAllowedError. If no listener is + /// registered for this event, the request is cancelled with the same error. The credential request remains pending until the listener + /// invokes the callback, so always invoke it exactly once — typically from a try { … } finally { callback(…) + /// } block.

On macOS, the Touch ID platform authenticator surfaces accounts via this event once it has been configured with app.configureWebAuthn. + /// The event may also fire on other platforms when a roaming FIDO2 authenticator returns multiple discoverable credentials. + ///
+ [] + type IOnSelectWebauthnAccount = + [] + abstract member event: Event with get, set + + [] + abstract member details: Main.Session.SelectWebauthnAccount.Details with get, set + + [] + abstract member callback: Option> -> unit with get, set + /// /// Emitted after USBDevice.forget() has been called. This event can be used to help maintain persistent storage of permissions when /// setDevicePermissionHandler is used. @@ -22121,6 +22931,31 @@ module Main = [] abstract member webContents: Main.WebContents with get, set + module SelectWebauthnAccount = + [] + type Details + /// The relying party identifier from the WebAuthn request. + /// + /// The frame initiating this event. May be null if accessed after the frame has either navigated or been destroyed. + (relyingPartyId: string, accounts: WebAuthnAccount[], frame: Option) = + class + end + + /// + /// The relying party identifier from the WebAuthn request. + /// + [] + member val relyingPartyId: string = Unchecked.defaultof<_> with get, set + + [] + member val accounts: WebAuthnAccount[] = Unchecked.defaultof<_> with get, set + + /// + /// The frame initiating this event. May be null if accessed after the frame has either navigated or been destroyed. + /// + [] + member val frame: Option = Unchecked.defaultof<_> with get, set + module UsbDeviceRevoked = [] type Details @@ -22703,12 +23538,7 @@ module Main = /// Should follow window.location.origin’s representation scheme://host:port. /// The types of storages to clear, can be cookies, filesystem, indexdb, localstorage, shadercache, websql, serviceworkers, cachestorage. If not specified, /// clear all storage types. - /// The types of quotas to clear, can be temporary. If not specified, clear all quotas. - ( - ?origin: string, - ?storages: Main.Enums.Session.ClearStorageData.Options.Storages[], - ?quotas: Main.Enums.Session.ClearStorageData.Options.Quotas[] - ) = + (?origin: string, ?storages: Main.Enums.Session.ClearStorageData.Options.Storages[]) = class end @@ -22726,13 +23556,6 @@ module Main = member val storages: Main.Enums.Session.ClearStorageData.Options.Storages[] = Unchecked.defaultof<_> with get, set - /// - /// The types of quotas to clear, can be temporary. If not specified, clear all quotas. - /// - [] - member val quotas: Main.Enums.Session.ClearStorageData.Options.Quotas[] = - Unchecked.defaultof<_> with get, set - module FromPath = [] type Options @@ -25612,6 +26435,47 @@ module Main = #endif + module ConfigureWebAuthn = + [] + type Options + /// Enables the Touch ID / Secure Enclave platform authenticator for Web Authentication requests. + (?touchID: Main.App.ConfigureWebAuthn.Options.TouchID) = + class + end + + /// + /// Enables the Touch ID / Secure Enclave platform authenticator for Web Authentication requests. + /// + [] + member val touchID: Main.App.ConfigureWebAuthn.Options.TouchID = Unchecked.defaultof<_> with get, set + + module Options = + [] + type TouchID + /// The keychain access group that WebAuthn credentials will be stored under. This value must also be present in your + /// app's keychain-access-groups code-signing entitlement, and is typically of the form <TEAM_ID>.<BUNDLE_ID>.webauthn. + /// Customizes the reason text shown in the macOS Touch ID prompt. macOS renders the prompt as "<App Name>" is + /// trying to <promptReason>, so the value should be a lowercase sentence fragment. An optional $1 placeholder is replaced with the + /// relying party ID (e.g. example.com) of the request being authenticated. Defaults to verify your identity on $1. + (keychainAccessGroup: string, ?promptReason: string) = + class + end + + /// + /// The keychain access group that WebAuthn credentials will be stored under. This value must also be present in your app's + /// keychain-access-groups code-signing entitlement, and is typically of the form <TEAM_ID>.<BUNDLE_ID>.webauthn. + /// + [] + member val keychainAccessGroup: string = Unchecked.defaultof<_> with get, set + + /// + /// Customizes the reason text shown in the macOS Touch ID prompt. macOS renders the prompt as "<App Name>" is trying + /// to <promptReason>, so the value should be a lowercase sentence fragment. An optional $1 placeholder is replaced with the relying + /// party ID (e.g. example.com) of the request being authenticated. Defaults to verify your identity on $1. + /// + [] + member val promptReason: string = Unchecked.defaultof<_> with get, set + module ConfigureHostResolver = [] type Options @@ -26074,10 +26938,25 @@ module Main = module Details = [] type Disposition = + /// + /// Indicates Chromium deems in-window navigation valid for a window open call. + /// | [] Default + /// + /// Corresponds to a left click or shift + middle click. + /// | [] ForegroundTab + /// + /// Corresponds to a middle click or ctrl/cmd + click. + /// | [] BackgroundTab + /// + /// Corresponds to a shift + left click. + /// | [] NewWindow + /// + /// A catch-all for the remaining Chromium dispositions not handled by Electron. + /// | [] Other module SetImageAnimationPolicy = @@ -26226,10 +27105,25 @@ module Main = module Details = [] type Disposition = + /// + /// Indicates Chromium deems in-window navigation valid for a window open call. + /// | [] Default + /// + /// Corresponds to a left click or shift + middle click. + /// | [] ForegroundTab + /// + /// Corresponds to a middle click or ctrl/cmd + click. + /// | [] BackgroundTab + /// + /// Corresponds to a shift + left click. + /// | [] NewWindow + /// + /// A catch-all for the remaining Chromium dispositions not handled by Electron. + /// | [] Other module InsertCSS = @@ -26239,6 +27133,28 @@ module Main = | [] User | [] Author + module WebContentsView = + module SetBounds = + module Options = + module Animate = + [] + type Easing = + | [] Linear + | [] EaseIn + | [] EaseOut + | [] EaseInOut + + module View = + module SetBounds = + module Options = + module Animate = + [] + type Easing = + | [] Linear + | [] EaseIn + | [] EaseOut + | [] EaseInOut + module UtilityProcess = module Error = [] @@ -27109,9 +28025,6 @@ module Main = module ClearStorageData = module Options = - [] - type Quotas = | [] Temporary - [] type Storages = | [] Cookies @@ -27505,6 +28418,17 @@ module Main = | [] MoveTabToNewWindow | [] WindowMenu + module ImageView = + module SetBounds = + module Options = + module Animate = + [] + type Easing = + | [] Linear + | [] EaseIn + | [] EaseOut + | [] EaseInOut + module DownloadItem = module Done = [] @@ -27559,7 +28483,7 @@ module Main = [] type Properties = /// - /// Show hidden files in dialog. + /// Show hidden files in dialog. Deprecated on Linux. /// | [] ShowHiddenFiles /// @@ -27584,7 +28508,7 @@ module Main = [] type Properties = /// - /// Show hidden files in dialog. + /// Show hidden files in dialog. Deprecated on Linux. /// | [] ShowHiddenFiles /// @@ -27621,7 +28545,7 @@ module Main = /// | [] MultiSelections /// - /// Show hidden files in dialog. + /// Show hidden files in dialog. Deprecated on Linux. /// | [] ShowHiddenFiles /// @@ -27663,7 +28587,7 @@ module Main = /// | [] MultiSelections /// - /// Show hidden files in dialog. + /// Show hidden files in dialog. Deprecated on Linux. /// | [] ShowHiddenFiles /// @@ -27701,7 +28625,21 @@ module Main = [] type Cause = /// - /// The cookie was changed directly by a consumer's action. + /// The cookie was inserted. + /// + | [] Inserted + /// + /// The newly inserted cookie overwrote a cookie but did not result in any change. For example, inserting an identical cookie + /// will produce this cause. + /// + | [] InsertedNoChangeOverwrite + /// + /// The newly inserted cookie overwrote a cookie but did not result in any value change, but it's web observable (e.g. + /// updates the expiry). + /// + | [] InsertedNoValueChangeOverwrite + /// + /// The cookie was deleted directly by a consumer's action. /// | [] Explicit /// @@ -28201,6 +29139,10 @@ module Main = /// | [] AppData | [] Assets + /// + /// specific files within a subdirectory of userData (e.g., path.join(app.getPath('userData'), 'my-app-data')) rather than directly in userData itself, to avoid naming conflicts + /// with Chromium's own subdirectories (such as Cache, GPUCache, and Local Storage). + /// | [] UserData | [] SessionData | [] Temp @@ -31274,7 +32216,8 @@ module Main = /// /// Adjusts the current text selection starting and ending points in the focused frame by the given amounts. A negative amount /// moves the selection towards the beginning of the document, and a positive amount moves the selection towards the end of - /// the document.

Example:

For a call of win.webContents.adjustSelection({ start: 1, end: 5 })

Before:

After: + /// the document.

Example:

For a call of win.webContents.adjustSelection({ start: 1, end: 5 })

Before:

[Image: Image Before Text Selection Adjustment]

After:

[Image: Image After Text Selection + /// Adjustment] ///
/// Amount to shift the start index of the current selection. /// Amount to shift the end index of the current selection. @@ -31349,10 +32292,11 @@ module Main = /// /// When a custom pageSize is passed, Chromium attempts to validate platform specific minimum values for width_microns and height_microns. Width and - /// height must both be minimum 353 microns but may be higher on some operating systems.

Prints window's web page. When silent - /// is set to true, Electron will pick the system's default printer if deviceName is empty and the default settings for - /// printing.

Some possible failureReasons for print failure include:

* "Invalid printer settings"
* "Print job canceled"
* "Print job failed"

Use page-break-before: always; CSS style - /// to force to print to a new page.

Example usage: + /// height must both be minimum 353 microns but may be higher on some operating systems. If a valid pageSize is + /// not passed and usePrinterDefaultPageSize is false, an error will be thrown.

Prints window's web page. When silent is set to true, + /// Electron will pick the system's default printer if deviceName is empty and the default settings for printing.

Some possible failureReasons for + /// print failure include:

* "Invalid printer settings"
* "Print job canceled"
* "Print job failed"

Use page-break-before: always; CSS style to force to print + /// to a new page.

Example usage: ///
/// /// @@ -31426,7 +32370,7 @@ module Main = /// /// Opens the DevTools.

When contents is a <webview> tag, the mode would be detach by default, explicitly passing an empty mode - /// can force using last used dock state.

On Windows, if Windows Control Overlay is enabled, DevTools will be opened with mode: + /// can force using last used dock state.

On Windows, if Window Control Overlay is enabled, DevTools will be opened with mode: /// 'detach'. ///
/// Opens the DevTools with specified dock state, can be left, right, bottom, undocked, detach. Defaults to last used dock @@ -31727,6 +32671,13 @@ module Main = [] member inline _.getMediaSourceId(requestWebContents: Main.WebContents) : string = Unchecked.defaultof<_> + /// + /// The Chrome DevTools Protocol TargetID associated with this WebContents. This is the reverse of webContents.fromDevToolsTargetId().

> [!NOTE] This method creates a + /// new DevTools agent for this WebContents if one does not already exist. + ///
+ [] + member inline _.getOrCreateDevToolsTargetId() : string = Unchecked.defaultof<_> + /// /// The operating system pid of the associated renderer process. /// @@ -32004,8 +32955,12 @@ module Main = /// /// /// New bounds of the View. - [] - member inline _.setBounds(bounds: Rectangle) : unit = Unchecked.defaultof<_> + /// If true, the bounds change will be animated. If an object is passed, it can contain the following properties: + [] + member inline _.setBounds + (bounds: Rectangle, ?animate: U2) + : unit = + Unchecked.defaultof<_> /// /// The bounds of this View, relative to its parent. @@ -32113,8 +33068,10 @@ module Main = /// /// /// New bounds of the View. - [] - member inline _.setBounds(bounds: Rectangle) : unit = Unchecked.defaultof<_> + /// If true, the bounds change will be animated. If an object is passed, it can contain the following properties: + [] + member inline _.setBounds(bounds: Rectangle, ?animate: U2) : unit = + Unchecked.defaultof<_> /// /// The bounds of this View, relative to its parent. @@ -32270,6 +33227,84 @@ module Main = [] member inline _.offMessage(handler: obj -> unit) : unit = Unchecked.defaultof<_> + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.onLogin + ( + handler: + Main.UtilityProcess.Login.AuthenticationResponseDetails + -> Main.UtilityProcess.Login.AuthInfo + -> Option * Option -> unit + -> unit + ) : unit = + Unchecked.defaultof<_> + + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.onLogin(handler: Main.UtilityProcess.IOnLogin -> unit) : unit = Unchecked.defaultof<_> + + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.onceLogin + ( + handler: + Main.UtilityProcess.Login.AuthenticationResponseDetails + -> Main.UtilityProcess.Login.AuthInfo + -> Option * Option -> unit + -> unit + ) : unit = + Unchecked.defaultof<_> + + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.onceLogin(handler: Main.UtilityProcess.IOnLogin -> unit) : unit = Unchecked.defaultof<_> + + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.offLogin + ( + handler: + Main.UtilityProcess.Login.AuthenticationResponseDetails + -> Main.UtilityProcess.Login.AuthInfo + -> Option * Option -> unit + -> unit + ) : unit = + Unchecked.defaultof<_> + + /// + /// Emitted when the utility process encounters an HTTP 401 or 407 authentication challenge, if the process was created with both + /// respondToAuthRequestsFromMainProcess: true and a session option. The callback should be called with credentials to respond to the challenge. Calling callback + /// without arguments will cancel the request.

This behaves the same as the login event on app but is scoped to the + /// individual utility process instance. + ///
+ [] + member inline _.offLogin(handler: Main.UtilityProcess.IOnLogin -> unit) : unit = Unchecked.defaultof<_> + /// /// Send a message to the child process, optionally transferring ownership of zero or more MessagePortMain objects.

For example: ///
@@ -32327,6 +33362,13 @@ module Main = /// Environment key-value pairs. Default is process.env. /// List of string arguments passed to the executable. /// Current working directory of the child process. + /// Sets the session used by the process for network requests. By default, network requests from the utility process will + /// use the system network context which does not have HTTP cache support. Setting a session enables HTTP caching and other + /// session-specific network features. See session for more information. + /// Sets the session used by the process according to the session's partition string. If partition starts with persist:, the + /// process will use a persistent session available to all pages in the app with the same partition. If there is + /// no persist: prefix, the process will use an in-memory session. By assigning the same partition, multiple processes can share the + /// same session. If the session option is set, this option is ignored. /// Allows configuring the mode for stdout and stderr of the child process. Default is inherit. String value can be /// one of pipe, ignore, inherit, for more details on these values you can refer to stdio documentation from Node.js. Currently /// this option only supports configuring stdout and stderr to either pipe, inherit or ignore. Configuring stdin to any property other @@ -32344,8 +33386,9 @@ module Main = /// process will not be attributed for any TCC requests initiated by the child process. This is useful when launching processes /// that run third-party or otherwise untrusted code. Default is false. /// With this flag, all HTTP 401 and 407 network requests created via the net module will allow responding to - /// them via the app#login event in the main process instead of the default login event on the ClientRequest object. Default - /// is false. + /// them via the login event on the UtilityProcess instance when a session is provided, or via the app#login event in + /// the main process when using the default system network context. Without this flag, auth challenges are handled by the default + /// login event on the ClientRequest object. Default is false. [] static member inline fork ( @@ -32354,6 +33397,8 @@ module Main = ?env: obj, ?execArgv: string[], ?cwd: string, + ?session: Main.Session, + ?partition: string, ?stdio: U2, ?serviceName: string, ?allowLoadingUnsignedLibraries: bool, @@ -35682,6 +36727,90 @@ module Main = member inline _.offUsbDeviceRevoked(handler: Main.Session.IOnUsbDeviceRevoked -> unit) : unit = Unchecked.defaultof<_> + /// + /// Emitted when a call to navigator.credentials.get() resolves multiple discoverable WebAuthn credentials and the user must choose one. callback should be + /// called with the credentialId of the selected account; passing no arguments — or a credentialId that does not match one + /// of the provided accounts — will cancel the request and the page will receive a NotAllowedError. If no listener is + /// registered for this event, the request is cancelled with the same error. The credential request remains pending until the listener + /// invokes the callback, so always invoke it exactly once — typically from a try { … } finally { callback(…) + /// } block.

On macOS, the Touch ID platform authenticator surfaces accounts via this event once it has been configured with app.configureWebAuthn. + /// The event may also fire on other platforms when a roaming FIDO2 authenticator returns multiple discoverable credentials. + ///
+ [] + member inline _.onSelectWebauthnAccount + (handler: Event -> Main.Session.SelectWebauthnAccount.Details -> Option> -> unit -> unit) + : unit = + Unchecked.defaultof<_> + + /// + /// Emitted when a call to navigator.credentials.get() resolves multiple discoverable WebAuthn credentials and the user must choose one. callback should be + /// called with the credentialId of the selected account; passing no arguments — or a credentialId that does not match one + /// of the provided accounts — will cancel the request and the page will receive a NotAllowedError. If no listener is + /// registered for this event, the request is cancelled with the same error. The credential request remains pending until the listener + /// invokes the callback, so always invoke it exactly once — typically from a try { … } finally { callback(…) + /// } block.

On macOS, the Touch ID platform authenticator surfaces accounts via this event once it has been configured with app.configureWebAuthn. + /// The event may also fire on other platforms when a roaming FIDO2 authenticator returns multiple discoverable credentials. + ///
+ [] + member inline _.onSelectWebauthnAccount(handler: Main.Session.IOnSelectWebauthnAccount -> unit) : unit = + Unchecked.defaultof<_> + + /// + /// Emitted when a call to navigator.credentials.get() resolves multiple discoverable WebAuthn credentials and the user must choose one. callback should be + /// called with the credentialId of the selected account; passing no arguments — or a credentialId that does not match one + /// of the provided accounts — will cancel the request and the page will receive a NotAllowedError. If no listener is + /// registered for this event, the request is cancelled with the same error. The credential request remains pending until the listener + /// invokes the callback, so always invoke it exactly once — typically from a try { … } finally { callback(…) + /// } block.

On macOS, the Touch ID platform authenticator surfaces accounts via this event once it has been configured with app.configureWebAuthn. + /// The event may also fire on other platforms when a roaming FIDO2 authenticator returns multiple discoverable credentials. + ///
+ [] + member inline _.onceSelectWebauthnAccount + (handler: Event -> Main.Session.SelectWebauthnAccount.Details -> Option> -> unit -> unit) + : unit = + Unchecked.defaultof<_> + + /// + /// Emitted when a call to navigator.credentials.get() resolves multiple discoverable WebAuthn credentials and the user must choose one. callback should be + /// called with the credentialId of the selected account; passing no arguments — or a credentialId that does not match one + /// of the provided accounts — will cancel the request and the page will receive a NotAllowedError. If no listener is + /// registered for this event, the request is cancelled with the same error. The credential request remains pending until the listener + /// invokes the callback, so always invoke it exactly once — typically from a try { … } finally { callback(…) + /// } block.

On macOS, the Touch ID platform authenticator surfaces accounts via this event once it has been configured with app.configureWebAuthn. + /// The event may also fire on other platforms when a roaming FIDO2 authenticator returns multiple discoverable credentials. + ///
+ [] + member inline _.onceSelectWebauthnAccount(handler: Main.Session.IOnSelectWebauthnAccount -> unit) : unit = + Unchecked.defaultof<_> + + /// + /// Emitted when a call to navigator.credentials.get() resolves multiple discoverable WebAuthn credentials and the user must choose one. callback should be + /// called with the credentialId of the selected account; passing no arguments — or a credentialId that does not match one + /// of the provided accounts — will cancel the request and the page will receive a NotAllowedError. If no listener is + /// registered for this event, the request is cancelled with the same error. The credential request remains pending until the listener + /// invokes the callback, so always invoke it exactly once — typically from a try { … } finally { callback(…) + /// } block.

On macOS, the Touch ID platform authenticator surfaces accounts via this event once it has been configured with app.configureWebAuthn. + /// The event may also fire on other platforms when a roaming FIDO2 authenticator returns multiple discoverable credentials. + ///
+ [] + member inline _.offSelectWebauthnAccount + (handler: Event -> Main.Session.SelectWebauthnAccount.Details -> Option> -> unit -> unit) + : unit = + Unchecked.defaultof<_> + + /// + /// Emitted when a call to navigator.credentials.get() resolves multiple discoverable WebAuthn credentials and the user must choose one. callback should be + /// called with the credentialId of the selected account; passing no arguments — or a credentialId that does not match one + /// of the provided accounts — will cancel the request and the page will receive a NotAllowedError. If no listener is + /// registered for this event, the request is cancelled with the same error. The credential request remains pending until the listener + /// invokes the callback, so always invoke it exactly once — typically from a try { … } finally { callback(…) + /// } block.

On macOS, the Touch ID platform authenticator surfaces accounts via this event once it has been configured with app.configureWebAuthn. + /// The event may also fire on other platforms when a roaming FIDO2 authenticator returns multiple discoverable credentials. + ///
+ [] + member inline _.offSelectWebauthnAccount(handler: Main.Session.IOnSelectWebauthnAccount -> unit) : unit = + Unchecked.defaultof<_> + /// /// the session's current cache size, in bytes. /// @@ -35700,14 +36829,10 @@ module Main = /// Should follow window.location.origin’s representation scheme://host:port. /// The types of storages to clear, can be cookies, filesystem, indexdb, localstorage, shadercache, websql, serviceworkers, cachestorage. If not specified, /// clear all storage types. - /// The types of quotas to clear, can be temporary. If not specified, clear all quotas. [] member inline _.clearStorageData - ( - ?origin: string, - ?storages: Main.Enums.Session.ClearStorageData.Options.Storages[], - ?quotas: Main.Enums.Session.ClearStorageData.Options.Quotas[] - ) : Promise = + (?origin: string, ?storages: Main.Enums.Session.ClearStorageData.Options.Storages[]) + : Promise = Unchecked.defaultof<_> /// @@ -36863,18 +37988,29 @@ module Main = /// ⚠ Process Availability: Main ✔ | Renderer ❌ | Utility ❌ | Exported ✔ /// > Allows access to simple encryption and decryption of strings for storage on the local machine.

Process: Main

This module adds extra /// protection to data being stored on disk by using OS-provided cryptography systems. Current security semantics for each platform are outlined - /// below.

* **macOS**: Encryption keys are stored for your app in Keychain Access in a way that prevents other applications from - /// loading them without user override. Therefore, content is protected from other users and other apps running in the same userspace.
* - /// **Windows**: Encryption keys are generated via DPAPI. As per the Windows documentation: "Typically, only a user with the same logon - /// credential as the user who encrypted the data can typically decrypt the data". Therefore, content is protected from other users - /// on the same machine, but not from other apps running in the same userspace.
* **Linux**: Encryption keys are generated and - /// stored in a secret store that varies depending on your window manager and system setup. Options currently supported are kwallet, - /// kwallet5, kwallet6 and gnome-libsecret, but more may be available in future versions of Electron. As such, the security semantics of - /// content protected via the safeStorage API vary between window managers and secret stores.
* Note that not all Linux - /// setups have an available secret store. If no secret store is available, items stored in using the safeStorage API will - /// be unprotected as they are encrypted via hardcoded plaintext password. You can detect when this happens when safeStorage.getSelectedStorageBackend() returns basic_text.

Note - /// that on Mac, access to the system Keychain is required and these calls can block the current thread to collect - /// user input. The same is true for Linux, if a password management tool is available. + /// below.

> [!NOTE] We recommend using the asynchronous API (encryptStringAsync/decryptStringAsync) over the synchronous API. The async API is non-blocking, supports key + /// rotation, and handles temporary unavailability gracefully. The synchronous API may be deprecated in a future version of Electron.

### Platform-Specific Key + /// Providers



### Synchronous API

* **macOS**: Encryption keys are stored for your app in Keychain Access in a way that prevents other + /// applications from loading them without user override. Therefore, content is protected from other users and other apps running in the + /// same userspace.
* **Windows**: Encryption keys are generated via DPAPI. As per the Windows documentation: "Typically, only a user with the + /// same logon credential as the user who encrypted the data can typically decrypt the data". Therefore, content is protected from + /// other users on the same machine, but not from other apps running in the same userspace.
* **Linux**: Encryption keys are + /// generated and stored in a secret store that varies depending on your window manager and system setup. Options currently supported + /// are kwallet, kwallet5, kwallet6 and gnome-libsecret, but more may be available in future versions of Electron. As such, the security + /// semantics of content protected via the safeStorage API vary between window managers and secret stores.
* Note that not + /// all Linux setups have an available secret store. If no secret store is available, items stored in using the safeStorage + /// API will be unprotected as they are encrypted via hardcoded plaintext password. You can detect when this happens when safeStorage.getSelectedStorageBackend() + /// returns basic_text.

Note that on macOS, access to the system Keychain is required and these calls can block the current thread + /// to collect user input. The same is true for Linux, if a password management tool is available.

### Asynchronous API

The asynchronous + /// API uses pluggable key providers that vary by platform:

* **macOS**: Encryption keys are stored and retrieved from Keychain Access. This + /// provides the same security model as the synchronous API, protecting content from other users and other apps running in the + /// same userspace.
* **Windows**: Encryption keys are protected via DPAPI. This provides the same security model as the synchronous API, protecting + /// content from other users on the same machine but not from other apps running in the same userspace.
* **Linux**: Multiple + /// key providers may be available depending on the desktop environment:
* org.freedesktop.portal.Secret: Uses the Portal Secret D-Bus interface to + /// retrieve application-specific secrets. This is the preferred provider for sandboxed environments like Flatpak.
* Secret Service API: Uses the + /// freedesktop.org Secret Service API (e.g., GNOME Keyring) for key storage.
* A fallback provider is used for environments without + /// a secret service available.

Unlike the synchronous API, these operations are non-blocking and support additional features like key rotation (indicated by + /// shouldReEncrypt) and temporary unavailability handling (indicated by isTemporarilyUnavailable). ///
[] type safeStorage = @@ -36889,6 +38025,13 @@ module Main = [] static member inline isEncryptionAvailable() : bool = Unchecked.defaultof<_> + /// + /// Resolves with whether encryption is available for asynchronous safeStorage operations.

The asynchronous encryptor is initialized lazily the first time this method, + /// encryptStringAsync, or decryptStringAsync is called after the app is ready. The returned promise resolves once initialization completes. + ///
+ [] + static member inline isAsyncEncryptionAvailable() : Promise = Unchecked.defaultof<_> + /// /// An array of bytes representing the encrypted string.

This function will throw an error if encryption fails. ///
@@ -36897,13 +38040,30 @@ module Main = static member inline encryptString(plainText: string) : Buffer = Unchecked.defaultof<_> /// - /// the decrypted string. Decrypts the encrypted buffer obtained with safeStorage.encryptString back into a string.

This function will throw an error - /// if decryption fails. + /// the decrypted string. Decrypts the encrypted buffer obtained with safeStorage.encryptString back into a string. ///
/// [] static member inline decryptString(encrypted: Buffer) : string = Unchecked.defaultof<_> + /// + /// An array of bytes representing the encrypted string. + /// + /// + [] + static member inline encryptStringAsync(plainText: string) : Promise = Unchecked.defaultof<_> + + /// + /// Resolve with an object containing the following:

* shouldReEncrypt boolean - whether data that has just been returned from the decrypt + /// operation should be re-encrypted, as the key has been rotated or a new key is available that provides a + /// different security level. If true, you should call decryptStringAsync again to receive the new decrypted string.
* result string - the + /// decrypted string. + ///
+ /// + [] + static member inline decryptStringAsync(encrypted: Buffer) : Promise = + Unchecked.defaultof<_> + /// /// This function on Linux will force the module to use an in memory password for creating symmetric key that is /// used for encrypt/decrypt functions when a valid OS password manager cannot be determined for the current active desktop environment. This @@ -37058,7 +38218,9 @@ module Main = /// to register it to that session explicitly.


const { app, BrowserWindow, net, protocol, session } = require('electron')

const path = require('node:path')
const url /// = require('node:url')

app.whenReady().then(() => {
const partition = 'persist:example'
const ses = session.fromPartition(partition)

ses.protocol.handle('atom', (request) => {
/// const filePath = request.url.slice('atom://'.length)
return net.fetch(url.pathToFileURL(path.resolve(__dirname, filePath)).toString())
})

const mainWindow = new BrowserWindow({ - /// webPreferences: { partition } })
})
+ /// webPreferences: { partition } })
})


### Protocol names

RFC 3986 defines what a valid protocol name is:

> Scheme names consist of a + /// sequence of characters beginning with a letter and followed by any combination of letters, digits, plus ("+"), period ("."), or + /// hyphen ("-"). Although schemes are case-insensitive, the canonical form is lowercase […]. ///
[] type protocol = @@ -37945,13 +39107,54 @@ module Main = /// /// ⚠ Process Availability: Main ✔ | Renderer ❌ | Utility ❌ | Exported ✔ /// > Create OS desktop notifications

Process: Main

> [!NOTE] If you want to show notifications from a renderer process you should use - /// the web Notifications API

### Class: Notification

> Create OS desktop notifications

Process: Main

Notification is an EventEmitter.

It creates a new Notification with native - /// properties as set by the options.

> [!WARNING] Electron's built-in classes cannot be subclassed in user code. For more information, see - /// the FAQ.

### Static Methods

The Notification class has the following static methods:

### Notification.isSupported()

Returns boolean - Whether or not desktop notifications are - /// supported on the current system + /// the web Notifications API

> [!NOTE] On MacOS, notifications use the UNNotification API as their underlying framework. This API requires an + /// application to be code-signed in order for notifications to appear. Unsigned binaries will emit a failed event when notifications are + /// called.

### Class: Notification

> Create OS desktop notifications

Process: Main

Notification is an EventEmitter.

It creates a new Notification with native properties as set + /// by the options.

> [!WARNING] Electron's built-in classes cannot be subclassed in user code. For more information, see the FAQ.

### Static + /// Methods

The Notification class has the following static methods:

### Notification.isSupported()

Returns boolean - Whether or not desktop notifications are supported on the + /// current system

### Notification.handleActivation(callback) _Windows_

* callback Function
* details ActivationArguments - Details about the notification activation.

Registers a callback to handle + /// all notification activations. The callback is invoked whenever a notification is clicked, replied to, or has an action button pressed + /// - regardless of whether the original Notification object is still in memory.

This method handles timing automatically:

* If an activation already + /// occurred before calling this method, the callback is invoked immediately with those details.
* For all subsequent activations, the callback is + /// invoked when they occur.

The callback remains registered until replaced by another call to handleActivation.

This provides a centralized way to handle + /// notification interactions that works in all scenarios:

* Cold start (app launched from notification click)
* Notifications persisted in AC that have + /// no in-memory representation after app re-start
* Notification object was garbage collected
* Notification object is still in memory (callback is invoked + /// in addition to instance events)


const { Notification, app } = require('electron')

app.whenReady().then(() => {
// Register handler for all notification + /// activations
Notification.handleActivation((details) => {
console.log('Notification activated:', details.type)
if (details.type === 'reply') {
+ /// console.log('User reply:', details.reply)
} else if (details.type === 'action') {
+ /// console.log('Action index:', details.actionIndex)
}
})
})


### Notification.getHistory() _macOS_

Returns Promise<Notification[]> - Resolves with an array of + /// Notification objects representing all delivered notifications still present in Notification Center.

Each returned Notification is a live object connected to the + /// corresponding delivered notification. Interaction events (click, reply, action, close) will fire on these objects when the user interacts with the + /// notification in Notification Center. This is useful after an app restart to re-attach event handlers to notifications from a previous + /// session.

The returned notifications have their id, groupId, title, subtitle, and body properties populated from information available in the Notification Center. + /// Other properties (e.g., actions, silent, icon) are not available from delivered notifications and will have default values.

> [!NOTE] Like all + /// macOS notification APIs, this method requires the application to be code-signed. In unsigned development builds, notifications are not delivered to + /// Notification Center and this method will resolve with an empty array.

> [!NOTE] Unlike notifications created with new Notification(), notifications returned + /// by getHistory() will remain visible in Notification Center when the object is garbage collected. Calling show() on a restored notification + /// will remove the original from Notification Center and post a new one with the same properties.


const { Notification, app } + /// = require('electron')

app.whenReady().then(async () => {
// Restore notifications from a previous session
const notifications = await Notification.getHistory()
+ /// for (const n of notifications) {
console.log(Found delivered notification: ${n.id} - ${n.title})
n.on('click', () + /// => {
console.log(User clicked: ${n.id})
})
n.on('reply', (event) => + /// {
console.log(User replied to ${n.id}: ${event.reply})
})
}
// Keep + /// references so events continue to fire
})


### Notification.remove(id) _macOS_

* id (string | string[]) - The notification identifier(s) to remove. These correspond + /// to the id values set in the Notification constructor.

Removes one or more delivered notifications from Notification Center by their identifier(s).


const + /// { Notification } = require('electron')

// Remove a single notification
Notification.remove('my-notification-id')

// Remove multiple notifications
Notification.remove(['msg-1', 'msg-2', 'msg-3'])


### Notification.removeAll() _macOS_

Removes all of the app's + /// delivered notifications from Notification Center.


const { Notification } = require('electron')

Notification.removeAll()


### Notification.removeGroup(groupId) _macOS_

* groupId string - The group identifier of the + /// notifications to remove. This corresponds to the groupId value set in the Notification constructor.

Removes all delivered notifications with the given + /// groupId from Notification Center.


const { Notification } = require('electron')

// Remove all notifications in the 'chat-thread-1' group
Notification.removeGroup('chat-thread-1')
///
[] type Notification + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ || A unique identifier for + /// the notification. On macOS, maps to UNNotificationRequest's identifier property. On Windows, maps to the toast notification's Tag property. Defaults to + /// a random UUID if not provided or if an empty string is passed. Use this identifier with Notification.remove() to remove + /// specific delivered notifications, or with Notification.getHistory() to identify them. + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ || A string identifier used + /// to visually group notifications together in Notification Center / Action Center. On macOS, maps to UNNotificationContent's threadIdentifier property. On Windows, + /// maps to the toast notification's Group property. Use this identifier with Notification.removeGroup() to remove all notifications in a group. + /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ || A title for the + /// notification group header. When both groupId and groupTitle are specified, Windows will display a header above the notification that groups + /// related notifications together. Maps to the toast notification's header element. /// A title for the notification, which will be displayed at the top of the notification window when it is /// shown. /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || A subtitle for the @@ -37960,17 +39163,17 @@ module Main = /// Whether or not to suppress the OS notification noise when showing the notification. /// An icon to use in the notification. If a string is passed, it must be a valid path to /// a local icon file. - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || Whether or not to + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ || Whether or not to /// add an inline reply option to the notification. /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ✔ | MAS ❌ || The timeout duration of /// the notification. Can be 'default' or 'never'. - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || The placeholder to write + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ || The placeholder to write /// in the inline reply input field. /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || The name of the /// sound file to play when the notification is shown. - /// ⚠ OS Compatibility: WIN ❌ | MAC ❌ | LIN ✔ | MAS ❌ || The urgency level of + /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ✔ | MAS ❌ || The urgency level of /// the notification. Can be 'normal', 'critical', or 'low'. - /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || Actions to add to + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ || Actions to add to /// the notification. Please read the available actions and limitations in the NotificationAction documentation. /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || A custom title for /// the close button of an alert. An empty string will cause the default localized text to be used. @@ -37978,6 +39181,18 @@ module Main = /// the Notification on Windows superseding all properties above. Provides full customization of design and behavior of the notification. [] ( + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN + ?id: string + #endif + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN + , + ?groupId: string + #endif + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN + , + ?groupTitle: string + #endif + , ?title: string #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC , @@ -37987,7 +39202,7 @@ module Main = ?body: string, ?silent: bool, ?icon: U2 - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN , ?hasReply: bool #endif @@ -37995,7 +39210,7 @@ module Main = , ?timeoutType: Main.Enums.Notification.Options.TimeoutType #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN , ?replyPlaceholder: string #endif @@ -38003,11 +39218,11 @@ module Main = , ?sound: string #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_LIN + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_LIN || ELECTRON_OS_WIN , ?urgency: Main.Enums.Notification.Options.Urgency #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN , ?actions: NotificationAction[] #endif @@ -38220,10 +39435,10 @@ module Main = member inline _.offAction(handler: Main.Notification.IOnAction -> unit) : unit = Unchecked.defaultof<_> #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN /// /// - /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ /// /// Emitted when an error is encountered while creating and showing the native notification. /// @@ -38231,10 +39446,10 @@ module Main = member inline _.onFailed(handler: Event -> string -> unit) : unit = Unchecked.defaultof<_> #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN /// /// - /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ /// /// Emitted when an error is encountered while creating and showing the native notification. /// @@ -38242,10 +39457,10 @@ module Main = member inline _.onFailed(handler: Main.Notification.IOnFailed -> unit) : unit = Unchecked.defaultof<_> #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN /// /// - /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ /// /// Emitted when an error is encountered while creating and showing the native notification. /// @@ -38253,10 +39468,10 @@ module Main = member inline _.onceFailed(handler: Event -> string -> unit) : unit = Unchecked.defaultof<_> #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN /// /// - /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ /// /// Emitted when an error is encountered while creating and showing the native notification. /// @@ -38264,10 +39479,10 @@ module Main = member inline _.onceFailed(handler: Main.Notification.IOnFailed -> unit) : unit = Unchecked.defaultof<_> #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN /// /// - /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ /// /// Emitted when an error is encountered while creating and showing the native notification. /// @@ -38275,10 +39490,10 @@ module Main = member inline _.offFailed(handler: Event -> string -> unit) : unit = Unchecked.defaultof<_> #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN /// /// - /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ /// /// Emitted when an error is encountered while creating and showing the native notification. /// @@ -38290,7 +39505,9 @@ module Main = /// /// Immediately shows the notification to the user. Unlike the web notification API, instantiating a new Notification() does not immediately show /// it to the user. Instead, you need to call this method before the OS will display it.

If the notification has - /// been shown before, this method will dismiss the previously shown notification and create a new one with identical properties. + /// been shown before, this method will dismiss the previously shown notification and create a new one with identical properties.

On macOS, + /// calling show() on a notification returned by Notification.getHistory() will remove the original notification from Notification Center and post a new + /// one with the same properties. ///
[] member inline _.show() : unit = Unchecked.defaultof<_> @@ -38302,6 +39519,35 @@ module Main = ///
[] member inline _.close() : unit = Unchecked.defaultof<_> + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN + /// + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ + /// A string property representing the unique identifier of the notification. This is set at construction time — either from the + /// id option or as a generated UUID if none was provided. + /// + [] + member val id: string = Unchecked.defaultof<_> with get + #endif + + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN + /// + /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ + /// A string property representing the group identifier of the notification. Notifications with the same groupId will be visually grouped together + /// in Notification Center (macOS) or Action Center (Windows). + /// + [] + member val groupId: string = Unchecked.defaultof<_> with get + #endif + + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN + /// + /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ + /// A string property representing the title of the notification group header. + /// + [] + member val groupTitle: string = Unchecked.defaultof<_> with get + #endif + /// /// A string property representing the title of the notification. @@ -38391,6 +39637,79 @@ module Main = /// [] static member inline isSupported() : bool = Unchecked.defaultof<_> + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN + /// + /// + /// ⚠ OS Compatibility: WIN ✔ | MAC ❌ | LIN ❌ | MAS ❌ + /// + /// Registers a callback to handle all notification activations. The callback is invoked whenever a notification is clicked, replied to, or + /// has an action button pressed - regardless of whether the original Notification object is still in memory.

This method handles timing + /// automatically:

* If an activation already occurred before calling this method, the callback is invoked immediately with those details.
* For all + /// subsequent activations, the callback is invoked when they occur.

The callback remains registered until replaced by another call to handleActivation.

This provides + /// a centralized way to handle notification interactions that works in all scenarios:

* Cold start (app launched from notification click)
* Notifications + /// persisted in AC that have no in-memory representation after app re-start
* Notification object was garbage collected
* Notification object is still + /// in memory (callback is invoked in addition to instance events) + ///
+ /// + [] + static member inline handleActivation(callback: ActivationArguments -> unit) : unit = Unchecked.defaultof<_> + #endif + + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + /// + /// + /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ + /// + /// Resolves with an array of Notification objects representing all delivered notifications still present in Notification Center.

Each returned Notification is a + /// live object connected to the corresponding delivered notification. Interaction events (click, reply, action, close) will fire on these objects when + /// the user interacts with the notification in Notification Center. This is useful after an app restart to re-attach event handlers + /// to notifications from a previous session.

The returned notifications have their id, groupId, title, subtitle, and body properties populated from information + /// available in the Notification Center. Other properties (e.g., actions, silent, icon) are not available from delivered notifications and will have + /// default values.

> [!NOTE] Like all macOS notification APIs, this method requires the application to be code-signed. In unsigned development builds, + /// notifications are not delivered to Notification Center and this method will resolve with an empty array.

> [!NOTE] Unlike notifications created + /// with new Notification(), notifications returned by getHistory() will remain visible in Notification Center when the object is garbage collected. Calling + /// show() on a restored notification will remove the original from Notification Center and post a new one with the same + /// properties. + ///
+ [] + static member inline getHistory() : Promise = Unchecked.defaultof<_> + #endif + + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + /// + /// + /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ + /// + /// Removes one or more delivered notifications from Notification Center by their identifier(s). + /// + /// The notification identifier(s) to remove. These correspond to the id values set in the Notification constructor. + [] + static member inline remove(id: U2) : unit = Unchecked.defaultof<_> + #endif + + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + /// + /// + /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ + /// + /// Removes all of the app's delivered notifications from Notification Center. + /// + [] + static member inline removeAll() : unit = Unchecked.defaultof<_> + #endif + + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + /// + /// + /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ + /// + /// Removes all delivered notifications with the given groupId from Notification Center. + /// + /// The group identifier of the notifications to remove. This corresponds to the groupId value set in the Notification constructor. + [] + static member inline removeGroup(groupId: string) : unit = Unchecked.defaultof<_> + #endif + /// /// ⚠ Process Availability: Main ✔ | Renderer ❌ | Utility ✔ | Exported ✔ @@ -38720,6 +40039,16 @@ module Main = /// [] static member val prefersReducedTransparency: bool = Unchecked.defaultof<_> with get + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + /// + /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ + /// A boolean that indicates whether the user prefers UI that differentiates items using something other than color alone (e.g. shapes + /// or labels). This maps to NSWorkspace.accessibilityDisplayShouldDifferentiateWithoutColor. + /// + [] + static member val shouldDifferentiateWithoutColor: bool = Unchecked.defaultof<_> with get + #endif + /// /// ⚠ Process Availability: Main ✔ | Renderer ✔ | Utility ❌ | Exported ❌ @@ -39074,9 +40403,10 @@ module Main = /// /// ⚠ Process Availability: Main ✔ | Renderer ❌ | Utility ❌ | Exported ✔ - ///

### Class: Menu

> Create native application menus and context menus.

Process: Main

> [!TIP] See also: A detailed guide about how to - /// implement menus in your application.

> [!WARNING] Electron's built-in classes cannot be subclassed in user code. For more information, see the - /// FAQ. + ///

### Class: Menu

> Create application menus and context menus.

Process: Main

The presentation of menus varies depending on the operating system:

* Under + /// Windows and Linux, menus are visually similar to Chromium.
* Under macOS, these will be native menus.

> [!TIP] See also: A + /// detailed guide about how to implement menus in your application.

> [!WARNING] Electron's built-in classes cannot be subclassed in user code. + /// For more information, see the FAQ. ///
[] type Menu() = @@ -39919,8 +41249,12 @@ module Main = /// /// /// New bounds of the View. - [] - member inline _.setBounds(bounds: Rectangle) : unit = Unchecked.defaultof<_> + /// If true, the bounds change will be animated. If an object is passed, it can contain the following properties: + [] + member inline _.setBounds + (bounds: Rectangle, ?animate: U2) + : unit = + Unchecked.defaultof<_> /// /// The bounds of this View, relative to its parent. @@ -40030,6 +41364,22 @@ module Main = [] static member inline unregisterAll() : unit = Unchecked.defaultof<_> + /// + /// Suspends or resumes global shortcut handling. When suspended, all registered global shortcuts will stop listening for key presses. When resumed, + /// all previously registered shortcuts will begin listening again. New shortcut registrations will fail while handling is suspended.

This can be useful + /// when you want to temporarily allow the user to press key combinations without your application intercepting them, for example while + /// displaying a UI to rebind shortcuts. + ///
+ /// Whether global shortcut handling should be suspended. + [] + static member inline setSuspended(suspended: bool) : unit = Unchecked.defaultof<_> + + /// + /// Whether global shortcut handling is currently suspended. + /// + [] + static member inline isSuspended() : bool = Unchecked.defaultof<_> + /// /// ⚠ Process Availability: Main ✔ | Renderer ❌ | Utility ❌ | Exported ❌ /// @@ -41188,7 +42538,7 @@ module Main = Unchecked.defaultof<_> /// - /// A promise which resolves when the cookie has been set

Sets a cookie with details. + /// A promise which resolves when the cookie has been set.

Sets a cookie with details. ///
/// The URL to associate the cookie with. The promise will be rejected if the URL is invalid. /// The name of the cookie. Empty by default if omitted. @@ -41218,7 +42568,7 @@ module Main = Unchecked.defaultof<_> /// - /// A promise which resolves when the cookie has been removed

Removes the cookies matching url and name + /// A promise which resolves when the cookie has been removed.

Removes the cookies matching url and name. ///
/// The URL associated with the cookie. /// The name of cookie to remove. @@ -41226,8 +42576,8 @@ module Main = member inline _.remove(url: string, name: string) : Promise = Unchecked.defaultof<_> /// - /// A promise which resolves when the cookie store has been flushed

Writes any unwritten cookies data to disk

Cookies written by any - /// method will not be written to disk immediately, but will be written every 30 seconds or 512 operations

Calling this method + /// A promise which resolves when the cookie store has been flushed.

Writes any unwritten cookies data to disk.

Cookies written by any + /// method will not be written to disk immediately, but will be written every 30 seconds or 512 operations.

Calling this method /// can cause the cookie to be written to disk immediately. ///
[] @@ -41282,6 +42632,19 @@ module Main = static member inline getTraceBufferUsage() : Promise = Unchecked.defaultof<_> + /// + /// Resolves once heap profiling has been enabled.

Enable heap profiling for MemoryInfra traces. Equivalent to the --memlog switch in Chrome.

Only takes + /// effect if the disabled-by-default-memory-infra category is included.

Needs to be called before contentTracing.startRecording().

Usage:

To view the recorded heap dumps:

* Download the breakpad + /// symbols for your Electron version from the Electron GitHub releases
* Clone the Electron source code
* In your Chromium checkout for + /// Electron, run this command to symbolicate the heap dump:
* Open the symbolicated trace in chrome://tracing (the Perfetto UI does not + /// support memory dumps yet)
* Click on one of the M symbols
* Click on a triple bar icon (e.g., in + /// the malloc column)

[Image: Screenshot showing how to view a heapdump in Chromium's tracing view] + ///
+ /// + [] + static member inline enableHeapProfiling(?options: EnableHeapProfilingOptions) : Promise = + Unchecked.defaultof<_> + /// /// ⚠ Process Availability: Main ✔ | Renderer ❌ | Utility ❌ | Exported ❌ /// @@ -41843,7 +43206,9 @@ module Main = /// order to minimize power consumption.

### Platform notices

* On macOS modal windows will be displayed as sheets attached to the parent /// window.
* On macOS the child windows will keep the relative position to parent window when parent window moves, while on /// Windows and Linux child windows will not move.
* On Linux the type of modal windows will be changed to dialog.
* - /// On Linux many desktop environments do not support hiding a modal window.

### Class: BrowserWindow extends BaseWindow

> Create and control browser + /// On Linux many desktop environments do not support hiding a modal window.
* On Wayland (Linux) it is generally not possible + /// to programmatically resize windows after creation, or to position, move, focus, or blur windows without user input. If your app + /// needs these capabilities, run it in Xwayland by appending the flag --ozone-platform=x11.

### Class: BrowserWindow extends BaseWindow

> Create and control browser /// windows.

Process: Main

BrowserWindow is an EventEmitter.

It creates a new BrowserWindow with native properties as set by the options.

> [!WARNING] Electron's built-in /// classes cannot be subclassed in user code. For more information, see the FAQ. ///
@@ -42199,19 +43564,22 @@ module Main = member inline _.offUnmaximize(handler: unit -> unit) : unit = Unchecked.defaultof<_> /// - /// Emitted when the window is minimized. + /// Emitted when the window is minimized.

> [!NOTE] On Wayland, “minimized” is not currently a supported state. The minimize event will + /// only fire when triggered by client-side decoration (e.g. clicking the minimize button on a frameless window’s Window Control Overlay) ///
[] member inline _.onMinimize(handler: unit -> unit) : unit = Unchecked.defaultof<_> /// - /// Emitted when the window is minimized. + /// Emitted when the window is minimized.

> [!NOTE] On Wayland, “minimized” is not currently a supported state. The minimize event will + /// only fire when triggered by client-side decoration (e.g. clicking the minimize button on a frameless window’s Window Control Overlay) ///
[] member inline _.onceMinimize(handler: unit -> unit) : unit = Unchecked.defaultof<_> /// - /// Emitted when the window is minimized. + /// Emitted when the window is minimized.

> [!NOTE] On Wayland, “minimized” is not currently a supported state. The minimize event will + /// only fire when triggered by client-side decoration (e.g. clicking the minimize button on a frameless window’s Window Control Overlay) ///
[] member inline _.offMinimize(handler: unit -> unit) : unit = Unchecked.defaultof<_> @@ -43079,13 +44447,14 @@ module Main = member inline _.close() : unit = Unchecked.defaultof<_> /// - /// Focuses on the window. + /// Focuses on the window.

On Wayland (Linux), the desktop environment may show a notification or flash the app icon if the + /// window or app is not already focused. ///
[] member inline _.focus() : unit = Unchecked.defaultof<_> /// - /// Removes focus from the window. + /// Removes focus from the window.

Not supported on Wayland (Linux). ///
[] member inline _.blur() : unit = Unchecked.defaultof<_> @@ -43109,7 +44478,7 @@ module Main = member inline _.show() : unit = Unchecked.defaultof<_> /// - /// Shows the window but doesn't focus on it. + /// Shows the window but doesn't focus on it.

Not supported on Wayland (Linux). ///
[] member inline _.showInactive() : unit = Unchecked.defaultof<_> @@ -43270,9 +44639,9 @@ module Main = /// /// Resizes and moves the window to the supplied bounds. Any properties that are not supplied will default to their current - /// values.

> [!NOTE] On macOS, the y-coordinate value cannot be smaller than the Tray height. The tray height has changed over - /// time and depends on the operating system, but is between 20-40px. Passing a value lower than the tray height will - /// result in a window that is flush to the tray. + /// values.

On Wayland (Linux), has the same limitations as setSize and setPosition.

> [!NOTE] On macOS, the y-coordinate value cannot be smaller + /// than the Tray height. The tray height has changed over time and depends on the operating system, but is between + /// 20-40px. Passing a value lower than the tray height will result in a window that is flush to the tray. ///
/// /// @@ -43296,7 +44665,8 @@ module Main = member inline _.getBackgroundColor() : string = Unchecked.defaultof<_> /// - /// Resizes and moves the window's client area (e.g. the web page) to the supplied bounds. + /// Resizes and moves the window's client area (e.g. the web page) to the supplied bounds.

On Wayland (Linux), has the same + /// limitations as setContentSize and setPosition. ///
/// /// @@ -43332,7 +44702,7 @@ module Main = /// /// Resizes the window to width and height. If width or height are below any set minimum size constraints the window - /// will snap to its minimum size. + /// will snap to its minimum size.

On Wayland (Linux), may not work as some window managers restrict programmatic window resizing. ///
/// /// @@ -43347,7 +44717,8 @@ module Main = member inline _.getSize() : int[] = Unchecked.defaultof<_> /// - /// Resizes the window's client area (e.g. the web page) to width and height. + /// Resizes the window's client area (e.g. the web page) to width and height.

On Wayland (Linux), may not work as some + /// window managers restrict programmatic window resizing. ///
/// /// @@ -43563,19 +44934,19 @@ module Main = member inline _.moveAbove(mediaSourceId: string) : unit = Unchecked.defaultof<_> /// - /// Moves window to top(z-order) regardless of focus + /// Moves window to top(z-order) regardless of focus.

Not supported on Wayland (Linux). ///
[] member inline _.moveTop() : unit = Unchecked.defaultof<_> /// - /// Moves window to the center of the screen. + /// Moves window to the center of the screen.

Not supported on Wayland (Linux). ///
[] member inline _.center() : unit = Unchecked.defaultof<_> /// - /// Moves window to x and y. + /// Moves window to x and y.

Not supported on Wayland (Linux). ///
/// /// @@ -45070,19 +46441,22 @@ module Main = member inline _.offUnmaximize(handler: unit -> unit) : unit = Unchecked.defaultof<_> /// - /// Emitted when the window is minimized. + /// Emitted when the window is minimized.

> [!NOTE] On Wayland, “minimized” is not currently a supported state. The minimize event will + /// only fire when triggered by client-side decoration (e.g. clicking the minimize button on a frameless window’s Window Control Overlay) ///
[] member inline _.onMinimize(handler: unit -> unit) : unit = Unchecked.defaultof<_> /// - /// Emitted when the window is minimized. + /// Emitted when the window is minimized.

> [!NOTE] On Wayland, “minimized” is not currently a supported state. The minimize event will + /// only fire when triggered by client-side decoration (e.g. clicking the minimize button on a frameless window’s Window Control Overlay) ///
[] member inline _.onceMinimize(handler: unit -> unit) : unit = Unchecked.defaultof<_> /// - /// Emitted when the window is minimized. + /// Emitted when the window is minimized.

> [!NOTE] On Wayland, “minimized” is not currently a supported state. The minimize event will + /// only fire when triggered by client-side decoration (e.g. clicking the minimize button on a frameless window’s Window Control Overlay) ///
[] member inline _.offMinimize(handler: unit -> unit) : unit = Unchecked.defaultof<_> @@ -49342,13 +50716,25 @@ module Main = static member inline whenReady() : Promise = Unchecked.defaultof<_> /// - /// On Linux, focuses on the first visible window. On macOS, makes the application the active app. On Windows, focuses on - /// the application's first window.

You should seek to use the steal option as sparingly as possible. + /// On macOS, makes the application the active app. On Windows, focuses on the application's first window. On Linux, either focuses + /// on the first visible window (X11) or requests focus but may instead show a notification or flash the app icon + /// (Wayland).

You should seek to use the steal option as sparingly as possible. ///
/// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ || Make the receiver the /// active app even if another app is currently active. [] static member inline focus(steal: bool) : unit = Unchecked.defaultof<_> + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + /// + /// + /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ + /// + /// true if the application is active (i.e. focused). + /// + [] + static member inline isActive() : bool = Unchecked.defaultof<_> + #endif + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC /// /// @@ -49454,6 +50840,22 @@ module Main = /// [] static member inline setName(name: string) : unit = Unchecked.defaultof<_> + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_LIN + /// + /// + /// ⚠ OS Compatibility: WIN ❌ | MAC ❌ | LIN ✔ | MAS ❌ + /// + /// Sets the .desktop filename on Linux. This should match the base filename of the app's installed .desktop file. The .desktop + /// suffix is optional.

This value is used to determine the default XDG application ID on Wayland and WM_CLASS on X11. If + /// it is not set, Electron will attempt to infer a name, but it may not match the packaged app's actual + /// .desktop file. This could result in the app showing a generic icon or failing to respond to global keyboard shortcuts.

This + /// API must be called before the ready event. The value can also be set using desktopName in package.json. + ///
+ /// The .desktop filename (e.g. 'my-app.desktop'). + [] + static member inline setDesktopName(name: string) : unit = Unchecked.defaultof<_> + #endif + /// /// The current application locale, fetched using Chromium's l10n_util library. Possible return values are documented here.

To set the locale, you'll want @@ -49595,11 +50997,8 @@ module Main = /// URL, including :// at a minimum (e.g. https://). [] static member inline getApplicationNameForProtocol(url: string) : string = Unchecked.defaultof<_> - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC || ELECTRON_OS_WIN + /// - /// - /// ⚠ OS Compatibility: WIN ✔ | MAC ✔ | LIN ❌ | MAS ❌ - /// /// Resolve with an object containing the following:

* icon NativeImage - the display icon of the app handling the protocol.
* path /// string - installation path of the app handling the protocol.
* name string - display name of the app handling /// the protocol.

This method returns a promise that contains the application name, icon and path of the default handler for the @@ -49612,8 +51011,6 @@ module Main = (url: string) : Promise = Unchecked.defaultof<_> - #endif - #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_WIN /// /// @@ -49857,6 +51254,24 @@ module Main = ?enableAdditionalDnsQueryTypes: bool ) : unit = Unchecked.defaultof<_> + #if !(ELECTRON_OS_LIN || ELECTRON_OS_WIN || ELECTRON_OS_MAC || ELECTRON_OS_MAS) || ELECTRON_OS_MAC + /// + /// + /// ⚠ OS Compatibility: WIN ❌ | MAC ✔ | LIN ❌ | MAS ❌ + /// + /// Configures platform authenticators for the Web Authentication API (navigator.credentials.create() / navigator.credentials.get()). Until this is called, PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() resolves to false and + /// platform-authenticator requests are not serviced.

When touchID is provided, WebAuthn credentials are stored in the macOS keychain and bound to this + /// device's Secure Enclave. Electron automatically generates and persists a per-session metadata secret so that credentials created in one partition are + /// not visible to another.

With the matching entitlement in your app's entitlements.plist:

> [!NOTE] Touch ID WebAuthn credentials are device-bound and are + /// not synced via iCloud Keychain. They are only available on Macs with a Secure Enclave (Apple silicon, or Intel Macs + /// with a T2 chip). + ///
+ /// Enables the Touch ID / Secure Enclave platform authenticator for Web Authentication requests. + [] + static member inline configureWebAuthn(?touchID: Main.App.ConfigureWebAuthn.Options.TouchID) : unit = + Unchecked.defaultof<_> + #endif + /// /// Disables hardware acceleration for current app.

This method can only be called before app is ready. From 85a2de1b80da334a560ff43c8c648869845876be Mon Sep 17 00:00:00 2001 From: GitHub Action <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 28 Jun 2026 08:02:58 +0000 Subject: [PATCH 8/8] [skip ci] GitNet auto file update. --- RELEASE_NOTES.md | 50 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index a07b5cc..3490852 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -13,9 +13,9 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). **Scope** | Current Release | Commit Count :--- | :---: | :---: -[**Electron**](#electron) | [40.9.2](https://github.com/fable-hub/Fable.Electron/compare/_%28Electron%29_40.6.0..._%28Electron%29_40.9.2) | 61 commits -[**Forge**](#forge) | [8.2.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Forge%29_8.1.0..._%28Forge%29_8.2.0) | 36 commits -[**Remoting**](#remoting) | [7.2.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Remoting%29_7.1.0..._%28Remoting%29_7.2.0) | 48 commits +[**Electron**](#electron) | [40.9.2](https://github.com/fable-hub/Fable.Electron/compare/_%28Electron%29_40.6.0..._%28Electron%29_40.9.2) | 63 commits +[**Forge**](#forge) | [8.2.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Forge%29_8.1.0..._%28Forge%29_8.2.0) | 39 commits +[**Remoting**](#remoting) | [7.2.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Remoting%29_7.1.0..._%28Remoting%29_7.2.0) | 51 commits ----------------------- @@ -24,6 +24,9 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). ### [UNRELEASED](https://github.com/fable-hub/Fable.Electron/compare/_%28Electron%29_40.9.2...HEAD) +* Electron binding update to match v42.5.0 by [@GitHub Action](https://github.com/GitHub Action) with [#8d53b](https://github.com/fable-hub/Fable.Electron/commit/8d53bc820663bc521a6186806870244b6609bfdd) + + ### [40.9.2](https://github.com/fable-hub/Fable.Electron/compare/_%28Electron%29_40.6.0..._%28Electron%29_40.9.2) - (2026-04-26) #### Added @@ -69,6 +72,9 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). * Electron binding update to match v39.2.6 by [@GitHub Action](https://github.com/GitHub Action) with [#700bc](https://github.com/fable-hub/Fable.Electron/commit/700bc8a2ce8caa9a6ba48450a70fdf29449ee719) +* Electron binding update to match v39.2.7 by [@GitHub Action](https://github.com/GitHub Action) with [#02531](https://github.com/fable-hub/Fable.Electron/commit/02531315d775d90740f96f49770494e50b7b9061) + + * Push Tags; Compatibility for Electron 40.1.0 (#34) by [@cabboose](https://github.com/cabboose) with [#80f48](https://github.com/fable-hub/Fable.Electron/commit/80f48953fb03a639aac0edcdd840ef81dc5c7156) @@ -95,10 +101,10 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). * release CI workflow (#11) (#12) by [@cabboose](https://github.com/cabboose) with [#986ef](https://github.com/fable-hub/Fable.Electron/commit/986effc3d6f02359f7df6d1eda46f6f07d2afe6c) -* Revert "[skip ci]" by [@shayanhabibi](https://github.com/shayanhabibi) with [#4e58c](https://github.com/fable-hub/Fable.Electron/commit/4e58cca7b29658a2198c3f5b4e2609afa985bc49) +* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) -* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) +* Revert "[skip ci]" by [@shayanhabibi](https://github.com/shayanhabibi) with [#4e58c](https://github.com/fable-hub/Fable.Electron/commit/4e58cca7b29658a2198c3f5b4e2609afa985bc49) * enable release by [@shayanhabibi](https://github.com/shayanhabibi) with [#564d7](https://github.com/fable-hub/Fable.Electron/commit/564d76f5960d18dba68442bd77439f755d274296) @@ -297,6 +303,9 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). * improved IpcMainEvent dx - new utilities such as dispose void function returns (#59) by [@cabboose](https://github.com/cabboose) with [#35580](https://github.com/fable-hub/Fable.Electron/commit/35580315f1cf6b09154cb8cdccdc319390a3663a) +* Electron binding update to match v42.5.0 by [@GitHub Action](https://github.com/GitHub Action) with [#8d53b](https://github.com/fable-hub/Fable.Electron/commit/8d53bc820663bc521a6186806870244b6609bfdd) + + ### [8.2.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Forge%29_8.1.0..._%28Forge%29_8.2.0) - (2026-04-26) #### Added @@ -341,6 +350,9 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). #### Fixed +* Electron binding update to match v39.2.7 by [@GitHub Action](https://github.com/GitHub Action) with [#02531](https://github.com/fable-hub/Fable.Electron/commit/02531315d775d90740f96f49770494e50b7b9061) + + * Push Tags; Compatibility for Electron 40.1.0 (#34) by [@cabboose](https://github.com/cabboose) with [#80f48](https://github.com/fable-hub/Fable.Electron/commit/80f48953fb03a639aac0edcdd840ef81dc5c7156) @@ -361,10 +373,10 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). * release CI workflow (#11) (#12) by [@cabboose](https://github.com/cabboose) with [#986ef](https://github.com/fable-hub/Fable.Electron/commit/986effc3d6f02359f7df6d1eda46f6f07d2afe6c) -* Revert "[skip ci]" by [@shayanhabibi](https://github.com/shayanhabibi) with [#4e58c](https://github.com/fable-hub/Fable.Electron/commit/4e58cca7b29658a2198c3f5b4e2609afa985bc49) +* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) -* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) +* Revert "[skip ci]" by [@shayanhabibi](https://github.com/shayanhabibi) with [#4e58c](https://github.com/fable-hub/Fable.Electron/commit/4e58cca7b29658a2198c3f5b4e2609afa985bc49) * enable release by [@shayanhabibi](https://github.com/shayanhabibi) with [#564d7](https://github.com/fable-hub/Fable.Electron/commit/564d76f5960d18dba68442bd77439f755d274296) @@ -391,6 +403,9 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). #### Fixed +* Electron binding update to match v39.2.7 by [@GitHub Action](https://github.com/GitHub Action) with [#02531](https://github.com/fable-hub/Fable.Electron/commit/02531315d775d90740f96f49770494e50b7b9061) + + * Push Tags; Compatibility for Electron 40.1.0 (#34) by [@cabboose](https://github.com/cabboose) with [#80f48](https://github.com/fable-hub/Fable.Electron/commit/80f48953fb03a639aac0edcdd840ef81dc5c7156) @@ -411,10 +426,10 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). * release CI workflow (#11) (#12) by [@cabboose](https://github.com/cabboose) with [#986ef](https://github.com/fable-hub/Fable.Electron/commit/986effc3d6f02359f7df6d1eda46f6f07d2afe6c) -* Revert "[skip ci]" by [@shayanhabibi](https://github.com/shayanhabibi) with [#4e58c](https://github.com/fable-hub/Fable.Electron/commit/4e58cca7b29658a2198c3f5b4e2609afa985bc49) +* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) -* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) +* Revert "[skip ci]" by [@shayanhabibi](https://github.com/shayanhabibi) with [#4e58c](https://github.com/fable-hub/Fable.Electron/commit/4e58cca7b29658a2198c3f5b4e2609afa985bc49) * enable release by [@shayanhabibi](https://github.com/shayanhabibi) with [#564d7](https://github.com/fable-hub/Fable.Electron/commit/564d76f5960d18dba68442bd77439f755d274296) @@ -437,6 +452,9 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). * improved IpcMainEvent dx - new utilities such as dispose void function returns (#59) by [@cabboose](https://github.com/cabboose) with [#35580](https://github.com/fable-hub/Fable.Electron/commit/35580315f1cf6b09154cb8cdccdc319390a3663a) +* Electron binding update to match v42.5.0 by [@GitHub Action](https://github.com/GitHub Action) with [#8d53b](https://github.com/fable-hub/Fable.Electron/commit/8d53bc820663bc521a6186806870244b6609bfdd) + + ### [7.2.0](https://github.com/fable-hub/Fable.Electron/compare/_%28Remoting%29_7.1.0..._%28Remoting%29_7.2.0) - (2026-04-26) #### Added @@ -475,6 +493,9 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). #### Fixed +* Electron binding update to match v39.2.7 by [@GitHub Action](https://github.com/GitHub Action) with [#02531](https://github.com/fable-hub/Fable.Electron/commit/02531315d775d90740f96f49770494e50b7b9061) + + * Push Tags; Compatibility for Electron 40.1.0 (#34) by [@cabboose](https://github.com/cabboose) with [#80f48](https://github.com/fable-hub/Fable.Electron/commit/80f48953fb03a639aac0edcdd840ef81dc5c7156) @@ -504,10 +525,10 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). * release CI workflow (#11) (#12) by [@cabboose](https://github.com/cabboose) with [#986ef](https://github.com/fable-hub/Fable.Electron/commit/986effc3d6f02359f7df6d1eda46f6f07d2afe6c) -* Revert "[skip ci]" by [@shayanhabibi](https://github.com/shayanhabibi) with [#4e58c](https://github.com/fable-hub/Fable.Electron/commit/4e58cca7b29658a2198c3f5b4e2609afa985bc49) +* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) -* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) +* Revert "[skip ci]" by [@shayanhabibi](https://github.com/shayanhabibi) with [#4e58c](https://github.com/fable-hub/Fable.Electron/commit/4e58cca7b29658a2198c3f5b4e2609afa985bc49) * enable release by [@shayanhabibi](https://github.com/shayanhabibi) with [#564d7](https://github.com/fable-hub/Fable.Electron/commit/564d76f5960d18dba68442bd77439f755d274296) @@ -543,6 +564,9 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). #### Fixed +* Electron binding update to match v39.2.7 by [@GitHub Action](https://github.com/GitHub Action) with [#02531](https://github.com/fable-hub/Fable.Electron/commit/02531315d775d90740f96f49770494e50b7b9061) + + * Push Tags; Compatibility for Electron 40.1.0 (#34) by [@cabboose](https://github.com/cabboose) with [#80f48](https://github.com/fable-hub/Fable.Electron/commit/80f48953fb03a639aac0edcdd840ef81dc5c7156) @@ -572,10 +596,10 @@ which includes [Scopes and Epochs](#epoch-scoped-semver). * release CI workflow (#11) (#12) by [@cabboose](https://github.com/cabboose) with [#986ef](https://github.com/fable-hub/Fable.Electron/commit/986effc3d6f02359f7df6d1eda46f6f07d2afe6c) -* Revert "[skip ci]" by [@shayanhabibi](https://github.com/shayanhabibi) with [#4e58c](https://github.com/fable-hub/Fable.Electron/commit/4e58cca7b29658a2198c3f5b4e2609afa985bc49) +* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) -* Revert "feat!: Electron binding update to match v39.2.3" by [@shayanhabibi](https://github.com/shayanhabibi) with [#e8efc](https://github.com/fable-hub/Fable.Electron/commit/e8efc68ab1e0c56cc769bcc2ae1eb9ee27a71578) +* Revert "[skip ci]" by [@shayanhabibi](https://github.com/shayanhabibi) with [#4e58c](https://github.com/fable-hub/Fable.Electron/commit/4e58cca7b29658a2198c3f5b4e2609afa985bc49) * enable release by [@shayanhabibi](https://github.com/shayanhabibi) with [#564d7](https://github.com/fable-hub/Fable.Electron/commit/564d76f5960d18dba68442bd77439f755d274296)