@opensumi/ide-terminal-next 2.13.9 → 2.14.1

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 (106) hide show
  1. package/lib/browser/component/terminal.view.d.ts.map +1 -1
  2. package/lib/browser/component/terminal.view.js +1 -1
  3. package/lib/browser/component/terminal.view.js.map +1 -1
  4. package/lib/browser/component/terminal.widget.d.ts.map +1 -1
  5. package/lib/browser/component/terminal.widget.js +2 -0
  6. package/lib/browser/component/terminal.widget.js.map +1 -1
  7. package/lib/browser/contribution/terminal.menu.d.ts.map +1 -1
  8. package/lib/browser/contribution/terminal.menu.js +18 -1
  9. package/lib/browser/contribution/terminal.menu.js.map +1 -1
  10. package/lib/browser/index.d.ts.map +1 -1
  11. package/lib/browser/index.js +7 -1
  12. package/lib/browser/index.js.map +1 -1
  13. package/lib/browser/links/external-link-provider-adapter.d.ts +5 -2
  14. package/lib/browser/links/external-link-provider-adapter.d.ts.map +1 -1
  15. package/lib/browser/links/external-link-provider-adapter.js +24 -4
  16. package/lib/browser/links/external-link-provider-adapter.js.map +1 -1
  17. package/lib/browser/links/link-manager.d.ts +33 -4
  18. package/lib/browser/links/link-manager.d.ts.map +1 -1
  19. package/lib/browser/links/link-manager.js +82 -3
  20. package/lib/browser/links/link-manager.js.map +1 -1
  21. package/lib/browser/links/link.d.ts +8 -3
  22. package/lib/browser/links/link.d.ts.map +1 -1
  23. package/lib/browser/links/link.js +50 -5
  24. package/lib/browser/links/link.js.map +1 -1
  25. package/lib/browser/links/protocol-link-provider.d.ts +5 -2
  26. package/lib/browser/links/protocol-link-provider.d.ts.map +1 -1
  27. package/lib/browser/links/protocol-link-provider.js +24 -4
  28. package/lib/browser/links/protocol-link-provider.js.map +1 -1
  29. package/lib/browser/links/validated-local-link-provider.d.ts +5 -3
  30. package/lib/browser/links/validated-local-link-provider.d.ts.map +1 -1
  31. package/lib/browser/links/validated-local-link-provider.js +24 -4
  32. package/lib/browser/links/validated-local-link-provider.js.map +1 -1
  33. package/lib/browser/terminal.addon.d.ts +1 -1
  34. package/lib/browser/terminal.addon.d.ts.map +1 -1
  35. package/lib/browser/terminal.addon.js +5 -5
  36. package/lib/browser/terminal.addon.js.map +1 -1
  37. package/lib/browser/terminal.client.d.ts +3 -1
  38. package/lib/browser/terminal.client.d.ts.map +1 -1
  39. package/lib/browser/terminal.client.js +29 -20
  40. package/lib/browser/terminal.client.js.map +1 -1
  41. package/lib/browser/terminal.controller.d.ts +4 -0
  42. package/lib/browser/terminal.controller.d.ts.map +1 -1
  43. package/lib/browser/terminal.controller.js +23 -0
  44. package/lib/browser/terminal.controller.js.map +1 -1
  45. package/lib/browser/terminal.hover.manager.d.ts +13 -0
  46. package/lib/browser/terminal.hover.manager.d.ts.map +1 -0
  47. package/lib/browser/terminal.hover.manager.js +83 -0
  48. package/lib/browser/terminal.hover.manager.js.map +1 -0
  49. package/lib/browser/terminal.internal.service.d.ts +21 -0
  50. package/lib/browser/terminal.internal.service.d.ts.map +1 -0
  51. package/lib/browser/terminal.internal.service.js +93 -0
  52. package/lib/browser/terminal.internal.service.js.map +1 -0
  53. package/lib/browser/terminal.service.d.ts +28 -24
  54. package/lib/browser/terminal.service.d.ts.map +1 -1
  55. package/lib/browser/terminal.service.js +137 -130
  56. package/lib/browser/terminal.service.js.map +1 -1
  57. package/lib/common/client.d.ts +2 -1
  58. package/lib/common/client.d.ts.map +1 -1
  59. package/lib/common/commands.d.ts +5 -0
  60. package/lib/common/commands.d.ts.map +1 -1
  61. package/lib/common/commands.js +7 -2
  62. package/lib/common/commands.js.map +1 -1
  63. package/lib/common/controller.d.ts +7 -0
  64. package/lib/common/controller.d.ts.map +1 -1
  65. package/lib/common/controller.js +2 -1
  66. package/lib/common/controller.js.map +1 -1
  67. package/lib/common/error.d.ts +1 -0
  68. package/lib/common/error.d.ts.map +1 -1
  69. package/lib/common/error.js +5 -1
  70. package/lib/common/error.js.map +1 -1
  71. package/lib/common/extension.d.ts +2 -0
  72. package/lib/common/extension.d.ts.map +1 -1
  73. package/lib/common/pty.d.ts +79 -22
  74. package/lib/common/pty.d.ts.map +1 -1
  75. package/lib/common/pty.js +2 -1
  76. package/lib/common/pty.js.map +1 -1
  77. package/lib/common/service.d.ts +1 -1
  78. package/lib/common/service.d.ts.map +1 -1
  79. package/lib/common/shell.d.ts +1 -0
  80. package/lib/common/shell.d.ts.map +1 -1
  81. package/lib/common/shell.js +2 -2
  82. package/lib/common/shell.js.map +1 -1
  83. package/lib/common/utils.d.ts +1 -1
  84. package/lib/common/utils.d.ts.map +1 -1
  85. package/lib/common/utils.js +3 -3
  86. package/lib/common/utils.js.map +1 -1
  87. package/lib/node/index.d.ts.map +1 -1
  88. package/lib/node/index.js +5 -0
  89. package/lib/node/index.js.map +1 -1
  90. package/lib/node/pty.d.ts +13 -5
  91. package/lib/node/pty.d.ts.map +1 -1
  92. package/lib/node/pty.js +96 -13
  93. package/lib/node/pty.js.map +1 -1
  94. package/lib/node/shell.d.ts +8 -0
  95. package/lib/node/shell.d.ts.map +1 -1
  96. package/lib/node/shell.js +90 -1
  97. package/lib/node/shell.js.map +1 -1
  98. package/lib/node/terminal.service.client.d.ts +20 -7
  99. package/lib/node/terminal.service.client.d.ts.map +1 -1
  100. package/lib/node/terminal.service.client.js +56 -18
  101. package/lib/node/terminal.service.client.js.map +1 -1
  102. package/lib/node/terminal.service.d.ts +8 -3
  103. package/lib/node/terminal.service.d.ts.map +1 -1
  104. package/lib/node/terminal.service.js +80 -25
  105. package/lib/node/terminal.service.js.map +1 -1
  106. package/package.json +16 -16
