@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,22 +1,24 @@
1
- import { IReporterService, UrlProvider } from '@opensumi/ide-core-common';
1
+ import { IReporterService } from '@opensumi/ide-core-common';
2
+ import { NetSocketConnection } from '../common/connection';
3
+ import { ReconnectingWebSocketConnection } from '../common/connection/drivers/reconnecting-websocket';
2
4
  import { WSChannel } from '../common/ws-channel';
5
+ /**
6
+ * Channel Handler in browser
7
+ */
3
8
  export declare class WSChannelHandler {
4
- wsPath: UrlProvider;
5
- protocols?: string[] | undefined;
6
- connection: WebSocket;
9
+ connection: ReconnectingWebSocketConnection | NetSocketConnection;
7
10
  private channelMap;
8
11
  private channelCloseEventMap;
9
12
  private logger;
10
13
  clientId: string;
11
14
  private heartbeatMessageTimer;
12
15
  private reporterService;
13
- constructor(wsPath: UrlProvider, logger: any, protocols?: string[] | undefined, clientId?: string);
16
+ LOG_TAG: string;
17
+ constructor(connection: ReconnectingWebSocketConnection | NetSocketConnection, logger: any, clientId?: string);
14
18
  replaceLogger(logger: any): void;
15
19
  setReporter(reporterService: IReporterService): void;
16
- private clientMessage;
17
20
  private heartbeatMessage;
18
21
  initHandler(): Promise<void>;
19
- private getChannelSend;
20
22
  openChannel(channelPath: string): Promise<WSChannel>;
21
23
  dispose(): void;
22
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ws-channel-handler.d.ts","sourceRoot":"","sources":["../../src/browser/ws-channel-handler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAe,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGvF,OAAO,EAAE,SAAS,EAAiB,MAAM,sBAAsB,CAAC;AAGhE,qBAAa,gBAAgB;IASR,MAAM,EAAE,WAAW;IAAsB,SAAS,CAAC;IAR/D,UAAU,EAAE,SAAS,CAAC;IAC7B,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,oBAAoB,CAAgD;IAC5E,OAAO,CAAC,MAAM,CAAW;IAClB,QAAQ,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,eAAe,CAAmB;gBAEvB,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAS,SAAS,CAAC,sBAAU,EAAE,QAAQ,CAAC,EAAE,MAAM;IAMnG,aAAa,CAAC,MAAM,EAAE,GAAG;IAKzB,WAAW,CAAC,eAAe,EAAE,gBAAgB;IAG7C,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,gBAAgB;IAcX,WAAW;IAqDxB,OAAO,CAAC,cAAc,CAMpB;IACW,WAAW,CAAC,WAAW,EAAE,MAAM;IAwBrC,OAAO;CAKf"}
1
+ {"version":3,"file":"ws-channel-handler.d.ts","sourceRoot":"","sources":["../../src/browser/ws-channel-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAe,MAAM,2BAA2B,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AAEtG,OAAO,EAAE,SAAS,EAAoB,MAAM,sBAAsB,CAAC;AAEnE;;GAEG;AACH,qBAAa,gBAAgB;IAWlB,UAAU,EAAE,+BAA+B,GAAG,mBAAmB;IAV1E,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,oBAAoB,CAAuC;IACnE,OAAO,CAAC,MAAM,CAAW;IAClB,QAAQ,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,eAAe,CAAmB;IAE1C,OAAO,SAAwB;gBAGtB,UAAU,EAAE,+BAA+B,GAAG,mBAAmB,EACxE,MAAM,EAAE,GAAG,EACX,QAAQ,CAAC,EAAE,MAAM;IAOnB,aAAa,CAAC,MAAM,EAAE,GAAG;IAKzB,WAAW,CAAC,eAAe,EAAE,gBAAgB;IAG7C,OAAO,CAAC,gBAAgB;IAeX,WAAW;IAoEX,WAAW,CAAC,WAAW,EAAE,MAAM;IA2BrC,OAAO;CAKf"}
@@ -1,30 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WSChannelHandler = void 0;
4
- const tslib_1 = require("tslib");
5
- const reconnecting_websocket_1 = tslib_1.__importDefault(require("reconnecting-websocket"));
6
4
  const ide_core_common_1 = require("@opensumi/ide-core-common");
7
5
  const ide_core_common_2 = require("@opensumi/ide-core-common");
8
- const utils_1 = require("../common/utils");
9
6
  const ws_channel_1 = require("../common/ws-channel");
10
- // 前台链接管理类
7
+ /**
8
+ * Channel Handler in browser
9
+ */
11
10
  class WSChannelHandler {
12
- constructor(wsPath, logger, protocols, clientId) {
13
- this.wsPath = wsPath;
14
- this.protocols = protocols;
11
+ constructor(connection, logger, clientId) {
12
+ this.connection = connection;
15
13
  this.channelMap = new Map();
16
14
  this.channelCloseEventMap = new Map();
17
15
  this.logger = console;
18
- this.getChannelSend = (connection) => (content) => {
19
- connection.send(content, (err) => {
20
- if (err) {
21
- this.logger.warn(err);
22
- }
23
- });
24
- };
16
+ this.LOG_TAG = '[WSChannelHandler]';
25
17
  this.logger = logger || this.logger;
26
18
  this.clientId = clientId || `CLIENT_ID_${(0, ide_core_common_1.uuid)()}`;
27
- this.connection = new reconnecting_websocket_1.default(wsPath, protocols, {}); // new WebSocket(wsPath, protocols);
19
+ this.LOG_TAG = `[WSChannelHandler] [client-id:${this.clientId}]`;
28
20
  }
29
21
  // 为解决建立连接之后,替换成可落盘的 logger
30
22
  replaceLogger(logger) {
@@ -35,84 +27,93 @@ class WSChannelHandler {
35
27
  setReporter(reporterService) {
36
28
  this.reporterService = reporterService;
37
29
  }
38
- clientMessage() {
39
- const clientMsg = (0, utils_1.stringify)({
40
- kind: 'client',
41
- clientId: this.clientId,
42
- });
43
- this.connection.send(clientMsg);
44
- }
45
30
  heartbeatMessage() {
46
31
  if (this.heartbeatMessageTimer) {
47
32
  clearTimeout(this.heartbeatMessageTimer);
48
33
  }
49
34
  this.heartbeatMessageTimer = global.setTimeout(() => {
50
- const msg = (0, utils_1.stringify)({
51
- kind: 'heartbeat',
35
+ const msg = (0, ws_channel_1.stringify)({
36
+ kind: 'ping',
52
37
  clientId: this.clientId,
38
+ id: this.clientId,
53
39
  });
54
40
  this.connection.send(msg);
55
41
  this.heartbeatMessage();
56
42
  }, 5000);
57
43
  }
58
44
  async initHandler() {
59
- this.connection.onmessage = (e) => {
45
+ this.connection.onMessage((message) => {
60
46
  // 一个心跳周期内如果有收到消息,则不需要再发送心跳
61
47
  this.heartbeatMessage();
62
- const msg = (0, utils_1.parse)(e.data);
63
- if (msg.id) {
64
- const channel = this.channelMap.get(msg.id);
65
- if (channel) {
66
- if (msg.kind === 'data' && !channel.fireMessage) {
67
- // 要求前端发送初始化消息,但后端最先发送消息时,前端并未准备好
68
- this.logger.error('channel not ready!', msg);
69
- }
70
- channel.handleMessage(msg);
71
- }
72
- else {
73
- this.logger.warn(`channel ${msg.id} not found`);
48
+ const msg = (0, ws_channel_1.parse)(message);
49
+ if (msg.kind === 'pong') {
50
+ // ignore server2client pong message
51
+ return;
52
+ }
53
+ if (!msg.id) {
54
+ // unknown message
55
+ this.logger.warn(this.LOG_TAG, 'unknown message', msg);
56
+ return;
57
+ }
58
+ const channel = this.channelMap.get(msg.id);
59
+ if (channel) {
60
+ if (!channel.hasMessageListener()) {
61
+ // 要求前端发送初始化消息,但后端最先发送消息时,前端并未准备好
62
+ this.logger.error(this.LOG_TAG, 'channel not ready!', msg);
74
63
  }
64
+ channel.handleMessage(msg);
65
+ }
66
+ else {
67
+ this.logger.warn(this.LOG_TAG, `channel ${msg.id} not found`);
68
+ }
69
+ });
70
+ const reopenExistsChannel = () => {
71
+ if (this.channelMap.size) {
72
+ this.channelMap.forEach((channel) => {
73
+ channel.onOpen(() => {
74
+ const closeInfo = this.channelCloseEventMap.get(channel.id);
75
+ this.reporterService &&
76
+ this.reporterService.point(ide_core_common_2.REPORT_NAME.CHANNEL_RECONNECT, ide_core_common_2.REPORT_NAME.CHANNEL_RECONNECT, closeInfo);
77
+ this.logger.log(this.LOG_TAG, `channel reconnect ${this.clientId}:${channel.channelPath}`);
78
+ });
79
+ channel.open(channel.channelPath, this.clientId);
80
+ // 针对前端需要重新设置下后台状态的情况
81
+ channel.fireReopen();
82
+ });
75
83
  }
76
84
  };
77
85
  await new Promise((resolve) => {
78
- this.connection.addEventListener('open', () => {
79
- this.clientMessage();
86
+ if (this.connection.isOpen()) {
80
87
  this.heartbeatMessage();
81
- resolve(undefined);
82
- // 重连 channel
83
- if (this.channelMap.size) {
84
- this.channelMap.forEach((channel) => {
85
- channel.onOpen(() => {
86
- const closeInfo = this.channelCloseEventMap.get(channel.id);
87
- this.reporterService &&
88
- this.reporterService.point(ide_core_common_2.REPORT_NAME.CHANNEL_RECONNECT, ide_core_common_2.REPORT_NAME.CHANNEL_RECONNECT, closeInfo);
89
- this.logger && this.logger.log(`channel reconnect ${this.clientId}:${channel.channelPath}`);
90
- });
91
- channel.open(channel.channelPath);
92
- // 针对前端需要重新设置下后台状态的情况
93
- if (channel.fireReOpen) {
94
- channel.fireReOpen();
95
- }
96
- });
97
- }
98
- });
99
- this.connection.addEventListener('close', (event) => {
88
+ resolve();
89
+ reopenExistsChannel();
90
+ }
91
+ else {
92
+ this.connection.onOpen(() => {
93
+ this.heartbeatMessage();
94
+ resolve();
95
+ reopenExistsChannel();
96
+ });
97
+ }
98
+ this.connection.onceClose((code, reason) => {
100
99
  if (this.channelMap.size) {
101
100
  this.channelMap.forEach((channel) => {
102
- channel.close(event.code, event.reason);
101
+ channel.close(code !== null && code !== void 0 ? code : 1000, reason !== null && reason !== void 0 ? reason : '');
103
102
  });
104
103
  }
105
104
  });
106
105
  });
107
106
  }
108
107
  async openChannel(channelPath) {
109
- const channelSend = this.getChannelSend(this.connection);
110
108
  const channelId = `${this.clientId}:${channelPath}`;
111
- const channel = new ws_channel_1.WSChannel(channelSend, channelId);
109
+ const channel = new ws_channel_1.WSChannel(this.connection, {
110
+ id: channelId,
111
+ logger: this.logger,
112
+ });
112
113
  this.channelMap.set(channel.id, channel);
113
114
  await new Promise((resolve) => {
114
115
  channel.onOpen(() => {
115
- resolve(undefined);
116
+ resolve();
116
117
  });
117
118
  channel.onClose((code, reason) => {
118
119
  this.channelCloseEventMap.set(channelId, {
@@ -120,9 +121,9 @@ class WSChannelHandler {
120
121
  closeEvent: { code, reason },
121
122
  connectInfo: navigator.connection,
122
123
  });
123
- this.logger.log('channel close: ', code, reason);
124
+ this.logger.log(this.LOG_TAG, 'channel close: ', code, reason);
124
125
  });
125
- channel.open(channelPath);
126
+ channel.open(channelPath, this.clientId);
126
127
  });
127
128
  return channel;
128
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ws-channel-handler.js","sourceRoot":"","sources":["../../src/browser/ws-channel-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-channel-handler.js","sourceRoot":"","sources":["../../src/browser/ws-channel-handler.ts"],"names":[],"mappings":"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"}
@@ -1,60 +1,9 @@
1
- import { MessageConnection } from '@opensumi/vscode-jsonrpc/lib/common/connection';
2
- import { RPCProxy, ILogger } from './proxy';
3
- export type RPCServiceMethod = (...args: any[]) => any;
4
- export type ServiceProxy = any;
5
- export declare enum ServiceType {
6
- Service = 0,
7
- Stub = 1
8
- }
9
- export declare class RPCServiceStub {
10
- private serviceName;
11
- private center;
12
- private type;
13
- constructor(serviceName: string, center: RPCServiceCenter, type: ServiceType);
14
- ready(): Promise<void>;
15
- getNotificationName(name: string): string;
16
- getRequestName(name: string): string;
17
- on(name: string, method: RPCServiceMethod): void;
18
- getServiceMethod(service: any): string[];
19
- onRequestService(service: any): void;
20
- onRequest(name: string, method: RPCServiceMethod): void;
21
- broadcast(name: string, ...args: any[]): Promise<any>;
22
- getMethodName(name: string): string;
23
- getProxy: <T>() => RPCServiceStub & T;
24
- }
1
+ import { RPCServiceCenter, RPCServiceStub } from './rpc-service';
25
2
  export declare function initRPCService<T = void>(center: RPCServiceCenter): {
26
- createRPCService: (name: string, service?: any) => RPCServiceStub & T;
27
- getRPCService: (name: string) => RPCServiceStub & T;
3
+ createRPCService: (name: string, service?: any) => T extends void ? RPCServiceStub : RPCServiceStub & T;
4
+ getRPCService: (name: string) => T extends void ? RPCServiceStub : RPCServiceStub & T;
28
5
  };
29
- interface IBench {
30
- registerService: (service: string) => void;
31
- }
32
- export interface RPCMessageConnection extends MessageConnection {
33
- uid?: string;
34
- writer?: any;
35
- reader?: any;
36
- }
37
- export declare function createRPCService<T = void>(name: string, center: RPCServiceCenter): any;
38
- export declare function getRPCService<T = void>(name: string, center: RPCServiceCenter): any;
39
- export declare class RPCServiceCenter {
40
- private bench?;
41
- uid: string;
42
- rpcProxy: RPCProxy[];
43
- serviceProxy: ServiceProxy[];
44
- private connection;
45
- private serviceMethodMap;
46
- private createService;
47
- private getService;
48
- private connectionPromise;
49
- private connectionPromiseResolve;
50
- private logger;
51
- constructor(bench?: IBench | undefined, logger?: ILogger);
52
- registerService(serviceName: string, type: ServiceType): void;
53
- when(): Promise<void>;
54
- setConnection(connection: MessageConnection): void;
55
- removeConnection(connection: MessageConnection): boolean;
56
- onRequest(name: string, method: RPCServiceMethod): void;
57
- broadcast(name: string, ...args: any[]): Promise<any>;
58
- }
59
- export {};
6
+ export declare function createRPCService<T = void>(name: string, center: RPCServiceCenter): T extends void ? RPCServiceStub : RPCServiceStub & T;
7
+ export declare function getRPCService<T = void>(name: string, center: RPCServiceCenter): T extends void ? RPCServiceStub : RPCServiceStub & T;
8
+ export * from './rpc-service';
60
9
  //# sourceMappingURL=connect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/common/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAEnF,OAAO,EAAE,QAAQ,EAAqB,OAAO,EAAE,MAAM,SAAS,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC;AAE/B,oBAAY,WAAW;IACrB,OAAO,IAAA;IACP,IAAI,IAAA;CACL;AAED,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;IAM9F,KAAK;IAGX,mBAAmB,CAAC,IAAI,EAAE,MAAM;IAGhC,cAAc,CAAC,IAAI,EAAE,MAAM;IAI3B,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAGzC,gBAAgB,CAAC,OAAO,KAAA,GAAG,MAAM,EAAE;IAmBnC,gBAAgB,CAAC,OAAO,EAAE,GAAG;IAO7B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAGhD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,OAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9C,aAAa,CAAC,IAAI,EAAE,MAAM;IAG1B,QAAQ,8BAcH;CACN;AAED,wBAAgB,cAAc,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,gBAAgB;6BAEpC,MAAM,YAAY,GAAG;0BAQxB,MAAM;EAE/B;AAED,UAAU,MAAM;IACd,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,GAAG,CAEtF;AAED,wBAAgB,aAAa,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,GAAG,CAEnF;AAED,qBAAa,gBAAgB;IAcf,OAAO,CAAC,KAAK,CAAC;IAbnB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,QAAQ,EAAE,CAAM;IAC1B,YAAY,EAAE,YAAY,EAAE,CAAM;IACzC,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,UAAU,CAAgB;IAElC,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,wBAAwB,CAAa;IAC7C,OAAO,CAAC,MAAM,CAAU;gBAEJ,KAAK,CAAC,oBAAQ,EAAE,MAAM,CAAC,EAAE,OAAO;IAQpD,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IAW7D,IAAI;IAIJ,aAAa,CAAC,UAAU,EAAE,iBAAiB;IAc3C,gBAAgB,CAAC,UAAU,EAAE,iBAAiB;IAU9C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAS1C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,OAAA,GAAG,OAAO,CAAC,GAAG,CAAC;CAwBrD"}
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/common/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGjE,wBAAgB,cAAc,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,gBAAgB;6BAEpC,MAAM,YAAY,GAAG;0BAQxB,MAAM;EAE/B;AAED,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,wDAEhF;AAED,wBAAgB,aAAa,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,wDAE7E;AAED,cAAc,eAAe,CAAC"}
@@ -1,188 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RPCServiceCenter = exports.getRPCService = exports.createRPCService = exports.initRPCService = exports.RPCServiceStub = exports.ServiceType = void 0;
4
- const proxy_1 = require("./proxy");
5
- var ServiceType;
6
- (function (ServiceType) {
7
- ServiceType[ServiceType["Service"] = 0] = "Service";
8
- ServiceType[ServiceType["Stub"] = 1] = "Stub";
9
- })(ServiceType = exports.ServiceType || (exports.ServiceType = {}));
10
- class RPCServiceStub {
11
- constructor(serviceName, center, type) {
12
- this.serviceName = serviceName;
13
- this.center = center;
14
- this.type = type;
15
- this.getProxy = () => new Proxy(this, {
16
- // 调用方
17
- get: (target, prop) => {
18
- if (!target[prop]) {
19
- if (typeof prop === 'symbol') {
20
- return Promise.resolve();
21
- }
22
- else {
23
- return (...args) => this.ready().then(() => this.broadcast(prop, ...args));
24
- }
25
- }
26
- else {
27
- return target[prop];
28
- }
29
- },
30
- });
31
- if (this.type === ServiceType.Service) {
32
- this.center.registerService(serviceName, this.type);
33
- }
34
- }
35
- async ready() {
36
- return this.center.when();
37
- }
38
- getNotificationName(name) {
39
- return `on:${this.serviceName}:${name}`;
40
- }
41
- getRequestName(name) {
42
- return `${this.serviceName}:${name}`;
43
- }
44
- // 服务方
45
- on(name, method) {
46
- this.onRequest(name, method);
47
- }
48
- getServiceMethod(service) {
49
- let props = [];
50
- if (/^\s*class/.test(service.constructor.toString())) {
51
- let obj = service;
52
- do {
53
- props = props.concat(Object.getOwnPropertyNames(obj));
54
- } while ((obj = Object.getPrototypeOf(obj)));
55
- props = props.sort().filter((e, i, arr) => e !== arr[i + 1] && typeof service[e] === 'function');
56
- }
57
- else {
58
- for (const prop in service) {
59
- if (service[prop] && typeof service[prop] === 'function') {
60
- props.push(prop);
61
- }
62
- }
63
- }
64
- return props;
65
- }
66
- onRequestService(service) {
67
- const methods = this.getServiceMethod(service);
68
- for (const method of methods) {
69
- this.onRequest(method, service[method].bind(service));
70
- }
71
- }
72
- onRequest(name, method) {
73
- this.center.onRequest(this.getMethodName(name), method);
74
- }
75
- broadcast(name, ...args) {
76
- return this.center.broadcast(this.getMethodName(name), ...args);
77
- }
78
- getMethodName(name) {
79
- return name.startsWith('on') ? this.getNotificationName(name) : this.getRequestName(name);
80
- }
81
- }
82
- exports.RPCServiceStub = RPCServiceStub;
3
+ exports.getRPCService = exports.createRPCService = exports.initRPCService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const rpc_service_1 = require("./rpc-service");
6
+ const types_1 = require("./types");
83
7
  function initRPCService(center) {
84
8
  return {
85
9
  createRPCService: (name, service) => {
86
- const proxy = new RPCServiceStub(name, center, ServiceType.Service).getProxy();
10
+ const proxy = createRPCService(name, center);
87
11
  if (service) {
88
12
  proxy.onRequestService(service);
89
13
  }
90
14
  return proxy;
91
15
  },
92
- getRPCService: (name) => new RPCServiceStub(name, center, ServiceType.Stub).getProxy(),
16
+ getRPCService: (name) => getRPCService(name, center),
93
17
  };
94
18
  }
95
19
  exports.initRPCService = initRPCService;
96
20
  function createRPCService(name, center) {
97
- return new RPCServiceStub(name, center, ServiceType.Service).getProxy();
21
+ return new rpc_service_1.RPCServiceStub(name, center, types_1.ServiceType.Service).getProxy();
98
22
  }
99
23
  exports.createRPCService = createRPCService;
100
24
  function getRPCService(name, center) {
101
- return new RPCServiceStub(name, center, ServiceType.Stub).getProxy();
25
+ return new rpc_service_1.RPCServiceStub(name, center, types_1.ServiceType.Stub).getProxy();
102
26
  }
103
27
  exports.getRPCService = getRPCService;
104
- class RPCServiceCenter {
105
- constructor(bench, logger) {
106
- this.bench = bench;
107
- this.rpcProxy = [];
108
- this.serviceProxy = [];
109
- this.connection = [];
110
- this.serviceMethodMap = { client: undefined };
111
- this.createService = [];
112
- this.getService = [];
113
- this.uid = 'RPCServiceCenter:' + process.pid;
114
- this.connectionPromise = new Promise((resolve) => {
115
- this.connectionPromiseResolve = resolve;
116
- });
117
- this.logger = logger || console;
118
- }
119
- registerService(serviceName, type) {
120
- if (type === ServiceType.Service) {
121
- this.createService.push(serviceName);
122
- if (this.bench) {
123
- this.bench.registerService(serviceName);
124
- }
125
- }
126
- else if (type === ServiceType.Stub) {
127
- this.getService.push(serviceName);
128
- }
129
- }
130
- when() {
131
- return this.connectionPromise;
132
- }
133
- setConnection(connection) {
134
- if (!this.connection.length) {
135
- this.connectionPromiseResolve();
136
- }
137
- this.connection.push(connection);
138
- const rpcProxy = new proxy_1.RPCProxy(this.serviceMethodMap, this.logger);
139
- rpcProxy.listen(connection);
140
- this.rpcProxy.push(rpcProxy);
141
- const serviceProxy = rpcProxy.createProxy();
142
- this.serviceProxy.push(serviceProxy);
143
- }
144
- removeConnection(connection) {
145
- const removeIndex = this.connection.indexOf(connection);
146
- if (removeIndex !== -1) {
147
- this.connection.splice(removeIndex, 1);
148
- this.rpcProxy.splice(removeIndex, 1);
149
- this.serviceProxy.splice(removeIndex, 1);
150
- }
151
- return removeIndex !== -1;
152
- }
153
- onRequest(name, method) {
154
- if (!this.connection.length) {
155
- this.serviceMethodMap[name] = method;
156
- }
157
- else {
158
- this.rpcProxy.forEach((proxy) => {
159
- proxy.listenService({ [name]: method });
160
- });
161
- }
162
- }
163
- async broadcast(name, ...args) {
164
- const broadcastResult = this.serviceProxy.map((proxy) => proxy[name](...args));
165
- if (!broadcastResult || broadcastResult.length === 0) {
166
- throw new Error(`broadcast rpc \`${name}\` error: no remote service can handle this call`);
167
- }
168
- const doubtfulResult = [];
169
- const result = [];
170
- for (const i of broadcastResult) {
171
- if (i === proxy_1.NOTREGISTERMETHOD) {
172
- doubtfulResult.push(i);
173
- }
174
- else {
175
- result.push(i);
176
- }
177
- }
178
- if (doubtfulResult.length > 0) {
179
- this.logger.warn(`broadcast rpc \`${name}\` getting doubtful responses: ${doubtfulResult.join(',')}`);
180
- }
181
- // FIXME: this is an unreasonable design, if remote service only returned doubtful result, we will return an empty array.
182
- // but actually we should throw an error to tell user that no remote service can handle this call.
183
- // or just return `undefined`.
184
- return result.length === 1 ? result[0] : result;
185
- }
186
- }
187
- exports.RPCServiceCenter = RPCServiceCenter;
28
+ tslib_1.__exportStar(require("./rpc-service"), exports);
188
29
  //# sourceMappingURL=connect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/common/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/common/connect.ts"],"names":[],"mappings":";;;;AAAA,+CAAiE;AACjE,mCAAsC;AAEtC,SAAgB,cAAc,CAAW,MAAwB;IAC/D,OAAO;QACL,gBAAgB,EAAE,CAAC,IAAY,EAAE,OAAa,EAAE,EAAE;YAChD,MAAM,KAAK,GAAG,gBAAgB,CAAI,IAAI,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,OAAO,EAAE;gBACX,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;aACjC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QACD,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,aAAa,CAAI,IAAI,EAAE,MAAM,CAAC;KAChE,CAAC;AACJ,CAAC;AAZD,wCAYC;AAED,SAAgB,gBAAgB,CAAW,IAAY,EAAE,MAAwB;IAC/E,OAAO,IAAI,4BAAc,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAW,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAK,CAAC;AAC7E,CAAC;AAFD,4CAEC;AAED,SAAgB,aAAa,CAAW,IAAY,EAAE,MAAwB;IAC5E,OAAO,IAAI,4BAAc,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAK,CAAC;AAC1E,CAAC;AAFD,sCAEC;AAED,wDAA8B"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Treat a collection of Buffers as a single contiguous partially mutable Buffer.
3
+ *
4
+ * Where possible, operations execute without creating a new Buffer and copying everything over.
5
+ */
6
+ export declare function copy(source: Uint8Array, target: Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): void;
7
+ export declare class Buffers {
8
+ buffers: Uint8Array[];
9
+ protected size: number;
10
+ get byteLength(): number;
11
+ push(buffer: Uint8Array): void;
12
+ unshift(buffer: Uint8Array): void;
13
+ slice(start?: number, end?: number): Uint8Array;
14
+ pos(i: number): {
15
+ buf: number;
16
+ offset: number;
17
+ };
18
+ copy(target: Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): void;
19
+ splice(start: number, deleteCount: number, ...reps: Uint8Array[]): Buffers;
20
+ get(i: number): number;
21
+ set(i: number, v: number): void;
22
+ cursor(offset?: number): Cursor;
23
+ dispose(): void;
24
+ }
25
+ /**
26
+ * Remember the current position in a Buffers.
27
+ *
28
+ * The cursor will always point to the next byte to be read.
29
+ *
30
+ * The cursor is not safe to use after the Buffers is modified.
31
+ */
32
+ export declare class Cursor {
33
+ protected buffers: Buffers;
34
+ offset: number;
35
+ protected chunkIndex: number;
36
+ protected chunkOffset: number;
37
+ constructor(buffers: Buffers, offset?: number);
38
+ protected updatePosition(): void;
39
+ /**
40
+ * Return this cursor's current line number.
41
+ */
42
+ get line(): number;
43
+ get lineWidth(): number;
44
+ get value(): number;
45
+ /**
46
+ * Return the cursor offset in the current line.
47
+ */
48
+ get lineOffset(): number;
49
+ iterator(): Generator<number, void, unknown>;
50
+ move(n: number): void;
51
+ moveTo(n: number): void;
52
+ dispose(): void;
53
+ reset(): void;
54
+ }
55
+ //# sourceMappingURL=buffers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffers.d.ts","sourceRoot":"","sources":["../../../src/common/connection/buffers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,wBAAgB,IAAI,CAClB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,QAGnB;AAED,qBAAa,OAAO;IAClB,OAAO,eAAsB;IAC7B,SAAS,CAAC,IAAI,SAAK;IAEnB,IAAI,UAAU,WAEb;IAED,IAAI,CAAC,MAAM,EAAE,UAAU;IAKvB,OAAO,CAAC,MAAM,EAAE,UAAU;IAK1B,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAsClC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAkB/C,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,SAAI,EAAE,WAAW,SAAI,EAAE,SAAS,SAAY;IAIhF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE;IAiFhE,GAAG,CAAC,CAAC,EAAE,MAAM;IAKb,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAKxB,MAAM,CAAC,MAAM,SAAI;IAIjB,OAAO;CAIR;AAED;;;;;;GAMG;AACH,qBAAa,MAAM;IAIL,SAAS,CAAC,OAAO,EAAE,OAAO;IAAS,MAAM;IAHrD,SAAS,CAAC,UAAU,SAAK;IACzB,SAAS,CAAC,WAAW,SAAK;gBAEJ,OAAO,EAAE,OAAO,EAAS,MAAM,SAAI;IAIzD,SAAS,CAAC,cAAc;IAYxB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED,IAAI,SAAS,WAEZ;IAED,IAAI,KAAK,WAER;IAED;;OAEG;IACH,IAAI,UAAU,WAEb;IAEA,QAAQ;IAiBT,IAAI,CAAC,CAAC,EAAE,MAAM;IAKd,MAAM,CAAC,CAAC,EAAE,MAAM;IAKhB,OAAO;IAKP,KAAK;CAKN"}