@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.
Files changed (158) hide show
  1. package/lib/browser/ws-channel-handler.d.ts +9 -7
  2. package/lib/browser/ws-channel-handler.d.ts.map +1 -1
  3. package/lib/browser/ws-channel-handler.js +65 -64
  4. package/lib/browser/ws-channel-handler.js.map +1 -1
  5. package/lib/common/connect.d.ts +6 -57
  6. package/lib/common/connect.d.ts.map +1 -1
  7. package/lib/common/connect.js +9 -168
  8. package/lib/common/connect.js.map +1 -1
  9. package/lib/common/connection/buffers.d.ts +55 -0
  10. package/lib/common/connection/buffers.d.ts.map +1 -0
  11. package/lib/common/connection/buffers.js +244 -0
  12. package/lib/common/connection/buffers.js.map +1 -0
  13. package/lib/common/connection/drivers/base.d.ts +9 -0
  14. package/lib/common/connection/drivers/base.d.ts.map +1 -0
  15. package/lib/common/connection/drivers/base.js +11 -0
  16. package/lib/common/connection/drivers/base.js.map +1 -0
  17. package/lib/common/connection/drivers/empty.d.ts +8 -0
  18. package/lib/common/connection/drivers/empty.d.ts.map +1 -0
  19. package/lib/common/connection/drivers/empty.js +21 -0
  20. package/lib/common/connection/drivers/empty.js.map +1 -0
  21. package/lib/common/connection/drivers/index.d.ts +6 -0
  22. package/lib/common/connection/drivers/index.d.ts.map +1 -0
  23. package/lib/common/connection/drivers/index.js +9 -0
  24. package/lib/common/connection/drivers/index.js.map +1 -0
  25. package/lib/common/connection/drivers/node-message-port.d.ts +12 -0
  26. package/lib/common/connection/drivers/node-message-port.d.ts.map +1 -0
  27. package/lib/common/connection/drivers/node-message-port.js +31 -0
  28. package/lib/common/connection/drivers/node-message-port.js.map +1 -0
  29. package/lib/common/connection/drivers/reconnecting-websocket.d.ts +15 -0
  30. package/lib/common/connection/drivers/reconnecting-websocket.d.ts.map +1 -0
  31. package/lib/common/connection/drivers/reconnecting-websocket.js +83 -0
  32. package/lib/common/connection/drivers/reconnecting-websocket.js.map +1 -0
  33. package/lib/common/connection/drivers/socket.d.ts +17 -0
  34. package/lib/common/connection/drivers/socket.d.ts.map +1 -0
  35. package/lib/common/connection/drivers/socket.js +56 -0
  36. package/lib/common/connection/drivers/socket.js.map +1 -0
  37. package/lib/common/connection/drivers/stream-decoder.d.ts +67 -0
  38. package/lib/common/connection/drivers/stream-decoder.d.ts.map +1 -0
  39. package/lib/common/connection/drivers/stream-decoder.js +171 -0
  40. package/lib/common/connection/drivers/stream-decoder.js.map +1 -0
  41. package/lib/common/connection/drivers/utils.d.ts +12 -0
  42. package/lib/common/connection/drivers/utils.d.ts.map +1 -0
  43. package/lib/common/connection/drivers/utils.js +49 -0
  44. package/lib/common/connection/drivers/utils.js.map +1 -0
  45. package/lib/common/connection/drivers/ws-websocket.d.ts +11 -0
  46. package/lib/common/connection/drivers/ws-websocket.d.ts.map +1 -0
  47. package/lib/common/connection/drivers/ws-websocket.js +31 -0
  48. package/lib/common/connection/drivers/ws-websocket.js.map +1 -0
  49. package/lib/common/connection/index.d.ts +2 -0
  50. package/lib/common/connection/index.d.ts.map +1 -0
  51. package/lib/common/connection/index.js +5 -0
  52. package/lib/common/connection/index.js.map +1 -0
  53. package/lib/common/connection/types.d.ts +7 -0
  54. package/lib/common/connection/types.d.ts.map +1 -0
  55. package/lib/common/connection/types.js +3 -0
  56. package/lib/common/connection/types.js.map +1 -0
  57. package/lib/common/constants.d.ts +2 -0
  58. package/lib/common/constants.d.ts.map +1 -0
  59. package/lib/common/constants.js +5 -0
  60. package/lib/common/constants.js.map +1 -0
  61. package/lib/common/{rpcProtocol.d.ts → ext-rpc-protocol.d.ts} +10 -11
  62. package/lib/common/ext-rpc-protocol.d.ts.map +1 -0
  63. package/lib/common/{rpcProtocol.js → ext-rpc-protocol.js} +22 -19
  64. package/lib/common/ext-rpc-protocol.js.map +1 -0
  65. package/lib/common/index.d.ts +2 -1
  66. package/lib/common/index.d.ts.map +1 -1
  67. package/lib/common/index.js +2 -1
  68. package/lib/common/index.js.map +1 -1
  69. package/lib/common/proxy/base.d.ts +22 -0
  70. package/lib/common/proxy/base.d.ts.map +1 -0
  71. package/lib/common/proxy/base.js +47 -0
  72. package/lib/common/proxy/base.js.map +1 -0
  73. package/lib/common/proxy/index.d.ts +8 -0
  74. package/lib/common/proxy/index.d.ts.map +1 -0
  75. package/lib/common/proxy/index.js +12 -0
  76. package/lib/common/proxy/index.js.map +1 -0
  77. package/lib/common/proxy/legacy.d.ts +23 -0
  78. package/lib/common/proxy/legacy.d.ts.map +1 -0
  79. package/lib/common/proxy/legacy.js +183 -0
  80. package/lib/common/proxy/legacy.js.map +1 -0
  81. package/lib/common/rpc-service/center.d.ts +20 -0
  82. package/lib/common/rpc-service/center.d.ts.map +1 -0
  83. package/lib/common/rpc-service/center.js +100 -0
  84. package/lib/common/rpc-service/center.js.map +1 -0
  85. package/lib/common/rpc-service/index.d.ts +3 -0
  86. package/lib/common/rpc-service/index.d.ts.map +1 -0
  87. package/lib/common/rpc-service/index.js +6 -0
  88. package/lib/common/rpc-service/index.js.map +1 -0
  89. package/lib/common/rpc-service/stub.d.ts +15 -0
  90. package/lib/common/rpc-service/stub.d.ts.map +1 -0
  91. package/lib/common/rpc-service/stub.js +48 -0
  92. package/lib/common/rpc-service/stub.js.map +1 -0
  93. package/lib/common/types.d.ts +15 -0
  94. package/lib/common/types.d.ts.map +1 -0
  95. package/lib/common/types.js +9 -0
  96. package/lib/common/types.js.map +1 -0
  97. package/lib/common/utils.d.ts +4 -2
  98. package/lib/common/utils.d.ts.map +1 -1
  99. package/lib/common/utils.js +32 -9
  100. package/lib/common/utils.js.map +1 -1
  101. package/lib/common/ws-channel.d.ts +104 -27
  102. package/lib/common/ws-channel.d.ts.map +1 -1
  103. package/lib/common/ws-channel.js +96 -27
  104. package/lib/common/ws-channel.js.map +1 -1
  105. package/lib/node/common-channel-handler.d.ts +18 -16
  106. package/lib/node/common-channel-handler.d.ts.map +1 -1
  107. package/lib/node/common-channel-handler.js +42 -59
  108. package/lib/node/common-channel-handler.js.map +1 -1
  109. package/lib/node/index.d.ts +0 -3
  110. package/lib/node/index.d.ts.map +1 -1
  111. package/lib/node/index.js +0 -5
  112. package/lib/node/index.js.map +1 -1
  113. package/lib/node/ws.d.ts +1 -1
  114. package/lib/node/ws.d.ts.map +1 -1
  115. package/lib/node/ws.js +2 -0
  116. package/lib/node/ws.js.map +1 -1
  117. package/package.json +9 -7
  118. package/src/browser/ws-channel-handler.ts +82 -70
  119. package/src/common/connect.ts +7 -193
  120. package/src/common/connection/buffers.ts +284 -0
  121. package/src/common/connection/drivers/base.ts +15 -0
  122. package/src/common/connection/drivers/empty.ts +19 -0
  123. package/src/common/connection/drivers/index.ts +5 -0
  124. package/src/common/connection/drivers/node-message-port.ts +33 -0
  125. package/src/common/connection/drivers/reconnecting-websocket.ts +86 -0
  126. package/src/common/connection/drivers/socket.ts +62 -0
  127. package/src/common/connection/drivers/stream-decoder.ts +196 -0
  128. package/src/common/connection/drivers/utils.ts +52 -0
  129. package/src/common/connection/drivers/ws-websocket.ts +31 -0
  130. package/src/common/connection/index.ts +1 -0
  131. package/src/common/connection/types.ts +7 -0
  132. package/src/common/constants.ts +1 -0
  133. package/src/common/{rpcProtocol.ts → ext-rpc-protocol.ts} +43 -31
  134. package/src/common/index.ts +2 -1
  135. package/src/common/proxy/base.ts +67 -0
  136. package/src/common/proxy/index.ts +10 -0
  137. package/src/common/proxy/legacy.ts +200 -0
  138. package/src/common/rpc-service/center.ts +124 -0
  139. package/src/common/rpc-service/index.ts +2 -0
  140. package/src/common/rpc-service/stub.ts +49 -0
  141. package/src/common/types.ts +17 -0
  142. package/src/common/utils.ts +31 -8
  143. package/src/common/ws-channel.ts +175 -48
  144. package/src/node/common-channel-handler.ts +68 -80
  145. package/src/node/index.ts +0 -5
  146. package/src/node/ws.ts +3 -1
  147. package/lib/common/proxy.d.ts +0 -47
  148. package/lib/common/proxy.d.ts.map +0 -1
  149. package/lib/common/proxy.js +0 -272
  150. package/lib/common/proxy.js.map +0 -1
  151. package/lib/common/rpcProtocol.d.ts.map +0 -1
  152. package/lib/common/rpcProtocol.js.map +0 -1
  153. package/lib/node/connect.d.ts +0 -4
  154. package/lib/node/connect.d.ts.map +0 -1
  155. package/lib/node/connect.js +0 -9
  156. package/lib/node/connect.js.map +0 -1
  157. package/src/common/proxy.ts +0 -303
  158. package/src/node/connect.ts +0 -11