@@ -2,12 +2,19 @@ import type vscode from 'vscode';
2
2
  import { Terminal as XTerm } from 'xterm';
3
3
  import { Uri } from '@opensumi/ide-core-common';
4
4
  import { WindowsShellType } from './shell';
5
+ import { IPty as INodePty } from 'node-pty';
6
+ import { OperatingSystem } from '@opensumi/ide-core-common/lib/platform';
7
+ import { ITerminalError } from './error';
8
+ export interface IPty extends INodePty {
9
+ /**
10
+ * @deprecated 请使用 `IPty.launchConfig` 的 shellPath 字段
11
+ */
12
+ bin: string;
13
+ launchConfig: IShellLaunchConfig;
14
+ parsedName: string;
15
+ }
5
16
  export declare const ITerminalServicePath = "ITerminalServicePath";
6
17
  export declare const ITerminalProcessPath = "ITerminalProcessPath";
7
- export declare const ITerminalNodeService: unique symbol;
8
- export declare const ITerminalProcessService: unique symbol;
9
- export declare const ITerminalServiceClient: unique symbol;
10
- export declare const IExternlTerminalService: unique symbol;
11
18
  export interface Terminal {
12
19
  readonly xterm: XTerm;
13
20
  /**
@@ -123,48 +130,63 @@ export interface TerminalOptions {
123
130
  args?: any;
124
131
  beforeCreate?: (terminalId: string) => void;
125
132
  }
133
+ export declare const ITerminalNodeService: unique symbol;
126
134
  export interface ITerminalNodeService {
127
- create(id: string, rows: number, cols: number, options: TerminalOptions): any;
135
+ create2(id: string, options: IShellLaunchConfig): Promise<IPty | undefined>;
128
136
  onMessage(id: string, msg: string): void;
129
137
  resize(id: string, rows: number, cols: number): any;
130
138
  getShellName(id: string): string;
131
139
  getProcessId(id: string): number;
132
- disposeById(id: string): any;
133
- dispose(): any;
134
- setClient(clientId: string, client: ITerminalServiceClient): any;
135
- closeClient(clientId: string): any;
140
+ disposeById(id: string): void;
141
+ dispose(): void;
142
+ setClient(clientId: string, client: ITerminalServiceClient): void;
143
+ closeClient(clientId: string): void;
136
144
  ensureClientTerminal(clientId: string, terminalIdArr: string[]): boolean;
137
145
  }
146
+ export declare const ITerminalProcessService: unique symbol;
138
147
  export interface ITerminalProcessService {
139
148
  getEnv(): Promise<{
140
149
  [key in string]: string | undefined;
141
150
  }>;
142
151
  }
152
+ export interface INodePtyInstance {
153
+ id: string;
154
+ name: string;
155
+ pid: number;
156
+ proess: string;
157
+ shellPath?: string;
158
+ }
159
+ export declare const ITerminalServiceClient: unique symbol;
143
160
  export interface ITerminalServiceClient {
144
- create(id: string, rows: number, cols: number, options: TerminalOptions): Promise<{
145
- pid: number;
146
- name: string;
147
- }> | {
148
- pid: number;
149
- name: string;
150
- };
161
+ create2(id: string, launchConfig: IShellLaunchConfig): Promise<INodePtyInstance | undefined>;
151
162
  onMessage(id: string, msg: string): void;
152
- resize(id: string, rows: number, cols: number): any;
153
- disposeById(id: string): any;
163
+ resize(id: string, rows: number, cols: number): void;
164
+ disposeById(id: string): void;
154
165
  getProcessId(id: string): number;
155
- clientMessage(id: any, data: any): any;
156
- closeClient(id: string, code?: number, signal?: number): void;
157
- setConnectionClientId(clientId: string): any;
158
- dispose(): any;
166
+ clientMessage(id: string, data: any): void;
167
+ closeClient(sessionId: string, data?: ITerminalError | {
168
+ code?: number;
169
+ signal?: number;
170
+ } | number, signal?: number): void;
171
+ setConnectionClientId(clientId: string): void;
172
+ dispose(): void;
159
173
  getShellName(id: string): string;
160
174
  ensureTerminal(terminalIdArr: string[]): boolean;
161
175
  $resolveWindowsShellPath(type: WindowsShellType): Promise<string | undefined>;
176
+ $resolveUnixShellPath(type: string): Promise<string | undefined>;
177
+ $resolvePotentialUnixShellPath(): Promise<string | undefined>;
178
+ $resolvePotentialWindowsShellPath(): Promise<{
179
+ path: string;
180
+ type: WindowsShellType;
181
+ }>;
182
+ $resolveShellPath(paths: string[]): Promise<string | undefined>;
162
183
  }
163
184
  export interface ITerminalInfo {
164
185
  id: string;
165
186
  name: string;
166
187
  isActive: boolean;
167
188
  }
189
+ export declare const IExternlTerminalService: unique symbol;
168
190
  /**
169
191
  * 使用依赖注入的方式复写这个类型,
170
192
  * 支持更多形式的 termial 实现。
@@ -209,4 +231,39 @@ export interface IExternlTerminalService {
209
231
  */
210
232
  getProcessId(id: string): Promise<number>;
211
233
  }
