@opensumi/ide-connection 2.27.3-next-1706686746.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.map +1 -1
- package/lib/browser/ws-channel-handler.js +4 -0
- package/lib/browser/ws-channel-handler.js.map +1 -1
- package/lib/common/connection/drivers/base.d.ts +1 -0
- package/lib/common/connection/drivers/base.d.ts.map +1 -1
- package/lib/common/connection/drivers/base.js +4 -0
- package/lib/common/connection/drivers/base.js.map +1 -1
- package/lib/common/ext-rpc-protocol.d.ts.map +1 -1
- package/lib/common/ext-rpc-protocol.js +2 -3
- package/lib/common/ext-rpc-protocol.js.map +1 -1
- package/lib/common/proxy/base.d.ts +8 -16
- package/lib/common/proxy/base.d.ts.map +1 -1
- package/lib/common/proxy/base.js +21 -62
- package/lib/common/proxy/base.js.map +1 -1
- package/lib/common/proxy/legacy.d.ts +7 -3
- package/lib/common/proxy/legacy.d.ts.map +1 -1
- package/lib/common/proxy/legacy.js +135 -88
- package/lib/common/proxy/legacy.js.map +1 -1
- package/lib/common/rpc-service/center.d.ts +1 -5
- package/lib/common/rpc-service/center.d.ts.map +1 -1
- package/lib/common/rpc-service/center.js +16 -36
- package/lib/common/rpc-service/center.js.map +1 -1
- package/lib/common/rpc-service/stub.d.ts.map +1 -1
- package/lib/common/rpc-service/stub.js +5 -1
- package/lib/common/rpc-service/stub.js.map +1 -1
- package/lib/common/types.d.ts +1 -1
- package/lib/common/types.d.ts.map +1 -1
- package/lib/common/ws-channel.d.ts +18 -86
- package/lib/common/ws-channel.d.ts.map +1 -1
- package/lib/common/ws-channel.js +33 -80
- package/lib/common/ws-channel.js.map +1 -1
- package/package.json +4 -4
- package/src/browser/ws-channel-handler.ts +4 -0
- package/src/common/connection/drivers/base.ts +6 -0
- package/src/common/ext-rpc-protocol.ts +2 -4
- package/src/common/proxy/base.ts +28 -80
- package/src/common/proxy/legacy.ts +147 -97
- package/src/common/rpc-service/center.ts +16 -46
- package/src/common/rpc-service/stub.ts +5 -1
- package/src/common/types.ts +1 -1
- package/src/common/ws-channel.ts +35 -103
- package/lib/common/fury-extends/one-of.d.ts +0 -14
- package/lib/common/fury-extends/one-of.d.ts.map +0 -1
- package/lib/common/fury-extends/one-of.js +0 -53
- package/lib/common/fury-extends/one-of.js.map +0 -1
- package/lib/common/protocols/common-server.d.ts +0 -3
- package/lib/common/protocols/common-server.d.ts.map +0 -1
- package/lib/common/protocols/common-server.js +0 -18
- package/lib/common/protocols/common-server.js.map +0 -1
- package/lib/common/protocols/common.d.ts +0 -24
- package/lib/common/protocols/common.d.ts.map +0 -1
- package/lib/common/protocols/common.js +0 -12
- package/lib/common/protocols/common.js.map +0 -1
- package/lib/common/proxy/runner.d.ts +0 -20
- package/lib/common/proxy/runner.d.ts.map +0 -1
- package/lib/common/proxy/runner.js +0 -46
- package/lib/common/proxy/runner.js.map +0 -1
- package/lib/common/proxy/sumi.d.ts +0 -9
- package/lib/common/proxy/sumi.d.ts.map +0 -1
- package/lib/common/proxy/sumi.js +0 -86
- package/lib/common/proxy/sumi.js.map +0 -1
- package/lib/common/rpc/connection.d.ts +0 -29
- package/lib/common/rpc/connection.d.ts.map +0 -1
- package/lib/common/rpc/connection.js +0 -195
- package/lib/common/rpc/connection.js.map +0 -1
- package/lib/common/rpc/index.d.ts +0 -2
- package/lib/common/rpc/index.d.ts.map +0 -1
- package/lib/common/rpc/index.js +0 -5
- package/lib/common/rpc/index.js.map +0 -1
- package/lib/common/rpc/packet.d.ts +0 -49
- package/lib/common/rpc/packet.d.ts.map +0 -1
- package/lib/common/rpc/packet.js +0 -69
- package/lib/common/rpc/packet.js.map +0 -1
- package/lib/common/rpc/protocol-repository.d.ts +0 -32
- package/lib/common/rpc/protocol-repository.d.ts.map +0 -1
- package/lib/common/rpc/protocol-repository.js +0 -94
- package/lib/common/rpc/protocol-repository.js.map +0 -1
- package/lib/common/rpc/types.d.ts +0 -13
- package/lib/common/rpc/types.d.ts.map +0 -1
- package/lib/common/rpc/types.js +0 -3
- package/lib/common/rpc/types.js.map +0 -1
- package/src/common/fury-extends/one-of.ts +0 -63
- package/src/common/protocols/common-server.ts +0 -18
- package/src/common/protocols/common.ts +0 -9
- package/src/common/proxy/runner.ts +0 -58
- package/src/common/proxy/sumi.ts +0 -81
- package/src/common/rpc/connection.ts +0 -247
- package/src/common/rpc/index.ts +0 -1
- package/src/common/rpc/packet.ts +0 -85
- package/src/common/rpc/protocol-repository.ts +0 -148
- package/src/common/rpc/types.ts +0 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../../src/common/proxy/legacy.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../../src/common/proxy/legacy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { TSumiProtocol } from '../rpc';
|
|
2
1
|
import { IBench, ILogger, RPCServiceMethod, ServiceType } from '../types';
|
|
3
2
|
import { WSChannel } from '../ws-channel';
|
|
4
3
|
export declare class RPCServiceCenter {
|
|
@@ -6,19 +5,16 @@ export declare class RPCServiceCenter {
|
|
|
6
5
|
uid: string;
|
|
7
6
|
private invokers;
|
|
8
7
|
private connection;
|
|
9
|
-
private
|
|
10
|
-
private serviceRunner;
|
|
8
|
+
private serviceMethodMap;
|
|
11
9
|
private connectionDeferred;
|
|
12
10
|
private logger;
|
|
13
11
|
constructor(bench?: IBench | undefined, logger?: ILogger);
|
|
14
12
|
registerService(serviceName: string, type: ServiceType): void;
|
|
15
13
|
ready(): Promise<void>;
|
|
16
|
-
loadProtocol(protocol: TSumiProtocol): void;
|
|
17
14
|
setChannel(channel: WSChannel): {
|
|
18
15
|
dispose: () => void;
|
|
19
16
|
};
|
|
20
17
|
onRequest(serviceName: string, _name: string, method: RPCServiceMethod): void;
|
|
21
|
-
onRequestService(serviceName: string, service: any): void;
|
|
22
18
|
broadcast(serviceName: string, _name: string, ...args: any[]): Promise<any>;
|
|
23
19
|
}
|
|
24
20
|
//# sourceMappingURL=center.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"center.d.ts","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"center.d.ts","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAkB,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE1F,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAyB1C,qBAAa,gBAAgB;IAWf,OAAO,CAAC,KAAK,CAAC;IAVnB,GAAG,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,UAAU,CAAwB;IAE1C,OAAO,CAAC,gBAAgB,CAAsD;IAE9E,OAAO,CAAC,kBAAkB,CAAwB;IAClD,OAAO,CAAC,MAAM,CAAU;gBAEJ,KAAK,CAAC,oBAAQ,EAAE,MAAM,CAAC,EAAE,OAAO;IAKpD,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IAQ7D,KAAK;IAIL,UAAU,CAAC,OAAO,EAAE,SAAS;;;IA0B7B,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAWhE,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CA2BlF"}
|
|
@@ -4,32 +4,19 @@ exports.RPCServiceCenter = void 0;
|
|
|
4
4
|
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
5
5
|
const constants_1 = require("../constants");
|
|
6
6
|
const proxy_1 = require("../proxy");
|
|
7
|
-
const runner_1 = require("../proxy/runner");
|
|
8
|
-
const sumi_1 = require("../proxy/sumi");
|
|
9
|
-
const protocol_repository_1 = require("../rpc/protocol-repository");
|
|
10
7
|
const types_1 = require("../types");
|
|
11
8
|
const utils_1 = require("../utils");
|
|
12
9
|
const safeProcess = typeof process === 'undefined' ? { pid: 'mock' } : process;
|
|
13
10
|
const defaultReservedWordSet = new Set(['then']);
|
|
14
11
|
class Invoker {
|
|
15
|
-
constructor(repo) {
|
|
16
|
-
this.repo = repo;
|
|
17
|
-
}
|
|
18
12
|
setLegacyProxy(proxy) {
|
|
19
13
|
this.legacyProxy = proxy;
|
|
20
14
|
this.legacyInvokeProxy = proxy.getInvokeProxy();
|
|
21
15
|
}
|
|
22
|
-
setSumiProxy(proxy) {
|
|
23
|
-
this.sumiProxy = proxy;
|
|
24
|
-
this.sumiInvokeProxy = proxy.getInvokeProxy();
|
|
25
|
-
}
|
|
26
16
|
invoke(name, ...args) {
|
|
27
17
|
if (defaultReservedWordSet.has(name) || typeof name === 'symbol') {
|
|
28
18
|
return Promise.resolve();
|
|
29
19
|
}
|
|
30
|
-
if (this.repo.has(name)) {
|
|
31
|
-
return this.sumiInvokeProxy[name](...args);
|
|
32
|
-
}
|
|
33
20
|
return this.legacyInvokeProxy[name](...args);
|
|
34
21
|
}
|
|
35
22
|
}
|
|
@@ -38,8 +25,7 @@ class RPCServiceCenter {
|
|
|
38
25
|
this.bench = bench;
|
|
39
26
|
this.invokers = [];
|
|
40
27
|
this.connection = [];
|
|
41
|
-
this.
|
|
42
|
-
this.serviceRunner = new runner_1.ServiceRunner();
|
|
28
|
+
this.serviceMethodMap = { client: undefined };
|
|
43
29
|
this.connectionDeferred = new ide_core_common_1.Deferred();
|
|
44
30
|
this.uid = 'RPCServiceCenter:' + safeProcess.pid;
|
|
45
31
|
this.logger = logger || console;
|
|
@@ -54,26 +40,17 @@ class RPCServiceCenter {
|
|
|
54
40
|
ready() {
|
|
55
41
|
return this.connectionDeferred.promise;
|
|
56
42
|
}
|
|
57
|
-
loadProtocol(protocol) {
|
|
58
|
-
this.protocolRepository.loadProtocol(protocol, {
|
|
59
|
-
nameConverter: (name) => (0, utils_1.getMethodName)(protocol.name, name),
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
43
|
setChannel(channel) {
|
|
63
|
-
if (this.connection.length
|
|
44
|
+
if (!this.connection.length) {
|
|
64
45
|
this.connectionDeferred.resolve();
|
|
65
46
|
}
|
|
66
47
|
this.connection.push(channel);
|
|
67
48
|
const index = this.connection.length - 1;
|
|
68
|
-
const
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const connection = channel.createConnection(this.protocolRepository);
|
|
74
|
-
sumi.listen(connection);
|
|
75
|
-
invoker.setLegacyProxy(legacy);
|
|
76
|
-
invoker.setSumiProxy(sumi);
|
|
49
|
+
const rpcProxy = new proxy_1.ProxyLegacy(this.serviceMethodMap, this.logger);
|
|
50
|
+
const connection = channel.createMessageConnection();
|
|
51
|
+
rpcProxy.listen(connection);
|
|
52
|
+
const invoker = new Invoker();
|
|
53
|
+
invoker.setLegacyProxy(rpcProxy);
|
|
77
54
|
this.invokers.push(invoker);
|
|
78
55
|
return {
|
|
79
56
|
dispose: () => {
|
|
@@ -84,12 +61,15 @@ class RPCServiceCenter {
|
|
|
84
61
|
};
|
|
85
62
|
}
|
|
86
63
|
onRequest(serviceName, _name, method) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
64
|
+
const name = (0, utils_1.getMethodName)(serviceName, _name);
|
|
65
|
+
if (!this.connection.length) {
|
|
66
|
+
this.serviceMethodMap[name] = method;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
this.invokers.forEach((proxy) => {
|
|
70
|
+
proxy.legacyProxy.listenService({ [name]: method });
|
|
71
|
+
});
|
|
72
|
+
}
|
|
93
73
|
}
|
|
94
74
|
async broadcast(serviceName, _name, ...args) {
|
|
95
75
|
const name = (0, utils_1.getMethodName)(serviceName, _name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"center.js","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":";;;AAAA,+DAAqD;AAErD,4CAAqD;AACrD,oCAAuC;AACvC,
|
|
1
|
+
{"version":3,"file":"center.js","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../../src/common/rpc-service/stub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../../src/common/rpc-service/stub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,qBAAa,cAAc;IACb,OAAO,CAAC,WAAW;IAAU,OAAO,CAAC,MAAM;IAAoB,OAAO,CAAC,IAAI;gBAAnE,WAAW,EAAE,MAAM,EAAU,MAAM,EAAE,gBAAgB,EAAU,IAAI,EAAE,WAAW;IAI9F,KAAK;IAIX,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAIzC,gBAAgB,CAAC,OAAO,EAAE,GAAG;IAO7B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAIhD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAIrD,QAAQ,gEAcH;CACN"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RPCServiceStub = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
4
5
|
class RPCServiceStub {
|
|
5
6
|
constructor(serviceName, center, type) {
|
|
6
7
|
this.serviceName = serviceName;
|
|
@@ -31,7 +32,10 @@ class RPCServiceStub {
|
|
|
31
32
|
this.onRequest(name, method);
|
|
32
33
|
}
|
|
33
34
|
onRequestService(service) {
|
|
34
|
-
|
|
35
|
+
const methods = (0, utils_1.getServiceMethods)(service);
|
|
36
|
+
for (const method of methods) {
|
|
37
|
+
this.onRequest(method, service[method].bind(service));
|
|
38
|
+
}
|
|
35
39
|
}
|
|
36
40
|
onRequest(name, method) {
|
|
37
41
|
this.center.onRequest(this.serviceName, name, method);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stub.js","sourceRoot":"","sources":["../../../src/common/rpc-service/stub.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"stub.js","sourceRoot":"","sources":["../../../src/common/rpc-service/stub.ts"],"names":[],"mappings":";;;AACA,oCAA6C;AAI7C,MAAa,cAAc;IACzB,YAAoB,WAAmB,EAAU,MAAwB,EAAU,IAAiB;QAAhF,gBAAW,GAAX,WAAW,CAAQ;QAAU,WAAM,GAAN,MAAM,CAAkB;QAAU,SAAI,GAAJ,IAAI,CAAa;QA2BpG,aAAQ,GAAG,GAAM,EAAE,CACjB,IAAI,KAAK,CAAuD,IAAW,EAAE;YAC3E,MAAM;YACN,GAAG,EAAE,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBACjB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;wBAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;qBAC1B;yBAAM;wBACL,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;qBACnF;iBACF;qBAAM;oBACL,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;iBACrB;YACH,CAAC;SACF,CAAC,CAAC;QAxCH,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,EAAE,CAAC,IAAY,EAAE,MAAwB;QACvC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,gBAAgB,CAAC,OAAY;QAC3B,MAAM,OAAO,GAAG,IAAA,yBAAiB,EAAC,OAAO,CAAC,CAAC;QAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;SACvD;IACH,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,MAAwB;QAC9C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,GAAG,IAAW;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAChE,CAAC;CAiBF;AA3CD,wCA2CC"}
|
package/lib/common/types.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export interface ILogger {
|
|
|
4
4
|
error(...args: any[]): void;
|
|
5
5
|
}
|
|
6
6
|
export type RPCServiceMethod = (...args: any[]) => any;
|
|
7
|
-
export type IRPCServiceMap = Record<
|
|
7
|
+
export type IRPCServiceMap = Record<string, RPCServiceMethod>;
|
|
8
8
|
export declare enum ServiceType {
|
|
9
9
|
Service = 0,
|
|
10
10
|
Stub = 1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AACvD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AACvD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE9D,oBAAY,WAAW;IACrB,OAAO,IAAA;IACP,IAAI,IAAA;CACL;AAED,MAAM,WAAW,MAAM;IACrB,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C"}
|
|
@@ -3,8 +3,6 @@ import type net from 'net';
|
|
|
3
3
|
import type WebSocket from 'ws';
|
|
4
4
|
import { EventEmitter } from '@opensumi/events';
|
|
5
5
|
import { IConnectionShape } from './connection/types';
|
|
6
|
-
import { Connection } from './rpc/connection';
|
|
7
|
-
import type { ProtocolRepository } from './rpc/protocol-repository';
|
|
8
6
|
import { ILogger } from './types';
|
|
9
7
|
export interface IWebSocket {
|
|
10
8
|
send(content: string): void;
|
|
@@ -57,18 +55,13 @@ export interface DataMessage {
|
|
|
57
55
|
id: string;
|
|
58
56
|
content: string;
|
|
59
57
|
}
|
|
60
|
-
export interface BinaryMessage {
|
|
61
|
-
kind: 'binary';
|
|
62
|
-
id: string;
|
|
63
|
-
binary: Uint8Array;
|
|
64
|
-
}
|
|
65
58
|
export interface CloseMessage {
|
|
66
59
|
kind: 'close';
|
|
67
60
|
id: string;
|
|
68
61
|
code: number;
|
|
69
62
|
reason: string;
|
|
70
63
|
}
|
|
71
|
-
export type ChannelMessage = PingMessage | PongMessage | OpenMessage | ServerReadyMessage | DataMessage |
|
|
64
|
+
export type ChannelMessage = PingMessage | PongMessage | OpenMessage | ServerReadyMessage | DataMessage | CloseMessage;
|
|
72
65
|
export interface IWSChannelCreateOptions {
|
|
73
66
|
/**
|
|
74
67
|
* every channel's unique id, it only used in client to server architecture.
|
|
@@ -84,7 +77,6 @@ export declare class WSChannel implements IWebSocket {
|
|
|
84
77
|
open: [id: string];
|
|
85
78
|
reopen: [];
|
|
86
79
|
close: [code?: number, reason?: string];
|
|
87
|
-
binary: [data: Uint8Array];
|
|
88
80
|
}>;
|
|
89
81
|
id: string;
|
|
90
82
|
LOG_TAG: string;
|
|
@@ -95,57 +87,44 @@ export declare class WSChannel implements IWebSocket {
|
|
|
95
87
|
static forNetSocket(socket: net.Socket, options: IWSChannelCreateOptions): WSChannel;
|
|
96
88
|
constructor(connection: IConnectionShape<Uint8Array>, options: IWSChannelCreateOptions);
|
|
97
89
|
onMessage(cb: (data: string) => any): () => void;
|
|
98
|
-
onBinary(cb: (data: Uint8Array) => any): () => void;
|
|
99
90
|
onOpen(cb: (id: string) => void): () => void;
|
|
100
91
|
onReopen(cb: () => void): () => void;
|
|
101
92
|
serverReady(): void;
|
|
102
93
|
handleMessage(msg: ChannelMessage): void;
|
|
103
94
|
open(path: string, clientId: string): void;
|
|
104
95
|
send(content: string): void;
|
|
105
|
-
|
|
96
|
+
hasMessageListener(): boolean;
|
|
106
97
|
onError(): void;
|
|
107
98
|
close(code?: number, reason?: string): void;
|
|
108
99
|
fireReopen(): void;
|
|
109
100
|
onClose(cb: (code: number, reason: string) => void): () => void;
|
|
110
|
-
onceClose(cb: (code: number, reason: string) => void): () => void;
|
|
111
101
|
createMessageConnection(): import("@opensumi/vscode-jsonrpc").MessageConnection;
|
|
112
|
-
createConnection(protocolRepository: ProtocolRepository): Connection;
|
|
113
102
|
dispose(): void;
|
|
114
103
|
listen(channel: WSChannel): void;
|
|
115
104
|
}
|
|
116
|
-
export
|
|
117
|
-
|
|
118
|
-
options: {
|
|
119
|
-
tag: string;
|
|
120
|
-
props: {
|
|
121
|
-
clientId: {
|
|
122
|
-
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
123
|
-
};
|
|
124
|
-
id: {
|
|
125
|
-
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
126
|
-
};
|
|
127
|
-
} | undefined;
|
|
128
|
-
};
|
|
105
|
+
export type MessageString = string & {
|
|
106
|
+
origin?: any;
|
|
129
107
|
};
|
|
130
|
-
|
|
108
|
+
/**
|
|
109
|
+
* 路径信息 ${pre}-${index}
|
|
110
|
+
*/
|
|
111
|
+
export declare class ChildConnectPath {
|
|
112
|
+
pathPre: string;
|
|
113
|
+
getConnectPath(index: number, clientId: string): string;
|
|
114
|
+
parseInfo(pathString: string): {
|
|
115
|
+
pre: string;
|
|
116
|
+
index: string;
|
|
117
|
+
clientId: string;
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
export declare const wsChannelProtocol: {
|
|
131
121
|
type: import("@furyjs/fury").InternalSerializerType.FURY_TYPE_TAG;
|
|
132
122
|
options: {
|
|
133
123
|
tag: string;
|
|
134
124
|
props: {
|
|
135
|
-
|
|
125
|
+
kind: {
|
|
136
126
|
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
137
127
|
};
|
|
138
|
-
id: {
|
|
139
|
-
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
140
|
-
};
|
|
141
|
-
} | undefined;
|
|
142
|
-
};
|
|
143
|
-
};
|
|
144
|
-
export declare const OpenProtocol: {
|
|
145
|
-
type: import("@furyjs/fury").InternalSerializerType.FURY_TYPE_TAG;
|
|
146
|
-
options: {
|
|
147
|
-
tag: string;
|
|
148
|
-
props: {
|
|
149
128
|
clientId: {
|
|
150
129
|
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
151
130
|
};
|
|
@@ -155,56 +134,9 @@ export declare const OpenProtocol: {
|
|
|
155
134
|
path: {
|
|
156
135
|
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
157
136
|
};
|
|
158
|
-
} | undefined;
|
|
159
|
-
};
|
|
160
|
-
};
|
|
161
|
-
export declare const ServerReadyProtocol: {
|
|
162
|
-
type: import("@furyjs/fury").InternalSerializerType.FURY_TYPE_TAG;
|
|
163
|
-
options: {
|
|
164
|
-
tag: string;
|
|
165
|
-
props: {
|
|
166
|
-
id: {
|
|
167
|
-
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
168
|
-
};
|
|
169
|
-
} | undefined;
|
|
170
|
-
};
|
|
171
|
-
};
|
|
172
|
-
export declare const DataProtocol: {
|
|
173
|
-
type: import("@furyjs/fury").InternalSerializerType.FURY_TYPE_TAG;
|
|
174
|
-
options: {
|
|
175
|
-
tag: string;
|
|
176
|
-
props: {
|
|
177
|
-
id: {
|
|
178
|
-
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
179
|
-
};
|
|
180
137
|
content: {
|
|
181
138
|
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
182
139
|
};
|
|
183
|
-
} | undefined;
|
|
184
|
-
};
|
|
185
|
-
};
|
|
186
|
-
export declare const BinaryProtocol: {
|
|
187
|
-
type: import("@furyjs/fury").InternalSerializerType.FURY_TYPE_TAG;
|
|
188
|
-
options: {
|
|
189
|
-
tag: string;
|
|
190
|
-
props: {
|
|
191
|
-
id: {
|
|
192
|
-
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
193
|
-
};
|
|
194
|
-
binary: {
|
|
195
|
-
type: import("@furyjs/fury").InternalSerializerType.BINARY;
|
|
196
|
-
};
|
|
197
|
-
} | undefined;
|
|
198
|
-
};
|
|
199
|
-
};
|
|
200
|
-
export declare const CloseProtocol: {
|
|
201
|
-
type: import("@furyjs/fury").InternalSerializerType.FURY_TYPE_TAG;
|
|
202
|
-
options: {
|
|
203
|
-
tag: string;
|
|
204
|
-
props: {
|
|
205
|
-
id: {
|
|
206
|
-
type: import("@furyjs/fury").InternalSerializerType.STRING;
|
|
207
|
-
};
|
|
208
140
|
code: {
|
|
209
141
|
type: import("@furyjs/fury").InternalSerializerType.UINT32;
|
|
210
142
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-channel.d.ts","sourceRoot":"","sources":["../../src/common/ws-channel.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAG3B,OAAO,KAAK,SAAS,MAAM,IAAI,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
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,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parse = exports.stringify = exports.
|
|
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"));
|
|
5
6
|
const events_1 = require("@opensumi/events");
|
|
6
7
|
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
7
8
|
const connection_1 = require("./connection");
|
|
8
|
-
const one_of_1 = require("./fury-extends/one-of");
|
|
9
9
|
const message_1 = require("./message");
|
|
10
|
-
const connection_2 = require("./rpc/connection");
|
|
11
10
|
class WSChannel {
|
|
12
11
|
static forClient(connection, options) {
|
|
13
12
|
const disposable = new ide_core_common_1.DisposableCollection();
|
|
@@ -41,12 +40,10 @@ class WSChannel {
|
|
|
41
40
|
}
|
|
42
41
|
this.LOG_TAG = `[WSChannel] [id:${id}]`;
|
|
43
42
|
}
|
|
43
|
+
// server
|
|
44
44
|
onMessage(cb) {
|
|
45
45
|
return this.emitter.on('message', cb);
|
|
46
46
|
}
|
|
47
|
-
onBinary(cb) {
|
|
48
|
-
return this.emitter.on('binary', cb);
|
|
49
|
-
}
|
|
50
47
|
onOpen(cb) {
|
|
51
48
|
return this.emitter.on('open', cb);
|
|
52
49
|
}
|
|
@@ -66,10 +63,8 @@ class WSChannel {
|
|
|
66
63
|
else if (msg.kind === 'data') {
|
|
67
64
|
this.emitter.emit('message', msg.content);
|
|
68
65
|
}
|
|
69
|
-
else if (msg.kind === 'binary') {
|
|
70
|
-
this.emitter.emit('binary', msg.binary);
|
|
71
|
-
}
|
|
72
66
|
}
|
|
67
|
+
// client
|
|
73
68
|
open(path, clientId) {
|
|
74
69
|
this.channelPath = path;
|
|
75
70
|
this.connection.send(stringify({
|
|
@@ -86,12 +81,8 @@ class WSChannel {
|
|
|
86
81
|
content,
|
|
87
82
|
}));
|
|
88
83
|
}
|
|
89
|
-
|
|
90
|
-
this.
|
|
91
|
-
kind: 'binary',
|
|
92
|
-
id: this.id,
|
|
93
|
-
binary: data,
|
|
94
|
-
}));
|
|
84
|
+
hasMessageListener() {
|
|
85
|
+
return this.emitter.hasListener('message');
|
|
95
86
|
}
|
|
96
87
|
onError() { }
|
|
97
88
|
close(code, reason) {
|
|
@@ -103,37 +94,9 @@ class WSChannel {
|
|
|
103
94
|
onClose(cb) {
|
|
104
95
|
return this.emitter.on('close', cb);
|
|
105
96
|
}
|
|
106
|
-
onceClose(cb) {
|
|
107
|
-
return this.emitter.once('close', cb);
|
|
108
|
-
}
|
|
109
97
|
createMessageConnection() {
|
|
110
98
|
return (0, message_1.createWebSocketConnection)(this);
|
|
111
99
|
}
|
|
112
|
-
createConnection(protocolRepository) {
|
|
113
|
-
const conn = new connection_2.Connection({
|
|
114
|
-
onceClose: (cb) => {
|
|
115
|
-
const toRemove = this.onceClose(cb);
|
|
116
|
-
return {
|
|
117
|
-
dispose() {
|
|
118
|
-
toRemove();
|
|
119
|
-
},
|
|
120
|
-
};
|
|
121
|
-
},
|
|
122
|
-
onMessage: (cb) => {
|
|
123
|
-
const remove = this.onBinary(cb);
|
|
124
|
-
return {
|
|
125
|
-
dispose: () => {
|
|
126
|
-
remove();
|
|
127
|
-
},
|
|
128
|
-
};
|
|
129
|
-
},
|
|
130
|
-
send: (data) => {
|
|
131
|
-
this.sendBinary(data);
|
|
132
|
-
},
|
|
133
|
-
});
|
|
134
|
-
conn.setProtocolRepository(protocolRepository);
|
|
135
|
-
return conn;
|
|
136
|
-
}
|
|
137
100
|
dispose() {
|
|
138
101
|
this.emitter.dispose();
|
|
139
102
|
}
|
|
@@ -141,9 +104,6 @@ class WSChannel {
|
|
|
141
104
|
channel.onMessage((data) => {
|
|
142
105
|
this.send(data);
|
|
143
106
|
});
|
|
144
|
-
channel.onBinary((binary) => {
|
|
145
|
-
this.sendBinary(binary);
|
|
146
|
-
});
|
|
147
107
|
channel.onClose((code, reason) => {
|
|
148
108
|
this.close(code, reason);
|
|
149
109
|
});
|
|
@@ -153,50 +113,43 @@ class WSChannel {
|
|
|
153
113
|
}
|
|
154
114
|
}
|
|
155
115
|
exports.WSChannel = WSChannel;
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
116
|
+
/**
|
|
117
|
+
* 路径信息 ${pre}-${index}
|
|
118
|
+
*/
|
|
119
|
+
class ChildConnectPath {
|
|
120
|
+
constructor() {
|
|
121
|
+
this.pathPre = 'child_connect-';
|
|
122
|
+
}
|
|
123
|
+
getConnectPath(index, clientId) {
|
|
124
|
+
return `${this.pathPre}${index + 1}`;
|
|
125
|
+
}
|
|
126
|
+
parseInfo(pathString) {
|
|
127
|
+
const list = pathString.split('-');
|
|
128
|
+
return {
|
|
129
|
+
pre: list[0],
|
|
130
|
+
index: list[1],
|
|
131
|
+
clientId: list[2],
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
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(),
|
|
165
139
|
clientId: fury_1.Type.string(),
|
|
166
140
|
id: fury_1.Type.string(),
|
|
167
141
|
path: fury_1.Type.string(),
|
|
168
|
-
});
|
|
169
|
-
exports.ServerReadyProtocol = fury_1.Type.object('server-ready', {
|
|
170
|
-
id: fury_1.Type.string(),
|
|
171
|
-
});
|
|
172
|
-
exports.DataProtocol = fury_1.Type.object('data', {
|
|
173
|
-
id: fury_1.Type.string(),
|
|
174
142
|
content: fury_1.Type.string(),
|
|
175
|
-
});
|
|
176
|
-
exports.BinaryProtocol = fury_1.Type.object('binary', {
|
|
177
|
-
id: fury_1.Type.string(),
|
|
178
|
-
binary: fury_1.Type.binary(),
|
|
179
|
-
});
|
|
180
|
-
exports.CloseProtocol = fury_1.Type.object('close', {
|
|
181
|
-
id: fury_1.Type.string(),
|
|
182
143
|
code: fury_1.Type.uint32(),
|
|
183
144
|
reason: fury_1.Type.string(),
|
|
184
145
|
});
|
|
185
|
-
const
|
|
186
|
-
exports.PingProtocol,
|
|
187
|
-
exports.PongProtocol,
|
|
188
|
-
exports.OpenProtocol,
|
|
189
|
-
exports.ServerReadyProtocol,
|
|
190
|
-
exports.DataProtocol,
|
|
191
|
-
exports.BinaryProtocol,
|
|
192
|
-
exports.CloseProtocol,
|
|
193
|
-
]);
|
|
146
|
+
const wsChannelProtocolSerializer = fury.registerSerializer(exports.wsChannelProtocol);
|
|
194
147
|
function stringify(obj) {
|
|
195
|
-
return
|
|
148
|
+
return wsChannelProtocolSerializer.serialize(obj);
|
|
196
149
|
}
|
|
197
150
|
exports.stringify = stringify;
|
|
198
151
|
function parse(input) {
|
|
199
|
-
return
|
|
152
|
+
return wsChannelProtocolSerializer.deserialize(input);
|
|
200
153
|
}
|
|
201
154
|
exports.parse = parse;
|
|
202
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":";;;;AAEA,6DAA0C;AAG1C,6CAAgD;AAChD,+DAAiE;AAEjE,6CAA0E;AAE1E,uCAAsD;AA8EtD,MAAa,SAAS;IAepB,MAAM,CAAC,SAAS,CAAC,UAAwC,EAAE,OAAgC;QACzF,MAAM,UAAU,GAAG,IAAI,sCAAoB,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEnD,UAAU,CAAC,IAAI,CACb,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CACH,CAAC;QACF,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzB,UAAU,CAAC,IAAI,CACb,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE;YACxB,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,MAAiB,EAAE,OAAgC;QACrE,MAAM,YAAY,GAAG,IAAI,kCAAqB,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,MAAkB,EAAE,OAAgC;QACtE,MAAM,YAAY,GAAG,IAAI,gCAAmB,CAAC,MAAM,CAAC,CAAC;QACrD,OAAO,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,YAAmB,UAAwC,EAAE,OAAgC;QAA1E,eAAU,GAAV,UAAU,CAA8B;QA5CjD,YAAO,GAAG,IAAI,qBAAY,EAKhC,CAAC;QAGE,YAAO,GAAG,aAAa,CAAC;QAI/B,WAAM,GAAY,OAAO,CAAC;QAiCxB,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC/B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAEb,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACtB;QAED,IAAI,CAAC,OAAO,GAAG,mBAAmB,EAAE,GAAG,CAAC;IAC1C,CAAC;IAED,SAAS;IACT,SAAS,CAAC,EAAyB;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,CAAC,EAAwB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,QAAQ,CAAC,EAAc;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,SAAS,CAAC;YACR,IAAI,EAAE,cAAc;YACpB,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAC,CACH,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,GAAmB;QAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE;YAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;SACnC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;YAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;SAC3C;IACH,CAAC;IAED,SAAS;IACT,IAAI,CAAC,IAAY,EAAE,QAAgB;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,SAAS,CAAC;YACR,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI;YACJ,QAAQ;SACT,CAAC,CACH,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAe;QAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,SAAS,CAAC;YACR,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO;SACR,CAAC,CACH,CAAC;IACJ,CAAC;IACD,kBAAkB;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,KAAI,CAAC;IACZ,KAAK,CAAC,IAAa,EAAE,MAAe;QAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,UAAU;QACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,EAA0C;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,uBAAuB;QACrB,OAAO,IAAA,mCAAyB,EAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,OAAkB;QACvB,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAvID,8BAuIC;AAMD;;GAEG;AACH,MAAa,gBAAgB;IAA7B;QACS,YAAO,GAAG,gBAAgB,CAAC;IAepC,CAAC;IAbC,cAAc,CAAC,KAAa,EAAE,QAAgB;QAC5C,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;IACvC,CAAC;IAED,SAAS,CAAC,UAAkB;QAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEnC,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;YACZ,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YACd,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;SAClB,CAAC;IACJ,CAAC;CACF;AAhBD,4CAgBC;AAED,MAAM,IAAI,GAAG,IAAI,cAAI,CAAC,EAAE,CAAC,CAAC;AAEb,QAAA,iBAAiB,GAAG,WAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE;IAClE,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,WAAI,CAAC,MAAM,EAAE;IACvB,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,WAAI,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC,yBAAiB,CAAC,CAAC;AAE/E,SAAgB,SAAS,CAAC,GAAmB;IAC3C,OAAO,2BAA2B,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC;AAFD,8BAEC;AAED,SAAgB,KAAK,CAAC,KAAiB;IACrC,OAAO,2BAA2B,CAAC,WAAW,CAAC,KAAK,CAAQ,CAAC;AAC/D,CAAC;AAFD,sBAEC"}
|