@@ -1,272 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RPCProxy = exports.ProxyClient = exports.NOTREGISTERMETHOD = exports.RPCService = void 0;
4
- const ide_core_common_1 = require("@opensumi/ide-core-common");
5
- const utils_1 = require("./utils");
6
- class RPCService {
7
- get client() {
8
- return this.rpcClient ? this.rpcClient[0] : undefined;
9
- }
10
- }
11
- exports.RPCService = RPCService;
12
- exports.NOTREGISTERMETHOD = '$$NOTREGISTERMETHOD';
13
- class ProxyClient {
14
- constructor(proxy, reservedWords = ['then']) {
15
- this.proxy = proxy;
16
- this.reservedWords = reservedWords;
17
- }
18
- getClient() {
19
- return new Proxy({}, {
20
- get: (target, prop) => {
21
- if (this.reservedWords.includes(prop) || typeof prop === 'symbol') {
22
- return Promise.resolve();
23
- }
24
- else {
25
- return this.proxy[prop];
26
- }
27
- },
28
- });
29
- }
30
- }
31
- exports.ProxyClient = ProxyClient;
32
- class RPCProxy {
33
- // capture messages for opensumi devtools
34
- capture(message) {
35
- const capturer = (0, utils_1.getCapturer)();
36
- if ((0, ide_core_common_1.isDefined)(capturer)) {
37
- capturer(message);
38
- }
39
- }
40
- constructor(target, logger) {
41
- this.target = target;
42
- this.proxyService = {};
43
- this.waitForConnection();
44
- this.logger = logger || console;
45
- }
46
- listenService(service) {
47
- if (this.connection) {
48
- const proxyService = this.proxyService;
49
- this.bindOnRequest(service, (service, prop) => {
50
- proxyService[prop] = service[prop].bind(service);
51
- });
52
- }
53
- else {
54
- const target = this.target || {};
55
- const methods = this.getServiceMethod(service);
56
- methods.forEach((method) => {
57
- target[method] = service[method].bind(service);
58
- });
59
- }
60
- }
61
- listen(connection) {
62
- this.connection = connection;
63
- if (this.target) {
64
- this.listenService(this.target);
65
- }
66
- this.connectionPromiseResolve(connection);
67
- connection.listen();
68
- }
69
- createProxy() {
70
- const proxy = new Proxy(this, this);
71
- const proxyClient = new ProxyClient(proxy);
72
- return proxyClient.getClient();
73
- }
74
- get(target, p) {
75
- const prop = p.toString();
76
- return (...args) => this.connectionPromise.then((connection) => {
77
- connection = this.connection || connection;
78
- return new Promise((resolve, reject) => {
79
- try {
80
- let isSingleArray = false;
81
- if (args.length === 1 && Array.isArray(args[0])) {
82
- isSingleArray = true;
83
- }
84
- // 调用方法为 on 开头时,作为单项通知
85
- if (prop.startsWith('on')) {
86
- if (isSingleArray) {
87
- connection.sendNotification(prop, [...args]);
88
- this.capture({ type: utils_1.MessageType.SendNotification, serviceMethod: prop, arguments: args });
89
- }
90
- else {
91
- connection.sendNotification(prop, ...args);
92
- this.capture({ type: utils_1.MessageType.SendNotification, serviceMethod: prop, arguments: args });
93
- }
94
- resolve(null);
95
- }
96
- else {
97
- let requestResult;
98
- // generate a unique requestId to associate request and requestResult
99
- const requestId = (0, ide_core_common_1.uuid)();
100
- if (isSingleArray) {
101
- requestResult = connection.sendRequest(prop, [...args]);
102
- this.capture({ type: utils_1.MessageType.SendRequest, requestId, serviceMethod: prop, arguments: args });
103
- }
104
- else {
105
- requestResult = connection.sendRequest(prop, ...args);
106
- this.capture({ type: utils_1.MessageType.SendRequest, requestId, serviceMethod: prop, arguments: args });
107
- }
108
- requestResult
109
- .catch((err) => {
110
- reject(err);
111
- })
112
- .then((result) => {
113
- if (result.error) {
114
- const error = new Error(result.data.message);
115
- if (result.data.stack) {
116
- error.stack = result.data.stack;
117
- }
118
- this.capture({
119
- type: utils_1.MessageType.RequestResult,
120
- status: utils_1.ResponseStatus.Fail,
121
- requestId,
122
- serviceMethod: prop,
123
- error: result.data,
124
- });
125
- reject(error);
126
- }
127
- else {
128
- this.capture({
129
- type: utils_1.MessageType.RequestResult,
130
- status: utils_1.ResponseStatus.Success,
131
- requestId,
132
- serviceMethod: prop,
133
- data: result.data,
134
- });
135
- resolve(result.data);
136
- }
137
- });
138
- }
139
- }
140
- catch (e) { }
141
- });
142
- });
143
- }
144
- getServiceMethod(service) {
145
- let props = [];
146
- if (/^\s*class/.test(service.constructor.toString())) {
147
- let obj = service;
148
- do {
149
- props = props.concat(Object.getOwnPropertyNames(obj));
150
- } while ((obj = Object.getPrototypeOf(obj)));
151
- props = props.sort().filter((e, i, arr) => e !== arr[i + 1] && typeof service[e] === 'function');
152
- }
153
- else {
154
- for (const prop in service) {
155
- if (service[prop] && typeof service[prop] === 'function') {
156
- props.push(prop);
157
- }
158
- }
159
- }
160
- return props;
161
- }
162
- bindOnRequest(service, cb) {
163
- if (this.connection) {
164
- const connection = this.connection;
165
- const methods = this.getServiceMethod(service);
166
- methods.forEach((method) => {
167
- if (method.startsWith('on')) {
168
- connection.onNotification(method, (...args) => {
169
- this.onNotification(method, ...args);
170
- this.capture({ type: utils_1.MessageType.OnNotification, serviceMethod: method, arguments: args });
171
- });
172
- }
173
- else {
174
- connection.onRequest(method, (...args) => {
175
- const requestId = (0, ide_core_common_1.uuid)();
176
- const result = this.onRequest(method, ...args);
177
- this.capture({ type: utils_1.MessageType.OnRequest, requestId, serviceMethod: method, arguments: args });
178
- result
179
- .then((result) => {
180
- this.capture({
181
- type: utils_1.MessageType.OnRequestResult,
182
- status: utils_1.ResponseStatus.Success,
183
- requestId,
184
- serviceMethod: method,
185
- data: result.data,
186
- });
187
- })
188
- .catch((err) => {
189
- this.capture({
190
- type: utils_1.MessageType.OnRequestResult,
191
- status: utils_1.ResponseStatus.Fail,
192
- requestId,
193
- serviceMethod: method,
194
- error: err.data,
195
- });
196
- });
197
- return result;
198
- });
199
- }
200
- if (cb) {
201
- cb(service, method);
202
- }
203
- });
204
- connection.onRequest((method) => {
205
- if (!this.proxyService[method]) {
206
- const requestId = (0, ide_core_common_1.uuid)();
207
- this.capture({ type: utils_1.MessageType.OnRequest, requestId, serviceMethod: method });
208
- const result = {
209
- data: exports.NOTREGISTERMETHOD,
210
- };
211
- this.capture({
212
- type: utils_1.MessageType.OnRequestResult,
213
- status: utils_1.ResponseStatus.Fail,
214
- requestId,
215
- serviceMethod: method,
216
- error: result.data,
217
- });
218
- return result;
219
- }
220
- });
221
- }
222
- }
223
- waitForConnection() {
224
- this.connectionPromise = new Promise((resolve) => {
225
- this.connectionPromiseResolve = resolve;
226
- });
227
- }
228
- /**
229
- * 对于纯数组参数的情况,收到请求/通知后做展开操作
230
- * 因为在通信层会为每个 rpc 调用添加一个 CancellationToken 参数
231
- * 如果参数本身是数组, 在方法中如果使用 spread 运算符获取参数(...args),则会出现 [...args, MutableToken] 这种情况
232
- * 所以发送请求时将这类参数统一再用数组包了一层,形如 [[...args]], 参考 {@link RPCProxy.get get} 方法
233
- * 此时接收到的数组类参数固定长度为 2,且最后一项一定是 MutableToken
234
- * @param args
235
- * @returns args
236
- */
237
- serializeArguments(args) {
238
- const maybeCancellationToken = args[args.length - 1];
239
- if (args.length === 2 && Array.isArray(args[0]) && maybeCancellationToken.hasOwnProperty('_isCancelled')) {
240
- return [...args[0], maybeCancellationToken];
241
- }
242
- return args;
243
- }
244
- async onRequest(prop, ...args) {
245
- try {
246
- const result = await this.proxyService[prop](...this.serializeArguments(args));
247
- return {
248
- error: false,
249
- data: result,
250
- };
251
- }
252
- catch (e) {
253
- return {
254
- error: true,
255
- data: {
256
- message: e.message,
257
- stack: e.stack,
258
- },
259
- };
260
- }
261
- }
262
- onNotification(prop, ...args) {
263
- try {
264
- this.proxyService[prop](...this.serializeArguments(args));
265
- }
266
- catch (e) {
267
- this.logger.warn('notification', e);
268
- }
269
- }
270
- }
271
- exports.RPCProxy = RPCProxy;
272
- //# sourceMappingURL=proxy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/common/proxy.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpcProtocol.d.ts","sourceRoot":"","sources":["../../src/common/rpcProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,KAAK,EAAO,MAAM,2BAA2B,CAAC;AAI7G,oBAAY,cAAc;IACxB,IAAI,IAAA;IACJ,GAAG,IAAA;CACJ;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAAC;AAC9E,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC;AAgBhE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAe,CAAC,CAAC,GAAG,GAAG;IAClC,OAAc,KAAK,SAAK;IAExB,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,OAAO,EAAE,MAAM,CAAC;gBACpB,SAAS,EAAE,MAAM;CAI9B;AAED,wBAAgB,mCAAmC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAG5F;AACD,wBAAgB,gCAAgC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAG1F;AACD,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,GAAG,KAAA,GAAG,IAAI,CAAC;IAChB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAiCD,yBAAiB,cAAc,CAAC;IAC9B,SAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,GAAG,OA4B3D;IACD,SAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,GAAG,OAU1D;CACF;AAED,qBAAa,SAAS;WACN,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM;WAIzD,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM;WAmBpF,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,MAAM;WAiBhE,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,MAAM;CAatF;AAED,eAAO,MAAM,YAAY,eAAyB,CAAC;AACnD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5C,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IACvD,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CAC3C;AAQD,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAuC;IACjF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuC;IACvE,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,MAAM,CAAC;gBAEH,UAAU,EAAE,uBAAuB,EAAE,MAAM,CAAC,EAAE,GAAG;IAatD,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG;IAKpD,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IAIrC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IAQ9C,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,WAAW;IA6BnB,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,cAAc;YAOR,gBAAgB;IAY9B,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,cAAc;CAWvB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpcProtocol.js","sourceRoot":"","sources":["../../src/common/rpcProtocol.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- /// <reference types="node" />
2
- import type net from 'net';
3
- export declare function createSocketConnection(socket: net.Socket): import("@opensumi/vscode-jsonrpc/lib/common/connection").MessageConnection;
4
- //# sourceMappingURL=connect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/node/connect.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAQ3B,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,8EAExD"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createSocketConnection = void 0;
4
- const main_1 = require("@opensumi/vscode-jsonrpc/lib/node/main");
5
- function createSocketConnection(socket) {
6
- return (0, main_1.createMessageConnection)(new main_1.SocketMessageReader(socket), new main_1.SocketMessageWriter(socket));
7
- }
8
- exports.createSocketConnection = createSocketConnection;
9
- //# sourceMappingURL=connect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/node/connect.ts"],"names":[],"mappings":";;;AAEA,iEAIgD;AAEhD,SAAgB,sBAAsB,CAAC,MAAkB;IACvD,OAAO,IAAA,8BAAuB,EAAC,IAAI,0BAAmB,CAAC,MAAM,CAAC,EAAE,IAAI,0BAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;AACnG,CAAC;AAFD,wDAEC"}
@@ -1,303 +0,0 @@
1
- import { isDefined, uuid } from '@opensumi/ide-core-common';
2
- import type { MessageConnection } from '@opensumi/vscode-jsonrpc/lib/common/connection';
3
-
4
- import { MessageType, ResponseStatus, ICapturedMessage, getCapturer } from './utils';
5
-
6
- export interface ILogger {
7
- warn(...args: any[]): void;
8
- }
9
-
10
- export abstract class RPCService<T = any> {
11
- rpcClient?: T[];
12
- rpcRegistered?: boolean;
13
- register?(): () => Promise<T>;
14
- get client() {
15
- return this.rpcClient ? this.rpcClient[0] : undefined;
16
- }
17
- }
18
-
19
- export const NOTREGISTERMETHOD = '$$NOTREGISTERMETHOD';
20
-
21
- export class ProxyClient {
22
- public proxy: any;
23
- public reservedWords: string[];
24
-
25
- constructor(proxy: any, reservedWords = ['then']) {
26
- this.proxy = proxy;
27
- this.reservedWords = reservedWords;
28
- }
29
- public getClient() {
30
- return new Proxy(
31
- {},
32
- {
33
- get: (target, prop: string | symbol) => {
34
- if (this.reservedWords.includes(prop as string) || typeof prop === 'symbol') {
35
- return Promise.resolve();
36
- } else {
37
- return this.proxy[prop];
38
- }
39
- },
40
- },
41
- );
42
- }
43
- }
44
-
45
- interface IRPCResult {
46
- error: boolean;
47
- data: any;
48
- }
49
- export class RPCProxy {
50
- private connectionPromise: Promise<MessageConnection>;
51
- private connectionPromiseResolve: (connection: MessageConnection) => void;
52
- private connection: MessageConnection;
53
- private proxyService: any = {};
54
- private logger: ILogger;
55
- // capture messages for opensumi devtools
56
- private capture(message: ICapturedMessage): void {
57
- const capturer = getCapturer();
58
- if (isDefined(capturer)) {
59
- capturer(message);
60
- }
61
- }
62
-
63
- constructor(public target?: RPCService, logger?: ILogger) {
64
- this.waitForConnection();
65
- this.logger = logger || console;
66
- }
67
- public listenService(service) {
68
- if (this.connection) {
69
- const proxyService = this.proxyService;
70
- this.bindOnRequest(service, (service, prop) => {
71
- proxyService[prop] = service[prop].bind(service);
72
- });
73
- } else {
74
- const target = this.target || {};
75
- const methods = this.getServiceMethod(service);
76
- methods.forEach((method) => {
77
- target[method] = service[method].bind(service);
78
- });
79
- }
80
- }
81
-
82
- public listen(connection: MessageConnection) {
83
- this.connection = connection;
84
-
85
- if (this.target) {
86
- this.listenService(this.target);
87
- }
88
- this.connectionPromiseResolve(connection);
89
- connection.listen();
90
- }
91
-
92
- public createProxy(): any {
93
- const proxy = new Proxy(this, this);
94
-
95
- const proxyClient = new ProxyClient(proxy);
96
- return proxyClient.getClient();
97
- }
98
- public get(target: any, p: PropertyKey) {
99
- const prop = p.toString();
100
-
101
- return (...args: any[]) =>
102
- this.connectionPromise.then((connection) => {
103
- connection = this.connection || connection;
104
- return new Promise((resolve, reject) => {
105
- try {
106
- let isSingleArray = false;
107
- if (args.length === 1 && Array.isArray(args[0])) {
108
- isSingleArray = true;
109
- }
110
- // 调用方法为 on 开头时,作为单项通知
111
- if (prop.startsWith('on')) {
112
- if (isSingleArray) {
113
- connection.sendNotification(prop, [...args]);
114
- this.capture({ type: MessageType.SendNotification, serviceMethod: prop, arguments: args });
115
- } else {
116
- connection.sendNotification(prop, ...args);
117
- this.capture({ type: MessageType.SendNotification, serviceMethod: prop, arguments: args });
118
- }
119
-
120
- resolve(null);
121
- } else {
122
- let requestResult: Promise<any>;
123
- // generate a unique requestId to associate request and requestResult
124
- const requestId = uuid();
125
-
126
- if (isSingleArray) {
127
- requestResult = connection.sendRequest(prop, [...args]) as Promise<any>;
128
- this.capture({ type: MessageType.SendRequest, requestId, serviceMethod: prop, arguments: args });
129
- } else {
130
- requestResult = connection.sendRequest(prop, ...args) as Promise<any>;
131
- this.capture({ type: MessageType.SendRequest, requestId, serviceMethod: prop, arguments: args });
132
- }
133
-
134
- requestResult
135
- .catch((err) => {
136
- reject(err);
137
- })
138
- .then((result: IRPCResult) => {
139
- if (result.error) {
140
- const error = new Error(result.data.message);
141
- if (result.data.stack) {
142
- error.stack = result.data.stack;
143
- }
144
- this.capture({
145
- type: MessageType.RequestResult,
146
- status: ResponseStatus.Fail,
147
- requestId,
148
- serviceMethod: prop,
149
- error: result.data,
150
- });
151
- reject(error);
152
- } else {
153
- this.capture({
154
- type: MessageType.RequestResult,
155
- status: ResponseStatus.Success,
156
- requestId,
157
- serviceMethod: prop,
158
- data: result.data,
159
- });
160
- resolve(result.data);
161
- }
162
- });
163
- }
164
- } catch (e) {}
165
- });
166
- });
167
- }
168
- private getServiceMethod(service): string[] {
169
- let props: any[] = [];
170
-
171
- if (/^\s*class/.test(service.constructor.toString())) {
172
- let obj = service;
173
- do {
174
- props = props.concat(Object.getOwnPropertyNames(obj));
175
- } while ((obj = Object.getPrototypeOf(obj)));
176
- props = props.sort().filter((e, i, arr) => e !== arr[i + 1] && typeof service[e] === 'function');
177
- } else {
178
- for (const prop in service) {
179
- if (service[prop] && typeof service[prop] === 'function') {
180
- props.push(prop);
181
- }
182
- }
183
- }
184
-
185
- return props;
186
- }
187
- private bindOnRequest(service, cb?) {
188
- if (this.connection) {
189
- const connection = this.connection;
190
-
191
- const methods = this.getServiceMethod(service);
192
- methods.forEach((method) => {
193
- if (method.startsWith('on')) {
194
- connection.onNotification(method, (...args) => {
195
- this.onNotification(method, ...args);
196
- this.capture({ type: MessageType.OnNotification, serviceMethod: method, arguments: args });
197
- });
198
- } else {
199
- connection.onRequest(method, (...args) => {
200
- const requestId = uuid();
201
- const result = this.onRequest(method, ...args);
202
- this.capture({ type: MessageType.OnRequest, requestId, serviceMethod: method, arguments: args });
203
-
204
- result
205
- .then((result) => {
206
- this.capture({
207
- type: MessageType.OnRequestResult,
208
- status: ResponseStatus.Success,
209
- requestId,
210
- serviceMethod: method,
211
- data: result.data,
212
- });
213
- })
214
- .catch((err) => {
215
- this.capture({
216
- type: MessageType.OnRequestResult,
217
- status: ResponseStatus.Fail,
218
- requestId,
219
- serviceMethod: method,
220
- error: err.data,
221
- });
222
- });
223
-
224
- return result;
225
- });
226
- }
227
-
228
- if (cb) {
229
- cb(service, method);
230
- }
231
- });
232
-
233
- connection.onRequest((method) => {
234
- if (!this.proxyService[method]) {
235
- const requestId = uuid();
236
- this.capture({ type: MessageType.OnRequest, requestId, serviceMethod: method });
237
- const result = {
238
- data: NOTREGISTERMETHOD,
239
- };
240
- this.capture({
241
- type: MessageType.OnRequestResult,
242
- status: ResponseStatus.Fail,
243
- requestId,
244
- serviceMethod: method,
245
- error: result.data,
246
- });
247
- return result;
248
- }
249
- });
250
- }
251
- }
252
-
253
- private waitForConnection() {
254
- this.connectionPromise = new Promise((resolve) => {
255
- this.connectionPromiseResolve = resolve;
256
- });
257
- }
258
-
259
- /**
260
- * 对于纯数组参数的情况,收到请求/通知后做展开操作
261
- * 因为在通信层会为每个 rpc 调用添加一个 CancellationToken 参数
262
- * 如果参数本身是数组, 在方法中如果使用 spread 运算符获取参数(...args),则会出现 [...args, MutableToken] 这种情况
263
- * 所以发送请求时将这类参数统一再用数组包了一层,形如 [[...args]], 参考 {@link RPCProxy.get get} 方法
264
- * 此时接收到的数组类参数固定长度为 2,且最后一项一定是 MutableToken
265
- * @param args
266
- * @returns args
267
- */
268
- private serializeArguments(args: any[]): any[] {
269
- const maybeCancellationToken = args[args.length - 1];
270
- if (args.length === 2 && Array.isArray(args[0]) && maybeCancellationToken.hasOwnProperty('_isCancelled')) {
271
- return [...args[0], maybeCancellationToken];
272
- }
273
-
274
- return args;
275
- }
276
-
277
- private async onRequest(prop: PropertyKey, ...args: any[]) {
278
- try {
279
- const result = await this.proxyService[prop](...this.serializeArguments(args));
280
-
281
- return {
282
- error: false,
283
- data: result,
284
- };
285
- } catch (e) {
286
- return {
287
- error: true,
288
- data: {
289
- message: e.message,
290
- stack: e.stack,
291
- },
292
- };
293
- }
294
- }
295
-
296
- private onNotification(prop: PropertyKey, ...args: any[]) {
297
- try {
298
- this.proxyService[prop](...this.serializeArguments(args));
299
- } catch (e) {
300
- this.logger.warn('notification', e);
301
- }
302
- }
303
- }
@@ -1,11 +0,0 @@
1
- import type net from 'net';
2
-
3
- import {
4
- SocketMessageReader,
5
- SocketMessageWriter,
6
- createMessageConnection,
7
- } from '@opensumi/vscode-jsonrpc/lib/node/main';
8
-
9
- export function createSocketConnection(socket: net.Socket) {
10
- return createMessageConnection(new SocketMessageReader(socket), new SocketMessageWriter(socket));
11
- }