@electron/rebuild 4.0.3 → 4.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +4 -6
  2. package/lib/arch.js +1 -3
  3. package/lib/arch.js.map +1 -1
  4. package/lib/cache.js +18 -13
  5. package/lib/cache.js.map +1 -1
  6. package/lib/clang-fetcher.js +14 -21
  7. package/lib/clang-fetcher.js.map +1 -1
  8. package/lib/cli.js +122 -78
  9. package/lib/cli.js.map +1 -1
  10. package/lib/detect-libc.d.ts +8 -0
  11. package/lib/detect-libc.js +24 -0
  12. package/lib/detect-libc.js.map +1 -0
  13. package/lib/electron-locator.js +5 -4
  14. package/lib/electron-locator.js.map +1 -1
  15. package/lib/fetcher.d.ts +1 -3
  16. package/lib/fetcher.js +11 -11
  17. package/lib/fetcher.js.map +1 -1
  18. package/lib/module-rebuilder.js +9 -9
  19. package/lib/module-rebuilder.js.map +1 -1
  20. package/lib/module-type/index.js +2 -2
  21. package/lib/module-type/index.js.map +1 -1
  22. package/lib/module-type/node-gyp/node-gyp.js +16 -13
  23. package/lib/module-type/node-gyp/node-gyp.js.map +1 -1
  24. package/lib/module-type/node-gyp/worker.js +1 -1
  25. package/lib/module-type/node-gyp/worker.js.map +1 -1
  26. package/lib/module-type/node-pre-gyp.js +2 -2
  27. package/lib/module-type/node-pre-gyp.js.map +1 -1
  28. package/lib/module-type/prebuild-install.js +5 -11
  29. package/lib/module-type/prebuild-install.js.map +1 -1
  30. package/lib/module-type/prebuildify.js +2 -2
  31. package/lib/module-type/prebuildify.js.map +1 -1
  32. package/lib/module-walker.d.ts +1 -1
  33. package/lib/module-walker.js +6 -6
  34. package/lib/module-walker.js.map +1 -1
  35. package/lib/node-api.js +2 -2
  36. package/lib/node-api.js.map +1 -1
  37. package/lib/prebuild-shim.js +1 -1
  38. package/lib/prebuild-shim.js.map +1 -1
  39. package/lib/read-package-json.js +2 -2
  40. package/lib/read-package-json.js.map +1 -1
  41. package/lib/rebuild.d.ts +0 -2
  42. package/lib/rebuild.js +14 -8
  43. package/lib/rebuild.js.map +1 -1
  44. package/lib/search-module.js +1 -1
  45. package/lib/search-module.js.map +1 -1
  46. package/lib/sysroot-fetcher.js +6 -7
  47. package/lib/sysroot-fetcher.js.map +1 -1
  48. package/lib/types.d.ts +0 -2
  49. package/package.json +25 -36
  50. package/lib/promisifiedGracefulFs.d.ts +0 -3
  51. package/lib/promisifiedGracefulFs.js +0 -9
  52. package/lib/promisifiedGracefulFs.js.map +0 -1
package/README.md CHANGED
@@ -99,20 +99,18 @@ This package is automatically used with Electron Forge when packaging an Electro
99
99
 
100
100
  ### How can I integrate this into [Electron Packager](https://github.com/electron/packager)?
101
101
 
