@theia/application-manager 1.39.0-next.18 → 1.39.0-next.19

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.
@@ -1 +1 @@
1
- {"version":3,"file":"application-package-manager.d.ts","sourceRoot":"","sources":["../src/application-package-manager.ts"],"names":[],"mappings":";AAkBA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,GAAG,QAAQ,OAAO,CAAC,CAAC;AAGhC,OAAO,QAAQ,QAAQ,CAAC;IACpB,SAAS,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9C;AASD,qBAAa,yBAAyB;IAElC,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG;QACjE,IAAI,EAAE,aAAa,GAAG,YAAY,CAAA;QAClC,aAAa,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAC;IAaF,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,sBAAsB;IACtB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;gBAErC,OAAO,EAAE,yBAAyB;cAM9B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,QAAQ,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,KAAK,CAAC,IAAI,GAAE,MAAM,EAAO,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/E,KAAK,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,EAAE,CAAC,YAAY;IAO3C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY;IAoB9C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY;IAQ7C;;;;OAIG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BhD,SAAS,CAAC,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAc1G,OAAO,CAAC,UAAU;IAiBlB,OAAO,KAAK,WAAW,GAQtB;CACJ"}
1
+ {"version":3,"file":"application-package-manager.d.ts","sourceRoot":"","sources":["../src/application-package-manager.ts"],"names":[],"mappings":";AAkBA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,GAAG,QAAQ,OAAO,CAAC,CAAC;AAGhC,OAAO,QAAQ,QAAQ,CAAC;IACpB,SAAS,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9C;AASD,qBAAa,yBAAyB;IAElC,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG;QACjE,IAAI,EAAE,aAAa,GAAG,YAAY,CAAA;QAClC,aAAa,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAC;IAaF,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,sBAAsB;IACtB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;gBAErC,OAAO,EAAE,yBAAyB;cAM9B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,QAAQ,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,KAAK,CAAC,IAAI,GAAE,MAAM,EAAO,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/E,KAAK,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,EAAE,CAAC,YAAY;IAO3C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY;IAyB9C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY;IAc7C;;;;OAIG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BhD,SAAS,CAAC,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAc1G,OAAO,CAAC,UAAU;IAiBlB,OAAO,KAAK,WAAW,GAQtB;CACJ"}
@@ -81,8 +81,8 @@ class ApplicationPackageManager {
81
81
  ]);
82
82
  }
83
83
  async copy() {
84
- await fs.ensureDir(this.pck.lib());
85
- await fs.copy(this.pck.frontend('index.html'), this.pck.lib('index.html'));
84
+ await fs.ensureDir(this.pck.lib('frontend'));
85
+ await fs.copy(this.pck.frontend('index.html'), this.pck.lib('frontend', 'index.html'));
86
86
  }
