@theia/core 1.71.0-next.64 → 1.71.0-next.72

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 (50) hide show
  1. package/lib/browser/catalog.json +30 -2
  2. package/lib/browser/frontend-application-contribution.d.ts +2 -2
  3. package/lib/browser/frontend-application-contribution.d.ts.map +1 -1
  4. package/lib/browser/frontend-application.d.ts +2 -0
  5. package/lib/browser/frontend-application.d.ts.map +1 -1
  6. package/lib/browser/frontend-application.js +15 -6
  7. package/lib/browser/frontend-application.js.map +1 -1
  8. package/lib/browser/performance/frontend-stopwatch.js +1 -1
  9. package/lib/browser/performance/frontend-stopwatch.js.map +1 -1
  10. package/lib/common/performance/index.d.ts +1 -0
  11. package/lib/common/performance/index.d.ts.map +1 -1
  12. package/lib/common/performance/index.js +1 -0
  13. package/lib/common/performance/index.js.map +1 -1
  14. package/lib/common/performance/simple-stopwatch.d.ts +18 -0
  15. package/lib/common/performance/simple-stopwatch.d.ts.map +1 -0
  16. package/lib/common/performance/simple-stopwatch.js +80 -0
  17. package/lib/common/performance/simple-stopwatch.js.map +1 -0
  18. package/lib/common/performance/stopwatch.d.ts +41 -0
  19. package/lib/common/performance/stopwatch.d.ts.map +1 -1
  20. package/lib/common/performance/stopwatch.js +89 -3
  21. package/lib/common/performance/stopwatch.js.map +1 -1
  22. package/lib/common/performance/stopwatch.spec.d.ts +2 -0
  23. package/lib/common/performance/stopwatch.spec.d.ts.map +1 -0
  24. package/lib/common/performance/stopwatch.spec.js +256 -0
  25. package/lib/common/performance/stopwatch.spec.js.map +1 -0
  26. package/lib/electron-main/electron-main-application-module.d.ts.map +1 -1
  27. package/lib/electron-main/electron-main-application-module.js +3 -0
  28. package/lib/electron-main/electron-main-application-module.js.map +1 -1
  29. package/lib/electron-main/electron-main-application.d.ts +2 -0
  30. package/lib/electron-main/electron-main-application.d.ts.map +1 -1
  31. package/lib/electron-main/electron-main-application.js +14 -5
  32. package/lib/electron-main/electron-main-application.js.map +1 -1
  33. package/lib/node/backend-application.d.ts +2 -0
  34. package/lib/node/backend-application.d.ts.map +1 -1
  35. package/lib/node/backend-application.js +17 -5
  36. package/lib/node/backend-application.js.map +1 -1
  37. package/lib/node/performance/node-stopwatch.js +1 -1
  38. package/lib/node/performance/node-stopwatch.js.map +1 -1
  39. package/package.json +4 -4
  40. package/src/browser/frontend-application-contribution.ts +2 -2
  41. package/src/browser/frontend-application.ts +26 -17
  42. package/src/browser/performance/frontend-stopwatch.ts +1 -1
  43. package/src/common/performance/index.ts +1 -0
  44. package/src/common/performance/simple-stopwatch.ts +91 -0
  45. package/src/common/performance/stopwatch.spec.ts +321 -0
  46. package/src/common/performance/stopwatch.ts +103 -2
  47. package/src/electron-main/electron-main-application-module.ts +3 -0
  48. package/src/electron-main/electron-main-application.ts +21 -5
  49. package/src/node/backend-application.ts +27 -10
  50. package/src/node/performance/node-stopwatch.ts +1 -1