102
- electron-rebuild provides a function compatible with the [`afterCopy` hook](https://electron.github.io/packager/main/interfaces/Options.html#afterCopy)
102
+ electron-rebuild provides a function compatible with the [`afterCopy` hook](https://packages.electronjs.org/packager/v19.0.5/interfaces/Options.html#aftercopy)
103
103
  for Electron Packager. For example:
104
104
 
105
105
  ```javascript
106
- import packager from "@electron/packager";
106
+ import { packager } from "@electron/packager";
107
107
  import { rebuild } from "@electron/rebuild";
108
108
 
109
109
  packager({
110
110
  // … other options
111
111
  afterCopy: [
112
- (buildPath, electronVersion, platform, arch, callback) => {
113
- rebuild({ buildPath, electronVersion, arch })
114
- .then(() => callback())
115
- .catch((error) => callback(error));
112
+ async ({ buildPath, electronVersion, arch }) => {
113
+ await rebuild({ buildPath, electronVersion, arch });
116
114
  },
117
115
  ],
118
116
  // … other options
package/lib/arch.js CHANGED
@@ -5,9 +5,7 @@ import { execSync } from 'node:child_process';
5
5
  * Copied from `@electron/get`.
6
6
  */
7
7
  export function uname() {
8
- return execSync('uname -m')
9
- .toString()
10
- .trim();
8
+ return execSync('uname -m').toString().trim();
11
9
  }
12
10
  /**
13
11
  * Generates an architecture name that would be used in an Electron or Node.js
package/lib/arch.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"arch.js","sourceRoot":"","sources":["../src/arch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,KAAK;IACnB,OAAO,QAAQ,CAAC,UAAU,CAAC;SACxB,QAAQ,EAAE;SACV,IAAI,EAAE,CAAC;AACZ,CAAC;AAMD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,eAAgC;IACxE,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,8DAA8D;QAC9D,QAAQ,eAAe,CAAC,WAAW,EAAE,CAAC;YACpC,KAAK,GAAG;gBACN,OAAO,KAAK,EAAE,CAAC;YACjB,KAAK,GAAG,CAAC;YACT;gBACE,OAAO,QAAQ,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"arch.js","sourceRoot":"","sources":["../src/arch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,KAAK;IACnB,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC;AAMD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,eAAgC;IACxE,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,8DAA8D;QAC9D,QAAQ,eAAe,CAAC,WAAW,EAAE,CAAC;YACpC,KAAK,GAAG;gBACN,OAAO,KAAK,EAAE,CAAC;YACjB,KAAK,GAAG,CAAC;YACT;gBACE,OAAO,QAAQ,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
package/lib/cache.js CHANGED
@@ -1,9 +1,8 @@
1
1
  import crypto from 'node:crypto';
2
2
  import debug from 'debug';
3
- import fs from 'graceful-fs';
3
+ import fs from 'node:fs';
4
4
  import path from 'node:path';
5
5
  import zlib from 'node:zlib';
6
- import { promisifiedGracefulFs } from './promisifiedGracefulFs.js';
7
6
  const d = debug('electron-rebuild');
8
7
  // Update this number if you change the caching logic to ensure no bad cache hits
9
8
  const ELECTRON_REBUILD_CACHE_ID = 1;
@@ -17,7 +16,7 @@ class Snap {
17
16
  }
18
17
  const takeSnapshot = async (dir, relativeTo = dir) => {
19
18
  const snap = {};
20
- await Promise.all((await promisifiedGracefulFs.readdir(dir)).map(async (child) => {
19
+ await Promise.all((await fs.promises.readdir(dir)).map(async (child) => {
21
20
  if (child === 'node_modules')
22
21
  return;
23
22
  const childPath = path.resolve(dir, child);
@@ -26,7 +25,7 @@ const takeSnapshot = async (dir, relativeTo = dir) => {
26
25
  snap[relative] = await takeSnapshot(childPath, relativeTo);
27
26
  }
28
27
  else {
29
- const data = await promisifiedGracefulFs.readFile(childPath);
28
+ const data = await fs.promises.readFile(childPath);
30
29
  snap[relative] = new Snap(crypto.createHash('SHA256').update(data).digest('hex'), data);
31
30
  }
32
31
  }));
@@ -36,7 +35,7 @@ const writeSnapshot = async (diff, dir) => {
36
35
  for (const key in diff) {
37
36
  if (diff[key] instanceof Snap) {
38
37
  await fs.promises.mkdir(path.dirname(path.resolve(dir, key)), { recursive: true });
39
- await promisifiedGracefulFs.writeFile(path.resolve(dir, key), diff[key].data);
38
+ await fs.promises.writeFile(path.resolve(dir, key), diff[key].data);
40
39
  }
41
40
  else {
42
41
  await fs.promises.mkdir(path.resolve(dir, key), { recursive: true });
@@ -54,7 +53,7 @@ const serialize = (snap) => {
54
53
  jsonReady[key] = {
55
54
  __isSnap: true,
56
55
  hash: s.hash,
57
- data: s.data.toString('base64')
56
+ data: s.data.toString('base64'),
58
57
  };
59
58
  }
60
59
  else {
@@ -79,15 +78,17 @@ const unserialize = (jsonReady) => {
79
78
  export const cacheModuleState = async (dir, cachePath, key) => {
80
79
  const snap = await takeSnapshot(dir);
81
80
  const moduleBuffer = Buffer.from(JSON.stringify(serialize(snap)));
82
- const zipped = await new Promise(resolve => zlib.gzip(moduleBuffer, (_, result) => resolve(result)));
81
+ const zipped = await new Promise((resolve) => zlib.gzip(moduleBuffer, (_, result) => resolve(result)));
83
82
  await fs.promises.mkdir(cachePath, { recursive: true });
84
- await promisifiedGracefulFs.writeFile(path.resolve(cachePath, key), zipped);
83
+ await fs.promises.writeFile(path.resolve(cachePath, key), zipped);
85
84
  };
86
85
  export const lookupModuleState = async (cachePath, key) => {
87
86
  if (fs.existsSync(path.resolve(cachePath, key))) {
88
87
  return async function applyDiff(dir) {
89
- const zipped = await promisifiedGracefulFs.readFile(path.resolve(cachePath, key));
90
- const unzipped = await new Promise(resolve => { zlib.gunzip(zipped, (_, result) => resolve(result)); });
88
+ const zipped = await fs.promises.readFile(path.resolve(cachePath, key));
89
+ const unzipped = await new Promise((resolve) => {
90
+ zlib.gunzip(zipped, (_, result) => resolve(result));
91
+ });
91
92
  const diff = unserialize(JSON.parse(unzipped.toString()));
92
93
  await writeSnapshot(diff, dir);
93
94
  };
@@ -109,7 +110,7 @@ async function hashDirectory(dir, relativeTo) {
109
110
  relativeTo ??= dir;
110
111
  d('hashing dir', dir);
111
112
  const dirTree = {};
112
- await Promise.all((await promisifiedGracefulFs.readdir(dir)).map(async (child) => {
113
+ await Promise.all((await fs.promises.readdir(dir)).map(async (child) => {
113
114
  d('found child', child, 'in dir', dir);
114
115
  // Ignore output directories
115
116
  if (dir === relativeTo && (child === 'build' || child === 'bin'))
@@ -124,14 +125,18 @@ async function hashDirectory(dir, relativeTo) {
124
125
  dirTree[relative] = await hashDirectory(childPath, relativeTo);
125
126
  }
126
127
  else {
127
- dirTree[relative] = crypto.createHash('SHA256').update(await promisifiedGracefulFs.readFile(childPath)).digest('hex');
128
+ dirTree[relative] = crypto
129
+ .createHash('SHA256')
130
+ .update(await fs.promises.readFile(childPath))
131
+ .digest('hex');
128
132
  }
129
133
  }));
130
134
  return dirTree;
131
135
  }
132
136
  export async function generateCacheKey(opts) {
133
137
  const tree = await hashDirectory(opts.modulePath);
134
- const hasher = crypto.createHash('SHA256')
138
+ const hasher = crypto
139
+ .createHash('SHA256')
135
140
  .update(`${ELECTRON_REBUILD_CACHE_ID}`)
136
141
  .update(path.basename(opts.modulePath))
137
142
  .update(opts.ABI)
package/lib/cache.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,18 @@
1
1
  import cp from 'node:child_process';
2
2
  import debug from 'debug';
3
- import fs from 'graceful-fs';
3
+ import fs from 'node:fs';
4
4
  import path from 'node:path';
5
- import * as tar from 'tar';
6
- import zlib from 'node:zlib';
7
5
  import { ELECTRON_GYP_DIR } from './constants.js';
8
- import { fetch } from './fetcher.js';
6
+ import { fetchUrl } from './fetcher.js';
9
7
  import { downloadLinuxSysroot } from './sysroot-fetcher.js';
10
- import { promisifiedGracefulFs } from './promisifiedGracefulFs.js';
8
+ import { spawn } from '@malept/cross-spawn-promise';
11
9
  const d = debug('electron-rebuild');
12
10
  const CDS_URL = 'https://commondatastorage.googleapis.com/chromium-browser-clang';
13
11
  function getPlatformUrlPrefix(hostOS, hostArch) {
14
12
  const prefixMap = {
15
- 'linux': 'Linux_x64',
16
- 'darwin': 'Mac',
17
- 'win32': 'Win',
13
+ linux: 'Linux_x64',
14
+ darwin: 'Mac',
15
+ win32: 'Win',
18
16
  };
19
17
  let prefix = prefixMap[hostOS];
20
18
  if (prefix === 'Mac' && hostArch === 'arm64') {
@@ -41,7 +39,7 @@ export async function getClangEnvironmentVars(electronVersion, targetArch) {
41
39
  }
42
40
  const gypArgs = [];
43
41
  if (process.platform === 'win32') {
44
- console.log(await promisifiedGracefulFs.readdir(clangDir));
42
+ console.log(await fs.promises.readdir(clangDir));
45
43
  gypArgs.push(`/p:CLToolExe=clang-cl.exe`, `/p:CLToolPath=${clangDir}`);
46
44
  }
47
45
  if (process.platform === 'linux') {
@@ -78,33 +76,28 @@ async function downloadClangVersion(electronVersion) {
78
76
  if (fs.existsSync(path.resolve(clangDirPath, 'bin', 'clang')))
79
77
  return clangDirPath;
80
78
  await fs.promises.mkdir(ELECTRON_GYP_DIR, { recursive: true });
81
- const electronDeps = await fetch(`https://raw.githubusercontent.com/electron/electron/v${electronVersion}/DEPS`, 'text');
79
+ const electronDeps = await fetchUrl(`https://raw.githubusercontent.com/electron/electron/v${electronVersion}/DEPS`, 'text');
82
80
  const chromiumRevisionExtractor = /'chromium_version':\n\s+'([^']+)/g;
