@electron/rebuild 0.0.0 → 3.2.10

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 (101) hide show
  1. package/README.md +158 -0
  2. package/lib/src/arch.d.ts +16 -0
  3. package/lib/src/arch.js +36 -0
  4. package/lib/src/arch.js.map +1 -0
  5. package/lib/src/cache.d.ts +13 -0
  6. package/lib/src/cache.js +153 -0
  7. package/lib/src/cache.js.map +1 -0
  8. package/lib/src/clang-fetcher.d.ts +4 -0
  9. package/lib/src/clang-fetcher.js +145 -0
  10. package/lib/src/clang-fetcher.js.map +1 -0
  11. package/lib/src/cli.d.ts +2 -0
  12. package/lib/src/cli.js +168 -0
  13. package/lib/src/cli.js.map +1 -0
  14. package/lib/src/constants.d.ts +1 -0
  15. package/lib/src/constants.js +30 -0
  16. package/lib/src/constants.js.map +1 -0
  17. package/lib/src/electron-locator.d.ts +1 -0
  18. package/lib/src/electron-locator.js +56 -0
  19. package/lib/src/electron-locator.js.map +1 -0
  20. package/lib/src/fetcher.d.ts +2 -0
  21. package/lib/src/fetcher.js +36 -0
  22. package/lib/src/fetcher.js.map +1 -0
  23. package/lib/src/main.d.ts +3 -0
  24. package/lib/src/main.js +10 -0
  25. package/lib/src/main.js.map +1 -0
  26. package/lib/src/module-rebuilder.d.ts +27 -0
  27. package/lib/src/module-rebuilder.js +132 -0
  28. package/lib/src/module-rebuilder.js.map +1 -0
  29. package/lib/src/module-type/index.d.ts +17 -0
  30. package/lib/src/module-type/index.js +56 -0
  31. package/lib/src/module-type/index.js.map +1 -0
  32. package/lib/src/module-type/node-gyp.d.ts +7 -0
  33. package/lib/src/module-type/node-gyp.js +149 -0
  34. package/lib/src/module-type/node-gyp.js.map +1 -0
  35. package/lib/src/module-type/prebuild-install.d.ts +12 -0
  36. package/lib/src/module-type/prebuild-install.js +81 -0
  37. package/lib/src/module-type/prebuild-install.js.map +1 -0
  38. package/lib/src/module-type/prebuildify.d.ts +11 -0
  39. package/lib/src/module-type/prebuildify.js +68 -0
  40. package/lib/src/module-type/prebuildify.js.map +1 -0
  41. package/lib/src/module-walker.d.ts +17 -0
  42. package/lib/src/module-walker.js +112 -0
  43. package/lib/src/module-walker.js.map +1 -0
  44. package/lib/src/node-api.d.ts +8 -0
  45. package/lib/src/node-api.js +31 -0
  46. package/lib/src/node-api.js.map +1 -0
  47. package/lib/src/prebuild-shim.d.ts +0 -0
  48. package/lib/src/prebuild-shim.js +6 -0
  49. package/lib/src/prebuild-shim.js.map +1 -0
  50. package/lib/src/read-package-json.d.ts +1 -0
  51. package/lib/src/read-package-json.js +44 -0
  52. package/lib/src/read-package-json.js.map +1 -0
  53. package/lib/src/rebuild.d.ts +56 -0
  54. package/lib/src/rebuild.js +166 -0
  55. package/lib/src/rebuild.js.map +1 -0
  56. package/lib/src/search-module.d.ts +23 -0
  57. package/lib/src/search-module.js +97 -0
  58. package/lib/src/search-module.js.map +1 -0
  59. package/lib/src/sysroot-fetcher.d.ts +1 -0
  60. package/lib/src/sysroot-fetcher.js +74 -0
  61. package/lib/src/sysroot-fetcher.js.map +1 -0
  62. package/lib/src/types.d.ts +26 -0
  63. package/lib/src/types.js +9 -0
  64. package/lib/src/types.js.map +1 -0
  65. package/lib/test/arch.d.ts +1 -0
  66. package/lib/test/arch.js +37 -0
  67. package/lib/test/arch.js.map +1 -0
  68. package/lib/test/electron-locator.d.ts +1 -0
  69. package/lib/test/electron-locator.js +70 -0
  70. package/lib/test/electron-locator.js.map +1 -0
  71. package/lib/test/helpers/electron-version.d.ts +1 -0
  72. package/lib/test/helpers/electron-version.js +43 -0
  73. package/lib/test/helpers/electron-version.js.map +1 -0
  74. package/lib/test/helpers/module-setup.d.ts +5 -0
  75. package/lib/test/helpers/module-setup.js +35 -0
  76. package/lib/test/helpers/module-setup.js.map +1 -0
  77. package/lib/test/helpers/rebuild.d.ts +7 -0
  78. package/lib/test/helpers/rebuild.js +42 -0
  79. package/lib/test/helpers/rebuild.js.map +1 -0
  80. package/lib/test/module-type-node-gyp.d.ts +1 -0
  81. package/lib/test/module-type-node-gyp.js +57 -0
  82. package/lib/test/module-type-node-gyp.js.map +1 -0
  83. package/lib/test/module-type-prebuild-install.d.ts +1 -0
  84. package/lib/test/module-type-prebuild-install.js +82 -0
  85. package/lib/test/module-type-prebuild-install.js.map +1 -0
  86. package/lib/test/module-type-prebuildify.d.ts +1 -0
  87. package/lib/test/module-type-prebuildify.js +102 -0
  88. package/lib/test/module-type-prebuildify.js.map +1 -0
  89. package/lib/test/read-package-json.d.ts +1 -0
  90. package/lib/test/read-package-json.js +35 -0
  91. package/lib/test/read-package-json.js.map +1 -0
  92. package/lib/test/rebuild-yarnworkspace.d.ts +1 -0
  93. package/lib/test/rebuild-yarnworkspace.js +69 -0
  94. package/lib/test/rebuild-yarnworkspace.js.map +1 -0
  95. package/lib/test/rebuild.d.ts +1 -0
  96. package/lib/test/rebuild.js +192 -0
  97. package/lib/test/rebuild.js.map +1 -0
  98. package/lib/test/search-module.d.ts +1 -0
  99. package/lib/test/search-module.js +65 -0
  100. package/lib/test/search-module.js.map +1 -0
  101. package/package.json +127 -1
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.getExactElectronVersionSync = void 0;
27
+ const fs = __importStar(require("fs-extra"));
28
+ const path = __importStar(require("path"));
29
+ function electronVersionPath() {
30
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
31
+ const electronPath = require('electron');
32
+ if (process.platform === 'darwin') {
33
+ return path.resolve(path.dirname(electronPath), '..', '..', '..', 'version');
34
+ }
35
+ else {
36
+ return path.join(path.dirname(electronPath), 'version');
37
+ }
38
+ }
39
+ function getExactElectronVersionSync() {
40
+ return fs.readFileSync(electronVersionPath()).toString().trim();
41
+ }
42
+ exports.getExactElectronVersionSync = getExactElectronVersionSync;
43
+ //# sourceMappingURL=electron-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electron-version.js","sourceRoot":"","sources":["../../../test/helpers/electron-version.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAE7B,SAAS,mBAAmB;IAC1B,8DAA8D;IAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;KAC9E;SAAM;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;KACzD;AACH,CAAC;AAED,SAAgB,2BAA2B;IACzC,OAAO,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;AAClE,CAAC;AAFD,kEAEC"}
@@ -0,0 +1,5 @@
1
+ export declare const MINUTES_IN_MILLISECONDS: number;
2
+ export declare const TIMEOUT_IN_MILLISECONDS: number;
3
+ export declare function resetMSVSVersion(): void;
4
+ export declare function resetTestModule(testModulePath: string, installModules?: boolean): Promise<void>;
5
+ export declare function cleanupTestModule(testModulePath: string): Promise<void>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.cleanupTestModule = exports.resetTestModule = exports.resetMSVSVersion = exports.TIMEOUT_IN_MILLISECONDS = exports.MINUTES_IN_MILLISECONDS = void 0;
7
+ const fs_extra_1 = __importDefault(require("fs-extra"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const cross_spawn_promise_1 = require("@malept/cross-spawn-promise");
10
+ const originalGypMSVSVersion = process.env.GYP_MSVS_VERSION;
11
+ const TIMEOUT_IN_MINUTES = process.platform === 'win32' ? 5 : 2;
12
+ exports.MINUTES_IN_MILLISECONDS = 60 * 1000;
13
+ exports.TIMEOUT_IN_MILLISECONDS = TIMEOUT_IN_MINUTES * exports.MINUTES_IN_MILLISECONDS;
14
+ function resetMSVSVersion() {
15
+ if (originalGypMSVSVersion) {
16
+ process.env.GYP_MSVS_VERSION = originalGypMSVSVersion;
17
+ }
18
+ }
19
+ exports.resetMSVSVersion = resetMSVSVersion;
20
+ async function resetTestModule(testModulePath, installModules = true) {
21
+ await fs_extra_1.default.remove(testModulePath);
22
+ await fs_extra_1.default.mkdir(testModulePath, { recursive: true });
23
+ await fs_extra_1.default.copyFile(path_1.default.resolve(__dirname, '../../test/fixture/native-app1/package.json'), path_1.default.resolve(testModulePath, 'package.json'));
24
+ if (installModules) {
25
+ await (0, cross_spawn_promise_1.spawn)('npm', ['install'], { cwd: testModulePath });
26
+ }
27
+ resetMSVSVersion();
28
+ }
29
+ exports.resetTestModule = resetTestModule;
30
+ async function cleanupTestModule(testModulePath) {
31
+ await fs_extra_1.default.remove(testModulePath);
32
+ resetMSVSVersion();
33
+ }
34
+ exports.cleanupTestModule = cleanupTestModule;
35
+ //# sourceMappingURL=module-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-setup.js","sourceRoot":"","sources":["../../../test/helpers/module-setup.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA0B;AAC1B,gDAAwB;AACxB,qEAAoD;AAEpD,MAAM,sBAAsB,GAAuB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAChF,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnD,QAAA,uBAAuB,GAAG,EAAE,GAAG,IAAI,CAAC;AACpC,QAAA,uBAAuB,GAAG,kBAAkB,GAAG,+BAAuB,CAAC;AAEpF,SAAgB,gBAAgB;IAC9B,IAAI,sBAAsB,EAAE;QAC1B,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,sBAAsB,CAAC;KACvD;AACH,CAAC;AAJD,4CAIC;AAEM,KAAK,UAAU,eAAe,CAAC,cAAsB,EAAE,cAAc,GAAG,IAAI;IACjF,MAAM,kBAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAChC,MAAM,kBAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,kBAAE,CAAC,QAAQ,CACf,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,6CAA6C,CAAC,EACtE,cAAI,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAC7C,CAAC;IACF,IAAI,cAAc,EAAE;QAClB,MAAM,IAAA,2BAAK,EAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC;KAC1D;IACD,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAXD,0CAWC;AAEM,KAAK,UAAU,iBAAiB,CAAC,cAAsB;IAC5D,MAAM,kBAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAChC,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAHD,8CAGC"}
@@ -0,0 +1,7 @@
1
+ declare type ExpectRebuildOptions = {
2
+ buildType?: string;
3
+ metaShouldExist?: boolean;
4
+ };
5
+ export declare function expectNativeModuleToBeRebuilt(basePath: string, modulePath: string, options?: ExpectRebuildOptions): Promise<void>;
6
+ export declare function expectNativeModuleToNotBeRebuilt(basePath: string, modulePath: string, options?: ExpectRebuildOptions): Promise<void>;
7
+ export {};
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.expectNativeModuleToNotBeRebuilt = exports.expectNativeModuleToBeRebuilt = void 0;
27
+ const chai_1 = require("chai");
28
+ const fs = __importStar(require("fs-extra"));
29
+ const path = __importStar(require("path"));
30
+ async function expectNativeModuleToBeRebuilt(basePath, modulePath, options = {}) {
31
+ const metaShouldExist = Object.prototype.hasOwnProperty.call(options, 'metaShouldExist') ? options.metaShouldExist : true;
32
+ const message = `${path.basename(modulePath)} build meta should ${metaShouldExist ? '' : 'not '}exist`;
33
+ const buildType = options.buildType || 'Release';
34
+ const metaPath = path.resolve(basePath, 'node_modules', modulePath, 'build', buildType, '.forge-meta');
35
+ (0, chai_1.expect)(await fs.pathExists(metaPath), message).to.equal(metaShouldExist);
36
+ }
37
+ exports.expectNativeModuleToBeRebuilt = expectNativeModuleToBeRebuilt;
38
+ async function expectNativeModuleToNotBeRebuilt(basePath, modulePath, options = {}) {
39
+ await expectNativeModuleToBeRebuilt(basePath, modulePath, { ...options, metaShouldExist: false });
40
+ }
41
+ exports.expectNativeModuleToNotBeRebuilt = expectNativeModuleToNotBeRebuilt;
42
+ //# sourceMappingURL=rebuild.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rebuild.js","sourceRoot":"","sources":["../../../test/helpers/rebuild.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA8B;AAC9B,6CAA+B;AAC/B,2CAA6B;AAOtB,KAAK,UAAU,6BAA6B,CACjD,QAAgB,EAChB,UAAkB,EAClB,UAAgC,EAAE;IAElC,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1H,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,sBAAsB,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC;IACvG,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IACvG,IAAA,aAAM,EAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC3E,CAAC;AAVD,sEAUC;AAEM,KAAK,UAAU,gCAAgC,CACpD,QAAgB,EAChB,UAAkB,EAClB,UAAgC,EAAE;IAElC,MAAM,6BAA6B,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;AACpG,CAAC;AAND,4EAMC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const events_1 = require("events");
7
+ const chai_1 = require("chai");
8
+ const os_1 = __importDefault(require("os"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const module_setup_1 = require("./helpers/module-setup");
11
+ const node_gyp_1 = require("../src/module-type/node-gyp");
12
+ const rebuild_1 = require("../src/rebuild");
13
+ describe('node-gyp', () => {
14
+ describe('buildArgs', () => {
15
+ const testModulePath = path_1.default.resolve(os_1.default.tmpdir(), 'electron-rebuild-test');
16
+ before(async () => await (0, module_setup_1.resetTestModule)(testModulePath, false));
17
+ after(async () => await (0, module_setup_1.cleanupTestModule)(testModulePath));
18
+ function nodeGypArgsForElectronVersion(electronVersion) {
19
+ const rebuilder = new rebuild_1.Rebuilder({
20
+ buildPath: testModulePath,
21
+ electronVersion: electronVersion,
22
+ lifecycle: new events_1.EventEmitter()
23
+ });
24
+ const nodeGyp = new node_gyp_1.NodeGyp(rebuilder, testModulePath);
25
+ return nodeGyp.buildArgs([]);
26
+ }
27
+ context('sufficiently old Electron versions which lack a bundled config.gypi', () => {
28
+ it('adds --force-process-config for < 14', async () => {
29
+ const args = await nodeGypArgsForElectronVersion('12.0.0');
30
+ (0, chai_1.expect)(args).to.include('--force-process-config');
31
+ });
32
+ it('adds --force-process-config for between 14.0.0 and < 14.2.0', async () => {
33
+ const args = await nodeGypArgsForElectronVersion('14.1.0');
34
+ (0, chai_1.expect)(args).to.include('--force-process-config');
35
+ });
36
+ it('adds --force-process-config for versions between 15.0.0 and < 15.3.0', async () => {
37
+ const args = await nodeGypArgsForElectronVersion('15.2.0');
38
+ (0, chai_1.expect)(args).to.include('--force-process-config');
39
+ });
40
+ });
41
+ context('for sufficiently new Electron versions', () => {
42
+ it('does not add --force-process-config for ^14.2.0', async () => {
43
+ const args = await nodeGypArgsForElectronVersion('14.2.0');
44
+ (0, chai_1.expect)(args).to.not.include('--force-process-config');
45
+ });
46
+ it('does not add --force-process-config for ^15.3.0', async () => {
47
+ const args = await nodeGypArgsForElectronVersion('15.3.0');
48
+ (0, chai_1.expect)(args).to.not.include('--force-process-config');
49
+ });
50
+ it('does not add --force-process-config for >= 16.0.0', async () => {
51
+ const args = await nodeGypArgsForElectronVersion('16.0.0-alpha.1');
52
+ (0, chai_1.expect)(args).to.not.include('--force-process-config');
53
+ });
54
+ });
55
+ });
56
+ });
57
+ //# sourceMappingURL=module-type-node-gyp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-type-node-gyp.js","sourceRoot":"","sources":["../../test/module-type-node-gyp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const chai_1 = __importStar(require("chai"));
30
+ const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
31
+ const events_1 = require("events");
32
+ const os_1 = __importDefault(require("os"));
33
+ const path_1 = __importDefault(require("path"));
34
+ const module_setup_1 = require("./helpers/module-setup");
35
+ const prebuild_install_1 = require("../src/module-type/prebuild-install");
36
+ const rebuild_1 = require("../src/rebuild");
37
+ chai_1.default.use(chai_as_promised_1.default);
38
+ const testModulePath = path_1.default.resolve(os_1.default.tmpdir(), 'electron-rebuild-test');
39
+ describe('prebuild-install', () => {
40
+ const modulePath = path_1.default.join(testModulePath, 'node_modules', 'farmhash');
41
+ const rebuilderArgs = {
42
+ buildPath: testModulePath,
43
+ electronVersion: '8.0.0',
44
+ arch: process.arch,
45
+ lifecycle: new events_1.EventEmitter()
46
+ };
47
+ before(() => {
48
+ process.env.ELECTRON_REBUILD_TESTS = 'true';
49
+ });
50
+ describe('Node-API support', function () {
51
+ this.timeout(module_setup_1.TIMEOUT_IN_MILLISECONDS);
52
+ before(async () => await (0, module_setup_1.resetTestModule)(testModulePath));
53
+ after(async () => await (0, module_setup_1.cleanupTestModule)(testModulePath));
54
+ it('should find correct napi version and select napi args', async () => {
55
+ const rebuilder = new rebuild_1.Rebuilder(rebuilderArgs);
56
+ const prebuildInstall = new prebuild_install_1.PrebuildInstall(rebuilder, modulePath);
57
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
58
+ (0, chai_1.expect)(prebuildInstall.nodeAPI.getNapiVersion((await prebuildInstall.getSupportedNapiVersions()))).to.equal(3);
59
+ (0, chai_1.expect)(await prebuildInstall.getPrebuildInstallRuntimeArgs()).to.deep.equal([
60
+ '--runtime=napi',
61
+ `--target=3`,
62
+ ]);
63
+ });
64
+ it('should not fail running prebuild-install', async () => {
65
+ const rebuilder = new rebuild_1.Rebuilder(rebuilderArgs);
66
+ const prebuildInstall = new prebuild_install_1.PrebuildInstall(rebuilder, modulePath);
67
+ (0, chai_1.expect)(await prebuildInstall.findPrebuiltModule()).to.equal(true);
68
+ });
69
+ it('should throw error with unsupported Electron version', async () => {
70
+ const rebuilder = new rebuild_1.Rebuilder({
71
+ ...rebuilderArgs,
72
+ electronVersion: '2.0.0',
73
+ });
74
+ const prebuildInstall = new prebuild_install_1.PrebuildInstall(rebuilder, modulePath);
75
+ (0, chai_1.expect)(prebuildInstall.findPrebuiltModule()).to.eventually.be.rejectedWith("Native module 'farmhash' requires Node-API but Electron v2.0.0 does not support Node-API");
76
+ });
77
+ });
78
+ after(() => {
79
+ delete process.env.ELECTRON_REBUILD_TESTS;
80
+ });
81
+ });
82
+ //# sourceMappingURL=module-type-prebuild-install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-type-prebuild-install.js","sourceRoot":"","sources":["../../test/module-type-prebuild-install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const events_1 = require("events");
7
+ const chai_1 = require("chai");
8
+ const path_1 = __importDefault(require("path"));
9
+ const prebuildify_1 = require("../src/module-type/prebuildify");
10
+ const rebuild_1 = require("../src/rebuild");
11
+ describe('determineNativePrebuildArch', () => {
12
+ it('returns arm if passed in armv7l', () => {
13
+ (0, chai_1.expect)((0, prebuildify_1.determineNativePrebuildArch)('armv7l')).to.equal('arm');
14
+ });
15
+ it('returns the input arch if the input is not armv7l', () => {
16
+ (0, chai_1.expect)((0, prebuildify_1.determineNativePrebuildArch)('x64')).to.equal('x64');
17
+ });
18
+ });
19
+ describe('determineNativePrebuildExtension', () => {
20
+ it('returns armv8 suffix for an arm64 arch', () => {
21
+ (0, chai_1.expect)((0, prebuildify_1.determineNativePrebuildExtension)('arm64')).to.equal('armv8.node');
22
+ });
23
+ it('returns armv7 suffix for an armv7l arch', () => {
24
+ (0, chai_1.expect)((0, prebuildify_1.determineNativePrebuildExtension)('armv7l')).to.equal('armv7.node');
25
+ });
26
+ it('returns no suffix for non-ARM arches', () => {
27
+ (0, chai_1.expect)((0, prebuildify_1.determineNativePrebuildExtension)('x64')).to.equal('node');
28
+ });
29
+ });
30
+ describe('prebuildify', () => {
31
+ const fixtureBaseDir = path_1.default.join(__dirname, 'fixture', 'prebuildify');
32
+ const rebuilderArgs = {
33
+ buildPath: 'nonexistent-path',
34
+ electronVersion: '13.0.0',
35
+ arch: 'x64',
36
+ lifecycle: new events_1.EventEmitter()
37
+ };
38
+ const createRebuilder = (args = {}) => {
39
+ const rebuilder = new rebuild_1.Rebuilder({ ...rebuilderArgs, ...args });
40
+ rebuilder.platform = 'linux';
41
+ return rebuilder;
42
+ };
43
+ describe('usesTool', () => {
44
+ it('succeeds if prebuildify exists in devDependencies', async () => {
45
+ const rebuilder = createRebuilder();
46
+ const prebuildify = new prebuildify_1.Prebuildify(rebuilder, path_1.default.join(fixtureBaseDir, 'has-prebuildify-devdep'));
47
+ (0, chai_1.expect)(await prebuildify.usesTool()).to.equal(true);
48
+ });
49
+ it('fails if prebuildify does not exist in devDependencies', async () => {
50
+ const rebuilder = createRebuilder();
51
+ const prebuildify = new prebuildify_1.Prebuildify(rebuilder, path_1.default.join(fixtureBaseDir, 'no-prebuildify-devdep'));
52
+ (0, chai_1.expect)(await prebuildify.usesTool()).to.equal(false);
53
+ });
54
+ });
55
+ describe('findPrebuiltModule', () => {
56
+ describe('with no prebuilds directory', () => {
57
+ it('should not find a prebuilt native module', async () => {
58
+ const noPrebuildsDir = __dirname;
59
+ const rebuilder = createRebuilder();
60
+ const prebuildify = new prebuildify_1.Prebuildify(rebuilder, noPrebuildsDir);
61
+ (0, chai_1.expect)(await prebuildify.findPrebuiltModule()).to.equal(false);
62
+ });
63
+ });
64
+ describe('with prebuilt module for the given ABI', async () => {
65
+ it('should find a prebuilt native module for x64/electron', async () => {
66
+ const fixtureDir = path_1.default.join(fixtureBaseDir, 'abi');
67
+ const rebuilder = createRebuilder();
68
+ const prebuildify = new prebuildify_1.Prebuildify(rebuilder, fixtureDir);
69
+ (0, chai_1.expect)(await prebuildify.findPrebuiltModule()).to.equal(true);
70
+ });
71
+ });
72
+ describe('with prebuilt Node-API module', async () => {
73
+ it('should find a prebuilt native module for x64/node', async () => {
74
+ const fixtureDir = path_1.default.join(fixtureBaseDir, 'napi');
75
+ const rebuilder = createRebuilder();
76
+ const prebuildify = new prebuildify_1.Prebuildify(rebuilder, fixtureDir);
77
+ (0, chai_1.expect)(await prebuildify.findPrebuiltModule()).to.equal(true);
78
+ });
79
+ it('should find a prebuilt native module for armv7l/node', async () => {
80
+ const fixtureDir = path_1.default.join(fixtureBaseDir, 'napi');
81
+ const rebuilder = createRebuilder({ arch: 'armv7l' });
82
+ const prebuildify = new prebuildify_1.Prebuildify(rebuilder, fixtureDir);
83
+ (0, chai_1.expect)(await prebuildify.findPrebuiltModule()).to.equal(true);
84
+ });
85
+ it('should find a prebuilt native module for arm64/electron', async () => {
86
+ const fixtureDir = path_1.default.join(fixtureBaseDir, 'napi');
87
+ const rebuilder = createRebuilder({ arch: 'arm64' });
88
+ const prebuildify = new prebuildify_1.Prebuildify(rebuilder, fixtureDir);
89
+ (0, chai_1.expect)(await prebuildify.findPrebuiltModule()).to.equal(true);
90
+ });
91
+ });
92
+ describe('when it cannot find a prebuilt module', async () => {
93
+ it('should not find a prebuilt native module', async () => {
94
+ const fixtureDir = path_1.default.join(fixtureBaseDir, 'not-found');
95
+ const rebuilder = createRebuilder();
96
+ const prebuildify = new prebuildify_1.Prebuildify(rebuilder, fixtureDir);
97
+ (0, chai_1.expect)(await prebuildify.findPrebuiltModule()).to.equal(false);
98
+ });
99
+ });
100
+ });
101
+ });
102
+ //# sourceMappingURL=module-type-prebuildify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-type-prebuildify.js","sourceRoot":"","sources":["../../test/module-type-prebuildify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const path = __importStar(require("path"));
27
+ const chai_1 = require("chai");
28
+ const read_package_json_1 = require("../src/read-package-json");
29
+ describe('read-package-json', () => {
30
+ it('should find a package.json file from the given directory', async () => {
31
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
32
+ (0, chai_1.expect)(await (0, read_package_json_1.readPackageJson)(path.resolve(__dirname, '..'))).to.deep.equal(require('../package.json'));
33
+ });
34
+ });
35
+ //# sourceMappingURL=read-package-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-package-json.js","sourceRoot":"","sources":["../../test/read-package-json.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,+BAA8B;AAE9B,gEAA2D;AAE3D,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,8DAA8D;QAC9D,IAAA,aAAM,EAAC,MAAM,IAAA,mCAAe,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACzG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const fs = __importStar(require("fs-extra"));
27
+ const path = __importStar(require("path"));
28
+ const os = __importStar(require("os"));
29
+ const cross_spawn_promise_1 = require("@malept/cross-spawn-promise");
30
+ const rebuild_1 = require("./helpers/rebuild");
31
+ const electron_version_1 = require("./helpers/electron-version");
32
+ const search_module_1 = require("../src/search-module");
33
+ const rebuild_2 = require("../src/rebuild");
34
+ const testElectronVersion = (0, electron_version_1.getExactElectronVersionSync)();
35
+ describe('rebuild for yarn workspace', function () {
36
+ this.timeout(2 * 60 * 1000);
37
+ const testModulePath = path.resolve(os.tmpdir(), 'electron-rebuild-test');
38
+ const msvs_version = process.env.GYP_MSVS_VERSION;
39
+ describe('core behavior', () => {
40
+ before(async () => {
41
+ await fs.remove(testModulePath);
42
+ await fs.copy(path.resolve(__dirname, 'fixture/workspace-test'), testModulePath);
43
+ await (0, cross_spawn_promise_1.spawn)('yarn', [], { cwd: testModulePath });
44
+ if (msvs_version) {
45
+ process.env.GYP_MSVS_VERSION = msvs_version;
46
+ }
47
+ const projectRootPath = await (0, search_module_1.getProjectRootPath)(path.join(testModulePath, 'workspace-test', 'child-workspace'));
48
+ await (0, rebuild_2.rebuild)({
49
+ buildPath: path.resolve(testModulePath, 'child-workspace'),
50
+ electronVersion: testElectronVersion,
51
+ arch: process.arch,
52
+ projectRootPath
53
+ });
54
+ });
55
+ it('should have rebuilt top level prod dependencies', async () => {
56
+ await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, 'snappy');
57
+ });
58
+ it('should not have rebuilt top level devDependencies', async () => {
59
+ await (0, rebuild_1.expectNativeModuleToNotBeRebuilt)(testModulePath, 'sleep');
60
+ });
61
+ after(async () => {
62
+ await fs.remove(testModulePath);
63
+ if (msvs_version) {
64
+ process.env.GYP_MSVS_VERSION = msvs_version;
65
+ }
66
+ });
67
+ });
68
+ });
69
+ //# sourceMappingURL=rebuild-yarnworkspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rebuild-yarnworkspace.js","sourceRoot":"","sources":["../../test/rebuild-yarnworkspace.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAC7B,uCAAyB;AACzB,qEAAoD;AAEpD,+CAAoG;AACpG,iEAAyE;AACzE,wDAA0D;AAC1D,4CAAyC;AAEzC,MAAM,mBAAmB,GAAG,IAAA,8CAA2B,GAAE,CAAC;AAE1D,QAAQ,CAAC,4BAA4B,EAAE;IACrC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAuB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAEtE,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAChC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,wBAAwB,CAAC,EAAE,cAAc,CAAC,CAAC;YAEjF,MAAM,IAAA,2BAAK,EAAC,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC;YACjD,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,YAAY,CAAC;aAC7C;YAED,MAAM,eAAe,GAAG,MAAM,IAAA,kCAAkB,EAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,CAAC;YAEjH,MAAM,IAAA,iBAAO,EAAC;gBACZ,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,iBAAiB,CAAC;gBAC1D,eAAe,EAAE,mBAAmB;gBACpC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,eAAe;aAChB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,IAAA,uCAA6B,EAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,IAAA,0CAAgC,EAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAChC,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,YAAY,CAAC;aAC7C;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};