@theia/core 1.71.0-next.28 → 1.71.0-next.32
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/lib/browser/messaging/messaging-frontend-module.d.ts.map +1 -1
- package/lib/browser/messaging/messaging-frontend-module.js +3 -0
- package/lib/browser/messaging/messaging-frontend-module.js.map +1 -1
- package/lib/browser/messaging/ws-connection-source.d.ts +2 -1
- package/lib/browser/messaging/ws-connection-source.d.ts.map +1 -1
- package/lib/browser/messaging/ws-connection-source.js +4 -1
- package/lib/browser/messaging/ws-connection-source.js.map +1 -1
- package/lib/common/message-rpc/channel.d.ts.map +1 -1
- package/lib/common/message-rpc/channel.js +8 -2
- package/lib/common/message-rpc/channel.js.map +1 -1
- package/lib/common/messaging/index.d.ts +1 -0
- package/lib/common/messaging/index.d.ts.map +1 -1
- package/lib/common/messaging/index.js +1 -0
- package/lib/common/messaging/index.js.map +1 -1
- package/lib/common/messaging/socket-write-buffer.d.ts +4 -3
- package/lib/common/messaging/socket-write-buffer.d.ts.map +1 -1
- package/lib/common/messaging/socket-write-buffer.js +14 -4
- package/lib/common/messaging/socket-write-buffer.js.map +1 -1
- package/lib/electron-browser/messaging/electron-messaging-frontend-module.d.ts.map +1 -1
- package/lib/electron-browser/messaging/electron-messaging-frontend-module.js +3 -0
- package/lib/electron-browser/messaging/electron-messaging-frontend-module.js.map +1 -1
- package/lib/node/messaging/index.d.ts +1 -0
- package/lib/node/messaging/index.d.ts.map +1 -1
- package/lib/node/messaging/index.js +1 -0
- package/lib/node/messaging/index.js.map +1 -1
- package/lib/node/messaging/messaging-backend-module.d.ts.map +1 -1
- package/lib/node/messaging/messaging-backend-module.js +4 -0
- package/lib/node/messaging/messaging-backend-module.js.map +1 -1
- package/lib/node/messaging/websocket-frontend-connection-service.d.ts +8 -5
- package/lib/node/messaging/websocket-frontend-connection-service.d.ts.map +1 -1
- package/lib/node/messaging/websocket-frontend-connection-service.js +17 -5
- package/lib/node/messaging/websocket-frontend-connection-service.js.map +1 -1
- package/package.json +4 -4
- package/src/browser/messaging/messaging-frontend-module.ts +3 -0
- package/src/browser/messaging/ws-connection-source.ts +2 -1
- package/src/common/message-rpc/channel.ts +2 -0
- package/src/common/messaging/index.ts +1 -0
- package/src/common/messaging/socket-write-buffer.ts +10 -4
- package/src/electron-browser/messaging/electron-messaging-frontend-module.ts +3 -0
- package/src/node/messaging/index.ts +1 -0
- package/src/node/messaging/messaging-backend-module.ts +5 -1
- package/src/node/messaging/websocket-frontend-connection-service.ts +15 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging-frontend-module.d.ts","sourceRoot":"","sources":["../../../src/browser/messaging/messaging-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"messaging-frontend-module.d.ts","sourceRoot":"","sources":["../../../src/browser/messaging/messaging-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAW5C,eAAO,MAAM,uBAAuB,iBAgBlC,CAAC"}
|
|
@@ -23,8 +23,11 @@ const service_connection_provider_1 = require("./service-connection-provider");
|
|
|
23
23
|
const connection_source_1 = require("./connection-source");
|
|
24
24
|
const connection_management_1 = require("../../common/messaging/connection-management");
|
|
25
25
|
const ws_connection_provider_1 = require("./ws-connection-provider");
|
|
26
|
+
const socket_write_buffer_1 = require("../../common/messaging/socket-write-buffer");
|
|
26
27
|
const backendServiceProvider = Symbol('backendServiceProvider');
|
|
27
28
|
exports.messagingFrontendModule = new inversify_1.ContainerModule(bind => {
|
|
29
|
+
// Transient: each connection source gets its own private buffer instance.
|
|
30
|
+
bind(socket_write_buffer_1.SocketWriteBuffer).toSelf();
|
|
28
31
|
bind(connection_management_1.ConnectionCloseService).toDynamicValue(ctx => ws_connection_provider_1.WebSocketConnectionProvider.createProxy(ctx.container, connection_management_1.connectionCloseServicePath)).inSingletonScope();
|
|
29
32
|
bind(frontend_id_provider_1.BrowserFrontendIdProvider).toSelf().inSingletonScope();
|
|
30
33
|
bind(frontend_id_provider_1.FrontendIdProvider).toService(frontend_id_provider_1.BrowserFrontendIdProvider);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging-frontend-module.js","sourceRoot":"","sources":["../../../src/browser/messaging/messaging-frontend-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,iEAAuF;AACvF,iEAAmE;AACnE,+EAA6H;AAC7H,2DAAuD;AACvD,wFAAkH;AAClH,qEAAuE;
|
|
1
|
+
{"version":3,"file":"messaging-frontend-module.js","sourceRoot":"","sources":["../../../src/browser/messaging/messaging-frontend-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,iEAAuF;AACvF,iEAAmE;AACnE,+EAA6H;AAC7H,2DAAuD;AACvD,wFAAkH;AAClH,qEAAuE;AACvE,oFAA+E;AAE/E,MAAM,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAEnD,QAAA,uBAAuB,GAAG,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IAC9D,0EAA0E;IAC1E,IAAI,CAAC,uCAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,IAAI,CAAC,8CAAsB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,oDAA2B,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,kDAA0B,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC1J,IAAI,CAAC,gDAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,yCAAkB,CAAC,CAAC,SAAS,CAAC,gDAAyB,CAAC,CAAC;IAC9D,IAAI,CAAC,gDAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,sBAAsB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;QAC9C,IAAI,CAAC,uDAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC9C,SAAS,CAAC,IAAI,CAAC,oCAAgB,CAAC,CAAC,SAAS,CAAC,gDAAyB,CAAC,CAAC;QACtE,OAAO,SAAS,CAAC,GAAG,CAAC,uDAAyB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtB,IAAI,CAAC,qDAAuB,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAChE,IAAI,CAAC,sDAAwB,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACjE,IAAI,CAAC,oDAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;AAClE,CAAC,CAAC,CAAC"}
|
|
@@ -3,10 +3,11 @@ import { ConnectionSource } from './connection-source';
|
|
|
3
3
|
import { Socket } from 'socket.io-client';
|
|
4
4
|
import { Endpoint } from '../endpoint';
|
|
5
5
|
import { FrontendIdProvider } from './frontend-id-provider';
|
|
6
|
+
import { SocketWriteBuffer } from '../../common/messaging/socket-write-buffer';
|
|
6
7
|
export declare class WebSocketConnectionSource implements ConnectionSource {
|
|
7
8
|
static readonly NO_CONNECTION = "<none>";
|
|
8
9
|
protected readonly frontendIdProvider: FrontendIdProvider;
|
|
9
|
-
|
|
10
|
+
protected readonly writeBuffer: SocketWriteBuffer;
|
|
10
11
|
private _socket;
|
|
11
12
|
get socket(): Socket;
|
|
12
13
|
protected currentChannel: AbstractChannel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-connection-source.d.ts","sourceRoot":"","sources":["../../../src/browser/messaging/ws-connection-source.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAoC,OAAO,EAAE,KAAK,EAAgB,MAAM,cAAc,CAAC;AACxH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAM,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ws-connection-source.d.ts","sourceRoot":"","sources":["../../../src/browser/messaging/ws-connection-source.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAoC,OAAO,EAAE,KAAK,EAAgB,MAAM,cAAc,CAAC;AACxH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAM,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAG/E,qBACa,yBAA0B,YAAW,gBAAgB;IAC9D,MAAM,CAAC,QAAQ,CAAC,aAAa,YAAY;IAGzC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAElD,OAAO,CAAC,OAAO,CAAS;IACxB,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,SAAS,CAAC,cAAc,EAAE,eAAe,CAAC;IAE1C,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE,OAAO,CAAC,OAAO,CAAC,CAAiB;IAChF,IAAI,mBAAmB,IAAI,KAAK,CAAC,OAAO,CAAC,CAExC;IAED,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAiB;IACzE,IAAI,eAAe,IAAI,KAAK,CAAC,IAAI,CAAC,CAEjC;IAED,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAiB;IAC1E,IAAI,gBAAgB,IAAI,KAAK,CAAC,IAAI,CAAC,CAElC;IAED,SAAS,CAAC,QAAQ,CAAC,gCAAgC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAiB;IACnF,IAAI,yBAAyB,IAAI,KAAK,CAAC,IAAI,CAAC,CAE3C;;IAMD,UAAU,IAAI,IAAI;IAqBlB,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAyBpC,SAAS,CAAC,uBAAuB,IAAI,IAAI;IAazC,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAQvC,iBAAiB,IAAI,IAAI;IAUzB,SAAS,CAAC,aAAa,IAAI,eAAe;IAoC1C;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAMlD,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAItD,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAIhD;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAe9C;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAUhE"}
|
|
@@ -45,7 +45,6 @@ let WebSocketConnectionSource = class WebSocketConnectionSource {
|
|
|
45
45
|
return this.onIncomingMessageActivityEmitter.event;
|
|
46
46
|
}
|
|
47
47
|
constructor() {
|
|
48
|
-
this.writeBuffer = new socket_write_buffer_1.SocketWriteBuffer();
|
|
49
48
|
this.onConnectionDidOpenEmitter = new common_1.Emitter();
|
|
50
49
|
this.onSocketDidOpenEmitter = new common_1.Emitter();
|
|
51
50
|
this.onSocketDidCloseEmitter = new common_1.Emitter();
|
|
@@ -205,6 +204,10 @@ tslib_1.__decorate([
|
|
|
205
204
|
(0, inversify_1.inject)(frontend_id_provider_1.FrontendIdProvider),
|
|
206
205
|
tslib_1.__metadata("design:type", Object)
|
|
207
206
|
], WebSocketConnectionSource.prototype, "frontendIdProvider", void 0);
|
|
207
|
+
tslib_1.__decorate([
|
|
208
|
+
(0, inversify_1.inject)(socket_write_buffer_1.SocketWriteBuffer),
|
|
209
|
+
tslib_1.__metadata("design:type", socket_write_buffer_1.SocketWriteBuffer)
|
|
210
|
+
], WebSocketConnectionSource.prototype, "writeBuffer", void 0);
|
|
208
211
|
tslib_1.__decorate([
|
|
209
212
|
(0, inversify_1.postConstruct)(),
|
|
210
213
|
tslib_1.__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-connection-source.js","sourceRoot":"","sources":["../../../src/browser/messaging/ws-connection-source.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;AAChF,gFAAgF;;;;AAEhF,yCAAwH;AAExH,uDAA8C;AAC9C,0CAAuC;AACvC,8DAAqE;AACrE,oGAAkH;AAClH,yCAA8D;AAC9D,iEAA4D;AAC5D,kGAA4F;AAC5F,oFAA+E;AAC/E,wFAA4F;AAGrF,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;aAClB,kBAAa,GAAG,QAAQ,AAAX,CAAY;
|
|
1
|
+
{"version":3,"file":"ws-connection-source.js","sourceRoot":"","sources":["../../../src/browser/messaging/ws-connection-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../src/common/message-rpc/channel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../src/common/message-rpc/channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.ChannelMultiplexer = exports.MessageTypes = exports.ForwardingChannel = exports.BasicChannel = exports.AbstractChannel = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const inversify_1 = require("inversify");
|
|
19
21
|
const disposable_1 = require("../disposable");
|
|
20
22
|
const event_1 = require("../event");
|
|
21
23
|
;
|
|
@@ -23,7 +25,7 @@ const event_1 = require("../event");
|
|
|
23
25
|
* Reusable abstract {@link Channel} implementation that sets up
|
|
24
26
|
* the basic channel event listeners and offers a generic close method.
|
|
25
27
|
*/
|
|
26
|
-
class AbstractChannel {
|
|
28
|
+
let AbstractChannel = class AbstractChannel {
|
|
27
29
|
get onClose() {
|
|
28
30
|
return this.onCloseEmitter.event;
|
|
29
31
|
}
|
|
@@ -46,8 +48,12 @@ class AbstractChannel {
|
|
|
46
48
|
close() {
|
|
47
49
|
this.toDispose.dispose();
|
|
48
50
|
}
|
|
49
|
-
}
|
|
51
|
+
};
|
|
50
52
|
exports.AbstractChannel = AbstractChannel;
|
|
53
|
+
exports.AbstractChannel = AbstractChannel = tslib_1.__decorate([
|
|
54
|
+
(0, inversify_1.injectable)(),
|
|
55
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
56
|
+
], AbstractChannel);
|
|
51
57
|
/**
|
|
52
58
|
* A very basic {@link AbstractChannel} implementation which takes a function
|
|
53
59
|
* for retrieving the {@link WriteBuffer} as constructor argument.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../src/common/message-rpc/channel.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
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../src/common/message-rpc/channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/messaging/index.ts"],"names":[],"mappings":"AAgBA,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/messaging/index.ts"],"names":[],"mappings":"AAgBA,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
|
|
@@ -19,4 +19,5 @@ const tslib_1 = require("tslib");
|
|
|
19
19
|
tslib_1.__exportStar(require("./handler"), exports);
|
|
20
20
|
tslib_1.__exportStar(require("./proxy-factory"), exports);
|
|
21
21
|
tslib_1.__exportStar(require("./connection-error-handler"), exports);
|
|
22
|
+
tslib_1.__exportStar(require("./socket-write-buffer"), exports);
|
|
22
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/messaging/index.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,oDAA0B;AAC1B,0DAAgC;AAChC,qEAA2C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/messaging/index.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,oDAA0B;AAC1B,0DAAgC;AAChC,qEAA2C;AAC3C,gEAAsC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { WebSocket } from './web-socket-channel';
|
|
2
2
|
export declare class SocketWriteBuffer {
|
|
3
|
-
private static
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
private static readonly DEFAULT_DISCONNECTED_BUFFER_SIZE;
|
|
4
|
+
protected disconnectedBuffer: Uint8Array | undefined;
|
|
5
|
+
protected bufferWritePosition: number;
|
|
6
|
+
protected get maxBufferSize(): number;
|
|
6
7
|
buffer(data: Uint8Array): void;
|
|
7
8
|
protected ensureWriteBuffer(byteLength: number): void;
|
|
8
9
|
flush(socket: WebSocket): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-write-buffer.d.ts","sourceRoot":"","sources":["../../../src/common/messaging/socket-write-buffer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"socket-write-buffer.d.ts","sourceRoot":"","sources":["../../../src/common/messaging/socket-write-buffer.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,qBACa,iBAAiB;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gCAAgC,CAAc;IAEtE,SAAS,CAAC,kBAAkB,EAAE,UAAU,GAAG,SAAS,CAAC;IACrD,SAAS,CAAC,mBAAmB,SAAK;IAElC,SAAS,KAAK,aAAa,IAAI,MAAM,CAEpC;IAED,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAM9B,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAWrD,KAAK,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAO9B,KAAK,IAAI,IAAI;CAGhB"}
|
|
@@ -14,13 +14,20 @@
|
|
|
14
14
|
//
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
|
+
var SocketWriteBuffer_1;
|
|
17
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
19
|
exports.SocketWriteBuffer = void 0;
|
|
19
|
-
|
|
20
|
+
const tslib_1 = require("tslib");
|
|
21
|
+
const inversify_1 = require("inversify");
|
|
22
|
+
let SocketWriteBuffer = class SocketWriteBuffer {
|
|
20
23
|
constructor() {
|
|
21
24
|
this.bufferWritePosition = 0;
|
|
22
25
|
}
|
|
23
|
-
static {
|
|
26
|
+
static { SocketWriteBuffer_1 = this; }
|
|
27
|
+
static { this.DEFAULT_DISCONNECTED_BUFFER_SIZE = 100 * 1024; }
|
|
28
|
+
get maxBufferSize() {
|
|
29
|
+
return SocketWriteBuffer_1.DEFAULT_DISCONNECTED_BUFFER_SIZE;
|
|
30
|
+
}
|
|
24
31
|
buffer(data) {
|
|
25
32
|
this.ensureWriteBuffer(data.byteLength);
|
|
26
33
|
this.disconnectedBuffer?.set(data, this.bufferWritePosition);
|
|
@@ -28,7 +35,7 @@ class SocketWriteBuffer {
|
|
|
28
35
|
}
|
|
29
36
|
ensureWriteBuffer(byteLength) {
|
|
30
37
|
if (!this.disconnectedBuffer) {
|
|
31
|
-
this.disconnectedBuffer = new Uint8Array(
|
|
38
|
+
this.disconnectedBuffer = new Uint8Array(this.maxBufferSize);
|
|
32
39
|
this.bufferWritePosition = 0;
|
|
33
40
|
}
|
|
34
41
|
if (this.bufferWritePosition + byteLength > this.disconnectedBuffer.byteLength) {
|
|
@@ -44,6 +51,9 @@ class SocketWriteBuffer {
|
|
|
44
51
|
drain() {
|
|
45
52
|
this.disconnectedBuffer = undefined;
|
|
46
53
|
}
|
|
47
|
-
}
|
|
54
|
+
};
|
|
48
55
|
exports.SocketWriteBuffer = SocketWriteBuffer;
|
|
56
|
+
exports.SocketWriteBuffer = SocketWriteBuffer = SocketWriteBuffer_1 = tslib_1.__decorate([
|
|
57
|
+
(0, inversify_1.injectable)()
|
|
58
|
+
], SocketWriteBuffer);
|
|
49
59
|
//# sourceMappingURL=socket-write-buffer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-write-buffer.js","sourceRoot":"","sources":["../../../src/common/messaging/socket-write-buffer.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":"socket-write-buffer.js","sourceRoot":"","sources":["../../../src/common/messaging/socket-write-buffer.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,yCAAuC;AAIhC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAAvB;QAIO,wBAAmB,GAAG,CAAC,CAAC;IAiCtC,CAAC;;aApC2B,qCAAgC,GAAG,GAAG,GAAG,IAAI,AAAb,CAAc;IAKtE,IAAc,aAAa;QACvB,OAAO,mBAAiB,CAAC,gCAAgC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,IAAgB;QACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC7D,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,UAAU,CAAC;IAChD,CAAC;IAES,iBAAiB,CAAC,UAAkB;QAC1C,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7D,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,GAAG,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,mDAAmD,UAAU,QAAQ,CAAC,CAAC;QAC3F,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAiB;QACnB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACxC,CAAC;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;IACxC,CAAC;;AApCQ,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,sBAAU,GAAE;GACA,iBAAiB,CAqC7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"electron-messaging-frontend-module.d.ts","sourceRoot":"","sources":["../../../src/electron-browser/messaging/electron-messaging-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"electron-messaging-frontend-module.d.ts","sourceRoot":"","sources":["../../../src/electron-browser/messaging/electron-messaging-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAiB5C,eAAO,MAAM,uBAAuB,iBA+ClC,CAAC"}
|
|
@@ -28,9 +28,12 @@ const service_connection_provider_1 = require("../../browser/messaging/service-c
|
|
|
28
28
|
const ws_connection_provider_1 = require("../../browser/messaging/ws-connection-provider");
|
|
29
29
|
const connection_management_1 = require("../../common/messaging/connection-management");
|
|
30
30
|
const ws_connection_source_1 = require("../../browser/messaging/ws-connection-source");
|
|
31
|
+
const socket_write_buffer_1 = require("../../common/messaging/socket-write-buffer");
|
|
31
32
|
const backendServiceProvider = Symbol('backendServiceProvider2');
|
|
32
33
|
const localServiceProvider = Symbol('localServiceProvider');
|
|
33
34
|
exports.messagingFrontendModule = new inversify_1.ContainerModule(bind => {
|
|
35
|
+
// Transient: each connection source gets its own private buffer instance.
|
|
36
|
+
bind(socket_write_buffer_1.SocketWriteBuffer).toSelf();
|
|
34
37
|
bind(connection_management_1.ConnectionCloseService).toDynamicValue(ctx => ws_connection_provider_1.WebSocketConnectionProvider.createProxy(ctx.container, connection_management_1.connectionCloseServicePath)).inSingletonScope();
|
|
35
38
|
bind(electron_ws_connection_source_1.ElectronWebSocketConnectionSource).toSelf().inSingletonScope();
|
|
36
39
|
bind(ws_connection_source_1.WebSocketConnectionSource).toService(electron_ws_connection_source_1.ElectronWebSocketConnectionSource);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"electron-messaging-frontend-module.js","sourceRoot":"","sources":["../../../src/electron-browser/messaging/electron-messaging-frontend-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,uGAAkG;AAClG,mFAAoF;AACpF,qFAA+G;AAC/G,+FAA6G;AAC7G,mFAA6E;AAC7E,uFAAkF;AAClF,iFAA6E;AAC7E,qGAAmJ;AACnJ,2FAA6F;AAC7F,wFAAkH;AAClH,uFAAyF;
|
|
1
|
+
{"version":3,"file":"electron-messaging-frontend-module.js","sourceRoot":"","sources":["../../../src/electron-browser/messaging/electron-messaging-frontend-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/index.ts"],"names":[],"mappings":"AAgBA,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/index.ts"],"names":[],"mappings":"AAgBA,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,yCAAyC,CAAC"}
|
|
@@ -19,4 +19,5 @@ const tslib_1 = require("tslib");
|
|
|
19
19
|
tslib_1.__exportStar(require("./messaging-service"), exports);
|
|
20
20
|
tslib_1.__exportStar(require("./ipc-connection-provider"), exports);
|
|
21
21
|
tslib_1.__exportStar(require("./ipc-channel"), exports);
|
|
22
|
+
tslib_1.__exportStar(require("./websocket-frontend-connection-service"), exports);
|
|
22
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/messaging/index.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,8DAAoC;AACpC,oEAA0C;AAC1C,wDAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/messaging/index.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,8DAAoC;AACpC,oEAA0C;AAC1C,wDAA8B;AAC9B,kFAAwD"}
|
|
@@ -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;AAc5C,eAAO,MAAM,sBAAsB,iBAyBjC,CAAC"}
|
|
@@ -28,6 +28,7 @@ const backend_application_1 = require("../backend-application");
|
|
|
28
28
|
const connection_management_1 = require("../../common/messaging/connection-management");
|
|
29
29
|
const websocket_frontend_connection_service_1 = require("./websocket-frontend-connection-service");
|
|
30
30
|
const websocket_endpoint_1 = require("./websocket-endpoint");
|
|
31
|
+
const socket_write_buffer_1 = require("../../common/messaging/socket-write-buffer");
|
|
31
32
|
exports.messagingBackendModule = new inversify_1.ContainerModule(bind => {
|
|
32
33
|
(0, common_1.bindRootContributionProvider)(bind, connection_container_module_1.ConnectionContainerModule);
|
|
33
34
|
(0, common_1.bindRootContributionProvider)(bind, messaging_service_1.MessagingService.Contribution);
|
|
@@ -37,6 +38,9 @@ exports.messagingBackendModule = new inversify_1.ContainerModule(bind => {
|
|
|
37
38
|
bind(default_messaging_service_1.MessagingContainer).toDynamicValue(({ container }) => container).inSingletonScope();
|
|
38
39
|
bind(websocket_endpoint_1.WebsocketEndpoint).toSelf().inSingletonScope();
|
|
39
40
|
bind(backend_application_1.BackendApplicationContribution).toService(websocket_endpoint_1.WebsocketEndpoint);
|
|
41
|
+
// Transient: each connection gets its own private buffer and channel instances.
|
|
42
|
+
bind(socket_write_buffer_1.SocketWriteBuffer).toSelf();
|
|
43
|
+
bind(websocket_frontend_connection_service_1.ReconnectableSocketChannel).toSelf();
|
|
40
44
|
bind(websocket_frontend_connection_service_1.WebsocketFrontendConnectionService).toSelf().inSingletonScope();
|
|
41
45
|
bind(frontend_connection_service_1.FrontendConnectionService).toService(websocket_frontend_connection_service_1.WebsocketFrontendConnectionService);
|
|
42
46
|
bind(messaging_listeners_1.MessagingListener).toSelf().inSingletonScope();
|
|
@@ -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,yCAAqG;AACrG,2EAA2E;AAC3E,2EAA0F;AAC1F,+EAA0E;AAC1E,2DAAuD;AACvD,+DAAyF;AACzF,+EAA0E;AAC1E,gEAAwE;AACxE,wFAA0F;AAC1F,
|
|
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,yCAAqG;AACrG,2EAA2E;AAC3E,2EAA0F;AAC1F,+EAA0E;AAC1E,2DAAuD;AACvD,+DAAyF;AACzF,+EAA0E;AAC1E,gEAAwE;AACxE,wFAA0F;AAC1F,mGAAyH;AACzH,6DAAyD;AACzD,oFAA+E;AAElE,QAAA,sBAAsB,GAAG,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IAC7D,IAAA,qCAA4B,EAAC,IAAI,EAAE,uDAAyB,CAAC,CAAC;IAC9D,IAAA,qCAA4B,EAAC,IAAI,EAAE,oCAAgB,CAAC,YAAY,CAAC,CAAC;IAClE,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,gFAAgF;IAChF,IAAI,CAAC,uCAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,IAAI,CAAC,kEAA0B,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1C,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,qCAA4B,EAAC,IAAI,EAAE,mDAA6B,CAAC,CAAC;IAElE,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,12 +1,16 @@
|
|
|
1
1
|
import { Channel, WriteBuffer } from '../../common/message-rpc';
|
|
2
2
|
import { MessagingService } from './messaging-service';
|
|
3
|
+
import { interfaces } from 'inversify';
|
|
3
4
|
import { Socket } from 'socket.io';
|
|
4
5
|
import { ConnectionHandlers } from './default-messaging-service';
|
|
6
|
+
import { SocketWriteBuffer } from '../../common/messaging/socket-write-buffer';
|
|
5
7
|
import { FrontendConnectionService } from './frontend-connection-service';
|
|
6
8
|
import { AbstractChannel } from '../../common/message-rpc/channel';
|
|
7
9
|
import { WebsocketEndpoint } from './websocket-endpoint';
|
|
10
|
+
import { DisposableCollection } from '../../common';
|
|
8
11
|
export declare class WebsocketFrontendConnectionService implements FrontendConnectionService {
|
|
9
12
|
protected readonly websocketServer: WebsocketEndpoint;
|
|
13
|
+
protected readonly container: interfaces.Container;
|
|
10
14
|
protected readonly wsHandlers: ConnectionHandlers<unknown>;
|
|
11
15
|
protected readonly connectionsByFrontend: Map<string, ReconnectableSocketChannel>;
|
|
12
16
|
protected readonly closeTimeouts: Map<string, NodeJS.Timeout>;
|
|
@@ -19,13 +23,12 @@ export declare class WebsocketFrontendConnectionService implements FrontendConne
|
|
|
19
23
|
markForClose(channelId: string): void;
|
|
20
24
|
private frontendConnectionTimeout;
|
|
21
25
|
}
|
|
22
|
-
declare class ReconnectableSocketChannel extends AbstractChannel {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
export declare class ReconnectableSocketChannel extends AbstractChannel {
|
|
27
|
+
protected socket: Socket | undefined;
|
|
28
|
+
protected socketBuffer: SocketWriteBuffer;
|
|
29
|
+
protected disposables: DisposableCollection;
|
|
26
30
|
connect(socket: Socket): void;
|
|
27
31
|
disconnect(): void;
|
|
28
32
|
getWriteBuffer(): WriteBuffer;
|
|
29
33
|
}
|
|
30
|
-
export {};
|
|
31
34
|
//# sourceMappingURL=websocket-frontend-connection-service.d.ts.map
|
|
@@ -1 +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;
|
|
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;AACvD,OAAO,EAAsB,UAAU,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAsB,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAc,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEhE,qBACa,kCAAmC,YAAW,yBAAyB;IAGhF,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC;IAEnD,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;IAoClH,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,0BAA0B;IAS1F,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAqBrG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC,OAAO,CAAC,yBAAyB;CAQpC;AAED,qBACa,0BAA2B,SAAQ,eAAe;IAC3D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAGrC,SAAS,CAAC,YAAY,EAAE,iBAAiB,CAAC;IAE1C,SAAS,CAAC,WAAW,uBAA8B;IAEnD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA0B7B,UAAU,IAAI,IAAI;IAKT,cAAc,IAAI,WAAW;CAWzC"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
//
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.WebsocketFrontendConnectionService = void 0;
|
|
17
|
+
exports.ReconnectableSocketChannel = exports.WebsocketFrontendConnectionService = void 0;
|
|
18
18
|
const tslib_1 = require("tslib");
|
|
19
19
|
const inversify_1 = require("inversify");
|
|
20
20
|
const default_messaging_service_1 = require("./default-messaging-service");
|
|
@@ -82,7 +82,7 @@ let WebsocketFrontendConnectionService = class WebsocketFrontendConnectionServic
|
|
|
82
82
|
}
|
|
83
83
|
createConnection(socket, frontEndId) {
|
|
84
84
|
console.info(`creating connection for ${frontEndId}`);
|
|
85
|
-
const channel =
|
|
85
|
+
const channel = this.container.get(ReconnectableSocketChannel);
|
|
86
86
|
channel.connect(socket);
|
|
87
87
|
this.connectionsByFrontend.set(frontEndId, channel);
|
|
88
88
|
return channel;
|
|
@@ -124,16 +124,20 @@ tslib_1.__decorate([
|
|
|
124
124
|
(0, inversify_1.inject)(websocket_endpoint_1.WebsocketEndpoint),
|
|
125
125
|
tslib_1.__metadata("design:type", websocket_endpoint_1.WebsocketEndpoint)
|
|
126
126
|
], WebsocketFrontendConnectionService.prototype, "websocketServer", void 0);
|
|
127
|
+
tslib_1.__decorate([
|
|
128
|
+
(0, inversify_1.inject)(default_messaging_service_1.MessagingContainer),
|
|
129
|
+
tslib_1.__metadata("design:type", Object)
|
|
130
|
+
], WebsocketFrontendConnectionService.prototype, "container", void 0);
|
|
127
131
|
exports.WebsocketFrontendConnectionService = WebsocketFrontendConnectionService = tslib_1.__decorate([
|
|
128
132
|
(0, inversify_1.injectable)()
|
|
129
133
|
], WebsocketFrontendConnectionService);
|
|
130
|
-
class ReconnectableSocketChannel extends channel_1.AbstractChannel {
|
|
134
|
+
let ReconnectableSocketChannel = class ReconnectableSocketChannel extends channel_1.AbstractChannel {
|
|
131
135
|
constructor() {
|
|
132
136
|
super(...arguments);
|
|
133
|
-
this.socketBuffer = new socket_write_buffer_1.SocketWriteBuffer();
|
|
134
137
|
this.disposables = new common_1.DisposableCollection();
|
|
135
138
|
}
|
|
136
139
|
connect(socket) {
|
|
140
|
+
this.disposables.dispose();
|
|
137
141
|
this.disposables = new common_1.DisposableCollection();
|
|
138
142
|
this.socket = socket;
|
|
139
143
|
const errorHandler = (err) => {
|
|
@@ -172,5 +176,13 @@ class ReconnectableSocketChannel extends channel_1.AbstractChannel {
|
|
|
172
176
|
});
|
|
173
177
|
return writeBuffer;
|
|
174
178
|
}
|
|
175
|
-
}
|
|
179
|
+
};
|
|
180
|
+
exports.ReconnectableSocketChannel = ReconnectableSocketChannel;
|
|
181
|
+
tslib_1.__decorate([
|
|
182
|
+
(0, inversify_1.inject)(socket_write_buffer_1.SocketWriteBuffer),
|
|
183
|
+
tslib_1.__metadata("design:type", socket_write_buffer_1.SocketWriteBuffer)
|
|
184
|
+
], ReconnectableSocketChannel.prototype, "socketBuffer", void 0);
|
|
185
|
+
exports.ReconnectableSocketChannel = ReconnectableSocketChannel = tslib_1.__decorate([
|
|
186
|
+
(0, inversify_1.injectable)()
|
|
187
|
+
], ReconnectableSocketChannel);
|
|
176
188
|
//# sourceMappingURL=websocket-frontend-connection-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-frontend-connection-service.js","sourceRoot":"","sources":["../../../src/node/messaging/websocket-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;;;;AAIhF,
|
|
1
|
+
{"version":3,"file":"websocket-frontend-connection-service.js","sourceRoot":"","sources":["../../../src/node/messaging/websocket-frontend-connection-service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/core",
|
|
3
|
-
"version": "1.71.0-next.
|
|
3
|
+
"version": "1.71.0-next.32+d4cb16d5c",
|
|
4
4
|
"description": "Theia is a cloud & desktop IDE framework implemented in TypeScript.",
|
|
5
5
|
"main": "lib/common/index.js",
|
|
6
6
|
"typings": "lib/common/index.d.ts",
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
"@lumino/virtualdom": "^2.0.4",
|
|
18
18
|
"@lumino/widgets": "2.7.5",
|
|
19
19
|
"@parcel/watcher": "^2.5.6",
|
|
20
|
-
"@theia/application-package": "1.71.0-next.
|
|
21
|
-
"@theia/request": "1.71.0-next.
|
|
20
|
+
"@theia/application-package": "1.71.0-next.32+d4cb16d5c",
|
|
21
|
+
"@theia/request": "1.71.0-next.32+d4cb16d5c",
|
|
22
22
|
"@types/body-parser": "^1.19.6",
|
|
23
23
|
"@types/express": "^4.17.21",
|
|
24
24
|
"@types/fs-extra": "^4.0.2",
|
|
@@ -221,5 +221,5 @@
|
|
|
221
221
|
"nyc": {
|
|
222
222
|
"extends": "../../configs/nyc.json"
|
|
223
223
|
},
|
|
224
|
-
"gitHead": "
|
|
224
|
+
"gitHead": "d4cb16d5c5d6262d58a38e20ef7d4c5919b65dd6"
|
|
225
225
|
}
|
|
@@ -21,10 +21,13 @@ import { LocalConnectionProvider, RemoteConnectionProvider, ServiceConnectionPro
|
|
|
21
21
|
import { ConnectionSource } from './connection-source';
|
|
22
22
|
import { ConnectionCloseService, connectionCloseServicePath } from '../../common/messaging/connection-management';
|
|
23
23
|
import { WebSocketConnectionProvider } from './ws-connection-provider';
|
|
24
|
+
import { SocketWriteBuffer } from '../../common/messaging/socket-write-buffer';
|
|
24
25
|
|
|
25
26
|
const backendServiceProvider = Symbol('backendServiceProvider');
|
|
26
27
|
|
|
27
28
|
export const messagingFrontendModule = new ContainerModule(bind => {
|
|
29
|
+
// Transient: each connection source gets its own private buffer instance.
|
|
30
|
+
bind(SocketWriteBuffer).toSelf();
|
|
28
31
|
bind(ConnectionCloseService).toDynamicValue(ctx => WebSocketConnectionProvider.createProxy(ctx.container, connectionCloseServicePath)).inSingletonScope();
|
|
29
32
|
bind(BrowserFrontendIdProvider).toSelf().inSingletonScope();
|
|
30
33
|
bind(FrontendIdProvider).toService(BrowserFrontendIdProvider);
|
|
@@ -33,7 +33,8 @@ export class WebSocketConnectionSource implements ConnectionSource {
|
|
|
33
33
|
@inject(FrontendIdProvider)
|
|
34
34
|
protected readonly frontendIdProvider: FrontendIdProvider;
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
@inject(SocketWriteBuffer)
|
|
37
|
+
protected readonly writeBuffer: SocketWriteBuffer;
|
|
37
38
|
|
|
38
39
|
private _socket: Socket;
|
|
39
40
|
get socket(): Socket {
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
+
import { injectable } from 'inversify';
|
|
17
18
|
import { Disposable, DisposableCollection } from '../disposable';
|
|
18
19
|
import { Emitter, Event } from '../event';
|
|
19
20
|
import { ReadBuffer, WriteBuffer } from './message-buffer';
|
|
@@ -71,6 +72,7 @@ export type MessageProvider = () => ReadBuffer;
|
|
|
71
72
|
* Reusable abstract {@link Channel} implementation that sets up
|
|
72
73
|
* the basic channel event listeners and offers a generic close method.
|
|
73
74
|
*/
|
|
75
|
+
@injectable()
|
|
74
76
|
export abstract class AbstractChannel implements Channel {
|
|
75
77
|
|
|
76
78
|
onCloseEmitter: Emitter<ChannelCloseEvent> = new Emitter();
|
|
@@ -14,13 +14,19 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
+
import { injectable } from 'inversify';
|
|
17
18
|
import { WebSocket } from './web-socket-channel';
|
|
18
19
|
|
|
20
|
+
@injectable()
|
|
19
21
|
export class SocketWriteBuffer {
|
|
20
|
-
private static
|
|
22
|
+
private static readonly DEFAULT_DISCONNECTED_BUFFER_SIZE = 100 * 1024;
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
protected disconnectedBuffer: Uint8Array | undefined;
|
|
25
|
+
protected bufferWritePosition = 0;
|
|
26
|
+
|
|
27
|
+
protected get maxBufferSize(): number {
|
|
28
|
+
return SocketWriteBuffer.DEFAULT_DISCONNECTED_BUFFER_SIZE;
|
|
29
|
+
}
|
|
24
30
|
|
|
25
31
|
buffer(data: Uint8Array): void {
|
|
26
32
|
this.ensureWriteBuffer(data.byteLength);
|
|
@@ -30,7 +36,7 @@ export class SocketWriteBuffer {
|
|
|
30
36
|
|
|
31
37
|
protected ensureWriteBuffer(byteLength: number): void {
|
|
32
38
|
if (!this.disconnectedBuffer) {
|
|
33
|
-
this.disconnectedBuffer = new Uint8Array(
|
|
39
|
+
this.disconnectedBuffer = new Uint8Array(this.maxBufferSize);
|
|
34
40
|
this.bufferWritePosition = 0;
|
|
35
41
|
}
|
|
36
42
|
|
|
@@ -26,11 +26,14 @@ import { LocalConnectionProvider, RemoteConnectionProvider, ServiceConnectionPro
|
|
|
26
26
|
import { WebSocketConnectionProvider } from '../../browser/messaging/ws-connection-provider';
|
|
27
27
|
import { ConnectionCloseService, connectionCloseServicePath } from '../../common/messaging/connection-management';
|
|
28
28
|
import { WebSocketConnectionSource } from '../../browser/messaging/ws-connection-source';
|
|
29
|
+
import { SocketWriteBuffer } from '../../common/messaging/socket-write-buffer';
|
|
29
30
|
|
|
30
31
|
const backendServiceProvider = Symbol('backendServiceProvider2');
|
|
31
32
|
const localServiceProvider = Symbol('localServiceProvider');
|
|
32
33
|
|
|
33
34
|
export const messagingFrontendModule = new ContainerModule(bind => {
|
|
35
|
+
// Transient: each connection source gets its own private buffer instance.
|
|
36
|
+
bind(SocketWriteBuffer).toSelf();
|
|
34
37
|
bind(ConnectionCloseService).toDynamicValue(ctx => WebSocketConnectionProvider.createProxy(ctx.container, connectionCloseServicePath)).inSingletonScope();
|
|
35
38
|
bind(ElectronWebSocketConnectionSource).toSelf().inSingletonScope();
|
|
36
39
|
bind(WebSocketConnectionSource).toService(ElectronWebSocketConnectionSource);
|
|
@@ -24,8 +24,9 @@ import { MessagingListener, MessagingListenerContribution } from './messaging-li
|
|
|
24
24
|
import { FrontendConnectionService } from './frontend-connection-service';
|
|
25
25
|
import { BackendApplicationContribution } from '../backend-application';
|
|
26
26
|
import { connectionCloseServicePath } from '../../common/messaging/connection-management';
|
|
27
|
-
import { WebsocketFrontendConnectionService } from './websocket-frontend-connection-service';
|
|
27
|
+
import { ReconnectableSocketChannel, WebsocketFrontendConnectionService } from './websocket-frontend-connection-service';
|
|
28
28
|
import { WebsocketEndpoint } from './websocket-endpoint';
|
|
29
|
+
import { SocketWriteBuffer } from '../../common/messaging/socket-write-buffer';
|
|
29
30
|
|
|
30
31
|
export const messagingBackendModule = new ContainerModule(bind => {
|
|
31
32
|
bindRootContributionProvider(bind, ConnectionContainerModule);
|
|
@@ -36,6 +37,9 @@ export const messagingBackendModule = new ContainerModule(bind => {
|
|
|
36
37
|
bind(MessagingContainer).toDynamicValue(({ container }) => container).inSingletonScope();
|
|
37
38
|
bind(WebsocketEndpoint).toSelf().inSingletonScope();
|
|
38
39
|
bind(BackendApplicationContribution).toService(WebsocketEndpoint);
|
|
40
|
+
// Transient: each connection gets its own private buffer and channel instances.
|
|
41
|
+
bind(SocketWriteBuffer).toSelf();
|
|
42
|
+
bind(ReconnectableSocketChannel).toSelf();
|
|
39
43
|
bind(WebsocketFrontendConnectionService).toSelf().inSingletonScope();
|
|
40
44
|
bind(FrontendConnectionService).toService(WebsocketFrontendConnectionService);
|
|
41
45
|
bind(MessagingListener).toSelf().inSingletonScope();
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
|
|
16
16
|
import { Channel, WriteBuffer } from '../../common/message-rpc';
|
|
17
17
|
import { MessagingService } from './messaging-service';
|
|
18
|
-
import { inject, injectable } from 'inversify';
|
|
18
|
+
import { inject, injectable, interfaces } from 'inversify';
|
|
19
19
|
import { Socket } from 'socket.io';
|
|
20
|
-
import { ConnectionHandlers } from './default-messaging-service';
|
|
20
|
+
import { ConnectionHandlers, MessagingContainer } from './default-messaging-service';
|
|
21
21
|
import { SocketWriteBuffer } from '../../common/messaging/socket-write-buffer';
|
|
22
22
|
import { FrontendConnectionService } from './frontend-connection-service';
|
|
23
23
|
import { AbstractChannel } from '../../common/message-rpc/channel';
|
|
@@ -33,6 +33,9 @@ export class WebsocketFrontendConnectionService implements FrontendConnectionSer
|
|
|
33
33
|
@inject(WebsocketEndpoint)
|
|
34
34
|
protected readonly websocketServer: WebsocketEndpoint;
|
|
35
35
|
|
|
36
|
+
@inject(MessagingContainer)
|
|
37
|
+
protected readonly container: interfaces.Container;
|
|
38
|
+
|
|
36
39
|
protected readonly wsHandlers = new ConnectionHandlers();
|
|
37
40
|
protected readonly connectionsByFrontend = new Map<string, ReconnectableSocketChannel>();
|
|
38
41
|
protected readonly closeTimeouts = new Map<string, NodeJS.Timeout>();
|
|
@@ -94,7 +97,7 @@ export class WebsocketFrontendConnectionService implements FrontendConnectionSer
|
|
|
94
97
|
|
|
95
98
|
protected createConnection(socket: Socket, frontEndId: string): ReconnectableSocketChannel {
|
|
96
99
|
console.info(`creating connection for ${frontEndId}`);
|
|
97
|
-
const channel =
|
|
100
|
+
const channel = this.container.get(ReconnectableSocketChannel);
|
|
98
101
|
channel.connect(socket);
|
|
99
102
|
|
|
100
103
|
this.connectionsByFrontend.set(frontEndId, channel);
|
|
@@ -136,12 +139,17 @@ export class WebsocketFrontendConnectionService implements FrontendConnectionSer
|
|
|
136
139
|
}
|
|
137
140
|
}
|
|
138
141
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
142
|
+
@injectable()
|
|
143
|
+
export class ReconnectableSocketChannel extends AbstractChannel {
|
|
144
|
+
protected socket: Socket | undefined;
|
|
145
|
+
|
|
146
|
+
@inject(SocketWriteBuffer)
|
|
147
|
+
protected socketBuffer: SocketWriteBuffer;
|
|
148
|
+
|
|
149
|
+
protected disposables = new DisposableCollection();
|
|
143
150
|
|
|
144
151
|
connect(socket: Socket): void {
|
|
152
|
+
this.disposables.dispose();
|
|
145
153
|
this.disposables = new DisposableCollection();
|
|
146
154
|
this.socket = socket;
|
|
147
155
|
const errorHandler = (err: Error) => {
|