@opensumi/ide-terminal-next 2.14.4 → 2.15.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.
- package/lib/browser/component/terminal.view.d.ts.map +1 -1
- package/lib/browser/component/terminal.view.js +7 -1
- package/lib/browser/component/terminal.view.js.map +1 -1
- package/lib/browser/component/terminal.widget.d.ts.map +1 -1
- package/lib/browser/component/terminal.widget.js +12 -3
- package/lib/browser/component/terminal.widget.js.map +1 -1
- package/lib/browser/contribution/index.d.ts +1 -0
- package/lib/browser/contribution/index.d.ts.map +1 -1
- package/lib/browser/contribution/index.js +1 -0
- package/lib/browser/contribution/index.js.map +1 -1
- package/lib/browser/contribution/terminal.preference.d.ts +6 -0
- package/lib/browser/contribution/terminal.preference.d.ts.map +1 -0
- package/lib/browser/contribution/terminal.preference.js +17 -0
- package/lib/browser/contribution/terminal.preference.js.map +1 -0
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +21 -1
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/terminal.api.d.ts.map +1 -1
- package/lib/browser/terminal.api.js +11 -10
- package/lib/browser/terminal.api.js.map +1 -1
- package/lib/browser/terminal.client.d.ts +33 -16
- package/lib/browser/terminal.client.d.ts.map +1 -1
- package/lib/browser/terminal.client.js +248 -113
- package/lib/browser/terminal.client.js.map +1 -1
- package/lib/browser/terminal.contribution.d.ts +7 -0
- package/lib/browser/terminal.contribution.d.ts.map +1 -0
- package/lib/browser/terminal.contribution.js +32 -0
- package/lib/browser/terminal.contribution.js.map +1 -0
- package/lib/browser/terminal.controller.d.ts +14 -3
- package/lib/browser/terminal.controller.d.ts.map +1 -1
- package/lib/browser/terminal.controller.js +44 -9
- package/lib/browser/terminal.controller.js.map +1 -1
- package/lib/browser/terminal.internal.service.d.ts +6 -2
- package/lib/browser/terminal.internal.service.d.ts.map +1 -1
- package/lib/browser/terminal.internal.service.js +27 -0
- package/lib/browser/terminal.internal.service.js.map +1 -1
- package/lib/browser/terminal.profile.d.ts +28 -0
- package/lib/browser/terminal.profile.d.ts.map +1 -0
- package/lib/browser/terminal.profile.internal.d.ts +16 -0
- package/lib/browser/terminal.profile.internal.d.ts.map +1 -0
- package/lib/browser/terminal.profile.internal.js +106 -0
- package/lib/browser/terminal.profile.internal.js.map +1 -0
- package/lib/browser/terminal.profile.js +146 -0
- package/lib/browser/terminal.profile.js.map +1 -0
- package/lib/browser/terminal.service.d.ts +7 -4
- package/lib/browser/terminal.service.d.ts.map +1 -1
- package/lib/browser/terminal.service.js +35 -19
- package/lib/browser/terminal.service.js.map +1 -1
- package/lib/browser/xterm.d.ts +24 -0
- package/lib/browser/xterm.d.ts.map +1 -0
- package/lib/browser/xterm.js +55 -0
- package/lib/browser/xterm.js.map +1 -0
- package/lib/common/client.d.ts +4 -2
- package/lib/common/client.d.ts.map +1 -1
- package/lib/common/client.js +2 -1
- package/lib/common/client.js.map +1 -1
- package/lib/common/controller.d.ts +17 -1
- package/lib/common/controller.d.ts.map +1 -1
- package/lib/common/controller.js.map +1 -1
- package/lib/common/error.d.ts +8 -0
- package/lib/common/error.d.ts.map +1 -1
- package/lib/common/error.js +5 -1
- package/lib/common/error.js.map +1 -1
- package/lib/common/extension.d.ts +28 -2
- package/lib/common/extension.d.ts.map +1 -1
- package/lib/common/extension.js +6 -1
- package/lib/common/extension.js.map +1 -1
- package/lib/common/index.d.ts +2 -0
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +2 -0
- package/lib/common/index.js.map +1 -1
- package/lib/common/preference.d.ts +94 -0
- package/lib/common/preference.d.ts.map +1 -1
- package/lib/common/preference.js +140 -1
- package/lib/common/preference.js.map +1 -1
- package/lib/common/process.d.ts +8 -0
- package/lib/common/process.d.ts.map +1 -0
- package/lib/common/process.js +3 -0
- package/lib/common/process.js.map +1 -0
- package/lib/common/profile.d.ts +101 -0
- package/lib/common/profile.d.ts.map +1 -0
- package/lib/common/profile.js +28 -0
- package/lib/common/profile.js.map +1 -0
- package/lib/common/pty.d.ts +142 -24
- package/lib/common/pty.d.ts.map +1 -1
- package/lib/common/pty.js +2 -2
- package/lib/common/pty.js.map +1 -1
- package/lib/common/service.d.ts +11 -6
- package/lib/common/service.d.ts.map +1 -1
- package/lib/common/service.js.map +1 -1
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +6 -1
- package/lib/node/index.js.map +1 -1
- package/lib/node/pty.d.ts +29 -15
- package/lib/node/pty.d.ts.map +1 -1
- package/lib/node/pty.js +117 -41
- package/lib/node/pty.js.map +1 -1
- package/lib/node/shell.d.ts +11 -1
- package/lib/node/shell.d.ts.map +1 -1
- package/lib/node/shell.js +89 -9
- package/lib/node/shell.js.map +1 -1
- package/lib/node/{terminal-process.service.d.ts → terminal.process.service.d.ts} +1 -1
- package/lib/node/terminal.process.service.d.ts.map +1 -0
- package/lib/node/{terminal-process.service.js → terminal.process.service.js} +1 -1
- package/lib/node/{terminal-process.service.js.map → terminal.process.service.js.map} +1 -1
- package/lib/node/terminal.profile.service.d.ts +19 -0
- package/lib/node/terminal.profile.service.d.ts.map +1 -0
- package/lib/node/terminal.profile.service.js +229 -0
- package/lib/node/terminal.profile.service.js.map +1 -0
- package/lib/node/terminal.service.client.d.ts +8 -1
- package/lib/node/terminal.service.client.d.ts.map +1 -1
- package/lib/node/terminal.service.client.js +40 -13
- package/lib/node/terminal.service.client.js.map +1 -1
- package/lib/node/terminal.service.d.ts +7 -7
- package/lib/node/terminal.service.d.ts.map +1 -1
- package/lib/node/terminal.service.js +41 -23
- package/lib/node/terminal.service.js.map +1 -1
- package/package.json +15 -15
- package/lib/node/terminal-process.service.d.ts.map +0 -1
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TerminalProfileService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
6
|
+
const common_1 = require("../common");
|
|
7
|
+
const di_1 = require("@opensumi/di");
|
|
8
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
9
|
+
let TerminalProfileService = class TerminalProfileService extends ide_core_common_1.WithEventBus {
|
|
10
|
+
constructor() {
|
|
11
|
+
super();
|
|
12
|
+
this._onDidChangeAvailableProfiles = new ide_core_common_1.Emitter();
|
|
13
|
+
this._profileProviders = new Map();
|
|
14
|
+
this._contributedProfiles = [];
|
|
15
|
+
// Wait up to 5 seconds for profiles to be ready so it's assured that we know the actual
|
|
16
|
+
// default terminal before launching the first terminal. This isn't expected to ever take
|
|
17
|
+
// this long.
|
|
18
|
+
this._profilesReadyBarrier = new ide_core_common_1.AutoOpenBarrier(5000);
|
|
19
|
+
this.refreshAvailableProfiles();
|
|
20
|
+
}
|
|
21
|
+
get profilesReady() {
|
|
22
|
+
return this._profilesReadyBarrier.wait().then(() => { });
|
|
23
|
+
}
|
|
24
|
+
get onDidChangeAvailableProfiles() {
|
|
25
|
+
return this._onDidChangeAvailableProfiles.event;
|
|
26
|
+
}
|
|
27
|
+
get availableProfiles() {
|
|
28
|
+
return this._availableProfiles || [];
|
|
29
|
+
}
|
|
30
|
+
get contributedProfiles() {
|
|
31
|
+
return this._contributedProfiles || [];
|
|
32
|
+
}
|
|
33
|
+
getDefaultProfileName() {
|
|
34
|
+
return this.preferenceService.get(`${"terminal.integrated.defaultProfile." /* DefaultProfile */}${this.terminalService.getCodePlatformKey()}`);
|
|
35
|
+
}
|
|
36
|
+
refreshAvailableProfiles() {
|
|
37
|
+
this._refreshAvailableProfilesNow();
|
|
38
|
+
}
|
|
39
|
+
getContributedProfileProvider(extensionIdentifier, id) {
|
|
40
|
+
const extMap = this._profileProviders.get(extensionIdentifier);
|
|
41
|
+
return extMap === null || extMap === void 0 ? void 0 : extMap.get(id);
|
|
42
|
+
}
|
|
43
|
+
registerTerminalProfileProvider(extensionIdentifierenfifier, id, profileProvider) {
|
|
44
|
+
let extMap = this._profileProviders.get(extensionIdentifierenfifier);
|
|
45
|
+
if (!extMap) {
|
|
46
|
+
extMap = new Map();
|
|
47
|
+
this._profileProviders.set(extensionIdentifierenfifier, extMap);
|
|
48
|
+
}
|
|
49
|
+
extMap.set(id, profileProvider);
|
|
50
|
+
return ide_core_common_1.Disposable.create(() => this._profileProviders.delete(id));
|
|
51
|
+
}
|
|
52
|
+
async _detectProfiles(autoDetect = true) {
|
|
53
|
+
return await this.terminalService.getProfiles(autoDetect);
|
|
54
|
+
}
|
|
55
|
+
async _updateContributedProfiles() {
|
|
56
|
+
const platformKey = await this.terminalService.getCodePlatformKey();
|
|
57
|
+
const excludedContributedProfiles = [];
|
|
58
|
+
const configProfiles = this.preferenceService.get("terminal.integrated.profiles." /* Profiles */ + platformKey, {});
|
|
59
|
+
for (const [profileName, value] of Object.entries(configProfiles)) {
|
|
60
|
+
if (value === null) {
|
|
61
|
+
excludedContributedProfiles.push(profileName);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const filteredContributedProfiles = Array.from(this.terminalContributionService.terminalProfiles.filter((p) => !excludedContributedProfiles.includes(p.title)));
|
|
65
|
+
const contributedProfilesChanged = !(0, ide_core_common_1.equals)(filteredContributedProfiles, this._contributedProfiles, contributedProfilesEqual);
|
|
66
|
+
this._contributedProfiles = filteredContributedProfiles;
|
|
67
|
+
return contributedProfilesChanged;
|
|
68
|
+
}
|
|
69
|
+
async _refreshAvailableProfilesNow() {
|
|
70
|
+
const profiles = await this._detectProfiles(true);
|
|
71
|
+
const profilesChanged = !(0, ide_core_common_1.equals)(profiles, this._availableProfiles, profilesEqual);
|
|
72
|
+
const contributedProfilesChanged = await this._updateContributedProfiles();
|
|
73
|
+
if (profilesChanged || contributedProfilesChanged) {
|
|
74
|
+
this._availableProfiles = profiles;
|
|
75
|
+
this._profilesReadyBarrier.open();
|
|
76
|
+
this._onDidChangeAvailableProfiles.fire(this._availableProfiles);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async getContributedDefaultProfile(shellLaunchConfig) {
|
|
80
|
+
// prevents recursion with the MainThreadTerminalService call to create terminal
|
|
81
|
+
// and defers to the provided launch config when an executable is provided
|
|
82
|
+
if (shellLaunchConfig && !shellLaunchConfig.extHostTerminalId && !('executable' in shellLaunchConfig)) {
|
|
83
|
+
const key = await this.terminalService.getCodePlatformKey();
|
|
84
|
+
const defaultProfileName = this.preferenceService.get(`${"terminal.integrated.defaultProfile." /* DefaultProfile */}${key}`);
|
|
85
|
+
const contributedDefaultProfile = this.contributedProfiles.find((p) => p.title === defaultProfileName);
|
|
86
|
+
return contributedDefaultProfile;
|
|
87
|
+
}
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
async registerContributedProfile(args) {
|
|
91
|
+
const platformKey = await this.terminalService.getCodePlatformKey();
|
|
92
|
+
const profilesConfig = await this.preferenceService.get(`${"terminal.integrated.profiles." /* Profiles */}${platformKey}`);
|
|
93
|
+
if (typeof profilesConfig === 'object') {
|
|
94
|
+
const newProfile = {
|
|
95
|
+
extensionIdentifier: args.extensionIdentifier,
|
|
96
|
+
icon: args.options.icon,
|
|
97
|
+
id: args.id,
|
|
98
|
+
title: args.title,
|
|
99
|
+
color: args.options.color,
|
|
100
|
+
};
|
|
101
|
+
profilesConfig[args.title] = newProfile;
|
|
102
|
+
}
|
|
103
|
+
await this.preferenceService.set(`${"terminal.integrated.profiles." /* Profiles */}${platformKey}`, profilesConfig, ide_core_common_1.PreferenceScope.User);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
(0, tslib_1.__decorate)([
|
|
108
|
+
(0, di_1.Autowired)(common_1.ITerminalService),
|
|
109
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
110
|
+
], TerminalProfileService.prototype, "terminalService", void 0);
|
|
111
|
+
(0, tslib_1.__decorate)([
|
|
112
|
+
(0, di_1.Autowired)(ide_core_browser_1.PreferenceService),
|
|
113
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
114
|
+
], TerminalProfileService.prototype, "preferenceService", void 0);
|
|
115
|
+
(0, tslib_1.__decorate)([
|
|
116
|
+
(0, di_1.Autowired)(common_1.ITerminalContributionService),
|
|
117
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
118
|
+
], TerminalProfileService.prototype, "terminalContributionService", void 0);
|
|
119
|
+
(0, tslib_1.__decorate)([
|
|
120
|
+
(0, ide_core_common_1.throttle)(2000),
|
|
121
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
122
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
|
123
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
|
124
|
+
], TerminalProfileService.prototype, "refreshAvailableProfiles", null);
|
|
125
|
+
TerminalProfileService = (0, tslib_1.__decorate)([
|
|
126
|
+
(0, di_1.Injectable)(),
|
|
127
|
+
(0, tslib_1.__metadata)("design:paramtypes", [])
|
|
128
|
+
], TerminalProfileService);
|
|
129
|
+
exports.TerminalProfileService = TerminalProfileService;
|
|
130
|
+
function profilesEqual(one, other) {
|
|
131
|
+
return (one.profileName === other.profileName &&
|
|
132
|
+
(0, common_1.terminalProfileArgsMatch)(one.args, other.args) &&
|
|
133
|
+
one.color === other.color &&
|
|
134
|
+
one.isAutoDetected === other.isAutoDetected &&
|
|
135
|
+
one.isDefault === other.isDefault &&
|
|
136
|
+
one.overrideName === other.overrideName &&
|
|
137
|
+
one.path === other.path);
|
|
138
|
+
}
|
|
139
|
+
function contributedProfilesEqual(one, other) {
|
|
140
|
+
return (one.extensionIdentifier === other.extensionIdentifier &&
|
|
141
|
+
one.color === other.color &&
|
|
142
|
+
one.icon === other.icon &&
|
|
143
|
+
one.id === other.id &&
|
|
144
|
+
one.title === other.title);
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=terminal.profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.profile.js","sourceRoot":"","sources":["../../src/browser/terminal.profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,18 +2,18 @@ import { Terminal } from 'xterm';
|
|
|
2
2
|
import { Injector } from '@opensumi/di';
|
|
3
3
|
import { ILogger, Event } from '@opensumi/ide-core-common';
|
|
4
4
|
import { OperatingSystem } from '@opensumi/ide-core-common/lib/platform';
|
|
5
|
-
import {
|
|
6
|
-
import { ITerminalService, ITerminalError, ITerminalServiceClient, ITerminalConnection, IPtyExitEvent, TerminalOptions } from '../common';
|
|
5
|
+
import { ITerminalService, ITerminalError, ITerminalServiceClient, ITerminalConnection, IPtyExitEvent, TerminalOptions, ITerminalProfile, IShellLaunchConfig } from '../common';
|
|
7
6
|
import { ShellType } from '../common/shell';
|
|
8
7
|
export interface EventMessage {
|
|
9
8
|
data: string;
|
|
10
9
|
}
|
|
11
10
|
export declare class NodePtyTerminalService implements ITerminalService {
|
|
12
11
|
static countId: number;
|
|
12
|
+
private backendOs;
|
|
13
13
|
protected readonly injector: Injector;
|
|
14
14
|
protected readonly logger: ILogger;
|
|
15
15
|
protected readonly serviceClientRPC: ITerminalServiceClient;
|
|
16
|
-
|
|
16
|
+
private preferenceService;
|
|
17
17
|
private readonly appConfig;
|
|
18
18
|
private _onError;
|
|
19
19
|
onError: Event<ITerminalError>;
|
|
@@ -35,10 +35,11 @@ export declare class NodePtyTerminalService implements ITerminalService {
|
|
|
35
35
|
* @returns
|
|
36
36
|
*/
|
|
37
37
|
attach(sessionId: string, _: Terminal, rows: number, cols: number, options?: TerminalOptions, shellType?: ShellType): Promise<ITerminalConnection | undefined>;
|
|
38
|
+
attachByLaunchConfig(sessionId: string, cols: number, rows: number, launchConfig: IShellLaunchConfig): Promise<ITerminalConnection | undefined>;
|
|
38
39
|
private _sendMessage;
|
|
39
40
|
sendText(sessionId: string, message: string): Promise<void>;
|
|
40
41
|
resize(sessionId: string, cols: number, rows: number): Promise<void>;
|
|
41
|
-
|
|
42
|
+
getCodePlatformKey(): Promise<'osx' | 'windows' | 'linux'>;
|
|
42
43
|
disposeById(sessionId: string): void;
|
|
43
44
|
getProcessId(sessionId: string): Promise<number>;
|
|
44
45
|
/**
|
|
@@ -59,6 +60,8 @@ export declare class NodePtyTerminalService implements ITerminalService {
|
|
|
59
60
|
signal?: number;
|
|
60
61
|
}): void;
|
|
61
62
|
getOs(): Promise<OperatingSystem>;
|
|
63
|
+
getProfiles(autoDetect: boolean): Promise<ITerminalProfile[]>;
|
|
64
|
+
getDefaultSystemShell(): Promise<string>;
|
|
62
65
|
dispose(): void;
|
|
63
66
|
}
|
|
64
67
|
//# sourceMappingURL=terminal.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.service.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAyB,QAAQ,EAAkB,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAW,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAM,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"terminal.service.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAyB,QAAQ,EAAkB,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAW,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAM,MAAM,wCAAwC,CAAC;AAI7E,OAAO,EAEL,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EAEtB,mBAAmB,EACnB,aAAa,EAGb,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,SAAS,EAAoB,MAAM,iBAAiB,CAAC;AAG9D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AACD,qBACa,sBAAuB,YAAW,gBAAgB;IAC7D,MAAM,CAAC,OAAO,SAAK;IAEnB,OAAO,CAAC,SAAS,CAA8B;IAG/C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAGtC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAGnC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAG5D,OAAO,CAAC,iBAAiB,CAAoB;IAG7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC,OAAO,CAAC,QAAQ,CAAiC;IAC1C,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,CAAuB;IAE5D,OAAO,CAAC,OAAO,CAAgC;IACxC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAsB;IAEzD,OAAO,CAAC,iBAAiB,CAAqD;IAC9E,OAAO,CAAC,iBAAiB,CAQrB;IAEJ,iBAAiB;IAWX,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE;IAKzB,OAAO,CAAC,sBAAsB,CAY3B;IAEH;;;;;;;;;OASG;IACG,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,CAAC,EAAE,QAAQ,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,eAAoB,EAC7B,SAAS,CAAC,EAAE,SAAS;IAsEjB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB;IAmB1G,OAAO,CAAC,YAAY;IAYd,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAM3C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAOpD,kBAAkB,IAAI,OAAO,CAAC,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;IAIhE,WAAW,CAAC,SAAS,EAAE,MAAM;IAIvB,YAAY,CAAC,SAAS,EAAE,MAAM;IAIpC;;;;;OAKG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAI5C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAC7D,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAiBzF,KAAK;IAOL,WAAW,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAa7D,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9C,OAAO;CAIR"}
|
|
@@ -60,7 +60,7 @@ let NodePtyTerminalService = NodePtyTerminalService_1 = class NodePtyTerminalSer
|
|
|
60
60
|
async attach(sessionId, _, rows, cols, options = {}, shellType) {
|
|
61
61
|
let shellPath = options.shellPath;
|
|
62
62
|
const shellArgs = typeof options.shellArgs === 'string' ? [options.shellArgs] : options.shellArgs || [];
|
|
63
|
-
const platformKey = await this.
|
|
63
|
+
const platformKey = await this.getCodePlatformKey();
|
|
64
64
|
const terminalOs = await this.getOs();
|
|
65
65
|
if (!shellPath) {
|
|
66
66
|
// if terminal options.shellPath is not set, we should resolve the shell path from preference: `terminal.type`
|
|
@@ -102,30 +102,37 @@ let NodePtyTerminalService = NodePtyTerminalService_1 = class NodePtyTerminalSer
|
|
|
102
102
|
if (!shellPath && shellType !== 'default') {
|
|
103
103
|
shellPath = shellType;
|
|
104
104
|
}
|
|
105
|
-
const platformSpecificArgs = this.
|
|
105
|
+
const platformSpecificArgs = this.preferenceService.get(`${"terminal.integrated.shellArgs." /* ShellArgs */}${platformKey}`, []);
|
|
106
106
|
shellArgs.push(...platformSpecificArgs);
|
|
107
107
|
if (shellType === shell_1.WindowsShellType['git-bash']) {
|
|
108
108
|
shellArgs.push('--login');
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
const launchConfig = {
|
|
112
|
-
shellPath,
|
|
112
|
+
executable: shellPath,
|
|
113
113
|
cwd: options.cwd,
|
|
114
114
|
args: shellArgs,
|
|
115
|
-
cols,
|
|
116
|
-
rows,
|
|
117
|
-
os: terminalOs,
|
|
118
115
|
env: options.env,
|
|
119
116
|
name: options.name,
|
|
120
117
|
strictEnv: options.strictEnv,
|
|
121
118
|
};
|
|
122
|
-
this.
|
|
123
|
-
|
|
119
|
+
return this.attachByLaunchConfig(sessionId, cols, rows, launchConfig);
|
|
120
|
+
}
|
|
121
|
+
async attachByLaunchConfig(sessionId, cols, rows, launchConfig) {
|
|
122
|
+
// If code runs to here, it means that we want to create a real terminal.
|
|
123
|
+
// So if `launchConfig.executable` is not set, we should use the default shell.
|
|
124
|
+
if (!launchConfig.executable) {
|
|
125
|
+
launchConfig.executable = await this.getDefaultSystemShell();
|
|
126
|
+
}
|
|
127
|
+
this.logger.log(`attachByLaunchConfig ${sessionId} with launchConfig `, launchConfig);
|
|
128
|
+
const ptyInstance = await this.serviceClientRPC.create2(sessionId, cols, rows, launchConfig);
|
|
124
129
|
if (ptyInstance && (ptyInstance.pid || ptyInstance.name)) {
|
|
130
|
+
this.logger.log(`${sessionId} attach success, pid: ${ptyInstance.pid}, name: ${ptyInstance.name}`);
|
|
125
131
|
// 有 pid 或者 name 的才视为创建成功
|
|
126
132
|
// 创建不成功的时候会被通过 closeClient 把错误信息传递回来
|
|
127
133
|
return this._createCustomWebSocket(sessionId, ptyInstance);
|
|
128
134
|
}
|
|
135
|
+
this.logger.error(`${sessionId} cannot create ptyInstance`, ptyInstance);
|
|
129
136
|
}
|
|
130
137
|
_sendMessage(sessionId, json, requestId) {
|
|
131
138
|
const id = requestId || NodePtyTerminalService_1.countId++;
|
|
@@ -142,13 +149,8 @@ let NodePtyTerminalService = NodePtyTerminalService_1 = class NodePtyTerminalSer
|
|
|
142
149
|
params: { cols, rows },
|
|
143
150
|
});
|
|
144
151
|
}
|
|
145
|
-
async
|
|
146
|
-
|
|
147
|
-
return (await this.getOs()) === platform_1.OperatingSystem.Macintosh
|
|
148
|
-
? 'osx'
|
|
149
|
-
: platform_1.OS === platform_1.OperatingSystem.Windows
|
|
150
|
-
? 'windows'
|
|
151
|
-
: 'linux';
|
|
152
|
+
async getCodePlatformKey() {
|
|
153
|
+
return await this.serviceClientRPC.getCodePlatformKey();
|
|
152
154
|
}
|
|
153
155
|
disposeById(sessionId) {
|
|
154
156
|
this.serviceClientRPC.disposeById(sessionId);
|
|
@@ -166,6 +168,7 @@ let NodePtyTerminalService = NodePtyTerminalService_1 = class NodePtyTerminalSer
|
|
|
166
168
|
this._onDataDispatcher.emit(sessionId, message);
|
|
167
169
|
}
|
|
168
170
|
closeClient(sessionId, data, signal) {
|
|
171
|
+
this.logger.log(`${sessionId} was closed, error:`, data);
|
|
169
172
|
if ((0, common_1.isTerminalError)(data)) {
|
|
170
173
|
this._onError.fire(data);
|
|
171
174
|
}
|
|
@@ -181,8 +184,21 @@ let NodePtyTerminalService = NodePtyTerminalService_1 = class NodePtyTerminalSer
|
|
|
181
184
|
}
|
|
182
185
|
}
|
|
183
186
|
async getOs() {
|
|
184
|
-
|
|
185
|
-
|
|
187
|
+
if (this.backendOs) {
|
|
188
|
+
return this.backendOs;
|
|
189
|
+
}
|
|
190
|
+
return (this.backendOs = this.serviceClientRPC.getOs());
|
|
191
|
+
}
|
|
192
|
+
async getProfiles(autoDetect) {
|
|
193
|
+
const platformKey = await this.getCodePlatformKey();
|
|
194
|
+
const terminalPreferences = this.preferenceService.get(`${"terminal.integrated.profiles." /* Profiles */}${platformKey}`, {});
|
|
195
|
+
return await this.serviceClientRPC.detectAvailableProfiles({
|
|
196
|
+
autoDetect,
|
|
197
|
+
preference: terminalPreferences,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
async getDefaultSystemShell() {
|
|
201
|
+
return await this.serviceClientRPC.getDefaultSystemShell(await this.getOs());
|
|
186
202
|
}
|
|
187
203
|
dispose() {
|
|
188
204
|
this._onDataDispatcher.dispose();
|
|
@@ -203,9 +219,9 @@ NodePtyTerminalService.countId = 1;
|
|
|
203
219
|
(0, tslib_1.__metadata)("design:type", Object)
|
|
204
220
|
], NodePtyTerminalService.prototype, "serviceClientRPC", void 0);
|
|
205
221
|
(0, tslib_1.__decorate)([
|
|
206
|
-
(0, di_1.Autowired)(ide_core_browser_1.
|
|
222
|
+
(0, di_1.Autowired)(ide_core_browser_1.PreferenceService),
|
|
207
223
|
(0, tslib_1.__metadata)("design:type", Object)
|
|
208
|
-
], NodePtyTerminalService.prototype, "
|
|
224
|
+
], NodePtyTerminalService.prototype, "preferenceService", void 0);
|
|
209
225
|
(0, tslib_1.__decorate)([
|
|
210
226
|
(0, di_1.Autowired)(ide_core_browser_1.AppConfig),
|
|
211
227
|
(0, tslib_1.__metadata)("design:type", Object)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.service.js","sourceRoot":"","sources":["../../src/browser/terminal.service.ts"],"names":[],"mappings":";;;;;AACA,qCAA+E;AAC/E,+DAAoE;AACpE,qEAA6E;AAC7E,yCAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"terminal.service.js","sourceRoot":"","sources":["../../src/browser/terminal.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Injector } from '@opensumi/di';
|
|
2
|
+
import { ITerminalOptions, ITheme, Terminal } from 'xterm';
|
|
3
|
+
import { Disposable } from '@opensumi/ide-core-common';
|
|
4
|
+
export interface XTermOptions {
|
|
5
|
+
cwd?: string;
|
|
6
|
+
xtermOptions?: Partial<ITerminalOptions>;
|
|
7
|
+
}
|
|
8
|
+
export declare class XTerm extends Disposable {
|
|
9
|
+
protected readonly injector: Injector;
|
|
10
|
+
container: HTMLDivElement;
|
|
11
|
+
raw: Terminal;
|
|
12
|
+
/** addons */
|
|
13
|
+
private _fitAddon;
|
|
14
|
+
private _searchAddon;
|
|
15
|
+
/** end */
|
|
16
|
+
constructor(options?: XTermOptions);
|
|
17
|
+
private _prepareAddons;
|
|
18
|
+
updateTheme(theme: ITheme | undefined): void;
|
|
19
|
+
findNext(text: string): boolean;
|
|
20
|
+
open(): void;
|
|
21
|
+
fit(): void;
|
|
22
|
+
dispose(): void;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=xterm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xterm.d.ts","sourceRoot":"","sources":["../../src/browser/xterm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,QAAQ,EAAkB,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAU,MAAM,OAAO,CAAC;AAInE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAIvD,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC1C;AAED,qBACa,KAAM,SAAQ,UAAU;IAEnC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAEtC,SAAS,EAAE,cAAc,CAAC;IAE1B,GAAG,EAAE,QAAQ,CAAC;IAEd,aAAa;IACb,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,YAAY,CAAc;IAClC,UAAU;gBAEE,OAAO,CAAC,EAAE,YAAY;IAQlC,OAAO,CAAC,cAAc;IAQtB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAKrC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAGrB,IAAI;IAGJ,GAAG;IAGH,OAAO;CAIR"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XTerm = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const di_1 = require("@opensumi/di");
|
|
6
|
+
const xterm_1 = require("xterm");
|
|
7
|
+
const xterm_addon_fit_1 = require("xterm-addon-fit");
|
|
8
|
+
const xterm_addon_search_1 = require("xterm-addon-search");
|
|
9
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
10
|
+
const terminal_module_less_1 = (0, tslib_1.__importDefault)(require("./component/terminal.module.less"));
|
|
11
|
+
let XTerm = class XTerm extends ide_core_common_1.Disposable {
|
|
12
|
+
/** end */
|
|
13
|
+
constructor(options) {
|
|
14
|
+
super();
|
|
15
|
+
this.container = document.createElement('div');
|
|
16
|
+
this.container.className = terminal_module_less_1.default.terminalInstance;
|
|
17
|
+
this.raw = new xterm_1.Terminal(options === null || options === void 0 ? void 0 : options.xtermOptions);
|
|
18
|
+
this._prepareAddons();
|
|
19
|
+
}
|
|
20
|
+
_prepareAddons() {
|
|
21
|
+
this._searchAddon = new xterm_addon_search_1.SearchAddon();
|
|
22
|
+
this._fitAddon = new xterm_addon_fit_1.FitAddon();
|
|
23
|
+
this.addDispose([this._searchAddon, this._fitAddon]);
|
|
24
|
+
this.raw.loadAddon(this._searchAddon);
|
|
25
|
+
this.raw.loadAddon(this._fitAddon);
|
|
26
|
+
}
|
|
27
|
+
updateTheme(theme) {
|
|
28
|
+
if (theme) {
|
|
29
|
+
this.raw.setOption('theme', theme);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
findNext(text) {
|
|
33
|
+
return this._searchAddon.findNext(text);
|
|
34
|
+
}
|
|
35
|
+
open() {
|
|
36
|
+
this.raw.open(this.container);
|
|
37
|
+
}
|
|
38
|
+
fit() {
|
|
39
|
+
this._fitAddon.fit();
|
|
40
|
+
}
|
|
41
|
+
dispose() {
|
|
42
|
+
this.raw.dispose();
|
|
43
|
+
this.container.remove();
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
(0, tslib_1.__decorate)([
|
|
47
|
+
(0, di_1.Autowired)(di_1.INJECTOR_TOKEN),
|
|
48
|
+
(0, tslib_1.__metadata)("design:type", di_1.Injector)
|
|
49
|
+
], XTerm.prototype, "injector", void 0);
|
|
50
|
+
XTerm = (0, tslib_1.__decorate)([
|
|
51
|
+
(0, di_1.Injectable)({ multiple: true }),
|
|
52
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object])
|
|
53
|
+
], XTerm);
|
|
54
|
+
exports.XTerm = XTerm;
|
|
55
|
+
//# sourceMappingURL=xterm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xterm.js","sourceRoot":"","sources":["../../src/browser/xterm.ts"],"names":[],"mappings":";;;;AAAA,qCAA+E;AAC/E,iCAAmE;AACnE,qDAA2C;AAC3C,2DAAiD;AAEjD,+DAAuD;AAEvD,yGAAsD;AAQtD,IAAa,KAAK,GAAlB,MAAa,KAAM,SAAQ,4BAAU;IAWnC,UAAU;IAEV,YAAY,OAAsB;QAChC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,8BAAM,CAAC,gBAAgB,CAAC;QAEnD,IAAI,CAAC,GAAG,GAAG,IAAI,gBAAQ,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IACO,cAAc;QACpB,IAAI,CAAC,YAAY,GAAG,IAAI,gCAAW,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,0BAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAErD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IACD,WAAW,CAAC,KAAyB;QACnC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACpC;IACH,CAAC;IACD,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI;QACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IACD,GAAG;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;IACD,OAAO;QACL,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;CACF,CAAA;AA7CC;IADC,IAAA,cAAS,EAAC,mBAAc,CAAC;2CACG,aAAQ;uCAAC;AAF3B,KAAK;IADjB,IAAA,eAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;GAClB,KAAK,CA+CjB;AA/CY,sBAAK"}
|
package/lib/common/client.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Terminal } from 'xterm';
|
|
2
2
|
import { IDisposable, Disposable, Event, Deferred } from '@opensumi/ide-core-common';
|
|
3
|
-
import { INodePtyInstance, TerminalOptions } from './pty';
|
|
3
|
+
import { INodePtyInstance, TerminalOptions, ICreateTerminalOptions } from './pty';
|
|
4
4
|
import { IWidget } from './resize';
|
|
5
5
|
export interface ITerminalDataEvent {
|
|
6
6
|
id: string;
|
|
@@ -131,7 +131,9 @@ export interface ITerminalClient extends Disposable {
|
|
|
131
131
|
registerLinkProvider(provider: ITerminalExternalLinkProvider): IDisposable;
|
|
132
132
|
}
|
|
133
133
|
export declare const ITerminalClientFactory: unique symbol;
|
|
134
|
-
export declare type ITerminalClientFactory = (widget: IWidget, options?: TerminalOptions, disposable?: IDisposable) => ITerminalClient
|
|
134
|
+
export declare type ITerminalClientFactory = (widget: IWidget, options?: TerminalOptions, disposable?: IDisposable) => Promise<ITerminalClient>;
|
|
135
|
+
export declare const ITerminalClientFactory2: unique symbol;
|
|
136
|
+
export declare type ITerminalClientFactory2 = (widget: IWidget, options?: ICreateTerminalOptions, disposable?: IDisposable) => Promise<ITerminalClient>;
|
|
135
137
|
export interface ITerminalConnection {
|
|
136
138
|
name: string;
|
|
137
139
|
readonly: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/common/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/common/client.ts"],"names":[],"mappings":"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"}
|
package/lib/common/client.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ITerminalClientFactory = void 0;
|
|
3
|
+
exports.ITerminalClientFactory2 = exports.ITerminalClientFactory = void 0;
|
|
4
4
|
exports.ITerminalClientFactory = Symbol('ITerminalClientFactory');
|
|
5
|
+
exports.ITerminalClientFactory2 = Symbol('ITerminalClientFactory2');
|
|
5
6
|
//# sourceMappingURL=client.js.map
|
package/lib/common/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/common/client.ts"],"names":[],"mappings":";;;AAgKa,QAAA,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/common/client.ts"],"names":[],"mappings":";;;AAgKa,QAAA,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAO1D,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC"}
|
|
@@ -18,6 +18,18 @@ export interface IBoundSize {
|
|
|
18
18
|
width: number;
|
|
19
19
|
height: number;
|
|
20
20
|
}
|
|
21
|
+
export interface ICreateClientWithWidgetOptions {
|
|
22
|
+
terminalOptions: TerminalOptions;
|
|
23
|
+
/**
|
|
24
|
+
* pty 进程退出后是否自动关闭 terminal 控件
|
|
25
|
+
*/
|
|
26
|
+
closeWhenExited?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* 自定义的参数,由上层集成方自行控制
|
|
29
|
+
*/
|
|
30
|
+
args?: any;
|
|
31
|
+
beforeCreate?: (terminalId: string) => void;
|
|
32
|
+
}
|
|
21
33
|
export declare const ITerminalController: unique symbol;
|
|
22
34
|
export interface ITerminalController extends Disposable {
|
|
23
35
|
ready: Deferred<void>;
|
|
@@ -34,7 +46,11 @@ export interface ITerminalController extends Disposable {
|
|
|
34
46
|
blur(): void;
|
|
35
47
|
onContextMenu(e: React.MouseEvent<HTMLElement>): void;
|
|
36
48
|
findClientFromWidgetId(widgetId: string): ITerminalClient | undefined;
|
|
37
|
-
|
|
49
|
+
/**
|
|
50
|
+
* @deprecated 请使用 `createClientWithWidget2` Will removed in 2.17.0
|
|
51
|
+
*/
|
|
52
|
+
createClientWithWidget(options: TerminalOptions): Promise<ITerminalClient>;
|
|
53
|
+
createClientWithWidget2(options: ICreateClientWithWidgetOptions): Promise<ITerminalClient>;
|
|
38
54
|
clearCurrentGroup(): void;
|
|
39
55
|
clearAllGroups(): void;
|
|
40
56
|
showTerminalPanel(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/common/controller.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/common/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/common/controller.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/common/controller.ts"],"names":[],"mappings":";;;AA0Ca,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAyCpD,QAAA,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAW1D,QAAA,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAiChE,QAAA,4BAA4B,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC"}
|
package/lib/common/error.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { IShellLaunchConfig } from '..';
|
|
2
|
+
export declare enum ETerminalErrorType {
|
|
3
|
+
CREATE_FAIL = 0
|
|
4
|
+
}
|
|
1
5
|
export interface ITerminalError {
|
|
2
6
|
/**
|
|
3
7
|
* 终端客户端的唯一标别
|
|
@@ -7,6 +11,9 @@ export interface ITerminalError {
|
|
|
7
11
|
* 是否已经中断
|
|
8
12
|
*/
|
|
9
13
|
stopped: boolean;
|
|
14
|
+
/**
|
|
15
|
+
*/
|
|
16
|
+
type?: ETerminalErrorType;
|
|
10
17
|
/**
|
|
11
18
|
* 是否需要继续重连,默认为 true
|
|
12
19
|
*/
|
|
@@ -21,6 +28,7 @@ export interface ITerminalError {
|
|
|
21
28
|
* 这个字段语义不太正确,而且框架层并没有用到,后面尽量不要使用
|
|
22
29
|
*/
|
|
23
30
|
reconnected?: boolean;
|
|
31
|
+
launchConfig?: IShellLaunchConfig;
|
|
24
32
|
}
|
|
25
33
|
export declare function isTerminalError(data: any): data is ITerminalError;
|
|
26
34
|
export declare const ITerminalErrorService: unique symbol;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/common/error.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/common/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAExC,oBAAY,kBAAkB;IAC5B,WAAW,IAAI;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;OACG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,cAAc,CAEjE;AAED,eAAO,MAAM,qBAAqB,eAAkC,CAAC;AACrE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC"}
|
package/lib/common/error.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ITerminalErrorService = exports.isTerminalError = void 0;
|
|
3
|
+
exports.ITerminalErrorService = exports.isTerminalError = exports.ETerminalErrorType = void 0;
|
|
4
|
+
var ETerminalErrorType;
|
|
5
|
+
(function (ETerminalErrorType) {
|
|
6
|
+
ETerminalErrorType[ETerminalErrorType["CREATE_FAIL"] = 0] = "CREATE_FAIL";
|
|
7
|
+
})(ETerminalErrorType = exports.ETerminalErrorType || (exports.ETerminalErrorType = {}));
|
|
4
8
|
function isTerminalError(data) {
|
|
5
9
|
return data.message !== undefined;
|
|
6
10
|
}
|
package/lib/common/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/common/error.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/common/error.ts"],"names":[],"mappings":";;;AAEA,IAAY,kBAEX;AAFD,WAAY,kBAAkB;IAC5B,yEAAe,CAAA;AACjB,CAAC,EAFW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAE7B;AA+BD,SAAgB,eAAe,CAAC,IAAS;IACvC,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;AACpC,CAAC;AAFD,0CAEC;AAEY,QAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC"}
|