87
87
  async build(args = [], options = {}) {
88
88
  await this.generate(options);
@@ -100,7 +100,12 @@ class ApplicationPackageManager {
100
100
  // can determine the app name. This requires that the package.json has a main field.
101
101
  let appPath = this.pck.projectPath;
102
102
  if (!this.pck.pck.main) {
103
- appPath = this.pck.frontend('electron-main.js');
103
+ // Try the bundled electron app first
104
+ appPath = this.pck.lib('backend', 'electron-main.js');
105
+ if (!fs.existsSync(appPath)) {
106
+ // Fallback to the generated electron app in src-gen
107
+ appPath = this.pck.backend('electron-main.js');
108
+ }
104
109
  console.warn(`WARNING: ${this.pck.packagePath} does not have a "main" entry.\n` +
105
110
  'Please add the following line:\n' +
106
111
  ' "main": "src-gen/frontend/electron-main.js"');
@@ -114,7 +119,13 @@ class ApplicationPackageManager {
114
119
  // The backend must be a process group leader on UNIX in order to kill the tree later.
115
120
  // See https://nodejs.org/api/child_process.html#child_process_options_detached
116
121
  options.detached = process.platform !== 'win32';
117
- return this.__process.fork(this.pck.backend('main.js'), mainArgs, options);
122
+ // Try the bundled backend app first
123
+ let mainPath = this.pck.lib('backend', 'main.js');
124
+ if (!fs.existsSync(mainPath)) {
125
+ // Fallback to the generated backend file in src-gen
126
+ mainPath = this.pck.backend('main.js');
127
+ }
128
+ return this.__process.fork(mainPath, mainArgs, options);
118
129
  }
119
130
  /**
120
131
  * Inject Theia's Electron-specific dependencies into the application's package.json.
@@ -1 +1 @@
1
- {"version":3,"file":"application-package-manager.js","sourceRoot":"","sources":["../src/application-package-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application-package-manager.js","sourceRoot":"","sources":["../src/application-package-manager.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export declare abstract class AbstractGenerator {
15
15
  protected ifElectron(value: string, defaultValue?: string): string;
16
16
  protected write(path: string, content: string): Promise<void>;
17
17
  protected ifMonaco(value: () => string, defaultValue?: () => string): string;
18
+ protected ifPackage(packageName: string | string[], value: string | (() => string), defaultValue?: string | (() => string)): string;
18
19
  protected prettyStringify(object: object): string;
19
20
  }
20
21
  //# sourceMappingURL=abstract-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-generator.d.ts","sourceRoot":"","sources":["../../src/generator/abstract-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,CAAA;IACnC,aAAa,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,8BAAsB,iBAAiB;IAG/B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB;IAC1C,SAAS,CAAC,OAAO,EAAE,gBAAgB;gBADhB,GAAG,EAAE,kBAAkB,EAChC,OAAO,GAAE,gBAAqB;IAG5C,SAAS,CAAC,4BAA4B,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAK5E,SAAS,CAAC,2BAA2B,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAI3E,SAAS,CAAC,gCAAgC,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAIjF,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM;IAc9F,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,MAAM;IAIrE,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,MAAM;cAItD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,EAAE,YAAY,GAAE,MAAM,MAAiB,GAAG,MAAM;IAItF,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAKpD"}
1
+ {"version":3,"file":"abstract-generator.d.ts","sourceRoot":"","sources":["../../src/generator/abstract-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,CAAA;IACnC,aAAa,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,8BAAsB,iBAAiB;IAG/B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB;IAC1C,SAAS,CAAC,OAAO,EAAE,gBAAgB;gBADhB,GAAG,EAAE,kBAAkB,EAChC,OAAO,GAAE,gBAAqB;IAG5C,SAAS,CAAC,4BAA4B,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAK5E,SAAS,CAAC,2BAA2B,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAI3E,SAAS,CAAC,gCAAgC,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAIjF,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM;IAc9F,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,MAAM;IAIrE,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,MAAM;cAItD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,EAAE,YAAY,GAAE,MAAM,MAAiB,GAAG,MAAM;IAOtF,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EAAE,YAAY,GAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAM,GAAG,MAAM;IASvI,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAKpD"}
@@ -58,7 +58,19 @@ class AbstractGenerator {
58
58
  await fs.writeFile(path, content);
59
59
  }
60
60
  ifMonaco(value, defaultValue = () => '') {
61
- return (this.pck.extensionPackages.some(e => e.name === '@theia/monaco' || e.name === '@theia/monaco-editor-core') ? value : defaultValue)();
61
+ return this.ifPackage([
62
+ '@theia/monaco',
63
+ '@theia/monaco-editor-core'
64
+ ], value, defaultValue);
65
+ }
66
+ ifPackage(packageName, value, defaultValue = '') {
67
+ const packages = Array.isArray(packageName) ? packageName : [packageName];
68
+ if (this.pck.extensionPackages.some(e => packages.includes(e.name))) {
69
+ return typeof value === 'string' ? value : value();
70
+ }
71
+ else {
72
+ return typeof defaultValue === 'string' ? defaultValue : defaultValue();
73
+ }
62
74
  }
63
75
  prettyStringify(object) {
64
76
  // eslint-disable-next-line no-null/no-null
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-generator.js","sourceRoot":"","sources":["../../src/generator/abstract-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract-generator.js","sourceRoot":"","sources":["../../src/generator/abstract-generator.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { AbstractGenerator } from './abstract-generator';
2
2
  export declare class BackendGenerator extends AbstractGenerator {
3
3
  generate(): Promise<void>;
4
+ protected compileElectronMain(electronMainModules?: Map<string, string>): string;
4
5
  protected compileServer(backendModules: Map<string, string>): string;
5
6
  protected compileMain(backendModules: Map<string, string>): string;
6
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backend-generator.d.ts","sourceRoot":"","sources":["../../src/generator/backend-generator.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAE7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B,SAAS,CAAC,aAAa,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAwDpE,SAAS,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CAoBrE"}
1
+ {"version":3,"file":"backend-generator.d.ts","sourceRoot":"","sources":["../../src/generator/backend-generator.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAE7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B,SAAS,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAmEhF,SAAS,CAAC,aAAa,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAwDpE,SAAS,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CAoBrE"}
@@ -22,6 +22,75 @@ class BackendGenerator extends abstract_generator_1.AbstractGenerator {
22
22
  const backendModules = this.pck.targetBackendModules;
23
23
  await this.write(this.pck.backend('server.js'), this.compileServer(backendModules));
24
24
  await this.write(this.pck.backend('main.js'), this.compileMain(backendModules));
25
+ if (this.pck.isElectron()) {
26
+ await this.write(this.pck.backend('electron-main.js'), this.compileElectronMain(this.pck.targetElectronMainModules));
27
+ }
28
+ }
29
+ compileElectronMain(electronMainModules) {
30
+ return `// @ts-check
31
+
32
+ require('reflect-metadata');
33
+
34
+ // Useful for Electron/NW.js apps as GUI apps on macOS doesn't inherit the \`$PATH\` define
35
+ // in your dotfiles (.bashrc/.bash_profile/.zshrc/etc).
36
+ // https://github.com/electron/electron/issues/550#issuecomment-162037357
37
+ // https://github.com/eclipse-theia/theia/pull/3534#issuecomment-439689082
38
+ require('fix-path')();
39
+
40
+ // Workaround for https://github.com/electron/electron/issues/9225. Chrome has an issue where
41
+ // in certain locales (e.g. PL), image metrics are wrongly computed. We explicitly set the
42
+ // LC_NUMERIC to prevent this from happening (selects the numeric formatting category of the
43
+ // C locale, http://en.cppreference.com/w/cpp/locale/LC_categories).
44
+ if (process.env.LC_ALL) {
45
+ process.env.LC_ALL = 'C';
46
+ }
47
+ process.env.LC_NUMERIC = 'C';
48
+
49
+ const { default: electronMainApplicationModule } = require('@theia/core/lib/electron-main/electron-main-application-module');
50
+ const { ElectronMainApplication, ElectronMainApplicationGlobals } = require('@theia/core/lib/electron-main/electron-main-application');
51
+ const { Container } = require('inversify');
52
+ const { resolve } = require('path');
53
+ const { app } = require('electron');
54
+
55
+ // Fix the window reloading issue, see: https://github.com/electron/electron/issues/22119
56
+ app.allowRendererProcessReuse = false;
57
+
58
+ const config = ${this.prettyStringify(this.pck.props.frontend.config)};
59
+ const isSingleInstance = ${this.pck.props.backend.config.singleInstance === true ? 'true' : 'false'};
60
+
61
+ if (isSingleInstance && !app.requestSingleInstanceLock()) {
62
+ // There is another instance running, exit now. The other instance will request focus.
63
+ app.quit();
64
+ return;
65
+ }
66
+
67
+ const container = new Container();
68
+ container.load(electronMainApplicationModule);
69
+ container.bind(ElectronMainApplicationGlobals).toConstantValue({
70
+ THEIA_APP_PROJECT_PATH: resolve(__dirname, '..', '..'),
71
+ THEIA_BACKEND_MAIN_PATH: resolve(__dirname, 'main.js'),
72
+ THEIA_FRONTEND_HTML_PATH: resolve(__dirname, '..', '..', 'lib', 'frontend', 'index.html'),
73
+ });
74
+
75
+ function load(raw) {
76
+ return Promise.resolve(raw.default).then(module =>
77
+ container.load(module)
78
+ );
79
+ }
80
+
81
+ async function start() {
82
+ const application = container.get(ElectronMainApplication);
83
+ await application.start(config);
84
+ }
85
+
86
+ module.exports = Promise.resolve()${this.compileElectronMainModuleImports(electronMainModules)}
87
+ .then(start).catch(reason => {
88
+ console.error('Failed to start the electron application.');
89
+ if (reason) {
90
+ console.error(reason);
91
+ }
92
+ });
93
+ `;
25
94
  }
26
95
  compileServer(backendModules) {
27
96
  return `// @ts-check
@@ -51,7 +120,7 @@ container.load(messagingBackendModule);
51
120
  container.load(loggerBackendModule);
52
121
 
53
122
  function defaultServeStatic(app) {
54
- app.use(express.static(path.resolve(__dirname, '../../lib')))
123
+ app.use(express.static(path.resolve(__dirname, '../../lib/frontend')))
55
124
  }
56
125
 
57
126
  function load(raw) {
@@ -94,7 +163,7 @@ serverAddress.then(({ port, address }) => {
94
163
  }
95
164
  });
96
165
 
97
- module.exports = serverAddress;
166
+ globalThis.serverAddress = serverAddress;
98
167
  `;
99
168
  }
100
169
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backend-generator.js","sourceRoot":"","sources":["../../src/generator/backend-generator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,6DAAyD;AAEzD,MAAa,gBAAiB,SAAQ,sCAAiB;IAEnD,KAAK,CAAC,QAAQ;QACV,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACrD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;QACpF,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IACpF,CAAC;IAES,aAAa,CAAC,cAAmC;QACvD,OAAO;8BACe,IAAI,CAAC,UAAU,CAAC;;;;;EAK5C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0DAuCuD,IAAI,CAAC,2BAA2B,CAAC,cAAc,CAAC;;;;;;;CAOzG,CAAC;IACE,CAAC;IAES,WAAW,CAAC,cAAmC;QACrD,OAAO;;;;uCAIwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;CAYzF,CAAC;IACE,CAAC;CAEJ;AApFD,4CAoFC"}
1
+ {"version":3,"file":"backend-generator.js","sourceRoot":"","sources":["../../src/generator/backend-generator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,6DAAyD;AAEzD,MAAa,gBAAiB,SAAQ,sCAAiB;IAEnD,KAAK,CAAC,QAAQ;QACV,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACrD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;QACpF,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;QAChF,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE;YACvB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;SACxH;IACL,CAAC;IAES,mBAAmB,CAAC,mBAAyC;QACnE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4BE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;2BAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;oCA2B/D,IAAI,CAAC,gCAAgC,CAAC,mBAAmB,CAAC;;;;;;;CAO7F,CAAC;IACE,CAAC;IAES,aAAa,CAAC,cAAmC;QACvD,OAAO;8BACe,IAAI,CAAC,UAAU,CAAC;;;;;EAK5C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0DAuCuD,IAAI,CAAC,2BAA2B,CAAC,cAAc,CAAC;;;;;;;CAOzG,CAAC;IACE,CAAC;IAES,WAAW,CAAC,cAAmC;QACrD,OAAO;;;;uCAIwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;CAYzF,CAAC;IACE,CAAC;CAEJ;AA1JD,4CA0JC"}
@@ -5,7 +5,6 @@ export declare class FrontendGenerator extends AbstractGenerator {
5
5
  protected compileIndexHtml(frontendModules: Map<string, string>): string;
6
6
  protected compileIndexHead(frontendModules: Map<string, string>): string;
7
7
  protected compileIndexJs(frontendModules: Map<string, string>): string;
8
- protected compileElectronMain(electronMainModules?: Map<string, string>): string;
9
8
  /** HTML for secondary windows that contain an extracted widget. */
10
9
  protected compileSecondaryWindowHtml(): string;
11
10
  protected compileSecondaryModuleImports(secondaryWindowModules: Map<string, string>): string;
@@ -1 +1 @@
1
- {"version":3,"file":"frontend-generator.d.ts","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG3E,qBAAa,iBAAkB,SAAQ,iBAAiB;IAE9C,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzD,SAAS,CAAC,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAc3E,SAAS,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAexE,SAAS,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAQxE,SAAS,CAAC,cAAc,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IA0DtE,SAAS,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAmEhF,mEAAmE;IACnE,SAAS,CAAC,0BAA0B,IAAI,MAAM;IA6C9C,SAAS,CAAC,6BAA6B,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAM5F,SAAS,CAAC,uBAAuB,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAoBtF,gBAAgB,IAAI,MAAM;CAU7B"}
1
+ {"version":3,"file":"frontend-generator.d.ts","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG3E,qBAAa,iBAAkB,SAAQ,iBAAiB;IAE9C,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzD,SAAS,CAAC,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAc3E,SAAS,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAexE,SAAS,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAQxE,SAAS,CAAC,cAAc,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IA0DtE,mEAAmE;IACnE,SAAS,CAAC,0BAA0B,IAAI,MAAM;IA6C9C,SAAS,CAAC,6BAA6B,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAM5F,SAAS,CAAC,uBAAuB,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAoBtF,gBAAgB,IAAI,MAAM;CAU7B"}
@@ -26,7 +26,6 @@ class FrontendGenerator extends abstract_generator_1.AbstractGenerator {
26
26
  await this.write(this.pck.frontend('secondary-window.html'), this.compileSecondaryWindowHtml());
27
27
  await this.write(this.pck.frontend('secondary-index.js'), this.compileSecondaryIndexJs(this.pck.secondaryWindowModules));
28
28
  if (this.pck.isElectron()) {
29
- await this.write(this.pck.frontend('electron-main.js'), this.compileElectronMain(this.pck.targetElectronMainModules));
30
29
  await this.write(this.pck.frontend('preload.js'), this.compilePreloadJs());
31
30
  }
32
31
  }
@@ -117,72 +116,6 @@ module.exports = preloader.preload().then(() => {
117
116
  return container.get(FrontendApplication).start();
118
117
  }
119
118
  });
120
- `;
121
- }
122
- compileElectronMain(electronMainModules) {
123
- return `// @ts-check
124
-
125
- require('reflect-metadata');
126
-
127
- // Useful for Electron/NW.js apps as GUI apps on macOS doesn't inherit the \`$PATH\` define
128
- // in your dotfiles (.bashrc/.bash_profile/.zshrc/etc).
129
- // https://github.com/electron/electron/issues/550#issuecomment-162037357
130
- // https://github.com/eclipse-theia/theia/pull/3534#issuecomment-439689082
131
- require('fix-path')();
132
-
133
- // Workaround for https://github.com/electron/electron/issues/9225. Chrome has an issue where
134
- // in certain locales (e.g. PL), image metrics are wrongly computed. We explicitly set the
135
- // LC_NUMERIC to prevent this from happening (selects the numeric formatting category of the
136
- // C locale, http://en.cppreference.com/w/cpp/locale/LC_categories).
137
- if (process.env.LC_ALL) {
138
- process.env.LC_ALL = 'C';
139
- }
140
- process.env.LC_NUMERIC = 'C';
141
-
142
- const { default: electronMainApplicationModule } = require('@theia/core/lib/electron-main/electron-main-application-module');
143
- const { ElectronMainApplication, ElectronMainApplicationGlobals } = require('@theia/core/lib/electron-main/electron-main-application');
144
- const { Container } = require('inversify');
145
- const { resolve } = require('path');
146
- const { app } = require('electron');
147
-
148
- // Fix the window reloading issue, see: https://github.com/electron/electron/issues/22119
149
- app.allowRendererProcessReuse = false;
150
-
151
- const config = ${this.prettyStringify(this.pck.props.frontend.config)};
152
- const isSingleInstance = ${this.pck.props.backend.config.singleInstance === true ? 'true' : 'false'};
153
-
154
- if (isSingleInstance && !app.requestSingleInstanceLock()) {
155
- // There is another instance running, exit now. The other instance will request focus.
156
- app.quit();
157
- return;
158
- }
159
-
160
- const container = new Container();
161
- container.load(electronMainApplicationModule);
162
- container.bind(ElectronMainApplicationGlobals).toConstantValue({
163
- THEIA_APP_PROJECT_PATH: resolve(__dirname, '..', '..'),
164
- THEIA_BACKEND_MAIN_PATH: resolve(__dirname, '..', 'backend', 'main.js'),
165
- THEIA_FRONTEND_HTML_PATH: resolve(__dirname, '..', '..', 'lib', 'index.html'),
166
- });
167
-
168
- function load(raw) {
169
- return Promise.resolve(raw.default).then(module =>
170
- container.load(module)
171
- );
172
- }
173
-
174
- async function start() {
175
- const application = container.get(ElectronMainApplication);
176
- await application.start(config);
177
- }
178
-
179
- module.exports = Promise.resolve()${this.compileElectronMainModuleImports(electronMainModules)}
180
- .then(start).catch(reason => {
181
- console.error('Failed to start the electron application.');
182
- if (reason) {
183
- console.error(reason);
184
- }
185
- });
186
119
  `;
187
120
  }
188
121
  /** HTML for secondary windows that contain an extracted widget. */
@@ -1 +1 @@
1
- {"version":3,"file":"frontend-generator.js","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontend-generator.js","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,10 @@ export declare class WebpackGenerator extends AbstractGenerator {
4
4
  protected shouldGenerateUserWebpackConfig(): Promise<boolean>;
5
5
  get configPath(): string;
6
6
  get genConfigPath(): string;
7
+ get genNodeConfigPath(): string;
7
8
  protected resolve(moduleName: string, path: string): string;
8
9
  protected compileWebpackConfig(): string;
9
10
  protected compileUserWebpackConfig(): string;
11
+ protected compileNodeWebpackConfig(): string;
10
12
  }
11
13
  //# sourceMappingURL=webpack-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webpack-generator.d.ts","sourceRoot":"","sources":["../../src/generator/webpack-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAE7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAOf,+BAA+B,IAAI,OAAO,CAAC,OAAO,CAAC;IAQnE,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3D,SAAS,CAAC,oBAAoB,IAAI,MAAM;IA4PxC,SAAS,CAAC,wBAAwB,IAAI,MAAM;CAoB/C"}
1
+ {"version":3,"file":"webpack-generator.d.ts","sourceRoot":"","sources":["../../src/generator/webpack-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAE7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAQf,+BAA+B,IAAI,OAAO,CAAC,OAAO,CAAC;IAQnE,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3D,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAoQxC,SAAS,CAAC,wBAAwB,IAAI,MAAM;IAwB5C,SAAS,CAAC,wBAAwB,IAAI,MAAM;CAwI/C"}
@@ -22,6 +22,7 @@ const abstract_generator_1 = require("./abstract-generator");
22
22
  class WebpackGenerator extends abstract_generator_1.AbstractGenerator {
23
23
  async generate() {
24
24
  await this.write(this.genConfigPath, this.compileWebpackConfig());
25
+ await this.write(this.genNodeConfigPath, this.compileNodeWebpackConfig());
25
26
  if (await this.shouldGenerateUserWebpackConfig()) {
26
27
  await this.write(this.configPath, this.compileUserWebpackConfig());
27
28
  }
@@ -39,6 +40,9 @@ class WebpackGenerator extends abstract_generator_1.AbstractGenerator {
39
40
  get genConfigPath() {
40
41
  return this.pck.path('gen-webpack.config.js');
41
42
  }
43
+ get genNodeConfigPath() {
44
+ return this.pck.path('gen-webpack.node.config.js');
45
+ }
42
46
  resolve(moduleName, path) {
43
47
  return this.pck.resolveModulePath(moduleName, path).split(paths.sep).join('/');
44
48
  }
@@ -51,11 +55,12 @@ class WebpackGenerator extends abstract_generator_1.AbstractGenerator {
51
55
  const path = require('path');
52
56
  const webpack = require('webpack');
53
57
  const yargs = require('yargs');
58
+ const resolvePackagePath = require('resolve-package-path');
54
59
  const CopyWebpackPlugin = require('copy-webpack-plugin');
55
60
  const CompressionPlugin = require('compression-webpack-plugin')
56
61
  const MiniCssExtractPlugin = require('mini-css-extract-plugin')
57
62
 
58
- const outputPath = path.resolve(__dirname, 'lib');
63
+ const outputPath = path.resolve(__dirname, 'lib', 'frontend');
59
64
  const { mode, staticCompression } = yargs.option('mode', {
60
65
  description: "Mode to use",
61
66
  choices: ["development", "production"],
@@ -69,10 +74,17 @@ const development = mode === 'development';
69
74
 
70
75
  const plugins = [
71
76
  new CopyWebpackPlugin({
72
- patterns: [{
73
- // copy secondary window html file to lib folder
74
- from: path.resolve(__dirname, 'src-gen/frontend/secondary-window.html')
75
- }]
77
+ patterns: [
78
+ {
79
+ // copy secondary window html file to lib folder
80
+ from: path.resolve(__dirname, 'src-gen/frontend/secondary-window.html')
81
+ }${this.ifPackage('@theia/plugin-ext', `,
82
+ {
83
+ // copy webview files to lib folder
84
+ from: path.join(resolvePackagePath('@theia/plugin-ext', __dirname), '..', 'src', 'main', 'browser', 'webview', 'pre'),
85
+ to: path.resolve(__dirname, 'lib', 'webview', 'pre')
86
+ }`)}
87
+ ]
76
88
  }),
77
89
  new webpack.ProvidePlugin({
78
90
  // the Buffer class doesn't exist in the browser but some dependencies rely on it
@@ -299,18 +311,157 @@ module.exports = [{
299
311
  * To reset delete this file and rerun theia build again.
300
312
  */
301
313
  // @ts-check
302
- const config = require('./${paths.basename(this.genConfigPath)}');
314
+ const configs = require('./${paths.basename(this.genConfigPath)}');
315
+ const nodeConfig = require('./${paths.basename(this.genNodeConfigPath)}');
303
316
 
304
317
  /**
305
318
  * Expose bundled modules on window.theia.moduleName namespace, e.g.
306
319
  * window['theia']['@theia/core/lib/common/uri'].
307
320
  * Such syntax can be used by external code, for instance, for testing.
308
- config.module.rules.push({
321
+ configs[0].module.rules.push({
309
322
  test: /\\.js$/,
310
323
  loader: require.resolve('@theia/application-manager/lib/expose-loader')
311
324
  }); */
312
325
 
313
- module.exports = config;`;
326
+ module.exports = [
327
+ ...configs,
328
+ nodeConfig.config
329
+ ];`;
330
+ }
331
+ compileNodeWebpackConfig() {
332
+ return `/**
333
+ * Don't touch this file. It will be regenerated by theia build.
334
+ * To customize webpack configuration change ${this.configPath}
335
+ */
336
+ // @ts-check
337
+ const path = require('path');
338
+ const yargs = require('yargs');
339
+ const webpack = require('webpack');
340
+ const TerserPlugin = require('terser-webpack-plugin');
341
+ const NativeWebpackPlugin = require('@theia/native-webpack-plugin');
342
+
343
+ const { mode } = yargs.option('mode', {
344
+ description: "Mode to use",
345
+ choices: ["development", "production"],
346
+ default: "production"
347
+ }).argv;
348
+
349
+ const production = mode === 'production';
350
+
351
+ /** @type {import('webpack').EntryObject} */
352
+ const commonJsLibraries = {};
353
+ for (const [entryPointName, entryPointPath] of Object.entries({
354
+ ${this.ifPackage('@theia/plugin-ext', "'backend-init-theia': '@theia/plugin-ext/lib/hosted/node/scanners/backend-init-theia',")}
355
+ ${this.ifPackage('@theia/filesystem', "'nsfw-watcher': '@theia/filesystem/lib/node/nsfw-watcher',")}
356
+ ${this.ifPackage('@theia/plugin-ext-vscode', "'plugin-vscode-init': '@theia/plugin-ext-vscode/lib/node/plugin-vscode-init',")}
357
+ })) {
358
+ commonJsLibraries[entryPointName] = {
359
+ import: require.resolve(entryPointPath),
360
+ library: {
361
+ type: 'commonjs2',
362
+ },
363
+ };
364
+ }
365
+
366
+ const ignoredResources = new Set();
367
+
368
+ if (process.platform !== 'win32') {
369
+ ignoredResources.add('@vscode/windows-ca-certs');
370
+ }
371
+
372
+ const nativePlugin = new NativeWebpackPlugin({
373
+ out: 'native',
374
+ ripgrep: ${this.ifPackage(['@theia/search-in-workspace', '@theia/file-search'], 'true', 'false')},
375
+ pty: ${this.ifPackage('@theia/process', 'true', 'false')},
376
+ nativeBindings: {
377
+ drivelist: 'drivelist/build/Release/drivelist.node'
378
+ }
379
+ });
380
+
381
+ /** @type {import('webpack').Configuration} */
382
+ const config = {
383
+ mode,
384
+ devtool: mode === 'development' ? 'source-map' : false,
385
+ target: 'node',
386
+ node: {
387
+ global: false,
388
+ __filename: false,
389
+ __dirname: false
390
+ },
391
+ output: {
392
+ filename: '[name].js',
393
+ path: path.resolve(__dirname, 'lib', 'backend'),
394
+ devtoolModuleFilenameTemplate: 'webpack:///[absolute-resource-path]?[loaders]',
395
+ },${this.ifElectron(`
396
+ externals: {
397
+ electron: 'require("electron")'
398
+ },`)}
399
+ entry: {
400
+ // Main entry point of the Theia application backend:
401
+ 'main': require.resolve('./src-gen/backend/main'),
402
+ // Theia's IPC mechanism:
403
+ 'ipc-bootstrap': require.resolve('@theia/core/lib/node/messaging/ipc-bootstrap'),
404
+ ${this.ifPackage('@theia/plugin-ext', () => `// VS Code extension support:
405
+ 'plugin-host': require.resolve('@theia/plugin-ext/lib/hosted/node/plugin-host'),`)}
406
+ ${this.ifPackage('@theia/process', () => `// Make sure the node-pty thread worker can be executed:
407
+ 'worker/conoutSocketWorker': require.resolve('node-pty/lib/worker/conoutSocketWorker'),`)}
408
+ ${this.ifPackage('@theia/git', () => `// Ensure the git locator process can the started
409
+ 'git-locator-host': require.resolve('@theia/git/lib/node/git-locator/git-locator-host'),`)}
410
+ ${this.ifElectron("'electron-main': require.resolve('./src-gen/backend/electron-main'),")}
411
+ ...commonJsLibraries
412
+ },
413
+ module: {
414
+ rules: [
415
+ // Make sure we can still find and load our native addons.
416
+ {
417
+ test: /\\.node$/,
418
+ loader: 'node-loader',
419
+ options: {
420
+ name: 'native/[name].[ext]'
421
+ }
422
+ },
423
+ {
424
+ test: /\\.js$/,
425
+ enforce: 'pre',
426
+ loader: 'source-map-loader'
427
+ },
428
+ // jsonc-parser exposes its UMD implementation by default, which
429
+ // confuses Webpack leading to missing js in the bundles.
430
+ {
431
+ test: /node_modules[\\/](jsonc-parser)/,
432
+ loader: 'umd-compat-loader'
433
+ }
434
+ ]
435
+ },
436
+ plugins: [
437
+ // Some native dependencies (bindings, @vscode/ripgrep) need special code replacements
438
+ nativePlugin,
439
+ // Optional node dependencies can be safely ignored
440
+ new webpack.IgnorePlugin({
441
+ checkResource: resource => ignoredResources.has(resource)
442
+ })
443
+ ],
444
+ optimization: {
445
+ // Split and reuse code across the various entry points
446
+ splitChunks: {
447
+ chunks: 'all'
448
+ },
449
+ // Only minimize if we run webpack in production mode
450
+ minimize: production,
451
+ minimizer: [
452
+ new TerserPlugin({
453
+ exclude: /^(lib|builtins)\\//
454
+ })
455
+ ]
456
+ },
457
+ };
458
+
459
+ module.exports = {
460
+ config,
461
+ nativePlugin,
462
+ ignoredResources
463
+ };
464
+ `;
314
465
  }
315
466
  }
316
467
  exports.WebpackGenerator = WebpackGenerator;
@@ -1 +1 @@
1
- {"version":3,"file":"webpack-generator.js","sourceRoot":"","sources":["../../src/generator/webpack-generator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,8BAA8B;AAC9B,+BAA+B;AAC/B,6DAAyD;AAEzD,MAAa,gBAAiB,SAAQ,sCAAiB;IAEnD,KAAK,CAAC,QAAQ;QACV,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAClE,IAAI,MAAM,IAAI,CAAC,+BAA+B,EAAE,EAAE;YAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;SACtE;IACL,CAAC;IAES,KAAK,CAAC,+BAA+B;QAC3C,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE;YACzC,OAAO,IAAI,CAAC;SACf;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAClD,CAAC;IAES,OAAO,CAAC,UAAkB,EAAE,IAAY;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnF,CAAC;IAES,oBAAoB;QAC1B,OAAO;;+CAEgC,IAAI,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA6CpD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,6EAA6E,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuLzG,IAAI,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;EAkBjB,CAAC,IAAI,CAAC;IACJ,CAAC;IAES,wBAAwB;QAC9B,OAAO;;;;;4BAKa,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;;;;;;;;;;;yBAWrC,CAAC;IACtB,CAAC;CAEJ;AA7SD,4CA6SC"}
1
+ {"version":3,"file":"webpack-generator.js","sourceRoot":"","sources":["../../src/generator/webpack-generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rebuild.d.ts","sourceRoot":"","sources":["../src/rebuild.ts"],"names":[],"mappings":"AAqBA,oBAAY,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AASnD,aAAK,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/B,eAAO,MAAM,eAAe,UAM3B,CAAC;AAEF,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,cAAmB,GAAG,IAAI,CAuBjF"}
1
+ {"version":3,"file":"rebuild.d.ts","sourceRoot":"","sources":["../src/rebuild.ts"],"names":[],"mappings":"AAqBA,oBAAY,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AASnD,aAAK,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/B,eAAO,MAAM,eAAe,UAS3B,CAAC;AAEF,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,cAAmB,GAAG,IAAI,CAuBjF"}
package/lib/rebuild.js CHANGED
@@ -27,6 +27,9 @@ exports.DEFAULT_MODULES = [
27
27
  'native-keymap',
28
28
  'find-git-repositories',
29
29
  'drivelist',
30
+ 'keytar',
31
+ 'ssh2',
32
+ 'cpu-features'
30
33
  ];
31
34
  /**
32
35
  * @param target What to rebuild for.
@@ -1 +1 @@
1
- {"version":3,"file":"rebuild.js","sourceRoot":"","sources":["../src/rebuild.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rebuild.js","sourceRoot":"","sources":["../src/rebuild.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theia/application-manager",
3
- "version": "1.39.0-next.18+21bf9319c",
3
+ "version": "1.39.0-next.19+72e48cc2d",
4
4
  "description": "Theia application manager API.",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -33,8 +33,9 @@
33
33
  "@babel/plugin-transform-classes": "^7.10.0",
34
34
  "@babel/plugin-transform-runtime": "^7.10.0",
35
35
  "@babel/preset-env": "^7.10.0",
36
- "@theia/application-package": "1.39.0-next.18+21bf9319c",
37
- "@theia/ffmpeg": "1.39.0-next.18+21bf9319c",
36
+ "@theia/application-package": "1.39.0-next.19+72e48cc2d",
37
+ "@theia/ffmpeg": "1.39.0-next.19+72e48cc2d",
38
+ "@theia/native-webpack-plugin": "1.39.0-next.19+72e48cc2d",
38
39
  "@types/fs-extra": "^4.0.2",
39
40
  "@types/semver": "^7.3.8",
40
41
  "babel-loader": "^8.2.2",
@@ -48,6 +49,7 @@
48
49
  "less": "^3.0.3",
49
50
  "mini-css-extract-plugin": "^2.6.1",
50
51
  "node-abi": "*",
52
+ "node-loader": "^2.0.0",
51
53
  "path-browserify": "^1.0.1",
52
54
  "semver": "^7.3.5",
53
55
  "setimmediate": "^1.0.5",
@@ -77,5 +79,5 @@
77
79
  "nyc": {
78
80
  "extends": "../../configs/nyc.json"
79
81
  },
80
- "gitHead": "21bf9319cd40a6aab394db159ab1f6f8e01bd69b"
82
+ "gitHead": "72e48cc2d4d5cad62b9ae7ef76775da9711da560"
81
83
  }
@@ -104,8 +104,8 @@ export class ApplicationPackageManager {
104
104
  }
105
105
 
106
106
  async copy(): Promise<void> {
107
- await fs.ensureDir(this.pck.lib());
108
- await fs.copy(this.pck.frontend('index.html'), this.pck.lib('index.html'));
107
+ await fs.ensureDir(this.pck.lib('frontend'));
108
+ await fs.copy(this.pck.frontend('index.html'), this.pck.lib('frontend', 'index.html'));
109
109
  }
110
110
 
111
111
  async build(args: string[] = [], options: GeneratorOptions = {}): Promise<void> {
@@ -127,7 +127,12 @@ export class ApplicationPackageManager {
127
127
  let appPath = this.pck.projectPath;
128
128
 
129
129
  if (!this.pck.pck.main) {
130
- appPath = this.pck.frontend('electron-main.js');
130
+ // Try the bundled electron app first
131
+ appPath = this.pck.lib('backend', 'electron-main.js');
132
+ if (!fs.existsSync(appPath)) {
133
+ // Fallback to the generated electron app in src-gen
134
+ appPath = this.pck.backend('electron-main.js');
135
+ }
131
136
 
132
137
  console.warn(
133
138
  `WARNING: ${this.pck.packagePath} does not have a "main" entry.\n` +
@@ -146,7 +151,13 @@ export class ApplicationPackageManager {
146
151
  // The backend must be a process group leader on UNIX in order to kill the tree later.
147
152
  // See https://nodejs.org/api/child_process.html#child_process_options_detached
148
153
  options.detached = process.platform !== 'win32';
149
- return this.__process.fork(this.pck.backend('main.js'), mainArgs, options);
154
+ // Try the bundled backend app first
155
+ let mainPath = this.pck.lib('backend', 'main.js');
156
+ if (!fs.existsSync(mainPath)) {
157
+ // Fallback to the generated backend file in src-gen
158
+ mainPath = this.pck.backend('main.js');
159
+ }
160
+ return this.__process.fork(mainPath, mainArgs, options);
150
161
  }
151
162
 
152
163
  /**
@@ -71,7 +71,19 @@ export abstract class AbstractGenerator {
71
71
  }
72
72
 
73
73
  protected ifMonaco(value: () => string, defaultValue: () => string = () => ''): string {
74
- return (this.pck.extensionPackages.some(e => e.name === '@theia/monaco' || e.name === '@theia/monaco-editor-core') ? value : defaultValue)();
74
+ return this.ifPackage([
75
+ '@theia/monaco',
76
+ '@theia/monaco-editor-core'
77
+ ], value, defaultValue);
78
+ }
79
+
80
+ protected ifPackage(packageName: string | string[], value: string | (() => string), defaultValue: string | (() => string) = ''): string {
81
+ const packages = Array.isArray(packageName) ? packageName : [packageName];
82
+ if (this.pck.extensionPackages.some(e => packages.includes(e.name))) {
83
+ return typeof value === 'string' ? value : value();
84
+ } else {
85
+ return typeof defaultValue === 'string' ? defaultValue : defaultValue();
86
+ }
75
87
  }
76
88
 
77
89
  protected prettyStringify(object: object): string {
@@ -22,6 +22,76 @@ export class BackendGenerator extends AbstractGenerator {
22
22
  const backendModules = this.pck.targetBackendModules;
23
23
  await this.write(this.pck.backend('server.js'), this.compileServer(backendModules));
24
24
  await this.write(this.pck.backend('main.js'), this.compileMain(backendModules));
25
+ if (this.pck.isElectron()) {
26
+ await this.write(this.pck.backend('electron-main.js'), this.compileElectronMain(this.pck.targetElectronMainModules));
27
+ }
28
+ }
29
+
30
+ protected compileElectronMain(electronMainModules?: Map<string, string>): string {
31
+ return `// @ts-check
32
+
33
+ require('reflect-metadata');
34
+
35
+ // Useful for Electron/NW.js apps as GUI apps on macOS doesn't inherit the \`$PATH\` define
36
+ // in your dotfiles (.bashrc/.bash_profile/.zshrc/etc).
37
+ // https://github.com/electron/electron/issues/550#issuecomment-162037357
38
+ // https://github.com/eclipse-theia/theia/pull/3534#issuecomment-439689082
39
+ require('fix-path')();
40
+
41
+ // Workaround for https://github.com/electron/electron/issues/9225. Chrome has an issue where
42
+ // in certain locales (e.g. PL), image metrics are wrongly computed. We explicitly set the
43
+ // LC_NUMERIC to prevent this from happening (selects the numeric formatting category of the
44
+ // C locale, http://en.cppreference.com/w/cpp/locale/LC_categories).
45
+ if (process.env.LC_ALL) {
46
+ process.env.LC_ALL = 'C';
47
+ }
48
+ process.env.LC_NUMERIC = 'C';
49
+
50
+ const { default: electronMainApplicationModule } = require('@theia/core/lib/electron-main/electron-main-application-module');
51
+ const { ElectronMainApplication, ElectronMainApplicationGlobals } = require('@theia/core/lib/electron-main/electron-main-application');
52
+ const { Container } = require('inversify');
53
+ const { resolve } = require('path');
54
+ const { app } = require('electron');
55
+
56
+ // Fix the window reloading issue, see: https://github.com/electron/electron/issues/22119
57
+ app.allowRendererProcessReuse = false;
58
+
59
+ const config = ${this.prettyStringify(this.pck.props.frontend.config)};
60
+ const isSingleInstance = ${this.pck.props.backend.config.singleInstance === true ? 'true' : 'false'};
61
+
62
+ if (isSingleInstance && !app.requestSingleInstanceLock()) {
63
+ // There is another instance running, exit now. The other instance will request focus.
64
+ app.quit();
65
+ return;
66
+ }
67
+
68
+ const container = new Container();
69
+ container.load(electronMainApplicationModule);
70
+ container.bind(ElectronMainApplicationGlobals).toConstantValue({
71
+ THEIA_APP_PROJECT_PATH: resolve(__dirname, '..', '..'),
72
+ THEIA_BACKEND_MAIN_PATH: resolve(__dirname, 'main.js'),
73
+ THEIA_FRONTEND_HTML_PATH: resolve(__dirname, '..', '..', 'lib', 'frontend', 'index.html'),
74
+ });
75
+
76
+ function load(raw) {
77
+ return Promise.resolve(raw.default).then(module =>
78
+ container.load(module)
79
+ );
80
+ }
81
+
82
+ async function start() {
83
+ const application = container.get(ElectronMainApplication);
84
+ await application.start(config);
85
+ }
86
+
87
+ module.exports = Promise.resolve()${this.compileElectronMainModuleImports(electronMainModules)}
88
+ .then(start).catch(reason => {
89
+ console.error('Failed to start the electron application.');
90
+ if (reason) {
91
+ console.error(reason);
92
+ }
93
+ });
94
+ `;
25
95
  }
26
96
 
27
97
  protected compileServer(backendModules: Map<string, string>): string {
@@ -52,7 +122,7 @@ container.load(messagingBackendModule);
52
122
  container.load(loggerBackendModule);
53
123
 
54
124
  function defaultServeStatic(app) {
55
- app.use(express.static(path.resolve(__dirname, '../../lib')))
125
+ app.use(express.static(path.resolve(__dirname, '../../lib/frontend')))
56
126
  }
57
127
 
58
128
  function load(raw) {
@@ -96,7 +166,7 @@ serverAddress.then(({ port, address }) => {
96
166
  }
97
167
  });
98
168
 
99
- module.exports = serverAddress;
169
+ globalThis.serverAddress = serverAddress;
100
170
  `;
101
171
  }
102
172
 
@@ -27,7 +27,6 @@ export class FrontendGenerator extends AbstractGenerator {
27
27
  await this.write(this.pck.frontend('secondary-window.html'), this.compileSecondaryWindowHtml());
28
28
  await this.write(this.pck.frontend('secondary-index.js'), this.compileSecondaryIndexJs(this.pck.secondaryWindowModules));
29
29
  if (this.pck.isElectron()) {
30
- await this.write(this.pck.frontend('electron-main.js'), this.compileElectronMain(this.pck.targetElectronMainModules));
31
30
  await this.write(this.pck.frontend('preload.js'), this.compilePreloadJs());
32
31
  }
33
32
  }
@@ -127,73 +126,6 @@ module.exports = preloader.preload().then(() => {
127
126
  `;
128
127
  }
129
128
 
130
- protected compileElectronMain(electronMainModules?: Map<string, string>): string {
131
- return `// @ts-check
132
-
133
- require('reflect-metadata');
134
-
135
- // Useful for Electron/NW.js apps as GUI apps on macOS doesn't inherit the \`$PATH\` define
136
- // in your dotfiles (.bashrc/.bash_profile/.zshrc/etc).
137
- // https://github.com/electron/electron/issues/550#issuecomment-162037357
138
- // https://github.com/eclipse-theia/theia/pull/3534#issuecomment-439689082
139
- require('fix-path')();
140
-
141
- // Workaround for https://github.com/electron/electron/issues/9225. Chrome has an issue where
142
- // in certain locales (e.g. PL), image metrics are wrongly computed. We explicitly set the
143
- // LC_NUMERIC to prevent this from happening (selects the numeric formatting category of the
144
- // C locale, http://en.cppreference.com/w/cpp/locale/LC_categories).
145
- if (process.env.LC_ALL) {
146
- process.env.LC_ALL = 'C';
147
- }
148
- process.env.LC_NUMERIC = 'C';
149
-
150
- const { default: electronMainApplicationModule } = require('@theia/core/lib/electron-main/electron-main-application-module');
151
- const { ElectronMainApplication, ElectronMainApplicationGlobals } = require('@theia/core/lib/electron-main/electron-main-application');
152
- const { Container } = require('inversify');
153
- const { resolve } = require('path');
154
- const { app } = require('electron');
155
-
156
- // Fix the window reloading issue, see: https://github.com/electron/electron/issues/22119
157
- app.allowRendererProcessReuse = false;
158
-
159
- const config = ${this.prettyStringify(this.pck.props.frontend.config)};
160
- const isSingleInstance = ${this.pck.props.backend.config.singleInstance === true ? 'true' : 'false'};
161
-
162
- if (isSingleInstance && !app.requestSingleInstanceLock()) {
163
- // There is another instance running, exit now. The other instance will request focus.
164
- app.quit();
165
- return;
166
- }
167
-
168
- const container = new Container();
169
- container.load(electronMainApplicationModule);
170
- container.bind(ElectronMainApplicationGlobals).toConstantValue({
171
- THEIA_APP_PROJECT_PATH: resolve(__dirname, '..', '..'),
172
- THEIA_BACKEND_MAIN_PATH: resolve(__dirname, '..', 'backend', 'main.js'),
173
- THEIA_FRONTEND_HTML_PATH: resolve(__dirname, '..', '..', 'lib', 'index.html'),
174
- });
175
-
176
- function load(raw) {
177
- return Promise.resolve(raw.default).then(module =>
178
- container.load(module)
179
- );
180
- }
181
-
182
- async function start() {
183
- const application = container.get(ElectronMainApplication);
184
- await application.start(config);
185
- }
186
-
187
- module.exports = Promise.resolve()${this.compileElectronMainModuleImports(electronMainModules)}
188
- .then(start).catch(reason => {
189
- console.error('Failed to start the electron application.');
190
- if (reason) {
191
- console.error(reason);
192
- }
193
- });
194
- `;
195
- }
196
-
197
129
  /** HTML for secondary windows that contain an extracted widget. */
198
130
  protected compileSecondaryWindowHtml(): string {
199
131
  return `<!DOCTYPE html>
@@ -22,6 +22,7 @@ export class WebpackGenerator extends AbstractGenerator {
22
22
 
23
23
  async generate(): Promise<void> {
24
24
  await this.write(this.genConfigPath, this.compileWebpackConfig());
25
+ await this.write(this.genNodeConfigPath, this.compileNodeWebpackConfig());
25
26
  if (await this.shouldGenerateUserWebpackConfig()) {
26
27
  await this.write(this.configPath, this.compileUserWebpackConfig());
27
28
  }
@@ -43,6 +44,10 @@ export class WebpackGenerator extends AbstractGenerator {
43
44
  return this.pck.path('gen-webpack.config.js');
44
45
  }
45
46
 
47
+ get genNodeConfigPath(): string {
48
+ return this.pck.path('gen-webpack.node.config.js');
49
+ }
50
+
46
51
  protected resolve(moduleName: string, path: string): string {
47
52
  return this.pck.resolveModulePath(moduleName, path).split(paths.sep).join('/');
48
53
  }
@@ -56,11 +61,12 @@ export class WebpackGenerator extends AbstractGenerator {
56
61
  const path = require('path');
57
62
  const webpack = require('webpack');
58
63
  const yargs = require('yargs');
64
+ const resolvePackagePath = require('resolve-package-path');
59
65
  const CopyWebpackPlugin = require('copy-webpack-plugin');
60
66
  const CompressionPlugin = require('compression-webpack-plugin')
61
67
  const MiniCssExtractPlugin = require('mini-css-extract-plugin')
62
68
 
63
- const outputPath = path.resolve(__dirname, 'lib');
69
+ const outputPath = path.resolve(__dirname, 'lib', 'frontend');
64
70
  const { mode, staticCompression } = yargs.option('mode', {
65
71
  description: "Mode to use",
66
72
  choices: ["development", "production"],
@@ -74,10 +80,17 @@ const development = mode === 'development';
74
80
 
75
81
  const plugins = [
76
82
  new CopyWebpackPlugin({
77
- patterns: [{
78
- // copy secondary window html file to lib folder
79
- from: path.resolve(__dirname, 'src-gen/frontend/secondary-window.html')
80
- }]
83
+ patterns: [
84
+ {
85
+ // copy secondary window html file to lib folder
86
+ from: path.resolve(__dirname, 'src-gen/frontend/secondary-window.html')
87
+ }${this.ifPackage('@theia/plugin-ext', `,
88
+ {
89
+ // copy webview files to lib folder
90
+ from: path.join(resolvePackagePath('@theia/plugin-ext', __dirname), '..', 'src', 'main', 'browser', 'webview', 'pre'),
91
+ to: path.resolve(__dirname, 'lib', 'webview', 'pre')
92
+ }`)}
93
+ ]
81
94
  }),
82
95
  new webpack.ProvidePlugin({
83
96
  // the Buffer class doesn't exist in the browser but some dependencies rely on it
@@ -305,18 +318,158 @@ module.exports = [{
305
318
  * To reset delete this file and rerun theia build again.
306
319
  */
307
320
  // @ts-check
308
- const config = require('./${paths.basename(this.genConfigPath)}');
321
+ const configs = require('./${paths.basename(this.genConfigPath)}');
322
+ const nodeConfig = require('./${paths.basename(this.genNodeConfigPath)}');
309
323
 
310
324
  /**
311
325
  * Expose bundled modules on window.theia.moduleName namespace, e.g.
312
326
  * window['theia']['@theia/core/lib/common/uri'].
313
327
  * Such syntax can be used by external code, for instance, for testing.
314
- config.module.rules.push({
328
+ configs[0].module.rules.push({
315
329
  test: /\\.js$/,
316
330
  loader: require.resolve('@theia/application-manager/lib/expose-loader')
317
331
  }); */
318
332
 
319
- module.exports = config;`;
333
+ module.exports = [
334
+ ...configs,
335
+ nodeConfig.config
336
+ ];`;
337
+ }
338
+
339
+ protected compileNodeWebpackConfig(): string {
340
+ return `/**
341
+ * Don't touch this file. It will be regenerated by theia build.
342
+ * To customize webpack configuration change ${this.configPath}
343
+ */
344
+ // @ts-check
345
+ const path = require('path');
346
+ const yargs = require('yargs');
347
+ const webpack = require('webpack');
348
+ const TerserPlugin = require('terser-webpack-plugin');
349
+ const NativeWebpackPlugin = require('@theia/native-webpack-plugin');
350
+
351
+ const { mode } = yargs.option('mode', {
352
+ description: "Mode to use",
353
+ choices: ["development", "production"],
354
+ default: "production"
355
+ }).argv;
356
+
357
+ const production = mode === 'production';
358
+
359
+ /** @type {import('webpack').EntryObject} */
360
+ const commonJsLibraries = {};
361
+ for (const [entryPointName, entryPointPath] of Object.entries({
362
+ ${this.ifPackage('@theia/plugin-ext', "'backend-init-theia': '@theia/plugin-ext/lib/hosted/node/scanners/backend-init-theia',")}
363
+ ${this.ifPackage('@theia/filesystem', "'nsfw-watcher': '@theia/filesystem/lib/node/nsfw-watcher',")}
364
+ ${this.ifPackage('@theia/plugin-ext-vscode', "'plugin-vscode-init': '@theia/plugin-ext-vscode/lib/node/plugin-vscode-init',")}
365
+ })) {
366
+ commonJsLibraries[entryPointName] = {
367
+ import: require.resolve(entryPointPath),
368
+ library: {
369
+ type: 'commonjs2',
370
+ },
371
+ };
372
+ }
373
+
374
+ const ignoredResources = new Set();
375
+
376
+ if (process.platform !== 'win32') {
377
+ ignoredResources.add('@vscode/windows-ca-certs');
378
+ }
379
+
380
+ const nativePlugin = new NativeWebpackPlugin({
381
+ out: 'native',
382
+ ripgrep: ${this.ifPackage(['@theia/search-in-workspace', '@theia/file-search'], 'true', 'false')},
383
+ pty: ${this.ifPackage('@theia/process', 'true', 'false')},
384
+ nativeBindings: {
385
+ drivelist: 'drivelist/build/Release/drivelist.node'
386
+ }
387
+ });
388
+
389
+ /** @type {import('webpack').Configuration} */
390
+ const config = {
391
+ mode,
392
+ devtool: mode === 'development' ? 'source-map' : false,
393
+ target: 'node',
394
+ node: {
395
+ global: false,
396
+ __filename: false,
397
+ __dirname: false
398
+ },
399
+ output: {
400
+ filename: '[name].js',
401
+ path: path.resolve(__dirname, 'lib', 'backend'),
402
+ devtoolModuleFilenameTemplate: 'webpack:///[absolute-resource-path]?[loaders]',
403
+ },${this.ifElectron(`
404
+ externals: {
405
+ electron: 'require("electron")'
406
+ },`)}
407
+ entry: {
408
+ // Main entry point of the Theia application backend:
409
+ 'main': require.resolve('./src-gen/backend/main'),
410
+ // Theia's IPC mechanism:
411
+ 'ipc-bootstrap': require.resolve('@theia/core/lib/node/messaging/ipc-bootstrap'),
412
+ ${this.ifPackage('@theia/plugin-ext', () => `// VS Code extension support:
413
+ 'plugin-host': require.resolve('@theia/plugin-ext/lib/hosted/node/plugin-host'),`)}
414
+ ${this.ifPackage('@theia/process', () => `// Make sure the node-pty thread worker can be executed:
415
+ 'worker/conoutSocketWorker': require.resolve('node-pty/lib/worker/conoutSocketWorker'),`)}
416
+ ${this.ifPackage('@theia/git', () => `// Ensure the git locator process can the started
417
+ 'git-locator-host': require.resolve('@theia/git/lib/node/git-locator/git-locator-host'),`)}
418
+ ${this.ifElectron("'electron-main': require.resolve('./src-gen/backend/electron-main'),")}
419
+ ...commonJsLibraries
420
+ },
421
+ module: {
422
+ rules: [
423
+ // Make sure we can still find and load our native addons.
424
+ {
425
+ test: /\\.node$/,
426
+ loader: 'node-loader',
427
+ options: {
428
+ name: 'native/[name].[ext]'
429
+ }
430
+ },
431
+ {
432
+ test: /\\.js$/,
433
+ enforce: 'pre',
434
+ loader: 'source-map-loader'
435
+ },
436
+ // jsonc-parser exposes its UMD implementation by default, which
437
+ // confuses Webpack leading to missing js in the bundles.
438
+ {
439
+ test: /node_modules[\\/](jsonc-parser)/,
440
+ loader: 'umd-compat-loader'
441
+ }
442
+ ]
443
+ },
444
+ plugins: [
445
+ // Some native dependencies (bindings, @vscode/ripgrep) need special code replacements
446
+ nativePlugin,
447
+ // Optional node dependencies can be safely ignored
448
+ new webpack.IgnorePlugin({
449
+ checkResource: resource => ignoredResources.has(resource)
450
+ })
451
+ ],
452
+ optimization: {
453
+ // Split and reuse code across the various entry points
454
+ splitChunks: {
455
+ chunks: 'all'
456
+ },
457
+ // Only minimize if we run webpack in production mode
458
+ minimize: production,
459
+ minimizer: [
460
+ new TerserPlugin({
461
+ exclude: /^(lib|builtins)\\//
462
+ })
463
+ ]
464
+ },
465
+ };
466
+
467
+ module.exports = {
468
+ config,
469
+ nativePlugin,
470
+ ignoredResources
471
+ };
472
+ `;
320
473
  }
321
474
 
322
475
  }
package/src/rebuild.ts CHANGED
@@ -36,6 +36,9 @@ export const DEFAULT_MODULES = [
36
36
  'native-keymap',
37
37
  'find-git-repositories',
38
38
  'drivelist',
39
+ 'keytar',
40
+ 'ssh2',
41
+ 'cpu-features'
39
42
  ];
40
43
 
41
44
  export interface RebuildOptions {