@@ -107,7 +107,7 @@ let BackendApplication = class BackendApplication {
107
107
  await Promise.all(this.contributionsProvider.getContributions().map(async (contribution) => {
108
108
  if (contribution.initialize) {
109
109
  try {
110
- await this.measure(contribution.constructor.name + '.initialize', () => contribution.initialize());
110
+ await this.measureContribution(contribution, 'initialize', () => contribution.initialize());
111
111
  }
112
112
  catch (error) {
113
113
  console.error('Could not initialize contribution', error);
@@ -119,6 +119,7 @@ let BackendApplication = class BackendApplication {
119
119
  return this._configured;
120
120
  }
121
121
  init() {
122
+ this.settlementContext = new common_1.MeasurementContext(this.stopwatch, 'Backend', TIMER_WARNING_THRESHOLD);
122
123
  this._configured = this.configure();
123
124
  }
124
125
  async configure() {
@@ -137,7 +138,7 @@ let BackendApplication = class BackendApplication {
137
138
  await Promise.all(this.contributionsProvider.getContributions().map(async (contribution) => {
138
139
  if (contribution.configure) {
139
140
  try {
140
- await contribution.configure(this.app);
141
+ await this.measureContribution(contribution, 'configure', () => contribution.configure(this.app));
141
142
  }
142
143
  catch (error) {
143
144
  console.error('Could not configure contribution', error);
@@ -150,6 +151,7 @@ let BackendApplication = class BackendApplication {
150
151
  this.app.use(...handlers);
151
152
  }
152
153
  async start(port, hostname) {
154
+ const startupMeasurement = this.stopwatch.start('backend-startup');
153
155
  hostname ??= this.cliParams.hostname;
154
156
  port ??= this.cliParams.port;
155
157
  if (this.cliParams.dnsDefaultResultOrder !== 'nodeDefault') {
@@ -203,14 +205,17 @@ let BackendApplication = class BackendApplication {
203
205
  for (const contribution of this.contributionsProvider.getContributions()) {
204
206
  if (contribution.onStart) {
205
207
  try {
206
- await this.measure(contribution.constructor.name + '.onStart', () => contribution.onStart(server));
208
+ await this.measureContribution(contribution, 'onStart', () => contribution.onStart(server));
207
209
  }
208
210
  catch (error) {
209
211
  console.error('Could not start contribution', error);
210
212
  }
211
213
  }
212
214
  }
213
- return this.stopwatch.startAsync('server', 'Finished starting backend application', () => deferred.promise);
215
+ await deferred.promise;
216
+ startupMeasurement.info('Backend application startup sequence completed (async work may still be pending)');
217
+ this.settlementContext?.armAllSettled();
218
+ return server;
214
219
  }
215
220
  getHttpUrl({ address, port, family }, ssl) {
216
221
  const scheme = ssl ? 'https' : 'http';
@@ -246,8 +251,15 @@ let BackendApplication = class BackendApplication {
246
251
  res.set('Content-Type', contentType);
247
252
  next();
248
253
  }
254
+ async measureContribution(contribution, hook, fn) {
255
+ let innerResult;
256
+ this.settlementContext?.ensureEntry(contribution);
257
+ const result = await this.measure(contribution.constructor.name + '.' + hook, () => (innerResult = fn()));
258
+ this.settlementContext?.trackSettlement(contribution, innerResult);
259
+ return result;
260
+ }
249
261
  async measure(name, fn) {
250
- return this.stopwatch.startAsync(name, `Backend ${name}`, fn, { thresholdMillis: TIMER_WARNING_THRESHOLD });
262
+ return this.stopwatch.startAsync(name, `Backend ${name}`, fn, { thresholdMillis: TIMER_WARNING_THRESHOLD, defaultLogLevel: common_1.LogLevel.DEBUG });
251
263
  }
252
264
  handleUncaughtError(error) {
253
265
  if (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"backend-application.js","sourceRoot":"","sources":["../../src/node/backend-application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend-application.js","sourceRoot":"","sources":["../../src/node/backend-application.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ const common_1 = require("../../common");
23
23
  let NodeStopwatch = class NodeStopwatch extends common_1.Stopwatch {
24
24
  constructor() {
25
25
  super({
26
- owner: 'backend',
26
+ owner: 'backend process',
27
27
  now: () => perf_hooks_1.performance.now(),
28
28
  });
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"node-stopwatch.js","sourceRoot":"","sources":["../../../src/node/performance/node-stopwatch.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;gFAcgF;;;;AAEhF,yCAAuC;AACvC,2CAAyC;AACzC,yCAA0E;AAGnE,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,kBAAS;IAExC;QACI,KAAK,CAAC;YACF,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,GAAG,EAAE,CAAC,wBAAW,CAAC,GAAG,EAAE;SAC/B,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,OAA4B;QAC5C,MAAM,SAAS,GAAG,wBAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE;YACrC,MAAM,QAAQ,GAAG,wBAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAC/C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QACnC,CAAC,EAAE,OAAO,CAAC,CAAC;IAChB,CAAC;CAEJ,CAAA;AAlBY,sCAAa;wBAAb,aAAa;IADzB,IAAA,sBAAU,GAAE;;GACA,aAAa,CAkBzB;AAAA,CAAC"}
1
+ {"version":3,"file":"node-stopwatch.js","sourceRoot":"","sources":["../../../src/node/performance/node-stopwatch.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;gFAcgF;;;;AAEhF,yCAAuC;AACvC,2CAAyC;AACzC,yCAA0E;AAGnE,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,kBAAS;IAExC;QACI,KAAK,CAAC;YACF,KAAK,EAAE,iBAAiB;YACxB,GAAG,EAAE,GAAG,EAAE,CAAC,wBAAW,CAAC,GAAG,EAAE;SAC/B,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,OAA4B;QAC5C,MAAM,SAAS,GAAG,wBAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE;YACrC,MAAM,QAAQ,GAAG,wBAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAC/C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QACnC,CAAC,EAAE,OAAO,CAAC,CAAC;IAChB,CAAC;CAEJ,CAAA;AAlBY,sCAAa;wBAAb,aAAa;IADzB,IAAA,sBAAU,GAAE;;GACA,aAAa,CAkBzB;AAAA,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theia/core",
3
- "version": "1.71.0-next.64+5f7caff6d",
3
+ "version": "1.71.0-next.72+95c8dba0e",
4
4
  "description": "Theia is a cloud & desktop IDE framework implemented in TypeScript.",
5
5
  "main": "lib/common/index.js",
6
6
  "typings": "lib/common/index.d.ts",
@@ -17,8 +17,8 @@
17
17
  "@lumino/virtualdom": "^2.0.4",
18
18
  "@lumino/widgets": "2.7.5",
19
19
  "@parcel/watcher": "^2.5.6",
20
- "@theia/application-package": "1.71.0-next.64+5f7caff6d",
21
- "@theia/request": "1.71.0-next.64+5f7caff6d",
20
+ "@theia/application-package": "1.71.0-next.72+95c8dba0e",
21
+ "@theia/request": "1.71.0-next.72+95c8dba0e",
22
22
  "@types/body-parser": "^1.19.6",
23
23
  "@types/express": "^4.17.21",
24
24
  "@types/fs-extra": "^4.0.2",
@@ -221,5 +221,5 @@
221
221
  "nyc": {
222
222
  "extends": "../../configs/nyc.json"
223
223
  },
224
- "gitHead": "5f7caff6d4a136452787442612656962b5c5099e"
224
+ "gitHead": "95c8dba0ee6349c6be262ac2cf383909a3b62761"
225
225
  }
@@ -28,7 +28,7 @@ export interface FrontendApplicationContribution {
28
28
  /**
29
29
  * Called on application startup before configure is called.
30
30
  */
31
- initialize?(): void;
31
+ initialize?(): MaybePromise<void>;
32
32
 
33
33
  /**
34
34
  * Called before commands, key bindings and menus are initialized.
@@ -103,7 +103,7 @@ export namespace OnWillStopAction {
103
103
  @injectable()
104
104
  export abstract class DefaultFrontendApplicationContribution implements FrontendApplicationContribution {
105
105
 
106
- initialize(): void {
106
+ initialize(): MaybePromise<void> {
107
107
  // NOOP
108
108
  }
109
109
 
@@ -15,7 +15,7 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  import { inject, injectable, named } from 'inversify';
18
- import { ContributionProvider, CommandRegistry, MenuModelRegistry, isOSX, BackendStopwatch, LogLevel, Stopwatch } from '../common';
18
+ import { ContributionProvider, CommandRegistry, MenuModelRegistry, isOSX, BackendStopwatch, LogLevel, MeasurementContext, Stopwatch } from '../common';
19
19
  import { MaybePromise } from '../common/types';
20
20
  import { KeybindingRegistry } from './keybinding';
21
21
  import { Widget } from './widgets';
@@ -48,6 +48,8 @@ export class FrontendApplication {
48
48
  @inject(BackendStopwatch)
49
49
  protected readonly backendStopwatch: BackendStopwatch;
50
50
 
51
+ private settlementContext?: MeasurementContext<FrontendApplicationContribution>;
52
+
51
53
  constructor(
52
54
  @inject(CommandRegistry) protected readonly commands: CommandRegistry,
53
55
  @inject(MenuModelRegistry) protected readonly menus: MenuModelRegistry,
@@ -74,6 +76,7 @@ export class FrontendApplication {
74
76
  */
75
77
  async start(): Promise<void> {
76
78
  const startup = this.backendStopwatch.start('frontend');
79
+ this.settlementContext = new MeasurementContext(this.stopwatch, 'Frontend', TIMER_WARNING_THRESHOLD);
77
80
 
78
81
  await this.measure('startContributions', () => this.startContributions(), 'Start frontend contributions', false);
79
82
  this.stateService.state = 'started_contributions';
@@ -91,8 +94,9 @@ export class FrontendApplication {
91
94
  await this.measure('revealShell', () => this.revealShell(host), 'Replace loading indicator with ready workbench UI (animation)', false);
92
95
  this.registerEventListeners();
93
96
  this.stateService.state = 'ready';
97
+ this.settlementContext?.armAllSettled();
94
98
 
95
- startup.then(idToken => this.backendStopwatch.stop(idToken, 'Frontend application start', []));
99
+ startup.then(idToken => this.backendStopwatch.stop(idToken, 'Frontend application startup sequence completed (async work may still be pending)', []));
96
100
  }
97
101
 
98
102
  /**
@@ -229,9 +233,8 @@ export class FrontendApplication {
229
233
  protected async createDefaultLayout(): Promise<void> {
230
234
  for (const contribution of this.contributions.getContributions()) {
231
235
  if (contribution.initializeLayout) {
232
- await this.measure(contribution.constructor.name + '.initializeLayout',
233
- () => contribution.initializeLayout!(this)
234
- );
236
+ await this.measureContribution(contribution, 'initializeLayout',
237
+ () => contribution.initializeLayout!(this));
235
238
  }
236
239
  }
237
240
  }
@@ -239,9 +242,8 @@ export class FrontendApplication {
239
242
  protected async fireOnDidInitializeLayout(): Promise<void> {
240
243
  for (const contribution of this.contributions.getContributions()) {
241
244
  if (contribution.onDidInitializeLayout) {
242
- await this.measure(contribution.constructor.name + '.onDidInitializeLayout',
243
- () => contribution.onDidInitializeLayout!(this)
244
- );
245
+ await this.measureContribution(contribution, 'onDidInitializeLayout',
246
+ () => contribution.onDidInitializeLayout!(this));
245
247
  }
246
248
  }
247
249
  }
@@ -253,9 +255,8 @@ export class FrontendApplication {
253
255
  for (const contribution of this.contributions.getContributions()) {
254
256
  if (contribution.initialize) {
255
257
  try {
256
- await this.measure(contribution.constructor.name + '.initialize',
257
- () => contribution.initialize!()
258
- );
258
+ await this.measureContribution(contribution, 'initialize',
259
+ () => contribution.initialize!());
259
260
  } catch (error) {
260
261
  console.error('Could not initialize contribution', error);
261
262
  }
@@ -265,9 +266,8 @@ export class FrontendApplication {
265
266
  for (const contribution of this.contributions.getContributions()) {
266
267
  if (contribution.configure) {
267
268
  try {
268
- await this.measure(contribution.constructor.name + '.configure',
269
- () => contribution.configure!(this)
270
- );
269
+ await this.measureContribution(contribution, 'configure',
270
+ () => contribution.configure!(this));
271
271
  } catch (error) {
272
272
  console.error('Could not configure contribution', error);
273
273
  }
@@ -291,9 +291,8 @@ export class FrontendApplication {
291
291
  for (const contribution of this.contributions.getContributions()) {
292
292
  if (contribution.onStart) {
293
293
  try {
294
- await this.measure(contribution.constructor.name + '.onStart',
295
- () => contribution.onStart!(this)
296
- );
294
+ await this.measureContribution(contribution, 'onStart',
295
+ () => contribution.onStart!(this));
297
296
  } catch (error) {
298
297
  console.error('Could not start contribution', error);
299
298
  }
@@ -318,6 +317,16 @@ export class FrontendApplication {
318
317
  console.info('<<< All frontend contributions have been stopped.');
319
318
  }
320
319
 
320
+ protected async measureContribution<T>(contribution: FrontendApplicationContribution, hook: string, fn: () => MaybePromise<T>): Promise<T> {
321
+ let innerResult: MaybePromise<T>;
322
+ this.settlementContext?.ensureEntry(contribution);
323
+ const result = await this.measure(contribution.constructor.name + '.' + hook,
324
+ () => (innerResult = fn())
325
+ );
326
+ this.settlementContext?.trackSettlement(contribution, innerResult!);
327
+ return result;
328
+ }
329
+
321
330
  protected async measure<T>(name: string, fn: () => MaybePromise<T>, message = `Frontend ${name}`, threshold = true): Promise<T> {
322
331
  return this.stopwatch.startAsync(name, message, fn,
323
332
  threshold ? { thresholdMillis: TIMER_WARNING_THRESHOLD, defaultLogLevel: LogLevel.DEBUG } : {});
@@ -22,7 +22,7 @@ export class FrontendStopwatch extends Stopwatch {
22
22
 
23
23
  constructor() {
24
24
  super({
25
- owner: 'frontend',
25
+ owner: 'frontend page',
26
26
  now: () => performance.now(),
27
27
  });
28
28
  }
@@ -16,4 +16,5 @@
16
16
 
17
17
  export * from './measurement';
18
18
  export * from './stopwatch';
19
+ export * from './simple-stopwatch';
19
20
  export * from './measurement-protocol';
@@ -0,0 +1,91 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2026 STMicroelectronics and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ /* eslint-disable @typescript-eslint/no-explicit-any */
18
+
19
+ import { LogLevel } from '../logger';
20
+ import { Measurement, MeasurementOptions } from './measurement';
21
+ import { Stopwatch } from './stopwatch';
22
+
23
+ /**
24
+ * A simple {@link Stopwatch} that uses a caller-supplied time function and logs
25
+ * via `console`. Usable without Inversify DI: this class does not assign nor
26
+ * use the inherited `logger` field.
27
+ */
28
+ export class SimpleStopwatch extends Stopwatch {
29
+
30
+ constructor(owner: string, now: () => number) {
31
+ super({ owner, now });
32
+ }
33
+
34
+ start(name: string, options?: MeasurementOptions): Measurement {
35
+ const now = this.defaultLogOptions.now;
36
+ const startTime = now();
37
+
38
+ return this.createMeasurement(name, () => ({
39
+ startTime,
40
+ duration: now() - startTime
41
+ }), options);
42
+ }
43
+
44
+ protected override log(measurement: Measurement, activity: string, options: {
45
+ now: () => number;
46
+ owner?: string;
47
+ context?: string;
48
+ arguments?: any[];
49
+ } & MeasurementOptions): void {
50
+ const elapsed = measurement.stop();
51
+ const level = this.logLevel(elapsed, options);
52
+
53
+ if (Number.isNaN(elapsed)) {
54
+ switch (level) {
55
+ case LogLevel.ERROR:
56
+ case LogLevel.FATAL:
57
+ break;
58
+ default:
59
+ return;
60
+ }
61
+ }
62
+
63
+ const origin = options.owner ?? 'application';
64
+ const timeFromStart = `${(options.now() / 1000).toFixed(3)} s since ${origin} start`;
65
+ const whatWasMeasured = options.context ? `[${options.context}] ${activity}` : activity;
66
+ const message = `${whatWasMeasured}: ${elapsed.toFixed(1)} ms [${timeFromStart}]`;
67
+ const args = options.arguments ?? [];
68
+
69
+ switch (level) {
70
+ case LogLevel.FATAL:
71
+ case LogLevel.ERROR:
72
+ console.error(message, ...args);
73
+ break;
74
+ case LogLevel.WARN:
75
+ console.warn(message, ...args);
76
+ break;
77
+ case LogLevel.INFO:
78
+ console.info(message, ...args);
79
+ break;
80
+ case LogLevel.DEBUG:
81
+ console.debug(message, ...args);
82
+ break;
83
+ case LogLevel.TRACE:
84
+ console.trace(message, ...args);
85
+ break;
86
+ default:
87
+ console.log(message, ...args);
88
+ break;
89
+ }
90
+ }
91
+ }