MarshallOfSound

#51886: refactor: use @electron-internal/extract-zip in the npm package

Merged
Created: Jun 4, 2026, 5:54:21 PM
Merged: Jun 5, 2026, 12:41:15 PM
7 comments
Target: main

Description of Change

Closes #51619

Switches the published electron npm package from extract-zip to @electron-internal/extract-zip, a drop-in replacement maintained at electron/extract-zip that uses prebuilt native bindings for extraction.

The package is ESM-only, so the require() in install.js now destructures the named extract export — supported on the Node versions the package already requires (engines: >= 22.12.0).

Verified locally on macOS arm64 by stamping the npm/ folder as electron@42.3.3 and running the full install flow: the zip downloads and extracts, cli.js --version launches the app, and the extracted output (file list, content hashes, symlinks, permissions) is byte-identical to what extract-zip@2.0.1 produces.

Checklist

  • PR description included and stakeholders cc'd
  • PR title follows semantic commit guidelines

Release Notes

Notes: none

Backports

40-x-y
Pending
Waiting for a manual backport
41-x-y
Pending
Waiting for a manual backport
42-x-y
In-flight
PR Number
#51895
Waiting to be merged
43-x-y
In-flight
PR Number
#51894
Waiting to be merged

Semver Impact

Major
Breaking changes
Minor
New features
Patch
Bug fixes
None
Docs, tests, etc.

Semantic Versioning helps users understand the impact of updates:

  • Major (X.y.z): Breaking changes that may require code modifications
  • Minor (x.Y.z): New features that maintain backward compatibility
  • Patch (x.y.Z): Bug fixes that don't change the API
  • None: Changes that don't affect using facing parts of Electron