@theia/core 1.42.1 → 1.43.0
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 +6 -6
- package/i18n/nls.cs.json +29 -0
- package/i18n/nls.de.json +29 -0
- package/i18n/nls.es.json +29 -0
- package/i18n/nls.fr.json +29 -0
- package/i18n/nls.hu.json +29 -0
- package/i18n/nls.it.json +29 -0
- package/i18n/nls.ja.json +29 -0
- package/i18n/nls.json +29 -0
- package/i18n/nls.pl.json +29 -0
- package/i18n/nls.pt-br.json +29 -0
- package/i18n/nls.pt-pt.json +29 -0
- package/i18n/nls.ru.json +29 -0
- package/i18n/nls.zh-cn.json +29 -0
- package/lib/browser/color-application-contribution.d.ts +1 -1
- package/lib/browser/color-application-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.d.ts +6 -3
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +35 -14
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/connection-status-service.d.ts +1 -1
- package/lib/browser/connection-status-service.d.ts.map +1 -1
- package/lib/browser/connection-status-service.js +2 -2
- package/lib/browser/connection-status-service.js.map +1 -1
- package/lib/browser/core-preferences.js +16 -16
- package/lib/browser/core-preferences.js.map +1 -1
- package/lib/browser/credentials-service.d.ts +2 -2
- package/lib/browser/credentials-service.d.ts.map +1 -1
- package/lib/browser/credentials-service.js +2 -2
- package/lib/browser/credentials-service.js.map +1 -1
- package/lib/browser/dialogs.d.ts +1 -1
- package/lib/browser/dialogs.d.ts.map +1 -1
- package/lib/browser/frontend-application-contribution.d.ts +76 -0
- package/lib/browser/frontend-application-contribution.d.ts.map +1 -0
- package/lib/browser/frontend-application-contribution.js +51 -0
- package/lib/browser/frontend-application-contribution.js.map +1 -0
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js +24 -23
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/frontend-application.d.ts +1 -73
- package/lib/browser/frontend-application.d.ts.map +1 -1
- package/lib/browser/frontend-application.js +3 -26
- package/lib/browser/frontend-application.js.map +1 -1
- package/lib/browser/i18n/language-quick-pick-service.d.ts.map +1 -1
- package/lib/browser/i18n/language-quick-pick-service.js +1 -0
- package/lib/browser/i18n/language-quick-pick-service.js.map +1 -1
- package/lib/browser/icon-registry.d.ts +63 -0
- package/lib/browser/icon-registry.d.ts.map +1 -0
- package/lib/browser/icon-registry.js +25 -0
- package/lib/browser/icon-registry.js.map +1 -0
- package/lib/browser/icon-theme-contribution.d.ts +1 -1
- package/lib/browser/icon-theme-contribution.d.ts.map +1 -1
- package/lib/browser/index.d.ts +1 -0
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +1 -0
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/json-schema-store.d.ts +1 -1
- package/lib/browser/json-schema-store.d.ts.map +1 -1
- package/lib/browser/label-provider.d.ts +1 -1
- package/lib/browser/label-provider.d.ts.map +1 -1
- package/lib/browser/logger-frontend-module.js +2 -2
- package/lib/browser/logger-frontend-module.js.map +1 -1
- package/lib/browser/menu/browser-menu-module.js +2 -2
- package/lib/browser/menu/browser-menu-module.js.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.d.ts +2 -1
- package/lib/browser/menu/browser-menu-plugin.d.ts.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
- package/lib/browser/messaging/messaging-frontend-module.d.ts.map +1 -1
- package/lib/browser/messaging/messaging-frontend-module.js +1 -0
- package/lib/browser/messaging/messaging-frontend-module.js.map +1 -1
- package/lib/browser/messaging/ws-connection-provider.d.ts +5 -0
- package/lib/browser/messaging/ws-connection-provider.d.ts.map +1 -1
- package/lib/browser/messaging/ws-connection-provider.js +18 -3
- package/lib/browser/messaging/ws-connection-provider.js.map +1 -1
- package/lib/browser/quick-input/quick-command-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/quick-input/quick-command-frontend-contribution.js +5 -0
- package/lib/browser/quick-input/quick-command-frontend-contribution.js.map +1 -1
- package/lib/browser/quick-input/quick-input-frontend-contribution.d.ts +1 -1
- package/lib/browser/quick-input/quick-input-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/saveable.d.ts +3 -3
- package/lib/browser/saveable.d.ts.map +1 -1
- package/lib/browser/saveable.js +13 -8
- package/lib/browser/saveable.js.map +1 -1
- package/lib/browser/shell/application-shell-mouse-tracker.d.ts +1 -1
- package/lib/browser/shell/application-shell-mouse-tracker.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js +15 -16
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/shell/tab-bar-decorator.d.ts +1 -1
- package/lib/browser/shell/tab-bar-decorator.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts.map +1 -1
- package/lib/browser/status-bar/status-bar.d.ts.map +1 -1
- package/lib/browser/status-bar/status-bar.js +4 -2
- package/lib/browser/status-bar/status-bar.js.map +1 -1
- package/lib/browser/styling-service.d.ts +1 -1
- package/lib/browser/styling-service.d.ts.map +1 -1
- package/lib/browser/window/browser-window-module.js +2 -2
- package/lib/browser/window/browser-window-module.js.map +1 -1
- package/lib/browser/window/default-window-service.d.ts +2 -1
- package/lib/browser/window/default-window-service.d.ts.map +1 -1
- package/lib/browser/window/default-window-service.js +3 -3
- package/lib/browser/window/default-window-service.js.map +1 -1
- package/lib/browser/window/default-window-service.spec.js +2 -2
- package/lib/browser/window/default-window-service.spec.js.map +1 -1
- package/lib/browser/window/window-service.d.ts +3 -3
- package/lib/browser/window/window-service.d.ts.map +1 -1
- package/lib/browser/window/window-title-updater.d.ts +2 -1
- package/lib/browser/window/window-title-updater.d.ts.map +1 -1
- package/lib/browser/window/window-title-updater.js.map +1 -1
- package/lib/common/cancellation.d.ts +2 -0
- package/lib/common/cancellation.d.ts.map +1 -1
- package/lib/common/cancellation.js +20 -0
- package/lib/common/cancellation.js.map +1 -1
- package/lib/common/collections.d.ts +30 -0
- package/lib/common/collections.d.ts.map +1 -0
- package/lib/common/collections.js +122 -0
- package/lib/common/collections.js.map +1 -0
- package/lib/common/event.d.ts +5 -0
- package/lib/common/event.d.ts.map +1 -1
- package/lib/common/event.js +31 -0
- package/lib/common/event.js.map +1 -1
- package/lib/common/hash.d.ts +8 -0
- package/lib/common/hash.d.ts.map +1 -0
- package/lib/common/hash.js +85 -0
- package/lib/common/hash.js.map +1 -0
- package/lib/common/index.d.ts +1 -0
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +1 -0
- package/lib/common/index.js.map +1 -1
- package/lib/common/{keytar-protocol.d.ts → key-store.d.ts} +4 -4
- package/lib/common/key-store.d.ts.map +1 -0
- package/lib/common/{keytar-protocol.js → key-store.js} +4 -4
- package/lib/common/key-store.js.map +1 -0
- package/lib/common/keybinding.d.ts +2 -0
- package/lib/common/keybinding.d.ts.map +1 -1
- package/lib/common/keybinding.js +28 -0
- package/lib/common/keybinding.js.map +1 -1
- package/lib/common/markdown-rendering/markdown-string.d.ts +4 -0
- package/lib/common/markdown-rendering/markdown-string.d.ts.map +1 -1
- package/lib/common/markdown-rendering/markdown-string.js +24 -1
- package/lib/common/markdown-rendering/markdown-string.js.map +1 -1
- package/lib/common/menu/menu-types.d.ts +1 -1
- package/lib/common/menu/menu-types.d.ts.map +1 -1
- package/lib/common/menu/menu-types.js +2 -2
- package/lib/common/menu/menu-types.js.map +1 -1
- package/lib/common/message-rpc/rpc-protocol.d.ts.map +1 -1
- package/lib/common/message-rpc/rpc-protocol.js +6 -11
- package/lib/common/message-rpc/rpc-protocol.js.map +1 -1
- package/lib/common/objects.d.ts +1 -1
- package/lib/common/objects.d.ts.map +1 -1
- package/lib/common/objects.js +12 -10
- package/lib/common/objects.js.map +1 -1
- package/lib/common/quick-pick-service.d.ts +1 -0
- package/lib/common/quick-pick-service.d.ts.map +1 -1
- package/lib/common/quick-pick-service.js +2 -1
- package/lib/common/quick-pick-service.js.map +1 -1
- package/lib/common/strings.d.ts +1 -0
- package/lib/common/strings.d.ts.map +1 -1
- package/lib/common/strings.js +10 -1
- package/lib/common/strings.js.map +1 -1
- package/lib/common/types.d.ts +8 -0
- package/lib/common/types.d.ts.map +1 -1
- package/lib/common/types.js +21 -1
- package/lib/common/types.js.map +1 -1
- package/lib/common/uri.d.ts +0 -1
- package/lib/common/uri.d.ts.map +1 -1
- package/lib/common/uri.js +0 -3
- package/lib/common/uri.js.map +1 -1
- package/lib/common/uuid.d.ts +3 -0
- package/lib/common/uuid.d.ts.map +1 -0
- package/lib/common/uuid.js +86 -0
- package/lib/common/uuid.js.map +1 -0
- package/lib/common/version.d.ts +2 -0
- package/lib/common/version.d.ts.map +1 -0
- package/lib/common/version.js +20 -0
- package/lib/common/version.js.map +1 -0
- package/lib/common/window.d.ts +3 -0
- package/lib/common/window.d.ts.map +1 -1
- package/lib/electron-browser/keyboard/electron-keyboard-module.js +1 -1
- package/lib/electron-browser/keyboard/electron-keyboard-module.js.map +1 -1
- package/lib/electron-browser/messaging/electron-local-ws-connection-provider.d.ts +7 -0
- package/lib/electron-browser/messaging/electron-local-ws-connection-provider.d.ts.map +1 -0
- package/lib/electron-browser/messaging/electron-local-ws-connection-provider.js +55 -0
- package/lib/electron-browser/messaging/electron-local-ws-connection-provider.js.map +1 -0
- package/lib/electron-browser/messaging/electron-messaging-frontend-module.d.ts.map +1 -1
- package/lib/electron-browser/messaging/electron-messaging-frontend-module.js +16 -2
- package/lib/electron-browser/messaging/electron-messaging-frontend-module.js.map +1 -1
- package/lib/electron-browser/messaging/electron-ws-connection-provider.d.ts +1 -1
- package/lib/electron-browser/messaging/electron-ws-connection-provider.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-window-module.js +2 -2
- package/lib/electron-browser/window/electron-window-module.js.map +1 -1
- package/lib/electron-browser/window/electron-window-service.d.ts +3 -3
- package/lib/electron-browser/window/electron-window-service.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-window-service.js +10 -4
- package/lib/electron-browser/window/electron-window-service.js.map +1 -1
- package/lib/electron-common/electron-main-window-service.d.ts +2 -2
- package/lib/electron-common/electron-main-window-service.d.ts.map +1 -1
- package/lib/electron-main/electron-main-application.d.ts +3 -2
- package/lib/electron-main/electron-main-application.d.ts.map +1 -1
- package/lib/electron-main/electron-main-application.js +8 -4
- package/lib/electron-main/electron-main-application.js.map +1 -1
- package/lib/electron-main/electron-main-window-service-impl.d.ts +2 -2
- package/lib/electron-main/electron-main-window-service-impl.d.ts.map +1 -1
- package/lib/electron-main/electron-main-window-service-impl.js +2 -2
- package/lib/electron-main/electron-main-window-service-impl.js.map +1 -1
- package/lib/electron-node/hosting/electron-ws-origin-validator.d.ts +2 -0
- package/lib/electron-node/hosting/electron-ws-origin-validator.d.ts.map +1 -1
- package/lib/electron-node/hosting/electron-ws-origin-validator.js +12 -0
- package/lib/electron-node/hosting/electron-ws-origin-validator.js.map +1 -1
- package/lib/electron-node/token/electron-token-validator.d.ts +2 -2
- package/lib/electron-node/token/electron-token-validator.d.ts.map +1 -1
- package/lib/electron-node/token/electron-token-validator.js +12 -1
- package/lib/electron-node/token/electron-token-validator.js.map +1 -1
- package/lib/node/backend-application-module.d.ts.map +1 -1
- package/lib/node/backend-application-module.js +7 -4
- package/lib/node/backend-application-module.js.map +1 -1
- package/lib/node/backend-application.d.ts.map +1 -1
- package/lib/node/backend-application.js +4 -0
- package/lib/node/backend-application.js.map +1 -1
- package/lib/node/backend-remote-service.d.ts +4 -0
- package/lib/node/backend-remote-service.d.ts.map +1 -0
- package/lib/node/backend-remote-service.js +35 -0
- package/lib/node/backend-remote-service.js.map +1 -0
- package/lib/node/i18n/localization-contribution.d.ts +4 -4
- package/lib/node/i18n/localization-contribution.d.ts.map +1 -1
- package/lib/node/i18n/localization-contribution.js +11 -7
- package/lib/node/i18n/localization-contribution.js.map +1 -1
- package/lib/node/i18n/localization-provider.d.ts +16 -4
- package/lib/node/i18n/localization-provider.d.ts.map +1 -1
- package/lib/node/i18n/localization-provider.js +42 -10
- package/lib/node/i18n/localization-provider.js.map +1 -1
- package/lib/node/key-store-server.d.ts +28 -0
- package/lib/node/key-store-server.d.ts.map +1 -0
- package/lib/node/{keytar-server.js → key-store-server.js} +76 -17
- package/lib/node/key-store-server.js.map +1 -0
- package/lib/node/messaging/messaging-contribution.d.ts +1 -1
- package/lib/node/messaging/messaging-contribution.d.ts.map +1 -1
- package/lib/node/messaging/messaging-contribution.js +5 -4
- package/lib/node/messaging/messaging-contribution.js.map +1 -1
- package/package.json +6 -6
- package/src/browser/color-application-contribution.ts +1 -1
- package/src/browser/common-frontend-contribution.ts +41 -16
- package/src/browser/connection-status-service.ts +1 -1
- package/src/browser/core-preferences.ts +16 -16
- package/src/browser/credentials-service.ts +3 -3
- package/src/browser/dialogs.ts +1 -1
- package/src/browser/frontend-application-contribution.ts +110 -0
- package/src/browser/frontend-application-module.ts +8 -7
- package/src/browser/frontend-application.ts +2 -92
- package/src/browser/i18n/language-quick-pick-service.ts +1 -0
- package/src/browser/icon-registry.ts +96 -0
- package/src/browser/icon-theme-contribution.ts +1 -1
- package/src/browser/index.ts +1 -0
- package/src/browser/json-schema-store.ts +1 -1
- package/src/browser/label-provider.ts +1 -1
- package/src/browser/logger-frontend-module.ts +1 -1
- package/src/browser/menu/browser-menu-module.ts +1 -1
- package/src/browser/menu/browser-menu-plugin.ts +2 -1
- package/src/browser/messaging/messaging-frontend-module.ts +2 -1
- package/src/browser/messaging/ws-connection-provider.ts +21 -2
- package/src/browser/quick-input/quick-command-frontend-contribution.ts +5 -0
- package/src/browser/quick-input/quick-input-frontend-contribution.ts +1 -1
- package/src/browser/saveable.ts +11 -7
- package/src/browser/shell/application-shell-mouse-tracker.ts +1 -1
- package/src/browser/shell/application-shell.ts +16 -15
- package/src/browser/shell/tab-bar-decorator.ts +1 -1
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts +1 -1
- package/src/browser/status-bar/status-bar.tsx +6 -2
- package/src/browser/style/status-bar.css +12 -4
- package/src/browser/styling-service.ts +1 -1
- package/src/browser/window/browser-window-module.ts +1 -1
- package/src/browser/window/default-window-service.spec.ts +1 -1
- package/src/browser/window/default-window-service.ts +2 -1
- package/src/browser/window/window-service.ts +3 -3
- package/src/browser/window/window-title-updater.ts +2 -1
- package/src/common/cancellation.ts +22 -0
- package/src/common/collections.ts +125 -0
- package/src/common/event.ts +32 -0
- package/src/common/hash.ts +85 -0
- package/src/common/i18n/nls.metadata.json +4947 -4690
- package/src/common/index.ts +1 -0
- package/src/common/{keytar-protocol.ts → key-store.ts} +3 -3
- package/src/common/keybinding.ts +26 -0
- package/src/common/markdown-rendering/markdown-string.ts +24 -0
- package/src/common/menu/menu-types.ts +1 -1
- package/src/common/message-rpc/rpc-protocol.ts +6 -10
- package/src/common/objects.ts +14 -10
- package/src/common/quick-pick-service.ts +1 -0
- package/src/common/strings.ts +11 -0
- package/src/common/types.ts +22 -0
- package/src/common/uri.ts +0 -4
- package/src/common/uuid.ts +99 -0
- package/src/common/version.ts +17 -0
- package/src/common/window.ts +4 -0
- package/src/electron-browser/keyboard/electron-keyboard-module.ts +1 -1
- package/src/electron-browser/messaging/electron-local-ws-connection-provider.ts +45 -0
- package/src/electron-browser/messaging/electron-messaging-frontend-module.ts +15 -2
- package/src/electron-browser/messaging/electron-ws-connection-provider.ts +1 -1
- package/src/electron-browser/window/electron-window-module.ts +1 -1
- package/src/electron-browser/window/electron-window-service.ts +10 -5
- package/src/electron-common/electron-main-window-service.ts +2 -2
- package/src/electron-main/electron-main-application.ts +9 -5
- package/src/electron-main/electron-main-window-service-impl.ts +3 -3
- package/src/electron-node/hosting/electron-ws-origin-validator.ts +9 -1
- package/src/electron-node/token/electron-token-validator.ts +13 -3
- package/src/node/backend-application-module.ts +8 -5
- package/src/node/backend-application.ts +4 -0
- package/src/node/backend-remote-service.ts +25 -0
- package/src/node/i18n/localization-contribution.ts +15 -11
- package/src/node/i18n/localization-provider.ts +59 -12
- package/src/node/{keytar-server.ts → key-store-server.ts} +75 -11
- package/src/node/messaging/messaging-contribution.ts +5 -4
- package/lib/common/keytar-protocol.d.ts.map +0 -1
- package/lib/common/keytar-protocol.js.map +0 -1
- package/lib/node/keytar-server.d.ts +0 -14
- package/lib/node/keytar-server.d.ts.map +0 -1
- package/lib/node/keytar-server.js.map +0 -1
|
@@ -29,10 +29,10 @@ import { ApplicationServer, applicationPath } from '../common/application-protoc
|
|
|
29
29
|
import { EnvVariablesServer, envVariablesPath } from './../common/env-variables';
|
|
30
30
|
import { EnvVariablesServerImpl } from './env-variables';
|
|
31
31
|
import { ConnectionContainerModule } from './messaging/connection-container-module';
|
|
32
|
-
import { QuickPickService, quickPickServicePath } from '../common/quick-pick-service';
|
|
32
|
+
import { QuickInputService, quickInputServicePath, QuickPickService, quickPickServicePath } from '../common/quick-pick-service';
|
|
33
33
|
import { WsRequestValidator, WsRequestValidatorContribution } from './ws-request-validators';
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
34
|
+
import { KeyStoreService, keyStoreServicePath } from '../common/key-store';
|
|
35
|
+
import { KeyStoreServiceImpl } from './key-store-server';
|
|
36
36
|
import { ContributionFilterRegistry, ContributionFilterRegistryImpl } from '../common/contribution-filter';
|
|
37
37
|
import { EnvironmentUtils } from './environment-utils';
|
|
38
38
|
import { ProcessUtils } from './process-utils';
|
|
@@ -41,6 +41,7 @@ import { bindNodeStopwatch, bindBackendStopwatchServer } from './performance';
|
|
|
41
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
|
+
import { BackendRemoteService } from './backend-remote-service';
|
|
44
45
|
|
|
45
46
|
decorate(injectable(), ApplicationPackage);
|
|
46
47
|
|
|
@@ -54,6 +55,7 @@ const messageConnectionModule = ConnectionContainerModule.create(({ bind, bindFr
|
|
|
54
55
|
});
|
|
55
56
|
|
|
56
57
|
const quickPickConnectionModule = ConnectionContainerModule.create(({ bindFrontendService }) => {
|
|
58
|
+
bindFrontendService(quickInputServicePath, QuickInputService);
|
|
57
59
|
bindFrontendService(quickPickServicePath, QuickPickService);
|
|
58
60
|
});
|
|
59
61
|
|
|
@@ -106,9 +108,9 @@ export const backendApplicationModule = new ContainerModule(bind => {
|
|
|
106
108
|
|
|
107
109
|
bind(WsRequestValidator).toSelf().inSingletonScope();
|
|
108
110
|
bindContributionProvider(bind, WsRequestValidatorContribution);
|
|
109
|
-
bind(
|
|
111
|
+
bind(KeyStoreService).to(KeyStoreServiceImpl).inSingletonScope();
|
|
110
112
|
bind(ConnectionHandler).toDynamicValue(ctx =>
|
|
111
|
-
new RpcConnectionHandler(
|
|
113
|
+
new RpcConnectionHandler(keyStoreServicePath, () => ctx.container.get<KeyStoreService>(KeyStoreService))
|
|
112
114
|
).inSingletonScope();
|
|
113
115
|
|
|
114
116
|
bind(ContributionFilterRegistry).to(ContributionFilterRegistryImpl).inSingletonScope();
|
|
@@ -125,6 +127,7 @@ export const backendApplicationModule = new ContainerModule(bind => {
|
|
|
125
127
|
bind(ProxyCliContribution).toSelf().inSingletonScope();
|
|
126
128
|
bind(CliContribution).toService(ProxyCliContribution);
|
|
127
129
|
|
|
130
|
+
bind(BackendRemoteService).toSelf().inSingletonScope();
|
|
128
131
|
bind(BackendRequestFacade).toSelf().inSingletonScope();
|
|
129
132
|
bind(ConnectionHandler).toDynamicValue(
|
|
130
133
|
ctx => new RpcConnectionHandler(REQUEST_SERVICE_PATH, () => ctx.container.get(BackendRequestFacade))
|
|
@@ -228,6 +228,10 @@ export class BackendApplication {
|
|
|
228
228
|
this.app.get('*.gif', this.serveGzipped.bind(this, 'image/gif'));
|
|
229
229
|
this.app.get('*.png', this.serveGzipped.bind(this, 'image/png'));
|
|
230
230
|
this.app.get('*.svg', this.serveGzipped.bind(this, 'image/svg+xml'));
|
|
231
|
+
this.app.get('*.eot', this.serveGzipped.bind(this, 'application/vnd.ms-fontobject'));
|
|
232
|
+
this.app.get('*.ttf', this.serveGzipped.bind(this, 'font/ttf'));
|
|
233
|
+
this.app.get('*.woff', this.serveGzipped.bind(this, 'font/woff'));
|
|
234
|
+
this.app.get('*.woff2', this.serveGzipped.bind(this, 'font/woff2'));
|
|
231
235
|
|
|
232
236
|
for (const contribution of this.contributionsProvider.getContributions()) {
|
|
233
237
|
if (contribution.configure) {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2023 TypeFox 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
|
+
import { injectable } from 'inversify';
|
|
18
|
+
|
|
19
|
+
@injectable()
|
|
20
|
+
export class BackendRemoteService {
|
|
21
|
+
|
|
22
|
+
isRemoteServer(): boolean {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -18,7 +18,7 @@ import * as fs from 'fs-extra';
|
|
|
18
18
|
import { inject, injectable, named } from 'inversify';
|
|
19
19
|
import { ContributionProvider, isObject } from '../../common';
|
|
20
20
|
import { LanguageInfo, Localization } from '../../common/i18n/localization';
|
|
21
|
-
import { LocalizationProvider } from './localization-provider';
|
|
21
|
+
import { LazyLocalization, LocalizationProvider } from './localization-provider';
|
|
22
22
|
|
|
23
23
|
export const LocalizationContribution = Symbol('LocalizationContribution');
|
|
24
24
|
|
|
@@ -41,38 +41,42 @@ export class LocalizationRegistry {
|
|
|
41
41
|
));
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
registerLocalization(localization: Localization): void {
|
|
44
|
+
registerLocalization(localization: Localization | LazyLocalization): void {
|
|
45
|
+
if (!LazyLocalization.is(localization)) {
|
|
46
|
+
localization = LazyLocalization.fromLocalization(localization);
|
|
47
|
+
}
|
|
45
48
|
this.localizationProvider.addLocalizations(localization);
|
|
46
49
|
}
|
|
47
50
|
|
|
48
51
|
registerLocalizationFromRequire(locale: string | LanguageInfo, required: unknown): void {
|
|
49
52
|
const translations = this.flattenTranslations(required);
|
|
50
|
-
this.registerLocalization(this.createLocalization(locale, translations));
|
|
53
|
+
this.registerLocalization(this.createLocalization(locale, () => Promise.resolve(translations)));
|
|
51
54
|
}
|
|
52
55
|
|
|
53
|
-
|
|
56
|
+
registerLocalizationFromFile(localizationPath: string, locale?: string | LanguageInfo): void {
|
|
54
57
|
if (!locale) {
|
|
55
58
|
locale = this.identifyLocale(localizationPath);
|
|
56
59
|
}
|
|
57
60
|
if (!locale) {
|
|
58
61
|
throw new Error('Could not determine locale from path.');
|
|
59
62
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
this.registerLocalization(this.createLocalization(locale, async () => {
|
|
64
|
+
const translationJson = await fs.readJson(localizationPath);
|
|
65
|
+
return this.flattenTranslations(translationJson);
|
|
66
|
+
}));
|
|
63
67
|
}
|
|
64
68
|
|
|
65
|
-
protected createLocalization(locale: string | LanguageInfo, translations: Record<string, string
|
|
66
|
-
let localization:
|
|
69
|
+
protected createLocalization(locale: string | LanguageInfo, translations: () => Promise<Record<string, string>>): LazyLocalization {
|
|
70
|
+
let localization: LazyLocalization;
|
|
67
71
|
if (typeof locale === 'string') {
|
|
68
72
|
localization = {
|
|
69
73
|
languageId: locale,
|
|
70
|
-
translations
|
|
74
|
+
getTranslations: translations
|
|
71
75
|
};
|
|
72
76
|
} else {
|
|
73
77
|
localization = {
|
|
74
78
|
...locale,
|
|
75
|
-
translations
|
|
79
|
+
getTranslations: translations
|
|
76
80
|
};
|
|
77
81
|
}
|
|
78
82
|
return localization;
|
|
@@ -17,24 +17,70 @@
|
|
|
17
17
|
import { injectable } from 'inversify';
|
|
18
18
|
import { nls } from '../../common/nls';
|
|
19
19
|
import { LanguageInfo, Localization } from '../../common/i18n/localization';
|
|
20
|
+
import { Disposable } from '../../common/disposable';
|
|
21
|
+
import { isObject } from '../../common/types';
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Localization data structure that contributes its localizations asynchronously.
|
|
25
|
+
* Allows to load localizations on demand when requested by the user.
|
|
26
|
+
*/
|
|
27
|
+
export interface LazyLocalization extends LanguageInfo {
|
|
28
|
+
getTranslations(): Promise<Record<string, string>>;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export namespace LazyLocalization {
|
|
32
|
+
export function is(obj: unknown): obj is LazyLocalization {
|
|
33
|
+
return isObject<LazyLocalization>(obj) && typeof obj.languageId === 'string' && typeof obj.getTranslations === 'function';
|
|
34
|
+
}
|
|
35
|
+
export function fromLocalization(localization: Localization): LazyLocalization {
|
|
36
|
+
const {
|
|
37
|
+
languageId,
|
|
38
|
+
languageName,
|
|
39
|
+
languagePack,
|
|
40
|
+
localizedLanguageName,
|
|
41
|
+
translations
|
|
42
|
+
} = localization;
|
|
43
|
+
return {
|
|
44
|
+
languageId,
|
|
45
|
+
languageName,
|
|
46
|
+
languagePack,
|
|
47
|
+
localizedLanguageName,
|
|
48
|
+
getTranslations: () => Promise.resolve(translations)
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export async function toLocalization(localization: LazyLocalization): Promise<Localization> {
|
|
52
|
+
const {
|
|
53
|
+
languageId,
|
|
54
|
+
languageName,
|
|
55
|
+
languagePack,
|
|
56
|
+
localizedLanguageName
|
|
57
|
+
} = localization;
|
|
58
|
+
return {
|
|
59
|
+
languageId,
|
|
60
|
+
languageName,
|
|
61
|
+
languagePack,
|
|
62
|
+
localizedLanguageName,
|
|
63
|
+
translations: await localization.getTranslations()
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
20
67
|
|
|
21
68
|
@injectable()
|
|
22
69
|
export class LocalizationProvider {
|
|
23
70
|
|
|
24
|
-
protected localizations:
|
|
71
|
+
protected localizations: LazyLocalization[] = [];
|
|
25
72
|
protected currentLanguage = nls.defaultLocale;
|
|
26
73
|
|
|
27
|
-
addLocalizations(...localizations:
|
|
74
|
+
addLocalizations(...localizations: LazyLocalization[]): Disposable {
|
|
28
75
|
this.localizations.push(...localizations);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
this.localizations.splice(index, 1);
|
|
76
|
+
return Disposable.create(() => {
|
|
77
|
+
for (const localization of localizations) {
|
|
78
|
+
const index = this.localizations.indexOf(localization);
|
|
79
|
+
if (index >= 0) {
|
|
80
|
+
this.localizations.splice(index, 1);
|
|
81
|
+
}
|
|
36
82
|
}
|
|
37
|
-
}
|
|
83
|
+
});
|
|
38
84
|
}
|
|
39
85
|
|
|
40
86
|
setCurrentLanguage(languageId: string): void {
|
|
@@ -61,12 +107,13 @@ export class LocalizationProvider {
|
|
|
61
107
|
return Array.from(languageInfos.values()).sort((a, b) => a.languageId.localeCompare(b.languageId));
|
|
62
108
|
}
|
|
63
109
|
|
|
64
|
-
loadLocalization(languageId: string): Localization {
|
|
110
|
+
async loadLocalization(languageId: string): Promise<Localization> {
|
|
65
111
|
const merged: Localization = {
|
|
66
112
|
languageId,
|
|
67
113
|
translations: {}
|
|
68
114
|
};
|
|
69
|
-
|
|
115
|
+
const localizations = await Promise.all(this.localizations.filter(e => e.languageId === languageId).map(LazyLocalization.toLocalization));
|
|
116
|
+
for (const localization of localizations) {
|
|
70
117
|
merged.languageName ||= localization.languageName;
|
|
71
118
|
merged.localizedLanguageName ||= localization.localizedLanguageName;
|
|
72
119
|
merged.languagePack ||= localization.languagePack;
|
|
@@ -20,24 +20,27 @@
|
|
|
20
20
|
*--------------------------------------------------------------------------------------------*/
|
|
21
21
|
// code copied and modified from https://github.com/microsoft/vscode/blob/1.55.2/src/vs/platform/native/electron-main/nativeHostMainService.ts#L679-L771
|
|
22
22
|
|
|
23
|
-
import {
|
|
23
|
+
import { KeyStoreService } from '../common/key-store';
|
|
24
24
|
import { injectable } from 'inversify';
|
|
25
25
|
import { isWindows } from '../common';
|
|
26
|
-
import * as keytar from 'keytar';
|
|
27
26
|
|
|
28
27
|
@injectable()
|
|
29
|
-
export class
|
|
28
|
+
export class KeyStoreServiceImpl implements KeyStoreService {
|
|
29
|
+
|
|
30
30
|
private static readonly MAX_PASSWORD_LENGTH = 2500;
|
|
31
|
-
private static readonly PASSWORD_CHUNK_SIZE =
|
|
31
|
+
private static readonly PASSWORD_CHUNK_SIZE = KeyStoreServiceImpl.MAX_PASSWORD_LENGTH - 100;
|
|
32
|
+
|
|
33
|
+
protected keytarImplementation?: typeof import('keytar');
|
|
32
34
|
|
|
33
35
|
async setPassword(service: string, account: string, password: string): Promise<void> {
|
|
34
|
-
|
|
36
|
+
const keytar = await this.getKeytar();
|
|
37
|
+
if (isWindows && password.length > KeyStoreServiceImpl.MAX_PASSWORD_LENGTH) {
|
|
35
38
|
let index = 0;
|
|
36
39
|
let chunk = 0;
|
|
37
40
|
let hasNextChunk = true;
|
|
38
41
|
while (hasNextChunk) {
|
|
39
|
-
const passwordChunk = password.substring(index, index +
|
|
40
|
-
index +=
|
|
42
|
+
const passwordChunk = password.substring(index, index + KeyStoreServiceImpl.PASSWORD_CHUNK_SIZE);
|
|
43
|
+
index += KeyStoreServiceImpl.PASSWORD_CHUNK_SIZE;
|
|
41
44
|
hasNextChunk = password.length - index > 0;
|
|
42
45
|
|
|
43
46
|
const content: ChunkedPassword = {
|
|
@@ -54,11 +57,13 @@ export class KeytarServiceImpl implements KeytarService {
|
|
|
54
57
|
}
|
|
55
58
|
}
|
|
56
59
|
|
|
57
|
-
deletePassword(service: string, account: string): Promise<boolean> {
|
|
60
|
+
async deletePassword(service: string, account: string): Promise<boolean> {
|
|
61
|
+
const keytar = await this.getKeytar();
|
|
58
62
|
return keytar.deletePassword(service, account);
|
|
59
63
|
}
|
|
60
64
|
|
|
61
65
|
async getPassword(service: string, account: string): Promise<string | undefined> {
|
|
66
|
+
const keytar = await this.getKeytar();
|
|
62
67
|
const password = await keytar.getPassword(service, account);
|
|
63
68
|
if (password) {
|
|
64
69
|
try {
|
|
@@ -81,15 +86,74 @@ export class KeytarServiceImpl implements KeytarService {
|
|
|
81
86
|
}
|
|
82
87
|
}
|
|
83
88
|
}
|
|
89
|
+
|
|
84
90
|
async findPassword(service: string): Promise<string | undefined> {
|
|
91
|
+
const keytar = await this.getKeytar();
|
|
85
92
|
const password = await keytar.findPassword(service);
|
|
86
|
-
|
|
87
|
-
return password;
|
|
88
|
-
}
|
|
93
|
+
return password ?? undefined;
|
|
89
94
|
}
|
|
95
|
+
|
|
90
96
|
async findCredentials(service: string): Promise<Array<{ account: string, password: string }>> {
|
|
97
|
+
const keytar = await this.getKeytar();
|
|
91
98
|
return keytar.findCredentials(service);
|
|
92
99
|
}
|
|
100
|
+
|
|
101
|
+
protected async getKeytar(): Promise<typeof import('keytar')> {
|
|
102
|
+
if (this.keytarImplementation) {
|
|
103
|
+
return this.keytarImplementation;
|
|
104
|
+
}
|
|
105
|
+
try {
|
|
106
|
+
this.keytarImplementation = await import('keytar');
|
|
107
|
+
// Try using keytar to see if it throws or not.
|
|
108
|
+
await this.keytarImplementation.findCredentials('test-keytar-loads');
|
|
109
|
+
} catch (err) {
|
|
110
|
+
this.keytarImplementation = new InMemoryCredentialsProvider();
|
|
111
|
+
console.warn('OS level credential store could not be accessed. Using in-memory credentials provider', err);
|
|
112
|
+
}
|
|
113
|
+
return this.keytarImplementation;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export class InMemoryCredentialsProvider {
|
|
118
|
+
private secretVault: Record<string, Record<string, string> | undefined> = {};
|
|
119
|
+
|
|
120
|
+
async getPassword(service: string, account: string): Promise<string | null> {
|
|
121
|
+
// eslint-disable-next-line no-null/no-null
|
|
122
|
+
return this.secretVault[service]?.[account] ?? null;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
async setPassword(service: string, account: string, password: string): Promise<void> {
|
|
126
|
+
this.secretVault[service] = this.secretVault[service] ?? {};
|
|
127
|
+
this.secretVault[service]![account] = password;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
async deletePassword(service: string, account: string): Promise<boolean> {
|
|
131
|
+
if (!this.secretVault[service]?.[account]) {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
delete this.secretVault[service]![account];
|
|
135
|
+
if (Object.keys(this.secretVault[service]!).length === 0) {
|
|
136
|
+
delete this.secretVault[service];
|
|
137
|
+
}
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
async findPassword(service: string): Promise<string | null> {
|
|
142
|
+
// eslint-disable-next-line no-null/no-null
|
|
143
|
+
return JSON.stringify(this.secretVault[service]) ?? null;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
async findCredentials(service: string): Promise<Array<{ account: string; password: string }>> {
|
|
147
|
+
const credentials: { account: string; password: string }[] = [];
|
|
148
|
+
for (const account of Object.keys(this.secretVault[service] || {})) {
|
|
149
|
+
credentials.push({ account, password: this.secretVault[service]![account] });
|
|
150
|
+
}
|
|
151
|
+
return credentials;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
async clear(): Promise<void> {
|
|
155
|
+
this.secretVault = {};
|
|
156
|
+
}
|
|
93
157
|
}
|
|
94
158
|
|
|
95
159
|
interface ChunkedPassword {
|
|
@@ -83,7 +83,7 @@ export class MessagingContribution implements BackendApplicationContribution, Me
|
|
|
83
83
|
// We provide a `fix-origin` header in the `WebSocketConnectionProvider`
|
|
84
84
|
request.headers.origin = request.headers['fix-origin'] as string;
|
|
85
85
|
if (await this.allowConnect(socket.request)) {
|
|
86
|
-
this.handleConnection(socket);
|
|
86
|
+
await this.handleConnection(socket);
|
|
87
87
|
this.messagingListener.onDidWebSocketUpgrade(socket.request, socket);
|
|
88
88
|
} else {
|
|
89
89
|
socket.disconnect(true);
|
|
@@ -91,7 +91,7 @@ export class MessagingContribution implements BackendApplicationContribution, Me
|
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
protected handleConnection(socket: Socket): void {
|
|
94
|
+
protected async handleConnection(socket: Socket): Promise<void> {
|
|
95
95
|
const pathname = socket.nsp.name;
|
|
96
96
|
if (pathname && !this.wsHandlers.route(pathname, socket)) {
|
|
97
97
|
console.error('Cannot find a ws handler for the path: ' + pathname);
|
|
@@ -166,14 +166,15 @@ export namespace MessagingContribution {
|
|
|
166
166
|
|
|
167
167
|
push(spec: string, callback: (params: MessagingService.PathParams, connection: T) => void): void {
|
|
168
168
|
const route = new Route(spec);
|
|
169
|
-
|
|
169
|
+
const handler = (path: string, channel: T): string | false => {
|
|
170
170
|
const params = route.match(path);
|
|
171
171
|
if (!params) {
|
|
172
172
|
return false;
|
|
173
173
|
}
|
|
174
174
|
callback(params, channel);
|
|
175
175
|
return route.reverse(params);
|
|
176
|
-
}
|
|
176
|
+
};
|
|
177
|
+
this.handlers.push(handler);
|
|
177
178
|
}
|
|
178
179
|
|
|
179
180
|
route(path: string, connection: T): string | false {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keytar-protocol.d.ts","sourceRoot":"","sources":["../../src/common/keytar-protocol.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AAEpD,eAAO,MAAM,aAAa,eAA0B,CAAC;AACrD,MAAM,WAAW,aAAa;IAC1B,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC3E,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC3D,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CAC3F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keytar-protocol.js","sourceRoot":"","sources":["../../src/common/keytar-protocol.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,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;;;AAEnE,QAAA,iBAAiB,GAAG,kBAAkB,CAAC;AAEvC,QAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { KeytarService } from '../common/keytar-protocol';
|
|
2
|
-
export declare class KeytarServiceImpl implements KeytarService {
|
|
3
|
-
private static readonly MAX_PASSWORD_LENGTH;
|
|
4
|
-
private static readonly PASSWORD_CHUNK_SIZE;
|
|
5
|
-
setPassword(service: string, account: string, password: string): Promise<void>;
|
|
6
|
-
deletePassword(service: string, account: string): Promise<boolean>;
|
|
7
|
-
getPassword(service: string, account: string): Promise<string | undefined>;
|
|
8
|
-
findPassword(service: string): Promise<string | undefined>;
|
|
9
|
-
findCredentials(service: string): Promise<Array<{
|
|
10
|
-
account: string;
|
|
11
|
-
password: string;
|
|
12
|
-
}>>;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=keytar-server.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keytar-server.d.ts","sourceRoot":"","sources":["../../src/node/keytar-server.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAK1D,qBACa,iBAAkB,YAAW,aAAa;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAA+C;IAEpF,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBpF,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5D,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAuB1E,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAM1D,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAGhG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keytar-server.js","sourceRoot":"","sources":["../../src/node/keytar-server.ts"],"names":[],"mappings":"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"}
|