234
+ export interface IShellLaunchConfig {
235
+ shellPath?: string;
236
+ args?: string[];
237
+ os?: OperatingSystem;
238
+ /**
239
+ * Whether the terminal process environment should be exactly as provided in
240
+ * `TerminalOptions.env`. When this is false (default), the environment will be based on the
241
+ * window's environment and also apply configured platform settings like
242
+ * `terminal.integrated.windows.env` on top. When this is true, the complete environment
243
+ * must be provided as nothing will be inherited from the process or any configuration.
244
+ */
245
+ strictEnv?: boolean;
246
+ /**
247
+ * Name of the terminal to be set in environment ($TERM variable).
248
+ */
249
+ name?: string;
250
+ /**
251
+ * Number of intial cols of the pty.
252
+ */
253
+ cols: number;
254
+ /**
255
+ * Number of initial rows of the pty.
256
+ */
257
+ rows: number;
258
+ /**
259
+ * Working directory to be set for the child program.
260
+ */
261
+ cwd?: string | Uri;
262
+ /**
263
+ * Environment to be set for the child program.
264
+ */
265
+ env?: {
266
+ [key: string]: string | null;
267
+ };
268
+ }
212
269
  //# sourceMappingURL=pty.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../src/common/pty.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../src/common/pty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,WAAW,IAAK,SAAQ,QAAQ;IACpC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,kBAAkB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpC;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAEnD;;;;OAIG;IACH,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb,QAAQ,EAAE,OAAO,CAAC;IAElB,EAAE,EAAE,MAAM,CAAC;IAEX,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEzC,wBAAwB,QAAG;IAE3B,OAAO,CAAC,IAAI,EAAE,MAAM,OAAE;IAEtB,YAAY,CAAC,EAAE,EAAE,MAAM,OAAE;IAEzB;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAE9B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAEnB;;OAEG;IACH,GAAG,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAEvC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,GAAG,MAAM,CAAC,SAAS,CAAC;IAE9D;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAE1B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC;IAEX,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,oBAAoB,eAAiC,CAAC;AACnE,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IAC5E,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAE;IAC/C,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC;IAChB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAClE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;CAC1E;AAED,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AACzE,MAAM,WAAW,uBAAuB;IACtC,MAAM,IAAI,OAAO,CAAC;SAAG,GAAG,IAAI,MAAM,GAAG,MAAM,GAAG,SAAS;KAAE,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AACvE,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAC7F,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACrD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,KAAA,GAAG,IAAI,CAAC;IACtC,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EACD,cAAc,GACd;QACE,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GACD,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAAC;IACR,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,OAAO,IAAI,IAAI,CAAC;IAChB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACjD,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9E,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACjE,8BAA8B,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9D,iCAAiC,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;IACvF,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAGD,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AACzE;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/G;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/D;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACrD;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;OAIG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C;AAGD,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,EAAE,CAAC,EAAE,eAAe,CAAC;IAErB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAEnB;;OAEG;IACH,GAAG,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACxC"}
package/lib/common/pty.js CHANGED
@@ -4,7 +4,8 @@ exports.IExternlTerminalService = exports.ITerminalServiceClient = exports.ITerm
4
4
  exports.ITerminalServicePath = 'ITerminalServicePath';
5
5
  exports.ITerminalProcessPath = 'ITerminalProcessPath';
6
6
  exports.ITerminalNodeService = Symbol('ITerminalNodeService');
7
- exports.ITerminalProcessService = Symbol('ITerminalProcessServices');
7
+ exports.ITerminalProcessService = Symbol('ITerminalProcessService');
8
8
  exports.ITerminalServiceClient = Symbol('ITerminalServiceClient');
9
+ // 搜了一下代码,在 OpenSumi 里已经没有地方引用了
9
10
  exports.IExternlTerminalService = Symbol('IExternlTerminalService');
10
11
  //# sourceMappingURL=pty.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pty.js","sourceRoot":"","sources":["../../src/common/pty.ts"],"names":[],"mappings":";;;AAKa,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAC9C,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAE9C,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACtD,QAAA,uBAAuB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAC7D,QAAA,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC1D,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"pty.js","sourceRoot":"","sources":["../../src/common/pty.ts"],"names":[],"mappings":";;;AAiBa,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAC9C,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AA4I9C,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AActD,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAa5D,QAAA,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAoCvE,+BAA+B;AAClB,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC"}
