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/RELEASE_NOTES.md b/RELEASE_NOTES.md
index 81ce851..69897f9 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -13,268 +13,281 @@ 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) | 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
-----------------------
# 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)
+
+* Electron binding update to match v42.1.0 by [@GitHub Action](https://github.com/GitHub Action) with [#727f3](https://github.com/fable-hub/Fable.Electron/commit/727f33d42267abd1021c1b4443b30bf442126e4a)
+
+
+### [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)
+
+* 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)
-
+
#### 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 +295,148 @@ 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)
+
+
+* Electron binding update to match v42.1.0 by [@GitHub Action](https://github.com/GitHub Action) with [#727f3](https://github.com/fable-hub/Fable.Electron/commit/727f33d42267abd1021c1b4443b30bf442126e4a)
+
+
+### [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)
+* 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)
+
#### 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)
+* 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)
+
#### 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 +444,184 @@ 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)
+
-#### Migration Notes (Breaking)
+* Electron binding update to match v42.1.0 by [@GitHub Action](https://github.com/GitHub Action) with [#727f3](https://github.com/fable-hub/Fable.Electron/commit/727f33d42267abd1021c1b4443b30bf442126e4a)
+
-* 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.
+### [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
+
+* 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)
+
### [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)
+* 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)
+
#### 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)
+* 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)
+
#### 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)
-
+
diff --git a/ci/Build.fs b/ci/Build.fs
index 6427e98..944e0fa 100644
--- a/ci/Build.fs
+++ b/ci/Build.fs
@@ -141,7 +141,19 @@ 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 _ ->
+ 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.
+ tryRun Args.npmCi
+ |> ValueOption.bind (fun _ -> tryRun false)
+ |> ValueOption.bind (fun _ -> tryRun true)
+ |> ValueOption.iter raise
+)
Target.create Ops.test
<| function
diff --git a/ci/cache.json b/ci/cache.json
index e06aec7..73d66da 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-05-14T22:13:57Z","isLatest":true,"isPrerelease":false,"tagName":"v42.1.0"}
\ No newline at end of file
diff --git a/global.json b/global.json
index 79f0661..60c7da5 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "10.0.100",
+ "version": "10.0.203",
"rollForward": "latestMinor",
"allowPrerelease": true
}
diff --git a/src/Fable.Electron.Forge/Fable.Electron.Forge.fsproj b/src/Fable.Electron.Forge/Fable.Electron.Forge.fsproj
index d0b85f7..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 ContributorsCopyright (c) 2025 Shayan Habibi and Fable-Hub contributorsREADME.md
- 8.1.0
- 8.1.0
+ 8.3.0
+ 8.3.07.0.0feleico-dark.png
diff --git a/src/Fable.Electron.Remoting/Fable.Electron.Remoting.fsproj b/src/Fable.Electron.Remoting/Fable.Electron.Remoting.fsproj
index b81c8f7..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-javascriptShayan Habibi and ContributorsCopyright (c) 2025 Shayan Habibi and Fable-Hub contributors
- 7.1.0
- 7.1.0
+ 7.3.0
+ 7.3.0README.md0.1.0feleico-dark.png
diff --git a/src/Fable.Electron/Fable.Electron.fsproj b/src/Fable.Electron/Fable.Electron.fsproj
index 3065ebb..bcf63b8 100644
--- a/src/Fable.Electron/Fable.Electron.fsproj
+++ b/src/Fable.Electron/Fable.Electron.fsproj
@@ -19,9 +19,9 @@
Shayan Habibi and ContributorsCopyright (c) 2025 Shayan Habibi and Fable-Hub contributorsREADME.md
- 40.6.0
- 40.6.0
- 40.6.0
+ 42.1.0
+ 42.1.0
+ 42.1.0feleico-dark.png
diff --git a/src/Fable.Electron/Program.fs b/src/Fable.Electron/Program.fs
index a0060c4..50c16a8 100644
--- a/src/Fable.Electron/Program.fs
+++ b/src/Fable.Electron/Program.fs
@@ -19,9 +19,11 @@ 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 1 as default.
(
?useSharedTexture: bool,
- ?sharedTexturePixelFormat: Enums.Types.WebPreferences.Offscreen.SharedTexturePixelFormat
+ ?sharedTexturePixelFormat: Enums.Types.WebPreferences.Offscreen.SharedTexturePixelFormat,
+ ?deviceScaleFactor: float
) =
class
end
@@ -42,6 +44,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 1 as default.
+ ///
+ []
+ member val deviceScaleFactor: float = Unchecked.defaultof<_> with get, set
+
[]
type DefaultFontFamily
/// Defaults to Times New Roman.
@@ -606,6 +614,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 +623,8 @@ module Types =
?supportFetchAPI: bool,
?corsEnabled: bool,
?stream: bool,
- ?codeCache: bool
+ ?codeCache: bool,
+ ?allowExtensions: bool
) =
class
end
@@ -667,6 +677,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
@@ -832,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
///
@@ -2303,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
@@ -2327,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
@@ -4737,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.
@@ -6550,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 =
@@ -6663,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 =
[]
@@ -7036,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 =
@@ -8335,6 +8527,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,
@@ -8351,7 +8547,8 @@ module Renderer =
?dpi: Record,
?header: string,
?footer: string,
- ?pageSize: U2
+ ?pageSize: U2,
+ ?usePrinterDefaultPageSize: bool
) =
class
end
@@ -8451,6 +8648,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
@@ -11076,6 +11281,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
(
@@ -11094,7 +11303,8 @@ module Renderer =
?dpi: Record,
?header: string,
?footer: string,
- ?pageSize: U2
+ ?pageSize: U2,
+ ?usePrinterDefaultPageSize: bool
) : Promise =
Unchecked.defaultof<_>
@@ -15104,6 +15314,9 @@ module Main =
let AccentColorChanged = "accent-color-changed"
module Session =
+ []
+ let SelectWebauthnAccount = "select-webauthn-account"
+
[]
let UsbDeviceRevoked = "usb-device-revoked"
@@ -15512,6 +15725,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.
@@ -15534,6 +15784,43 @@ module Main =
[]
member val webContents: Main.WebContents = Unchecked.defaultof<_> with get, set
+ module View =
+ 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.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 UtilityProcess =
///
/// Emitted when the child process needs to terminate due to non continuable error from V8.
No matter if you listen to
@@ -16459,6 +16746,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
@@ -16674,6 +16986,16 @@ module Main =
[]
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. This can be used to remove or
+ /// update previously delivered notifications.
+ /// ⚠ 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.
+ /// ⚠ 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
@@ -16682,23 +17004,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
,
@@ -16708,7 +17042,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
@@ -16716,7 +17050,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
@@ -16724,11 +17058,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
@@ -16744,6 +17078,37 @@ 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. This can be
+ /// used to remove or update previously delivered notifications.
+ ///
+ []
+ 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.
+ ///
+ []
+ 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.
@@ -16778,9 +17143,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.
///
[]
@@ -16796,9 +17161,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.
///
[]
@@ -16814,18 +17179,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.
///
[]
@@ -17275,6 +17640,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
@@ -20676,7 +21079,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,
@@ -20723,7 +21127,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 =
@@ -21112,7 +21516,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
@@ -21148,7 +21553,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 =
@@ -21356,6 +21761,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,
@@ -21372,7 +21781,8 @@ module Main =
?dpi: Record,
?header: string,
?footer: string,
- ?pageSize: U2
+ ?pageSize: U2,
+ ?usePrinterDefaultPageSize: bool
) =
class
end
@@ -21472,6 +21882,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
@@ -21744,6 +22163,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