@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.
Files changed (91) hide show
  1. package/lib/browser/ws-channel-handler.d.ts.map +1 -1
  2. package/lib/browser/ws-channel-handler.js +4 -0
  3. package/lib/browser/ws-channel-handler.js.map +1 -1
  4. package/lib/common/connection/drivers/base.d.ts +1 -0
  5. package/lib/common/connection/drivers/base.d.ts.map +1 -1
  6. package/lib/common/connection/drivers/base.js +4 -0
  7. package/lib/common/connection/drivers/base.js.map +1 -1
  8. package/lib/common/ext-rpc-protocol.d.ts.map +1 -1
  9. package/lib/common/ext-rpc-protocol.js +2 -3
  10. package/lib/common/ext-rpc-protocol.js.map +1 -1
  11. package/lib/common/proxy/base.d.ts +8 -16
  12. package/lib/common/proxy/base.d.ts.map +1 -1
  13. package/lib/common/proxy/base.js +21 -62
  14. package/lib/common/proxy/base.js.map +1 -1
  15. package/lib/common/proxy/legacy.d.ts +7 -3
  16. package/lib/common/proxy/legacy.d.ts.map +1 -1
  17. package/lib/common/proxy/legacy.js +135 -88
  18. package/lib/common/proxy/legacy.js.map +1 -1
  19. package/lib/common/rpc-service/center.d.ts +1 -5
  20. package/lib/common/rpc-service/center.d.ts.map +1 -1
  21. package/lib/common/rpc-service/center.js +16 -36
  22. package/lib/common/rpc-service/center.js.map +1 -1
  23. package/lib/common/rpc-service/stub.d.ts.map +1 -1
  24. package/lib/common/rpc-service/stub.js +5 -1
  25. package/lib/common/rpc-service/stub.js.map +1 -1
  26. package/lib/common/types.d.ts +1 -1
  27. package/lib/common/types.d.ts.map +1 -1
  28. package/lib/common/ws-channel.d.ts +18 -86
  29. package/lib/common/ws-channel.d.ts.map +1 -1
  30. package/lib/common/ws-channel.js +33 -80
  31. package/lib/common/ws-channel.js.map +1 -1
  32. package/package.json +4 -4
  33. package/src/browser/ws-channel-handler.ts +4 -0
  34. package/src/common/connection/drivers/base.ts +6 -0
  35. package/src/common/ext-rpc-protocol.ts +2 -4
  36. package/src/common/proxy/base.ts +28 -80
  37. package/src/common/proxy/legacy.ts +147 -97
  38. package/src/common/rpc-service/center.ts +16 -46
  39. package/src/common/rpc-service/stub.ts +5 -1
  40. package/src/common/types.ts +1 -1
  41. package/src/common/ws-channel.ts +35 -103
  42. package/lib/common/fury-extends/one-of.d.ts +0 -14
  43. package/lib/common/fury-extends/one-of.d.ts.map +0 -1
  44. package/lib/common/fury-extends/one-of.js +0 -53
  45. package/lib/common/fury-extends/one-of.js.map +0 -1
  46. package/lib/common/protocols/common-server.d.ts +0 -3
  47. package/lib/common/protocols/common-server.d.ts.map +0 -1
  48. package/lib/common/protocols/common-server.js +0 -18
  49. package/lib/common/protocols/common-server.js.map +0 -1
  50. package/lib/common/protocols/common.d.ts +0 -24
  51. package/lib/common/protocols/common.d.ts.map +0 -1
  52. package/lib/common/protocols/common.js +0 -12
  53. package/lib/common/protocols/common.js.map +0 -1
  54. package/lib/common/proxy/runner.d.ts +0 -20
  55. package/lib/common/proxy/runner.d.ts.map +0 -1
  56. package/lib/common/proxy/runner.js +0 -46
  57. package/lib/common/proxy/runner.js.map +0 -1
  58. package/lib/common/proxy/sumi.d.ts +0 -9
  59. package/lib/common/proxy/sumi.d.ts.map +0 -1
  60. package/lib/common/proxy/sumi.js +0 -86
  61. package/lib/common/proxy/sumi.js.map +0 -1
  62. package/lib/common/rpc/connection.d.ts +0 -29
  63. package/lib/common/rpc/connection.d.ts.map +0 -1
  64. package/lib/common/rpc/connection.js +0 -195
  65. package/lib/common/rpc/connection.js.map +0 -1
  66. package/lib/common/rpc/index.d.ts +0 -2
  67. package/lib/common/rpc/index.d.ts.map +0 -1
  68. package/lib/common/rpc/index.js +0 -5
  69. package/lib/common/rpc/index.js.map +0 -1
  70. package/lib/common/rpc/packet.d.ts +0 -49
  71. package/lib/common/rpc/packet.d.ts.map +0 -1
  72. package/lib/common/rpc/packet.js +0 -69
  73. package/lib/common/rpc/packet.js.map +0 -1
  74. package/lib/common/rpc/protocol-repository.d.ts +0 -32
  75. package/lib/common/rpc/protocol-repository.d.ts.map +0 -1
  76. package/lib/common/rpc/protocol-repository.js +0 -94
  77. package/lib/common/rpc/protocol-repository.js.map +0 -1
  78. package/lib/common/rpc/types.d.ts +0 -13
  79. package/lib/common/rpc/types.d.ts.map +0 -1
  80. package/lib/common/rpc/types.js +0 -3
  81. package/lib/common/rpc/types.js.map +0 -1
  82. package/src/common/fury-extends/one-of.ts +0 -63
  83. package/src/common/protocols/common-server.ts +0 -18
  84. package/src/common/protocols/common.ts +0 -9
  85. package/src/common/proxy/runner.ts +0 -58
  86. package/src/common/proxy/sumi.ts +0 -81
  87. package/src/common/rpc/connection.ts +0 -247
  88. package/src/common/rpc/index.ts +0 -1
  89. package/src/common/rpc/packet.ts +0 -85
  90. package/src/common/rpc/protocol-repository.ts +0 -148
  91. package/src/common/rpc/types.ts +0 -23