@@ -73,7 +73,7 @@ export interface ITerminalService {
73
73
  *
74
74
  * @param sessionid
75
75
  */
76
- onExit(handler: (sessionid: IPtyExitEvent) => void): IDisposable;
76
+ onExit(handler: (event: IPtyExitEvent) => void): IDisposable;
77
77
  /**
78
78
  * 返回终端环境的 OS
79
79
  */
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/common/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAC3D,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,iBAAiB,CAAC,IAAI,MAAM,CAAC;IAC7B;;;OAGG;IACH,UAAU,CAAC,IAAI,gBAAgB,CAAC;IAChC;;;;;OAKG;IACH,KAAK,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C;;;;;;;;OAQG;IACH,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,eAAe,EACzB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD;;;;;OAKG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE;;;;OAIG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,WAAW,CAAC;IAC/D;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,GAAG,WAAW,CAAC;IACjE;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;CACnC;AAED,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAC3E,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,iBAAiB,IAAI,MAAM,CAAC;IAC5B,UAAU,IAAI,gBAAgB,CAAC;IAC/B,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/C"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/common/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAC3D,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,iBAAiB,CAAC,IAAI,MAAM,CAAC;IAC7B;;;OAGG;IACH,UAAU,CAAC,IAAI,gBAAgB,CAAC;IAChC;;;;;OAKG;IACH,KAAK,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C;;;;;;;;OAQG;IACH,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,eAAe,EACzB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD;;;;;OAKG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE;;;;OAIG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,WAAW,CAAC;IAC/D;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,WAAW,CAAC;IAC7D;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;CACnC;AAED,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAC3E,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,iBAAiB,IAAI,MAAM,CAAC;IAC5B,UAAU,IAAI,gBAAgB,CAAC;IAC/B,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/C"}
@@ -7,4 +7,5 @@ export declare enum WindowsShellType {
7
7
  'powershell' = "powershell",
8
8
  'git-bash' = "git-bash"
9
9
  }
10
+ export declare type ShellType = WindowsShellType | 'default' | string;
10
11
  //# sourceMappingURL=shell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/common/shell.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B;;;CAG3C,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,KAAK,QAAQ;IACb,YAAY,eAAe;IAC3B,UAAU,aAAa;CACxB"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/common/shell.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B;;;CAG3C,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,KAAK,QAAQ;IACb,YAAY,eAAe;IAC3B,UAAU,aAAa;CACxB;AAED,oBAAY,SAAS,GAAG,gBAAgB,GAAG,SAAS,GAAG,MAAM,CAAC"}
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WindowsShellType = exports.WINDOWS_DEFAULT_SHELL_PATH_MAPS = void 0;
4
4
  exports.WINDOWS_DEFAULT_SHELL_PATH_MAPS = {
5
- ['powershell']: 'powershell.exe',
6
- ['cmd']: 'cmd.exe',
5
+ powershell: 'powershell.exe',
6
+ cmd: 'cmd.exe',
7
7
  };
8
8
  var WindowsShellType;
