Commit graph

2599 commits

Author SHA1 Message Date
LongYinan
13651c5ff1
chore(napi): add Send and Sync to Reference (#2007) 2024-03-20 22:30:45 +08:00
LongYinan
4719caa643
feat(napi): support Return generic of ThreadsafeFunction (#1997)
* feat(napi): support to use tuple with either (#1993)

`Either` uses `ValidateNapiValue` + `TypeName` to validate and report error on value not being matched. So there's no way to remove these super traits from it. So I implemented these types to `Tuple` types.

* feat(napi): support `Return` generic of ThreadsafeFunction

* depracate JsFunction

* CalleeHandled tsfn should handle Result in callback

* Pass env to call_with_return_value callback

* Fix compile

* clippy fix

* Fix electron test

* Function args

---------

Co-authored-by: Hana <andywangsy@gmail.com>
2024-03-20 21:37:08 +08:00
Louis
693f0ac269
feat(napi): implement From<String> for Buffer (#2002) 2024-03-17 22:43:01 +08:00
dependabot[bot]
50623ca26b
chore(deps): bump follow-redirects from 1.15.5 to 1.15.6 (#2004)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.5 to 1.15.6.
<details>
<summary>Commits</summary>
<ul>
<li><a href="35a517c586"><code>35a517c</code></a> Release version 1.15.6 of the npm package.</li>
<li><a href="c4f847f851"><code>c4f847f</code></a> Drop Proxy-Authorization across hosts.</li>
<li><a href="8526b4a1b2"><code>8526b4a</code></a> Use GitHub for disclosure.</li>
<li>See full diff in <a href="https://github.com/follow-redirects/follow-redirects/compare/v1.15.5...v1.15.6">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=follow-redirects&package-manager=npm_and_yarn&previous-version=1.15.5&new-version=1.15.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/napi-rs/napi-rs/network/alerts).

</details>
2024-03-17 16:04:41 +08:00
Hana
97746b79a9
feat(napi): support to use tuple with either (#1993)
`Either` uses `ValidateNapiValue` + `TypeName` to validate and report error on value not being matched. So there's no way to remove these super traits from it. So I implemented these types to `Tuple` types.
2024-03-13 13:29:06 +08:00
Andrew Toth
6b1058a268
feat(napi-derive): add optional enum_string case conversion (#1995) 2024-03-11 20:10:00 +08:00
LongYinan
d962e34d3a
fix(napi): remove useless FromNapiValue bound check for ValidateNapiValue (#1999) 2024-03-10 21:22:46 +08:00
LongYinan
b03edafaff
ci: fix arm64 job (#1998) 2024-03-10 20:41:55 +08:00
renovate[bot]
368e210a8d
chore(deps): update yarn to v4.1.1 (#1989)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [yarn](https://togithub.com/yarnpkg/berry) ([source](https://togithub.com/yarnpkg/berry/tree/HEAD/packages/yarnpkg-cli)) | [`4.1.0` -> `4.1.1`](https://renovatebot.com/diffs/npm/yarn/4.1.0/4.1.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/yarn/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/yarn/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/yarn/4.1.0/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/yarn/4.1.0/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>yarnpkg/berry (yarn)</summary>

### [`v4.1.1`](52909a5e0d...6b7621f073)

[Compare Source](52909a5e0d...6b7621f073)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/napi-rs/napi-rs).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjAuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIyMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
2024-03-05 11:31:06 +08:00
LongYinan
a868c75ae8
ci: fix build in bun CI 2024-03-03 20:07:42 +08:00
renovate[bot]
b02c61783b
chore(deps): lock file maintenance (#1987)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-01 12:28:22 +08:00
LongYinan
4d5655accb
chore(release): publish
- @napi-rs/cli@3.0.0-alpha.43
2024-02-28 15:58:46 +08:00
LongYinan
19a13361d4
fix(cli): cleanup js binding template (#1984) 2024-02-28 15:51:16 +08:00
LongYinan
9abcb484ba
chore(release): publish
- @napi-rs/cli@3.0.0-alpha.42
2024-02-28 15:07:23 +08:00
LongYinan
e3e8a0fb39
Release independent packages
napi@2.16.0

napi-derive@2.16.0
2024-02-28 15:06:11 +08:00
LongYinan
aeb0b4766d
fix(napi): add back the typecheck logic that was accidentally removed in Object::get_named_property (#1982)
- Close https://github.com/napi-rs/napi-rs/issues/1641
2024-02-28 14:29:02 +08:00
Caleb Everett
95dd6ef485
refactor(cli): refactor js-binding to support easier bundling. (#1957)
* Refactor js-binding to support bundling single-package artifacts

The existsSync check breaks the bundlers I've tested (esbuild, webpack,
ncc), so you cannot bundle napi-rs packages that have all binarys in a
single package.

I've tested this change with both single package and multi package
libraries.

* Update snapshots

* Update CI

* Fix electron test

---------

Co-authored-by: Caleb ツ Everett <calebev@amazon.com>
Co-authored-by: LongYinan <lynweklm@gmail.com>
2024-02-26 15:46:07 +08:00
LongYinan
117e4ce153
fix(napi-derive): wrong dependency condition (#1980) 2024-02-25 15:25:42 +08:00
LongYinan
8ca1967bd8
feat(napi): impl BufferSlice and Uint8ClampedSlice (#1979) 2024-02-25 01:00:28 +08:00
LongYinan
f88a041fa3
feat(napi): impl chained Into for TypedArray types (#1978) 2024-02-25 00:58:27 +08:00
LongYinan
3e187151a6
fix(napi-derive): HashMap/IndexMap and slice generated types (#1977) 2024-02-25 00:56:30 +08:00
LongYinan
5af366b042
style(napi-derive): clippy fix (#1976) 2024-02-25 00:54:33 +08:00
LongYinan
71bbe0ef6f
fix(napi): remove useless create_reference in slice => TypedArray impl (#1975) 2024-02-25 00:52:30 +08:00
LongYinan
2fda360742
chore: fix renovate path and dedupe electron versions (#1974) 2024-02-25 00:50:22 +08:00
ebe97257a6
feat(napi-derive): add use_nullable attribute (#1971)
* feat(napi-derive): add use_nullable attribute

Co-authored-by: naskya <m@naskya.net>

* chore(napi-derive): update tests

Co-authored-by: naskya <m@naskya.net>

---------

Co-authored-by: naskya <m@naskya.net>
2024-02-24 21:49:54 +08:00
Louis
43415251b8
feat(napi): allow Reference as a class method param (#1966)
As of before this commit, there was a lock in the codegen preventing Reference
from being used as a function argument outside of a Reference<Self>.

This changes it, allowing Reference of any class to be added as a class method
argument anywhere. It has the same limitations as reference, as in it requires
the class to have been created with a factory or constructor. This change
implements FromNapiValue on Reference, which will unwrap the class and call the
existing from_value_ptr method. It also updated typegen so that we only emit
the reference type if we're in an impl block that doesn't match the Reference
we're getting. This ensures that typegen works as expected with the previous
behaviour.
2024-02-22 22:37:50 +08:00
LongYinan
17f509f96e
chore(release): publish
- @napi-rs/cli@3.0.0-alpha.41
2024-02-22 19:01:28 +08:00
LongYinan
33cf208758
Release independent packages
napi@2.15.4
2024-02-22 19:01:18 +08:00
Tom Barham
ebd5eef267
fix(napi): require static lifetime on add_finalizer callback (#1968)
Co-authored-by: LongYinan <lynweklm@gmail.com>
2024-02-22 18:40:04 +08:00
Louis
5b5f616d81
fix(napi): no hard fail on ThreadsafeFunction::call_async (#1970)
For many reasons, in an app we can end up in a scenario where the thread / task that initially called the ThreadsafeFunction gets interrupted. This means that the receiver would get collected, should a ThreadsafeFunction be awaited on the said thread. This will create an error when the ThreadsafeFunction's callback will be called, and call a napi_fatal_error.

This change makes it so that if the send errors, this error is hidden and thus prevents any hard failure. If a ThreadsafeFunction is called in such a case, its output won't be used, but we'll still run all the logic to ensure it ran properly.

Fixes https://github.com/napi-rs/napi-rs/issues/1665 - cc @Brooooooklyn
2024-02-22 17:34:10 +08:00
LongYinan
da99081ccf
fix(cli): allow more platform & arch fallback to wasm (#1969) 2024-02-22 16:42:33 +08:00
LongYinan
0306e3045a
fix(cli): fallback to wasm32 if platform is not support (#1967) 2024-02-21 23:48:29 +08:00
LongYinan
8855f18f50
Release independent packages
napi@2.15.3
2024-02-21 23:16:27 +08:00
dependabot[bot]
60d07338fd
chore(deps): bump ip from 1.1.8 to 1.1.9 (#1965)
Bumps [ip](https://github.com/indutny/node-ip) from 1.1.8 to 1.1.9.
<details>
<summary>Commits</summary>
<ul>
<li><a href="1ecbf2fd8c"><code>1ecbf2f</code></a> 1.1.9</li>
<li><a href="6a3ada9b47"><code>6a3ada9</code></a> lib: fixed CVE-2023-42282 and added unit test</li>
<li>See full diff in <a href="https://github.com/indutny/node-ip/compare/v1.1.8...v1.1.9">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ip&package-manager=npm_and_yarn&previous-version=1.1.8&new-version=1.1.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/napi-rs/napi-rs/network/alerts).

</details>
2024-02-21 10:59:59 +08:00
Louis
9391196eef
fix(napi): prevent memory leak when Custom GC is used (#1963)
There is a piece of custom logic that has been added a while back to ensure
that Buffers can be sent across threads, and be dropped properly. This involves
a custom GC that runs on NodeJS's current thread (per my understanding). The
logic to drop the buffer on that custom GC differed from the one in the Drop
impl. This meant that everytime Node sent a buffer back to a napi-rs function,
the reference wouldn't be cleaned up properly, and it would leak (96 bytes per
Reference on an ARM MacOS machine).

This commit updates the logic in the custom GC so that it matches the one in
the Drop impl. This worked locally, and fixed any occurence of the leak I could
find.
2024-02-20 20:36:21 +08:00
Louis
90e3a349db
fix: remove outdated rustdoc about tokio channels (#1961)
This seems to be a relic of when napi-rs used channels to send data to the
tokio runtime. This removes the outdated doc, as this could be misleading if
one wants to understand what those channels are about.
2024-02-20 16:36:29 +08:00
renovate[bot]
1d93461dcd
chore(deps): update dependency electron to v29 (#1962)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [electron](https://togithub.com/electron/electron) | [`^28.2.0` -> `^29.0.0`](https://renovatebot.com/diffs/npm/electron/28.2.1/29.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/electron/29.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/electron/29.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/electron/28.2.1/29.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/electron/28.2.1/29.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>electron/electron (electron)</summary>

### [`v29.0.0`](https://togithub.com/electron/electron/releases/tag/v29.0.0): electron v29.0.0

[Compare Source](https://togithub.com/electron/electron/compare/v28.2.3...v29.0.0)

### Release Notes for v29.0.0

#### Stack Upgrades

-   Chromium `122.0.6261.39`
    -   [New in 122](https://developer.chrome.com/blog/new-in-chrome-122/)
    -   [New in 121](https://developer.chrome.com/blog/new-in-chrome-121/)
-   Node `20.9.0`
    -   [Node 20.9.0 blog post](https://nodejs.org/en/blog/release/v20.9.0/)
-   V8 `12.2`

#### Breaking Changes

-   Functions called over the `contextBridge` are now called with the expected receiver (`this`). [#&#8203;39978](https://togithub.com/electron/electron/pull/39978) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/40262), [28](https://togithub.com/electron/electron/pull/40263))</span>
-   The `gpu-process-crashed` event on `app` has been deprecated. [#&#8203;40169](https://togithub.com/electron/electron/pull/40169) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/40195))</span>
-   The deprecated `gpu-process-crashed` event on `app` has been removed. [#&#8203;40255](https://togithub.com/electron/electron/pull/40255)
-   The deprecated `renderer-process-crashed` event on `app` and `crashed` event on `WebContents` and `<webview>` have been removed. [#&#8203;40115](https://togithub.com/electron/electron/pull/40115)

#### Features

##### Additions

-   Added `WebContentsView` and `BaseWindow`, replacing the now-deprecated `BrowserView` APIs. [#&#8203;40759](https://togithub.com/electron/electron/pull/40759)
-   Added `keyboardLock` to `ses.setPermissionRequestHandler(handler)`. [#&#8203;40369](https://togithub.com/electron/electron/pull/40369) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/40458), [27](https://togithub.com/electron/electron/pull/40459), [28](https://togithub.com/electron/electron/pull/40460))</span>
-   Added an option in `protocol.registerSchemesAsPrivileged` to allow V8 code cache in custom schemes. [#&#8203;40544](https://togithub.com/electron/electron/pull/40544) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/40708), [28](https://togithub.com/electron/electron/pull/40709))</span>
-   Added net module to utility process. [#&#8203;40890](https://togithub.com/electron/electron/pull/40890) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/40968), [28](https://togithub.com/electron/electron/pull/40967))</span>
-   Added new [Electron Fuse](https://www.electronjs.org/docs/latest/tutorial/fuses) that opts the `file://` protocol into more secure and restrictive behaviour that matches Chromium. [#&#8203;40372](https://togithub.com/electron/electron/pull/40372)
-   Added new `webUtils.getPathForFile` method to replace `File.path` augmentation. [#&#8203;38776](https://togithub.com/electron/electron/pull/38776)
-   Added support for configuring `use_remote_checksums` via `.npmrc`. [#&#8203;40253](https://togithub.com/electron/electron/pull/40253)
-   Migrated `app.{set|get}LoginItemSettings(settings)` to use Apple's new recommended underlying framework on macOS. [#&#8203;37244](https://togithub.com/electron/electron/pull/37244)
-   This PR adds several properties to the `display` object including `detected`, `maximumCursorSize`, and `nativeOrigin`. [#&#8203;40497](https://togithub.com/electron/electron/pull/40497) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/40554))</span>

##### Removed/Deprecated

-   Removed extraneous dlls from Windows zip files. [#&#8203;41129](https://togithub.com/electron/electron/pull/41129) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/41128))</span>

#### Fixes

-   Added support for `ThumbnailCapturerMac` and `ScreenCaptureKitStreamPickerSonoma` chromium feature flags to bypass deprecated API warning on macOS 14.4. [#&#8203;41329](https://togithub.com/electron/electron/pull/41329)
-   Fixed Electron 29.0.0-beta.3 regression that could pop up context menus in the wrong location. [#&#8203;41296](https://togithub.com/electron/electron/pull/41296)
-   Fixed an issue where `import.meta.url` did not work in the renderer process with `contextIsolation` enabled. [#&#8203;41265](https://togithub.com/electron/electron/pull/41265)
-   Fixed an issue where `original-fs` methods were not properly corrected for patched imports. [#&#8203;41238](https://togithub.com/electron/electron/pull/41238)
-   Fixed an issue where draggable regions didn't work across platforms. [#&#8203;41112](https://togithub.com/electron/electron/pull/41112)
-   Fixed crash in MessagePort::close. [#&#8203;41237](https://togithub.com/electron/electron/pull/41237)
-   Fixed the `GrantFileProtocolExtraPrivileges` not correctly preventing `fetch()` calls to `file://` URLs. [#&#8203;40864](https://togithub.com/electron/electron/pull/40864)

##### Also in earlier versions...

-   Apply module search paths restriction on worker and child process. [#&#8203;41138](https://togithub.com/electron/electron/pull/41138) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/41139), [28](https://togithub.com/electron/electron/pull/41137))</span>
-   Backported fix for AVX related crashes on certain linux machines. [#&#8203;40536](https://togithub.com/electron/electron/pull/40536) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/40540), [27](https://togithub.com/electron/electron/pull/40541), [28](https://togithub.com/electron/electron/pull/40542))</span>
-   CSS style `-webkit-app-region: drag;` has no effect in full screen mode. [#&#8203;41332](https://togithub.com/electron/electron/pull/41332) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/41331), [28](https://togithub.com/electron/electron/pull/41330))</span>
-   Fixed "will-navigate" not being emitted when pressing links in `chrome:` pages. [#&#8203;40390](https://togithub.com/electron/electron/pull/40390) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/40524), [28](https://togithub.com/electron/electron/pull/40525))</span>
-   Fixed `session.fromPartition()` key lookup bug. [#&#8203;41084](https://togithub.com/electron/electron/pull/41084) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/41083))</span>
-   Fixed a crash resultant from trying to listen to power-related events before the `ready` event was emitted on Linux. [#&#8203;40925](https://togithub.com/electron/electron/pull/40925) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/40922), [27](https://togithub.com/electron/electron/pull/40923), [28](https://togithub.com/electron/electron/pull/40924))</span>
-   Fixed a crash that started occurring sporadically with some types of macOS window close. [#&#8203;41299](https://togithub.com/electron/electron/pull/41299) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/41298))</span>
-   Fixed a partition alloc ref count check for higher MacOS versions. [#&#8203;40766](https://togithub.com/electron/electron/pull/40766) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/40765))</span>
-   Fixed a potential `async_hooks` crash when listening for the `restore` event on Windows after minimizing a maximized BrowserWindow. [#&#8203;41146](https://togithub.com/electron/electron/pull/41146) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/41144), [28](https://togithub.com/electron/electron/pull/41145))</span>
-   Fixed a potential crash when calling `dialog.showMessageBoxSync`. [#&#8203;41043](https://togithub.com/electron/electron/pull/41043) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/41041), [28](https://togithub.com/electron/electron/pull/41042))</span>
-   Fixed a potential issue with `async_hook` corruption in some error contexts. [#&#8203;40574](https://togithub.com/electron/electron/pull/40574) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/40592), [27](https://togithub.com/electron/electron/pull/40593), [28](https://togithub.com/electron/electron/pull/40594))</span>
-   Fixed a unexpectedly thrown error in some unsupported chrome extensions. [#&#8203;40500](https://togithub.com/electron/electron/pull/40500) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/40512), [27](https://togithub.com/electron/electron/pull/40513), [28](https://togithub.com/electron/electron/pull/40514))</span>
-   Fixed an error changing file format in `dialog.showOpenDialog` on macOS. [#&#8203;40308](https://togithub.com/electron/electron/pull/40308) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/40347), [28](https://togithub.com/electron/electron/pull/40346))</span>
-   Fixed an issue where Request objects did not correctly copy headers into fetches. [#&#8203;41019](https://togithub.com/electron/electron/pull/41019) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/41103))</span>
-   Fixed an issue where WebViews could sometimes crash on unload. [#&#8203;40400](https://togithub.com/electron/electron/pull/40400) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/40443), [27](https://togithub.com/electron/electron/pull/40444), [28](https://togithub.com/electron/electron/pull/40445))</span>
-   Fixed an issue where Windows Toast notifications weren't properly dismissed from the Action Center on `notification.close()` if they'd previously been dismissed. [#&#8203;40197](https://togithub.com/electron/electron/pull/40197) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/40242), [27](https://togithub.com/electron/electron/pull/40244), [28](https://togithub.com/electron/electron/pull/40243))</span>
-   Fixed an issue where `MessagePorts` were not being correctly garbage collected when not referenced. [#&#8203;40189](https://togithub.com/electron/electron/pull/40189) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/40201))</span>
-   Fixed an issue where `inAppPurchase.getProducts` and `inAppPurchase.purchasedProduct` did not resolve as expected. [#&#8203;40957](https://togithub.com/electron/electron/pull/40957) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/40955), [28](https://togithub.com/electron/electron/pull/40956))</span>
-   Fixed an issue where `navigator.keyboard.lock()` did not work per [latest expected behavior](https://developer.chrome.com/blog/better-full-screen-mode). [#&#8203;40365](https://togithub.com/electron/electron/pull/40365) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/40387), [27](https://togithub.com/electron/electron/pull/40388), [28](https://togithub.com/electron/electron/pull/40389))</span>
-   Fixed an issue where `select-usb-device` did not respect the `filter` option in `navigator.usb.requestDevice()`. [#&#8203;41197](https://togithub.com/electron/electron/pull/41197) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/41196), [28](https://togithub.com/electron/electron/pull/41198))</span>
-   Fixed an issue where `webContents.printToPDF` could fail when certain combinations of `margins` and `pageSize` values are passed. [#&#8203;41266](https://togithub.com/electron/electron/pull/41266) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/41267))</span>
-   Fixed an issue where crashes in `node::Environment` destruction potentially wouldn't be propagated to the ` 
    Service ` exit handler. [#&#8203;41301](https://togithub.com/electron/electron/pull/41301) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/41300), [28](https://togithub.com/electron/electron/pull/41302))</span>
-   Fixed an issue where devtools could not be re-opened. [#&#8203;40666](https://togithub.com/electron/electron/pull/40666) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/40679))</span>
-   Fixed an issue where font requests were incorrectly being sent to dev tools multiple times per resource. [#&#8203;40681](https://togithub.com/electron/electron/pull/40681) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/40715), [28](https://togithub.com/electron/electron/pull/40688))</span>
-   Fixed an issue where fully occluded windows would return an empty image from `webContents.capturePage()` on Windows and Linux. [#&#8203;39730](https://togithub.com/electron/electron/pull/39730) <span style="font-size:small;">(Also in [25](https://togithub.com/electron/electron/pull/40186), [26](https://togithub.com/electron/electron/pull/40187), [27](https://togithub.com/electron/electron/pull/40188), [28](https://togithub.com/electron/electron/pull/40185))</span>
-   Fixed an issue where non-modal windows with vibrancy could have incorrectly rounded corners on Sonoma. [#&#8203;41037](https://togithub.com/electron/electron/pull/41037) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/41035), [28](https://togithub.com/electron/electron/pull/41036))</span>
-   Fixed an issue where the `printBackground` option in `webContents.printToPDF` did not work as expected. [#&#8203;41180](https://togithub.com/electron/electron/pull/41180) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/41179))</span>
-   Fixed an issue where zoom level settings did not persist per-session for webviews. [#&#8203;40650](https://togithub.com/electron/electron/pull/40650) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/41269), [28](https://togithub.com/electron/electron/pull/41268))</span>
-   Fixed an issue with webContents interaction with fullscreen and WCO on macOS. [#&#8203;40179](https://togithub.com/electron/electron/pull/40179) <span style="font-size:small;">(Also in [25](https://togithub.com/electron/electron/pull/40220), [26](https://togithub.com/electron/electron/pull/40218), [27](https://togithub.com/electron/electron/pull/40217), [28](https://togithub.com/electron/electron/pull/40219))</span>
-   Fixed app incorrectly activating panel windows on macOS Sonoma. [#&#8203;40307](https://togithub.com/electron/electron/pull/40307) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/40465))</span>
-   Fixed child window opening in non-active macOS apps. [#&#8203;40546](https://togithub.com/electron/electron/pull/40546) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/40657), [27](https://togithub.com/electron/electron/pull/40658), [28](https://togithub.com/electron/electron/pull/40659))</span>
-   Fixed default protocol handler behavior on Windows. [#&#8203;40908](https://togithub.com/electron/electron/pull/40908) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/40909))</span>
-   Fixed file paths passed to `shell.showItemInFolder` not being escaped in Linux. [#&#8203;40527](https://togithub.com/electron/electron/pull/40527) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/40560), [27](https://togithub.com/electron/electron/pull/40561), [28](https://togithub.com/electron/electron/pull/40562))</span>
-   Fixed forked child process not able to send IPC message under some cases on macOS. [#&#8203;41102](https://togithub.com/electron/electron/pull/41102) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/41099), [27](https://togithub.com/electron/electron/pull/41100), [28](https://togithub.com/electron/electron/pull/41101))</span>
-   Fixed incorrect title bar shown on frameless transparent windows. [#&#8203;40862](https://togithub.com/electron/electron/pull/40862) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/40868), [28](https://togithub.com/electron/electron/pull/40867))</span>
-   Fixed loading nested ESM dependencies in `node_modules`
    -   Correctly support the `throwIfNoEntry` option in `fs.statSync`/`fs.lstatSync` in asar files. [#&#8203;40221](https://togithub.com/electron/electron/pull/40221) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/40224))</span>
-   Fixed macOS bug that causes window maximize button to be disabled in full-screen mode. [#&#8203;41029](https://togithub.com/electron/electron/pull/41029) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/41027), [28](https://togithub.com/electron/electron/pull/41028))</span>
-   Fixed on-screen-keyboard not hiding for webviews under some cases. [#&#8203;41149](https://togithub.com/electron/electron/pull/41149) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/41151), [28](https://togithub.com/electron/electron/pull/41150))</span>
-   Fixed problem with bounds of maximized window when  toggle BrowserWindow.setResizable function. [#&#8203;40503](https://togithub.com/electron/electron/pull/40503) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/40580), [27](https://togithub.com/electron/electron/pull/40581), [28](https://togithub.com/electron/electron/pull/40582))</span>
-   Fixed resizing performance issue on macOS. [#&#8203;40577](https://togithub.com/electron/electron/pull/40577) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/40584), [27](https://togithub.com/electron/electron/pull/40585), [28](https://togithub.com/electron/electron/pull/40586))</span>
-   Fixed some redundant permission dialogs while screen sharing on Wayland. [#&#8203;40098](https://togithub.com/electron/electron/pull/40098) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/40191), [27](https://togithub.com/electron/electron/pull/40193), [28](https://togithub.com/electron/electron/pull/40192))</span>
-   Fixed the enabled/disabled behavior of the maximize/fullscreen button of macOS windows. [#&#8203;40897](https://togithub.com/electron/electron/pull/40897) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/40895), [28](https://togithub.com/electron/electron/pull/40896))</span>
-   Prevent node mode to be used as script runner by other apps on macOS. [#&#8203;40579](https://togithub.com/electron/electron/pull/40579) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/40738), [27](https://togithub.com/electron/electron/pull/40737), [28](https://togithub.com/electron/electron/pull/40710))</span>
-   Unset all Node envs in node process when parent is a foreign process. [#&#8203;40881](https://togithub.com/electron/electron/pull/40881) <span style="font-size:small;">(Also in [26](https://togithub.com/electron/electron/pull/40882), [27](https://togithub.com/electron/electron/pull/40879), [28](https://togithub.com/electron/electron/pull/40880))</span>
-   Use `activateIgnoringOtherApps` for focusing non-panels on macOS. [#&#8203;40570](https://togithub.com/electron/electron/pull/40570) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/40621))</span>

#### Other Changes

-   Re-enabled partition alloc on Mac. [#&#8203;33981](https://togithub.com/electron/electron/pull/33981) <span style="font-size:small;">(Also in [28](https://togithub.com/electron/electron/pull/40230))</span>
-   Reverted new WebContentsView and BaseWindow APIs. [#&#8203;41060](https://togithub.com/electron/electron/pull/41060)
-   Security: backported fix for chromium:1517354. [#&#8203;40969](https://togithub.com/electron/electron/pull/40969)

#### Notices

##### End of Support for 26.x.y

Electron 26.x.y has reached end-of-support as per the project's [support policy](https://www.electronjs.org/docs/latest/tutorial/electron-timelines#version-support-policy). Developers and applications are encouraged to upgrade to a newer version of Electron.

### [`v28.2.3`](https://togithub.com/electron/electron/releases/tag/v28.2.3): electron v28.2.3

[Compare Source](https://togithub.com/electron/electron/compare/v28.2.2...v28.2.3)

### Release Notes for v28.2.3

#### Fixes

-   Fixed a crash that started occurring sporadically with some types of macOS window close. [#&#8203;41298](https://togithub.com/electron/electron/pull/41298) <span style="font-size:small;">(Also in [29](https://togithub.com/electron/electron/pull/41299))</span>
-   Fixed an issue where `webContents.printToPDF` could fail when certain combinations of `margins` and `pageSize` values are passed. [#&#8203;41267](https://togithub.com/electron/electron/pull/41267) <span style="font-size:small;">(Also in [29](https://togithub.com/electron/electron/pull/41266))</span>
-   Fixed an issue where crashes in `node::Environment` destruction potentially wouldn't be propagated to the `NodeService` exit handler. [#&#8203;41302](https://togithub.com/electron/electron/pull/41302) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/41300), [29](https://togithub.com/electron/electron/pull/41301))</span>
-   Fixed an issue where zoom level settings did not persist per-session for webviews. [#&#8203;41268](https://togithub.com/electron/electron/pull/41268) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/41269))</span>

#### Other Changes

-   Updated Chromium to 120.0.6099.283. [#&#8203;41262](https://togithub.com/electron/electron/pull/41262)

### [`v28.2.2`](https://togithub.com/electron/electron/releases/tag/v28.2.2): electron v28.2.2

[Compare Source](https://togithub.com/electron/electron/compare/v28.2.1...v28.2.2)

### Release Notes for v28.2.2

#### Fixes

-   Fixed an issue where `select-usb-device` did not respect the `filter` option in `navigator.usb.requestDevice()`. [#&#8203;41198](https://togithub.com/electron/electron/pull/41198) <span style="font-size:small;">(Also in [27](https://togithub.com/electron/electron/pull/41196), [29](https://togithub.com/electron/electron/pull/41197))</span>

#### Other Changes

-   Security: backported fix for [`1511567`](https://togithub.com/electron/electron/commit/1511567).
    -   Security: backported fix for [`1514777`](https://togithub.com/electron/electron/commit/1514777).
    -   Security: backported fix for [`1511085`](https://togithub.com/electron/electron/commit/1511085).
    -   Security: backported fix for [`1519980`](https://togithub.com/electron/electron/commit/1519980). [#&#8203;41178](https://togithub.com/electron/electron/pull/41178)
-   Updated Chromium to 120.0.6099.276. [#&#8203;41195](https://togithub.com/electron/electron/pull/41195)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/napi-rs/napi-rs).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMDAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIwMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
2024-02-20 15:57:17 +08:00
LongYinan
9e44fd635b
fix(napi-derive): napi-derive-backend version 2024-02-20 15:17:43 +08:00
LongYinan
5232d9e836
chore(release): publish
- @napi-rs/cli@3.0.0-alpha.40
2024-02-19 19:10:51 +08:00
LongYinan
95af8065c0
Release independent packages
napi-build@2.1.2
2024-02-19 19:10:16 +08:00
LongYinan
ad35076d07
fix(cli,build): build params (#1960) 2024-02-19 18:09:34 +08:00
LongYinan
f7376f1e97
Release independent packages
napi-build@2.1.1
2024-02-18 22:05:20 +08:00
LongYinan
b461132f94
chore(release): publish
- @napi-rs/cli@3.0.0-alpha.39
2024-02-18 22:04:46 +08:00
LongYinan
08b1f689bf
feat(cli,build): support setjmp.h (#1958) 2024-02-18 21:45:19 +08:00
LongYinan
1951b60786
ci: upgrade toolchain in Docker (#1956) 2024-02-18 13:42:10 +08:00
LongYinan
97039b2f08
Release independent packages
- napi@2.15.2
- napi-derive@2.15.2
2024-02-17 22:58:31 +08:00
LongYinan
c49309fdc2
fix(napi): memory leak while using Reference (#1954)
- Close https://github.com/napi-rs/napi-rs/issues/1952
2024-02-17 22:14:27 +08:00
LongYinan
09efd416e5
fix(cli): set cxxflags while WASI_SDK_PATH exists (#1955) 2024-02-17 14:42:30 +08:00
LongYinan
20e0983288
style: apply clippy fix (#1953) 2024-02-17 14:12:24 +08:00
Andrew McClenaghan
6aae4bac0f
fix(cli): ensure cwd and outputDir are used for finding files (#1949) 2024-02-16 20:37:19 +08:00