@opensumi/ide-connection 2.27.3-next-1706520813.0 → 2.27.3-rc-1706687185.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 +9 -7
- package/lib/browser/ws-channel-handler.d.ts.map +1 -1
- package/lib/browser/ws-channel-handler.js +65 -64
- package/lib/browser/ws-channel-handler.js.map +1 -1
- package/lib/common/connect.d.ts +6 -57
- package/lib/common/connect.d.ts.map +1 -1
- package/lib/common/connect.js +9 -168
- package/lib/common/connect.js.map +1 -1
- package/lib/common/connection/buffers.d.ts +55 -0
- package/lib/common/connection/buffers.d.ts.map +1 -0
- package/lib/common/connection/buffers.js +244 -0
- package/lib/common/connection/buffers.js.map +1 -0
- package/lib/common/connection/drivers/base.d.ts +9 -0
- package/lib/common/connection/drivers/base.d.ts.map +1 -0
- package/lib/common/connection/drivers/base.js +11 -0
- package/lib/common/connection/drivers/base.js.map +1 -0
- package/lib/common/connection/drivers/empty.d.ts +8 -0
- package/lib/common/connection/drivers/empty.d.ts.map +1 -0
- package/lib/common/connection/drivers/empty.js +21 -0
- package/lib/common/connection/drivers/empty.js.map +1 -0
- package/lib/common/connection/drivers/index.d.ts +6 -0
- package/lib/common/connection/drivers/index.d.ts.map +1 -0
- package/lib/common/connection/drivers/index.js +9 -0
- package/lib/common/connection/drivers/index.js.map +1 -0
- package/lib/common/connection/drivers/node-message-port.d.ts +12 -0
- package/lib/common/connection/drivers/node-message-port.d.ts.map +1 -0
- package/lib/common/connection/drivers/node-message-port.js +31 -0
- package/lib/common/connection/drivers/node-message-port.js.map +1 -0
- package/lib/common/connection/drivers/reconnecting-websocket.d.ts +15 -0
- package/lib/common/connection/drivers/reconnecting-websocket.d.ts.map +1 -0
- package/lib/common/connection/drivers/reconnecting-websocket.js +83 -0
- package/lib/common/connection/drivers/reconnecting-websocket.js.map +1 -0
- package/lib/common/connection/drivers/socket.d.ts +17 -0
- package/lib/common/connection/drivers/socket.d.ts.map +1 -0
- package/lib/common/connection/drivers/socket.js +56 -0
- package/lib/common/connection/drivers/socket.js.map +1 -0
- package/lib/common/connection/drivers/stream-decoder.d.ts +67 -0
- package/lib/common/connection/drivers/stream-decoder.d.ts.map +1 -0
- package/lib/common/connection/drivers/stream-decoder.js +171 -0
- package/lib/common/connection/drivers/stream-decoder.js.map +1 -0
- package/lib/common/connection/drivers/utils.d.ts +12 -0
- package/lib/common/connection/drivers/utils.d.ts.map +1 -0
- package/lib/common/connection/drivers/utils.js +49 -0
- package/lib/common/connection/drivers/utils.js.map +1 -0
- package/lib/common/connection/drivers/ws-websocket.d.ts +11 -0
- package/lib/common/connection/drivers/ws-websocket.d.ts.map +1 -0
- package/lib/common/connection/drivers/ws-websocket.js +31 -0
- package/lib/common/connection/drivers/ws-websocket.js.map +1 -0
- package/lib/common/connection/index.d.ts +2 -0
- package/lib/common/connection/index.d.ts.map +1 -0
- package/lib/common/connection/index.js +5 -0
- package/lib/common/connection/index.js.map +1 -0
- package/lib/common/connection/types.d.ts +7 -0
- package/lib/common/connection/types.d.ts.map +1 -0
- package/lib/common/connection/types.js +3 -0
- package/lib/common/connection/types.js.map +1 -0
- package/lib/common/constants.d.ts +2 -0
- package/lib/common/constants.d.ts.map +1 -0
- package/lib/common/constants.js +5 -0
- package/lib/common/constants.js.map +1 -0
- package/lib/common/{rpcProtocol.d.ts → ext-rpc-protocol.d.ts} +10 -11
- package/lib/common/ext-rpc-protocol.d.ts.map +1 -0
- package/lib/common/{rpcProtocol.js → ext-rpc-protocol.js} +22 -19
- package/lib/common/ext-rpc-protocol.js.map +1 -0
- package/lib/common/index.d.ts +2 -1
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +2 -1
- package/lib/common/index.js.map +1 -1
- package/lib/common/proxy/base.d.ts +22 -0
- package/lib/common/proxy/base.d.ts.map +1 -0
- package/lib/common/proxy/base.js +47 -0
- package/lib/common/proxy/base.js.map +1 -0
- package/lib/common/proxy/index.d.ts +8 -0
- package/lib/common/proxy/index.d.ts.map +1 -0
- package/lib/common/proxy/index.js +12 -0
- package/lib/common/proxy/index.js.map +1 -0
- package/lib/common/proxy/legacy.d.ts +23 -0
- package/lib/common/proxy/legacy.d.ts.map +1 -0
- package/lib/common/proxy/legacy.js +183 -0
- package/lib/common/proxy/legacy.js.map +1 -0
- package/lib/common/rpc-service/center.d.ts +20 -0
- package/lib/common/rpc-service/center.d.ts.map +1 -0
- package/lib/common/rpc-service/center.js +100 -0
- package/lib/common/rpc-service/center.js.map +1 -0
- package/lib/common/rpc-service/index.d.ts +3 -0
- package/lib/common/rpc-service/index.d.ts.map +1 -0
- package/lib/common/rpc-service/index.js +6 -0
- package/lib/common/rpc-service/index.js.map +1 -0
- package/lib/common/rpc-service/stub.d.ts +15 -0
- package/lib/common/rpc-service/stub.d.ts.map +1 -0
- package/lib/common/rpc-service/stub.js +48 -0
- package/lib/common/rpc-service/stub.js.map +1 -0
- package/lib/common/types.d.ts +15 -0
- package/lib/common/types.d.ts.map +1 -0
- package/lib/common/types.js +9 -0
- package/lib/common/types.js.map +1 -0
- package/lib/common/utils.d.ts +4 -2
- package/lib/common/utils.d.ts.map +1 -1
- package/lib/common/utils.js +32 -9
- package/lib/common/utils.js.map +1 -1
- package/lib/common/ws-channel.d.ts +104 -27
- package/lib/common/ws-channel.d.ts.map +1 -1
- package/lib/common/ws-channel.js +96 -27
- package/lib/common/ws-channel.js.map +1 -1
- package/lib/node/common-channel-handler.d.ts +18 -16
- package/lib/node/common-channel-handler.d.ts.map +1 -1
- package/lib/node/common-channel-handler.js +42 -59
- package/lib/node/common-channel-handler.js.map +1 -1
- package/lib/node/index.d.ts +0 -3
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +0 -5
- package/lib/node/index.js.map +1 -1
- package/lib/node/ws.d.ts +1 -1
- package/lib/node/ws.d.ts.map +1 -1
- package/lib/node/ws.js +2 -0
- package/lib/node/ws.js.map +1 -1
- package/package.json +9 -7
- package/src/browser/ws-channel-handler.ts +82 -70
- package/src/common/connect.ts +7 -193
- package/src/common/connection/buffers.ts +284 -0
- package/src/common/connection/drivers/base.ts +15 -0
- package/src/common/connection/drivers/empty.ts +19 -0
- package/src/common/connection/drivers/index.ts +5 -0
- package/src/common/connection/drivers/node-message-port.ts +33 -0
- package/src/common/connection/drivers/reconnecting-websocket.ts +86 -0
- package/src/common/connection/drivers/socket.ts +62 -0
- package/src/common/connection/drivers/stream-decoder.ts +196 -0
- package/src/common/connection/drivers/utils.ts +52 -0
- package/src/common/connection/drivers/ws-websocket.ts +31 -0
- package/src/common/connection/index.ts +1 -0
- package/src/common/connection/types.ts +7 -0
- package/src/common/constants.ts +1 -0
- package/src/common/{rpcProtocol.ts → ext-rpc-protocol.ts} +43 -31
- package/src/common/index.ts +2 -1
- package/src/common/proxy/base.ts +67 -0
- package/src/common/proxy/index.ts +10 -0
- package/src/common/proxy/legacy.ts +200 -0
- package/src/common/rpc-service/center.ts +124 -0
- package/src/common/rpc-service/index.ts +2 -0
- package/src/common/rpc-service/stub.ts +49 -0
- package/src/common/types.ts +17 -0
- package/src/common/utils.ts +31 -8
- package/src/common/ws-channel.ts +175 -48
- package/src/node/common-channel-handler.ts +68 -80
- package/src/node/index.ts +0 -5
- package/src/node/ws.ts +3 -1
- package/lib/common/proxy.d.ts +0 -47
- package/lib/common/proxy.d.ts.map +0 -1
- package/lib/common/proxy.js +0 -272
- package/lib/common/proxy.js.map +0 -1
- package/lib/common/rpcProtocol.d.ts.map +0 -1
- package/lib/common/rpcProtocol.js.map +0 -1
- package/lib/node/connect.d.ts +0 -4
- package/lib/node/connect.d.ts.map +0 -1
- package/lib/node/connect.js +0 -9
- package/lib/node/connect.js.map +0 -1
- package/src/common/proxy.ts +0 -303
- package/src/node/connect.ts +0 -11
package/lib/common/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getMethodName = exports.getRequestName = exports.getNotificationName = exports.getServiceMethods = exports.getCapturer = exports.ResponseStatus = exports.MessageType = void 0;
|
|
4
4
|
var MessageType;
|
|
5
5
|
(function (MessageType) {
|
|
6
6
|
MessageType["SendNotification"] = "sendNotification";
|
|
@@ -15,14 +15,6 @@ var ResponseStatus;
|
|
|
15
15
|
ResponseStatus["Success"] = "success";
|
|
16
16
|
ResponseStatus["Fail"] = "fail";
|
|
17
17
|
})(ResponseStatus = exports.ResponseStatus || (exports.ResponseStatus = {}));
|
|
18
|
-
function stringify(obj) {
|
|
19
|
-
return JSON.stringify(obj);
|
|
20
|
-
}
|
|
21
|
-
exports.stringify = stringify;
|
|
22
|
-
function parse(input, reviver) {
|
|
23
|
-
return JSON.parse(input, reviver);
|
|
24
|
-
}
|
|
25
|
-
exports.parse = parse;
|
|
26
18
|
function getCapturer() {
|
|
27
19
|
var _a;
|
|
28
20
|
if (typeof window !== 'undefined' && ((_a = window.__OPENSUMI_DEVTOOLS_GLOBAL_HOOK__) === null || _a === void 0 ? void 0 : _a.captureRPC)) {
|
|
@@ -31,4 +23,35 @@ function getCapturer() {
|
|
|
31
23
|
return;
|
|
32
24
|
}
|
|
33
25
|
exports.getCapturer = getCapturer;
|
|
26
|
+
function getServiceMethods(service) {
|
|
27
|
+
let props = [];
|
|
28
|
+
if (/^\s*class/.test(service.constructor.toString())) {
|
|
29
|
+
let obj = service;
|
|
30
|
+
do {
|
|
31
|
+
props = props.concat(Object.getOwnPropertyNames(obj));
|
|
32
|
+
} while ((obj = Object.getPrototypeOf(obj)));
|
|
33
|
+
props = props.sort().filter((e, i, arr) => e !== arr[i + 1] && typeof service[e] === 'function');
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
for (const prop in service) {
|
|
37
|
+
if (service[prop] && typeof service[prop] === 'function') {
|
|
38
|
+
props.push(prop);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return props;
|
|
43
|
+
}
|
|
44
|
+
exports.getServiceMethods = getServiceMethods;
|
|
45
|
+
function getNotificationName(serviceName, name) {
|
|
46
|
+
return `on:${serviceName}:${name}`;
|
|
47
|
+
}
|
|
48
|
+
exports.getNotificationName = getNotificationName;
|
|
49
|
+
function getRequestName(serviceName, name) {
|
|
50
|
+
return `${serviceName}:${name}`;
|
|
51
|
+
}
|
|
52
|
+
exports.getRequestName = getRequestName;
|
|
53
|
+
function getMethodName(serviceName, name) {
|
|
54
|
+
return name.startsWith('on') ? getNotificationName(serviceName, name) : getRequestName(serviceName, name);
|
|
55
|
+
}
|
|
56
|
+
exports.getMethodName = getMethodName;
|
|
34
57
|
//# sourceMappingURL=utils.js.map
|
package/lib/common/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":";;;AAMA,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,oDAAqC,CAAA;IACrC,0CAA2B,CAAA;IAC3B,8CAA+B,CAAA;IAC/B,gDAAiC,CAAA;IACjC,sCAAuB,CAAA;IACvB,kDAAmC,CAAA;AACrC,CAAC,EAPW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAOtB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,+BAAa,CAAA;AACf,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AAyBD,SAAgB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":";;;AAMA,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,oDAAqC,CAAA;IACrC,0CAA2B,CAAA;IAC3B,8CAA+B,CAAA;IAC/B,gDAAiC,CAAA;IACjC,sCAAuB,CAAA;IACvB,kDAAmC,CAAA;AACrC,CAAC,EAPW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAOtB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,+BAAa,CAAA;AACf,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AAyBD,SAAgB,WAAW;;IACzB,IAAI,OAAO,MAAM,KAAK,WAAW,KAAI,MAAA,MAAM,CAAC,iCAAiC,0CAAE,UAAU,CAAA,EAAE;QACzF,OAAO,MAAM,CAAC,iCAAiC,CAAC,UAAU,CAAC;KAC5D;IACD,OAAO;AACT,CAAC;AALD,kCAKC;AAED,SAAgB,iBAAiB,CAAC,OAAY;IAC5C,IAAI,KAAK,GAAU,EAAE,CAAC;IAEtB,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAE;QACpD,IAAI,GAAG,GAAG,OAAO,CAAC;QAClB,GAAG;YACD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;SACvD,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE;QAC7C,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC;KAClG;SAAM;QACL,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;YAC1B,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;gBACxD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClB;SACF;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAlBD,8CAkBC;AAED,SAAgB,mBAAmB,CAAC,WAAmB,EAAE,IAAY;IACnE,OAAO,MAAM,WAAW,IAAI,IAAI,EAAE,CAAC;AACrC,CAAC;AAFD,kDAEC;AACD,SAAgB,cAAc,CAAC,WAAmB,EAAE,IAAY;IAC9D,OAAO,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC;AAClC,CAAC;AAFD,wCAEC;AAED,SAAgB,aAAa,CAAC,WAAmB,EAAE,IAAY;IAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC5G,CAAC;AAFD,sCAEC"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type net from 'net';
|
|
3
|
+
import type WebSocket from 'ws';
|
|
4
|
+
import { EventEmitter } from '@opensumi/events';
|
|
5
|
+
import { IConnectionShape } from './connection/types';
|
|
6
|
+
import { ILogger } from './types';
|
|
1
7
|
export interface IWebSocket {
|
|
2
8
|
send(content: string): void;
|
|
3
9
|
close(...args: any[]): void;
|
|
@@ -5,56 +11,96 @@ export interface IWebSocket {
|
|
|
5
11
|
onError(cb: (reason: any) => void): void;
|
|
6
12
|
onClose(cb: (code: number, reason: string) => void): void;
|
|
7
13
|
}
|
|
8
|
-
|
|
9
|
-
|
|
14
|
+
/**
|
|
15
|
+
* `ping` and `pong` are used to detect whether the connection is alive.
|
|
16
|
+
*/
|
|
17
|
+
export interface PingMessage {
|
|
18
|
+
kind: 'ping';
|
|
19
|
+
id: string;
|
|
10
20
|
clientId: string;
|
|
11
21
|
}
|
|
12
|
-
|
|
13
|
-
|
|
22
|
+
/**
|
|
23
|
+
* when server receive a `ping` message, it should reply a `pong` message, vice versa.
|
|
24
|
+
*/
|
|
25
|
+
export interface PongMessage {
|
|
26
|
+
kind: 'pong';
|
|
27
|
+
id: string;
|
|
14
28
|
clientId: string;
|
|
15
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* `open` message is used to open a new channel.
|
|
32
|
+
* `path` is used to identify which handler should be used to handle the channel.
|
|
33
|
+
* `clientId` is used to identify the client.
|
|
34
|
+
*/
|
|
16
35
|
export interface OpenMessage {
|
|
17
36
|
kind: 'open';
|
|
18
|
-
id:
|
|
37
|
+
id: string;
|
|
19
38
|
path: string;
|
|
39
|
+
clientId: string;
|
|
20
40
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
41
|
+
/**
|
|
42
|
+
* when server receive a `open` message, it should reply a `server-ready` message.
|
|
43
|
+
* this is indicate that the channel is ready to use.
|
|
44
|
+
*/
|
|
45
|
+
export interface ServerReadyMessage {
|
|
46
|
+
kind: 'server-ready';
|
|
47
|
+
id: string;
|
|
24
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* `data` message indicate that the channel has received some data.
|
|
51
|
+
* the `content` field is the data, it should be a string.
|
|
52
|
+
*/
|
|
25
53
|
export interface DataMessage {
|
|
26
54
|
kind: 'data';
|
|
27
|
-
id:
|
|
55
|
+
id: string;
|
|
28
56
|
content: string;
|
|
29
57
|
}
|
|
30
58
|
export interface CloseMessage {
|
|
31
59
|
kind: 'close';
|
|
32
|
-
id:
|
|
60
|
+
id: string;
|
|
33
61
|
code: number;
|
|
34
62
|
reason: string;
|
|
35
63
|
}
|
|
36
|
-
export type ChannelMessage =
|
|
64
|
+
export type ChannelMessage = PingMessage | PongMessage | OpenMessage | ServerReadyMessage | DataMessage | CloseMessage;
|
|
65
|
+
export interface IWSChannelCreateOptions {
|
|
66
|
+
/**
|
|
67
|
+
* every channel's unique id, it only used in client to server architecture.
|
|
68
|
+
* server will store this id and use it to identify which channel should be used.
|
|
69
|
+
*/
|
|
70
|
+
id: string;
|
|
71
|
+
logger?: ILogger;
|
|
72
|
+
}
|
|
37
73
|
export declare class WSChannel implements IWebSocket {
|
|
38
|
-
|
|
74
|
+
connection: IConnectionShape<Uint8Array>;
|
|
75
|
+
protected emitter: EventEmitter<{
|
|
76
|
+
message: [data: string];
|
|
77
|
+
open: [id: string];
|
|
78
|
+
reopen: [];
|
|
79
|
+
close: [code?: number, reason?: string];
|
|
80
|
+
}>;
|
|
81
|
+
id: string;
|
|
82
|
+
LOG_TAG: string;
|
|
39
83
|
channelPath: string;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
onOpen(cb: (id: number) => void): void;
|
|
50
|
-
onReOpen(cb: () => void): void;
|
|
51
|
-
ready(): void;
|
|
84
|
+
logger: ILogger;
|
|
85
|
+
static forClient(connection: IConnectionShape<Uint8Array>, options: IWSChannelCreateOptions): WSChannel;
|
|
86
|
+
static forWebSocket(socket: WebSocket, options: IWSChannelCreateOptions): WSChannel;
|
|
87
|
+
static forNetSocket(socket: net.Socket, options: IWSChannelCreateOptions): WSChannel;
|
|
88
|
+
constructor(connection: IConnectionShape<Uint8Array>, options: IWSChannelCreateOptions);
|
|
89
|
+
onMessage(cb: (data: string) => any): () => void;
|
|
90
|
+
onOpen(cb: (id: string) => void): () => void;
|
|
91
|
+
onReopen(cb: () => void): () => void;
|
|
92
|
+
serverReady(): void;
|
|
52
93
|
handleMessage(msg: ChannelMessage): void;
|
|
53
|
-
open(path: string): void;
|
|
94
|
+
open(path: string, clientId: string): void;
|
|
54
95
|
send(content: string): void;
|
|
96
|
+
hasMessageListener(): boolean;
|
|
55
97
|
onError(): void;
|
|
56
|
-
close(code
|
|
57
|
-
|
|
98
|
+
close(code?: number, reason?: string): void;
|
|
99
|
+
fireReopen(): void;
|
|
100
|
+
onClose(cb: (code: number, reason: string) => void): () => void;
|
|
101
|
+
createMessageConnection(): import("@opensumi/vscode-jsonrpc").MessageConnection;
|
|
102
|
+
dispose(): void;
|
|
103
|
+
listen(channel: WSChannel): void;
|
|
58
104
|
}
|
|
59
105
|
export type MessageString = string & {
|
|
60
106
|
origin?: any;
|
|
@@ -71,4 +117,35 @@ export declare class ChildConnectPath {
|
|
|
71
117
|
clientId: string;
|
|
72
118
|
};
|
|
73
119
|
}
|
|
120
|
+
export declare const wsChannelProtocol: {
|
|
121
|
+
type: import("@furyjs/fury").InternalSerializerType.FURY_TYPE_TAG;
|
|
122
|
+
options: {
|
|
123
|
+
tag: string;
|
|
124
|
+
props: {
|
|
125
|
+
kind: {
|
|
126
|
+
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
127
|
+
};
|
|
128
|
+
clientId: {
|
|
129
|
+
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
130
|
+
};
|
|
131
|
+
id: {
|
|
132
|
+
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
133
|
+
};
|
|
134
|
+
path: {
|
|
135
|
+
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
136
|
+
};
|
|
137
|
+
content: {
|
|
138
|
+
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
139
|
+
};
|
|
140
|
+
code: {
|
|
141
|
+
type: import("@furyjs/fury").InternalSerializerType.UINT32;
|
|
142
|
+
};
|
|
143
|
+
reason: {
|
|
144
|
+
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
145
|
+
};
|
|
146
|
+
} | undefined;
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
export declare function stringify(obj: ChannelMessage): Uint8Array;
|
|
150
|
+
export declare function parse(input: Uint8Array): ChannelMessage;
|
|
74
151
|
//# sourceMappingURL=ws-channel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-channel.d.ts","sourceRoot":"","sources":["../../src/common/ws-channel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ws-channel.d.ts","sourceRoot":"","sources":["../../src/common/ws-channel.ts"],"names":[],"mappings":"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"}
|
package/lib/common/ws-channel.js
CHANGED
|
@@ -1,65 +1,115 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ChildConnectPath = exports.WSChannel = void 0;
|
|
4
|
-
const
|
|
3
|
+
exports.parse = exports.stringify = exports.wsChannelProtocol = exports.ChildConnectPath = exports.WSChannel = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const fury_1 = tslib_1.__importStar(require("@furyjs/fury"));
|
|
6
|
+
const events_1 = require("@opensumi/events");
|
|
7
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
8
|
+
const connection_1 = require("./connection");
|
|
9
|
+
const message_1 = require("./message");
|
|
5
10
|
class WSChannel {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
static forClient(connection, options) {
|
|
12
|
+
const disposable = new ide_core_common_1.DisposableCollection();
|
|
13
|
+
const channel = new WSChannel(connection, options);
|
|
14
|
+
disposable.push(connection.onMessage((data) => {
|
|
15
|
+
channel.handleMessage(parse(data));
|
|
16
|
+
}));
|
|
17
|
+
disposable.push(channel);
|
|
18
|
+
disposable.push(connection.onceClose(() => {
|
|
19
|
+
disposable.dispose();
|
|
20
|
+
}));
|
|
21
|
+
return channel;
|
|
22
|
+
}
|
|
23
|
+
static forWebSocket(socket, options) {
|
|
24
|
+
const wsConnection = new connection_1.WSWebSocketConnection(socket);
|
|
25
|
+
return WSChannel.forClient(wsConnection, options);
|
|
11
26
|
}
|
|
12
|
-
|
|
13
|
-
|
|
27
|
+
static forNetSocket(socket, options) {
|
|
28
|
+
const wsConnection = new connection_1.NetSocketConnection(socket);
|
|
29
|
+
return WSChannel.forClient(wsConnection, options);
|
|
30
|
+
}
|
|
31
|
+
constructor(connection, options) {
|
|
32
|
+
this.connection = connection;
|
|
33
|
+
this.emitter = new events_1.EventEmitter();
|
|
34
|
+
this.LOG_TAG = '[WSChannel]';
|
|
35
|
+
this.logger = console;
|
|
36
|
+
const { id, logger } = options;
|
|
37
|
+
this.id = id;
|
|
38
|
+
if (logger) {
|
|
39
|
+
this.logger = logger;
|
|
40
|
+
}
|
|
41
|
+
this.LOG_TAG = `[WSChannel] [id:${id}]`;
|
|
14
42
|
}
|
|
15
43
|
// server
|
|
16
44
|
onMessage(cb) {
|
|
17
|
-
this.
|
|
45
|
+
return this.emitter.on('message', cb);
|
|
18
46
|
}
|
|
19
47
|
onOpen(cb) {
|
|
20
|
-
this.
|
|
48
|
+
return this.emitter.on('open', cb);
|
|
21
49
|
}
|
|
22
|
-
|
|
23
|
-
this.
|
|
50
|
+
onReopen(cb) {
|
|
51
|
+
return this.emitter.on('reopen', cb);
|
|
24
52
|
}
|
|
25
|
-
|
|
26
|
-
this.
|
|
27
|
-
kind: 'ready',
|
|
53
|
+
serverReady() {
|
|
54
|
+
this.connection.send(stringify({
|
|
55
|
+
kind: 'server-ready',
|
|
28
56
|
id: this.id,
|
|
29
57
|
}));
|
|
30
58
|
}
|
|
31
59
|
handleMessage(msg) {
|
|
32
|
-
if (msg.kind === 'ready'
|
|
33
|
-
this.
|
|
60
|
+
if (msg.kind === 'server-ready') {
|
|
61
|
+
this.emitter.emit('open', msg.id);
|
|
34
62
|
}
|
|
35
|
-
else if (msg.kind === 'data'
|
|
36
|
-
this.
|
|
63
|
+
else if (msg.kind === 'data') {
|
|
64
|
+
this.emitter.emit('message', msg.content);
|
|
37
65
|
}
|
|
38
66
|
}
|
|
39
67
|
// client
|
|
40
|
-
open(path) {
|
|
68
|
+
open(path, clientId) {
|
|
41
69
|
this.channelPath = path;
|
|
42
|
-
this.
|
|
70
|
+
this.connection.send(stringify({
|
|
43
71
|
kind: 'open',
|
|
44
72
|
id: this.id,
|
|
45
73
|
path,
|
|
74
|
+
clientId,
|
|
46
75
|
}));
|
|
47
76
|
}
|
|
48
77
|
send(content) {
|
|
49
|
-
this.
|
|
78
|
+
this.connection.send(stringify({
|
|
50
79
|
kind: 'data',
|
|
51
80
|
id: this.id,
|
|
52
81
|
content,
|
|
53
82
|
}));
|
|
54
83
|
}
|
|
84
|
+
hasMessageListener() {
|
|
85
|
+
return this.emitter.hasListener('message');
|
|
86
|
+
}
|
|
55
87
|
onError() { }
|
|
56
88
|
close(code, reason) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
89
|
+
this.emitter.emit('close', code, reason);
|
|
90
|
+
}
|
|
91
|
+
fireReopen() {
|
|
92
|
+
this.emitter.emit('reopen');
|
|
60
93
|
}
|
|
61
94
|
onClose(cb) {
|
|
62
|
-
this.
|
|
95
|
+
return this.emitter.on('close', cb);
|
|
96
|
+
}
|
|
97
|
+
createMessageConnection() {
|
|
98
|
+
return (0, message_1.createWebSocketConnection)(this);
|
|
99
|
+
}
|
|
100
|
+
dispose() {
|
|
101
|
+
this.emitter.dispose();
|
|
102
|
+
}
|
|
103
|
+
listen(channel) {
|
|
104
|
+
channel.onMessage((data) => {
|
|
105
|
+
this.send(data);
|
|
106
|
+
});
|
|
107
|
+
channel.onClose((code, reason) => {
|
|
108
|
+
this.close(code, reason);
|
|
109
|
+
});
|
|
110
|
+
channel.onReopen(() => {
|
|
111
|
+
this.fireReopen();
|
|
112
|
+
});
|
|
63
113
|
}
|
|
64
114
|
}
|
|
65
115
|
exports.WSChannel = WSChannel;
|
|
@@ -83,4 +133,23 @@ class ChildConnectPath {
|
|
|
83
133
|
}
|
|
84
134
|
}
|
|
85
135
|
exports.ChildConnectPath = ChildConnectPath;
|
|
136
|
+
const fury = new fury_1.default({});
|
|
137
|
+
exports.wsChannelProtocol = fury_1.Type.object('ws-channel-protocol', {
|
|
138
|
+
kind: fury_1.Type.string(),
|
|
139
|
+
clientId: fury_1.Type.string(),
|
|
140
|
+
id: fury_1.Type.string(),
|
|
141
|
+
path: fury_1.Type.string(),
|
|
142
|
+
content: fury_1.Type.string(),
|
|
143
|
+
code: fury_1.Type.uint32(),
|
|
144
|
+
reason: fury_1.Type.string(),
|
|
145
|
+
});
|
|
146
|
+
const wsChannelProtocolSerializer = fury.registerSerializer(exports.wsChannelProtocol);
|
|
147
|
+
function stringify(obj) {
|
|
148
|
+
return wsChannelProtocolSerializer.serialize(obj);
|
|
149
|
+
}
|
|
150
|
+
exports.stringify = stringify;
|
|
151
|
+
function parse(input) {
|
|
152
|
+
return wsChannelProtocolSerializer.deserialize(input);
|
|
153
|
+
}
|
|
154
|
+
exports.parse = parse;
|
|
86
155
|
//# sourceMappingURL=ws-channel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-channel.js","sourceRoot":"","sources":["../../src/common/ws-channel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ws-channel.js","sourceRoot":"","sources":["../../src/common/ws-channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +1,38 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { MatchFunction } from 'path-to-regexp';
|
|
2
|
+
import WebSocket from 'ws';
|
|
3
|
+
import { ILogger } from '../common';
|
|
2
4
|
import { WebSocketHandler, CommonChannelHandlerOptions } from './ws';
|
|
3
|
-
export interface
|
|
5
|
+
export interface IPathHandler {
|
|
4
6
|
dispose: (connection: any, connectionId: string) => void;
|
|
5
|
-
handler: (connection: any, connectionId: string, params?:
|
|
7
|
+
handler: (connection: any, connectionId: string, params?: Record<string, string>) => void;
|
|
6
8
|
reconnect?: (connection: any, connectionId: string) => void;
|
|
7
9
|
connection?: any;
|
|
8
10
|
}
|
|
9
11
|
export declare class CommonChannelPathHandler {
|
|
10
12
|
private handlerMap;
|
|
11
13
|
private paramsKey;
|
|
12
|
-
register(channelPath: string, handler:
|
|
13
|
-
getParams(channelPath: string, value: string):
|
|
14
|
-
removeHandler(channelPath: string, handler:
|
|
15
|
-
get(channelPath: string):
|
|
16
|
-
disposeConnectionClientId(connection:
|
|
17
|
-
getAll():
|
|
14
|
+
register(channelPath: string, handler: IPathHandler): void;
|
|
15
|
+
getParams(channelPath: string, value: string): Record<string, string>;
|
|
16
|
+
removeHandler(channelPath: string, handler: IPathHandler): void;
|
|
17
|
+
get(channelPath: string): IPathHandler[] | undefined;
|
|
18
|
+
disposeConnectionClientId(connection: WebSocket, clientId: string): void;
|
|
19
|
+
getAll(): IPathHandler[][];
|
|
18
20
|
}
|
|
19
21
|
export declare const commonChannelPathHandler: CommonChannelPathHandler;
|
|
22
|
+
/**
|
|
23
|
+
* Channel Handler for nodejs
|
|
24
|
+
*/
|
|
20
25
|
export declare class CommonChannelHandler extends WebSocketHandler {
|
|
21
26
|
private logger;
|
|
22
27
|
private options;
|
|
23
|
-
static channelId: number;
|
|
24
28
|
handlerId: string;
|
|
25
29
|
private wsServer;
|
|
26
|
-
protected handlerRoute:
|
|
30
|
+
protected handlerRoute: MatchFunction;
|
|
27
31
|
private channelMap;
|
|
28
|
-
private connectionMap;
|
|
29
32
|
private heartbeatMap;
|
|
30
|
-
constructor(routePath: string, logger?:
|
|
31
|
-
private
|
|
33
|
+
constructor(routePath: string, logger?: ILogger, options?: CommonChannelHandlerOptions);
|
|
34
|
+
private heartbeat;
|
|
32
35
|
private initWSServer;
|
|
33
|
-
|
|
34
|
-
handleUpgrade(wsPathname: string, request: any, socket: any, head: any): boolean;
|
|
36
|
+
handleUpgrade(pathname: string, request: any, socket: any, head: any): boolean;
|
|
35
37
|
}
|
|
36
38
|
//# sourceMappingURL=common-channel-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-channel-handler.d.ts","sourceRoot":"","sources":["../../src/node/common-channel-handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"common-channel-handler.d.ts","sourceRoot":"","sources":["../../src/node/common-channel-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAS,MAAM,gBAAgB,CAAC;AACtD,OAAO,SAAS,MAAM,IAAI,CAAC;AAE3B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,MAAM,CAAC;AAErE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC1F,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,UAAU,CAA0C;IAC5D,OAAO,CAAC,SAAS,CAAkC;IAEnD,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;IAqBnD,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAUrE,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;IAcxD,GAAG,CAAC,WAAW,EAAE,MAAM;IAGvB,yBAAyB,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;IAOjE,MAAM;CAGP;AAED,eAAO,MAAM,wBAAwB,0BAAiC,CAAC;AAEvE;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,gBAAgB;IAOzB,OAAO,CAAC,MAAM;IAAqB,OAAO,CAAC,OAAO;IAN1E,SAAS,SAAoB;IACpC,OAAO,CAAC,QAAQ,CAAmB;IACnC,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC;IACtC,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,YAAY,CAA0C;gBAElD,SAAS,EAAE,MAAM,EAAU,MAAM,GAAE,OAAiB,EAAU,OAAO,GAAE,2BAAgC;IAMnH,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,YAAY;IAwFb,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO;CAgBtF"}
|