@theia/core 1.44.0 → 1.45.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 +10 -3
- package/i18n/nls.de.json +10 -3
- package/i18n/nls.es.json +10 -3
- package/i18n/nls.fr.json +10 -3
- package/i18n/nls.hu.json +10 -3
- package/i18n/nls.it.json +10 -3
- package/i18n/nls.ja.json +10 -3
- package/i18n/nls.json +10 -3
- package/i18n/nls.pl.json +10 -3
- package/i18n/nls.pt-br.json +10 -3
- package/i18n/nls.pt-pt.json +10 -3
- package/i18n/nls.ru.json +10 -3
- package/i18n/nls.zh-cn.json +10 -3
- package/lib/browser/common-frontend-contribution.d.ts +6 -0
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +52 -9
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/connection-status-service.d.ts +2 -2
- package/lib/browser/connection-status-service.d.ts.map +1 -1
- package/lib/browser/connection-status-service.js +3 -3
- package/lib/browser/connection-status-service.js.map +1 -1
- package/lib/browser/connection-status-service.spec.js +6 -6
- package/lib/browser/connection-status-service.spec.js.map +1 -1
- package/lib/browser/core-preferences.d.ts.map +1 -1
- package/lib/browser/core-preferences.js +16 -0
- package/lib/browser/core-preferences.js.map +1 -1
- package/lib/browser/dialogs.d.ts +0 -1
- package/lib/browser/dialogs.d.ts.map +1 -1
- package/lib/browser/dialogs.js +1 -34
- package/lib/browser/dialogs.js.map +1 -1
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js +1 -0
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/messaging/connection-source.d.ts +9 -0
- package/lib/browser/messaging/connection-source.d.ts.map +1 -0
- package/lib/browser/messaging/connection-source.js +20 -0
- package/lib/browser/messaging/connection-source.js.map +1 -0
- package/lib/browser/messaging/frontend-id-provider.d.ts +13 -0
- package/lib/browser/messaging/frontend-id-provider.d.ts.map +1 -0
- package/lib/browser/messaging/frontend-id-provider.js +40 -0
- package/lib/browser/messaging/frontend-id-provider.js.map +1 -0
- package/lib/browser/messaging/messaging-frontend-module.d.ts.map +1 -1
- package/lib/browser/messaging/messaging-frontend-module.js +18 -1
- package/lib/browser/messaging/messaging-frontend-module.js.map +1 -1
- package/lib/browser/messaging/service-connection-provider.d.ts +48 -0
- package/lib/browser/messaging/service-connection-provider.d.ts.map +1 -0
- package/lib/browser/messaging/service-connection-provider.js +115 -0
- package/lib/browser/messaging/service-connection-provider.js.map +1 -0
- package/lib/browser/messaging/ws-connection-provider.d.ts +7 -38
- package/lib/browser/messaging/ws-connection-provider.d.ts.map +1 -1
- package/lib/browser/messaging/ws-connection-provider.js +17 -121
- package/lib/browser/messaging/ws-connection-provider.js.map +1 -1
- package/lib/browser/messaging/ws-connection-source.d.ts +41 -0
- package/lib/browser/messaging/ws-connection-source.d.ts.map +1 -0
- package/lib/browser/messaging/ws-connection-source.js +210 -0
- package/lib/browser/messaging/ws-connection-source.js.map +1 -0
- package/lib/browser/preload/i18n-preload-contribution.js +1 -1
- package/lib/browser/preload/i18n-preload-contribution.js.map +1 -1
- package/lib/browser/shell/application-shell.js +1 -1
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-widget.d.ts +1 -0
- package/lib/browser/tree/tree-compression/compressed-tree-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-widget.js +5 -0
- package/lib/browser/tree/tree-compression/compressed-tree-widget.js.map +1 -1
- package/lib/browser/tree/tree-widget.d.ts +6 -0
- package/lib/browser/tree/tree-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-widget.js +21 -11
- package/lib/browser/tree/tree-widget.js.map +1 -1
- package/lib/browser/user-working-directory-provider.d.ts +8 -1
- package/lib/browser/user-working-directory-provider.d.ts.map +1 -1
- package/lib/browser/user-working-directory-provider.js +22 -1
- package/lib/browser/user-working-directory-provider.js.map +1 -1
- package/lib/browser/window/default-secondary-window-service.d.ts +3 -0
- package/lib/browser/window/default-secondary-window-service.d.ts.map +1 -1
- package/lib/browser/window/default-secondary-window-service.js +55 -1
- package/lib/browser/window/default-secondary-window-service.js.map +1 -1
- package/lib/common/message-rpc/channel.d.ts.map +1 -1
- package/lib/common/message-rpc/channel.js +7 -1
- package/lib/common/message-rpc/channel.js.map +1 -1
- package/lib/common/message-rpc/message-buffer.d.ts +2 -0
- package/lib/common/message-rpc/message-buffer.d.ts.map +1 -1
- package/lib/common/message-rpc/message-buffer.js +4 -0
- package/lib/common/message-rpc/message-buffer.js.map +1 -1
- package/lib/common/message-rpc/uint8-array-message-buffer.d.ts +1 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.d.ts.map +1 -1
- package/lib/common/message-rpc/uint8-array-message-buffer.js +6 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.js.map +1 -1
- package/lib/common/messaging/connection-management.d.ts +25 -0
- package/lib/common/messaging/connection-management.d.ts.map +1 -0
- package/lib/common/messaging/connection-management.js +38 -0
- package/lib/common/messaging/connection-management.js.map +1 -0
- package/lib/common/messaging/handler.d.ts +1 -0
- package/lib/common/messaging/handler.d.ts.map +1 -1
- package/lib/common/messaging/handler.js +2 -1
- package/lib/common/messaging/handler.js.map +1 -1
- package/lib/common/messaging/socket-write-buffer.d.ts +11 -0
- package/lib/common/messaging/socket-write-buffer.d.ts.map +1 -0
- package/lib/common/messaging/socket-write-buffer.js +50 -0
- package/lib/common/messaging/socket-write-buffer.js.map +1 -0
- package/lib/common/messaging/web-socket-channel.d.ts +7 -35
- package/lib/common/messaging/web-socket-channel.d.ts.map +1 -1
- package/lib/common/messaging/web-socket-channel.js +20 -9
- package/lib/common/messaging/web-socket-channel.js.map +1 -1
- package/lib/electron-browser/messaging/electron-frontend-id-provider.d.ts +5 -0
- package/lib/electron-browser/messaging/electron-frontend-id-provider.d.ts.map +1 -0
- package/lib/{electron-node/token/electron-token-messaging-contribution.js → electron-browser/messaging/electron-frontend-id-provider.js} +9 -28
- package/lib/electron-browser/messaging/electron-frontend-id-provider.js.map +1 -0
- package/lib/electron-browser/messaging/electron-ipc-connection-source.d.ts +24 -0
- package/lib/electron-browser/messaging/electron-ipc-connection-source.d.ts.map +1 -0
- package/lib/electron-browser/messaging/{electron-ipc-connection-provider.js → electron-ipc-connection-source.js} +19 -19
- package/lib/electron-browser/messaging/electron-ipc-connection-source.js.map +1 -0
- package/lib/electron-browser/messaging/electron-local-ws-connection-source.d.ts +7 -0
- package/lib/electron-browser/messaging/electron-local-ws-connection-source.d.ts.map +1 -0
- package/lib/electron-browser/messaging/{electron-local-ws-connection-provider.js → electron-local-ws-connection-source.js} +7 -7
- package/lib/electron-browser/messaging/electron-local-ws-connection-source.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 +45 -13
- package/lib/electron-browser/messaging/electron-messaging-frontend-module.js.map +1 -1
- package/lib/electron-browser/messaging/electron-ws-connection-source.d.ts +12 -0
- package/lib/electron-browser/messaging/electron-ws-connection-source.d.ts.map +1 -0
- package/lib/electron-browser/messaging/{electron-ws-connection-provider.js → electron-ws-connection-source.js} +14 -21
- package/lib/electron-browser/messaging/electron-ws-connection-source.js.map +1 -0
- package/lib/electron-browser/preload.d.ts.map +1 -1
- package/lib/electron-browser/preload.js +10 -0
- package/lib/electron-browser/preload.js.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 +4 -0
- package/lib/electron-browser/window/electron-window-service.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-window-service.js +13 -0
- package/lib/electron-browser/window/electron-window-service.js.map +1 -1
- package/lib/electron-common/electron-api.d.ts +6 -0
- package/lib/electron-common/electron-api.d.ts.map +1 -1
- package/lib/electron-common/electron-api.js +3 -1
- package/lib/electron-common/electron-api.js.map +1 -1
- package/lib/electron-main/electron-api-main.d.ts +1 -0
- package/lib/electron-main/electron-api-main.d.ts.map +1 -1
- package/lib/electron-main/electron-api-main.js +15 -0
- package/lib/electron-main/electron-api-main.js.map +1 -1
- package/lib/electron-main/electron-main-application-module.js +5 -5
- package/lib/electron-main/electron-main-application-module.js.map +1 -1
- package/lib/electron-main/electron-main-application.d.ts +7 -13
- package/lib/electron-main/electron-main-application.d.ts.map +1 -1
- package/lib/electron-main/electron-main-application.js +36 -26
- package/lib/electron-main/electron-main-application.js.map +1 -1
- package/lib/electron-main/messaging/electron-connection-handler.d.ts.map +1 -0
- package/lib/electron-main/messaging/electron-connection-handler.js.map +1 -0
- package/lib/electron-main/messaging/electron-messaging-contribution.d.ts +13 -22
- package/lib/electron-main/messaging/electron-messaging-contribution.d.ts.map +1 -1
- package/lib/electron-main/messaging/electron-messaging-contribution.js +39 -39
- package/lib/electron-main/messaging/electron-messaging-contribution.js.map +1 -1
- package/lib/electron-main/messaging/electron-messaging-service.d.ts.map +1 -1
- package/lib/electron-main/messaging/electron-messaging-service.js.map +1 -1
- package/lib/electron-main/theia-electron-window.d.ts +2 -2
- package/lib/electron-main/theia-electron-window.d.ts.map +1 -1
- package/lib/electron-main/theia-electron-window.js +3 -2
- package/lib/electron-main/theia-electron-window.js.map +1 -1
- package/lib/node/messaging/default-messaging-service.d.ts +29 -0
- package/lib/node/messaging/default-messaging-service.d.ts.map +1 -0
- package/lib/node/messaging/default-messaging-service.js +140 -0
- package/lib/node/messaging/default-messaging-service.js.map +1 -0
- package/lib/node/messaging/frontend-connection-service.d.ts +7 -0
- package/lib/node/messaging/frontend-connection-service.d.ts.map +1 -0
- package/lib/node/messaging/frontend-connection-service.js +19 -0
- package/lib/node/messaging/frontend-connection-service.js.map +1 -0
- package/lib/node/messaging/messaging-backend-module.d.ts.map +1 -1
- package/lib/node/messaging/messaging-backend-module.js +23 -9
- package/lib/node/messaging/messaging-backend-module.js.map +1 -1
- package/lib/node/messaging/messaging-service.d.ts +2 -3
- package/lib/node/messaging/messaging-service.d.ts.map +1 -1
- package/lib/node/messaging/test/test-web-socket-channel.d.ts +3 -3
- package/lib/node/messaging/test/test-web-socket-channel.d.ts.map +1 -1
- package/lib/node/messaging/test/test-web-socket-channel.js +38 -24
- package/lib/node/messaging/test/test-web-socket-channel.js.map +1 -1
- package/lib/node/messaging/websocket-endpoint.d.ts +21 -0
- package/lib/node/messaging/websocket-endpoint.d.ts.map +1 -0
- package/lib/node/messaging/websocket-endpoint.js +89 -0
- package/lib/node/messaging/websocket-endpoint.js.map +1 -0
- package/lib/node/messaging/websocket-frontend-connection-service.d.ts +30 -0
- package/lib/node/messaging/websocket-frontend-connection-service.d.ts.map +1 -0
- package/lib/node/messaging/websocket-frontend-connection-service.js +173 -0
- package/lib/node/messaging/websocket-frontend-connection-service.js.map +1 -0
- package/package.json +6 -6
- package/src/browser/common-frontend-contribution.ts +55 -9
- package/src/browser/connection-status-service.spec.ts +6 -6
- package/src/browser/connection-status-service.ts +2 -2
- package/src/browser/core-preferences.ts +16 -0
- package/src/browser/dialogs.ts +0 -34
- package/src/browser/frontend-application-module.ts +1 -0
- package/src/browser/messaging/connection-source.ts +26 -0
- package/src/browser/messaging/frontend-id-provider.ts +37 -0
- package/src/browser/messaging/messaging-frontend-module.ts +20 -2
- package/src/browser/messaging/service-connection-provider.ts +126 -0
- package/src/browser/messaging/ws-connection-provider.ts +16 -141
- package/src/browser/messaging/ws-connection-source.ts +210 -0
- package/src/browser/preload/i18n-preload-contribution.ts +1 -1
- package/src/browser/shell/application-shell.ts +1 -1
- package/src/browser/tree/tree-compression/compressed-tree-widget.tsx +27 -7
- package/src/browser/tree/tree-widget.tsx +21 -10
- package/src/browser/user-working-directory-provider.ts +32 -3
- package/src/browser/window/default-secondary-window-service.ts +54 -1
- package/src/common/i18n/nls.metadata.json +7208 -6923
- package/src/common/message-rpc/channel.ts +5 -1
- package/src/common/message-rpc/message-buffer.ts +6 -0
- package/src/common/message-rpc/uint8-array-message-buffer.ts +7 -0
- package/src/common/messaging/connection-management.ts +43 -0
- package/src/common/messaging/handler.ts +2 -0
- package/src/common/messaging/socket-write-buffer.ts +52 -0
- package/src/common/messaging/web-socket-channel.ts +28 -45
- package/src/electron-browser/messaging/electron-frontend-id-provider.ts +25 -0
- package/src/electron-browser/messaging/{electron-ipc-connection-provider.ts → electron-ipc-connection-source.ts} +17 -13
- package/src/electron-browser/messaging/{electron-local-ws-connection-provider.ts → electron-local-ws-connection-source.ts} +2 -2
- package/src/electron-browser/messaging/electron-messaging-frontend-module.ts +49 -12
- package/src/electron-browser/messaging/{electron-ws-connection-provider.ts → electron-ws-connection-source.ts} +6 -17
- package/src/electron-browser/preload.ts +15 -1
- package/src/electron-browser/window/electron-window-module.ts +1 -1
- package/src/electron-browser/window/electron-window-service.ts +11 -0
- package/src/electron-common/electron-api.ts +7 -0
- package/src/electron-main/electron-api-main.ts +20 -1
- package/src/electron-main/electron-main-application-module.ts +5 -5
- package/src/electron-main/electron-main-application.ts +46 -41
- package/src/electron-main/messaging/electron-messaging-contribution.ts +45 -43
- package/src/electron-main/messaging/electron-messaging-service.ts +1 -0
- package/src/electron-main/theia-electron-window.ts +4 -3
- package/src/node/messaging/default-messaging-service.ts +129 -0
- package/src/node/messaging/frontend-connection-service.ts +24 -0
- package/src/node/messaging/messaging-backend-module.ts +25 -10
- package/src/node/messaging/messaging-service.ts +3 -3
- package/src/node/messaging/test/test-web-socket-channel.ts +32 -27
- package/src/node/messaging/websocket-endpoint.ts +79 -0
- package/src/node/messaging/websocket-frontend-connection-service.ts +171 -0
- package/lib/common/messaging/abstract-connection-provider.d.ts +0 -45
- package/lib/common/messaging/abstract-connection-provider.d.ts.map +0 -1
- package/lib/common/messaging/abstract-connection-provider.js +0 -93
- package/lib/common/messaging/abstract-connection-provider.js.map +0 -1
- package/lib/electron-browser/messaging/electron-ipc-connection-provider.d.ts +0 -19
- package/lib/electron-browser/messaging/electron-ipc-connection-provider.d.ts.map +0 -1
- package/lib/electron-browser/messaging/electron-ipc-connection-provider.js.map +0 -1
- package/lib/electron-browser/messaging/electron-local-ws-connection-provider.d.ts +0 -7
- package/lib/electron-browser/messaging/electron-local-ws-connection-provider.d.ts.map +0 -1
- package/lib/electron-browser/messaging/electron-local-ws-connection-provider.js.map +0 -1
- package/lib/electron-browser/messaging/electron-ws-connection-provider.d.ts +0 -17
- package/lib/electron-browser/messaging/electron-ws-connection-provider.d.ts.map +0 -1
- package/lib/electron-browser/messaging/electron-ws-connection-provider.js.map +0 -1
- package/lib/electron-common/messaging/electron-connection-handler.d.ts.map +0 -1
- package/lib/electron-common/messaging/electron-connection-handler.js.map +0 -1
- package/lib/electron-node/token/electron-token-messaging-contribution.d.ts +0 -16
- package/lib/electron-node/token/electron-token-messaging-contribution.d.ts.map +0 -1
- package/lib/electron-node/token/electron-token-messaging-contribution.js.map +0 -1
- package/lib/node/messaging/messaging-contribution.d.ts +0 -44
- package/lib/node/messaging/messaging-contribution.d.ts.map +0 -1
- package/lib/node/messaging/messaging-contribution.js +0 -210
- package/lib/node/messaging/messaging-contribution.js.map +0 -1
- package/src/common/messaging/abstract-connection-provider.ts +0 -115
- package/src/electron-node/token/electron-token-messaging-contribution.ts +0 -41
- package/src/node/messaging/messaging-contribution.ts +0 -197
- /package/lib/{electron-common → electron-main}/messaging/electron-connection-handler.d.ts +0 -0
- /package/lib/{electron-common → electron-main}/messaging/electron-connection-handler.js +0 -0
- /package/src/{electron-common → electron-main}/messaging/electron-connection-handler.ts +0 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2018 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
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
18
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
20
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
21
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
22
|
+
};
|
|
23
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
24
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.ConnectionHandlers = exports.DefaultMessagingService = exports.MainChannel = exports.MessagingContainer = void 0;
|
|
28
|
+
const inversify_1 = require("inversify");
|
|
29
|
+
const common_1 = require("../../common");
|
|
30
|
+
const messaging_service_1 = require("./messaging-service");
|
|
31
|
+
const connection_container_module_1 = require("./connection-container-module");
|
|
32
|
+
const Route = require("route-parser");
|
|
33
|
+
const channel_1 = require("../../common/message-rpc/channel");
|
|
34
|
+
const frontend_connection_service_1 = require("./frontend-connection-service");
|
|
35
|
+
exports.MessagingContainer = Symbol('MessagingContainer');
|
|
36
|
+
exports.MainChannel = Symbol('MainChannel');
|
|
37
|
+
let DefaultMessagingService = class DefaultMessagingService {
|
|
38
|
+
constructor() {
|
|
39
|
+
this.channelHandlers = new ConnectionHandlers();
|
|
40
|
+
}
|
|
41
|
+
initialize() {
|
|
42
|
+
this.registerConnectionHandler(common_1.servicesPath, (_, socket) => this.handleConnection(socket));
|
|
43
|
+
for (const contribution of this.contributions.getContributions()) {
|
|
44
|
+
contribution.configure(this);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
registerConnectionHandler(path, callback) {
|
|
48
|
+
this.frontendConnectionService.registerConnectionHandler(path, callback);
|
|
49
|
+
}
|
|
50
|
+
registerChannelHandler(spec, callback) {
|
|
51
|
+
this.channelHandlers.push(spec, (params, channel) => callback(params, channel));
|
|
52
|
+
}
|
|
53
|
+
handleConnection(channel) {
|
|
54
|
+
const multiplexer = new channel_1.ChannelMultiplexer(channel);
|
|
55
|
+
const channelHandlers = this.getConnectionChannelHandlers(channel);
|
|
56
|
+
multiplexer.onDidOpenChannel(event => {
|
|
57
|
+
if (channelHandlers.route(event.id, event.channel)) {
|
|
58
|
+
console.debug(`Opening channel for service path '${event.id}'.`);
|
|
59
|
+
event.channel.onClose(() => console.info(`Closing channel on service path '${event.id}'.`));
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
createMainChannelContainer(socket) {
|
|
64
|
+
const connectionContainer = this.container.createChild();
|
|
65
|
+
connectionContainer.bind(exports.MainChannel).toConstantValue(socket);
|
|
66
|
+
return connectionContainer;
|
|
67
|
+
}
|
|
68
|
+
getConnectionChannelHandlers(socket) {
|
|
69
|
+
const connectionContainer = this.createMainChannelContainer(socket);
|
|
70
|
+
(0, common_1.bindContributionProvider)(connectionContainer, common_1.ConnectionHandler);
|
|
71
|
+
connectionContainer.load(...this.connectionModules.getContributions());
|
|
72
|
+
const connectionChannelHandlers = new ConnectionHandlers(this.channelHandlers);
|
|
73
|
+
const connectionHandlers = connectionContainer.getNamed(common_1.ContributionProvider, common_1.ConnectionHandler);
|
|
74
|
+
for (const connectionHandler of connectionHandlers.getContributions(true)) {
|
|
75
|
+
connectionChannelHandlers.push(connectionHandler.path, (_, channel) => {
|
|
76
|
+
connectionHandler.onConnection(channel);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return connectionChannelHandlers;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
__decorate([
|
|
83
|
+
(0, inversify_1.inject)(exports.MessagingContainer),
|
|
84
|
+
__metadata("design:type", Object)
|
|
85
|
+
], DefaultMessagingService.prototype, "container", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
(0, inversify_1.inject)(frontend_connection_service_1.FrontendConnectionService),
|
|
88
|
+
__metadata("design:type", Object)
|
|
89
|
+
], DefaultMessagingService.prototype, "frontendConnectionService", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
(0, inversify_1.inject)(common_1.ContributionProvider),
|
|
92
|
+
(0, inversify_1.named)(connection_container_module_1.ConnectionContainerModule),
|
|
93
|
+
__metadata("design:type", Object)
|
|
94
|
+
], DefaultMessagingService.prototype, "connectionModules", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
(0, inversify_1.inject)(common_1.ContributionProvider),
|
|
97
|
+
(0, inversify_1.named)(messaging_service_1.MessagingService.Contribution),
|
|
98
|
+
__metadata("design:type", Object)
|
|
99
|
+
], DefaultMessagingService.prototype, "contributions", void 0);
|
|
100
|
+
DefaultMessagingService = __decorate([
|
|
101
|
+
(0, inversify_1.injectable)()
|
|
102
|
+
], DefaultMessagingService);
|
|
103
|
+
exports.DefaultMessagingService = DefaultMessagingService;
|
|
104
|
+
class ConnectionHandlers {
|
|
105
|
+
constructor(parent) {
|
|
106
|
+
this.parent = parent;
|
|
107
|
+
this.handlers = [];
|
|
108
|
+
}
|
|
109
|
+
push(spec, callback) {
|
|
110
|
+
const route = new Route(spec);
|
|
111
|
+
const handler = (path, channel) => {
|
|
112
|
+
const params = route.match(path);
|
|
113
|
+
if (!params) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
callback(params, channel);
|
|
117
|
+
return route.reverse(params);
|
|
118
|
+
};
|
|
119
|
+
this.handlers.push(handler);
|
|
120
|
+
}
|
|
121
|
+
route(path, connection) {
|
|
122
|
+
for (const handler of this.handlers) {
|
|
123
|
+
try {
|
|
124
|
+
const result = handler(path, connection);
|
|
125
|
+
if (result) {
|
|
126
|
+
return result;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch (e) {
|
|
130
|
+
console.error(e);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (this.parent) {
|
|
134
|
+
return this.parent.route(path, connection);
|
|
135
|
+
}
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.ConnectionHandlers = ConnectionHandlers;
|
|
140
|
+
//# sourceMappingURL=default-messaging-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-messaging-service.js","sourceRoot":"","sources":["../../../src/node/messaging/default-messaging-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Channel } from '../../common/message-rpc/';
|
|
2
|
+
import { MessagingService } from './messaging-service';
|
|
3
|
+
export declare const FrontendConnectionService: unique symbol;
|
|
4
|
+
export interface FrontendConnectionService {
|
|
5
|
+
registerConnectionHandler(path: string, callback: (params: MessagingService.PathParams, mainChannel: Channel) => void): void;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=frontend-connection-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-connection-service.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/frontend-connection-service.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,eAAO,MAAM,yBAAyB,eAAsC,CAAC;AAE7E,MAAM,WAAW,yBAAyB;IACtC,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;CAChI"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2023 STMicroelectronics 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.FrontendConnectionService = void 0;
|
|
18
|
+
exports.FrontendConnectionService = Symbol('FrontendConnectionService');
|
|
19
|
+
//# sourceMappingURL=frontend-connection-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-connection-service.js","sourceRoot":"","sources":["../../../src/node/messaging/frontend-connection-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;;;AAKnE,QAAA,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging-backend-module.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/messaging-backend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"messaging-backend-module.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/messaging-backend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAa5C,eAAO,MAAM,sBAAsB,iBAsBjC,CAAC"}
|
|
@@ -18,22 +18,36 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.messagingBackendModule = void 0;
|
|
19
19
|
const inversify_1 = require("inversify");
|
|
20
20
|
const common_1 = require("../../common");
|
|
21
|
-
|
|
22
|
-
const
|
|
21
|
+
// import { BackendApplicationContribution } from '../backend-application';
|
|
22
|
+
const default_messaging_service_1 = require("./default-messaging-service");
|
|
23
23
|
const connection_container_module_1 = require("./connection-container-module");
|
|
24
24
|
const messaging_service_1 = require("./messaging-service");
|
|
25
25
|
const messaging_listeners_1 = require("./messaging-listeners");
|
|
26
|
+
const frontend_connection_service_1 = require("./frontend-connection-service");
|
|
27
|
+
const backend_application_1 = require("../backend-application");
|
|
28
|
+
const connection_management_1 = require("../../common/messaging/connection-management");
|
|
29
|
+
const websocket_frontend_connection_service_1 = require("./websocket-frontend-connection-service");
|
|
30
|
+
const websocket_endpoint_1 = require("./websocket-endpoint");
|
|
26
31
|
exports.messagingBackendModule = new inversify_1.ContainerModule(bind => {
|
|
27
32
|
(0, common_1.bindContributionProvider)(bind, connection_container_module_1.ConnectionContainerModule);
|
|
28
33
|
(0, common_1.bindContributionProvider)(bind, messaging_service_1.MessagingService.Contribution);
|
|
29
|
-
bind(
|
|
30
|
-
bind(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
bind(
|
|
34
|
+
bind(default_messaging_service_1.DefaultMessagingService).toSelf().inSingletonScope();
|
|
35
|
+
bind(messaging_service_1.MessagingService.Identifier).toService(default_messaging_service_1.DefaultMessagingService);
|
|
36
|
+
bind(backend_application_1.BackendApplicationContribution).toService(default_messaging_service_1.DefaultMessagingService);
|
|
37
|
+
bind(default_messaging_service_1.MessagingContainer).toDynamicValue(({ container }) => container).inSingletonScope();
|
|
38
|
+
bind(websocket_endpoint_1.WebsocketEndpoint).toSelf().inSingletonScope();
|
|
39
|
+
bind(backend_application_1.BackendApplicationContribution).toService(websocket_endpoint_1.WebsocketEndpoint);
|
|
40
|
+
bind(websocket_frontend_connection_service_1.WebsocketFrontendConnectionService).toSelf().inSingletonScope();
|
|
41
|
+
bind(frontend_connection_service_1.FrontendConnectionService).toService(websocket_frontend_connection_service_1.WebsocketFrontendConnectionService);
|
|
36
42
|
bind(messaging_listeners_1.MessagingListener).toSelf().inSingletonScope();
|
|
37
43
|
(0, common_1.bindContributionProvider)(bind, messaging_listeners_1.MessagingListenerContribution);
|
|
44
|
+
bind(common_1.ConnectionHandler).toDynamicValue(context => {
|
|
45
|
+
const connectionService = context.container.get(frontend_connection_service_1.FrontendConnectionService);
|
|
46
|
+
return new common_1.RpcConnectionHandler(connection_management_1.connectionCloseServicePath, () => ({
|
|
47
|
+
markForClose: (channelId) => {
|
|
48
|
+
connectionService.markForClose(channelId);
|
|
49
|
+
}
|
|
50
|
+
}));
|
|
51
|
+
}).inSingletonScope();
|
|
38
52
|
});
|
|
39
53
|
//# sourceMappingURL=messaging-backend-module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging-backend-module.js","sourceRoot":"","sources":["../../../src/node/messaging/messaging-backend-module.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,yCAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"messaging-backend-module.js","sourceRoot":"","sources":["../../../src/node/messaging/messaging-backend-module.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,yCAA4C;AAC5C,yCAAiG;AACjG,2EAA2E;AAC3E,2EAA0F;AAC1F,+EAA0E;AAC1E,2DAAuD;AACvD,+DAAyF;AACzF,+EAA0E;AAC1E,gEAAwE;AACxE,wFAA0F;AAC1F,mGAA6F;AAC7F,6DAAyD;AAE5C,QAAA,sBAAsB,GAAG,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IAC7D,IAAA,iCAAwB,EAAC,IAAI,EAAE,uDAAyB,CAAC,CAAC;IAC1D,IAAA,iCAAwB,EAAC,IAAI,EAAE,oCAAgB,CAAC,YAAY,CAAC,CAAC;IAC9D,IAAI,CAAC,mDAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,oCAAgB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,mDAAuB,CAAC,CAAC;IACrE,IAAI,CAAC,oDAA8B,CAAC,CAAC,SAAS,CAAC,mDAAuB,CAAC,CAAC;IACxE,IAAI,CAAC,8CAAkB,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACzF,IAAI,CAAC,sCAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,IAAI,CAAC,oDAA8B,CAAC,CAAC,SAAS,CAAC,sCAAiB,CAAC,CAAC;IAClE,IAAI,CAAC,0EAAkC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACrE,IAAI,CAAC,uDAAyB,CAAC,CAAC,SAAS,CAAC,0EAAkC,CAAC,CAAC;IAC9E,IAAI,CAAC,uCAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,IAAA,iCAAwB,EAAC,IAAI,EAAE,mDAA6B,CAAC,CAAC;IAE9D,IAAI,CAAC,0BAAiB,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;QAC7C,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAqC,uDAAyB,CAAC,CAAC;QAC/G,OAAO,IAAI,6BAAoB,CAAS,kDAA0B,EAAE,GAAG,EAAE,CAAC,CAAC;YACvE,YAAY,EAAE,CAAC,SAAiB,EAAE,EAAE;gBAChC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;SACJ,CAAC,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { Socket } from 'socket.io';
|
|
2
1
|
import { Channel } from '../../common/message-rpc/channel';
|
|
3
2
|
export interface MessagingService {
|
|
4
3
|
/**
|
|
5
4
|
* Accept a web socket channel on the given path.
|
|
6
5
|
* A path supports the route syntax: https://github.com/rcs/route-parser#what-can-i-use-in-my-routes.
|
|
7
6
|
*/
|
|
8
|
-
|
|
7
|
+
registerChannelHandler(path: string, handler: (params: MessagingService.PathParams, channel: Channel) => void): void;
|
|
9
8
|
/**
|
|
10
9
|
* Accept a web socket connection on the given path.
|
|
11
10
|
* A path supports the route syntax: https://github.com/rcs/route-parser#what-can-i-use-in-my-routes.
|
|
@@ -14,7 +13,7 @@ export interface MessagingService {
|
|
|
14
13
|
* Prefer using web socket channels over establishing new web socket connection. Clients can handle only limited amount of web sockets
|
|
15
14
|
* and excessive amount can cause performance degradation. All web socket channels share a single web socket connection.
|
|
16
15
|
*/
|
|
17
|
-
|
|
16
|
+
registerConnectionHandler(path: string, callback: (params: MessagingService.PathParams, mainChannel: Channel) => void): void;
|
|
18
17
|
}
|
|
19
18
|
export declare namespace MessagingService {
|
|
20
19
|
/** Inversify container identifier for the `MessagingService` component. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging-service.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/messaging-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"messaging-service.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/messaging-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IACrH;;;;;;;OAOG;IACH,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;CAChI;AAED,yBAAiB,gBAAgB,CAAC;IAC9B,2EAA2E;IACpE,MAAM,UAAU,eAA6B,CAAC;IACrD,UAAiB,UAAU;QACvB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KACzB;IACM,MAAM,YAAY,eAA0C,CAAC;IACpE,UAAiB,YAAY;QACzB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;KAC9C;CACJ"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import * as http from 'http';
|
|
3
3
|
import * as https from 'https';
|
|
4
|
-
import {
|
|
4
|
+
import { ServiceConnectionProvider } from '../../../browser/messaging/service-connection-provider';
|
|
5
5
|
export declare class TestWebSocketChannelSetup {
|
|
6
|
-
readonly
|
|
7
|
-
readonly channel: Channel;
|
|
6
|
+
readonly connectionProvider: ServiceConnectionProvider;
|
|
8
7
|
constructor({ server, path }: {
|
|
9
8
|
server: http.Server | https.Server;
|
|
10
9
|
path: string;
|
|
11
10
|
});
|
|
11
|
+
protected createConnectionProvider(socketUrl: string): ServiceConnectionProvider;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=test-web-socket-channel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-web-socket-channel.d.ts","sourceRoot":"","sources":["../../../../src/node/messaging/test/test-web-socket-channel.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"test-web-socket-channel.d.ts","sourceRoot":"","sources":["../../../../src/node/messaging/test/test-web-socket-channel.ts"],"names":[],"mappings":";AAiBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAA4B,yBAAyB,EAAE,MAAM,wDAAwD,CAAC;AAkB7H,qBAAa,yBAAyB;IAClC,SAAgB,kBAAkB,EAAE,yBAAyB,CAAC;gBAElD,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACnC,IAAI,EAAE,MAAM,CAAA;KACf;IAMD,SAAS,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB;CAOnF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/* eslint-disable @theia/runtime-import-check */
|
|
2
3
|
// *****************************************************************************
|
|
3
4
|
// Copyright (C) 2018 TypeFox and others.
|
|
4
5
|
//
|
|
@@ -14,36 +15,49 @@
|
|
|
14
15
|
//
|
|
15
16
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
17
|
// *****************************************************************************
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
25
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
26
|
+
};
|
|
17
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
28
|
exports.TestWebSocketChannelSetup = void 0;
|
|
29
|
+
const common_1 = require("../../../common");
|
|
30
|
+
const ws_connection_source_1 = require("../../../browser/messaging/ws-connection-source");
|
|
31
|
+
const inversify_1 = require("inversify");
|
|
32
|
+
const service_connection_provider_1 = require("../../../browser/messaging/service-connection-provider");
|
|
33
|
+
const messaging_frontend_module_1 = require("../../../browser/messaging/messaging-frontend-module");
|
|
19
34
|
const socket_io_client_1 = require("socket.io-client");
|
|
20
|
-
const
|
|
21
|
-
|
|
35
|
+
const websocketUrl = Symbol('testWebsocketUrl');
|
|
36
|
+
class TestWebsocketConnectionSource extends ws_connection_source_1.WebSocketConnectionSource {
|
|
37
|
+
createWebSocketUrl(path) {
|
|
38
|
+
return this.websocketUrl;
|
|
39
|
+
}
|
|
40
|
+
createWebSocket(url) {
|
|
41
|
+
return (0, socket_io_client_1.io)(url);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, inversify_1.inject)(websocketUrl),
|
|
46
|
+
__metadata("design:type", String)
|
|
47
|
+
], TestWebsocketConnectionSource.prototype, "websocketUrl", void 0);
|
|
22
48
|
class TestWebSocketChannelSetup {
|
|
23
49
|
constructor({ server, path }) {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
this.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
50
|
+
const address = server.address();
|
|
51
|
+
const url = `ws://${address.address}:${address.port}${common_1.servicesPath}`;
|
|
52
|
+
this.connectionProvider = this.createConnectionProvider(url);
|
|
53
|
+
}
|
|
54
|
+
createConnectionProvider(socketUrl) {
|
|
55
|
+
const container = new inversify_1.Container();
|
|
56
|
+
container.bind(websocketUrl).toConstantValue(socketUrl);
|
|
57
|
+
container.load(messaging_frontend_module_1.messagingFrontendModule);
|
|
58
|
+
container.rebind(ws_connection_source_1.WebSocketConnectionSource).to(TestWebsocketConnectionSource);
|
|
59
|
+
return container.get(service_connection_provider_1.RemoteConnectionProvider);
|
|
31
60
|
}
|
|
32
61
|
}
|
|
33
62
|
exports.TestWebSocketChannelSetup = TestWebSocketChannelSetup;
|
|
34
|
-
function toIWebSocket(socket) {
|
|
35
|
-
return {
|
|
36
|
-
close: () => {
|
|
37
|
-
socket.removeAllListeners('disconnect');
|
|
38
|
-
socket.removeAllListeners('error');
|
|
39
|
-
socket.removeAllListeners('message');
|
|
40
|
-
socket.close();
|
|
41
|
-
},
|
|
42
|
-
isConnected: () => socket.connected,
|
|
43
|
-
onClose: cb => socket.on('disconnect', reason => cb(reason)),
|
|
44
|
-
onError: cb => socket.on('error', reason => cb(reason)),
|
|
45
|
-
onMessage: cb => socket.on('message', data => cb(data)),
|
|
46
|
-
send: message => socket.emit('message', message)
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
63
|
//# sourceMappingURL=test-web-socket-channel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-web-socket-channel.js","sourceRoot":"","sources":["../../../../src/node/messaging/test/test-web-socket-channel.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
|
|
1
|
+
{"version":3,"file":"test-web-socket-channel.js","sourceRoot":"","sources":["../../../../src/node/messaging/test/test-web-socket-channel.ts"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,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;;;;;;;;;;;;AAKhF,4CAA+C;AAC/C,0FAA4F;AAC5F,yCAA8C;AAC9C,wGAA6H;AAC7H,oGAA+F;AAC/F,uDAA8C;AAE9C,MAAM,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAChD,MAAM,6BAA8B,SAAQ,gDAAyB;IAI9C,kBAAkB,CAAC,IAAY;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEkB,eAAe,CAAC,GAAW;QAC1C,OAAO,IAAA,qBAAE,EAAC,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ;AATG;IADC,IAAA,kBAAM,EAAC,YAAY,CAAC;;mEACS;AAWlC,MAAa,yBAAyB;IAGlC,YAAY,EAAE,MAAM,EAAE,IAAI,EAGzB;QACG,MAAM,OAAO,GAAI,MAAM,CAAC,OAAO,EAAkB,CAAC;QAClD,MAAM,GAAG,GAAG,QAAQ,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,qBAAY,EAAE,CAAC;QACrE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAES,wBAAwB,CAAC,SAAiB;QAChD,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;QAClC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACxD,SAAS,CAAC,IAAI,CAAC,mDAAuB,CAAC,CAAC;QACxC,SAAS,CAAC,MAAM,CAAC,gDAAyB,CAAC,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC;QAC9E,OAAO,SAAS,CAAC,GAAG,CAAC,sDAAwB,CAAC,CAAC;IACnD,CAAC;CACJ;AAnBD,8DAmBC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { MessagingService } from './messaging-service';
|
|
3
|
+
import * as http from 'http';
|
|
4
|
+
import * as https from 'https';
|
|
5
|
+
import { Socket } from 'socket.io';
|
|
6
|
+
import { WsRequestValidator } from '../ws-request-validators';
|
|
7
|
+
import { MessagingListener } from './messaging-listeners';
|
|
8
|
+
import { ConnectionHandlers } from './default-messaging-service';
|
|
9
|
+
import { BackendApplicationContribution } from '../backend-application';
|
|
10
|
+
export declare class WebsocketEndpoint implements BackendApplicationContribution {
|
|
11
|
+
protected readonly wsRequestValidator: WsRequestValidator;
|
|
12
|
+
protected readonly messagingListener: MessagingListener;
|
|
13
|
+
protected checkAliveTimeout: number;
|
|
14
|
+
protected maxHttpBufferSize: number;
|
|
15
|
+
protected readonly wsHandlers: ConnectionHandlers<Socket<import("socket.io/dist/typed-events").DefaultEventsMap, import("socket.io/dist/typed-events").DefaultEventsMap, import("socket.io/dist/typed-events").DefaultEventsMap, any>>;
|
|
16
|
+
registerConnectionHandler(spec: string, callback: (params: MessagingService.PathParams, socket: Socket) => void): void;
|
|
17
|
+
onStart(server: http.Server | https.Server): void;
|
|
18
|
+
protected allowConnect(request: http.IncomingMessage): Promise<boolean>;
|
|
19
|
+
protected handleConnection(socket: Socket): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=websocket-endpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-endpoint.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/websocket-endpoint.ts"],"names":[],"mappings":";AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAU,MAAM,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAExE,qBACa,iBAAkB,YAAW,8BAA8B;IAEpE,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,SAAS,CAAC,iBAAiB,SAAS;IACpC,SAAS,CAAC,iBAAiB,SAAO;IAElC,SAAS,CAAC,QAAQ,CAAC,UAAU,0MAAoC;IAEjE,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAItH,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI;cAqBjC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;cAQ7D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMlE"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2023 STMicroelectronics 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
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
17
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
18
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
19
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
20
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
21
|
+
};
|
|
22
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
23
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.WebsocketEndpoint = void 0;
|
|
27
|
+
const inversify_1 = require("inversify");
|
|
28
|
+
const socket_io_1 = require("socket.io");
|
|
29
|
+
const ws_request_validators_1 = require("../ws-request-validators");
|
|
30
|
+
const messaging_listeners_1 = require("./messaging-listeners");
|
|
31
|
+
const default_messaging_service_1 = require("./default-messaging-service");
|
|
32
|
+
let WebsocketEndpoint = class WebsocketEndpoint {
|
|
33
|
+
constructor() {
|
|
34
|
+
this.checkAliveTimeout = 30000; // 30 seconds
|
|
35
|
+
this.maxHttpBufferSize = 1e8; // 100 MB
|
|
36
|
+
this.wsHandlers = new default_messaging_service_1.ConnectionHandlers();
|
|
37
|
+
}
|
|
38
|
+
registerConnectionHandler(spec, callback) {
|
|
39
|
+
this.wsHandlers.push(spec, callback);
|
|
40
|
+
}
|
|
41
|
+
onStart(server) {
|
|
42
|
+
const socketServer = new socket_io_1.Server(server, {
|
|
43
|
+
pingInterval: this.checkAliveTimeout,
|
|
44
|
+
pingTimeout: this.checkAliveTimeout * 2,
|
|
45
|
+
maxHttpBufferSize: this.maxHttpBufferSize
|
|
46
|
+
});
|
|
47
|
+
// Accept every namespace by using /.*/
|
|
48
|
+
socketServer.of(/.*/).on('connection', async (socket) => {
|
|
49
|
+
const request = socket.request;
|
|
50
|
+
// Socket.io strips the `origin` header of the incoming request
|
|
51
|
+
// We provide a `fix-origin` header in the `WebSocketConnectionProvider`
|
|
52
|
+
request.headers.origin = request.headers['fix-origin'];
|
|
53
|
+
if (await this.allowConnect(socket.request)) {
|
|
54
|
+
await this.handleConnection(socket);
|
|
55
|
+
this.messagingListener.onDidWebSocketUpgrade(socket.request, socket);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
socket.disconnect(true);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
async allowConnect(request) {
|
|
63
|
+
try {
|
|
64
|
+
return this.wsRequestValidator.allowWsUpgrade(request);
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
async handleConnection(socket) {
|
|
71
|
+
const pathname = socket.nsp.name;
|
|
72
|
+
if (pathname && !this.wsHandlers.route(pathname, socket)) {
|
|
73
|
+
console.error('Cannot find a ws handler for the path: ' + pathname);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
__decorate([
|
|
78
|
+
(0, inversify_1.inject)(ws_request_validators_1.WsRequestValidator),
|
|
79
|
+
__metadata("design:type", ws_request_validators_1.WsRequestValidator)
|
|
80
|
+
], WebsocketEndpoint.prototype, "wsRequestValidator", void 0);
|
|
81
|
+
__decorate([
|
|
82
|
+
(0, inversify_1.inject)(messaging_listeners_1.MessagingListener),
|
|
83
|
+
__metadata("design:type", messaging_listeners_1.MessagingListener)
|
|
84
|
+
], WebsocketEndpoint.prototype, "messagingListener", void 0);
|
|
85
|
+
WebsocketEndpoint = __decorate([
|
|
86
|
+
(0, inversify_1.injectable)()
|
|
87
|
+
], WebsocketEndpoint);
|
|
88
|
+
exports.WebsocketEndpoint = WebsocketEndpoint;
|
|
89
|
+
//# sourceMappingURL=websocket-endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-endpoint.js","sourceRoot":"","sources":["../../../src/node/messaging/websocket-endpoint.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;;;;;;;;;;;;AAKhF,yCAA+C;AAC/C,yCAA2C;AAC3C,oEAA8D;AAC9D,+DAA0D;AAC1D,2EAAiE;AAIjE,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAA9B;QAOc,sBAAiB,GAAG,KAAK,CAAC,CAAC,aAAa;QACxC,sBAAiB,GAAG,GAAG,CAAC,CAAC,SAAS;QAEzB,eAAU,GAAG,IAAI,8CAAkB,EAAU,CAAC;IAyCrE,CAAC;IAvCG,yBAAyB,CAAC,IAAY,EAAE,QAAuE;QAC3G,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,CAAC,MAAkC;QACtC,MAAM,YAAY,GAAG,IAAI,kBAAM,CAAC,MAAM,EAAE;YACpC,YAAY,EAAE,IAAI,CAAC,iBAAiB;YACpC,WAAW,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC;YACvC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC5C,CAAC,CAAC;QACH,uCAAuC;QACvC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;YAClD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,+DAA+D;YAC/D,wEAAwE;YACxE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAW,CAAC;YACjE,IAAI,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBACzC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;aACxE;iBAAM;gBACH,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAC3B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,OAA6B;QACtD,IAAI;YACA,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SAC1D;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,MAAc;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QACjC,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YACtD,OAAO,CAAC,KAAK,CAAC,yCAAyC,GAAG,QAAQ,CAAC,CAAC;SACvE;IACL,CAAC;CACJ,CAAA;AAjDG;IADC,IAAA,kBAAM,EAAC,0CAAkB,CAAC;8BACY,0CAAkB;6DAAC;AAG1D;IADC,IAAA,kBAAM,EAAC,uCAAiB,CAAC;8BACY,uCAAiB;4DAAC;AAL/C,iBAAiB;IAD7B,IAAA,sBAAU,GAAE;GACA,iBAAiB,CAmD7B;AAnDY,8CAAiB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Channel, WriteBuffer } from '../../common/message-rpc';
|
|
3
|
+
import { MessagingService } from './messaging-service';
|
|
4
|
+
import { Socket } from 'socket.io';
|
|
5
|
+
import { ConnectionHandlers } from './default-messaging-service';
|
|
6
|
+
import { FrontendConnectionService } from './frontend-connection-service';
|
|
7
|
+
import { AbstractChannel } from '../../common/message-rpc/channel';
|
|
8
|
+
import { WebsocketEndpoint } from './websocket-endpoint';
|
|
9
|
+
export declare class WebsocketFrontendConnectionService implements FrontendConnectionService {
|
|
10
|
+
protected readonly websocketServer: WebsocketEndpoint;
|
|
11
|
+
protected readonly wsHandlers: ConnectionHandlers<unknown>;
|
|
12
|
+
protected readonly connectionsByFrontend: Map<string, ReconnectableSocketChannel>;
|
|
13
|
+
protected readonly closeTimeouts: Map<string, NodeJS.Timeout>;
|
|
14
|
+
protected readonly channelsMarkedForClose: Set<string>;
|
|
15
|
+
registerConnectionHandler(spec: string, callback: (params: MessagingService.PathParams, channel: Channel) => void): void;
|
|
16
|
+
protected handleConnection(socket: Socket, channelCreatedHandler: (channel: Channel) => void): Promise<void>;
|
|
17
|
+
protected closeConnection(frontEndId: string, reason: string): void;
|
|
18
|
+
protected createConnection(socket: Socket, frontEndId: string): Channel;
|
|
19
|
+
markForClose(channelId: string): void;
|
|
20
|
+
}
|
|
21
|
+
declare class ReconnectableSocketChannel extends AbstractChannel {
|
|
22
|
+
private socket;
|
|
23
|
+
private socketBuffer;
|
|
24
|
+
private disposables;
|
|
25
|
+
connect(socket: Socket): void;
|
|
26
|
+
disconnect(): void;
|
|
27
|
+
getWriteBuffer(): WriteBuffer;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=websocket-frontend-connection-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-frontend-connection-service.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/websocket-frontend-connection-service.ts"],"names":[],"mappings":";AAeA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD,qBACa,kCAAmC,YAAW,yBAAyB;IAGhF,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAEtD,SAAS,CAAC,QAAQ,CAAC,UAAU,8BAA4B;IACzD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,0CAAiD;IACzF,SAAS,CAAC,QAAQ,CAAC,aAAa,8BAAqC;IACrE,SAAS,CAAC,QAAQ,CAAC,sBAAsB,cAAqB;IAE9D,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;cAIxG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAiClH,SAAS,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAcnE,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IA2BvE,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAGxC;AAED,cAAM,0BAA2B,SAAQ,eAAe;IACpD,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,WAAW,CAA8B;IAEjD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAyB7B,UAAU,IAAI,IAAI;IAKT,cAAc,IAAI,WAAW;CAWzC"}
|