@theia/application-manager 1.67.0-next.13 → 1.67.0-next.56
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.
- package/package.json +5 -5
- package/lib/application-package-manager.d.ts +0 -46
- package/lib/application-package-manager.d.ts.map +0 -1
- package/lib/application-package-manager.js +0 -226
- package/lib/application-package-manager.js.map +0 -1
- package/lib/application-process.d.ts +0 -21
- package/lib/application-process.d.ts.map +0 -1
- package/lib/application-process.js +0 -93
- package/lib/application-process.js.map +0 -1
- package/lib/expose-loader.d.ts +0 -9
- package/lib/expose-loader.d.ts.map +0 -1
- package/lib/expose-loader.js +0 -70
- package/lib/expose-loader.js.map +0 -1
- package/lib/generator/abstract-generator.d.ts +0 -18
- package/lib/generator/abstract-generator.d.ts.map +0 -1
- package/lib/generator/abstract-generator.js +0 -58
- package/lib/generator/abstract-generator.js.map +0 -1
- package/lib/generator/backend-generator.d.ts +0 -8
- package/lib/generator/backend-generator.d.ts.map +0 -1
- package/lib/generator/backend-generator.js +0 -203
- package/lib/generator/backend-generator.js.map +0 -1
- package/lib/generator/frontend-generator.d.ts +0 -14
- package/lib/generator/frontend-generator.d.ts.map +0 -1
- package/lib/generator/frontend-generator.js +0 -211
- package/lib/generator/frontend-generator.js.map +0 -1
- package/lib/generator/index.d.ts +0 -4
- package/lib/generator/index.d.ts.map +0 -1
- package/lib/generator/index.js +0 -22
- package/lib/generator/index.js.map +0 -1
- package/lib/generator/webpack-generator.d.ts +0 -12
- package/lib/generator/webpack-generator.d.ts.map +0 -1
- package/lib/generator/webpack-generator.js +0 -523
- package/lib/generator/webpack-generator.js.map +0 -1
- package/lib/index.d.ts +0 -4
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -22
- package/lib/index.js.map +0 -1
- package/lib/package.spec.d.ts +0 -1
- package/lib/package.spec.d.ts.map +0 -1
- package/lib/package.spec.js +0 -26
- package/lib/package.spec.js.map +0 -1
- package/lib/rebuild.d.ts +0 -25
- package/lib/rebuild.d.ts.map +0 -1
- package/lib/rebuild.js +0 -314
- package/lib/rebuild.js.map +0 -1
package/lib/rebuild.js
DELETED
|
@@ -1,314 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// *****************************************************************************
|
|
3
|
-
// Copyright (C) 2017 TypeFox and others.
|
|
4
|
-
//
|
|
5
|
-
// This program and the accompanying materials are made available under the
|
|
6
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
-
//
|
|
9
|
-
// This Source Code may also be made available under the following Secondary
|
|
10
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
-
// with the GNU Classpath Exception which is available at
|
|
13
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
-
//
|
|
15
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
-
// *****************************************************************************
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.rebuild = exports.DEFAULT_MODULES = void 0;
|
|
19
|
-
const cp = require("child_process");
|
|
20
|
-
const fs = require("fs-extra");
|
|
21
|
-
const path = require("path");
|
|
22
|
-
const os = require("os");
|
|
23
|
-
const EXIT_SIGNALS = ['SIGINT', 'SIGTERM'];
|
|
24
|
-
exports.DEFAULT_MODULES = [
|
|
25
|
-
'node-pty',
|
|
26
|
-
'native-keymap',
|
|
27
|
-
'find-git-repositories',
|
|
28
|
-
'drivelist',
|
|
29
|
-
'keytar',
|
|
30
|
-
'ssh2',
|
|
31
|
-
'cpu-features'
|
|
32
|
-
];
|
|
33
|
-
/**
|
|
34
|
-
* @param target What to rebuild for.
|
|
35
|
-
* @param options
|
|
36
|
-
*/
|
|
37
|
-
function rebuild(target, options = {}) {
|
|
38
|
-
const { modules = exports.DEFAULT_MODULES, cacheRoot = process.cwd(), forceAbi, } = options;
|
|
39
|
-
const cache = path.resolve(cacheRoot, '.browser_modules');
|
|
40
|
-
const cacheExists = folderExists(cache);
|
|
41
|
-
guardExit(async (token) => {
|
|
42
|
-
if (target === 'electron' && !cacheExists) {
|
|
43
|
-
process.exitCode = await rebuildElectronModules(cache, modules, forceAbi, token);
|
|
44
|
-
}
|
|
45
|
-
else if (target === 'browser' && cacheExists) {
|
|
46
|
-
process.exitCode = await revertBrowserModules(cache, modules);
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
console.log(`native node modules are already rebuilt for ${target}`);
|
|
50
|
-
}
|
|
51
|
-
}).catch(errorOrSignal => {
|
|
52
|
-
if (typeof errorOrSignal === 'string' && errorOrSignal in os.constants.signals) {
|
|
53
|
-
process.kill(process.pid, errorOrSignal);
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
throw errorOrSignal;
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
exports.rebuild = rebuild;
|
|
61
|
-
function folderExists(folder) {
|
|
62
|
-
if (fs.existsSync(folder)) {
|
|
63
|
-
if (fs.statSync(folder).isDirectory()) {
|
|
64
|
-
return true;
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
throw new Error(`"${folder}" exists but it is not a directory`);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return false;
|
|
71
|
-
}
|
|
72
|
-
async function rebuildElectronModules(browserModuleCache, modules, forceAbi, token) {
|
|
73
|
-
const modulesJsonPath = path.join(browserModuleCache, 'modules.json');
|
|
74
|
-
const modulesJson = await fs.access(modulesJsonPath).then(() => fs.readJson(modulesJsonPath), () => ({}));
|
|
75
|
-
let success = true;
|
|
76
|
-
// Backup already built browser modules.
|
|
77
|
-
await Promise.all(modules.map(async (module) => {
|
|
78
|
-
let modulePath;
|
|
79
|
-
try {
|
|
80
|
-
modulePath = require.resolve(`${module}/package.json`, {
|
|
81
|
-
paths: [process.cwd()],
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
catch (_) {
|
|
85
|
-
console.debug(`Module not found: ${module}`);
|
|
86
|
-
return; // Skip current module.
|
|
87
|
-
}
|
|
88
|
-
const src = path.dirname(modulePath);
|
|
89
|
-
const dest = path.join(browserModuleCache, module);
|
|
90
|
-
try {
|
|
91
|
-
await fs.remove(dest);
|
|
92
|
-
await fs.copy(src, dest, { overwrite: true });
|
|
93
|
-
modulesJson[module] = {
|
|
94
|
-
originalLocation: src,
|
|
95
|
-
};
|
|
96
|
-
console.debug(`Processed "${module}"`);
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
console.error(`Error while doing a backup for "${module}": ${error}`);
|
|
100
|
-
success = false;
|
|
101
|
-
}
|
|
102
|
-
}));
|
|
103
|
-
if (Object.keys(modulesJson).length === 0) {
|
|
104
|
-
console.debug('No module to rebuild.');
|
|
105
|
-
return 0;
|
|
106
|
-
}
|
|
107
|
-
// Update manifest tracking the backups' original locations.
|
|
108
|
-
await fs.writeJson(modulesJsonPath, modulesJson, { spaces: 2 });
|
|
109
|
-
// If we failed to process a module then exit now.
|
|
110
|
-
if (!success) {
|
|
111
|
-
return 1;
|
|
112
|
-
}
|
|
113
|
-
const todo = modules.map(m => {
|
|
114
|
-
// electron-rebuild ignores the module namespace...
|
|
115
|
-
const slash = m.indexOf('/');
|
|
116
|
-
return m.startsWith('@') && slash !== -1
|
|
117
|
-
? m.substring(slash + 1)
|
|
118
|
-
: m;
|
|
119
|
-
});
|
|
120
|
-
let exitCode;
|
|
121
|
-
try {
|
|
122
|
-
if (process.env.THEIA_REBUILD_NO_WORKAROUND) {
|
|
123
|
-
exitCode = await runElectronRebuild(todo, forceAbi, token);
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
exitCode = await electronRebuildExtraModulesWorkaround(process.cwd(), todo, () => runElectronRebuild(todo, forceAbi, token), token);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
catch (error) {
|
|
130
|
-
console.error(error);
|
|
131
|
-
}
|
|
132
|
-
finally {
|
|
133
|
-
// If code is undefined or different from zero we need to revert back to the browser modules.
|
|
134
|
-
if (exitCode !== 0) {
|
|
135
|
-
await revertBrowserModules(browserModuleCache, modules);
|
|
136
|
-
}
|
|
137
|
-
return exitCode !== null && exitCode !== void 0 ? exitCode : 1;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
async function revertBrowserModules(browserModuleCache, modules) {
|
|
141
|
-
let exitCode = 0;
|
|
142
|
-
const modulesJsonPath = path.join(browserModuleCache, 'modules.json');
|
|
143
|
-
const modulesJson = await fs.readJson(modulesJsonPath);
|
|
144
|
-
await Promise.all(Object.entries(modulesJson).map(async ([moduleName, entry]) => {
|
|
145
|
-
if (!modules.includes(moduleName)) {
|
|
146
|
-
return; // Skip modules that weren't requested.
|
|
147
|
-
}
|
|
148
|
-
const src = path.join(browserModuleCache, moduleName);
|
|
149
|
-
if (!await fs.pathExists(src)) {
|
|
150
|
-
delete modulesJson[moduleName];
|
|
151
|
-
console.error(`Missing backup for ${moduleName}!`);
|
|
152
|
-
exitCode = 1;
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
const dest = entry.originalLocation;
|
|
156
|
-
try {
|
|
157
|
-
await fs.remove(dest);
|
|
158
|
-
await fs.copy(src, dest, { overwrite: false });
|
|
159
|
-
await fs.remove(src);
|
|
160
|
-
delete modulesJson[moduleName];
|
|
161
|
-
console.debug(`Reverted "${moduleName}"`);
|
|
162
|
-
}
|
|
163
|
-
catch (error) {
|
|
164
|
-
console.error(`Error while reverting "${moduleName}": ${error}`);
|
|
165
|
-
exitCode = 1;
|
|
166
|
-
}
|
|
167
|
-
}));
|
|
168
|
-
if (Object.keys(modulesJson).length === 0) {
|
|
169
|
-
// We restored everything, so we can delete the cache.
|
|
170
|
-
await fs.remove(browserModuleCache);
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
// Some things were not restored, so we update the manifest.
|
|
174
|
-
await fs.writeJson(modulesJsonPath, modulesJson, { spaces: 2 });
|
|
175
|
-
}
|
|
176
|
-
return exitCode;
|
|
177
|
-
}
|
|
178
|
-
async function runElectronRebuild(modules, forceAbi, token) {
|
|
179
|
-
const todo = modules.join(',');
|
|
180
|
-
return new Promise(async (resolve, reject) => {
|
|
181
|
-
let command = `npx --no-install electron-rebuild -f -w=${todo} -o=${todo}`;
|
|
182
|
-
if (forceAbi) {
|
|
183
|
-
command += ` --force-abi ${forceAbi}`;
|
|
184
|
-
}
|
|
185
|
-
const electronRebuild = cp.spawn(command, {
|
|
186
|
-
stdio: 'inherit',
|
|
187
|
-
shell: true,
|
|
188
|
-
});
|
|
189
|
-
token.onSignal(signal => electronRebuild.kill(signal));
|
|
190
|
-
electronRebuild.on('error', reject);
|
|
191
|
-
electronRebuild.on('close', (code, signal) => {
|
|
192
|
-
if (signal) {
|
|
193
|
-
reject(new Error(`electron-rebuild exited with "${signal}"`));
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
resolve(code);
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* `electron-rebuild` is supposed to accept a list of modules to build, even when not part of the dependencies.
|
|
203
|
-
* But there is a bug that causes `electron-rebuild` to not correctly process this list of modules.
|
|
204
|
-
*
|
|
205
|
-
* This workaround will temporarily modify the current package.json file.
|
|
206
|
-
*
|
|
207
|
-
* PR with fix: https://github.com/electron/electron-rebuild/pull/888
|
|
208
|
-
*
|
|
209
|
-
* TODO: Remove this workaround.
|
|
210
|
-
*/
|
|
211
|
-
async function electronRebuildExtraModulesWorkaround(cwd, extraModules, run, token) {
|
|
212
|
-
const packageJsonPath = path.resolve(cwd, 'package.json');
|
|
213
|
-
if (await fs.pathExists(packageJsonPath)) {
|
|
214
|
-
// package.json exists: We back it up before modifying it then revert it.
|
|
215
|
-
const packageJsonCopyPath = `${packageJsonPath}.copy`;
|
|
216
|
-
const packageJson = await fs.readJson(packageJsonPath);
|
|
217
|
-
await fs.copy(packageJsonPath, packageJsonCopyPath);
|
|
218
|
-
await throwIfSignal(token, async () => {
|
|
219
|
-
await fs.unlink(packageJsonCopyPath);
|
|
220
|
-
});
|
|
221
|
-
if (typeof packageJson.dependencies !== 'object') {
|
|
222
|
-
packageJson.dependencies = {};
|
|
223
|
-
}
|
|
224
|
-
for (const extraModule of extraModules) {
|
|
225
|
-
if (!packageJson.dependencies[extraModule]) {
|
|
226
|
-
packageJson.dependencies[extraModule] = '*';
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
try {
|
|
230
|
-
await fs.writeJson(packageJsonPath, packageJson, { spaces: 2 });
|
|
231
|
-
await throwIfSignal(token);
|
|
232
|
-
return await run(token);
|
|
233
|
-
}
|
|
234
|
-
finally {
|
|
235
|
-
await fs.move(packageJsonCopyPath, packageJsonPath, { overwrite: true });
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
// package.json does not exist: We create one then remove it.
|
|
240
|
-
const packageJson = {
|
|
241
|
-
name: 'theia-rebuild-workaround',
|
|
242
|
-
version: '0.0.0',
|
|
243
|
-
dependencies: {},
|
|
244
|
-
};
|
|
245
|
-
for (const extraModule of extraModules) {
|
|
246
|
-
packageJson.dependencies[extraModule] = '*';
|
|
247
|
-
}
|
|
248
|
-
try {
|
|
249
|
-
await fs.writeJson(packageJsonPath, packageJson);
|
|
250
|
-
await throwIfSignal(token);
|
|
251
|
-
return await run(token);
|
|
252
|
-
}
|
|
253
|
-
finally {
|
|
254
|
-
await fs.unlink(packageJsonPath);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* Temporarily install hooks to **try** to prevent the process from exiting while `run` is running.
|
|
260
|
-
*
|
|
261
|
-
* Note that it is still possible to kill the process and prevent cleanup logic (e.g. SIGKILL, computer forced shutdown, etc).
|
|
262
|
-
*/
|
|
263
|
-
async function guardExit(run) {
|
|
264
|
-
const token = new ExitTokenImpl();
|
|
265
|
-
const signalListener = (signal) => token._emitSignal(signal);
|
|
266
|
-
for (const signal of EXIT_SIGNALS) {
|
|
267
|
-
process.on(signal, signalListener);
|
|
268
|
-
}
|
|
269
|
-
try {
|
|
270
|
-
return await run(token);
|
|
271
|
-
}
|
|
272
|
-
finally {
|
|
273
|
-
for (const signal of EXIT_SIGNALS) {
|
|
274
|
-
// FIXME we have a type clash here between Node, Electron and Mocha.
|
|
275
|
-
// Typescript is resolving here to Electron's Process interface which extends the NodeJS.EventEmitter interface
|
|
276
|
-
// However instead of the actual NodeJS.EventEmitter interface it resolves to an empty stub of Mocha
|
|
277
|
-
// Therefore it can't find the correct "off" signature and throws an error
|
|
278
|
-
// By casting to the NodeJS.EventEmitter ourselves, we short circuit the resolving and it succeeds
|
|
279
|
-
process.off(signal, signalListener);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
class ExitTokenImpl {
|
|
284
|
-
constructor() {
|
|
285
|
-
this._listeners = new Set();
|
|
286
|
-
}
|
|
287
|
-
onSignal(callback) {
|
|
288
|
-
this._listeners.add(callback);
|
|
289
|
-
}
|
|
290
|
-
getLastSignal() {
|
|
291
|
-
return this._lastSignal;
|
|
292
|
-
}
|
|
293
|
-
_emitSignal(signal) {
|
|
294
|
-
this._lastSignal = signal;
|
|
295
|
-
for (const listener of this._listeners) {
|
|
296
|
-
listener(signal);
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
/**
|
|
301
|
-
* Throw `signal` if one was received, runs `cleanup` before doing so.
|
|
302
|
-
*/
|
|
303
|
-
async function throwIfSignal(token, cleanup) {
|
|
304
|
-
if (token.getLastSignal()) {
|
|
305
|
-
try {
|
|
306
|
-
await (cleanup === null || cleanup === void 0 ? void 0 : cleanup());
|
|
307
|
-
}
|
|
308
|
-
finally {
|
|
309
|
-
// eslint-disable-next-line no-throw-literal
|
|
310
|
-
throw token.getLastSignal();
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
//# sourceMappingURL=rebuild.js.map
|
package/lib/rebuild.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rebuild.js","sourceRoot":"","sources":["../src/rebuild.ts"],"names":[],"mappings":"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"}
|