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 Contributors Copyright (c) 2025 Shayan Habibi and Fable-Hub contributors README.md - 8.1.0 - 8.1.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 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-javascript Shayan Habibi and Contributors Copyright (c) 2025 Shayan Habibi and Fable-Hub contributors - 7.1.0 - 7.1.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 3065ebb..bcf63b8 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 + 42.1.0 + 42.1.0 + 42.1.0 feleico-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> -> 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. @@ -22104,6 +22545,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 @@ -22686,12 +23152,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 @@ -22709,13 +23170,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 @@ -25326,8 +25780,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 +25806,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 +25869,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 +25904,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 +25922,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 +25962,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 +25981,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 +25992,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 +26013,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 @@ -25593,6 +26049,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 @@ -26055,10 +26552,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 = @@ -26207,10 +26719,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 = @@ -26220,6 +26747,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 = [] @@ -27090,9 +27639,6 @@ module Main = module ClearStorageData = module Options = - [] - type Quotas = | [] Temporary - [] type Storages = | [] Cookies @@ -27104,21 +27650,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 +27761,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 = @@ -27480,6 +28032,17 @@ module Main = | [] MoveTabToNewWindow | [] WindowMenu + module ImageView = + module SetBounds = + module Options = + module Animate = + [] + type Easing = + | [] Linear + | [] EaseIn + | [] EaseOut + | [] EaseInOut + module DownloadItem = module Done = [] @@ -27534,7 +28097,7 @@ module Main = [] type Properties = /// - /// Show hidden files in dialog. + /// Show hidden files in dialog. Deprecated on Linux. /// | [] ShowHiddenFiles /// @@ -27559,7 +28122,7 @@ module Main = [] type Properties = /// - /// Show hidden files in dialog. + /// Show hidden files in dialog. Deprecated on Linux. /// | [] ShowHiddenFiles /// @@ -27596,7 +28159,7 @@ module Main = /// | [] MultiSelections /// - /// Show hidden files in dialog. + /// Show hidden files in dialog. Deprecated on Linux. /// | [] ShowHiddenFiles /// @@ -27638,7 +28201,7 @@ module Main = /// | [] MultiSelections /// - /// Show hidden files in dialog. + /// Show hidden files in dialog. Deprecated on Linux. /// | [] ShowHiddenFiles /// @@ -27676,7 +28239,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 /// @@ -28082,6 +28659,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 = @@ -28154,6 +28753,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 @@ -28190,9 +28793,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 ❌ @@ -31302,10 +31905,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: ///
/// /// @@ -31680,6 +32284,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. /// @@ -31957,8 +32568,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. @@ -32066,8 +32681,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. @@ -35635,6 +36252,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. /// @@ -35653,14 +36354,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<_> /// @@ -36723,8 +37420,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<_> @@ -36816,18 +37513,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 = @@ -36842,6 +37550,12 @@ module Main = [] static member inline isEncryptionAvailable() : bool = Unchecked.defaultof<_> + /// + /// Whether encryption is available for asynchronous safeStorage operations. + /// + [] + static member inline isAsyncEncryptionAvailable() : Promise = Unchecked.defaultof<_> + /// /// An array of bytes representing the encrypted string.

This function will throw an error if encryption fails. ///
@@ -36850,13 +37564,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 @@ -37011,7 +37742,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 = @@ -37898,13 +38631,49 @@ 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
})
///
[] 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. 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 @@ -37913,17 +38682,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. @@ -37931,6 +38700,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 , @@ -37940,7 +38721,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 @@ -37948,7 +38729,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 @@ -37956,11 +38737,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 @@ -38026,7 +38807,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 +38817,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 +38827,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 /// /// @@ -38243,7 +39024,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<_> @@ -38255,6 +39038,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. @@ -38344,6 +39156,44 @@ 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 + /// /// ⚠ Process Availability: Main ✔ | Renderer ❌ | Utility ✔ | Exported ✔ @@ -38673,6 +39523,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 ❌ @@ -39027,9 +39887,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() = @@ -39147,7 +40008,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 +40131,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 +40189,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 +40210,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 @@ -39872,8 +40733,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. @@ -39983,6 +40848,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 ❌ /// @@ -41141,7 +42022,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. @@ -41171,7 +42052,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. @@ -41179,8 +42060,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. ///
[] @@ -41235,6 +42116,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) + ///
+ /// + [] + static member inline enableHeapProfiling(?options: EnableHeapProfilingOptions) : Promise = + Unchecked.defaultof<_> + /// /// ⚠ Process Availability: Main ✔ | Renderer ❌ | Utility ❌ | Exported ❌ /// @@ -41796,7 +42690,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. ///
@@ -43032,13 +43928,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<_> @@ -43062,7 +43959,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<_> @@ -43223,9 +44120,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. ///
/// /// @@ -43249,7 +44146,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. ///
/// /// @@ -43285,7 +44183,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. ///
/// /// @@ -43300,7 +44198,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. ///
/// /// @@ -43516,19 +44415,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). ///
/// /// @@ -49295,13 +50194,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 /// /// @@ -49810,6 +50721,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. @@ -49905,18 +50834,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 +50854,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 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 @@ - +