@theia/core 1.41.0 → 1.42.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/i18n/nls.cs.json +1 -0
- package/i18n/nls.de.json +1 -0
- package/i18n/nls.es.json +1 -0
- package/i18n/nls.fr.json +1 -0
- package/i18n/nls.hu.json +1 -0
- package/i18n/nls.it.json +1 -0
- package/i18n/nls.ja.json +1 -0
- package/i18n/nls.json +1 -0
- package/i18n/nls.pl.json +1 -0
- package/i18n/nls.pt-br.json +1 -0
- package/i18n/nls.pt-pt.json +1 -0
- package/i18n/nls.ru.json +1 -0
- package/i18n/nls.zh-cn.json +1 -0
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +1 -0
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/preload/i18n-preload-contribution.d.ts +7 -0
- package/lib/browser/preload/i18n-preload-contribution.d.ts.map +1 -0
- package/lib/browser/preload/i18n-preload-contribution.js +63 -0
- package/lib/browser/preload/i18n-preload-contribution.js.map +1 -0
- package/lib/browser/preload/os-preload-contribution.d.ts +7 -0
- package/lib/browser/preload/os-preload-contribution.d.ts.map +1 -0
- package/lib/browser/preload/os-preload-contribution.js +49 -0
- package/lib/browser/preload/os-preload-contribution.js.map +1 -0
- package/lib/browser/preload/preload-module.d.ts +4 -0
- package/lib/browser/preload/preload-module.d.ts.map +1 -0
- package/lib/browser/preload/preload-module.js +39 -0
- package/lib/browser/preload/preload-module.js.map +1 -0
- package/lib/browser/preload/preloader.d.ts +12 -0
- package/lib/browser/preload/preloader.d.ts.map +1 -0
- package/lib/browser/preload/preloader.js +45 -0
- package/lib/browser/preload/preloader.js.map +1 -0
- package/lib/browser/preload/theme-preload-contribution.d.ts +5 -0
- package/lib/browser/preload/theme-preload-contribution.d.ts.map +1 -0
- package/lib/browser/preload/theme-preload-contribution.js +40 -0
- package/lib/browser/preload/theme-preload-contribution.js.map +1 -0
- package/lib/browser/shell/application-shell.d.ts +2 -0
- package/lib/browser/shell/application-shell.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js +8 -0
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/common/i18n/localization-server.d.ts +7 -0
- package/lib/common/i18n/localization-server.d.ts.map +1 -0
- package/lib/common/i18n/localization-server.js +21 -0
- package/lib/common/i18n/localization-server.js.map +1 -0
- package/lib/common/keys.d.ts.map +1 -1
- package/lib/common/keys.js +4 -3
- package/lib/common/keys.js.map +1 -1
- package/lib/common/logger-protocol.d.ts +2 -0
- package/lib/common/logger-protocol.d.ts.map +1 -1
- package/lib/common/logger-protocol.js +3 -0
- package/lib/common/logger-protocol.js.map +1 -1
- package/lib/common/logger-watcher.d.ts +4 -3
- package/lib/common/logger-watcher.d.ts.map +1 -1
- package/lib/common/logger-watcher.js +10 -6
- package/lib/common/logger-watcher.js.map +1 -1
- package/lib/common/logger.d.ts.map +1 -1
- package/lib/common/logger.js +4 -0
- package/lib/common/logger.js.map +1 -1
- package/lib/common/os.d.ts +5 -0
- package/lib/common/os.d.ts.map +1 -1
- package/lib/common/os.js +3 -1
- package/lib/common/os.js.map +1 -1
- package/lib/common/quick-pick-service.d.ts +6 -0
- package/lib/common/quick-pick-service.d.ts.map +1 -1
- package/lib/common/quick-pick-service.js.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.d.ts +4 -0
- package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.js +12 -0
- package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
- package/lib/electron-browser/preload.d.ts.map +1 -1
- package/lib/electron-browser/preload.js +3 -0
- package/lib/electron-browser/preload.js.map +1 -1
- package/lib/electron-common/electron-api.d.ts +2 -0
- package/lib/electron-common/electron-api.d.ts.map +1 -1
- package/lib/electron-common/electron-api.js +2 -1
- package/lib/electron-common/electron-api.js.map +1 -1
- package/lib/electron-main/electron-api-main.d.ts.map +1 -1
- package/lib/electron-main/electron-api-main.js +1 -0
- package/lib/electron-main/electron-api-main.js.map +1 -1
- package/lib/electron-main/electron-main-application.d.ts +6 -0
- package/lib/electron-main/electron-main-application.d.ts.map +1 -1
- package/lib/electron-main/electron-main-application.js +34 -4
- package/lib/electron-main/electron-main-application.js.map +1 -1
- package/lib/node/backend-application-module.d.ts.map +1 -1
- package/lib/node/backend-application-module.js +4 -3
- package/lib/node/backend-application-module.js.map +1 -1
- package/lib/node/console-logger-server.d.ts.map +1 -1
- package/lib/node/console-logger-server.js +5 -1
- package/lib/node/console-logger-server.js.map +1 -1
- package/lib/node/i18n/i18n-backend-module.d.ts.map +1 -1
- package/lib/node/i18n/i18n-backend-module.js +7 -4
- package/lib/node/i18n/i18n-backend-module.js.map +1 -1
- package/lib/node/i18n/{localization-backend-contribution.d.ts → localization-server.d.ts} +5 -4
- package/lib/node/i18n/localization-server.d.ts.map +1 -0
- package/lib/node/i18n/{localization-backend-contribution.js → localization-server.js} +13 -16
- package/lib/node/i18n/localization-server.js.map +1 -0
- package/lib/node/logger-backend-module.d.ts.map +1 -1
- package/lib/node/logger-backend-module.js +6 -1
- package/lib/node/logger-backend-module.js.map +1 -1
- package/lib/node/os-backend-provider.d.ts +5 -0
- package/lib/node/os-backend-provider.d.ts.map +1 -0
- package/lib/node/{os-backend-application-contribution.js → os-backend-provider.js} +8 -10
- package/lib/node/os-backend-provider.js.map +1 -0
- package/package.json +9 -8
- package/src/browser/common-frontend-contribution.ts +1 -0
- package/src/browser/preload/i18n-preload-contribution.ts +50 -0
- package/src/browser/preload/os-preload-contribution.ts +37 -0
- package/src/browser/preload/preload-module.ts +45 -0
- package/src/browser/preload/preloader.ts +37 -0
- package/src/browser/preload/theme-preload-contribution.ts +31 -0
- package/src/browser/shell/application-shell.ts +11 -0
- package/src/common/i18n/localization-server.ts +25 -0
- package/src/common/i18n/nls.metadata.json +3969 -3719
- package/src/common/keys.ts +4 -3
- package/src/common/logger-protocol.ts +4 -0
- package/src/common/logger-watcher.ts +12 -7
- package/src/common/logger.ts +5 -0
- package/src/common/os.ts +8 -0
- package/src/common/quick-pick-service.ts +1 -0
- package/src/electron-browser/menu/electron-menu-contribution.ts +13 -0
- package/src/electron-browser/preload.ts +4 -1
- package/src/electron-common/electron-api.ts +2 -0
- package/src/electron-main/electron-api-main.ts +4 -1
- package/src/electron-main/electron-main-application.ts +40 -4
- package/src/node/backend-application-module.ts +7 -4
- package/src/node/console-logger-server.ts +5 -2
- package/src/node/i18n/i18n-backend-module.ts +9 -4
- package/src/node/i18n/{localization-backend-contribution.ts → localization-server.ts} +9 -10
- package/src/node/logger-backend-module.ts +8 -1
- package/src/node/{os-backend-application-contribution.ts → os-backend-provider.ts} +4 -9
- package/lib/browser/preloader.d.ts +0 -2
- package/lib/browser/preloader.d.ts.map +0 -1
- package/lib/browser/preloader.js +0 -75
- package/lib/browser/preloader.js.map +0 -1
- package/lib/node/i18n/localization-backend-contribution.d.ts.map +0 -1
- package/lib/node/i18n/localization-backend-contribution.js.map +0 -1
- package/lib/node/os-backend-application-contribution.d.ts +0 -6
- package/lib/node/os-backend-application-contribution.d.ts.map +0 -1
- package/lib/node/os-backend-application-contribution.js.map +0 -1
- package/src/browser/preloader.ts +0 -76
package/src/common/keys.ts
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
+
import { nls } from './nls';
|
|
17
18
|
import { isOSX } from './os';
|
|
18
19
|
import { isObject } from './types';
|
|
19
20
|
|
|
@@ -252,7 +253,7 @@ export class KeyCode {
|
|
|
252
253
|
}
|
|
253
254
|
/* If duplicates i.e ctrl+ctrl+a or alt+alt+b or b+alt+b it is invalid */
|
|
254
255
|
if (keys.length !== new Set(keys).size) {
|
|
255
|
-
throw new Error(
|
|
256
|
+
throw new Error(nls.localize('theia/core/keybinding/duplicateModifierError', "Can't parse keybinding {0} Duplicate modifiers", keybinding));
|
|
256
257
|
}
|
|
257
258
|
|
|
258
259
|
for (let keyString of keys) {
|
|
@@ -266,7 +267,7 @@ export class KeyCode {
|
|
|
266
267
|
if (isOSX) {
|
|
267
268
|
schema.meta = true;
|
|
268
269
|
} else {
|
|
269
|
-
throw new Error(
|
|
270
|
+
throw new Error(nls.localize('theia/core/keybinding/metaError', "Can't parse keybinding {0} meta is for OSX only", keybinding));
|
|
270
271
|
}
|
|
271
272
|
/* ctrlcmd for M1 keybindings that work on both macOS and other platforms */
|
|
272
273
|
} else if (keyString === SpecialCases.CTRLCMD) {
|
|
@@ -288,7 +289,7 @@ export class KeyCode {
|
|
|
288
289
|
schema.key = key;
|
|
289
290
|
}
|
|
290
291
|
} else {
|
|
291
|
-
throw new Error(
|
|
292
|
+
throw new Error(nls.localize('theia/core/keybinding/unrecognizedKeyError', 'Unrecognized key {0} in {1}', keyString, keybinding));
|
|
292
293
|
}
|
|
293
294
|
}
|
|
294
295
|
|
|
@@ -38,6 +38,7 @@ export interface ILogLevelChangedEvent {
|
|
|
38
38
|
|
|
39
39
|
export interface ILoggerClient {
|
|
40
40
|
onLogLevelChanged(event: ILogLevelChangedEvent): void;
|
|
41
|
+
onLogConfigChanged(): void;
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
@injectable()
|
|
@@ -49,6 +50,9 @@ export class DispatchingLoggerClient implements ILoggerClient {
|
|
|
49
50
|
this.clients.forEach(client => client.onLogLevelChanged(event));
|
|
50
51
|
}
|
|
51
52
|
|
|
53
|
+
onLogConfigChanged(): void {
|
|
54
|
+
this.clients.forEach(client => client.onLogConfigChanged());
|
|
55
|
+
}
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
export const rootLoggerName = 'root';
|
|
@@ -22,22 +22,27 @@ import { ILoggerClient, ILogLevelChangedEvent } from './logger-protocol';
|
|
|
22
22
|
export class LoggerWatcher {
|
|
23
23
|
|
|
24
24
|
getLoggerClient(): ILoggerClient {
|
|
25
|
-
const
|
|
25
|
+
const logLevelEmitter = this.onLogLevelChangedEmitter;
|
|
26
|
+
const logConfigEmitter = this.onLogConfigChangedEmitter;
|
|
26
27
|
return {
|
|
27
28
|
onLogLevelChanged(event: ILogLevelChangedEvent): void {
|
|
28
|
-
|
|
29
|
-
}
|
|
29
|
+
logLevelEmitter.fire(event);
|
|
30
|
+
},
|
|
31
|
+
onLogConfigChanged(): void {
|
|
32
|
+
logConfigEmitter.fire();
|
|
33
|
+
},
|
|
30
34
|
};
|
|
31
35
|
}
|
|
32
36
|
|
|
33
|
-
|
|
37
|
+
protected onLogLevelChangedEmitter = new Emitter<ILogLevelChangedEvent>();
|
|
34
38
|
|
|
35
39
|
get onLogLevelChanged(): Event<ILogLevelChangedEvent> {
|
|
36
40
|
return this.onLogLevelChangedEmitter.event;
|
|
37
41
|
}
|
|
38
42
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
43
|
+
protected onLogConfigChangedEmitter = new Emitter<void>();
|
|
44
|
+
|
|
45
|
+
get onLogConfigChanged(): Event<void> {
|
|
46
|
+
return this.onLogConfigChangedEmitter.event;
|
|
42
47
|
}
|
|
43
48
|
}
|
package/src/common/logger.ts
CHANGED
|
@@ -261,6 +261,11 @@ export class Logger implements ILogger {
|
|
|
261
261
|
}
|
|
262
262
|
});
|
|
263
263
|
});
|
|
264
|
+
|
|
265
|
+
/* Refetch log level if overall config in backend changed. */
|
|
266
|
+
this.loggerWatcher.onLogConfigChanged(() => {
|
|
267
|
+
this._logLevel = this.created.then(_ => this.server.getLogLevel(this.name));
|
|
268
|
+
});
|
|
264
269
|
}
|
|
265
270
|
|
|
266
271
|
setLogLevel(logLevel: number): Promise<void> {
|
package/src/common/os.ts
CHANGED
|
@@ -54,6 +54,7 @@ export interface QuickPickItem {
|
|
|
54
54
|
description?: string;
|
|
55
55
|
detail?: string;
|
|
56
56
|
keySequence?: KeySequence;
|
|
57
|
+
iconPath?: URI | Uri | { light?: URI | Uri; dark: URI | Uri } | { id: string };
|
|
57
58
|
iconClasses?: string[];
|
|
58
59
|
alwaysShow?: boolean;
|
|
59
60
|
highlights?: QuickPickItemHighlights;
|
|
@@ -30,6 +30,8 @@ import { WindowTitleService } from '../../browser/window/window-title-service';
|
|
|
30
30
|
|
|
31
31
|
import '../../../src/electron-browser/menu/electron-menu-style.css';
|
|
32
32
|
import { MenuDto } from '../../electron-common/electron-api';
|
|
33
|
+
import { ThemeService } from '../../browser/theming';
|
|
34
|
+
import { ThemeChangeEvent } from '../../common/theme';
|
|
33
35
|
|
|
34
36
|
export namespace ElectronCommands {
|
|
35
37
|
export const TOGGLE_DEVELOPER_TOOLS = Command.toDefaultLocalizedCommand({
|
|
@@ -88,6 +90,9 @@ export class ElectronMenuContribution extends BrowserMenuBarContribution impleme
|
|
|
88
90
|
@inject(WindowService)
|
|
89
91
|
protected readonly windowService: WindowService;
|
|
90
92
|
|
|
93
|
+
@inject(ThemeService)
|
|
94
|
+
protected readonly themeService: ThemeService;
|
|
95
|
+
|
|
91
96
|
@inject(CustomTitleWidgetFactory)
|
|
92
97
|
protected readonly customTitleWidgetFactory: CustomTitleWidgetFactory;
|
|
93
98
|
|
|
@@ -123,6 +128,9 @@ export class ElectronMenuContribution extends BrowserMenuBarContribution impleme
|
|
|
123
128
|
this.handleToggleMaximized();
|
|
124
129
|
});
|
|
125
130
|
this.attachMenuBarVisibilityListener();
|
|
131
|
+
this.themeService.onDidColorThemeChange(e => {
|
|
132
|
+
this.handleThemeChange(e);
|
|
133
|
+
});
|
|
126
134
|
}
|
|
127
135
|
|
|
128
136
|
protected attachWindowFocusListener(app: FrontendApplication): void {
|
|
@@ -414,6 +422,11 @@ export class ElectronMenuContribution extends BrowserMenuBarContribution impleme
|
|
|
414
422
|
}
|
|
415
423
|
}
|
|
416
424
|
|
|
425
|
+
protected handleThemeChange(e: ThemeChangeEvent): void {
|
|
426
|
+
const backgroundColor = window.getComputedStyle(document.body).backgroundColor;
|
|
427
|
+
window.electronTheiaCore.setBackgroundColor(backgroundColor);
|
|
428
|
+
}
|
|
429
|
+
|
|
417
430
|
}
|
|
418
431
|
|
|
419
432
|
@injectable()
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
CHANNEL_ON_WINDOW_EVENT, CHANNEL_GET_ZOOM_LEVEL, CHANNEL_SET_ZOOM_LEVEL, CHANNEL_IS_FULL_SCREENABLE, CHANNEL_TOGGLE_FULL_SCREEN,
|
|
26
26
|
CHANNEL_IS_FULL_SCREEN, CHANNEL_SET_MENU_BAR_VISIBLE, CHANNEL_REQUEST_CLOSE, CHANNEL_SET_TITLE_STYLE, CHANNEL_RESTART,
|
|
27
27
|
CHANNEL_REQUEST_RELOAD, CHANNEL_APP_STATE_CHANGED, CHANNEL_SHOW_ITEM_IN_FOLDER, CHANNEL_READ_CLIPBOARD, CHANNEL_WRITE_CLIPBOARD,
|
|
28
|
-
CHANNEL_KEYBOARD_LAYOUT_CHANGED, CHANNEL_IPC_CONNECTION, InternalMenuDto, CHANNEL_REQUEST_SECONDARY_CLOSE
|
|
28
|
+
CHANNEL_KEYBOARD_LAYOUT_CHANGED, CHANNEL_IPC_CONNECTION, InternalMenuDto, CHANNEL_REQUEST_SECONDARY_CLOSE, CHANNEL_SET_BACKGROUND_COLOR
|
|
29
29
|
} from '../electron-common/electron-api';
|
|
30
30
|
|
|
31
31
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
@@ -101,6 +101,9 @@ const api: TheiaCoreAPI = {
|
|
|
101
101
|
setTitleBarStyle: function (style): void {
|
|
102
102
|
ipcRenderer.send(CHANNEL_SET_TITLE_STYLE, style);
|
|
103
103
|
},
|
|
104
|
+
setBackgroundColor: function (backgroundColor): void {
|
|
105
|
+
ipcRenderer.send(CHANNEL_SET_BACKGROUND_COLOR, backgroundColor);
|
|
106
|
+
},
|
|
104
107
|
minimize: function (): void {
|
|
105
108
|
ipcRenderer.send(CHANNEL_MINIMIZE);
|
|
106
109
|
},
|
|
@@ -56,6 +56,7 @@ export interface TheiaCoreAPI {
|
|
|
56
56
|
|
|
57
57
|
getTitleBarStyleAtStartup(): Promise<string>;
|
|
58
58
|
setTitleBarStyle(style: string): void;
|
|
59
|
+
setBackgroundColor(backgroundColor: string): void;
|
|
59
60
|
minimize(): void;
|
|
60
61
|
isMaximized(): boolean; // TODO: this should really be async, since it blocks the renderer process
|
|
61
62
|
maximize(): void;
|
|
@@ -109,6 +110,7 @@ export const CHANNEL_ATTACH_SECURITY_TOKEN = 'AttachSecurityToken';
|
|
|
109
110
|
|
|
110
111
|
export const CHANNEL_GET_TITLE_STYLE_AT_STARTUP = 'GetTitleStyleAtStartup';
|
|
111
112
|
export const CHANNEL_SET_TITLE_STYLE = 'SetTitleStyle';
|
|
113
|
+
export const CHANNEL_SET_BACKGROUND_COLOR = 'SetBackgroundColor';
|
|
112
114
|
export const CHANNEL_CLOSE = 'Close';
|
|
113
115
|
export const CHANNEL_MINIMIZE = 'Minimize';
|
|
114
116
|
export const CHANNEL_MAXIMIZE = 'Maximize';
|
|
@@ -50,7 +50,8 @@ import {
|
|
|
50
50
|
CHANNEL_SET_MENU_BAR_VISIBLE,
|
|
51
51
|
CHANNEL_TOGGLE_FULL_SCREEN,
|
|
52
52
|
CHANNEL_IS_MAXIMIZED,
|
|
53
|
-
CHANNEL_REQUEST_SECONDARY_CLOSE
|
|
53
|
+
CHANNEL_REQUEST_SECONDARY_CLOSE,
|
|
54
|
+
CHANNEL_SET_BACKGROUND_COLOR
|
|
54
55
|
} from '../electron-common/electron-api';
|
|
55
56
|
import { ElectronMainApplication, ElectronMainApplicationContribution } from './electron-main-application';
|
|
56
57
|
import { Disposable, DisposableCollection, isOSX, MaybePromise } from '../common';
|
|
@@ -152,6 +153,8 @@ export class TheiaMainApi implements ElectronMainApplicationContribution {
|
|
|
152
153
|
|
|
153
154
|
ipcMain.on(CHANNEL_SET_TITLE_STYLE, (event, style) => application.setTitleBarStyle(event.sender, style));
|
|
154
155
|
|
|
156
|
+
ipcMain.on(CHANNEL_SET_BACKGROUND_COLOR, (event, backgroundColor) => application.setBackgroundColor(event.sender, backgroundColor));
|
|
157
|
+
|
|
155
158
|
ipcMain.on(CHANNEL_MINIMIZE, event => {
|
|
156
159
|
BrowserWindow.fromWebContents(event.sender)?.minimize();
|
|
157
160
|
});
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { inject, injectable, named } from 'inversify';
|
|
18
|
-
import { screen, app, BrowserWindow, WebContents, Event as ElectronEvent, BrowserWindowConstructorOptions, nativeImage } from '../../electron-shared/electron';
|
|
18
|
+
import { screen, app, BrowserWindow, WebContents, Event as ElectronEvent, BrowserWindowConstructorOptions, nativeImage, nativeTheme } from '../../electron-shared/electron';
|
|
19
19
|
import * as path from 'path';
|
|
20
20
|
import { Argv } from 'yargs';
|
|
21
21
|
import { AddressInfo } from 'net';
|
|
22
22
|
import { promises as fs } from 'fs';
|
|
23
23
|
import { fork, ForkOptions } from 'child_process';
|
|
24
|
-
import { FrontendApplicationConfig } from '@theia/application-package/lib/application-props';
|
|
24
|
+
import { DefaultTheme, FrontendApplicationConfig } from '@theia/application-package/lib/application-props';
|
|
25
25
|
import URI from '../common/uri';
|
|
26
26
|
import { FileUri } from '../node/file-uri';
|
|
27
27
|
import { Deferred } from '../common/promise-util';
|
|
@@ -180,10 +180,13 @@ export class ElectronMainApplication {
|
|
|
180
180
|
|
|
181
181
|
protected _config: FrontendApplicationConfig | undefined;
|
|
182
182
|
protected useNativeWindowFrame: boolean = true;
|
|
183
|
+
protected customBackgroundColor?: string;
|
|
183
184
|
protected didUseNativeWindowFrameOnStart = new Map<number, boolean>();
|
|
184
185
|
protected windows = new Map<number, TheiaElectronWindow>();
|
|
185
186
|
protected restarting = false;
|
|
186
187
|
|
|
188
|
+
protected initialWindow?: BrowserWindow;
|
|
189
|
+
|
|
187
190
|
get config(): FrontendApplicationConfig {
|
|
188
191
|
if (!this._config) {
|
|
189
192
|
throw new Error('You have to start the application first.');
|
|
@@ -195,6 +198,7 @@ export class ElectronMainApplication {
|
|
|
195
198
|
this.useNativeWindowFrame = this.getTitleBarStyle(config) === 'native';
|
|
196
199
|
this._config = config;
|
|
197
200
|
this.hookApplicationEvents();
|
|
201
|
+
this.showInitialWindow();
|
|
198
202
|
const port = await this.startBackend();
|
|
199
203
|
this._backendPort.resolve(port);
|
|
200
204
|
await app.whenReady();
|
|
@@ -226,6 +230,15 @@ export class ElectronMainApplication {
|
|
|
226
230
|
|
|
227
231
|
public setTitleBarStyle(webContents: WebContents, style: string): void {
|
|
228
232
|
this.useNativeWindowFrame = isOSX || style === 'native';
|
|
233
|
+
this.saveState(webContents);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
setBackgroundColor(webContents: WebContents, backgroundColor: string): void {
|
|
237
|
+
this.customBackgroundColor = backgroundColor;
|
|
238
|
+
this.saveState(webContents);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
protected saveState(webContents: Electron.WebContents): void {
|
|
229
242
|
const browserWindow = BrowserWindow.fromWebContents(webContents);
|
|
230
243
|
if (browserWindow) {
|
|
231
244
|
this.saveWindowState(browserWindow);
|
|
@@ -242,6 +255,16 @@ export class ElectronMainApplication {
|
|
|
242
255
|
return this.didUseNativeWindowFrameOnStart.get(webContents.id) ? 'native' : 'custom';
|
|
243
256
|
}
|
|
244
257
|
|
|
258
|
+
protected showInitialWindow(): void {
|
|
259
|
+
if (this.config.electron.showWindowEarly) {
|
|
260
|
+
app.whenReady().then(async () => {
|
|
261
|
+
const options = await this.getLastWindowOptions();
|
|
262
|
+
this.initialWindow = await this.createWindow({ ...options });
|
|
263
|
+
this.initialWindow.show();
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
245
268
|
protected async launch(params: ElectronMainExecutionParams): Promise<void> {
|
|
246
269
|
createYargs(params.argv, params.cwd)
|
|
247
270
|
.command('$0 [file]', false,
|
|
@@ -303,6 +326,7 @@ export class ElectronMainApplication {
|
|
|
303
326
|
return {
|
|
304
327
|
show: false,
|
|
305
328
|
title: this.config.applicationName,
|
|
329
|
+
backgroundColor: DefaultTheme.defaultBackgroundColor(this.config.electron.windowOptions?.darkTheme || nativeTheme.shouldUseDarkColors),
|
|
306
330
|
minWidth: 200,
|
|
307
331
|
minHeight: 120,
|
|
308
332
|
webPreferences: {
|
|
@@ -320,18 +344,29 @@ export class ElectronMainApplication {
|
|
|
320
344
|
}
|
|
321
345
|
|
|
322
346
|
async openDefaultWindow(): Promise<BrowserWindow> {
|
|
323
|
-
const
|
|
347
|
+
const options = this.getDefaultTheiaWindowOptions();
|
|
348
|
+
const [uri, electronWindow] = await Promise.all([this.createWindowUri(), this.reuseOrCreateWindow(options)]);
|
|
324
349
|
electronWindow.loadURL(uri.withFragment(DEFAULT_WINDOW_HASH).toString(true));
|
|
325
350
|
return electronWindow;
|
|
326
351
|
}
|
|
327
352
|
|
|
328
353
|
protected async openWindowWithWorkspace(workspacePath: string): Promise<BrowserWindow> {
|
|
329
354
|
const options = await this.getLastWindowOptions();
|
|
330
|
-
const [uri, electronWindow] = await Promise.all([this.createWindowUri(), this.
|
|
355
|
+
const [uri, electronWindow] = await Promise.all([this.createWindowUri(), this.reuseOrCreateWindow(options)]);
|
|
331
356
|
electronWindow.loadURL(uri.withFragment(encodeURI(workspacePath)).toString(true));
|
|
332
357
|
return electronWindow;
|
|
333
358
|
}
|
|
334
359
|
|
|
360
|
+
protected async reuseOrCreateWindow(asyncOptions: MaybePromise<TheiaBrowserWindowOptions>): Promise<BrowserWindow> {
|
|
361
|
+
if (!this.initialWindow) {
|
|
362
|
+
return this.createWindow(asyncOptions);
|
|
363
|
+
}
|
|
364
|
+
// reset initial window after having it re-used once
|
|
365
|
+
const window = this.initialWindow;
|
|
366
|
+
this.initialWindow = undefined;
|
|
367
|
+
return window;
|
|
368
|
+
}
|
|
369
|
+
|
|
335
370
|
/** Configures native window creation, i.e. using window.open or links with target "_blank" in the frontend. */
|
|
336
371
|
protected configureNativeSecondaryWindowCreation(electronWindow: BrowserWindow): void {
|
|
337
372
|
electronWindow.webContents.setWindowOpenHandler(() => {
|
|
@@ -455,6 +490,7 @@ export class ElectronMainApplication {
|
|
|
455
490
|
y: bounds.y,
|
|
456
491
|
frame: this.useNativeWindowFrame,
|
|
457
492
|
screenLayout: this.getCurrentScreenLayout(),
|
|
493
|
+
backgroundColor: this.customBackgroundColor
|
|
458
494
|
};
|
|
459
495
|
this.electronStore.set('windowstate', options);
|
|
460
496
|
} catch (e) {
|
|
@@ -19,7 +19,7 @@ import { ApplicationPackage } from '@theia/application-package';
|
|
|
19
19
|
import { REQUEST_SERVICE_PATH } from '@theia/request';
|
|
20
20
|
import {
|
|
21
21
|
bindContributionProvider, MessageService, MessageClient, ConnectionHandler, RpcConnectionHandler,
|
|
22
|
-
CommandService, commandServicePath, messageServicePath
|
|
22
|
+
CommandService, commandServicePath, messageServicePath, OSBackendProvider, OSBackendProviderPath
|
|
23
23
|
} from '../common';
|
|
24
24
|
import { BackendApplication, BackendApplicationContribution, BackendApplicationCliContribution, BackendApplicationServer } from './backend-application';
|
|
25
25
|
import { CliManager, CliContribution } from './cli';
|
|
@@ -38,7 +38,7 @@ import { EnvironmentUtils } from './environment-utils';
|
|
|
38
38
|
import { ProcessUtils } from './process-utils';
|
|
39
39
|
import { ProxyCliContribution } from './request/proxy-cli-contribution';
|
|
40
40
|
import { bindNodeStopwatch, bindBackendStopwatchServer } from './performance';
|
|
41
|
-
import {
|
|
41
|
+
import { OSBackendProviderImpl } from './os-backend-provider';
|
|
42
42
|
import { BackendRequestFacade } from './request/backend-request-facade';
|
|
43
43
|
import { FileSystemLocking, FileSystemLockingImpl } from './filesystem-locking';
|
|
44
44
|
|
|
@@ -116,8 +116,11 @@ export const backendApplicationModule = new ContainerModule(bind => {
|
|
|
116
116
|
bind(EnvironmentUtils).toSelf().inSingletonScope();
|
|
117
117
|
bind(ProcessUtils).toSelf().inSingletonScope();
|
|
118
118
|
|
|
119
|
-
bind(
|
|
120
|
-
bind(
|
|
119
|
+
bind(OSBackendProviderImpl).toSelf().inSingletonScope();
|
|
120
|
+
bind(OSBackendProvider).toService(OSBackendProviderImpl);
|
|
121
|
+
bind(ConnectionHandler).toDynamicValue(
|
|
122
|
+
ctx => new RpcConnectionHandler(OSBackendProviderPath, () => ctx.container.get(OSBackendProvider))
|
|
123
|
+
).inSingletonScope();
|
|
121
124
|
|
|
122
125
|
bind(ProxyCliContribution).toSelf().inSingletonScope();
|
|
123
126
|
bind(CliContribution).toService(ProxyCliContribution);
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import { inject, injectable, postConstruct } from 'inversify';
|
|
18
18
|
import { LoggerWatcher } from '../common/logger-watcher';
|
|
19
19
|
import { LogLevelCliContribution } from './logger-cli-contribution';
|
|
20
|
-
import { ILoggerServer, ILoggerClient, ConsoleLogger } from '../common/logger-protocol';
|
|
20
|
+
import { ILoggerServer, ILoggerClient, ConsoleLogger, rootLoggerName } from '../common/logger-protocol';
|
|
21
21
|
|
|
22
22
|
@injectable()
|
|
23
23
|
export class ConsoleLoggerServer implements ILoggerServer {
|
|
@@ -32,9 +32,13 @@ export class ConsoleLoggerServer implements ILoggerServer {
|
|
|
32
32
|
|
|
33
33
|
@postConstruct()
|
|
34
34
|
protected init(): void {
|
|
35
|
+
this.setLogLevel(rootLoggerName, this.cli.defaultLogLevel);
|
|
35
36
|
for (const name of Object.keys(this.cli.logLevels)) {
|
|
36
37
|
this.setLogLevel(name, this.cli.logLevels[name]);
|
|
37
38
|
}
|
|
39
|
+
this.cli.onLogConfigChanged(() => {
|
|
40
|
+
this.client?.onLogConfigChanged();
|
|
41
|
+
});
|
|
38
42
|
}
|
|
39
43
|
|
|
40
44
|
async setLogLevel(name: string, newLogLevel: number): Promise<void> {
|
|
@@ -45,7 +49,6 @@ export class ConsoleLoggerServer implements ILoggerServer {
|
|
|
45
49
|
if (this.client !== undefined) {
|
|
46
50
|
this.client.onLogLevelChanged(event);
|
|
47
51
|
}
|
|
48
|
-
this.watcher.fireLogLevelChanged(event);
|
|
49
52
|
}
|
|
50
53
|
|
|
51
54
|
async getLogLevel(name: string): Promise<number> {
|
|
@@ -19,9 +19,10 @@ import { localizationPath } from '../../common/i18n/localization';
|
|
|
19
19
|
import { LocalizationProvider } from './localization-provider';
|
|
20
20
|
import { ConnectionHandler, RpcConnectionHandler, bindContributionProvider } from '../../common';
|
|
21
21
|
import { LocalizationRegistry, LocalizationContribution } from './localization-contribution';
|
|
22
|
-
import {
|
|
23
|
-
import { BackendApplicationContribution } from '../backend-application';
|
|
22
|
+
import { LocalizationServerImpl } from './localization-server';
|
|
24
23
|
import { TheiaLocalizationContribution } from './theia-localization-contribution';
|
|
24
|
+
import { LocalizationServer, LocalizationServerPath } from '../../common/i18n/localization-server';
|
|
25
|
+
import { BackendApplicationContribution } from '../backend-application';
|
|
25
26
|
|
|
26
27
|
export default new ContainerModule(bind => {
|
|
27
28
|
bind(LocalizationProvider).toSelf().inSingletonScope();
|
|
@@ -30,8 +31,12 @@ export default new ContainerModule(bind => {
|
|
|
30
31
|
).inSingletonScope();
|
|
31
32
|
bind(LocalizationRegistry).toSelf().inSingletonScope();
|
|
32
33
|
bindContributionProvider(bind, LocalizationContribution);
|
|
33
|
-
bind(
|
|
34
|
-
bind(
|
|
34
|
+
bind(LocalizationServerImpl).toSelf().inSingletonScope();
|
|
35
|
+
bind(LocalizationServer).toService(LocalizationServerImpl);
|
|
36
|
+
bind(BackendApplicationContribution).toService(LocalizationServerImpl);
|
|
37
|
+
bind(ConnectionHandler).toDynamicValue(ctx =>
|
|
38
|
+
new RpcConnectionHandler(LocalizationServerPath, () => ctx.container.get(LocalizationServer))
|
|
39
|
+
).inSingletonScope();
|
|
35
40
|
bind(TheiaLocalizationContribution).toSelf().inSingletonScope();
|
|
36
41
|
bind(LocalizationContribution).toService(TheiaLocalizationContribution);
|
|
37
42
|
});
|
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import * as express from 'express';
|
|
18
17
|
import { inject, injectable } from 'inversify';
|
|
18
|
+
import { Localization } from 'src/common/i18n/localization';
|
|
19
|
+
import { LocalizationServer } from '../../common/i18n/localization-server';
|
|
19
20
|
import { nls } from '../../common/nls';
|
|
20
21
|
import { Deferred } from '../../common/promise-util';
|
|
21
22
|
import { BackendApplicationContribution } from '../backend-application';
|
|
@@ -23,7 +24,8 @@ import { LocalizationRegistry } from './localization-contribution';
|
|
|
23
24
|
import { LocalizationProvider } from './localization-provider';
|
|
24
25
|
|
|
25
26
|
@injectable()
|
|
26
|
-
export class
|
|
27
|
+
export class LocalizationServerImpl implements LocalizationServer, BackendApplicationContribution {
|
|
28
|
+
|
|
27
29
|
protected readonly initialized = new Deferred<void>();
|
|
28
30
|
|
|
29
31
|
@inject(LocalizationRegistry)
|
|
@@ -41,13 +43,10 @@ export class LocalizationBackendContribution implements BackendApplicationContri
|
|
|
41
43
|
return this.initialized.promise;
|
|
42
44
|
}
|
|
43
45
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
this.localizationProvider.setCurrentLanguage(locale);
|
|
50
|
-
res.send(this.localizationProvider.loadLocalization(locale));
|
|
51
|
-
});
|
|
46
|
+
async loadLocalization(languageId: string): Promise<Localization> {
|
|
47
|
+
await this.waitForInitialization();
|
|
48
|
+
languageId = this.localizationProvider.getAvailableLanguages().some(e => e.languageId === languageId) ? languageId : nls.defaultLocale;
|
|
49
|
+
this.localizationProvider.setCurrentLanguage(languageId);
|
|
50
|
+
return this.localizationProvider.loadLocalization(languageId);
|
|
52
51
|
}
|
|
53
52
|
}
|
|
@@ -63,7 +63,14 @@ export const loggerBackendModule = new ContainerModule(bind => {
|
|
|
63
63
|
bind(DispatchingLoggerClient).toSelf().inSingletonScope();
|
|
64
64
|
bindLogger(bind, {
|
|
65
65
|
onLoggerServerActivation: ({ container }, server) => {
|
|
66
|
-
|
|
66
|
+
const dispatchingLoggerClient = container.get(DispatchingLoggerClient);
|
|
67
|
+
server.setClient(dispatchingLoggerClient);
|
|
68
|
+
|
|
69
|
+
// register backend logger watcher as a client
|
|
70
|
+
const loggerWatcher = container.get(LoggerWatcher);
|
|
71
|
+
dispatchingLoggerClient.clients.add(loggerWatcher.getLoggerClient());
|
|
72
|
+
|
|
73
|
+
// make sure dispatching logger client is the only client
|
|
67
74
|
server.setClient = () => {
|
|
68
75
|
throw new Error('use DispatchingLoggerClient');
|
|
69
76
|
};
|
|
@@ -14,17 +14,12 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import * as express from 'express';
|
|
18
17
|
import { injectable } from 'inversify';
|
|
19
|
-
import {
|
|
20
|
-
import { OS } from '../common/os';
|
|
18
|
+
import { OS, OSBackendProvider } from '../common/os';
|
|
21
19
|
|
|
22
20
|
@injectable()
|
|
23
|
-
export class
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
app.get('/os', (_, res) => {
|
|
27
|
-
res.send(OS.type());
|
|
28
|
-
});
|
|
21
|
+
export class OSBackendProviderImpl implements OSBackendProvider {
|
|
22
|
+
getBackendOS(): Promise<OS.Type> {
|
|
23
|
+
return Promise.resolve(OS.type());
|
|
29
24
|
}
|
|
30
25
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preloader.d.ts","sourceRoot":"","sources":["../../src/browser/preloader.ts"],"names":[],"mappings":"AAqEA,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAM7C"}
|
package/lib/browser/preloader.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// *****************************************************************************
|
|
3
|
-
// Copyright (C) 2022 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.preload = void 0;
|
|
19
|
-
const nls_1 = require("../common/nls");
|
|
20
|
-
const endpoint_1 = require("./endpoint");
|
|
21
|
-
const os_1 = require("../common/os");
|
|
22
|
-
const frontend_application_config_provider_1 = require("./frontend-application-config-provider");
|
|
23
|
-
function fetchFrom(path) {
|
|
24
|
-
const endpoint = new endpoint_1.Endpoint({ path }).getRestUrl().toString();
|
|
25
|
-
return fetch(endpoint);
|
|
26
|
-
}
|
|
27
|
-
async function loadTranslations() {
|
|
28
|
-
const defaultLocale = frontend_application_config_provider_1.FrontendApplicationConfigProvider.get().defaultLocale;
|
|
29
|
-
if (defaultLocale && !nls_1.nls.locale) {
|
|
30
|
-
Object.assign(nls_1.nls, {
|
|
31
|
-
locale: defaultLocale
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
if (nls_1.nls.locale) {
|
|
35
|
-
const response = await fetchFrom(`/i18n/${nls_1.nls.locale}`);
|
|
36
|
-
const localization = await response.json();
|
|
37
|
-
if (localization.languagePack) {
|
|
38
|
-
nls_1.nls.localization = localization;
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
// In case the localization that we've loaded doesn't localize Theia completely (languagePack is false)
|
|
42
|
-
// We simply reset the locale to the default again
|
|
43
|
-
Object.assign(nls_1.nls, {
|
|
44
|
-
locale: defaultLocale || undefined
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
async function loadBackendOS() {
|
|
50
|
-
const response = await fetchFrom('/os');
|
|
51
|
-
const osType = await response.text();
|
|
52
|
-
const isWindows = osType === 'Windows';
|
|
53
|
-
const isOSX = osType === 'OSX';
|
|
54
|
-
os_1.OS.backend.isOSX = isOSX;
|
|
55
|
-
os_1.OS.backend.isWindows = isWindows;
|
|
56
|
-
os_1.OS.backend.type = () => osType;
|
|
57
|
-
os_1.OS.backend.EOL = isWindows ? '\r\n' : '\n';
|
|
58
|
-
}
|
|
59
|
-
function initBackground() {
|
|
60
|
-
// The default light background color is based on the `colors#editor.background` value from
|
|
61
|
-
// `packages/monaco/data/monaco-themes/vscode/dark_vs.json` and the dark background comes from the `light_vs.json`.
|
|
62
|
-
const dark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
63
|
-
const value = window.localStorage.getItem(frontend_application_config_provider_1.DEFAULT_BACKGROUND_COLOR_STORAGE_KEY) || (dark ? '#1E1E1E' : '#FFFFFF');
|
|
64
|
-
const documentElement = document.documentElement;
|
|
65
|
-
documentElement.style.setProperty('--theia-editor-background', value);
|
|
66
|
-
}
|
|
67
|
-
async function preload() {
|
|
68
|
-
await Promise.allSettled([
|
|
69
|
-
loadTranslations(),
|
|
70
|
-
loadBackendOS(),
|
|
71
|
-
initBackground(),
|
|
72
|
-
]);
|
|
73
|
-
}
|
|
74
|
-
exports.preload = preload;
|
|
75
|
-
//# sourceMappingURL=preloader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preloader.js","sourceRoot":"","sources":["../../src/browser/preloader.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,uCAAoC;AACpC,yCAAsC;AACtC,qCAAkC;AAClC,iGAAiI;AAGjI,SAAS,SAAS,CAAC,IAAY;IAC3B,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;IAChE,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC3B,MAAM,aAAa,GAAG,wEAAiC,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC;IAC5E,IAAI,aAAa,IAAI,CAAC,SAAG,CAAC,MAAM,EAAE;QAC9B,MAAM,CAAC,MAAM,CAAC,SAAG,EAAE;YACf,MAAM,EAAE,aAAa;SACxB,CAAC,CAAC;KACN;IACD,IAAI,SAAG,CAAC,MAAM,EAAE;QACZ,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,SAAS,SAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAkB,CAAC;QAC3D,IAAI,YAAY,CAAC,YAAY,EAAE;YAC3B,SAAG,CAAC,YAAY,GAAG,YAAY,CAAC;SACnC;aAAM;YACH,uGAAuG;YACvG,kDAAkD;YAClD,MAAM,CAAC,MAAM,CAAC,SAAG,EAAE;gBACf,MAAM,EAAE,aAAa,IAAI,SAAS;aACrC,CAAC,CAAC;SACN;KACJ;AACL,CAAC;AAED,KAAK,UAAU,aAAa;IACxB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAa,CAAC;IAChD,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,KAAK,KAAK,CAAC;IAC/B,OAAE,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACzB,OAAE,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IACjC,OAAE,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;IAC/B,OAAE,CAAC,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED,SAAS,cAAc;IACnB,2FAA2F;IAC3F,mHAAmH;IACnH,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC;IAC5F,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,2EAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAClH,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;IACjD,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;AAC1E,CAAC;AAEM,KAAK,UAAU,OAAO;IACzB,MAAM,OAAO,CAAC,UAAU,CAAC;QACrB,gBAAgB,EAAE;QAClB,aAAa,EAAE;QACf,cAAc,EAAE;KACnB,CAAC,CAAC;AACP,CAAC;AAND,0BAMC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"localization-backend-contribution.d.ts","sourceRoot":"","sources":["../../../src/node/i18n/localization-backend-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,qBACa,+BAAgC,YAAW,8BAA8B;IAClF,SAAS,CAAC,QAAQ,CAAC,WAAW,iBAAwB;IAGtD,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAG9D,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAExD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,GAAG,IAAI;CAS5C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"localization-backend-contribution.js","sourceRoot":"","sources":["../../../src/node/i18n/localization-backend-contribution.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;;;;;;;;;;;;AAGhF,yCAA+C;AAC/C,0CAAuC;AACvC,4DAAqD;AAErD,2EAAmE;AACnE,mEAA+D;AAG/D,IAAa,+BAA+B,GAA5C,MAAa,+BAA+B;IAA5C;QACuB,gBAAW,GAAG,IAAI,uBAAQ,EAAQ,CAAC;IA0B1D,CAAC;IAlBG,KAAK,CAAC,UAAU;QACZ,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC;QAC7C,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,qBAAqB;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;IACpC,CAAC;IAED,SAAS,CAAC,GAAwB;QAC9B,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACxC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACnC,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAC/B,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,aAAa,CAAC;YAC3H,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AAvBG;IADC,IAAA,kBAAM,EAAC,gDAAoB,CAAC;8BACY,gDAAoB;6EAAC;AAG9D;IADC,IAAA,kBAAM,EAAC,4CAAoB,CAAC;8BACY,4CAAoB;6EAAC;AAPrD,+BAA+B;IAD3C,IAAA,sBAAU,GAAE;GACA,+BAA+B,CA2B3C;AA3BY,0EAA+B"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as express from 'express';
|
|
2
|
-
import { BackendApplicationContribution } from './backend-application';
|
|
3
|
-
export declare class OSBackendApplicationContribution implements BackendApplicationContribution {
|
|
4
|
-
configure(app: express.Application): void;
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=os-backend-application-contribution.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"os-backend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/node/os-backend-application-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAGvE,qBACa,gCAAiC,YAAW,8BAA8B;IAEnF,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,GAAG,IAAI;CAK5C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"os-backend-application-contribution.js","sourceRoot":"","sources":["../../src/node/os-backend-application-contribution.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;;;;;;;;;AAGhF,yCAAuC;AAEvC,qCAAkC;AAGlC,IAAa,gCAAgC,GAA7C,MAAa,gCAAgC;IAEzC,SAAS,CAAC,GAAwB;QAC9B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACtB,GAAG,CAAC,IAAI,CAAC,OAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AAPY,gCAAgC;IAD5C,IAAA,sBAAU,GAAE;GACA,gCAAgC,CAO5C;AAPY,4EAAgC"}
|