@opensumi/ide-connection 3.0.4-next-1717074121.0 → 3.0.5-next-1717466130.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/lib/browser/ws-channel-handler.d.ts +10 -1
- package/lib/browser/ws-channel-handler.d.ts.map +1 -1
- package/lib/browser/ws-channel-handler.js +11 -22
- package/lib/browser/ws-channel-handler.js.map +1 -1
- package/lib/common/channel/index.d.ts +2 -0
- package/lib/common/channel/index.d.ts.map +1 -0
- package/lib/common/channel/index.js +5 -0
- package/lib/common/channel/index.js.map +1 -0
- package/lib/common/channel/types.d.ts +66 -0
- package/lib/common/channel/types.d.ts.map +1 -0
- package/lib/common/channel/types.js +8 -0
- package/lib/common/channel/types.js.map +1 -0
- package/lib/common/connection/drivers/simple.d.ts +7 -7
- package/lib/common/connection/drivers/simple.d.ts.map +1 -1
- package/lib/common/connection/drivers/simple.js.map +1 -1
- package/lib/common/index.d.ts +4 -0
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +4 -0
- package/lib/common/index.js.map +1 -1
- package/lib/common/rpc/connection.d.ts +5 -4
- package/lib/common/rpc/connection.d.ts.map +1 -1
- package/lib/common/rpc/connection.js +21 -37
- package/lib/common/rpc/connection.js.map +1 -1
- package/lib/common/rpc/message-io.d.ts +62 -11
- package/lib/common/rpc/message-io.d.ts.map +1 -1
- package/lib/common/rpc/message-io.js +111 -10
- package/lib/common/rpc/message-io.js.map +1 -1
- package/lib/common/rpc/multiplexer.d.ts +11 -11
- package/lib/common/rpc/multiplexer.d.ts.map +1 -1
- package/lib/common/rpc/multiplexer.js +18 -17
- package/lib/common/rpc/multiplexer.js.map +1 -1
- package/lib/common/rpc-service/index.d.ts +1 -0
- package/lib/common/rpc-service/index.d.ts.map +1 -1
- package/lib/common/rpc-service/index.js +1 -0
- package/lib/common/rpc-service/index.js.map +1 -1
- package/lib/common/rpc-service/proxy/json.d.ts.map +1 -1
- package/lib/common/rpc-service/proxy/json.js +2 -2
- package/lib/common/rpc-service/proxy/json.js.map +1 -1
- package/lib/common/rpc-service/proxy/sumi.d.ts.map +1 -1
- package/lib/common/rpc-service/proxy/sumi.js +2 -2
- package/lib/common/rpc-service/proxy/sumi.js.map +1 -1
- package/lib/common/rpc-service/registry.d.ts +2 -2
- package/lib/common/rpc-service/registry.d.ts.map +1 -1
- package/lib/common/rpc-service/registry.js +6 -0
- package/lib/common/rpc-service/registry.js.map +1 -1
- package/lib/common/serializer/fury.d.ts +122 -0
- package/lib/common/serializer/fury.d.ts.map +1 -0
- package/lib/common/serializer/fury.js +51 -0
- package/lib/common/serializer/fury.js.map +1 -0
- package/lib/common/serializer/index.d.ts +7 -0
- package/lib/common/serializer/index.d.ts.map +1 -0
- package/lib/common/serializer/index.js +22 -0
- package/lib/common/serializer/index.js.map +1 -0
- package/lib/common/serializer/raw.d.ts +4 -0
- package/lib/common/serializer/raw.d.ts.map +1 -0
- package/lib/common/serializer/raw.js +8 -0
- package/lib/common/serializer/raw.js.map +1 -0
- package/lib/common/serializer/types.d.ts +5 -0
- package/lib/common/serializer/types.d.ts.map +1 -0
- package/lib/common/serializer/types.js +3 -0
- package/lib/common/serializer/types.js.map +1 -0
- package/lib/common/server-handler.d.ts +7 -1
- package/lib/common/server-handler.d.ts.map +1 -1
- package/lib/common/server-handler.js +13 -11
- package/lib/common/server-handler.js.map +1 -1
- package/lib/common/ws-channel.d.ts +10 -202
- package/lib/common/ws-channel.d.ts.map +1 -1
- package/lib/common/ws-channel.js +40 -92
- package/lib/common/ws-channel.js.map +1 -1
- package/package.json +5 -5
- package/src/browser/ws-channel-handler.ts +29 -26
- package/src/common/channel/index.ts +1 -0
- package/src/common/channel/types.ts +82 -0
- package/src/common/connection/drivers/simple.ts +5 -5
- package/src/common/index.ts +4 -0
- package/src/common/rpc/connection.ts +28 -44
- package/src/common/rpc/message-io.ts +172 -10
- package/src/common/rpc/multiplexer.ts +27 -29
- package/src/common/rpc-service/index.ts +1 -0
- package/src/common/rpc-service/proxy/json.ts +13 -11
- package/src/common/rpc-service/proxy/sumi.ts +5 -3
- package/src/common/rpc-service/registry.ts +10 -2
- package/src/common/serializer/fury.ts +61 -0
- package/src/common/serializer/index.ts +24 -0
- package/src/common/serializer/raw.ts +8 -0
- package/src/common/serializer/types.ts +4 -0
- package/src/common/server-handler.ts +24 -26
- package/src/common/ws-channel.ts +63 -225
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { IReporterService } from '@opensumi/ide-core-common';
|
|
2
|
+
import { ChannelMessage } from '../common/channel/types';
|
|
2
3
|
import { IRuntimeSocketConnection } from '../common/connection';
|
|
4
|
+
import { IConnectionShape } from '../common/connection/types';
|
|
5
|
+
import { ISerializer } from '../common/serializer';
|
|
6
|
+
import { ILogger } from '../common/types';
|
|
3
7
|
import { WSChannel } from '../common/ws-channel';
|
|
8
|
+
export interface WSChannelHandlerOptions {
|
|
9
|
+
logger?: ILogger;
|
|
10
|
+
serializer?: ISerializer<ChannelMessage, any>;
|
|
11
|
+
}
|
|
4
12
|
/**
|
|
5
13
|
* Channel Handler in browser
|
|
6
14
|
*/
|
|
@@ -8,6 +16,7 @@ export declare class WSChannelHandler {
|
|
|
8
16
|
connection: IRuntimeSocketConnection<Uint8Array>;
|
|
9
17
|
private _disposables;
|
|
10
18
|
private _onChannelCreatedEmitter;
|
|
19
|
+
wrappedConnection: IConnectionShape<ChannelMessage>;
|
|
11
20
|
onChannelCreated(path: string, listener: (channel: WSChannel) => void): import("@opensumi/events").IDisposable;
|
|
12
21
|
private channelMap;
|
|
13
22
|
private channelCloseEventMap;
|
|
@@ -20,7 +29,7 @@ export declare class WSChannelHandler {
|
|
|
20
29
|
*/
|
|
21
30
|
private openingBarrier;
|
|
22
31
|
LOG_TAG: string;
|
|
23
|
-
constructor(connection: IRuntimeSocketConnection<Uint8Array>,
|
|
32
|
+
constructor(connection: IRuntimeSocketConnection<Uint8Array>, clientId: string, options?: WSChannelHandlerOptions);
|
|
24
33
|
replaceLogger(logger: any): void;
|
|
25
34
|
setReporter(reporterService: IReporterService): void;
|
|
26
35
|
private heartbeatMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-channel-handler.d.ts","sourceRoot":"","sources":["../../src/browser/ws-channel-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,gBAAgB,EAAyB,MAAM,2BAA2B,CAAC;AAExH,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ws-channel-handler.d.ts","sourceRoot":"","sources":["../../src/browser/ws-channel-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,gBAAgB,EAAyB,MAAM,2BAA2B,CAAC;AAExH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAkC,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAkB,OAAO,EAAe,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAyBlB,UAAU,EAAE,wBAAwB,CAAC,UAAU,CAAC;IAxBzD,OAAO,CAAC,YAAY,CAAyB;IAE7C,OAAO,CAAC,wBAAwB,CAA0E;IAE1G,iBAAiB,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAC7C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI;IAI5E,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,oBAAoB,CAAuC;IACnE,OAAO,CAAC,MAAM,CAAoB;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,eAAe,CAAmB;IAE1C;;OAEG;IACH,OAAO,CAAC,cAAc,CAAiB;IAEvC,OAAO,EAAE,MAAM,CAAC;gBAGP,UAAU,EAAE,wBAAwB,CAAC,UAAU,CAAC,EACvD,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,uBAA4B;IASvC,aAAa,CAAC,MAAM,EAAE,GAAG;IAKzB,WAAW,CAAC,eAAe,EAAE,gBAAgB;IAG7C,OAAO,CAAC,gBAAgB;IAaX,WAAW;IAqDxB,OAAO,CAAC,OAAO;IAIR,UAAU,CAAC,WAAW,EAAE,MAAM;IAIxB,WAAW,CAAC,WAAW,EAAE,MAAM;IA+DrC,OAAO;IAOd,iBAAiB,CAAC,WAAW,EAAE,MAAM;CAiBtC"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.WSChannelHandler = void 0;
|
|
4
4
|
const events_1 = require("@opensumi/events");
|
|
5
5
|
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
6
|
+
const serializer_1 = require("../common/serializer");
|
|
6
7
|
const ws_channel_1 = require("../common/ws-channel");
|
|
7
8
|
/**
|
|
8
9
|
* Channel Handler in browser
|
|
@@ -11,7 +12,7 @@ class WSChannelHandler {
|
|
|
11
12
|
onChannelCreated(path, listener) {
|
|
12
13
|
return this._onChannelCreatedEmitter.on(path, listener);
|
|
13
14
|
}
|
|
14
|
-
constructor(connection,
|
|
15
|
+
constructor(connection, clientId, options = {}) {
|
|
15
16
|
this.connection = connection;
|
|
16
17
|
this._disposables = new ide_core_common_1.DisposableStore();
|
|
17
18
|
this._onChannelCreatedEmitter = this._disposables.add(new events_1.EventEmitter());
|
|
@@ -22,9 +23,11 @@ class WSChannelHandler {
|
|
|
22
23
|
* 保证在连接建立后再执行后续操作
|
|
23
24
|
*/
|
|
24
25
|
this.openingBarrier = new ide_core_common_1.Barrier();
|
|
25
|
-
this.logger = logger || this.logger;
|
|
26
|
+
this.logger = options.logger || this.logger;
|
|
26
27
|
this.clientId = clientId;
|
|
27
28
|
this.LOG_TAG = `[WSChannelHandler] [client-id:${this.clientId}]`;
|
|
29
|
+
const serializer = options.serializer || serializer_1.furySerializer;
|
|
30
|
+
this.wrappedConnection = (0, serializer_1.wrapSerializer)(this.connection, serializer);
|
|
28
31
|
}
|
|
29
32
|
// 为解决建立连接之后,替换成可落盘的 logger
|
|
30
33
|
replaceLogger(logger) {
|
|
@@ -40,33 +43,19 @@ class WSChannelHandler {
|
|
|
40
43
|
clearTimeout(this.heartbeatMessageTimer);
|
|
41
44
|
}
|
|
42
45
|
this.heartbeatMessageTimer = global.setTimeout(() => {
|
|
43
|
-
this.
|
|
46
|
+
this.channelMap.forEach((channel) => {
|
|
47
|
+
channel.ping();
|
|
48
|
+
});
|
|
44
49
|
this.heartbeatMessage();
|
|
45
50
|
}, 10 * 1000);
|
|
46
51
|
}
|
|
47
52
|
async initHandler() {
|
|
48
|
-
this.
|
|
53
|
+
this.wrappedConnection.onMessage((msg) => {
|
|
49
54
|
// 一个心跳周期内如果有收到消息,则不需要再发送心跳
|
|
50
55
|
this.heartbeatMessage();
|
|
51
|
-
const msg = (0, ws_channel_1.parse)(message);
|
|
52
56
|
switch (msg.kind) {
|
|
53
57
|
case 'pong':
|
|
54
|
-
// pong
|
|
55
|
-
break;
|
|
56
|
-
case 'error':
|
|
57
|
-
this.logger.error(this.LOG_TAG, `receive error: id: ${msg.id}, code: ${msg.code}, error: ${msg.message}`);
|
|
58
|
-
switch (msg.code) {
|
|
59
|
-
case ws_channel_1.ErrorMessageCode.ChannelNotFound:
|
|
60
|
-
if (this.channelMap.has(msg.id)) {
|
|
61
|
-
// 如果远程报错 channel 不存在但是本机存在,则重新打开
|
|
62
|
-
const channel = this.channelMap.get(msg.id);
|
|
63
|
-
if (channel.channelPath) {
|
|
64
|
-
channel.pause();
|
|
65
|
-
channel.open(channel.channelPath, this.clientId);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
58
|
+
// pong 不需要分发, 不处理
|
|
70
59
|
break;
|
|
71
60
|
default: {
|
|
72
61
|
const channel = this.channelMap.get(msg.id);
|
|
@@ -119,7 +108,7 @@ class WSChannelHandler {
|
|
|
119
108
|
this.channelMap.get(key).dispose();
|
|
120
109
|
this.logger.log(this.LOG_TAG, `channel ${key} already exists, dispose it`);
|
|
121
110
|
}
|
|
122
|
-
const channel = new ws_channel_1.WSChannel(this.
|
|
111
|
+
const channel = new ws_channel_1.WSChannel(this.wrappedConnection, {
|
|
123
112
|
id: key,
|
|
124
113
|
logger: this.logger,
|
|
125
114
|
ensureServerReady: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-channel-handler.js","sourceRoot":"","sources":["../../src/browser/ws-channel-handler.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAChD,+DAAwH;
|
|
1
|
+
{"version":3,"file":"ws-channel-handler.js","sourceRoot":"","sources":["../../src/browser/ws-channel-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/channel/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/channel/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export type ChannelMessage = PingMessage | PongMessage | OpenMessage | ServerReadyMessage | DataMessage | BinaryMessage | CloseMessage | ErrorMessage;
|
|
2
|
+
/**
|
|
3
|
+
* `ping` and `pong` are used to detect whether the connection is alive.
|
|
4
|
+
*/
|
|
5
|
+
export interface PingMessage {
|
|
6
|
+
kind: 'ping';
|
|
7
|
+
id: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* when server receive a `ping` message, it should reply a `pong` message, vice versa.
|
|
11
|
+
*/
|
|
12
|
+
export interface PongMessage {
|
|
13
|
+
kind: 'pong';
|
|
14
|
+
id: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* `data` message indicate that the channel has received some data.
|
|
18
|
+
* the `content` field is the data, it should be a string.
|
|
19
|
+
*/
|
|
20
|
+
export interface DataMessage {
|
|
21
|
+
kind: 'data';
|
|
22
|
+
id: string;
|
|
23
|
+
content: string;
|
|
24
|
+
}
|
|
25
|
+
export interface BinaryMessage {
|
|
26
|
+
kind: 'binary';
|
|
27
|
+
id: string;
|
|
28
|
+
binary: Uint8Array;
|
|
29
|
+
}
|
|
30
|
+
export interface CloseMessage {
|
|
31
|
+
kind: 'close';
|
|
32
|
+
id: string;
|
|
33
|
+
code: number;
|
|
34
|
+
reason: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* `open` message is used to open a new channel.
|
|
38
|
+
* `path` is used to identify which handler should be used to handle the channel.
|
|
39
|
+
* `clientId` is used to identify the client.
|
|
40
|
+
*/
|
|
41
|
+
export interface OpenMessage {
|
|
42
|
+
kind: 'open';
|
|
43
|
+
id: string;
|
|
44
|
+
path: string;
|
|
45
|
+
clientId: string;
|
|
46
|
+
connectionToken: string;
|
|
47
|
+
}
|
|
48
|
+
export declare enum ErrorMessageCode {
|
|
49
|
+
ChannelNotFound = 1
|
|
50
|
+
}
|
|
51
|
+
export interface ErrorMessage {
|
|
52
|
+
kind: 'error';
|
|
53
|
+
id: string;
|
|
54
|
+
code: ErrorMessageCode;
|
|
55
|
+
message: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* when server receive a `open` message, it should reply a `server-ready` message.
|
|
59
|
+
* this is indicate that the channel is ready to use.
|
|
60
|
+
*/
|
|
61
|
+
export interface ServerReadyMessage {
|
|
62
|
+
kind: 'server-ready';
|
|
63
|
+
id: string;
|
|
64
|
+
token: string;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/channel/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,WAAW,GACX,WAAW,GACX,kBAAkB,GAClB,WAAW,GACX,aAAa,GACb,YAAY,GACZ,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,oBAAY,gBAAgB;IAC1B,eAAe,IAAI;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ErrorMessageCode = void 0;
|
|
4
|
+
var ErrorMessageCode;
|
|
5
|
+
(function (ErrorMessageCode) {
|
|
6
|
+
ErrorMessageCode[ErrorMessageCode["ChannelNotFound"] = 1] = "ChannelNotFound";
|
|
7
|
+
})(ErrorMessageCode = exports.ErrorMessageCode || (exports.ErrorMessageCode = {}));
|
|
8
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/channel/types.ts"],"names":[],"mappings":";;;AA8DA,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IAC1B,6EAAmB,CAAA;AACrB,CAAC,EAFW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAE3B"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { IDisposable } from '@opensumi/ide-core-common';
|
|
2
2
|
import { BaseConnection } from './base';
|
|
3
|
-
export declare class SimpleConnection extends BaseConnection<
|
|
3
|
+
export declare class SimpleConnection<T = Uint8Array> extends BaseConnection<T> {
|
|
4
4
|
options: {
|
|
5
|
-
send?: (data:
|
|
6
|
-
onMessage?: (cb: (data:
|
|
5
|
+
send?: (data: T) => void;
|
|
6
|
+
onMessage?: (cb: (data: T) => void) => IDisposable;
|
|
7
7
|
};
|
|
8
8
|
constructor(options?: {
|
|
9
|
-
send?: (data:
|
|
10
|
-
onMessage?: (cb: (data:
|
|
9
|
+
send?: (data: T) => void;
|
|
10
|
+
onMessage?: (cb: (data: T) => void) => IDisposable;
|
|
11
11
|
});
|
|
12
|
-
send(data:
|
|
13
|
-
onMessage(cb: (data:
|
|
12
|
+
send(data: T): void;
|
|
13
|
+
onMessage(cb: (data: T) => void): IDisposable;
|
|
14
14
|
onceClose(cb: () => void): IDisposable;
|
|
15
15
|
dispose(): void;
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple.d.ts","sourceRoot":"","sources":["../../../../src/common/connection/drivers/simple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,qBAAa,
|
|
1
|
+
{"version":3,"file":"simple.d.ts","sourceRoot":"","sources":["../../../../src/common/connection/drivers/simple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,qBAAa,gBAAgB,CAAC,CAAC,GAAG,UAAU,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IAE5D,OAAO,EAAE;QACd,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;QACzB,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,KAAK,WAAW,CAAC;KACpD;gBAHM,OAAO,GAAE;QACd,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;QACzB,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,KAAK,WAAW,CAAC;KAC/C;IAIR,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAGnB,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,WAAW;IAQ7C,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,WAAW;IAKtC,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple.js","sourceRoot":"","sources":["../../../../src/common/connection/drivers/simple.ts"],"names":[],"mappings":";;;AAEA,iCAAwC;AAExC,MAAa,
|
|
1
|
+
{"version":3,"file":"simple.js","sourceRoot":"","sources":["../../../../src/common/connection/drivers/simple.ts"],"names":[],"mappings":";;;AAEA,iCAAwC;AAExC,MAAa,gBAAiC,SAAQ,qBAAiB;IACrE,YACS,UAGH,EAAE;QAEN,KAAK,EAAE,CAAC;QALD,YAAO,GAAP,OAAO,CAGR;IAGR,CAAC;IACD,IAAI,CAAC,IAAO;;QACV,MAAA,MAAA,IAAI,CAAC,OAAO,EAAC,IAAI,mDAAG,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,SAAS,CAAC,EAAqB;QAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;SACnC;QACD,OAAO;YACL,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IACD,SAAS,CAAC,EAAc;QACtB,OAAO;YACL,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,aAAa;IACf,CAAC;CACF;AA5BD,4CA4BC"}
|
package/lib/common/index.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
export * from './rpc-service/proxy';
|
|
2
|
+
export * from './rpc-service';
|
|
2
3
|
export * from './rpc/multiplexer';
|
|
3
4
|
export * from './rpcProtocol';
|
|
4
5
|
export * from './capturer';
|
|
5
6
|
export * from './ws-channel';
|
|
6
7
|
export * from './connect';
|
|
7
8
|
export * from './types';
|
|
9
|
+
export * from './connection';
|
|
10
|
+
export * from './serializer';
|
|
11
|
+
export * from './channel';
|
|
8
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
package/lib/common/index.js
CHANGED
|
@@ -2,10 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./rpc-service/proxy"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./rpc-service"), exports);
|
|
5
6
|
tslib_1.__exportStar(require("./rpc/multiplexer"), exports);
|
|
6
7
|
tslib_1.__exportStar(require("./rpcProtocol"), exports);
|
|
7
8
|
tslib_1.__exportStar(require("./capturer"), exports);
|
|
8
9
|
tslib_1.__exportStar(require("./ws-channel"), exports);
|
|
9
10
|
tslib_1.__exportStar(require("./connect"), exports);
|
|
10
11
|
tslib_1.__exportStar(require("./types"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./connection"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./serializer"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./channel"), exports);
|
|
11
15
|
//# sourceMappingURL=index.js.map
|
package/lib/common/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,4DAAkC;AAClC,wDAA8B;AAC9B,qDAA2B;AAC3B,uDAA6B;AAC7B,oDAA0B;AAC1B,kDAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,wDAA8B;AAC9B,4DAAkC;AAClC,wDAA8B;AAC9B,qDAA2B;AAC3B,uDAA6B;AAC7B,oDAA0B;AAC1B,kDAAwB;AACxB,uDAA6B;AAC7B,uDAA6B;AAC7B,oDAA0B"}
|
|
@@ -4,7 +4,7 @@ import { SumiReadableStream } from '@opensumi/ide-utils/lib/stream';
|
|
|
4
4
|
import { Capturer } from '../capturer';
|
|
5
5
|
import { BaseConnection } from '../connection';
|
|
6
6
|
import { ILogger } from '../types';
|
|
7
|
-
import {
|
|
7
|
+
import { IMessageIO } from './message-io';
|
|
8
8
|
import { TGenericNotificationHandler, TGenericRequestHandler, TNotificationNotFoundHandler, TRequestNotFoundHandler } from './types';
|
|
9
9
|
import type net from 'net';
|
|
10
10
|
import type { WebSocket } from 'ws';
|
|
@@ -15,6 +15,7 @@ export interface ISumiConnectionOptions {
|
|
|
15
15
|
* The name of the connection, used for debugging(and can see in opensumi-devtools).
|
|
16
16
|
*/
|
|
17
17
|
name?: string;
|
|
18
|
+
io?: IMessageIO;
|
|
18
19
|
}
|
|
19
20
|
export declare class SumiConnection implements IDisposable {
|
|
20
21
|
protected socket: BaseConnection<Uint8Array>;
|
|
@@ -26,11 +27,11 @@ export declare class SumiConnection implements IDisposable {
|
|
|
26
27
|
private _starNotificationHandler;
|
|
27
28
|
private _requestId;
|
|
28
29
|
private _callbacks;
|
|
29
|
-
private readonly
|
|
30
|
+
private readonly _reqTimeoutHandles;
|
|
30
31
|
private readonly _cancellationTokenSources;
|
|
31
32
|
private readonly _knownCanceledRequests;
|
|
32
|
-
protected activeRequestPool: Map<number, SumiReadableStream<any>>;
|
|
33
|
-
io:
|
|
33
|
+
protected activeRequestPool: Map<number, SumiReadableStream<any, Error>>;
|
|
34
|
+
io: IMessageIO;
|
|
34
35
|
protected logger: ILogger;
|
|
35
36
|
protected capturer: Capturer;
|
|
36
37
|
constructor(socket: BaseConnection<Uint8Array>, options?: ISumiConnectionOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/common/rpc/connection.ts"],"names":[],"mappings":";AACA,OAAO,EAGL,eAAe,EACf,WAAW,
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/common/rpc/connection.ts"],"names":[],"mappings":";AACA,OAAO,EAGL,eAAe,EACf,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAoC,MAAM,gCAAgC,CAAC;AAEtG,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAA8C,MAAM,eAAe,CAAC;AAE3F,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,OAAO,EAAE,UAAU,EAAiE,MAAM,cAAc,CAAC;AACzG,OAAO,EAEL,2BAA2B,EAC3B,sBAAsB,EACtB,4BAA4B,EAE5B,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAIpC,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,EAAE,CAAC,EAAE,UAAU,CAAC;CACjB;AAMD,qBAAa,cAAe,YAAW,WAAW;IAsBpC,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC;IAAE,SAAS,CAAC,OAAO,EAAE,sBAAsB;IArBnG,SAAS,CAAC,UAAU,kBAAyB;IAE7C,OAAO,CAAC,gBAAgB,CAAkD;IAC1E,OAAO,CAAC,mBAAmB,CAAsC;IACjE,OAAO,CAAC,qBAAqB,CAAkD;IAC/E,OAAO,CAAC,wBAAwB,CAA2C;IAE3E,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,UAAU,CAAuC;IAEzD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8C;IACjF,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAA8C;IACxF,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;IAE5D,SAAS,CAAC,iBAAiB,8CAA8C;IAElE,EAAE,EAAE,UAAU,CAAC;IACtB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAE1B,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAEP,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAAY,OAAO,GAAE,sBAA2B;IAaxG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAO/C,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAyD1C,aAAa,CAAC,SAAS,EAAE,MAAM;IAI/B,OAAO,CAAC,cAAc;IAWtB,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,WAAW;IASnF,iBAAiB,CAAC,OAAO,EAAE,uBAAuB,GAAG,WAAW;IAShE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,GAAG,WAAW;IASjF,sBAAsB,CAAC,OAAO,EAAE,4BAA4B,GAAG,WAAW;IAS1E,MAAM;IAsKN,OAAO,IAAI,IAAI;IAIf,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,sBAA2B;IAI7E,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,GAAE,sBAA2B;IAI5E,OAAO,CAAC,iBAAiB;CAG1B"}
|
|
@@ -22,17 +22,17 @@ class SumiConnection {
|
|
|
22
22
|
this._notificationHandlers = new Map();
|
|
23
23
|
this._requestId = 0;
|
|
24
24
|
this._callbacks = new Map();
|
|
25
|
-
this.
|
|
25
|
+
this._reqTimeoutHandles = new Map();
|
|
26
26
|
this._cancellationTokenSources = new Map();
|
|
27
27
|
this._knownCanceledRequests = new Set();
|
|
28
28
|
this.activeRequestPool = new Map();
|
|
29
|
-
this.io = new message_io_1.MessageIO();
|
|
30
29
|
if (options.logger) {
|
|
31
30
|
this.logger = options.logger;
|
|
32
31
|
}
|
|
33
32
|
else {
|
|
34
33
|
this.logger = (0, ide_core_common_1.getDebugLogger)();
|
|
35
34
|
}
|
|
35
|
+
this.io = options.io || new message_io_1.MessageIO();
|
|
36
36
|
this.capturer = new capturer_1.Capturer(options.name || 'sumi');
|
|
37
37
|
this.disposable.add(this.capturer);
|
|
38
38
|
}
|
|
@@ -64,7 +64,7 @@ class SumiConnection {
|
|
|
64
64
|
const timeoutHandle = setTimeout(() => {
|
|
65
65
|
this._handleTimeout(method, requestId);
|
|
66
66
|
}, this.options.timeout);
|
|
67
|
-
this.
|
|
67
|
+
this._reqTimeoutHandles.set(requestId, timeoutHandle);
|
|
68
68
|
}
|
|
69
69
|
const cancellationToken = args.length && ide_utils_1.CancellationToken.isCancellationToken(args[args.length - 1]) ? args.pop() : undefined;
|
|
70
70
|
if (cancellationToken && cancellationToken.isCancellationRequested) {
|
|
@@ -83,12 +83,12 @@ class SumiConnection {
|
|
|
83
83
|
this.socket.send(this.io.Cancel(requestId));
|
|
84
84
|
}
|
|
85
85
|
_handleTimeout(method, requestId) {
|
|
86
|
-
if (!this._callbacks.has(requestId) || !this.
|
|
86
|
+
if (!this._callbacks.has(requestId) || !this._reqTimeoutHandles.has(requestId)) {
|
|
87
87
|
return;
|
|
88
88
|
}
|
|
89
89
|
const callback = this._callbacks.get(requestId);
|
|
90
90
|
this._callbacks.delete(requestId);
|
|
91
|
-
this.
|
|
91
|
+
this._reqTimeoutHandles.delete(requestId);
|
|
92
92
|
callback(nullHeaders, new errors_1.MethodTimeoutError(method));
|
|
93
93
|
}
|
|
94
94
|
onRequest(method, handler) {
|
|
@@ -124,45 +124,29 @@ class SumiConnection {
|
|
|
124
124
|
};
|
|
125
125
|
}
|
|
126
126
|
listen() {
|
|
127
|
-
const { reader } = this.io;
|
|
128
127
|
this.disposable.add(this.socket.onMessage((data) => {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
const opType = reader.uint8();
|
|
133
|
-
const requestId = reader.uint32();
|
|
134
|
-
if (this._timeoutHandles.has(requestId)) {
|
|
135
|
-
// Ignore some jest test scenarios where clearTimeout is not defined.
|
|
136
|
-
if (typeof clearTimeout === 'function') {
|
|
137
|
-
// @ts-ignore
|
|
138
|
-
clearTimeout(this._timeoutHandles.get(requestId));
|
|
139
|
-
}
|
|
140
|
-
this._timeoutHandles.delete(requestId);
|
|
141
|
-
}
|
|
128
|
+
const message = this.io.parse(data);
|
|
129
|
+
const opType = message.kind;
|
|
130
|
+
const requestId = message.requestId;
|
|
142
131
|
switch (opType) {
|
|
132
|
+
case message_io_1.OperationType.Error:
|
|
143
133
|
case message_io_1.OperationType.Response: {
|
|
144
|
-
const method =
|
|
145
|
-
const
|
|
134
|
+
const { headers, method } = message;
|
|
135
|
+
const err = message.error;
|
|
136
|
+
const result = message.result;
|
|
137
|
+
if (this._reqTimeoutHandles.has(requestId)) {
|
|
138
|
+
clearTimeout(this._reqTimeoutHandles.get(requestId));
|
|
139
|
+
this._reqTimeoutHandles.delete(requestId);
|
|
140
|
+
}
|
|
146
141
|
const runCallback = (headers, error, result) => {
|
|
147
142
|
const callback = this._callbacks.get(requestId);
|
|
148
143
|
if (!callback) {
|
|
149
|
-
this.logger.error(`Cannot find callback for request ${requestId}: ${method}
|
|
144
|
+
this.logger.error(`Cannot find callback for request ${requestId}: ${method}`);
|
|
150
145
|
return;
|
|
151
146
|
}
|
|
152
147
|
this._callbacks.delete(requestId);
|
|
153
148
|
callback(headers, error, result);
|
|
154
149
|
};
|
|
155
|
-
const headers = this.io.responseHeadersSerializer.read();
|
|
156
|
-
let err;
|
|
157
|
-
let result;
|
|
158
|
-
if (status === message_io_1.Status.Err) {
|
|
159
|
-
// todo: move to processor
|
|
160
|
-
const content = reader.stringOfVarUInt32();
|
|
161
|
-
err = (0, ide_utils_1.parseError)(content);
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
result = this.io.getProcessor(method).readResponse();
|
|
165
|
-
}
|
|
166
150
|
if (headers && headers.chunked) {
|
|
167
151
|
let activeReq;
|
|
168
152
|
if (this.activeRequestPool.has(requestId)) {
|
|
@@ -194,9 +178,7 @@ class SumiConnection {
|
|
|
194
178
|
case message_io_1.OperationType.Notification:
|
|
195
179
|
// fall through
|
|
196
180
|
case message_io_1.OperationType.Request: {
|
|
197
|
-
const method =
|
|
198
|
-
const headers = this.io.requestHeadersSerializer.read();
|
|
199
|
-
const args = this.io.getProcessor(method).readRequest();
|
|
181
|
+
const { method, headers, args } = message;
|
|
200
182
|
if (headers.cancelable) {
|
|
201
183
|
const tokenSource = new ide_utils_1.CancellationTokenSource();
|
|
202
184
|
this._cancellationTokenSources.set(requestId, tokenSource);
|
|
@@ -233,16 +215,18 @@ class SumiConnection {
|
|
|
233
215
|
},
|
|
234
216
|
onEnd: () => {
|
|
235
217
|
this.socket.send(this.io.Response(requestId, method, chunkedResponseHeaders, null));
|
|
218
|
+
this._cancellationTokenSources.delete(requestId);
|
|
236
219
|
},
|
|
237
220
|
onError: (err) => {
|
|
238
221
|
this.socket.send(this.io.Error(requestId, method, chunkedResponseHeaders, err));
|
|
222
|
+
this._cancellationTokenSources.delete(requestId);
|
|
239
223
|
},
|
|
240
224
|
});
|
|
241
225
|
}
|
|
242
226
|
else {
|
|
243
227
|
this.socket.send(this.io.Response(requestId, method, nullHeaders, result));
|
|
228
|
+
this._cancellationTokenSources.delete(requestId);
|
|
244
229
|
}
|
|
245
|
-
this._cancellationTokenSources.delete(requestId);
|
|
246
230
|
};
|
|
247
231
|
const onError = (err) => {
|
|
248
232
|
this.traceRequestError(requestId, method, args, err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/common/rpc/connection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/common/rpc/connection.ts"],"names":[],"mappings":"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"}
|