@theia/core 1.38.0 → 1.39.0-next.1
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/README.md +7 -7
- package/lib/browser/about-dialog.d.ts +2 -1
- package/lib/browser/about-dialog.d.ts.map +1 -1
- package/lib/browser/about-dialog.js +5 -2
- package/lib/browser/about-dialog.js.map +1 -1
- package/lib/browser/frontend-application-bindings.js +1 -1
- package/lib/browser/frontend-application-bindings.js.map +1 -1
- package/lib/browser/frontend-application-module.js +1 -1
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.d.ts +2 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.d.ts.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.js +6 -3
- package/lib/browser/keyboard/browser-keyboard-layout-provider.js.map +1 -1
- package/lib/browser/preferences/injectable-preference-proxy.d.ts +1 -1
- package/lib/browser/preferences/injectable-preference-proxy.d.ts.map +1 -1
- package/lib/browser/preferences/injectable-preference-proxy.js +5 -4
- package/lib/browser/preferences/injectable-preference-proxy.js.map +1 -1
- package/lib/common/logger.d.ts +3 -6
- package/lib/common/logger.d.ts.map +1 -1
- package/lib/common/logger.js +29 -22
- package/lib/common/logger.js.map +1 -1
- package/lib/common/messaging/proxy-factory.d.ts.map +1 -1
- package/lib/common/messaging/proxy-factory.js +4 -0
- package/lib/common/messaging/proxy-factory.js.map +1 -1
- package/lib/common/performance/stopwatch.d.ts +1 -1
- package/lib/common/performance/stopwatch.d.ts.map +1 -1
- package/lib/common/performance/stopwatch.js.map +1 -1
- package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.d.ts +1 -1
- package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.d.ts.map +1 -1
- package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.js +2 -2
- package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.js.map +1 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts +2 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.js +5 -2
- package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
- package/lib/electron-browser/preload.js +1 -1
- package/lib/electron-browser/preload.js.map +1 -1
- package/lib/electron-common/electron-api.d.ts +1 -1
- package/lib/electron-common/electron-api.d.ts.map +1 -1
- package/lib/electron-main/electron-api-main.d.ts.map +1 -1
- package/lib/electron-main/electron-api-main.js +3 -1
- package/lib/electron-main/electron-api-main.js.map +1 -1
- package/lib/electron-node/token/electron-token-validator.d.ts +1 -1
- package/lib/electron-node/token/electron-token-validator.d.ts.map +1 -1
- package/lib/electron-node/token/electron-token-validator.js +2 -2
- package/lib/electron-node/token/electron-token-validator.js.map +1 -1
- package/lib/node/backend-application.d.ts +1 -0
- package/lib/node/backend-application.d.ts.map +1 -1
- package/lib/node/backend-application.js +5 -2
- package/lib/node/backend-application.js.map +1 -1
- package/lib/node/hosting/backend-application-hosts.d.ts +1 -1
- package/lib/node/hosting/backend-application-hosts.d.ts.map +1 -1
- package/lib/node/hosting/backend-application-hosts.js +2 -2
- package/lib/node/hosting/backend-application-hosts.js.map +1 -1
- package/package.json +5 -5
- package/src/browser/about-dialog.tsx +5 -1
- package/src/browser/frontend-application-bindings.ts +1 -1
- package/src/browser/frontend-application-module.ts +2 -2
- package/src/browser/keyboard/browser-keyboard-layout-provider.ts +5 -1
- package/src/browser/preferences/injectable-preference-proxy.ts +5 -4
- package/src/common/logger.ts +12 -14
- package/src/common/messaging/proxy-factory.ts +4 -0
- package/src/common/performance/stopwatch.ts +1 -1
- package/src/electron-browser/keyboard/electron-keyboard-layout-change-notifier.ts +1 -1
- package/src/electron-browser/menu/electron-context-menu-renderer.ts +5 -1
- package/src/electron-browser/preload.ts +1 -1
- package/src/electron-common/electron-api.ts +1 -1
- package/src/electron-main/electron-api-main.ts +3 -1
- package/src/electron-node/token/electron-token-validator.ts +1 -1
- package/src/node/backend-application.ts +4 -0
- package/src/node/hosting/backend-application-hosts.ts +1 -1
|
@@ -48,7 +48,7 @@ export class InjectablePreferenceProxy<T extends Record<string, JSONValue>> impl
|
|
|
48
48
|
|
|
49
49
|
@inject(PreferenceProxyOptions) protected readonly options: PreferenceProxyOptions;
|
|
50
50
|
@inject(PreferenceService) protected readonly preferences: PreferenceService;
|
|
51
|
-
@inject(PreferenceProxySchema) protected readonly promisedSchema: PreferenceSchema | Promise<PreferenceSchema>;
|
|
51
|
+
@inject(PreferenceProxySchema) protected readonly promisedSchema: () => PreferenceSchema | Promise<PreferenceSchema>;
|
|
52
52
|
@inject(PreferenceProxyFactory) protected readonly factory: PreferenceProxyFactory;
|
|
53
53
|
protected toDispose = new DisposableCollection();
|
|
54
54
|
protected _onPreferenceChangedEmitter: Emitter<PreferenceChangeEvent<T>> | undefined;
|
|
@@ -95,10 +95,11 @@ export class InjectablePreferenceProxy<T extends Record<string, JSONValue>> impl
|
|
|
95
95
|
|
|
96
96
|
@postConstruct()
|
|
97
97
|
protected init(): void {
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
const schema = this.promisedSchema();
|
|
99
|
+
if (schema instanceof Promise) {
|
|
100
|
+
schema.then(resolvedSchema => this.schema = resolvedSchema);
|
|
100
101
|
} else {
|
|
101
|
-
this.schema =
|
|
102
|
+
this.schema = schema;
|
|
102
103
|
}
|
|
103
104
|
}
|
|
104
105
|
|
package/src/common/logger.ts
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import { inject, injectable } from 'inversify';
|
|
17
|
+
import { inject, injectable, postConstruct } from 'inversify';
|
|
18
18
|
import { LoggerWatcher } from './logger-watcher';
|
|
19
19
|
import { ILoggerServer, LogLevel, ConsoleLogger, rootLoggerName } from './logger-protocol';
|
|
20
20
|
|
|
@@ -235,30 +235,28 @@ export class Logger implements ILogger {
|
|
|
235
235
|
/* A promise resolved when the logger has been created by the backend. */
|
|
236
236
|
protected created: Promise<void>;
|
|
237
237
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
@inject(ILoggerServer) protected readonly server: ILoggerServer,
|
|
243
|
-
@inject(LoggerWatcher) protected readonly loggerWatcher: LoggerWatcher,
|
|
244
|
-
@inject(LoggerFactory) protected readonly factory: LoggerFactory,
|
|
245
|
-
@inject(LoggerName) protected name: string) {
|
|
238
|
+
@inject(ILoggerServer) protected readonly server: ILoggerServer;
|
|
239
|
+
@inject(LoggerWatcher) protected readonly loggerWatcher: LoggerWatcher;
|
|
240
|
+
@inject(LoggerFactory) protected readonly factory: LoggerFactory;
|
|
241
|
+
@inject(LoggerName) protected name: string;
|
|
246
242
|
|
|
247
|
-
|
|
243
|
+
@postConstruct()
|
|
244
|
+
protected init(): void {
|
|
245
|
+
if (this.name !== rootLoggerName) {
|
|
248
246
|
/* Creating a child logger. */
|
|
249
|
-
this.created = server.child(name);
|
|
247
|
+
this.created = this.server.child(this.name);
|
|
250
248
|
} else {
|
|
251
249
|
/* Creating the root logger (it already exists at startup). */
|
|
252
250
|
this.created = Promise.resolve();
|
|
253
251
|
}
|
|
254
252
|
|
|
255
253
|
/* Fetch the log level so it's cached in the frontend. */
|
|
256
|
-
this._logLevel = this.created.then(_ => this.server.getLogLevel(name));
|
|
254
|
+
this._logLevel = this.created.then(_ => this.server.getLogLevel(this.name));
|
|
257
255
|
|
|
258
256
|
/* Update the log level if it changes in the backend. */
|
|
259
|
-
loggerWatcher.onLogLevelChanged(event => {
|
|
257
|
+
this.loggerWatcher.onLogLevelChanged(event => {
|
|
260
258
|
this.created.then(() => {
|
|
261
|
-
if (event.loggerName === name) {
|
|
259
|
+
if (event.loggerName === this.name) {
|
|
262
260
|
this._logLevel = Promise.resolve(event.newLogLevel);
|
|
263
261
|
}
|
|
264
262
|
});
|
|
@@ -241,6 +241,10 @@ export class JsonRpcProxyFactory<T extends object> implements ProxyHandler<T> {
|
|
|
241
241
|
if (p === 'onDidCloseConnection') {
|
|
242
242
|
return this.onDidCloseConnectionEmitter.event;
|
|
243
243
|
}
|
|
244
|
+
if (p === 'then') {
|
|
245
|
+
// Prevent inversify from identifying this proxy as a promise object.
|
|
246
|
+
return undefined;
|
|
247
|
+
}
|
|
244
248
|
const isNotify = this.isNotification(p);
|
|
245
249
|
return (...args: any[]) => {
|
|
246
250
|
const method = p.toString();
|
|
@@ -50,7 +50,7 @@ export abstract class Stopwatch {
|
|
|
50
50
|
@inject(ILogger)
|
|
51
51
|
protected readonly logger: ILogger;
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
constructor(protected readonly defaultLogOptions: LogOptions) {
|
|
54
54
|
if (!defaultLogOptions.defaultLogLevel) {
|
|
55
55
|
defaultLogOptions.defaultLogLevel = DEFAULT_LOG_LEVEL;
|
|
56
56
|
}
|
|
@@ -32,7 +32,7 @@ export class ElectronKeyboardLayoutChangeNotifier implements KeyboardLayoutChang
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
@postConstruct()
|
|
35
|
-
protected
|
|
35
|
+
protected init(): void {
|
|
36
36
|
window.electronTheiaCore.onKeyboardLayoutChanged((newLayout: NativeKeyboardLayout) => this.nativeLayoutChanged.fire(newLayout));
|
|
37
37
|
}
|
|
38
38
|
|
|
@@ -90,7 +90,11 @@ export class ElectronContextMenuRenderer extends BrowserContextMenuRenderer {
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
@postConstruct()
|
|
93
|
-
protected
|
|
93
|
+
protected init(): void {
|
|
94
|
+
this.doInit();
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
protected async doInit(): Promise<void> {
|
|
94
98
|
this.useNativeStyle = await window.electronTheiaCore.getTitleBarStyleAtStartup() === 'native';
|
|
95
99
|
}
|
|
96
100
|
|
|
@@ -71,7 +71,7 @@ const api: TheiaCoreAPI = {
|
|
|
71
71
|
commandHandlers.set(mainMenuId, handlers);
|
|
72
72
|
ipcRenderer.send(CHANNEL_SET_MENU, mainMenuId, convertMenu(menu, handlers));
|
|
73
73
|
},
|
|
74
|
-
getSecurityToken: () => ipcRenderer.
|
|
74
|
+
getSecurityToken: () => ipcRenderer.sendSync(CHANNEL_GET_SECURITY_TOKEN),
|
|
75
75
|
focusWindow: (name: string) => ipcRenderer.send(CHANNEL_FOCUS_WINDOW, name),
|
|
76
76
|
showItemInFolder: fsPath => {
|
|
77
77
|
ipcRenderer.send(CHANNEL_SHOW_ITEM_IN_FOLDER, fsPath);
|
|
@@ -41,7 +41,7 @@ export type InternalMenuDto = Omit<MenuDto, 'execute' | 'submenu'> & {
|
|
|
41
41
|
export type WindowEvent = 'maximize' | 'unmaximize' | 'focus';
|
|
42
42
|
|
|
43
43
|
export interface TheiaCoreAPI {
|
|
44
|
-
getSecurityToken: () =>
|
|
44
|
+
getSecurityToken: () => string;
|
|
45
45
|
attachSecurityToken: (endpoint: string) => Promise<void>;
|
|
46
46
|
|
|
47
47
|
setMenuBarVisible(visible: boolean, windowName?: string): void;
|
|
@@ -64,7 +64,9 @@ export class TheiaMainApi implements ElectronMainApplicationContribution {
|
|
|
64
64
|
|
|
65
65
|
onStart(application: ElectronMainApplication): MaybePromise<void> {
|
|
66
66
|
// electron security token
|
|
67
|
-
ipcMain.
|
|
67
|
+
ipcMain.on(CHANNEL_GET_SECURITY_TOKEN, event => {
|
|
68
|
+
event.returnValue = this.electronSecurityToken.value;
|
|
69
|
+
});
|
|
68
70
|
|
|
69
71
|
ipcMain.handle(CHANNEL_ATTACH_SECURITY_TOKEN, (event, endpoint) => session.defaultSession.cookies.set({
|
|
70
72
|
url: endpoint,
|
|
@@ -31,7 +31,7 @@ export class ElectronTokenValidator implements WsRequestValidatorContribution {
|
|
|
31
31
|
protected electronSecurityToken: ElectronSecurityToken;
|
|
32
32
|
|
|
33
33
|
@postConstruct()
|
|
34
|
-
protected
|
|
34
|
+
protected init(): void {
|
|
35
35
|
this.electronSecurityToken = this.getToken();
|
|
36
36
|
}
|
|
37
37
|
|
|
@@ -196,6 +196,10 @@ export class BackendApplication {
|
|
|
196
196
|
}
|
|
197
197
|
|
|
198
198
|
@postConstruct()
|
|
199
|
+
protected init(): void {
|
|
200
|
+
this.configure();
|
|
201
|
+
}
|
|
202
|
+
|
|
199
203
|
protected async configure(): Promise<void> {
|
|
200
204
|
// Do not await the initialization because contributions are expected to handle
|
|
201
205
|
// concurrent initialize/configure in undefined order if they provide both
|