9
9
  (function (WindowsShellType) {
@@ -1 +1 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/common/shell.ts"],"names":[],"mappings":";;;AAAa,QAAA,+BAA+B,GAAG;IAC7C,CAAC,YAAY,CAAC,EAAE,gBAAgB;IAChC,CAAC,KAAK,CAAC,EAAE,SAAS;CACnB,CAAC;AAEF,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,+BAAa,CAAA;IACb,6CAA2B,CAAA;IAC3B,yCAAuB,CAAA;AACzB,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B"}
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/common/shell.ts"],"names":[],"mappings":";;;AAAa,QAAA,+BAA+B,GAAG;IAC7C,UAAU,EAAE,gBAAgB;IAC5B,GAAG,EAAE,SAAS;CACf,CAAC;AAEF,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,+BAAa,CAAA;IACb,6CAA2B,CAAA;IAC3B,yCAAuB,CAAA;AACzB,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B"}
@@ -1,4 +1,4 @@
1
1
  export declare const userActionViewUuid: () => string;
2
2
  export declare const apiActionViewUuid: () => string;
3
- export declare const generate: () => string;
3
+ export declare const generateSessionId: () => string;
4
4
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,kBAAkB,cAAsC,CAAC;AAEtE,eAAO,MAAM,iBAAiB,cAAuC,CAAC;AAEtE,eAAO,MAAM,QAAQ,cAAe,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,kBAAkB,cAAsC,CAAC;AAEtE,eAAO,MAAM,iBAAiB,cAAuC,CAAC;AAEtE,eAAO,MAAM,iBAAiB,cAAe,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generate = exports.apiActionViewUuid = exports.userActionViewUuid = void 0;
3
+ exports.generateSessionId = exports.apiActionViewUuid = exports.userActionViewUuid = void 0;
4
4
  const ide_core_common_1 = require("@opensumi/ide-core-common");
5
5
  let i = 0;
6
6
  function count() {
@@ -10,6 +10,6 @@ const userActionViewUuid = () => `UI_View_${(0, ide_core_common_1.uuid)()}${coun
10
10
  exports.userActionViewUuid = userActionViewUuid;
11
11
  const apiActionViewUuid = () => `API_View_${(0, ide_core_common_1.uuid)()}${count()}`;
12
12
  exports.apiActionViewUuid = apiActionViewUuid;
13
- const generate = () => (0, ide_core_common_1.uuid)();
14
- exports.generate = generate;
13
+ const generateSessionId = () => (0, ide_core_common_1.uuid)();
14
+ exports.generateSessionId = generateSessionId;
15
15
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":";;;AAAA,+DAAiD;AAEjD,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,SAAS,KAAK;IACZ,OAAO,CAAC,EAAE,CAAC;AACb,CAAC;AAEM,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,WAAW,IAAA,sBAAI,GAAE,GAAG,KAAK,EAAE,EAAE,CAAC;AAAzD,QAAA,kBAAkB,sBAAuC;AAE/D,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,YAAY,IAAA,sBAAI,GAAE,GAAG,KAAK,EAAE,EAAE,CAAC;AAAzD,QAAA,iBAAiB,qBAAwC;AAE/D,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAA,sBAAI,GAAE,CAAC;AAAxB,QAAA,QAAQ,YAAgB"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":";;;AAAA,+DAAiD;AAEjD,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,SAAS,KAAK;IACZ,OAAO,CAAC,EAAE,CAAC;AACb,CAAC;AAEM,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,WAAW,IAAA,sBAAI,GAAE,GAAG,KAAK,EAAE,EAAE,CAAC;AAAzD,QAAA,kBAAkB,sBAAuC;AAE/D,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,YAAY,IAAA,sBAAI,GAAE,GAAG,KAAK,EAAE,EAAE,CAAC;AAAzD,QAAA,iBAAiB,qBAAwC;AAE/D,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,IAAA,sBAAI,GAAE,CAAC;AAAjC,QAAA,iBAAiB,qBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAYrD,qBACa,qBAAsB,SAAQ,UAAU;IACnD,SAAS,EAAE,QAAQ,EAAE,CAanB;IAEF,YAAY;;;QASV;CACH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAarD,qBACa,qBAAsB,SAAQ,UAAU;IACnD,SAAS,EAAE,QAAQ,EAAE,CAiBnB;IAEF,YAAY;;;QASV;CACH"}
package/lib/node/index.js CHANGED
@@ -8,6 +8,7 @@ const terminal_service_1 = require("./terminal.service");
8
8
  const terminal_service_client_1 = require("./terminal.service.client");
9
9
  const common_1 = require("../common");
10
10
  const terminal_process_service_1 = require("./terminal-process.service");
11
+ const pty_1 = require("./pty");
11
12
  let TerminalNodePtyModule = class TerminalNodePtyModule extends ide_core_node_1.NodeModule {
12
13
  constructor() {
13
14
  super(...arguments);
@@ -24,6 +25,10 @@ let TerminalNodePtyModule = class TerminalNodePtyModule extends ide_core_node_1.
24
25
  token: common_1.ITerminalProcessService,
25
26
  useClass: terminal_process_service_1.TerminalProcessServiceImpl,
26
27
  },
28
+ {
29
+ token: pty_1.IPtyService,
30
+ useClass: pty_1.PtyService,
31
+ },
27
32
  ];
28
33
  this.backServices = [
29
34
  {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":";;;;AAAA,qCAAoD;AACpD,2DAAqD;AACrD,yDAAyD;AACzD,uEAAsE;AACtE,sCAMmB;AACnB,yEAAwE;AAGxE,IAAa,qBAAqB,GAAlC,MAAa,qBAAsB,SAAQ,0BAAU;IAArD;;QACE,cAAS,GAAe;YACtB;gBACE,KAAK,EAAE,6BAAoB;gBAC3B,QAAQ,EAAE,sCAAmB;aAC9B;YACD;gBACE,KAAK,EAAE,+BAAsB;gBAC7B,QAAQ,EAAE,mDAAyB;aACpC;YACD;gBACE,KAAK,EAAE,gCAAuB;gBAC9B,QAAQ,EAAE,qDAA0B;aACrC;SACF,CAAC;QAEF,iBAAY,GAAG;YACb;gBACE,WAAW,EAAE,6BAAoB;gBACjC,KAAK,EAAE,+BAAsB;aAC9B;YACD;gBACE,WAAW,EAAE,6BAAoB;gBACjC,KAAK,EAAE,gCAAuB;aAC/B;SACF,CAAC;IACJ,CAAC;CAAA,CAAA;AA1BY,qBAAqB;IADjC,IAAA,eAAU,GAAE;GACA,qBAAqB,CA0BjC;AA1BY,sDAAqB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":";;;;AAAA,qCAAoD;AACpD,2DAAqD;AACrD,yDAAyD;AACzD,uEAAsE;AACtE,sCAMmB;AACnB,yEAAwE;AACxE,+BAAgD;AAGhD,IAAa,qBAAqB,GAAlC,MAAa,qBAAsB,SAAQ,0BAAU;IAArD;;QACE,cAAS,GAAe;YACtB;gBACE,KAAK,EAAE,6BAAoB;gBAC3B,QAAQ,EAAE,sCAAmB;aAC9B;YACD;gBACE,KAAK,EAAE,+BAAsB;gBAC7B,QAAQ,EAAE,mDAAyB;aACpC;YACD;gBACE,KAAK,EAAE,gCAAuB;gBAC9B,QAAQ,EAAE,qDAA0B;aACrC;YACD;gBACE,KAAK,EAAE,iBAAW;gBAClB,QAAQ,EAAE,gBAAU;aACrB;SACF,CAAC;QAEF,iBAAY,GAAG;YACb;gBACE,WAAW,EAAE,6BAAoB;gBACjC,KAAK,EAAE,+BAAsB;aAC9B;YACD;gBACE,WAAW,EAAE,6BAAoB;gBACjC,KAAK,EAAE,gCAAuB;aAC/B;SACF,CAAC;IACJ,CAAC;CAAA,CAAA;AA9BY,qBAAqB;IADjC,IAAA,eAAU,GAAE;GACA,qBAAqB,CA8BjC;AA9BY,sDAAqB"}
package/lib/node/pty.d.ts CHANGED
@@ -1,11 +1,19 @@
1
1
  import * as pty from 'node-pty';
2
- import { TerminalOptions } from '../common';
2
+ import { IShellLaunchConfig } from '../common';
3
+ import { IPty } from '../common/pty';
4
+ import { IProcessEnvironment } from '@opensumi/ide-core-common/lib/platform';
3
5
  export { pty };
4
- export interface IPty extends pty.IPty {
5
- bin: string;
6
- }
6
+ export declare const IPtyService: unique symbol;
7
7
  export declare class PtyService {
8
- create(rows: number, cols: number, options: TerminalOptions): Promise<IPty>;
8
+ private readonly logger;
9
+ _validateCwd(cwd: string): Promise<{
10
+ message: string;
11
+ } | undefined>;
12
+ _validateExecutable(options: IShellLaunchConfig, ptyEnv: IProcessEnvironment, cwd: string): Promise<{
13
+ message: string;
14
+ } | undefined>;
15
+ create2(options: IShellLaunchConfig): Promise<IPty>;
16
+ parseCwd(options: IShellLaunchConfig): string;
9
17
  resize(termninal: pty.IPty, rows: number, cols: number): boolean;
10
18
  }
11
19
  //# sourceMappingURL=pty.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../src/node/pty.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAGhC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,MAAM,WAAW,IAAK,SAAQ,GAAG,CAAC,IAAI;IACpC,GAAG,EAAE,MAAM,CAAC;CACb;AAID,qBAAa,UAAU;IACf,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CjF,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CASvD"}
1
+ {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../src/node/pty.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAIhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAOrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,eAAO,MAAM,WAAW,eAAwB,CAAC;AAEjD,qBACa,UAAU;IAErB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IAE/B,YAAY,CAAC,GAAG,EAAE,MAAM;;;IAoBxB,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM;;;IA+BzF,OAAO,CAAC,OAAO,EAAE,kBAAkB;IAyDzC,QAAQ,CAAC,OAAO,EAAE,kBAAkB;IAOpC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CASvD"}
package/lib/node/pty.js CHANGED
@@ -1,17 +1,76 @@
1
1
  "use strict";
2
+ /* ---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
2
6
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PtyService = exports.pty = void 0;
7
+ exports.PtyService = exports.IPtyService = exports.pty = void 0;
4
8
  const tslib_1 = require("tslib");
5
- const os_1 = (0, tslib_1.__importDefault)(require("os"));
9
+ // Some code copied and modified from https://github.com/microsoft/vscode/blob/1.63.0/src/vs/platform/terminal/node/terminalProcess.ts
6
10
  const pty = (0, tslib_1.__importStar)(require("node-pty"));
7
11
  exports.pty = pty;
8
12
  const osLocale = (0, tslib_1.__importStar)(require("os-locale"));
13
+ const os_1 = (0, tslib_1.__importDefault)(require("os"));
9
14
  const lodash_omit_1 = (0, tslib_1.__importDefault)(require("lodash.omit"));
15
+ const shell_1 = require("./shell");
10
16
  const shell_path_1 = require("@opensumi/ide-core-node/lib/bootstrap/shell-path");
11
- const defaultWindowsType = 'powershell.exe';
12
- class PtyService {
13
- async create(rows, cols, options) {
14
- const bin = options.shellPath || (os_1.default.platform() === 'win32' ? defaultWindowsType : process.env['SHELL'] || '/bin/sh');
17
+ const ide_core_node_1 = require("@opensumi/ide-core-node");
18
+ const di_1 = require("@opensumi/di");
19
+ const fs_1 = require("fs");
20
+ const path = (0, tslib_1.__importStar)(require("@opensumi/ide-core-common/lib/path"));
21
+ exports.IPtyService = Symbol('IPtyService');
22
+ let PtyService = class PtyService {
23
+ async _validateCwd(cwd) {
24
+ if (cwd) {
25
+ try {
26
+ const result = await fs_1.promises.stat(cwd);
27
+ if (!result.isDirectory()) {
28
+ return {
29
+ message: `Starting directory (cwd) "${cwd}" is not a directory`,
30
+ };
31
+ }
32
+ }
33
+ catch (err) {
34
+ if ((err === null || err === void 0 ? void 0 : err.code) === 'ENOENT') {
35
+ return {
36
+ message: `Starting directory (cwd) "${cwd}" does not exist`,
37
+ };
38
+ }
39
+ }
40
+ }
41
+ return undefined;
42
+ }
43
+ async _validateExecutable(options, ptyEnv, cwd) {
44
+ if (!options.shellPath) {
45
+ return {
46
+ message: 'IShellLaunchConfig.shellPath not set',
47
+ };
48
+ }
49
+ try {
50
+ const result = await fs_1.promises.stat(options.shellPath);
51
+ if (!result.isFile() && !result.isSymbolicLink()) {
52
+ return {
53
+ message: `Path to shell executable "${options.shellPath}" is not a file or a symlink`,
54
+ };
55
+ }
56
+ }
57
+ catch (err) {
58
+ if ((err === null || err === void 0 ? void 0 : err.code) === 'ENOENT') {
59
+ // The executable isn't an absolute path, try find it on the PATH or CWD
60
+ const envPaths = options.env && options.env.PATH ? options.env.PATH.split(path.delimiter) : undefined;
61
+ const executable = await (0, shell_1.findExecutable)(options.shellPath, cwd, envPaths, ptyEnv);
62
+ if (!executable) {
63
+ return {
64
+ message: `Path to shell executable "${options.shellPath}" does not exist`,
65
+ };
66
+ }
67
+ // Set the shellPath explicitly here so that node-pty doesn't need to search the
68
+ // $PATH too.
69
+ options.shellPath = executable;
70
+ }
71
+ }
72
+ }
73
+ async create2(options) {
15
74
  const locale = osLocale.sync();
16
75
  let ptyEnv;
17
76
  if (options.strictEnv) {
@@ -38,16 +97,33 @@ class PtyService {
38
97
  PATH: await (0, shell_path_1.getShellPath)(),
39
98
  }, options.env);
40
99
  }
41
- const ptyProcess = pty.spawn(bin, options.shellArgs || [], {
42
- name: 'xterm-256color',
43
- cols: cols || 100,
44
- rows: rows || 30,
45
- cwd: options.cwd ? options.cwd.toString() : '',
100
+ const cwd = this.parseCwd(options);
101
+ const results = await Promise.all([this._validateCwd(cwd), this._validateExecutable(options, ptyEnv, cwd)]);
102
+ const firstError = results.find((r) => r !== undefined);
103
+ if (firstError) {
104
+ this.logger.error(`validate shell launch config failed: ${firstError.message}`);
105
+ throw new Error(firstError.message);
106
+ }
107
+ // above code will validate shellPath and throw if it doesn't exist
108
+ const ptyProcess = pty.spawn(options.shellPath, options.args || [], {
109
+ name: options.name || 'xterm-256color',
110
+ cols: options.cols || 100,
111
+ rows: options.rows || 30,
112
+ cwd,
46
113
  env: ptyEnv,
47
114
  });
48
- ptyProcess.bin = bin;
115
+ ptyProcess.bin = options.shellPath;
116
+ ptyProcess.launchConfig = options;
117
+ const match = options.shellPath.match(/[\w|.]+$/);
118
+ ptyProcess.parsedName = match ? match[0] : 'sh';
49
119
  return ptyProcess;
50
120
  }
121
+ parseCwd(options) {
122
+ if (options.cwd) {
123
+ return typeof options.cwd === 'string' ? options.cwd : options.cwd.fsPath;
124
+ }
125
+ return os_1.default.homedir();
126
+ }
51
127
  resize(termninal, rows, cols) {
52
128
  try {
53
129
  termninal.resize(cols, rows);
@@ -57,6 +133,13 @@ class PtyService {
57
133
  }
58
134
  return true;
59
135
  }
60
- }
136
+ };
137
+ (0, tslib_1.__decorate)([
138
+ (0, di_1.Autowired)(ide_core_node_1.INodeLogger),
139
+ (0, tslib_1.__metadata)("design:type", Object)
140
+ ], PtyService.prototype, "logger", void 0);
141
+ PtyService = (0, tslib_1.__decorate)([
142
+ (0, di_1.Injectable)()
143
+ ], PtyService);
61
144
  exports.PtyService = PtyService;
62
145
  //# sourceMappingURL=pty.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pty.js","sourceRoot":"","sources":["../../src/node/pty.ts"],"names":[],"mappings":";;;;AAAA,yDAAoB;AACpB,2DAAgC;AAMvB,kBAAG;AALZ,iEAAsC;AACtC,2EAA+B;AAE/B,iFAAgF;AAQhF,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAE5C,MAAa,UAAU;IACrB,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,IAAY,EAAE,OAAwB;QAC/D,MAAM,GAAG,GACP,OAAO,CAAC,SAAS,IAAI,CAAC,YAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC;QAC5G,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,MAAiC,CAAC;QAEtC,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,MAAM,GAAG,OAAO,CAAC,GAAgC,CAAC;SACnD;aAAM;YACL,MAAM,GAAG,MAAM,CAAC,MAAM,CACpB,EAAE,EACF,IAAA,qBAAI,EAAC,OAAO,CAAC,GAAG,EAAE;gBAChB,YAAY;gBACZ,sBAAsB;gBACtB,eAAe;gBACf,eAAe;gBACf,uBAAuB;gBACvB,mBAAmB;gBACnB,sBAAsB;aACvB,CAAC,EACF;gBACE,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ;gBAC3C,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ;gBACzC;;;;;mBAKG;gBACH,IAAI,EAAE,MAAM,IAAA,yBAAY,GAAE;aAC3B,EACD,OAAO,CAAC,GAAG,CACiB,CAAC;SAChC;QAED,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE,EAAE;YACzD,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,IAAI,IAAI,GAAG;YACjB,IAAI,EAAE,IAAI,IAAI,EAAE;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;YAC/C,GAAG,EAAE,MAAM;SACZ,CAAC,CAAC;QACF,UAAkB,CAAC,GAAG,GAAG,GAAG,CAAC;QAC9B,OAAO,UAAkB,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,SAAmB,EAAE,IAAY,EAAE,IAAY;QACpD,IAAI;YACF,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC9B;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAxDD,gCAwDC"}
1
+ {"version":3,"file":"pty.js","sourceRoot":"","sources":["../../src/node/pty.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,11 @@
1
+ import { IProcessEnvironment } from '@opensumi/ide-core-common/lib/platform';
1
2
  export declare const WINDOWS_GIT_BASH_PATHS: string[];
3
+ export declare const exists: (p: string) => Promise<string | undefined>;
4
+ export declare function findShellExecutableAsync(candidate: string[]): Promise<string | undefined>;
5
+ /**
6
+ * @deprecated use findShellExecutableAsync
7
+ */
2
8
  export declare function findShellExecutable(candidate: string[]): string | undefined;
9
+ export declare function getCaseInsensitive(target: Record<string, any>, key: string): any;
10
+ export declare function findExecutable(command: string, cwd?: string, paths?: string[], env?: IProcessEnvironment): Promise<string | undefined>;
3
11
  //# sourceMappingURL=shell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/node/shell.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,UAQlC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAW3E"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/node/shell.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAQ7E,eAAO,MAAM,sBAAsB,UAQlC,CAAC;AAEF,eAAO,MAAM,MAAM,MAAa,MAAM,gCAOrC,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM/F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAW3E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAIhF;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,GAAG,GAAE,mBAAwD,GAC5D,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmD7B"}
package/lib/node/shell.js CHANGED
@@ -1,9 +1,18 @@
1
1
  "use strict";
2
+ /* ---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
2
6
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findShellExecutable = exports.WINDOWS_GIT_BASH_PATHS = void 0;
7
+ exports.findExecutable = exports.getCaseInsensitive = exports.findShellExecutable = exports.findShellExecutableAsync = exports.exists = exports.WINDOWS_GIT_BASH_PATHS = void 0;
4
8
  const tslib_1 = require("tslib");
9
+ // Some code copied and modified from https://github.com/microsoft/vscode/blob/1.63.0/src/vs/platform/terminal/node/terminalEnvironment.ts
5
10
  const ide_core_common_1 = require("@opensumi/ide-core-common");
11
+ const path = (0, tslib_1.__importStar)(require("@opensumi/ide-core-common/lib/path"));
12
+ const ide_core_node_1 = require("@opensumi/ide-core-node");
6
13
  const fs_1 = (0, tslib_1.__importDefault)(require("fs"));
14
+ // TODO: 用户装在 D 盘的不就识别不对了
15
+ // 要增加一些查找方法,此处需要参考 V 老师的进行改进
7
16
  exports.WINDOWS_GIT_BASH_PATHS = [
8
17
  `${process.env['ProgramW6432']}\\Git\\bin\\bash.exe`,
9
18
  `${process.env['ProgramW6432']}\\Git\\usr\\bin\\bash.exe`,
@@ -13,6 +22,27 @@ exports.WINDOWS_GIT_BASH_PATHS = [
13
22
  `${process.env['UserProfile']}\\scoop\\apps\\git-with-openssh\\current\\bin\\bash.exe`,
14
23
  `${process.env['AllUsersProfile']}\\scoop\\apps\\git-with-openssh\\current\\bin\\bash.exe`,
15
24
  ];
25
+ const exists = async (p) => {
26
+ try {
27
+ await fs_1.default.promises.access((0, ide_core_common_1.normalize)(p));
28
+ return p;
29
+ }
30
+ catch (_a) {
31
+ return;
32
+ }
33
+ };
34
+ exports.exists = exists;
35
+ async function findShellExecutableAsync(candidate) {
36
+ if (candidate.length === 0) {
37
+ return undefined;
38
+ }
39
+ // return the first exists one
40
+ return Promise.all(candidate.map((v) => findExecutable(v))).then((v) => v.find(Boolean));
41
+ }
42
+ exports.findShellExecutableAsync = findShellExecutableAsync;
43
+ /**
44
+ * @deprecated use findShellExecutableAsync
45
+ */
16
46
  function findShellExecutable(candidate) {
17
47
  if (candidate.length === 0) {
18
48
  return undefined;
@@ -25,4 +55,63 @@ function findShellExecutable(candidate) {
25
55
  }
26
56
  }
27
57
  exports.findShellExecutable = findShellExecutable;
58
+ function getCaseInsensitive(target, key) {
59
+ const lowercaseKey = key.toLowerCase();
60
+ const equivalentKey = Object.keys(target).find((k) => k.toLowerCase() === lowercaseKey);
61
+ return equivalentKey ? target[equivalentKey] : target[key];
62
+ }
63
+ exports.getCaseInsensitive = getCaseInsensitive;
64
+ async function findExecutable(command, cwd, paths, env = process.env) {
65
+ // If we have an absolute path then we take it.
66
+ if (path.isAbsolute(command)) {
67
+ return (await (0, exports.exists)(command)) ? command : undefined;
68
+ }
69
+ if (cwd === undefined) {
70
+ cwd = process.cwd();
71
+ }
72
+ const dir = path.dirname(command);
73
+ if (dir !== '.') {
74
+ // We have a directory and the directory is relative (see above). Make the path absolute
75
+ // to the current working directory.
76
+ const fullPath = path.join(cwd, command);
77
+ return (await (0, exports.exists)(fullPath)) ? fullPath : undefined;
78
+ }
79
+ const envPath = getCaseInsensitive(env, 'PATH');
80
+ if (paths === undefined && typeof envPath === 'string') {
81
+ paths = envPath.split(path.delimiter);
82
+ }
83
+ // No PATH environment. Make path absolute to the cwd.
84
+ if (paths === undefined || paths.length === 0) {
85
+ const fullPath = path.join(cwd, command);
86
+ return (await (0, exports.exists)(fullPath)) ? fullPath : undefined;
87
+ }
88
+ // We have a simple file name. We get the path variable from the env
89
+ // and try to find the executable on the path.
90
+ for (let pathEntry of paths) {
91
+ // The path entry is absolute.
92
+ let fullPath;
93
+ if (path.isAbsolute(pathEntry)) {
94
+ fullPath = path.join(pathEntry, command);
95
+ }
96
+ else {
97
+ fullPath = path.join(cwd, pathEntry, command);
98
+ }
99
+ if (await (0, exports.exists)(fullPath)) {
100
+ return fullPath;
101
+ }
102
+ if (ide_core_node_1.isWindows) {
103
+ let withExtension = fullPath + '.com';
104
+ if (await (0, exports.exists)(withExtension)) {
105
+ return withExtension;
106
+ }
107
+ withExtension = fullPath + '.exe';
108
+ if (await (0, exports.exists)(withExtension)) {
109
+ return withExtension;
110
+ }
111
+ }
112
+ }
113
+ const fullPath = path.join(cwd, command);
114
+ return (await (0, exports.exists)(fullPath)) ? fullPath : undefined;
115
+ }
116
+ exports.findExecutable = findExecutable;
28
117
  //# sourceMappingURL=shell.js.map