node-pty 0.11.0-beta9 → 1.1.0-beta1

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 (45) hide show
  1. package/README.md +5 -4
  2. package/binding.gyp +70 -29
  3. package/lib/conpty_console_list_agent.js.map +1 -1
  4. package/lib/terminal.js +10 -4
  5. package/lib/terminal.js.map +1 -1
  6. package/lib/terminal.test.js +3 -0
  7. package/lib/terminal.test.js.map +1 -1
  8. package/lib/unixTerminal.js +30 -4
  9. package/lib/unixTerminal.js.map +1 -1
  10. package/lib/unixTerminal.test.js +147 -18
  11. package/lib/unixTerminal.test.js.map +1 -1
  12. package/lib/windowsPtyAgent.js +13 -6
  13. package/lib/windowsPtyAgent.js.map +1 -1
  14. package/lib/windowsTerminal.js +21 -3
  15. package/lib/windowsTerminal.js.map +1 -1
  16. package/lib/windowsTerminal.test.js +98 -97
  17. package/lib/windowsTerminal.test.js.map +1 -1
  18. package/lib/worker/conoutSocketWorker.js +3 -0
  19. package/lib/worker/conoutSocketWorker.js.map +1 -1
  20. package/package.json +3 -4
  21. package/scripts/post-install.js +1 -0
  22. package/src/conpty_console_list_agent.ts +1 -1
  23. package/src/interfaces.ts +8 -2
  24. package/src/native.d.ts +6 -5
  25. package/src/terminal.test.ts +3 -0
  26. package/src/terminal.ts +21 -20
  27. package/src/tsconfig.json +1 -3
  28. package/src/unix/pty.cc +297 -205
  29. package/src/unix/spawn-helper.cc +23 -0
  30. package/src/unixTerminal.test.ts +117 -25
  31. package/src/unixTerminal.ts +31 -11
  32. package/src/win/conpty.cc +85 -38
  33. package/src/win/conpty_console_list.cc +3 -3
  34. package/src/win/path_util.cc +22 -3
  35. package/src/win/path_util.h +1 -0
  36. package/src/win/winpty.cc +118 -54
  37. package/src/windowsConoutConnection.ts +1 -1
  38. package/src/windowsPtyAgent.ts +16 -11
  39. package/src/windowsTerminal.test.ts +100 -99
  40. package/src/windowsTerminal.ts +23 -4
  41. package/src/worker/conoutSocketWorker.ts +4 -0
  42. package/typings/node-pty.d.ts +11 -20
  43. package/deps/winpty/.gitignore +0 -15
  44. package/deps/winpty/misc/.gitignore +0 -2
  45. package/scripts/install.js +0 -18
@@ -78,124 +78,125 @@ function pollForProcessTreeSize(pid, size, intervalMs, timeoutMs) {
78
78
  if (tries * intervalMs >= timeoutMs) {
79
79
  clearInterval(interval);
80
80
  assert.fail("Bad process state, expected: " + size + ", actual: " + list.length);
81
- resolve();
82
81
  }
83
82
  });
84
83
  }, intervalMs);
85
84
  });
86
85
  }