83
81
  const chromiumRevisionMatch = chromiumRevisionExtractor.exec(electronDeps);
84
82
  if (!chromiumRevisionMatch)
85
83
  throw new Error('Failed to determine Chromium revision for given Electron version');
86
84
  const chromiumRevision = chromiumRevisionMatch[1];
87
85
  d('fetching clang for Chromium:', chromiumRevision);
88
- const base64ClangUpdate = await fetch(`https://chromium.googlesource.com/chromium/src.git/+/${chromiumRevision}/tools/clang/scripts/update.py?format=TEXT`, 'text');
86
+ const base64ClangUpdate = await fetchUrl(`https://chromium.googlesource.com/chromium/src.git/+/${chromiumRevision}/tools/clang/scripts/update.py?format=TEXT`, 'text');
89
87
  const clangUpdate = Buffer.from(base64ClangUpdate, 'base64').toString('utf8');
90
88
  const clangVersionString = clangVersionFromRevision(clangUpdate) || clangVersionFromSVN(clangUpdate);
91
89
  if (!clangVersionString)
92
90
  throw new Error('Failed to determine Clang revision from Electron version');
93
91
  d('fetching clang:', clangVersionString);
94
92
  const clangDownloadURL = getClangDownloadURL('clang', clangVersionString, process.platform, process.arch);
