@opensumi/ide-terminal-next 3.1.5-next-1720069890.0 → 3.1.5-next-1720152351.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.
@@ -2,6 +2,7 @@
2
2
  import { SocketConnectOpts } from 'net';
3
3
  import { PtyServiceManager } from './pty.manager';
4
4
  interface PtyServiceOptions {
5
+ socketConnectOpts: SocketConnectOpts;
5
6
  /**
6
7
  * 重连时间间隔
7
8
  */
@@ -11,11 +12,10 @@ interface PtyServiceOptions {
11
12
  */
12
13
  socketTimeout?: number | undefined;
13
14
  }
15
+ export declare const PtyServiceManagerRemoteOptions: unique symbol;
14
16
  export declare class PtyServiceManagerRemote extends PtyServiceManager {
15
17
  private disposer;
16
- private options;
17
- private debugLog;
18
- constructor(connectOpts?: SocketConnectOpts, options?: PtyServiceOptions);
18
+ constructor(opts?: PtyServiceOptions);
19
19
  private initRPCService;
20
20
  private initRemoteConnectionMode;
21
21
  initLocal(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"pty.manager.remote.d.ts","sourceRoot":"","sources":["../../src/node/pty.manager.remote.ts"],"names":[],"mappings":";AAAA,OAAY,EAAE,iBAAiB,EAAE,MAAM,KAAK,CAAC;AAc7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,UAAU,iBAAiB;IACzB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAKD,qBACa,uBAAwB,SAAQ,iBAAiB;IAC5D,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,QAAQ,CAAW;gBAIb,WAAW,GAAE,iBAA2D,EACxE,OAAO,CAAC,EAAE,iBAAiB;IAWzC,OAAO,CAAC,cAAc;IAoCtB,OAAO,CAAC,wBAAwB;IAiEvB,SAAS;CAGnB"}
1
+ {"version":3,"file":"pty.manager.remote.d.ts","sourceRoot":"","sources":["../../src/node/pty.manager.remote.ts"],"names":[],"mappings":";AAAA,OAAY,EAAE,iBAAiB,EAAE,MAAM,KAAK,CAAC;AAc7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,UAAU,iBAAiB;IACzB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,eAAO,MAAM,8BAA8B,eAA2C,CAAC;AAKvF,qBACa,uBAAwB,SAAQ,iBAAiB;IAC5D,OAAO,CAAC,QAAQ,CAAa;gBAK3B,IAAI,GAAE,iBAAkF;IAM1F,OAAO,CAAC,cAAc;IAoCtB,OAAO,CAAC,wBAAwB;IAkEvB,SAAS;CAGnB"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PtyServiceManagerRemote = void 0;
3
+ exports.PtyServiceManagerRemote = exports.PtyServiceManagerRemoteOptions = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const net_1 = tslib_1.__importDefault(require("net"));
6
6
  const di_1 = require("@opensumi/di");
@@ -9,16 +9,15 @@ const connection_1 = require("@opensumi/ide-connection/lib/common/rpc/connection
9
9
  const ide_core_common_1 = require("@opensumi/ide-core-common");
10
10
  const common_1 = require("../common");
11
11
  const pty_manager_1 = require("./pty.manager");
12
+ exports.PtyServiceManagerRemoteOptions = Symbol('PtyServiceManagerRemoteOptions');
12
13
  // 双容器架构 - 在IDE容器中远程运行,与DEV Server上的PtyService通信
13
14
  // 继承自PtyServiceManager,覆写了创建PtyProxyService连接的方法,用于需要远程连接PtyService的场景
14
15
  // 具体需要根据应用场景,通过DI注入覆盖PtyServiceManager使用
15
16
  let PtyServiceManagerRemote = class PtyServiceManagerRemote extends pty_manager_1.PtyServiceManager {
16
17
  // Pty运行在单独的容器上,通过Socket连接,可以自定义Socket连接参数
17
- constructor(connectOpts = { port: common_1.PTY_SERVICE_PROXY_SERVER_PORT }, options) {
18
+ constructor(opts = { socketConnectOpts: { port: common_1.PTY_SERVICE_PROXY_SERVER_PORT } }) {
18
19
  super();
19
- this.options = Object.assign({ reconnectInterval: 2000 }, options);
20
- this.debugLog = new ide_core_common_1.DebugLog('PtyServiceManagerRemote');
21
- this.initRemoteConnectionMode(connectOpts);
20
+ this.initRemoteConnectionMode(opts);
22
21
  }
23
22
  initRPCService(socket) {
24
23
  const clientCenter = new ide_connection_1.RPCServiceCenter();
@@ -54,14 +53,15 @@ let PtyServiceManagerRemote = class PtyServiceManagerRemote extends pty_manager_
54
53
  remove.dispose();
55
54
  });
56
55
  }
57
- initRemoteConnectionMode(connectOpts) {
56
+ initRemoteConnectionMode(opts) {
57
+ const { socketTimeout, reconnectInterval, socketConnectOpts } = opts;
58
58
  if (this.disposer) {
59
59
  this.disposer.dispose();
60
60
  }
61
61
  this.disposer = new ide_core_common_1.Disposable();
62
62
  const socket = new net_1.default.Socket();
63
- if (this.options.socketTimeout) {
64
- socket.setTimeout(this.options.socketTimeout);
63
+ if (socketTimeout) {
64
+ socket.setTimeout(socketTimeout);
65
65
  }
66
66
  let reconnectTimer = null;
67
67
  const reconnect = () => {
@@ -71,13 +71,13 @@ let PtyServiceManagerRemote = class PtyServiceManagerRemote extends pty_manager_
71
71
  reconnectTimer = global.setTimeout(() => {
72
72
  this.logger.log('PtyServiceManagerRemote reconnect');
73
73
  socket.destroy();
74
- this.initRemoteConnectionMode(connectOpts);
75
- }, this.options.reconnectInterval);
74
+ this.initRemoteConnectionMode(opts);
75
+ }, reconnectInterval || 2000);
76
76
  };
77
77
  // UNIX Socket 连接监听,成功连接后再创建RPC服务
78
78
  socket.once('connect', () => {
79
79
  this.logger.log('PtyServiceManagerRemote connected');
80
- if (this.options.socketTimeout) {
80
+ if (socketTimeout) {
81
81
  socket.setTimeout(0);
82
82
  }
83
83
  if (reconnectTimer) {
@@ -103,12 +103,12 @@ let PtyServiceManagerRemote = class PtyServiceManagerRemote extends pty_manager_
103
103
  reconnect();
104
104
  });
105
105
  try {
106
- this.debugLog.log('PtyServiceManagerRemote socket start connect');
107
- socket.connect(connectOpts);
106
+ this.logger.log('PtyServiceManagerRemote socket start connect');
107
+ socket.connect(socketConnectOpts);
108
108
  }
109
109
  catch (e) {
110
110
  // 连接错误的时候会抛出异常,此时自动重连,同时需要 catch 错误
111
- this.debugLog.warn('PtyServiceManagerRemote socket connect error', e);
111
+ this.logger.warn('PtyServiceManagerRemote socket connect error', e);
112
112
  }
113
113
  }
114
114
  initLocal() {
@@ -117,9 +117,8 @@ let PtyServiceManagerRemote = class PtyServiceManagerRemote extends pty_manager_
117
117
  };
118
118
  PtyServiceManagerRemote = tslib_1.__decorate([
119
119
  (0, di_1.Injectable)(),
120
- tslib_1.__param(0, (0, di_1.Optional)()),
121
- tslib_1.__param(1, (0, di_1.Optional)()),
122
- tslib_1.__metadata("design:paramtypes", [Object, Object])
120
+ tslib_1.__param(0, (0, di_1.Optional)(exports.PtyServiceManagerRemoteOptions)),
121
+ tslib_1.__metadata("design:paramtypes", [Object])
123
122
  ], PtyServiceManagerRemote);
124
123
  exports.PtyServiceManagerRemote = PtyServiceManagerRemote;
125
124
  //# sourceMappingURL=pty.manager.remote.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pty.manager.remote.js","sourceRoot":"","sources":["../../src/node/pty.manager.remote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pty.manager.remote.js","sourceRoot":"","sources":["../../src/node/pty.manager.remote.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensumi/ide-terminal-next",
3
- "version": "3.1.5-next-1720069890.0",
3
+ "version": "3.1.5-next-1720152351.0",
4
4
  "files": [
5
5
  "lib",
6
6
  "src"
@@ -17,10 +17,10 @@
17
17
  "url": "git@github.com:opensumi/core.git"
18
18
  },
19
19
  "dependencies": {
20
- "@opensumi/ide-connection": "3.1.5-next-1720069890.0",
21
- "@opensumi/ide-core-common": "3.1.5-next-1720069890.0",
22
- "@opensumi/ide-core-node": "3.1.5-next-1720069890.0",
23
- "@opensumi/ide-file-service": "3.1.5-next-1720069890.0",
20
+ "@opensumi/ide-connection": "3.1.5-next-1720152351.0",
21
+ "@opensumi/ide-core-common": "3.1.5-next-1720152351.0",
22
+ "@opensumi/ide-core-node": "3.1.5-next-1720152351.0",
23
+ "@opensumi/ide-file-service": "3.1.5-next-1720152351.0",
24
24
  "node-pty": "1.0.0",
25
25
  "os-locale": "^4.0.0",
26
26
  "xterm": "5.3.0",
@@ -30,18 +30,18 @@
30
30
  "xterm-addon-webgl": "0.15.0"
31
31
  },
32
32
  "devDependencies": {
33
- "@opensumi/ide-components": "3.1.5-next-1720069890.0",
34
- "@opensumi/ide-core-browser": "3.1.5-next-1720069890.0",
35
- "@opensumi/ide-dev-tool": "3.1.5-next-1720069890.0",
36
- "@opensumi/ide-editor": "3.1.5-next-1720069890.0",
37
- "@opensumi/ide-main-layout": "3.1.5-next-1720069890.0",
38
- "@opensumi/ide-overlay": "3.1.5-next-1720069890.0",
39
- "@opensumi/ide-status-bar": "3.1.5-next-1720069890.0",
40
- "@opensumi/ide-theme": "3.1.5-next-1720069890.0",
41
- "@opensumi/ide-variable": "3.1.5-next-1720069890.0",
42
- "@opensumi/ide-workspace": "3.1.5-next-1720069890.0",
33
+ "@opensumi/ide-components": "3.1.5-next-1720152351.0",
34
+ "@opensumi/ide-core-browser": "3.1.5-next-1720152351.0",
35
+ "@opensumi/ide-dev-tool": "3.1.5-next-1720152351.0",
36
+ "@opensumi/ide-editor": "3.1.5-next-1720152351.0",
37
+ "@opensumi/ide-main-layout": "3.1.5-next-1720152351.0",
38
+ "@opensumi/ide-overlay": "3.1.5-next-1720152351.0",
39
+ "@opensumi/ide-status-bar": "3.1.5-next-1720152351.0",
40
+ "@opensumi/ide-theme": "3.1.5-next-1720152351.0",
41
+ "@opensumi/ide-variable": "3.1.5-next-1720152351.0",
42
+ "@opensumi/ide-workspace": "3.1.5-next-1720152351.0",
43
43
  "@types/http-proxy": "^1.17.2",
44
44
  "http-proxy": "^1.18.0"
45
45
  },
46
- "gitHead": "5e5f670d7366d741321429f9d6603681b2dde09e"
46
+ "gitHead": "b4d9756ebe62a789629c92785617dd31491e8de4"
47
47
  }
@@ -15,6 +15,7 @@ import {
15
15
  import { PtyServiceManager } from './pty.manager';
16
16
 
17
17
  interface PtyServiceOptions {
18
+ socketConnectOpts: SocketConnectOpts;
18
19
  /**
19
20
  * 重连时间间隔
20
21
  */
@@ -25,27 +26,22 @@ interface PtyServiceOptions {
25
26
  socketTimeout?: number | undefined;
26
27
  }
27
28
 
29
+ export const PtyServiceManagerRemoteOptions = Symbol('PtyServiceManagerRemoteOptions');
30
+
28
31
  // 双容器架构 - 在IDE容器中远程运行,与DEV Server上的PtyService通信
29
32
  // 继承自PtyServiceManager,覆写了创建PtyProxyService连接的方法,用于需要远程连接PtyService的场景
30
33
  // 具体需要根据应用场景,通过DI注入覆盖PtyServiceManager使用
31
34
  @Injectable()
32
35
  export class PtyServiceManagerRemote extends PtyServiceManager {
33
36
  private disposer: Disposable;
34
- private options: PtyServiceOptions;
35
- private debugLog: DebugLog;
36
37
 
37
38
  // Pty运行在单独的容器上,通过Socket连接,可以自定义Socket连接参数
38
39
  constructor(
39
- @Optional() connectOpts: SocketConnectOpts = { port: PTY_SERVICE_PROXY_SERVER_PORT },
40
- @Optional() options?: PtyServiceOptions,
40
+ @Optional(PtyServiceManagerRemoteOptions)
41
+ opts: PtyServiceOptions = { socketConnectOpts: { port: PTY_SERVICE_PROXY_SERVER_PORT } },
41
42
  ) {
42
43
  super();
43
- this.options = {
44
- reconnectInterval: 2000,
45
- ...options,
46
- };
47
- this.debugLog = new DebugLog('PtyServiceManagerRemote');
48
- this.initRemoteConnectionMode(connectOpts);
44
+ this.initRemoteConnectionMode(opts);
49
45
  }
50
46
 
51
47
  private initRPCService(socket: net.Socket): IDisposable {
@@ -84,15 +80,16 @@ export class PtyServiceManagerRemote extends PtyServiceManager {
84
80
  });
85
81
  }
86
82
 
87
- private initRemoteConnectionMode(connectOpts: SocketConnectOpts) {
83
+ private initRemoteConnectionMode(opts: PtyServiceOptions) {
84
+ const { socketTimeout, reconnectInterval, socketConnectOpts } = opts;
88
85
  if (this.disposer) {
89
86
  this.disposer.dispose();
90
87
  }
91
88
  this.disposer = new Disposable();
92
89
 
93
90
  const socket = new net.Socket();
94
- if (this.options.socketTimeout) {
95
- socket.setTimeout(this.options.socketTimeout);
91
+ if (socketTimeout) {
92
+ socket.setTimeout(socketTimeout);
96
93
  }
97
94
 
98
95
  let reconnectTimer: NodeJS.Timeout | null = null;
@@ -103,14 +100,14 @@ export class PtyServiceManagerRemote extends PtyServiceManager {
103
100
  reconnectTimer = global.setTimeout(() => {
104
101
  this.logger.log('PtyServiceManagerRemote reconnect');
105
102
  socket.destroy();
106
- this.initRemoteConnectionMode(connectOpts);
107
- }, this.options.reconnectInterval);
103
+ this.initRemoteConnectionMode(opts);
104
+ }, reconnectInterval || 2000);
108
105
  };
109
106
 
110
107
  // UNIX Socket 连接监听,成功连接后再创建RPC服务
111
108
  socket.once('connect', () => {
112
109
  this.logger.log('PtyServiceManagerRemote connected');
113
- if (this.options.socketTimeout) {
110
+ if (socketTimeout) {
114
111
  socket.setTimeout(0);
115
112
  }
116
113
  if (reconnectTimer) {
@@ -141,11 +138,11 @@ export class PtyServiceManagerRemote extends PtyServiceManager {
141
138
  });
142
139
 
143
140
  try {
144
- this.debugLog.log('PtyServiceManagerRemote socket start connect');
145
- socket.connect(connectOpts);
141
+ this.logger.log('PtyServiceManagerRemote socket start connect');
142
+ socket.connect(socketConnectOpts);
146
143
  } catch (e) {
147
144
  // 连接错误的时候会抛出异常,此时自动重连,同时需要 catch 错误
148
- this.debugLog.warn('PtyServiceManagerRemote socket connect error', e);
145
+ this.logger.warn('PtyServiceManagerRemote socket connect error', e);
149
146
  }
150
147
  }
151
148