@@ -1,195 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MethodProtocolNotFoundError = exports.Connection = void 0;
4
- const events_1 = require("@opensumi/events");
5
- const ide_utils_1 = require("@opensumi/ide-utils");
6
- const constants_1 = require("../constants");
7
- const packet_1 = require("./packet");
8
- function isPromise(obj) {
9
- return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
10
- }
11
- const assert = (condition, message) => {
12
- if (!condition) {
13
- throw new Error(message);
14
- }
15
- };
16
- const innerEvents = {
17
- onRequestNotFound: '##onRequestNotFound',
18
- onNotificationNotFound: '##onNotificationNotFound',
19
- };
20
- class Connection {
21
- constructor(socket) {
22
- this.socket = socket;
23
- this.disposable = new ide_utils_1.DisposableCollection();
24
- this._binaryEmitter = new events_1.EventEmitter();
25
- this._notificationEmitter = new events_1.EventEmitter();
26
- this._innerEventEmitter = new events_1.EventEmitter();
27
- this._requestId = 0;
28
- this._callbacks = new Map();
29
- }
30
- sendNotification(method, ...args) {
31
- if (!this.protocolRepository.has(method)) {
32
- throw new MethodProtocolNotFoundError(method);
33
- }
34
- const payload = this.protocolRepository.serializeRequest(method, args);
35
- this.socket.send((0, packet_1.createRequestPacket)(this._requestId++, packet_1.RPC_TYPE.Notification, method, {}, payload));
36
- }
37
- sendRequest(method, ...args) {
38
- return new Promise((resolve, reject) => {
39
- this._callbacks.set(this._requestId, (headers, error, buffer) => {
40
- if (error) {
41
- if (error === constants_1.METHOD_NOT_REGISTERED) {
42
- resolve(error);
43
- return;
44
- }
45
- reject(error);
46
- return;
47
- }
48
- const result = this.protocolRepository.deserializeResult(method, buffer);
49
- resolve(result);
50
- });
51
- if (!this.protocolRepository.has(method)) {
52
- throw new MethodProtocolNotFoundError(method);
53
- }
54
- const payload = this.protocolRepository.serializeRequest(method, args);
55
- this.socket.send((0, packet_1.createRequestPacket)(this._requestId++, packet_1.RPC_TYPE.Request, method, {}, payload));
56
- });
57
- }
58
- onNotification(method, handler) {
59
- const handlerWrapper = (headers, args) => {
60
- handler(...args);
61
- };
62
- return ide_utils_1.Disposable.create(this._notificationEmitter.on(method, handlerWrapper));
63
- }
64
- onNotificationNotFound(handler) {
65
- const handlerWrapper = (method, headers, args) => {
66
- handler(method, args);
67
- };
68
- return ide_utils_1.Disposable.create(this._innerEventEmitter.on(innerEvents.onNotificationNotFound, handlerWrapper));
69
- }
70
- runRequestHandler(method, handler, requestId, headers, args) {
71
- let result;
72
- let error;
73
- try {
74
- result = handler(...args);
75
- }
76
- catch (err) {
77
- error = err;
78
- }
79
- if (error) {
80
- this.socket.send((0, packet_1.createErrorResponsePacket)(requestId, packet_1.ERROR_STATUS.EXEC_ERROR, {}, error));
81
- }
82
- else if (isPromise(result)) {
83
- result
84
- .then((result) => {
85
- const payload = this.protocolRepository.serializeResult(method, result);
86
- this.socket.send((0, packet_1.createResponsePacket)(requestId, {}, payload));
87
- })
88
- .catch((err) => {
89
- this.socket.send((0, packet_1.createErrorResponsePacket)(requestId, packet_1.ERROR_STATUS.EXEC_ERROR, {}, err));
90
- });
91
- }
92
- else {
93
- const payload = this.protocolRepository.serializeResult(method, result);
94
- this.socket.send((0, packet_1.createResponsePacket)(requestId, {}, payload));
95
- }
96
- }
97
- onRequest(method, handler) {
98
- const handlerWrapper = (requestId, headers, args) => {
99
- this.runRequestHandler(method, handler, requestId, headers, args);
100
- };
101
- return ide_utils_1.Disposable.create(this._binaryEmitter.on(method, handlerWrapper));
102
- }
103
- onRequestNotFound(handler) {
104
- const handlerWrapper = (requestId, method, headers, args) => {
105
- this.runRequestHandler(method, handler, requestId, headers, args);
106
- };
107
- return ide_utils_1.Disposable.create(this._innerEventEmitter.on(innerEvents.onRequestNotFound, handlerWrapper));
108
- }
109
- setProtocolRepository(protocolRepository) {
110
- this.protocolRepository = protocolRepository;
111
- }
112
- listen() {
113
- const toDispose = this.socket.onMessage((data) => {
114
- packet_1.reader.reset(data);
115
- packet_1.reader.skip(1);
116
- const rpcType = packet_1.reader.uint8();
117
- const requestId = packet_1.reader.uint32();
118
- const codec = packet_1.reader.uint8();
119
- if (rpcType === packet_1.RPC_TYPE.Response) {
120
- const callback = this._callbacks.get(requestId);
121
- if (!callback) {
122
- throw new Error(`No callback for request id: ${requestId}`);
123
- }
124
- const status = packet_1.reader.uint16();
125
- const headers = readHeaders();
126
- // if error code is not 0, it's an error
127
- if (status !== packet_1.ERROR_STATUS.OK) {
128
- // 错误信息用 JSON 格式,方便且兼容性好,可恢复成 Error
129
- assert(codec === packet_1.CODEC.JSON, 'Error response should be JSON encoded');
130
- const content = packet_1.reader.stringOfVarUInt32();
131
- const error = (0, ide_utils_1.parseError)(content);
132
- callback(headers, error);
133
- return;
134
- }
135
- if (codec === packet_1.CODEC.Binary) {
136
- const contentLen = packet_1.reader.varUInt32();
137
- const buffer = packet_1.reader.buffer(contentLen);
138
- callback(headers, undefined, buffer);
139
- return;
140
- }
141
- const content = packet_1.reader.stringOfVarUInt32();
142
- if (codec === packet_1.CODEC.JSON) {
143
- callback(headers, undefined, JSON.parse(content));
144
- }
145
- else {
146
- callback(headers, undefined, content);
147
- }
148
- }
149
- else if (rpcType === packet_1.RPC_TYPE.Notification || rpcType === packet_1.RPC_TYPE.Request) {
150
- const method = packet_1.reader.stringOfVarUInt32();
151
- const headers = readHeaders();
152
- const contentLen = packet_1.reader.varUInt32();
153
- const content = packet_1.reader.buffer(contentLen);
154
- const argsArray = this.protocolRepository.deserializeRequest(method, content);
155
- if (rpcType === packet_1.RPC_TYPE.Request) {
156
- if (this._binaryEmitter.hasListener(method)) {
157
- this._binaryEmitter.emit(method, requestId, headers, argsArray);
158
- }
159
- else {
160
- this._innerEventEmitter.emit(innerEvents.onRequestNotFound, requestId, method, headers, argsArray);
161
- }
162
- }
163
- else {
164
- if (this._notificationEmitter.hasListener(method)) {
165
- this._notificationEmitter.emit(method, headers, argsArray);
166
- }
167
- else {
168
- this._innerEventEmitter.emit(innerEvents.onNotificationNotFound, method, headers, argsArray);
169
- }
170
- }
171
- }
172
- else {
173
- throw new Error(`Unknown rpc type: ${rpcType}`);
174
- }
175
- function readHeaders() {
176
- const header = packet_1.reader.stringOfVarUInt32();
177
- return JSON.parse(header);
178
- }
179
- });
180
- if (toDispose) {
181
- this.disposable.push(toDispose);
182
- }
183
- }
184
- dispose() {
185
- this.disposable.dispose();
186
- }
187
- }
188
- exports.Connection = Connection;
189
- class MethodProtocolNotFoundError extends Error {
190
- constructor(method) {
191
- super(`method ${method} not found`);
192
- }
193
- }
194
- exports.MethodProtocolNotFoundError = MethodProtocolNotFoundError;
195
- //# sourceMappingURL=connection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/common/rpc/connection.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export * from './types';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/rpc/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./types"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/rpc/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB"}
@@ -1,49 +0,0 @@
1
- export declare enum RPC_TYPE {
2
- Handshake = 0,
3
- Request = 1,
4
- Notification = 2,
5
- Response = 3,
6
- Heartbeat = 4
7
- }
8
- export declare enum CODEC {
9
- Text = 0,
10
- Binary = 1,
11
- JSON = 2
12
- }
13
- export declare enum ERROR_STATUS {
14
- OK = 0,
15
- EXEC_ERROR = 1,
16
- PARSE_ERROR = 2,
17
- SERVER_ERROR = 3
18
- }
19
- export declare const reader: {
20
- getCursor: () => number;
21
- setCursor: (v: number) => number;
22
- varInt32: () => number;
23
- varInt64: () => bigint;
24
- varUInt32: () => number;
25
- varUInt64: () => bigint;
26
- int8: () => number;
27
- buffer: (len: number) => import("@furyjs/fury/dist/lib/platformBuffer").PlatformBuffer;
28
- bufferRef: (len: number) => Uint8Array;
29
- uint8: () => number;
30
- reset: (ab: Uint8Array) => void;
31
- stringUtf8At: (start: number, len: number) => string;
32
- stringUtf8: (len: number) => string;
33
- stringLatin1: (len: number) => string;
34
- stringOfVarUInt32: () => string;
35
- double: () => number;
36
- float: () => number;
37
- uint16: () => number;
38
- int16: () => number;
39
- uint64: () => bigint;
40
- skip: (len: number) => void;
41
- int64: () => bigint;
42
- sliLong: () => bigint;
43
- uint32: () => number;
44
- int32: () => number;
45
- };
46
- export declare const createRequestPacket: (requestId: number, rpcType: number, method: string, headers: Record<string, any>, payload: Uint8Array) => import("@furyjs/fury/dist/lib/platformBuffer").PlatformBuffer;
47
- export declare const createResponsePacket: (requestId: number, headers: Record<string, any>, payload: Uint8Array) => import("@furyjs/fury/dist/lib/platformBuffer").PlatformBuffer;
48
- export declare const createErrorResponsePacket: (requestId: number, status: number, headers: Record<string, any>, error: any) => import("@furyjs/fury/dist/lib/platformBuffer").PlatformBuffer;
49
- //# sourceMappingURL=packet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"packet.d.ts","sourceRoot":"","sources":["../../../src/common/rpc/packet.ts"],"names":[],"mappings":"AAOA,oBAAY,QAAQ;IAClB,SAAS,IAAA;IACT,OAAO,IAAA;IACP,YAAY,IAAA;IACZ,QAAQ,IAAA;IACR,SAAS,IAAA;CACV;AAED,oBAAY,KAAK;IACf,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,IAAI,IAAA;CACL;AAED,oBAAY,YAAY;IACtB,EAAE,IAAA;IACF,UAAU,IAAA;IACV,WAAW,IAAA;IACX,YAAY,IAAA;CACb;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;CAAmB,CAAC;AAGvC,eAAO,MAAM,mBAAmB,cACnB,MAAM,WACR,MAAM,UACP,MAAM,WACL,OAAO,MAAM,EAAE,GAAG,CAAC,WACnB,UAAU,kEAcpB,CAAC;AAEF,eAAO,MAAM,oBAAoB,cAAe,MAAM,WAAW,OAAO,MAAM,EAAE,GAAG,CAAC,WAAW,UAAU,kEAaxG,CAAC;AAEF,eAAO,MAAM,yBAAyB,cACzB,MAAM,UACT,MAAM,WACL,OAAO,MAAM,EAAE,GAAG,CAAC,SACrB,GAAG,kEAaX,CAAC"}
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createErrorResponsePacket = exports.createResponsePacket = exports.createRequestPacket = exports.reader = exports.ERROR_STATUS = exports.CODEC = exports.RPC_TYPE = void 0;
4
- const reader_1 = require("@furyjs/fury/dist/lib/reader");
5
- const writer_1 = require("@furyjs/fury/dist/lib/writer");
6
- const utils_1 = require("@opensumi/ide-core-common/lib/utils");
7
- const PROTO_VERSION = 1;
8
- var RPC_TYPE;
9
- (function (RPC_TYPE) {
10
- RPC_TYPE[RPC_TYPE["Handshake"] = 0] = "Handshake";
11
- RPC_TYPE[RPC_TYPE["Request"] = 1] = "Request";
12
- RPC_TYPE[RPC_TYPE["Notification"] = 2] = "Notification";
13
- RPC_TYPE[RPC_TYPE["Response"] = 3] = "Response";
14
- RPC_TYPE[RPC_TYPE["Heartbeat"] = 4] = "Heartbeat";
15
- })(RPC_TYPE = exports.RPC_TYPE || (exports.RPC_TYPE = {}));
16
- var CODEC;
17
- (function (CODEC) {
18
- CODEC[CODEC["Text"] = 0] = "Text";
19
- CODEC[CODEC["Binary"] = 1] = "Binary";
20
- CODEC[CODEC["JSON"] = 2] = "JSON";
21
- })(CODEC = exports.CODEC || (exports.CODEC = {}));
22
- var ERROR_STATUS;
23
- (function (ERROR_STATUS) {
24
- ERROR_STATUS[ERROR_STATUS["OK"] = 0] = "OK";
25
- ERROR_STATUS[ERROR_STATUS["EXEC_ERROR"] = 1] = "EXEC_ERROR";
26
- ERROR_STATUS[ERROR_STATUS["PARSE_ERROR"] = 2] = "PARSE_ERROR";
27
- ERROR_STATUS[ERROR_STATUS["SERVER_ERROR"] = 3] = "SERVER_ERROR";
28
- })(ERROR_STATUS = exports.ERROR_STATUS || (exports.ERROR_STATUS = {}));
29
- exports.reader = (0, reader_1.BinaryReader)({});
30
- const writer = (0, writer_1.BinaryWriter)({});
31
- const createRequestPacket = (requestId, rpcType, method, headers, payload) => {
32
- writer.reset();
33
- writer.uint8(PROTO_VERSION);
34
- writer.uint8(rpcType);
35
- writer.uint32(requestId);
36
- writer.uint8(CODEC.Binary);
37
- writer.stringOfVarUInt32(method);
38
- writer.stringOfVarUInt32(JSON.stringify(headers));
39
- writer.varUInt32(payload.length);
40
- writer.buffer(payload);
41
- return writer.dump();
42
- };
43
- exports.createRequestPacket = createRequestPacket;
44
- const createResponsePacket = (requestId, headers, payload) => {
45
- writer.reset();
46
- writer.uint8(PROTO_VERSION);
47
- writer.uint8(RPC_TYPE.Response);
48
- writer.uint32(requestId);
49
- writer.uint8(CODEC.Binary);
50
- writer.uint16(ERROR_STATUS.OK);
51
- writer.stringOfVarUInt32(JSON.stringify(headers));
52
- writer.varUInt32(payload.length);
53
- writer.buffer(payload);
54
- return writer.dump();
55
- };
56
- exports.createResponsePacket = createResponsePacket;
57
- const createErrorResponsePacket = (requestId, status, headers, error) => {
58
- writer.reset();
59
- writer.uint8(PROTO_VERSION);
60
- writer.uint8(RPC_TYPE.Response);
61
- writer.uint32(requestId);
62
- writer.uint8(CODEC.JSON);
63
- writer.uint16(status);
64
- writer.stringOfVarUInt32(JSON.stringify(headers));
65
- writer.stringOfVarUInt32((0, utils_1.stringifyError)(error));
66
- return writer.dump();
67
- };
68
- exports.createErrorResponsePacket = createErrorResponsePacket;
69
- //# sourceMappingURL=packet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"packet.js","sourceRoot":"","sources":["../../../src/common/rpc/packet.ts"],"names":[],"mappings":";;;AAAA,yDAA4D;AAC5D,yDAA4D;AAE5D,+DAAqE;AAErE,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,iDAAS,CAAA;IACT,6CAAO,CAAA;IACP,uDAAY,CAAA;IACZ,+CAAQ,CAAA;IACR,iDAAS,CAAA;AACX,CAAC,EANW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAMnB;AAED,IAAY,KAIX;AAJD,WAAY,KAAK;IACf,iCAAI,CAAA;IACJ,qCAAM,CAAA;IACN,iCAAI,CAAA;AACN,CAAC,EAJW,KAAK,GAAL,aAAK,KAAL,aAAK,QAIhB;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,2CAAE,CAAA;IACF,2DAAU,CAAA;IACV,6DAAW,CAAA;IACX,+DAAY,CAAA;AACd,CAAC,EALW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAKvB;AAEY,QAAA,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,CAAC,CAAC;AACvC,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,CAAC,CAAC;AAEzB,MAAM,mBAAmB,GAAG,CACjC,SAAiB,EACjB,OAAe,EACf,MAAc,EACd,OAA4B,EAC5B,OAAmB,EACnB,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC5B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACzB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvB,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC,CAAC;AAnBW,QAAA,mBAAmB,uBAmB9B;AAEK,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAE,OAA4B,EAAE,OAAmB,EAAE,EAAE;IAC3G,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC5B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACzB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvB,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC,CAAC;AAbW,QAAA,oBAAoB,wBAa/B;AAEK,MAAM,yBAAyB,GAAG,CACvC,SAAiB,EACjB,MAAc,EACd,OAA4B,EAC5B,KAAU,EACV,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC5B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACzB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,iBAAiB,CAAC,IAAA,sBAAc,EAAC,KAAK,CAAC,CAAC,CAAC;IAEhD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC,CAAC;AAjBW,QAAA,yBAAyB,6BAiBpC"}
@@ -1,32 +0,0 @@
1
- import Fury from '@furyjs/fury';
2
- import { TSumiProtocol, TSumiProtocolMethod } from './types';
3
- export interface ISerializableRequest {
4
- /**
5
- * Arguments
6
- */
7
- a: any[];
8
- }
9
- export interface ISerializableResult {
10
- /**
11
- * function execute result
12
- */
13
- r: any;
14
- /**
15
- * Function Return void or other type that protocol not defined
16
- */
17
- $?: string;
18
- }
19
- export declare class ProtocolRepository {
20
- fury: Fury;
21
- private serializerMap;
22
- has(name: string): boolean;
23
- loadProtocol(protocol: TSumiProtocol, options?: {
24
- nameConverter?: (str: string) => string;
25
- }): void;
26
- loadProtocolMethod(methodProtocol: TSumiProtocolMethod): void;
27
- serializeRequest(name: string, args: any[]): Uint8Array;
28
- deserializeRequest(name: string, buffer: Uint8Array): any[];
29
- serializeResult<T = any>(name: string, result: T): Uint8Array;
30
- deserializeResult<T = any>(name: string, buffer: Uint8Array): T;
31
- }
32
- //# sourceMappingURL=protocol-repository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol-repository.d.ts","sourceRoot":"","sources":["../../../src/common/rpc/protocol-repository.ts"],"names":[],"mappings":"AAAA,OAAO,IAA+B,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,CAAC,EAAE,GAAG,EAAE,CAAC;CACV;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,CAAC,EAAE,GAAG,CAAC;IAEP;;OAEG;IACH,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAYD,qBAAa,kBAAkB;IAC7B,IAAI,OAAc;IAElB,OAAO,CAAC,aAAa,CAMnB;IAEF,GAAG,CAAC,IAAI,EAAE,MAAM;IAIhB,YAAY,CACV,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;KACzC;IAmBH,kBAAkB,CAAC,cAAc,EAAE,mBAAmB;IAoBtD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,UAAU;IAavD,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,GAAG,EAAE;IAK3D,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,UAAU;IAU7D,iBAAiB,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,CAAC;CAShE"}
@@ -1,94 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProtocolRepository = void 0;
4
- const tslib_1 = require("tslib");
5
- const fury_1 = tslib_1.__importStar(require("@furyjs/fury"));
6
- const createResultProto = (name, type) => {
7
- const props = {
8
- $: fury_1.Type.string(),
9
- };
10
- if (type) {
11
- props.r = type;
12
- }
13
- return fury_1.Type.object(name, props);
14
- };
15
- class ProtocolRepository {
16
- constructor() {
17
- this.fury = new fury_1.default();
18
- this.serializerMap = {};
19
- }
20
- has(name) {
21
- return !!this.serializerMap[name];
22
- }
23
- loadProtocol(protocol, options) {
24
- const { methods } = protocol;
25
- for (const proto of methods) {
26
- let method = proto.method;
27
- if (options === null || options === void 0 ? void 0 : options.nameConverter) {
28
- method = options.nameConverter(method);
29
- }
30
- const copy = Object.assign(Object.assign({}, proto), { method });
31
- this.loadProtocolMethod(copy);
32
- }
33
- }
34
- loadProtocolMethod(methodProtocol) {
35
- const methodName = methodProtocol.method;
36
- const argsTuple = [];
37
- for (const element of methodProtocol.request) {
38
- argsTuple.push(element.type);
39
- }
40
- const requestProto = fury_1.Type.object(methodName + '^', {
41
- a: fury_1.Type.tuple(argsTuple),
42
- });
43
- const resultProto = createResultProto(methodName + 'v', methodProtocol.response.type);
44
- this.serializerMap[methodName] = {
45
- request: this.fury.registerSerializer(requestProto),
46
- result: this.fury.registerSerializer(resultProto),
47
- };
48
- }
49
- serializeRequest(name, args) {
50
- const newArray = new Array(args.length);
51
- for (let i = 0; i < args.length; i++) {
52
- newArray[i] = args[i];
53
- }
54
- const payload = {
55
- a: newArray,
56
- };
57
- return this.serializerMap[name].request.serialize(payload);
58
- }
59
- deserializeRequest(name, buffer) {
60
- const { a: argsArray } = this.serializerMap[name].request.deserialize(buffer);
61
- return argsArray;
62
- }
63
- serializeResult(name, result) {
64
- const payload = {
65
- r: result,
66
- };
67
- payload.$ = ReturnValueTransfer.replacer(result);
68
- return this.serializerMap[name].result.serialize(payload);
69
- }
70
- deserializeResult(name, buffer) {
71
- const payload = this.serializerMap[name].result.deserialize(buffer);
72
- if (payload.$) {
73
- return ReturnValueTransfer.reviver(payload.$);
74
- }
75
- return payload.r;
76
- }
77
- }
78
- exports.ProtocolRepository = ProtocolRepository;
79
- class ReturnValueTransfer {
80
- static replacer(value) {
81
- if (typeof value === 'undefined') {
82
- return ReturnValueTransfer.TypeUndefined;
83
- }
84
- return undefined;
85
- }
86
- static reviver(value) {
87
- if (value === ReturnValueTransfer.TypeUndefined) {
88
- return undefined;
89
- }
90
- throw new Error('Not implemented');
91
- }
92
- }
93
- ReturnValueTransfer.TypeUndefined = '$undefined';
94
- //# sourceMappingURL=protocol-repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol-repository.js","sourceRoot":"","sources":["../../../src/common/rpc/protocol-repository.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { TypeDescription } from '@furyjs/fury';
2
- import { RPCProtocol as _RPCProtocol, RPCProtocolMethod as _RPCProtocolMethod, Request as _Request, Response as _Response } from '@opensumi/ide-core-common/lib/types/rpc';
3
- export type TSumiProtocol = _RPCProtocol<TypeDescription>;
4
- export type TSumiProtocolMethod = _RPCProtocolMethod<TypeDescription>;
5
- export type TSumiRequest = _Request<TypeDescription>;
6
- export type TSumiResponse = _Response<TypeDescription>;
7
- export type TRequestCallback = (headers: Record<string, any>, error?: any, payload?: Uint8Array | string | any) => void;
8
- export type THandlerResult<R> = R | Promise<R>;
9
- export type TGenericNotificationHandler = (...args: any[]) => void | Promise<void>;
10
- export type TGenericRequestHandler<R> = (...args: any[]) => THandlerResult<R>;
11
- export type TOnRequestNotFoundHandler = (method: string, args: any[]) => THandlerResult<any>;
12
- export type TOnNotificationNotFoundHandler = (method: string, args: any[]) => THandlerResult<void>;
13
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/rpc/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EACL,WAAW,IAAI,YAAY,EAC3B,iBAAiB,IAAI,kBAAkB,EACvC,OAAO,IAAI,QAAQ,EACnB,QAAQ,IAAI,SAAS,EACtB,MAAM,yCAAyC,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;AAC1D,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;AACtE,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;AACrD,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AAEvD,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,GAAG,KAAK,IAAI,CAAC;AAExH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE/C,MAAM,MAAM,2BAA2B,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACnF,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC;AAE9E,MAAM,MAAM,yBAAyB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC;AAC7F,MAAM,MAAM,8BAA8B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/rpc/types.ts"],"names":[],"mappings":""}
@@ -1,63 +0,0 @@
1
- import { ObjectTypeDescription, Serializer, TypeDescription } from '@furyjs/fury';
2
- import Fury from '@furyjs/fury/dist/lib/fury';
3
- import { generateSerializer } from '@furyjs/fury/dist/lib/gen';
4
-
5
- type Writable = Record<string, any> & { kind: string };
6
-
7
- const fury = Fury({});
8
- const reader = fury.binaryReader;
9
- const writer = fury.binaryWriter;
10
-
11
- export const oneOf = (schemas: TypeDescription[]) => {
12
- const registry = new Map<string, Serializer>();
13
-
14
- schemas.forEach((schema) => {
15
- registry.set((schema as ObjectTypeDescription).options.tag, generateSerializer(fury, schema));
16
- });
17
-
18
- const deserialize = (bytes: Uint8Array) => {
19
- reader.reset(bytes);
20
- const kind = reader.stringOfVarUInt32();
21
- const serializer = registry.get(kind);
22
- if (!serializer) {
23
- throw new Error(`Unknown kind: ${kind}`);
24
- }
25
-
26
- const v = serializer.read();
27
- v.kind = kind;
28
-
29
- return v;
30
- };
31
-
32
- const serializeVolatile = (v: Writable) => {
33
- const serializer = registry.get(v.kind);
34
- if (!serializer) {
35
- throw new Error(`Unknown kind: ${v.kind}`);
36
- }
37
-
38
- writer.reset();
39
- writer.stringOfVarUInt32(v.kind);
40
- serializer.write(v);
41
-
42
- return writer.dumpAndOwn();
43
- };
44
-
45
- const serialize = (v: Writable) => {
46
- const serializer = registry.get(v.kind);
47
- if (!serializer) {
48
- throw new Error(`Unknown kind: ${v.kind}`);
49
- }
50
-
51
- writer.reset();
52
- writer.stringOfVarUInt32(v.kind);
53
- serializer.write(v);
54
-
55
- return writer.dump();
56
- };
57
-
58
- return {
59
- deserialize,
60
- serialize,
61
- serializeVolatile,
62
- };
63
- };
@@ -1,18 +0,0 @@
1
- import { Type } from '@furyjs/fury';
2
-
3
- import { CommonServerPath } from '@opensumi/ide-core-common';
4
-
5
- import type { TSumiProtocol } from '../rpc';
6
-
7
- export const CommonServerProtocol = {
8
- name: CommonServerPath,
9
- methods: [
10
- {
11
- method: 'getBackendOS',
12
- request: [],
13
- response: {
14
- type: Type.uint16(),
15
- },
16
- },
17
- ],
18
- } as TSumiProtocol;
@@ -1,9 +0,0 @@
1
- import { Type } from '@furyjs/fury';
2
-
3
- export const UriComponentsProto = Type.object('uri-components', {
4
- scheme: Type.string(),
5
- authority: Type.string(),
6
- path: Type.string(),
7
- query: Type.string(),
8
- fragment: Type.string(),
9
- });