95
- const contents = await fetch(clangDownloadURL, 'buffer');
96
- d('deflating clang');
97
- zlib.deflateSync(contents);
98
- const tarPath = path.resolve(ELECTRON_GYP_DIR, `${electronVersion}-clang.tar`);
93
+ const contents = await fetchUrl(clangDownloadURL, 'buffer');
94
+ const tarPath = path.resolve(ELECTRON_GYP_DIR, `${electronVersion}-clang.tgz`);
99
95
  if (fs.existsSync(tarPath))
100
96
  await fs.promises.rm(tarPath, { recursive: true, force: true });
101
- await promisifiedGracefulFs.writeFile(tarPath, Buffer.from(contents));
97
+ await fs.promises.writeFile(tarPath, contents);
102
98
  await fs.promises.mkdir(clangDirPath, { recursive: true });
103
- d('tar running on clang');
104
- await tar.x({
105
- file: tarPath,
106
- cwd: clangDirPath,
107
- });
99
+ d('extracting clang');
100
+ await spawn('tar', ['-xf', tarPath, '-C', clangDirPath], { stdio: 'ignore' });
108
101
  await fs.promises.rm(tarPath, { recursive: true, force: true });
109
102
  d('cleaning up clang tar file');
110
103
  return clangDirPath;
@@ -1 +1 @@
1
- {"version":3,"file":"clang-fetcher.js","sourceRoot":"","sources":["../src/clang-fetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clang-fetcher.js","sourceRoot":"","sources":["../src/clang-fetcher.ts"],"names":[],"mappings":"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"}
package/lib/cli.js CHANGED
@@ -1,59 +1,114 @@
1
1
  #!/usr/bin/env node
2
- import fs from 'graceful-fs';
2
+ import fs from 'node:fs';
3
3
  import path from 'node:path';
4
- import util from 'node:util';
5
- import ora from 'ora';
6
- import yargs from 'yargs/yargs';
4
+ import { parseArgs, styleText } from 'node:util';
5
+ import { pathToFileURL } from 'node:url';
7
6
  import { getProjectRootPath } from './search-module.js';
8
7
  import { locateElectronModule } from './electron-locator.js';
9
8
  import { rebuild } from './rebuild.js';
10
- import { pathToFileURL } from 'node:url';
11
- const argv = yargs(process.argv.slice(2)).version(false).options({
12
- version: { alias: 'v', type: 'string', description: 'The version of Electron to build against' },
13
- force: { alias: 'f', type: 'boolean', description: 'Force rebuilding modules, even if we would skip it otherwise' },
14
- arch: { alias: 'a', type: 'string', description: "Override the target architecture to something other than your system's" },
15
- 'module-dir': { alias: 'm', type: 'string', description: 'The path to the node_modules directory to rebuild' },
16
- // TODO: should be type: array
17
- 'which-module': { alias: 'w', type: 'string', description: 'A specific module to build, or comma separated list of modules. Modules will only be rebuilt if they also match the types of dependencies being rebuilt (see --types).' },
18
- // TODO: should be type: array
19
- only: { alias: 'o', type: 'string', description: 'Only build specified module, or comma separated list of modules. All others are ignored.' },
20
- 'electron-prebuilt-dir': { alias: 'e', type: 'string', description: 'The path to the prebuilt electron module' },
21
- 'dist-url': { alias: 'd', type: 'string', description: 'Custom header tarball URL' },
22
- // TODO: should be type: array
23
- types: { alias: 't', type: 'string', description: 'The types of dependencies to rebuild. Comma separated list of "prod", "dev" and "optional". Default is "prod,optional"' },
24
- parallel: { alias: 'p', type: 'boolean', description: 'Rebuild in parallel, this is enabled by default on macOS and Linux' },
25
- sequential: { alias: 's', type: 'boolean', description: 'Rebuild modules sequentially, this is enabled by default on Windows' },
26
- debug: { alias: 'b', type: 'boolean', description: 'Build debug version of modules' },
27
- 'prebuild-tag-prefix': { type: 'string', description: 'GitHub tag prefix passed to prebuild-install. Default is "v"' },
28
- 'force-abi': { type: 'number', description: 'Override the ABI version for the version of Electron you are targeting. Only use when targeting Nightly releases.' },
29
- 'use-electron-clang': { type: 'boolean', description: 'Use the clang executable that Electron used when building its binary. This will guarantee compiler compatibility' },
9
+ const options = {
10
+ version: { short: 'v', type: 'string', description: 'The version of Electron to build against' },
11
+ force: {
12
+ short: 'f',
13
+ type: 'boolean',
14
+ description: 'Force rebuilding modules, even if we would skip it otherwise',
15
+ },
16
+ arch: {
17
+ short: 'a',
18
+ type: 'string',
19
+ description: "Override the target architecture to something other than your system's",
20
+ },
21
+ platform: {
22
+ type: 'string',
23
+ description: "Override the target platform to something other than your system's",
24
+ },
25
+ 'module-dir': {
26
+ short: 'm',
27
+ type: 'string',
28
+ description: 'The path to the node_modules directory to rebuild',
29
+ },
30
+ 'which-module': {
31
+ short: 'w',
32
+ type: 'string',
33
+ description: 'A specific module to build, or comma separated list of modules. Modules will only be rebuilt if they also match the types of dependencies being rebuilt (see --types).',
34
+ },
35
+ only: {
36
+ short: 'o',
37
+ type: 'string',
38
+ description: 'Only build specified module, or comma separated list of modules. All others are ignored.',
39
+ },
40
+ 'electron-prebuilt-dir': {
41
+ short: 'e',
42
+ type: 'string',
43
+ description: 'The path to the prebuilt electron module',
44
+ },
45
+ 'dist-url': { short: 'd', type: 'string', description: 'Custom header tarball URL' },
46
+ types: {
47
+ short: 't',
48
+ type: 'string',
49
+ description: 'The types of dependencies to rebuild. Comma separated list of "prod", "dev" and "optional". Default is "prod,optional"',
50
+ },
51
+ parallel: {
52
+ short: 'p',
53
+ type: 'boolean',
54
+ description: 'Rebuild in parallel, this is enabled by default on macOS and Linux',
55
+ },
56
+ sequential: {
57
+ short: 's',
58
+ type: 'boolean',
59
+ description: 'Rebuild modules sequentially, this is enabled by default on Windows',
60
+ },
61
+ debug: { short: 'b', type: 'boolean', description: 'Build debug version of modules' },
62
+ 'prebuild-tag-prefix': {
63
+ type: 'string',
64
+ description: 'GitHub tag prefix passed to prebuild-install. Default is "v"',
65
+ },
66
+ 'force-abi': {
67
+ type: 'string',
68
+ description: 'Override the ABI version for the version of Electron you are targeting. Only use when targeting Nightly releases.',
69
+ },
70
+ 'use-electron-clang': {
71
+ type: 'boolean',
72
+ description: 'Use the clang executable that Electron used when building its binary. This will guarantee compiler compatibility',
73
+ },
30
74
  'disable-pre-gyp-copy': { type: 'boolean', description: 'Disables the pre-gyp copy step' },
31
- 'build-from-source': { type: 'boolean', description: 'Skips prebuild download and rebuilds module from source.' },
32
- }).usage('Usage: $0 --version [version] --module-dir [path]')
33
- .help()
34
- .alias('help', 'h')
35
- .epilog('Copyright 2016-2021')
36
- .parseSync();
75
+ 'build-from-source': {
76
+ type: 'boolean',
77
+ description: 'Skips prebuild download and rebuilds module from source.',
78
+ },
79
+ help: { short: 'h', type: 'boolean', description: 'Show help' },
80
+ };
81
+ const { values: argv } = parseArgs({ options, allowPositionals: true });
82
+ if (argv.help) {
83
+ console.log('Usage: electron-rebuild --version [version] --module-dir [path]\n\nOptions:');
84
+ for (const [name, opt] of Object.entries(options)) {
85
+ const short = 'short' in opt ? `-${opt.short}, ` : ' ';
86
+ console.log(` ${short}--${name.padEnd(22)} ${opt.description}`);
87
+ }
88
+ process.exit(0);
89
+ }
37
90
  if (process.argv.length === 3 && process.argv[2] === '--version') {
38
91
  try {
39
92
  console.log('Electron Rebuild Version:', (await import(pathToFileURL(path.resolve(import.meta.dirname, '../../package.json')).toString(), { with: { type: 'json' } })).default.version);
40
93
  }
41
- catch (err) {
94
+ catch {
42
95
  console.log('Electron Rebuild Version:', (await import(pathToFileURL(path.resolve(import.meta.dirname, '../package.json')).toString(), { with: { type: 'json' } })).default.version);
43
96
  }
44
97
  process.exit(0);
45
98
  }
46
99
  const handler = (err) => {
47
- console.error(util.styleText('red', '\nAn unhandled error occurred inside electron-rebuild'));
48
- console.error(util.styleText('red', `${err.message}\n\n${err.stack}`));
100
+ console.error(styleText('red', '\nAn unhandled error occurred inside electron-rebuild'));
101
+ console.error(styleText('red', `${err.message}\n\n${err.stack}`));
49
102
  process.exit(-1);
50
103
  };
51
104
  process.on('uncaughtException', handler);
52
105
  process.on('unhandledRejection', handler);
53
- (async () => {
106
+ void (async () => {
54
107
  const projectRootPath = await getProjectRootPath(process.cwd());
55
- const electronModulePath = argv.e ? path.resolve(process.cwd(), argv.e) : await locateElectronModule(projectRootPath);
56
- let electronModuleVersion = argv.v;
108
+ const electronModulePath = argv['electron-prebuilt-dir']
109
+ ? path.resolve(process.cwd(), argv['electron-prebuilt-dir'])
110
+ : await locateElectronModule(projectRootPath);
111
+ let electronModuleVersion = argv.version;
57
112
  if (!electronModuleVersion) {
58
113
  try {
59
114
  if (!electronModulePath)
@@ -61,20 +116,22 @@ process.on('unhandledRejection', handler);
61
116
  const pkgJson = await import(pathToFileURL(path.join(electronModulePath, 'package.json')).toString(), { with: { type: 'json' } });
62
117
  electronModuleVersion = pkgJson.default.version;
63
118
  }
64
- catch (e) {
119
+ catch {
65
120
  throw new Error(`Unable to find electron's version number, either install it or specify an explicit version`);
66
121
  }
67
122
  }
68
- let rootDirectory = argv.m;
123
+ let rootDirectory = argv['module-dir'];
69
124
  if (!rootDirectory) {
70
125
  // NB: We assume here that we're going to rebuild the immediate parent's
71
126
  // node modules, which might not always be the case but it's at least a
72
127
  // good guess
73
128
  rootDirectory = path.resolve(import.meta.dirname, '../../..');
74
- if (!fs.existsSync(rootDirectory) || !fs.existsSync(path.resolve(rootDirectory, 'package.json'))) {
129
+ if (!fs.existsSync(rootDirectory) ||
130
+ !fs.existsSync(path.resolve(rootDirectory, 'package.json'))) {
75
131
  // Then we try the CWD
76
132
  rootDirectory = process.cwd();
77
- if (!fs.existsSync(rootDirectory) || !fs.existsSync(path.resolve(rootDirectory, 'package.json'))) {
133
+ if (!fs.existsSync(rootDirectory) ||
134
+ !fs.existsSync(path.resolve(rootDirectory, 'package.json'))) {
78
135
  throw new Error('Unable to find parent node_modules directory, specify it via --module-dir, E.g. "--module-dir ." for the current directory');
79
136
  }
80
137
  }
@@ -82,59 +139,46 @@ process.on('unhandledRejection', handler);
82
139
  else {
83
140
  rootDirectory = path.resolve(process.cwd(), rootDirectory);
84
141
  }
85
- if (argv.forceAbi && typeof argv.forceAbi !== 'number') {
142
+ const forceAbi = argv['force-abi'] ? Number(argv['force-abi']) : undefined;
143
+ if (argv['force-abi'] && Number.isNaN(forceAbi)) {
86
144
  throw new Error('force-abi must be a number');
87
145
  }
88
- let modulesDone = 0;
89
- let moduleTotal = 0;
90
- const rebuildSpinner = ora('Searching dependency tree').start();
91
- let lastModuleName;
92
- const redraw = (moduleName) => {
93
- if (moduleName)
94
- lastModuleName = moduleName;
95
- if (argv.p) {
96
- rebuildSpinner.text = `Building modules: ${modulesDone}/${moduleTotal}`;
97
- }
98
- else {
99
- rebuildSpinner.text = `Building module: ${lastModuleName}, Completed: ${modulesDone}`;
100
- }
101
- };
146
+ console.error('Searching dependency tree');
102
147
  const rebuilder = rebuild({
103
148
  buildPath: rootDirectory,
104
149
  electronVersion: electronModuleVersion,
105
- arch: argv.a || process.arch,
106
- extraModules: argv.w ? argv.w.split(',') : [],
107
- onlyModules: argv.o ? argv.o.split(',') : null,
108
- force: argv.f,
109
- headerURL: argv.d,
110
- types: argv.t ? argv.t.split(',') : ['prod', 'optional'],
111
- mode: argv.p ? 'parallel' : (argv.s ? 'sequential' : undefined),
150
+ arch: argv.arch || process.arch,
151
+ platform: argv.platform || process.platform,
152
+ extraModules: argv['which-module'] ? argv['which-module'].split(',') : [],
153
+ onlyModules: argv.only ? argv.only.split(',') : null,
154
+ force: argv.force,
155
+ headerURL: argv['dist-url'],
156
+ types: argv.types ? argv.types.split(',') : ['prod', 'optional'],
157
+ mode: argv.parallel ? 'parallel' : argv.sequential ? 'sequential' : undefined,
112
158
  debug: argv.debug,
113
- prebuildTagPrefix: argv.prebuildTagPrefix || 'v',
114
- forceABI: argv.forceAbi,
115
- useElectronClang: !!argv.useElectronClang,
116
- disablePreGypCopy: !!argv.disablePreGypCopy,
159
+ prebuildTagPrefix: argv['prebuild-tag-prefix'] || 'v',
160
+ forceABI: forceAbi,
161
+ useElectronClang: !!argv['use-electron-clang'],
162
+ disablePreGypCopy: !!argv['disable-pre-gyp-copy'],
117
163
  projectRootPath,
118
- buildFromSource: !!argv.buildFromSource,
164
+ buildFromSource: !!argv['build-from-source'],
119
165
  });
120
166
  const lifecycle = rebuilder.lifecycle;
121
- lifecycle.on('module-found', (moduleName) => {
122
- moduleTotal += 1;
123
- redraw(moduleName);
124
- });
125
- lifecycle.on('module-done', () => {
126
- modulesDone += 1;
127
- redraw();
167
+ lifecycle.on('modules-found', (moduleNames) => {
168
+ if (moduleNames.length > 0) {
169
+ console.error(`Building modules: ${moduleNames.join(', ')}`);
170
+ }
171
+ else {
172
+ console.error('No native modules found');
173
+ }
128
174
  });
129
175
  try {
130
176
  await rebuilder;
131
177
  }
132
178
  catch (err) {
133
- rebuildSpinner.text = 'Rebuild Failed';
134
- rebuildSpinner.fail();
179
+ console.error(styleText('red', '✖ Rebuild Failed'));
135
180
  throw err;
136
181
  }
137
- rebuildSpinner.text = 'Rebuild Complete';
138
- rebuildSpinner.succeed();
182
+ console.error(styleText('green', '✔ Rebuild Complete'));
139
183
  })();
140
184
  //# sourceMappingURL=cli.js.map
package/lib/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Detects the libc family on the current Linux host via `process.report`.
3
+ *
4
+ * Used to resolve the `{libc}` token in prebuilt binary path templates.
5
+ *
6
+ * @returns `'glibc'` | `'musl'` | `null` (non-Linux or unable to detect)
7
+ */
8
+ export declare function detectLibcFamily(): string | null;
@@ -0,0 +1,24 @@
1
+ let cached;
2
+ /**
3
+ * Detects the libc family on the current Linux host via `process.report`.
4
+ *
5
+ * Used to resolve the `{libc}` token in prebuilt binary path templates.
6
+ *
7
+ * @returns `'glibc'` | `'musl'` | `null` (non-Linux or unable to detect)
8
+ */
9
+ export function detectLibcFamily() {
10
+ if (cached !== undefined)
11
+ return cached;
12
+ if (process.platform !== 'linux')
13
+ return (cached = null);
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+ const report = process.report?.getReport();
16
+ if (report?.header?.glibcVersionRuntime)
17
+ return (cached = 'glibc');
18
+ if (Array.isArray(report?.sharedObjects) &&
19
+ report.sharedObjects.some((s) => s.includes('libc.musl') || s.includes('ld-musl'))) {
20
+ return (cached = 'musl');
21
+ }
22
+ return (cached = null);
23
+ }
24
+ //# sourceMappingURL=detect-libc.js.map