which-electron

    1.0.5 • Public • Published

    which-electron npm Libraries.io dependency status for latest release NPM

    Find out which Electron version is bundled inside an application.

    Usage

    $ npm install which-electron
    
    $ which-electron Google.Play.Music.Desktop.Player.OSX.zip
    Version Constraint (Unsupported): <v7.0.0
    Fingerprint: v3.1.7-v3.1.8
    v3.1.8 is currently not supported
    
    $ which-electron HashTag-win32-x64.zip
    Found Version file: v7.1.10
    v7.1.10 is currently not supported
    Fingerprint: v7.1.10
    v7.1.10 is currently not supported
    
    $ which-electron Appium-linux-1.21.0.AppImage
    Fingerprint: v7.2.4-v7.3.3
    v7.3.3 is currently not supported
    
    $ which-electron https://github.com/stoplightio/studio/releases/download/v2.3.0-stable.5931.git-67616e9/stoplight-studio-mac.dmg
    Downloaded https://github.com/stoplightio/studio/releases/download/v2.3.0-stable.5931.git-67616e9/stoplight-studio-mac.dmg
    /tmp/which-electronaN3QGg/stoplight-studio-mac.dmg
    Fingerprint: v11.0.5-v11.1.1
    v11.1.1 is currently not supported

    How does it work?

    We attempt multiple pathways:

    1. The presence of a electron.asar file denotes an electron version <v7.0.0, since later releases dropped that file and embedded it in the binary instead.
    2. A version text file is sometimes included in the final binary.
    3. The node_modules/electron/package.json file is sometimes present.
    4. A lookup table of hashes from various electron releases is used to guess the version. In case of multiple matches, it returns a range of versions.
    5. Get the electron version from the electron binary (WIP)

    Note that this can be run against untrusted binaries as it does not try to run the application. It has been tested against various file formats: zip/dmg/exe/AppImage/tar.gz etc. It extracts limited files using 7-zip to a temporary directory at runtime if needed.

    Known Issues

    It is known to not work against:

    1. Windows setup files (ones with -setup in their name)
    2. On systems without 7-zip installed, it falls back to an older version of 7zip via the 7z-bin package on NPM. Unfortunately, the older version can't extract AppImage files correctly.

    License

    Licensed under the MIT License. See LICENSE file for details.

    Install

    npm i which-electron

    DownloadsWeekly Downloads

    49

    Version

    1.0.5

    License

    MIT

    Unpacked Size

    21.8 kB

    Total Files

    12

    Last publish

    Collaborators

    • captn3m0