@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,192 @@
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 chai_1 = require("chai");
27
+ const fs = __importStar(require("fs-extra"));
28
+ const path = __importStar(require("path"));
29
+ const os = __importStar(require("os"));
30
+ const module_setup_1 = require("./helpers/module-setup");
31
+ const rebuild_1 = require("./helpers/rebuild");
32
+ const electron_version_1 = require("./helpers/electron-version");
33
+ const rebuild_2 = require("../src/rebuild");
34
+ const testElectronVersion = (0, electron_version_1.getExactElectronVersionSync)();
35
+ describe('rebuilder', () => {
36
+ const testModulePath = path.resolve(os.tmpdir(), 'electron-rebuild-test');
37
+ describe('core behavior', function () {
38
+ this.timeout(module_setup_1.TIMEOUT_IN_MILLISECONDS);
39
+ before(async () => {
40
+ await (0, module_setup_1.resetTestModule)(testModulePath);
41
+ process.env.ELECTRON_REBUILD_TESTS = 'true';
42
+ await (0, rebuild_2.rebuild)({
43
+ buildPath: testModulePath,
44
+ electronVersion: testElectronVersion,
45
+ arch: process.arch
46
+ });
47
+ });
48
+ it('should have rebuilt top level prod dependencies', async () => {
49
+ await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, 'ref-napi');
50
+ });
51
+ it('should have rebuilt top level prod dependencies that are using prebuild', async () => {
52
+ await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, 'farmhash');
53
+ });
54
+ it('should have rebuilt children of top level prod dependencies', async () => {
55
+ await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, 'leveldown');
56
+ });
57
+ it('should have rebuilt children of scoped top level prod dependencies', async () => {
58
+ await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, '@newrelic/native-metrics');
59
+ });
60
+ it('should have rebuilt top level optional dependencies', async () => {
61
+ await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, 'bcrypt');
62
+ });
63
+ it('should not have rebuilt top level devDependencies', async () => {
64
+ await (0, rebuild_1.expectNativeModuleToNotBeRebuilt)(testModulePath, 'ffi-napi');
65
+ });
66
+ it('should not download files in the module directory', async () => {
67
+ const modulePath = path.resolve(testModulePath, 'node_modules/ref-napi');
68
+ const fileNames = await fs.readdir(modulePath);
69
+ (0, chai_1.expect)(fileNames).to.not.contain(testElectronVersion);
70
+ });
71
+ after(async () => {
72
+ delete process.env.ELECTRON_REBUILD_TESTS;
73
+ await (0, module_setup_1.cleanupTestModule)(testModulePath);
74
+ });
75
+ });
76
+ describe('force rebuild', function () {
77
+ this.timeout(module_setup_1.TIMEOUT_IN_MILLISECONDS);
78
+ before(async () => await (0, module_setup_1.resetTestModule)(testModulePath));
79
+ after(async () => await (0, module_setup_1.cleanupTestModule)(testModulePath));
80
+ afterEach(module_setup_1.resetMSVSVersion);
81
+ const buildPath = testModulePath;
82
+ const electronVersion = testElectronVersion;
83
+ const arch = process.arch;
84
+ const extraModules = [];
85
+ it('should skip the rebuild step when disabled', async () => {
86
+ await (0, rebuild_2.rebuild)({ buildPath, electronVersion, arch });
87
+ (0, module_setup_1.resetMSVSVersion)();
88
+ const rebuilder = (0, rebuild_2.rebuild)({ buildPath, electronVersion, arch, extraModules, force: false });
89
+ let skipped = 0;
90
+ rebuilder.lifecycle.on('module-skip', () => {
91
+ skipped++;
92
+ });
93
+ await rebuilder;
94
+ (0, chai_1.expect)(skipped).to.equal(6);
95
+ });
96
+ it('should rebuild all modules again when disabled but the electron ABI changed', async () => {
97
+ await (0, rebuild_2.rebuild)({ buildPath, electronVersion, arch });
98
+ (0, module_setup_1.resetMSVSVersion)();
99
+ const rebuilder = (0, rebuild_2.rebuild)({ buildPath, electronVersion: '3.0.0', arch, extraModules, force: false });
100
+ let skipped = 0;
101
+ rebuilder.lifecycle.on('module-skip', () => {
102
+ skipped++;
103
+ });
104
+ await rebuilder;
105
+ (0, chai_1.expect)(skipped).to.equal(0);
106
+ });
107
+ it('should rebuild all modules again when enabled', async function () {
108
+ if (process.platform === 'darwin') {
109
+ this.timeout(5 * module_setup_1.MINUTES_IN_MILLISECONDS);
110
+ }
111
+ await (0, rebuild_2.rebuild)({ buildPath, electronVersion, arch });
112
+ (0, module_setup_1.resetMSVSVersion)();
113
+ const rebuilder = (0, rebuild_2.rebuild)({ buildPath, electronVersion, arch, extraModules, force: true });
114
+ let skipped = 0;
115
+ rebuilder.lifecycle.on('module-skip', () => {
116
+ skipped++;
117
+ });
118
+ await rebuilder;
119
+ (0, chai_1.expect)(skipped).to.equal(0);
120
+ });
121
+ });
122
+ describe('only rebuild', function () {
123
+ this.timeout(2 * module_setup_1.MINUTES_IN_MILLISECONDS);
124
+ beforeEach(async () => await (0, module_setup_1.resetTestModule)(testModulePath));
125
+ afterEach(async () => await (0, module_setup_1.cleanupTestModule)(testModulePath));
126
+ it('should rebuild only specified modules', async () => {
127
+ const nativeModuleBinary = path.join(testModulePath, 'node_modules', 'native-hello-world', 'build', 'Release', 'hello_world.node');
128
+ (0, chai_1.expect)(await fs.pathExists(nativeModuleBinary)).to.be.true;
129
+ await fs.remove(nativeModuleBinary);
130
+ (0, chai_1.expect)(await fs.pathExists(nativeModuleBinary)).to.be.false;
131
+ const rebuilder = (0, rebuild_2.rebuild)({
132
+ buildPath: testModulePath,
133
+ electronVersion: testElectronVersion,
134
+ arch: process.arch,
135
+ onlyModules: ['native-hello-world'],
136
+ force: true
137
+ });
138
+ let built = 0;
139
+ rebuilder.lifecycle.on('module-done', () => built++);
140
+ await rebuilder;
141
+ (0, chai_1.expect)(built).to.equal(1);
142
+ (0, chai_1.expect)(await fs.pathExists(nativeModuleBinary)).to.be.true;
143
+ });
144
+ it('should rebuild multiple specified modules via --only option', async () => {
145
+ const rebuilder = (0, rebuild_2.rebuild)({
146
+ buildPath: testModulePath,
147
+ electronVersion: testElectronVersion,
148
+ arch: process.arch,
149
+ onlyModules: ['ffi-napi', 'ref-napi'],
150
+ force: true
151
+ });
152
+ let built = 0;
153
+ rebuilder.lifecycle.on('module-done', () => built++);
154
+ await rebuilder;
155
+ (0, chai_1.expect)(built).to.equal(2);
156
+ });
157
+ });
158
+ describe('debug rebuild', function () {
159
+ this.timeout(10 * module_setup_1.MINUTES_IN_MILLISECONDS);
160
+ before(async () => await (0, module_setup_1.resetTestModule)(testModulePath));
161
+ after(async () => await (0, module_setup_1.cleanupTestModule)(testModulePath));
162
+ it('should have rebuilt ffi-napi module in Debug mode', async () => {
163
+ await (0, rebuild_2.rebuild)({
164
+ buildPath: testModulePath,
165
+ electronVersion: testElectronVersion,
166
+ arch: process.arch,
167
+ onlyModules: ['ffi-napi'],
168
+ force: true,
169
+ debug: true
170
+ });
171
+ await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, 'ffi-napi', { buildType: 'Debug' });
172
+ await (0, rebuild_1.expectNativeModuleToNotBeRebuilt)(testModulePath, 'ffi-napi');
173
+ });
174
+ });
175
+ describe('useElectronClang rebuild', function () {
176
+ this.timeout(10 * module_setup_1.MINUTES_IN_MILLISECONDS);
177
+ before(async () => await (0, module_setup_1.resetTestModule)(testModulePath));
178
+ after(async () => await (0, module_setup_1.cleanupTestModule)(testModulePath));
179
+ it('should have rebuilt ffi-napi module using clang mode', async () => {
180
+ await (0, rebuild_2.rebuild)({
181
+ buildPath: testModulePath,
182
+ electronVersion: testElectronVersion,
183
+ arch: process.arch,
184
+ onlyModules: ['ffi-napi'],
185
+ force: true,
186
+ useElectronClang: true
187
+ });
188
+ await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, 'ffi-napi');
189
+ });
190
+ });
191
+ });
192
+ //# sourceMappingURL=rebuild.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rebuild.js","sourceRoot":"","sources":["../../test/rebuild.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,65 @@
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 chai_1 = require("chai");
27
+ const fs = __importStar(require("fs-extra"));
28
+ const os = __importStar(require("os"));
29
+ const path = __importStar(require("path"));
30
+ const search_module_1 = require("../src/search-module");
31
+ let baseDir;
32
+ async function createTempDir() {
33
+ baseDir = await fs.mkdtemp(path.join(os.tmpdir(), 'electron-rebuild-test-'));
34
+ }
35
+ async function removeTempDir() {
36
+ await fs.remove(baseDir);
37
+ }
38
+ describe('search-module', () => {
39
+ describe('getProjectRootPath', () => {
40
+ describe('multi-level workspace', () => {
41
+ for (const lockFile of ['yarn.lock', 'package-lock.json']) {
42
+ describe(lockFile, () => {
43
+ before(async () => {
44
+ await createTempDir();
45
+ await fs.copy(path.resolve(__dirname, 'fixture', 'multi-level-workspace'), baseDir);
46
+ await fs.ensureFile(path.join(baseDir, lockFile));
47
+ });
48
+ it('finds the folder with the lockfile', async () => {
49
+ const packageDir = path.join(baseDir, 'packages', 'bar');
50
+ (0, chai_1.expect)(await (0, search_module_1.getProjectRootPath)(packageDir)).to.equal(baseDir);
51
+ });
52
+ after(removeTempDir);
53
+ });
54
+ }
55
+ });
56
+ describe('no workspace', () => {
57
+ before(createTempDir);
58
+ it('returns the input directory if a lockfile cannot be found', async () => {
59
+ (0, chai_1.expect)(await (0, search_module_1.getProjectRootPath)(baseDir)).to.equal(baseDir);
60
+ });
61
+ after(removeTempDir);
62
+ });
63
+ });
64
+ });
65
+ //# sourceMappingURL=search-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-module.js","sourceRoot":"","sources":["../../test/search-module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA8B;AAC9B,6CAA+B;AAC/B,uCAAyB;AACzB,2CAA6B;AAE7B,wDAA0D;AAE1D,IAAI,OAAe,CAAC;AAEpB,KAAK,UAAU,aAAa;IAC1B,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAED,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;YACrC,KAAK,MAAM,QAAQ,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,EAAE;gBACzD,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACtB,MAAM,CAAC,KAAK,IAAI,EAAE;wBAChB,MAAM,aAAa,EAAE,CAAC;wBACtB,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,EAAE,OAAO,CAAC,CAAC;wBACpF,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACpD,CAAC,CAAC,CAAC;oBAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;wBAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;wBACzD,IAAA,aAAM,EAAC,MAAM,IAAA,kCAAkB,EAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACjE,CAAC,CAAC,CAAC;oBAEH,KAAK,CAAC,aAAa,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC5B,MAAM,CAAC,aAAa,CAAC,CAAC;YAEtB,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;gBACzE,IAAA,aAAM,EAAC,MAAM,IAAA,kCAAkB,EAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,aAAa,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,4 +1,130 @@
1
1
  {
2
2
  "name": "@electron/rebuild",
3
- "version": "0.0.0"
3
+ "version": "3.2.10",
4
+ "description": "Electron supporting package to rebuild native node modules against the currently installed electron",
5
+ "main": "lib/src/main.js",
6
+ "typings": "lib/src/main.d.ts",
7
+ "scripts": {
8
+ "codecov": "nyc report --reporter=text-lcov > coverage.lcov && codecov",
9
+ "compile": "tsc",
10
+ "coverage": "nyc npm run spec",
11
+ "watch": "tsc -w",
12
+ "prepare": "npm run compile",
13
+ "mocha": "cross-env TS_NODE_FILES=true mocha",
14
+ "lint": "eslint --ext .ts .",
15
+ "spec": "npm run mocha -- test/*.ts",
16
+ "test": "npm run lint && npm run spec"
17
+ },
18
+ "bin": {
19
+ "electron-rebuild": "lib/src/cli.js"
20
+ },
21
+ "files": [
22
+ "lib"
23
+ ],
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/electron/rebuild"
27
+ },
28
+ "keywords": [
29
+ "electron"
30
+ ],
31
+ "author": "Paul Betts <paul@paulbetts.org>",
32
+ "license": "MIT",
33
+ "bugs": {
34
+ "url": "https://github.com/electron/rebuild/issues"
35
+ },
36
+ "homepage": "https://github.com/electron/rebuild",
37
+ "engines": {
38
+ "node": ">=12.13.0"
39
+ },
40
+ "dependencies": {
41
+ "@malept/cross-spawn-promise": "^2.0.0",
42
+ "chalk": "^4.0.0",
43
+ "debug": "^4.1.1",
44
+ "detect-libc": "^2.0.1",
45
+ "fs-extra": "^10.0.0",
46
+ "got": "^11.7.0",
47
+ "lzma-native": "^8.0.5",
48
+ "node-abi": "^3.0.0",
49
+ "node-api-version": "^0.1.4",
50
+ "node-gyp": "^9.0.0",
51
+ "ora": "^5.1.0",
52
+ "semver": "^7.3.5",
53
+ "tar": "^6.0.5",
54
+ "yargs": "^17.0.1"
55
+ },
56
+ "devDependencies": {
57
+ "@continuous-auth/semantic-release-npm": "^2.0.0",
58
+ "@istanbuljs/nyc-config-typescript": "^1.0.1",
59
+ "@types/chai": "^4.2.12",
60
+ "@types/chai-as-promised": "^7.1.3",
61
+ "@types/debug": "^4.1.5",
62
+ "@types/fs-extra": "^9.0.1",
63
+ "@types/lzma-native": "^4.0.0",
64
+ "@types/mocha": "^9.0.0",
65
+ "@types/node": "^17.0.8",
66
+ "@types/node-abi": "^3.0.0",
67
+ "@types/semver": "^7.3.9",
68
+ "@types/tar": "^6.1.0",
69
+ "@types/yargs": "^17.0.2",
70
+ "@typescript-eslint/eslint-plugin": "^4.0.1",
71
+ "@typescript-eslint/parser": "^4.0.1",
72
+ "chai": "^4.2.0",
73
+ "chai-as-promised": "^7.1.1",
74
+ "codecov": "^3.7.2",
75
+ "cross-env": "^7.0.2",
76
+ "electron": "^12.0.2",
77
+ "eslint": "^7.7.0",
78
+ "eslint-plugin-mocha": "^9.0.0",
79
+ "mocha": "^9.0.1",
80
+ "nyc": "^15.1.0",
81
+ "ts-node": "^10.0.0",
82
+ "typescript": "^4.0.2"
83
+ },
84
+ "eslintConfig": {
85
+ "parser": "@typescript-eslint/parser",
86
+ "parserOptions": {
87
+ "ecmaVersion": 2019,
88
+ "sourceType": "module"
89
+ },
90
+ "plugins": [
91
+ "mocha",
92
+ "@typescript-eslint"
93
+ ],
94
+ "env": {
95
+ "es6": true,
96
+ "mocha": true,
97
+ "node": true
98
+ },
99
+ "extends": [
100
+ "eslint:recommended",
101
+ "plugin:@typescript-eslint/recommended"
102
+ ],
103
+ "rules": {
104
+ "mocha/no-exclusive-tests": "error",
105
+ "no-unused-vars": "off",
106
+ "@typescript-eslint/no-unused-vars": [
107
+ "error",
108
+ {
109
+ "args": "after-used",
110
+ "argsIgnorePattern": "^_",
111
+ "ignoreRestSiblings": true,
112
+ "vars": "all"
113
+ }
114
+ ]
115
+ }
116
+ },
117
+ "eslintIgnore": [
118
+ "*.d.ts",
119
+ "node_modules"
120
+ ],
121
+ "mocha": {
122
+ "extensions": [
123
+ "ts"
124
+ ],
125
+ "require": "ts-node/register"
126
+ },
127
+ "nyc": {
128
+ "extends": "@istanbuljs/nyc-config-typescript"
129
+ }
4
130
  }