87
86
  if (process.platform === 'win32') {
88
- describe('WindowsTerminal', function () {
89
- describe('kill', function () {
90
- it('should not crash parent process', function (done) {
91
- var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', [], {});
92
- term.kill();
93
- // Add done call to deferred function queue to ensure the kill call has completed
94
- term._defer(done);
95
- });
96
- it('should kill the process tree', function (done) {
97
- this.timeout(5000);
98
- var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', [], {});
99
- // Start sub-processes
100
- term.write('powershell.exe\r');
101
- term.write('notepad.exe\r');
102
- term.write('node.exe\r');
103
- pollForProcessTreeSize(term.pid, 4, 500, 5000).then(function (list) {
104
- assert.equal(list[0].name, 'cmd.exe');
105
- assert.equal(list[1].name, 'powershell.exe');
106
- assert.equal(list[2].name, 'notepad.exe');
107
- assert.equal(list[3].name, 'node.exe');
87
+ [true, false].forEach(function (useConpty) {
88
+ describe("WindowsTerminal (useConpty = " + useConpty + ")", function () {
89
+ describe('kill', function () {
90
+ it('should not crash parent process', function (done) {
91
+ var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', [], { useConpty: useConpty });
108
92
  term.kill();
109
- var desiredState = {};
110
- desiredState[list[0].pid] = false;
111
- desiredState[list[1].pid] = false;
112
- desiredState[list[2].pid] = true;
113
- desiredState[list[3].pid] = false;
114
- pollForProcessState(desiredState).then(function () {
115
- // Kill notepad before done
116
- process.kill(list[2].pid);
117
- done();
93
+ // Add done call to deferred function queue to ensure the kill call has completed
94
+ term._defer(done);
95
+ });
96
+ it('should kill the process tree', function (done) {
97
+ this.timeout(5000);
98
+ var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', [], { useConpty: useConpty });
99
+ // Start sub-processes
100
+ term.write('powershell.exe\r');
101
+ term.write('notepad.exe\r');
102
+ term.write('node.exe\r');
103
+ pollForProcessTreeSize(term.pid, 4, 500, 5000).then(function (list) {
104
+ assert.strictEqual(list[0].name.toLowerCase(), 'cmd.exe');
105
+ assert.strictEqual(list[1].name.toLowerCase(), 'powershell.exe');
106
+ assert.strictEqual(list[2].name.toLowerCase(), 'notepad.exe');
107
+ assert.strictEqual(list[3].name.toLowerCase(), 'node.exe');
108
+ term.kill();
109
+ var desiredState = {};
110
+ desiredState[list[0].pid] = false;
111
+ desiredState[list[1].pid] = false;
112
+ desiredState[list[2].pid] = true;
113
+ desiredState[list[3].pid] = false;
114
+ pollForProcessState(desiredState).then(function () {
115
+ // Kill notepad before done
116
+ process.kill(list[2].pid);
117
+ done();
118
+ });
118
119
  });
119
120
  });
120
121
  });
121
- });
122
- describe('resize', function () {
123
- it('should throw a non-native exception when resizing an invalid value', function () {
124
- var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', [], {});
125
- assert.throws(function () { return term.resize(-1, -1); });
126
- assert.throws(function () { return term.resize(0, 0); });
127
- assert.doesNotThrow(function () { return term.resize(1, 1); });
122
+ describe('resize', function () {
123
+ it('should throw a non-native exception when resizing an invalid value', function () {
124
+ var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', [], { useConpty: useConpty });
125
+ assert.throws(function () { return term.resize(-1, -1); });
126
+ assert.throws(function () { return term.resize(0, 0); });
127
+ assert.doesNotThrow(function () { return term.resize(1, 1); });
128
+ });
129
+ it('should throw a non-native exception when resizing a killed terminal', function (done) {
130
+ var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', [], { useConpty: useConpty });
131
+ term._defer(function () {
132
+ term.on('exit', function () {
133
+ assert.throws(function () { return term.resize(1, 1); });
134
+ done();
135
+ });
136
+ term.destroy();
137
+ });
138
+ });
128
139
  });
129
- it('should throw an non-native exception when resizing a killed terminal', function (done) {
130
- var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', [], {});
131
- term._defer(function () {
140
+ describe('Args as CommandLine', function () {
141
+ it('should not fail running a file containing a space in the path', function (done) {
142
+ var spaceFolder = path.resolve(__dirname, '..', 'fixtures', 'space folder');
143
+ if (!fs.existsSync(spaceFolder)) {
144
+ fs.mkdirSync(spaceFolder);
145
+ }
146
+ var cmdCopiedPath = path.resolve(spaceFolder, 'cmd.exe');
147
+ var data = fs.readFileSync(process.env.windir + "\\System32\\cmd.exe");
148
+ fs.writeFileSync(cmdCopiedPath, data);
149
+ if (!fs.existsSync(cmdCopiedPath)) {
150
+ // Skip test if git bash isn't installed
151
+ return;
152
+ }
153
+ var term = new windowsTerminal_1.WindowsTerminal(cmdCopiedPath, '/c echo "hello world"', { useConpty: useConpty });
154
+ var result = '';
155
+ term.on('data', function (data) {
156
+ result += data;
157
+ });
132
158
  term.on('exit', function () {
133
- assert.throws(function () { return term.resize(1, 1); });
159
+ assert.ok(result.indexOf('hello world') >= 1);
134
160
  done();
135
161
  });
136
- term.destroy();
137
- });
138
- });
139
- });
140
- describe('Args as CommandLine', function () {
141
- it('should not fail running a file containing a space in the path', function (done) {
142
- var spaceFolder = path.resolve(__dirname, '..', 'fixtures', 'space folder');
143
- if (!fs.existsSync(spaceFolder)) {
144
- fs.mkdirSync(spaceFolder);
145
- }
146
- var cmdCopiedPath = path.resolve(spaceFolder, 'cmd.exe');
147
- var data = fs.readFileSync(process.env.windir + "\\System32\\cmd.exe");
148
- fs.writeFileSync(cmdCopiedPath, data);
149
- if (!fs.existsSync(cmdCopiedPath)) {
150
- // Skip test if git bash isn't installed
151
- return;
152
- }
153
- var term = new windowsTerminal_1.WindowsTerminal(cmdCopiedPath, '/c echo "hello world"', {});
154
- var result = '';
155
- term.on('data', function (data) {
156
- result += data;
157
- });
158
- term.on('exit', function () {
159
- assert.ok(result.indexOf('hello world') >= 1);
160
- done();
161
162
  });
162
163
  });
163
- });
164
- describe('env', function () {
165
- it('should set environment variables of the shell', function (done) {
166
- var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', '/C echo %FOO%', { env: { FOO: 'BAR' } });
167
- var result = '';
168
- term.on('data', function (data) {
169
- result += data;
170
- });
171
- term.on('exit', function () {
172
- assert.ok(result.indexOf('BAR') >= 0);
173
- done();
164
+ describe('env', function () {
165
+ it('should set environment variables of the shell', function (done) {
166
+ var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', '/C echo %FOO%', { env: { FOO: 'BAR' } });
167
+ var result = '';
168
+ term.on('data', function (data) {
169
+ result += data;
170
+ });
171
+ term.on('exit', function () {
172
+ assert.ok(result.indexOf('BAR') >= 0);
173
+ done();
174
+ });
174
175
  });
175
176
  });
176
- });
177
- describe('On close', function () {
178
- it('should return process zero exit codes', function (done) {
179
- var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', '/C exit');
180
- term.on('exit', function (code) {
181
- assert.equal(code, 0);
182
- done();
177
+ describe('On close', function () {
178
+ it('should return process zero exit codes', function (done) {
179
+ var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', '/C exit', { useConpty: useConpty });
180
+ term.on('exit', function (code) {
181
+ assert.strictEqual(code, 0);
182
+ done();
183
+ });
183
184
  });
184
- });
185
- it('should return process non-zero exit codes', function (done) {
186
- var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', '/C exit 2');
187
- term.on('exit', function (code) {
188
- assert.equal(code, 2);
189
- done();
185
+ it('should return process non-zero exit codes', function (done) {
186
+ var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', '/C exit 2', { useConpty: useConpty });
187
+ term.on('exit', function (code) {
188
+ assert.strictEqual(code, 2);
189
+ done();
190
+ });
190
191
  });
191
192
  });
192
- });
193
- describe('winpty', function () {
194
- it('should accept input', function (done) {
195
- var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', '', { useConpty: false });
196
- term.write('exit\r');
197
- term.on('exit', function () {
198
- done();
193
+ describe('Write', function () {
194
+ it('should accept input', function (done) {
195
+ var term = new windowsTerminal_1.WindowsTerminal('cmd.exe', '', { useConpty: useConpty });
196
+ term.write('exit\r');
197
+ term.on('exit', function () {
198
+ done();
199
+ });
199
200
  });
200
201
  });
201
202
  });
@@ -1 +1 @@
1
- {"version":3,"file":"windowsTerminal.test.js","sourceRoot":"","sources":["../src/windowsTerminal.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"windowsTerminal.test.js","sourceRoot":"","sources":["../src/windowsTerminal.test.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,9 @@ conoutSocket.connect(conoutPipeName, function () {
14
14
  conoutSocket.pipe(workerSocket);
15
15
  });
16
16
  server.listen(conout_1.getWorkerPipeName(conoutPipeName));
17
+ if (!worker_threads_1.parentPort) {
18
+ throw new Error('worker_threads parentPort is null');
19
+ }
17
20
  worker_threads_1.parentPort.postMessage(1 /* READY */);
18
21
  });
19
22
  //# sourceMappingURL=conoutSocketWorker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conoutSocketWorker.js","sourceRoot":"","sources":["../../src/worker/conoutSocketWorker.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,iDAAwD;AACxD,2BAA2C;AAC3C,2CAAuF;AAEvF,IAAM,cAAc,GAAI,2BAA0B,CAAC,cAAc,CAAC;AAClE,IAAM,YAAY,GAAG,IAAI,YAAM,EAAE,CAAC;AAClC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE;IACnC,IAAM,MAAM,GAAG,kBAAY,CAAC,UAAA,YAAY;QACtC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,0BAAiB,CAAC,cAAc,CAAC,CAAC,CAAC;IACjD,2BAAU,CAAC,WAAW,eAA2B,CAAC;AACpD,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"conoutSocketWorker.js","sourceRoot":"","sources":["../../src/worker/conoutSocketWorker.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,iDAAwD;AACxD,2BAA2C;AAC3C,2CAAuF;AAEvF,IAAM,cAAc,GAAI,2BAA0B,CAAC,cAAc,CAAC;AAClE,IAAM,YAAY,GAAG,IAAI,YAAM,EAAE,CAAC;AAClC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE;IACnC,IAAM,MAAM,GAAG,kBAAY,CAAC,UAAA,YAAY;QACtC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,0BAAiB,CAAC,cAAc,CAAC,CAAC,CAAC;IAEjD,IAAI,CAAC,2BAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;KACtD;IACD,2BAAU,CAAC,WAAW,eAA2B,CAAC;AACpD,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "author": {
5
5
  "name": "Microsoft Corporation"
6
6
  },
7
- "version": "0.11.0-beta9",
7
+ "version": "1.1.0-beta1",
8
8
  "license": "MIT",
9
9
  "main": "./lib/index.js",
10
10
  "types": "./typings/node-pty.d.ts",
@@ -36,7 +36,6 @@
36
36
  "build": "tsc -b ./src/tsconfig.json",
37
37
  "watch": "tsc -b -w ./src/tsconfig.json",
38
38
  "lint": "eslint -c .eslintrc.js --ext .ts src/",
39
- "install": "node scripts/install.js",
40
39
  "postinstall": "node scripts/post-install.js",
41
40
  "test": "cross-env NODE_ENV=test mocha -R spec --exit lib/*.test.js",
42
41
  "posttest": "npm run lint",
@@ -44,7 +43,7 @@
44
43
  "prepublishOnly": "npm run build"
45
44
  },
46
45
  "dependencies": {
47
- "nan": "^2.14.0"
46
+ "nan": "^2.17.0"
48
47
  },
49
48
  "devDependencies": {
50
49
  "@types/mocha": "^7.0.2",
@@ -53,7 +52,7 @@
53
52
  "@typescript-eslint/parser": "^2.27.0",
54
53
  "cross-env": "^5.1.4",
55
54
  "eslint": "^6.8.0",
56
- "mocha": "^7.1.1",
55
+ "mocha": "10",
57
56
  "ps-list": "^6.0.0",
58
57
  "typescript": "^3.8.3"
59
58
  }
@@ -9,6 +9,7 @@ var BUILD_FILES = [
9
9
  path.join(RELEASE_DIR, 'conpty_console_list.pdb'),
10
10
  path.join(RELEASE_DIR, 'pty.node'),
11
11
  path.join(RELEASE_DIR, 'pty.pdb'),
12
+ path.join(RELEASE_DIR, 'spawn-helper'),
12
13
  path.join(RELEASE_DIR, 'winpty-agent.exe'),
13
14
  path.join(RELEASE_DIR, 'winpty-agent.pdb'),
14
15
  path.join(RELEASE_DIR, 'winpty.dll'),
@@ -15,5 +15,5 @@ try {
15
15
 
16
16
  const shellPid = parseInt(process.argv[2], 10);
17
17
  const consoleProcessList = getConsoleProcessList(shellPid);
18
- process.send({ consoleProcessList });
18
+ process.send!({ consoleProcessList });
19
19
  process.exit(0);
package/src/interfaces.ts CHANGED
@@ -31,6 +31,12 @@ export interface ITerminal {
31
31
  */
32
32
  resize(cols: number, rows: number): void;
33
33
 
34
+ /**
35
+ * Clears the pty's internal representation of its buffer. This is a no-op
36
+ * unless on Windows/ConPTY.
37
+ */
38
+ clear(): void;
39
+
34
40
  /**
35
41
  * Close, kill and destroy the socket.
36
42
  */
@@ -100,7 +106,7 @@ interface IBasePtyForkOptions {
100
106
  rows?: number;
101
107
  cwd?: string;
102
108
  env?: IProcessEnv;
103
- encoding?: string;
109
+ encoding?: string | null;
104
110
  handleFlowControl?: boolean;
105
111
  flowControlPause?: string;
106
112
  flowControlResume?: string;
@@ -119,5 +125,5 @@ export interface IWindowsPtyForkOptions extends IBasePtyForkOptions {
119
125
  export interface IPtyOpenOptions {
120
126
  cols?: number;
121
127
  rows?: number;
122
- encoding?: string;
128
+ encoding?: string | null;
123
129
  }
package/src/native.d.ts CHANGED
@@ -6,21 +6,23 @@ interface IConptyNative {
6
6
  startProcess(file: string, cols: number, rows: number, debug: boolean, pipeName: string, conptyInheritCursor: boolean): IConptyProcess;
7
7
  connect(ptyId: number, commandLine: string, cwd: string, env: string[], onExitCallback: (exitCode: number) => void): { pid: number };
8
8
  resize(ptyId: number, cols: number, rows: number): void;
9
+ clear(ptyId: number): void;
9
10
  kill(ptyId: number): void;
10
11
  }
11
12
 
12
13
  interface IWinptyNative {
13
14
  startProcess(file: string, commandLine: string, env: string[], cwd: string, cols: number, rows: number, debug: boolean): IWinptyProcess;
14
- resize(processHandle: number, cols: number, rows: number): void;
15
- kill(pid: number, innerPidHandle: number): void;
15
+ resize(pid: number, cols: number, rows: number): void;
16
+ kill(pid: number, innerPid: number): void;
16
17
  getProcessList(pid: number): number[];
17
- getExitCode(innerPidHandle: number): number;
18
+ getExitCode(innerPid: number): number;
18
19
  }
19
20
 
20
21
  interface IUnixNative {
21
- fork(file: string, args: string[], parsedEnv: string[], cwd: string, cols: number, rows: number, uid: number, gid: number, useUtf8: boolean, onExitCallback: (code: number, signal: number) => void): IUnixProcess;
22
+ fork(file: string, args: string[], parsedEnv: string[], cwd: string, cols: number, rows: number, uid: number, gid: number, useUtf8: boolean, helperPath: string, onExitCallback: (code: number, signal: number) => void): IUnixProcess;
22
23
  open(cols: number, rows: number): IUnixOpenProcess;
23
24
  process(fd: number, pty: string): string;
25
+ process(pid: number): string;
24
26
  resize(fd: number, cols: number, rows: number): void;
25
27
  }
26
28
 
@@ -38,7 +40,6 @@ interface IWinptyProcess {
38
40
  conout: string;
39
41
  pid: number;
40
42
  innerPid: number;
41
- innerPidHandle: number;
42
43
  }
43
44
 
44
45
  interface IUnixProcess {
@@ -29,6 +29,9 @@ class TestTerminal extends Terminal {
29
29
  public resize(cols: number, rows: number): void {
30
30
  throw new Error('Method not implemented.');
31
31
  }
32
+ public clear(): void {
33
+ throw new Error('Method not implemented.');
34
+ }
32
35
  public destroy(): void {
33
36
  throw new Error('Method not implemented.');
34
37
  }
package/src/terminal.ts CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  import { Socket } from 'net';
8
8
  import { EventEmitter } from 'events';
9
- import { ITerminal, IPtyForkOptions } from './interfaces';
9
+ import { ITerminal, IPtyForkOptions, IProcessEnv } from './interfaces';
10
10
  import { EventEmitter2, IEvent } from './eventEmitter2';
11
11
  import { IExitEvent } from './types';
12
12
 
@@ -22,18 +22,18 @@ const FLOW_CONTROL_PAUSE = '\x13'; // defaults to XOFF
22
22
  const FLOW_CONTROL_RESUME = '\x11'; // defaults to XON
23
23
 
24
24
  export abstract class Terminal implements ITerminal {
25
- protected _socket: Socket;
26
- protected _pid: number;
27
- protected _fd: number;
25
+ protected _socket!: Socket; // HACK: This is unsafe
26
+ protected _pid: number = 0;
27
+ protected _fd: number = 0;
28
28
  protected _pty: any;
29
29
 
30
- protected _file: string;
31
- protected _name: string;
32
- protected _cols: number;
33
- protected _rows: number;
30
+ protected _file!: string; // HACK: This is unsafe
31
+ protected _name!: string; // HACK: This is unsafe
32
+ protected _cols: number = 0;
33
+ protected _rows: number = 0;
34
34
 
35
- protected _readable: boolean;
36
- protected _writable: boolean;
35
+ protected _readable: boolean = false;
36
+ protected _writable: boolean = false;
37
37
 
38
38
  protected _internalee: EventEmitter;
39
39
  private _flowControlPause: string;
@@ -53,6 +53,11 @@ export abstract class Terminal implements ITerminal {
53
53
  // for 'close'
54
54
  this._internalee = new EventEmitter();
55
55
 
56
+ // setup flow control handling
57
+ this.handleFlowControl = !!(opt?.handleFlowControl);
58
+ this._flowControlPause = opt?.flowControlPause || FLOW_CONTROL_PAUSE;
59
+ this._flowControlResume = opt?.flowControlResume || FLOW_CONTROL_RESUME;
60
+
56
61
  if (!opt) {
57
62
  return;
58
63
  }
@@ -67,11 +72,6 @@ export abstract class Terminal implements ITerminal {
67
72
  this._checkType('uid', opt.uid ? opt.uid : undefined, 'number');
68
73
  this._checkType('gid', opt.gid ? opt.gid : undefined, 'number');
69
74
  this._checkType('encoding', opt.encoding ? opt.encoding : undefined, 'string');
70
-
71
- // setup flow control handling
72
- this.handleFlowControl = !!(opt.handleFlowControl);
73
- this._flowControlPause = opt.flowControlPause || FLOW_CONTROL_PAUSE;
74
- this._flowControlResume = opt.flowControlResume || FLOW_CONTROL_RESUME;
75
75
  }
76
76
 
77
77
  protected abstract _write(data: string): void;
@@ -157,9 +157,9 @@ export abstract class Terminal implements ITerminal {
157
157
 
158
158
  public emit(eventName: string, ...args: any[]): any {
159
159
  if (eventName === 'close') {
160
- return this._internalee.emit.apply(this._internalee, arguments);
160
+ return this._internalee.emit.apply(this._internalee, arguments as any);
161
161
  }
162
- return this._socket.emit.apply(this._socket, arguments);
162
+ return this._socket.emit.apply(this._socket, arguments as any);
163
163
  }
164
164
 
165
165
  public listeners(eventName: string): Function[] {
@@ -179,12 +179,13 @@ export abstract class Terminal implements ITerminal {
179
179
  }
180
180
 
181
181
  public abstract resize(cols: number, rows: number): void;
182
+ public abstract clear(): void;
182
183
  public abstract destroy(): void;
183
184
  public abstract kill(signal?: string): void;
184
185
 
185
186
  public abstract get process(): string;
186
- public abstract get master(): Socket;
187
- public abstract get slave(): Socket;
187
+ public abstract get master(): Socket| undefined;
188
+ public abstract get slave(): Socket | undefined;
188
189
 
189
190
  protected _close(): void {
190
191
  this._socket.readable = false;
@@ -194,7 +195,7 @@ export abstract class Terminal implements ITerminal {
194
195
  this._readable = false;
195
196
  }
196
197
 
197
- protected _parseEnv(env: {[key: string]: string}): string[] {
198
+ protected _parseEnv(env: IProcessEnv): string[] {
198
199
  const keys = Object.keys(env || {});
199
200
  const pairs = [];
200
201
 
package/src/tsconfig.json CHANGED
@@ -8,9 +8,7 @@
8
8
  "lib": [
9
9
  "es2015"
10
10
  ],
11
- "alwaysStrict": true,
12
- "noImplicitAny": true,
13
- "noImplicitThis": true
11
+ "strict": true
14
12
  },
15
13
  "exclude": [
16
14
  "node_modules",