@opensumi/ide-terminal-next 3.7.2-next-1740052080.0 → 3.7.2-next-1740054042.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/LICENSE +21 -0
- package/lib/browser/component/resize.delegate.d.ts +14 -0
- package/lib/browser/component/resize.delegate.d.ts.map +1 -0
- package/lib/browser/component/resize.delegate.js +46 -0
- package/lib/browser/component/resize.delegate.js.map +1 -0
- package/lib/browser/component/resize.module.less +77 -0
- package/lib/browser/component/resize.view.d.ts +16 -0
- package/lib/browser/component/resize.view.d.ts.map +1 -0
- package/lib/browser/component/resize.view.js +55 -0
- package/lib/browser/component/resize.view.js.map +1 -0
- package/lib/browser/component/search.module.less +61 -0
- package/lib/browser/component/search.view.d.ts +3 -0
- package/lib/browser/component/search.view.d.ts.map +1 -0
- package/lib/browser/component/search.view.js +89 -0
- package/lib/browser/component/search.view.js.map +1 -0
- package/lib/browser/component/tab.item.d.ts +7 -0
- package/lib/browser/component/tab.item.d.ts.map +1 -0
- package/lib/browser/component/tab.item.js +121 -0
- package/lib/browser/component/tab.item.js.map +1 -0
- package/lib/browser/component/tab.module.less +174 -0
- package/lib/browser/component/tab.view.d.ts +4 -0
- package/lib/browser/component/tab.view.d.ts.map +1 -0
- package/lib/browser/component/tab.view.js +65 -0
- package/lib/browser/component/tab.view.js.map +1 -0
- package/lib/browser/component/terminal.module.less +50 -0
- package/lib/browser/component/terminal.variable.d.ts +8 -0
- package/lib/browser/component/terminal.variable.d.ts.map +1 -0
- package/lib/browser/component/terminal.variable.js +44 -0
- package/lib/browser/component/terminal.variable.js.map +1 -0
- package/lib/browser/component/terminal.view.d.ts +5 -0
- package/lib/browser/component/terminal.view.d.ts.map +1 -0
- package/lib/browser/component/terminal.view.js +63 -0
- package/lib/browser/component/terminal.view.js.map +1 -0
- package/lib/browser/component/terminal.widget.d.ts +10 -0
- package/lib/browser/component/terminal.widget.d.ts.map +1 -0
- package/lib/browser/component/terminal.widget.js +65 -0
- package/lib/browser/component/terminal.widget.js.map +1 -0
- package/lib/browser/component/variable.module.less +15 -0
- package/lib/browser/contribution/index.d.ts.map +1 -0
- package/lib/browser/contribution/index.js +11 -0
- package/lib/browser/contribution/index.js.map +1 -0
- package/lib/browser/contribution/terminal.command.js +328 -0
- package/lib/browser/contribution/terminal.keybinding.js +87 -0
- package/lib/browser/contribution/terminal.lifecycle.js +52 -0
- package/lib/browser/contribution/terminal.menu.js +168 -0
- package/lib/browser/contribution/terminal.network.js +44 -0
- package/lib/browser/contribution/terminal.preference.js +43 -0
- package/lib/browser/contribution/terminal.view.js +57 -0
- package/lib/browser/index.js +124 -0
- package/lib/browser/links/base.d.ts +8 -0
- package/lib/browser/links/base.d.ts.map +1 -0
- package/lib/browser/links/base.js +13 -0
- package/lib/browser/links/base.js.map +1 -0
- package/lib/browser/links/external-link-provider-adapter.d.ts +21 -0
- package/lib/browser/links/external-link-provider-adapter.d.ts.map +1 -0
- package/lib/browser/links/external-link-provider-adapter.js +74 -0
- package/lib/browser/links/external-link-provider-adapter.js.map +1 -0
- package/lib/browser/links/helpers.d.ts +7 -0
- package/lib/browser/links/helpers.d.ts.map +1 -0
- package/lib/browser/links/helpers.js +128 -0
- package/lib/browser/links/helpers.js.map +1 -0
- package/lib/browser/links/link-manager.d.ts +92 -0
- package/lib/browser/links/link-manager.d.ts.map +1 -0
- package/lib/browser/links/link-manager.js +342 -0
- package/lib/browser/links/link-manager.js.map +1 -0
- package/lib/browser/links/link.d.ts +31 -0
- package/lib/browser/links/link.d.ts.map +1 -0
- package/lib/browser/links/link.js +136 -0
- package/lib/browser/links/link.js.map +1 -0
- package/lib/browser/links/protocol-link-provider.d.ts +14 -0
- package/lib/browser/links/protocol-link-provider.d.ts.map +1 -0
- package/lib/browser/links/protocol-link-provider.js +71 -0
- package/lib/browser/links/protocol-link-provider.js.map +1 -0
- package/lib/browser/links/validated-local-link-provider.d.ts +41 -0
- package/lib/browser/links/validated-local-link-provider.d.ts.map +1 -0
- package/lib/browser/links/validated-local-link-provider.js +235 -0
- package/lib/browser/links/validated-local-link-provider.js.map +1 -0
- package/lib/browser/links/word-link-provider.d.ts +29 -0
- package/lib/browser/links/word-link-provider.d.ts.map +1 -0
- package/lib/browser/links/word-link-provider.js +153 -0
- package/lib/browser/links/word-link-provider.js.map +1 -0
- package/lib/browser/terminal.addon.js +83 -0
- package/lib/browser/terminal.api.js +162 -0
- package/lib/browser/terminal.client.js +680 -0
- package/lib/browser/terminal.color.js +240 -0
- package/lib/browser/terminal.context-key.js +29 -0
- package/lib/browser/terminal.context-menu.js +96 -0
- package/lib/browser/terminal.controller.js +669 -0
- package/lib/browser/terminal.environment.service.js +153 -0
- package/lib/browser/terminal.error.js +61 -0
- package/lib/browser/terminal.ext.host.proxy.js +108 -0
- package/lib/browser/terminal.hover.manager.js +85 -0
- package/lib/browser/terminal.input.js +32 -0
- package/lib/browser/terminal.internal.service.js +107 -0
- package/lib/browser/terminal.network.js +150 -0
- package/lib/browser/terminal.preference.js +136 -0
- package/lib/browser/terminal.profile.internal.js +104 -0
- package/lib/browser/terminal.profile.js +211 -0
- package/lib/browser/terminal.render.js +25 -0
- package/lib/browser/terminal.restore.js +49 -0
- package/lib/browser/terminal.search.js +109 -0
- package/lib/browser/terminal.service.js +163 -0
- package/lib/common/api.d.ts +22 -0
- package/lib/common/api.d.ts.map +1 -0
- package/lib/common/api.js +5 -0
- package/lib/common/api.js.map +1 -0
- package/lib/common/client.d.ts +199 -0
- package/lib/common/client.d.ts.map +1 -0
- package/lib/common/client.js +6 -0
- package/lib/common/client.js.map +1 -0
- package/lib/common/controller.d.ts +149 -0
- package/lib/common/controller.d.ts.map +1 -0
- package/lib/common/controller.js +8 -0
- package/lib/common/controller.js.map +1 -0
- package/lib/common/environmentVariable.d.ts +116 -0
- package/lib/common/environmentVariable.d.ts.map +1 -0
- package/lib/common/environmentVariable.js +30 -0
- package/lib/common/environmentVariable.js.map +1 -0
- package/lib/common/environmentVariableCollection.d.ts +9 -0
- package/lib/common/environmentVariableCollection.d.ts.map +1 -0
- package/lib/common/environmentVariableCollection.js +140 -0
- package/lib/common/environmentVariableCollection.js.map +1 -0
- package/lib/common/error.d.ts +41 -0
- package/lib/common/error.d.ts.map +1 -0
- package/lib/common/error.js +13 -0
- package/lib/common/error.js.map +1 -0
- package/lib/common/extension.d.ts +139 -0
- package/lib/common/extension.d.ts.map +1 -0
- package/lib/common/extension.js +57 -0
- package/lib/common/extension.js.map +1 -0
- package/lib/common/index.d.ts +17 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +20 -0
- package/lib/common/index.js.map +1 -0
- package/lib/common/link-computer.d.ts +56 -0
- package/lib/common/link-computer.d.ts.map +1 -0
- package/lib/common/link-computer.js +282 -0
- package/lib/common/link-computer.js.map +1 -0
- package/lib/common/network.d.ts +48 -0
- package/lib/common/network.d.ts.map +1 -0
- package/lib/common/network.js +10 -0
- package/lib/common/network.js.map +1 -0
- package/lib/common/preference.d.ts +134 -0
- package/lib/common/preference.d.ts.map +1 -0
- package/lib/common/preference.js +199 -0
- package/lib/common/preference.js.map +1 -0
- 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 +99 -0
- package/lib/common/profile.d.ts.map +1 -0
- package/lib/common/profile.js +27 -0
- package/lib/common/profile.js.map +1 -0
- package/lib/common/pty.d.ts +525 -0
- package/lib/common/pty.d.ts.map +1 -0
- package/lib/common/pty.js +28 -0
- package/lib/common/pty.js.map +1 -0
- package/lib/common/render.d.ts +29 -0
- package/lib/common/render.d.ts.map +1 -0
- package/lib/common/render.js +10 -0
- package/lib/common/render.js.map +1 -0
- package/lib/common/resize.d.ts +43 -0
- package/lib/common/resize.d.ts.map +1 -0
- package/lib/common/resize.js +3 -0
- package/lib/common/resize.js.map +1 -0
- package/lib/common/restore.d.ts +6 -0
- package/lib/common/restore.d.ts.map +1 -0
- package/lib/common/restore.js +5 -0
- package/lib/common/restore.js.map +1 -0
- package/lib/common/service.d.ts +96 -0
- package/lib/common/service.d.ts.map +1 -0
- package/lib/common/service.js +6 -0
- package/lib/common/service.js.map +1 -0
- package/lib/common/shell.d.ts +11 -0
- package/lib/common/shell.d.ts.map +1 -0
- package/lib/common/shell.js +14 -0
- package/lib/common/shell.js.map +1 -0
- package/lib/common/theme.d.ts +6 -0
- package/lib/common/theme.d.ts.map +1 -0
- package/lib/common/theme.js +5 -0
- package/lib/common/theme.js.map +1 -0
- package/lib/common/utils.d.ts +4 -0
- package/lib/common/utils.d.ts.map +1 -0
- package/lib/common/utils.js +15 -0
- package/lib/common/utils.js.map +1 -0
- package/lib/common/xterm.d.ts +27 -0
- package/lib/common/xterm.d.ts.map +1 -0
- package/lib/common/xterm.js +10 -0
- package/lib/common/xterm.js.map +1 -0
- package/lib/index.js +5 -0
- package/lib/node/data-store.d.ts +13 -0
- package/lib/node/data-store.d.ts.map +1 -0
- package/lib/node/data-store.js +6 -0
- package/lib/node/data-store.js.map +1 -0
- package/lib/node/index.d.ts +10 -0
- package/lib/node/index.d.ts.map +1 -0
- package/lib/node/index.js +64 -0
- package/lib/node/index.js.map +1 -0
- package/lib/node/pty.d.ts +42 -0
- package/lib/node/pty.d.ts.map +1 -0
- package/lib/node/pty.js +277 -0
- package/lib/node/pty.js.map +1 -0
- package/lib/node/pty.manager.d.ts +52 -0
- package/lib/node/pty.manager.d.ts.map +1 -0
- package/lib/node/pty.manager.js +157 -0
- package/lib/node/pty.manager.js.map +1 -0
- package/lib/node/pty.manager.remote.d.ts +23 -0
- package/lib/node/pty.manager.remote.d.ts.map +1 -0
- package/lib/node/pty.manager.remote.js +124 -0
- package/lib/node/pty.manager.remote.js.map +1 -0
- package/lib/node/pty.proxy.d.ts +45 -0
- package/lib/node/pty.proxy.d.ts.map +1 -0
- package/lib/node/pty.proxy.js +277 -0
- package/lib/node/pty.proxy.js.map +1 -0
- package/lib/node/pty.proxy.remote.exec.d.ts +2 -0
- package/lib/node/pty.proxy.remote.exec.d.ts.map +1 -0
- package/lib/node/pty.proxy.remote.exec.js +7 -0
- package/lib/node/pty.proxy.remote.exec.js.map +1 -0
- package/lib/node/shell-integration.service.d.ts +24 -0
- package/lib/node/shell-integration.service.d.ts.map +1 -0
- package/lib/node/shell-integration.service.js +187 -0
- package/lib/node/shell-integration.service.js.map +1 -0
- package/lib/node/shell.d.ts +20 -0
- package/lib/node/shell.d.ts.map +1 -0
- package/lib/node/shell.js +199 -0
- package/lib/node/shell.js.map +1 -0
- package/lib/node/terminal.process.service.d.ts +5 -0
- package/lib/node/terminal.process.service.d.ts.map +1 -0
- package/lib/node/terminal.process.service.js +15 -0
- package/lib/node/terminal.process.service.js.map +1 -0
- 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 +228 -0
- package/lib/node/terminal.profile.service.js.map +1 -0
- package/lib/node/terminal.service.client.d.ts +51 -0
- package/lib/node/terminal.service.client.d.ts.map +1 -0
- package/lib/node/terminal.service.client.js +159 -0
- package/lib/node/terminal.service.client.js.map +1 -0
- package/lib/node/terminal.service.d.ts +30 -0
- package/lib/node/terminal.service.d.ts.map +1 -0
- package/lib/node/terminal.service.js +246 -0
- package/lib/node/terminal.service.js.map +1 -0
- package/package.json +18 -18
|
@@ -0,0 +1,228 @@
|
|
|
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
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.TerminalProfileServiceNode = exports.ITerminalProfileServiceNode = void 0;
|
|
8
|
+
const tslib_1 = require("tslib");
|
|
9
|
+
// some code copied and modified from https://github.com/microsoft/vscode/blob/ff383268424b1d4b6620e7ea197fb13ae513414f/src/vs/platform/terminal/node/terminalProfiles.ts
|
|
10
|
+
const fs_extra_1 = require("fs-extra");
|
|
11
|
+
const di_1 = require("@opensumi/di");
|
|
12
|
+
const ide_core_node_1 = require("@opensumi/ide-core-node");
|
|
13
|
+
const shell_1 = require("./shell");
|
|
14
|
+
function applyConfigProfilesToMap(configProfiles, profilesMap) {
|
|
15
|
+
var _a;
|
|
16
|
+
if (!configProfiles) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
for (const [profileName, value] of Object.entries(configProfiles)) {
|
|
20
|
+
if (value === null || (!('path' in value) && !('source' in value))) {
|
|
21
|
+
profilesMap.delete(profileName);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
value.icon = value.icon || ((_a = profilesMap.get(profileName)) === null || _a === void 0 ? void 0 : _a.icon);
|
|
25
|
+
profilesMap.set(profileName, value);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.ITerminalProfileServiceNode = Symbol('ITerminalProfileServiceNode');
|
|
30
|
+
let TerminalProfileServiceNode = class TerminalProfileServiceNode {
|
|
31
|
+
constructor() { }
|
|
32
|
+
detectAvailableProfiles(options) {
|
|
33
|
+
if (options.preference) {
|
|
34
|
+
// 说明用户有设置 perference 中的 profile
|
|
35
|
+
// 目前 Node 端无法获取 browser 层的配置,所以需要前端传进来
|
|
36
|
+
this._perferenceProfiles = options.preference;
|
|
37
|
+
}
|
|
38
|
+
if (ide_core_node_1.isWindows) {
|
|
39
|
+
return this._detectWindowsProfiles(options);
|
|
40
|
+
}
|
|
41
|
+
return this._detectUnixProfiles(options);
|
|
42
|
+
}
|
|
43
|
+
_getPreferenceProfiles() {
|
|
44
|
+
return this._perferenceProfiles || {};
|
|
45
|
+
}
|
|
46
|
+
async _detectWindowsProfiles(options) {
|
|
47
|
+
const defaultProfileName = 'windowsDefault';
|
|
48
|
+
const configProfiles = this._getPreferenceProfiles();
|
|
49
|
+
const { autoDetect } = options;
|
|
50
|
+
// Determine the correct System32 path. We want to point to Sysnative
|
|
51
|
+
// when the 32-bit version of VS Code is running on a 64-bit machine.
|
|
52
|
+
// The reason for this is because PowerShell's important PSReadline
|
|
53
|
+
// module doesn't work if this is not the case. See #27915.
|
|
54
|
+
const is32ProcessOn64Windows = process.env.hasOwnProperty('PROCESSOR_ARCHITEW6432');
|
|
55
|
+
const system32Path = `${process.env['windir']}\\${is32ProcessOn64Windows ? 'Sysnative' : 'System32'}`;
|
|
56
|
+
await this.initializeWindowsProfiles();
|
|
57
|
+
const detectedProfiles = new Map();
|
|
58
|
+
// Add auto detected profiles
|
|
59
|
+
if (autoDetect) {
|
|
60
|
+
detectedProfiles.set('PowerShell', {
|
|
61
|
+
source: "PowerShell" /* ProfileSource.Pwsh */,
|
|
62
|
+
// icon: Codicon.terminalPowershell,
|
|
63
|
+
isAutoDetected: true,
|
|
64
|
+
});
|
|
65
|
+
detectedProfiles.set('Windows PowerShell', {
|
|
66
|
+
path: `${system32Path}\\WindowsPowerShell\\v1.0\\powershell.exe`,
|
|
67
|
+
// icon: Codicon.terminalPowershell,
|
|
68
|
+
isAutoDetected: true,
|
|
69
|
+
});
|
|
70
|
+
detectedProfiles.set('Git Bash', {
|
|
71
|
+
source: "Git Bash" /* ProfileSource.GitBash */,
|
|
72
|
+
isAutoDetected: true,
|
|
73
|
+
});
|
|
74
|
+
detectedProfiles.set('Cygwin', {
|
|
75
|
+
path: [
|
|
76
|
+
`${process.env['HOMEDRIVE']}\\cygwin64\\bin\\bash.exe`,
|
|
77
|
+
`${process.env['HOMEDRIVE']}\\cygwin\\bin\\bash.exe`,
|
|
78
|
+
],
|
|
79
|
+
args: ['--login'],
|
|
80
|
+
isAutoDetected: true,
|
|
81
|
+
});
|
|
82
|
+
detectedProfiles.set('Command Prompt', {
|
|
83
|
+
path: `${system32Path}\\cmd.exe`,
|
|
84
|
+
// icon: Codicon.terminalCmd,
|
|
85
|
+
isAutoDetected: true,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
applyConfigProfilesToMap(configProfiles, detectedProfiles);
|
|
89
|
+
const resultProfiles = this.transformToTerminalProfiles(detectedProfiles.entries(), defaultProfileName);
|
|
90
|
+
// TODO: 暂不引入 WSL 的相关逻辑
|
|
91
|
+
// const useWslProfiles = ;
|
|
92
|
+
// let useWSLexe = false;
|
|
93
|
+
// if (getWindowsBuildNumber() >= 16299) {
|
|
94
|
+
// useWSLexe = true;
|
|
95
|
+
// }
|
|
96
|
+
// if (autoDetect || (!autoDetect && useWslProfiles)) {
|
|
97
|
+
// const wslPath = `${system32Path}\\${useWSLexe ? 'wsl' : 'bash'}.exe`;
|
|
98
|
+
// }
|
|
99
|
+
return resultProfiles;
|
|
100
|
+
}
|
|
101
|
+
async initializeWindowsProfiles() {
|
|
102
|
+
if (this.profileSources) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
this.profileSources = new Map();
|
|
106
|
+
this.profileSources.set('Git Bash', {
|
|
107
|
+
profileName: 'Git Bash',
|
|
108
|
+
paths: shell_1.WINDOWS_GIT_BASH_PATHS,
|
|
109
|
+
args: ['--login'],
|
|
110
|
+
});
|
|
111
|
+
this.profileSources.set('PowerShell', {
|
|
112
|
+
profileName: 'PowerShell',
|
|
113
|
+
paths: await (0, shell_1.getPowershellPaths)(),
|
|
114
|
+
// icon: ThemeIcon.asThemeIcon(Codicon.terminalPowershell),
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
async _detectUnixProfiles(options) {
|
|
118
|
+
const defaultProfileName = 'unixDefault';
|
|
119
|
+
const { autoDetect } = options;
|
|
120
|
+
const configProfiles = this._getPreferenceProfiles();
|
|
121
|
+
const detectedProfiles = new Map();
|
|
122
|
+
if (autoDetect) {
|
|
123
|
+
const contents = (await (0, fs_extra_1.readFile)('/etc/shells')).toString();
|
|
124
|
+
const profiles = contents.split('\n').filter((e) => e.trim().indexOf('#') !== 0 && e.trim().length > 0);
|
|
125
|
+
const counts = new Map();
|
|
126
|
+
for (const profile of profiles) {
|
|
127
|
+
let profileName = ide_core_node_1.path.basename(profile);
|
|
128
|
+
let count = counts.get(profileName) || 0;
|
|
129
|
+
count++;
|
|
130
|
+
if (count > 1) {
|
|
131
|
+
profileName = `${profileName} (${count})`;
|
|
132
|
+
}
|
|
133
|
+
counts.set(profileName, count);
|
|
134
|
+
detectedProfiles.set(profileName, { path: profile, isAutoDetected: true });
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
applyConfigProfilesToMap(configProfiles, detectedProfiles);
|
|
138
|
+
return await this.transformToTerminalProfiles(detectedProfiles.entries(), defaultProfileName);
|
|
139
|
+
}
|
|
140
|
+
async validateProfilePaths(profileName, defaultProfileName, potentialPaths, args, env, overrideName, isAutoDetected) {
|
|
141
|
+
if (potentialPaths.length === 0) {
|
|
142
|
+
return Promise.resolve(undefined);
|
|
143
|
+
}
|
|
144
|
+
const potentialPath = potentialPaths.shift();
|
|
145
|
+
if (potentialPath === '') {
|
|
146
|
+
// 如果是空的,则跳过
|
|
147
|
+
return this.validateProfilePaths(profileName, defaultProfileName, potentialPaths, args, env, overrideName, isAutoDetected);
|
|
148
|
+
}
|
|
149
|
+
const profile = {
|
|
150
|
+
profileName,
|
|
151
|
+
path: potentialPath,
|
|
152
|
+
args,
|
|
153
|
+
env,
|
|
154
|
+
overrideName,
|
|
155
|
+
isAutoDetected,
|
|
156
|
+
isDefault: profileName === defaultProfileName,
|
|
157
|
+
};
|
|
158
|
+
// For non-absolute paths, check if it's available on $PATH
|
|
159
|
+
if (ide_core_node_1.path.basename(potentialPath) === potentialPath) {
|
|
160
|
+
// The executable isn't an absolute path, try find it on the PATH
|
|
161
|
+
const executable = await (0, shell_1.findExecutable)(potentialPath, undefined, undefined, undefined);
|
|
162
|
+
if (!executable) {
|
|
163
|
+
return this.validateProfilePaths(profileName, defaultProfileName, potentialPaths, args, env, overrideName, isAutoDetected);
|
|
164
|
+
}
|
|
165
|
+
return profile;
|
|
166
|
+
}
|
|
167
|
+
const result = await (0, shell_1.exists)(potentialPath);
|
|
168
|
+
if (result) {
|
|
169
|
+
return profile;
|
|
170
|
+
}
|
|
171
|
+
return this.validateProfilePaths(profileName, defaultProfileName, potentialPaths, args, env, overrideName, isAutoDetected);
|
|
172
|
+
}
|
|
173
|
+
async transformToTerminalProfiles(entries, defaultProfileName) {
|
|
174
|
+
var _a;
|
|
175
|
+
const resultProfiles = [];
|
|
176
|
+
for (const [profileName, profile] of entries) {
|
|
177
|
+
if (profile === null) {
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
let originalPaths = [];
|
|
181
|
+
let args;
|
|
182
|
+
let icon;
|
|
183
|
+
if ('source' in profile) {
|
|
184
|
+
const source = (_a = this.profileSources) === null || _a === void 0 ? void 0 : _a.get(profile.source);
|
|
185
|
+
if (!source) {
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
originalPaths = source.paths;
|
|
189
|
+
// if there are configured args, override the default ones
|
|
190
|
+
args = profile.args || source.args;
|
|
191
|
+
if (profile.icon) {
|
|
192
|
+
// icon = validateIcon(profile.icon);
|
|
193
|
+
}
|
|
194
|
+
else if (source.icon) {
|
|
195
|
+
icon = source.icon;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
originalPaths = Array.isArray(profile.path) ? profile.path : [profile.path];
|
|
200
|
+
args = ide_core_node_1.isWindows ? profile.args : Array.isArray(profile.args) ? profile.args : undefined;
|
|
201
|
+
// icon = validateIcon(profile.icon);
|
|
202
|
+
}
|
|
203
|
+
// TODO: use (await this.variableResolver.resolveArray(originalPaths))
|
|
204
|
+
const paths = originalPaths.slice();
|
|
205
|
+
const validatedProfile = await this.validateProfilePaths(profileName, defaultProfileName, paths, args, {});
|
|
206
|
+
if (validatedProfile) {
|
|
207
|
+
validatedProfile.isAutoDetected = profile.isAutoDetected;
|
|
208
|
+
validatedProfile.icon = icon;
|
|
209
|
+
validatedProfile.color = profile.color;
|
|
210
|
+
resultProfiles.push(validatedProfile);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
this.logger.log(`Profile \`${profileName}\` not validated with originalPaths ${originalPaths}`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return resultProfiles;
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
exports.TerminalProfileServiceNode = TerminalProfileServiceNode;
|
|
220
|
+
tslib_1.__decorate([
|
|
221
|
+
(0, di_1.Autowired)(ide_core_node_1.INodeLogger),
|
|
222
|
+
tslib_1.__metadata("design:type", Object)
|
|
223
|
+
], TerminalProfileServiceNode.prototype, "logger", void 0);
|
|
224
|
+
exports.TerminalProfileServiceNode = TerminalProfileServiceNode = tslib_1.__decorate([
|
|
225
|
+
(0, di_1.Injectable)(),
|
|
226
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
227
|
+
], TerminalProfileServiceNode);
|
|
228
|
+
//# sourceMappingURL=terminal.profile.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.profile.service.js","sourceRoot":"","sources":["../../src/node/terminal.profile.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { RPCService } from '@opensumi/ide-connection';
|
|
2
|
+
import { OperatingSystem } from '@opensumi/ide-core-node';
|
|
3
|
+
import { INodePtyInstance, IShellLaunchConfig, ITerminalError, ITerminalServiceClient } from '../common';
|
|
4
|
+
import { IDetectProfileOptions, ITerminalProfile } from '../common/profile';
|
|
5
|
+
import { WindowsShellType } from '../common/shell';
|
|
6
|
+
/**
|
|
7
|
+
* this RPC target: NodePtyTerminalService
|
|
8
|
+
*/
|
|
9
|
+
interface IRPCTerminalService {
|
|
10
|
+
closeClient(id: string, data: ITerminalError | {
|
|
11
|
+
code?: number;
|
|
12
|
+
signal?: number;
|
|
13
|
+
} | number, signal?: number): void;
|
|
14
|
+
$processChange(id: string, processName: string): void;
|
|
15
|
+
onMessage(id: string, msg: string): void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 标准的后端服务,供前端调用
|
|
19
|
+
* 目前每个窗口会对应一个 TerminalServiceClientImpl 实例
|
|
20
|
+
*/
|
|
21
|
+
export declare class TerminalServiceClientImpl extends RPCService<IRPCTerminalService> implements ITerminalServiceClient {
|
|
22
|
+
private terminalService;
|
|
23
|
+
private terminalProfileService;
|
|
24
|
+
private clientId;
|
|
25
|
+
private logger;
|
|
26
|
+
setConnectionClientId(clientId: string): void;
|
|
27
|
+
clientMessage(id: string, data: string): void;
|
|
28
|
+
closeClient(id: string, data: ITerminalError | {
|
|
29
|
+
code?: number;
|
|
30
|
+
signal?: number;
|
|
31
|
+
} | number, signal?: number): void;
|
|
32
|
+
processChange(clientId: string, processName: string): void;
|
|
33
|
+
ensureTerminal(terminalIdArr: string[]): Promise<boolean>;
|
|
34
|
+
create2(id: string, cols: number, rows: number, launchConfig: IShellLaunchConfig): Promise<INodePtyInstance | undefined>;
|
|
35
|
+
$resolveWindowsShellPath(type: WindowsShellType): Promise<string | undefined>;
|
|
36
|
+
$resolveUnixShellPath(type: string): Promise<string | undefined>;
|
|
37
|
+
$resolveShellPath(paths: string[]): Promise<string | undefined>;
|
|
38
|
+
detectAvailableProfiles(options: IDetectProfileOptions): Promise<ITerminalProfile[]>;
|
|
39
|
+
getCodePlatformKey(): Promise<'osx' | 'windows' | 'linux'>;
|
|
40
|
+
getDefaultSystemShell(os: OperatingSystem): Promise<string>;
|
|
41
|
+
onMessage(id: string, msg: string): void;
|
|
42
|
+
resize(id: string, rows: number, cols: number): void;
|
|
43
|
+
disposeById(id: string): void;
|
|
44
|
+
getProcessId(id: string): number;
|
|
45
|
+
getShellName(id: string): string;
|
|
46
|
+
getOS(): OperatingSystem;
|
|
47
|
+
dispose(): void;
|
|
48
|
+
getCwd(id: string): Promise<string | undefined>;
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=terminal.service.client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.service.client.d.ts","sourceRoot":"","sources":["../../src/node/terminal.service.client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAe,eAAe,EAA0B,MAAM,yBAAyB,CAAC;AAE/F,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EAEd,sBAAsB,EACvB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAmC,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKpF;;GAEG;AACH,UAAU,mBAAmB;IAC3B,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED;;;GAGG;AACH,qBACa,yBAA0B,SAAQ,UAAU,CAAC,mBAAmB,CAAE,YAAW,sBAAsB;IAE9G,OAAO,CAAC,eAAe,CAAuB;IAG9C,OAAO,CAAC,sBAAsB,CAA6B;IAE3D,OAAO,CAAC,QAAQ,CAAS;IAGzB,OAAO,CAAC,MAAM,CAAc;IAE5B,qBAAqB,CAAC,QAAQ,EAAE,MAAM;IAMtC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAQtC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAQ3G,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAQpD,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzD,OAAO,CACX,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAyBlC,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAgB7E,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAKhE,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI/D,uBAAuB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAIpF,kBAAkB,IAAI,OAAO,CAAC,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;IAa1D,qBAAqB,CAAC,EAAE,EAAE,eAAe;IAI/C,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAUxC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAI7C,WAAW,CAAC,EAAE,EAAE,MAAM;IAItB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAIhC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAIhC,KAAK,IAAI,eAAe;IAIxB,OAAO;IAKP,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAGhD"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TerminalServiceClientImpl = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const di_1 = require("@opensumi/di");
|
|
6
|
+
const ide_connection_1 = require("@opensumi/ide-connection");
|
|
7
|
+
const ide_core_node_1 = require("@opensumi/ide-core-node");
|
|
8
|
+
const common_1 = require("../common");
|
|
9
|
+
const shell_1 = require("../common/shell");
|
|
10
|
+
const shell_2 = require("./shell");
|
|
11
|
+
const terminal_profile_service_1 = require("./terminal.profile.service");
|
|
12
|
+
/**
|
|
13
|
+
* 标准的后端服务,供前端调用
|
|
14
|
+
* 目前每个窗口会对应一个 TerminalServiceClientImpl 实例
|
|
15
|
+
*/
|
|
16
|
+
let TerminalServiceClientImpl = class TerminalServiceClientImpl extends ide_connection_1.RPCService {
|
|
17
|
+
setConnectionClientId(clientId) {
|
|
18
|
+
this.clientId = clientId;
|
|
19
|
+
this.logger.debug('TerminalServiceClientImpl', 'setConnectionClientId', clientId);
|
|
20
|
+
this.terminalService.setClient(this.clientId, this);
|
|
21
|
+
}
|
|
22
|
+
clientMessage(id, data) {
|
|
23
|
+
if (this.client) {
|
|
24
|
+
return this.client.onMessage(id, data);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
this.logger.warn(`clientMessage ${id} rpcClient not found`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
closeClient(id, data, signal) {
|
|
31
|
+
if (this.client) {
|
|
32
|
+
this.client.closeClient(id, data, signal);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.logger.warn(`clientMessage ${id} rpcClient not found`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
processChange(clientId, processName) {
|
|
39
|
+
if (this.client) {
|
|
40
|
+
this.logger.log(`processChange ${clientId} ${processName}`);
|
|
41
|
+
this.client.$processChange(clientId, processName);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// 检查终端状态,终端是否存活
|
|
45
|
+
async ensureTerminal(terminalIdArr) {
|
|
46
|
+
return await this.terminalService.ensureClientTerminal(this.clientId, terminalIdArr);
|
|
47
|
+
}
|
|
48
|
+
async create2(id, cols, rows, launchConfig) {
|
|
49
|
+
try {
|
|
50
|
+
const pty = await this.terminalService.create2(id, cols, rows, launchConfig);
|
|
51
|
+
if (pty) {
|
|
52
|
+
this.terminalService.setClient(this.clientId, this);
|
|
53
|
+
this.logger.log(`client ${id} create ${pty.pid} with options `, launchConfig);
|
|
54
|
+
this.logger.log(`terminal client ${id} and clientID: ${this.clientId} create ${pty.pid} with options `, launchConfig);
|
|
55
|
+
return {
|
|
56
|
+
id,
|
|
57
|
+
pid: pty.pid,
|
|
58
|
+
process: pty.process,
|
|
59
|
+
name: pty.parsedName,
|
|
60
|
+
shellPath: pty.launchConfig.executable,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
this.logger.log(`cannot create pty instance ${id} `, launchConfig);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
this.logger.error(`create pty instance error ${id}`, launchConfig, error);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
async $resolveWindowsShellPath(type) {
|
|
72
|
+
switch (type) {
|
|
73
|
+
case shell_1.WindowsShellType.powershell:
|
|
74
|
+
return shell_1.WINDOWS_DEFAULT_SHELL_PATH_MAPS.powershell;
|
|
75
|
+
case shell_1.WindowsShellType.cmd:
|
|
76
|
+
return shell_1.WINDOWS_DEFAULT_SHELL_PATH_MAPS.cmd;
|
|
77
|
+
case shell_1.WindowsShellType['git-bash']: {
|
|
78
|
+
const shell = await (0, shell_2.findShellExecutableAsync)(shell_2.WINDOWS_GIT_BASH_PATHS);
|
|
79
|
+
return shell;
|
|
80
|
+
}
|
|
81
|
+
default:
|
|
82
|
+
// 未知的 shell,返回 undefined,后续会使用系统默认值处理
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async $resolveUnixShellPath(type) {
|
|
87
|
+
const candidates = [type, `/bin/${type}`, `/usr/bin/${type}`];
|
|
88
|
+
return await (0, shell_2.findShellExecutableAsync)(candidates);
|
|
89
|
+
}
|
|
90
|
+
async $resolveShellPath(paths) {
|
|
91
|
+
return await (0, shell_2.findShellExecutableAsync)(paths);
|
|
92
|
+
}
|
|
93
|
+
async detectAvailableProfiles(options) {
|
|
94
|
+
return await this.terminalProfileService.detectAvailableProfiles(options);
|
|
95
|
+
}
|
|
96
|
+
async getCodePlatformKey() {
|
|
97
|
+
switch (this.getOS()) {
|
|
98
|
+
case ide_core_node_1.OperatingSystem.Macintosh:
|
|
99
|
+
return 'osx';
|
|
100
|
+
case ide_core_node_1.OperatingSystem.Windows:
|
|
101
|
+
return 'windows';
|
|
102
|
+
case ide_core_node_1.OperatingSystem.Linux:
|
|
103
|
+
return 'linux';
|
|
104
|
+
default:
|
|
105
|
+
return 'linux';
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async getDefaultSystemShell(os) {
|
|
109
|
+
return await (0, shell_2.getSystemShell)(os);
|
|
110
|
+
}
|
|
111
|
+
onMessage(id, msg) {
|
|
112
|
+
const { data, params, method } = JSON.parse(msg);
|
|
113
|
+
if (method === 'resize') {
|
|
114
|
+
this.resize(id, params.rows, params.cols);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
this.terminalService.onMessage(id, data);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
resize(id, rows, cols) {
|
|
121
|
+
this.terminalService.resize(id, rows, cols);
|
|
122
|
+
}
|
|
123
|
+
disposeById(id) {
|
|
124
|
+
this.terminalService.disposeById(id);
|
|
125
|
+
}
|
|
126
|
+
getProcessId(id) {
|
|
127
|
+
return this.terminalService.getProcessId(id);
|
|
128
|
+
}
|
|
129
|
+
getShellName(id) {
|
|
130
|
+
return this.terminalService.getShellName(id);
|
|
131
|
+
}
|
|
132
|
+
getOS() {
|
|
133
|
+
return ide_core_node_1.isWindows ? ide_core_node_1.OperatingSystem.Windows : ide_core_node_1.isMacintosh ? ide_core_node_1.OperatingSystem.Macintosh : ide_core_node_1.OperatingSystem.Linux;
|
|
134
|
+
}
|
|
135
|
+
dispose() {
|
|
136
|
+
// TODO 后续需要一个合理的 Dispose 逻辑,暂时不要 Dispose,避免重连时终端不可用
|
|
137
|
+
// this.terminalService.closeClient(this.clientId);
|
|
138
|
+
}
|
|
139
|
+
getCwd(id) {
|
|
140
|
+
return this.terminalService.getCwd(id);
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
exports.TerminalServiceClientImpl = TerminalServiceClientImpl;
|
|
144
|
+
tslib_1.__decorate([
|
|
145
|
+
(0, di_1.Autowired)(common_1.ITerminalNodeService),
|
|
146
|
+
tslib_1.__metadata("design:type", Object)
|
|
147
|
+
], TerminalServiceClientImpl.prototype, "terminalService", void 0);
|
|
148
|
+
tslib_1.__decorate([
|
|
149
|
+
(0, di_1.Autowired)(terminal_profile_service_1.ITerminalProfileServiceNode),
|
|
150
|
+
tslib_1.__metadata("design:type", terminal_profile_service_1.TerminalProfileServiceNode)
|
|
151
|
+
], TerminalServiceClientImpl.prototype, "terminalProfileService", void 0);
|
|
152
|
+
tslib_1.__decorate([
|
|
153
|
+
(0, di_1.Autowired)(ide_core_node_1.INodeLogger),
|
|
154
|
+
tslib_1.__metadata("design:type", Object)
|
|
155
|
+
], TerminalServiceClientImpl.prototype, "logger", void 0);
|
|
156
|
+
exports.TerminalServiceClientImpl = TerminalServiceClientImpl = tslib_1.__decorate([
|
|
157
|
+
(0, di_1.Injectable)()
|
|
158
|
+
], TerminalServiceClientImpl);
|
|
159
|
+
//# sourceMappingURL=terminal.service.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.service.client.js","sourceRoot":"","sources":["../../src/node/terminal.service.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ITerminalNodeService, ITerminalServiceClient } from '../common';
|
|
2
|
+
import { IPtyProcessProxy, IShellLaunchConfig } from '../common/pty';
|
|
3
|
+
export declare class TerminalServiceImpl implements ITerminalNodeService {
|
|
4
|
+
static TerminalPtyCloseThreshold: number;
|
|
5
|
+
private terminalProcessMap;
|
|
6
|
+
private clientTerminalMap;
|
|
7
|
+
private serviceClientMap;
|
|
8
|
+
private closeTimeOutMap;
|
|
9
|
+
private batchedPtyDataMap;
|
|
10
|
+
private batchedPtyDataTimer;
|
|
11
|
+
private injector;
|
|
12
|
+
private logger;
|
|
13
|
+
private appConfig;
|
|
14
|
+
private readonly ptyServiceManager;
|
|
15
|
+
setClient(clientId: string, client: ITerminalServiceClient): void;
|
|
16
|
+
ensureClientTerminal(clientId: string, terminalIdArr: string[]): Promise<boolean>;
|
|
17
|
+
closeClient(clientId: string): void;
|
|
18
|
+
disposeClient(clientId: string): void;
|
|
19
|
+
private flushPtyData;
|
|
20
|
+
create2(sessionId: string, cols: number, rows: number, launchConfig: IShellLaunchConfig): Promise<IPtyProcessProxy | undefined>;
|
|
21
|
+
onMessage(id: string, msg: string): void;
|
|
22
|
+
resize(id: string, rows: number, cols: number): void;
|
|
23
|
+
getShellName(id: string): string;
|
|
24
|
+
getProcessId(id: string): number;
|
|
25
|
+
disposeById(id: string): void;
|
|
26
|
+
dispose(): void;
|
|
27
|
+
private getTerminal;
|
|
28
|
+
getCwd(id: string): Promise<string | undefined>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=terminal.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.service.d.ts","sourceRoot":"","sources":["../../src/node/terminal.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,oBAAoB,EAAE,sBAAsB,EAAyB,MAAM,WAAW,CAAC;AACpH,OAAO,EAAE,gBAAgB,EAAe,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAgBlF,qBACa,mBAAoB,YAAW,oBAAoB;IAC9D,MAAM,CAAC,yBAAyB,SAAa;IAE7C,OAAO,CAAC,kBAAkB,CAAuC;IACjE,OAAO,CAAC,iBAAiB,CAAmD;IAE5E,OAAO,CAAC,gBAAgB,CAAkD;IAC1E,OAAO,CAAC,eAAe,CAA0C;IAEjE,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,mBAAmB,CAA0C;IAGrE,OAAO,CAAC,QAAQ,CAAW;IAG3B,OAAO,CAAC,MAAM,CAAc;IAG5B,OAAO,CAAC,SAAS,CAAY;IAG7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IAEhD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB;IAepD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE;IAgBpE,WAAW,CAAC,QAAQ,EAAE,MAAM;IAY5B,aAAa,CAAC,QAAQ,EAAE,MAAM;IAuBrC,OAAO,CAAC,YAAY;IAmBP,OAAO,CAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAuFjC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IASjC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IASpD,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAQhC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAQhC,WAAW,CAAC,EAAE,EAAE,MAAM;IAStB,OAAO;IAOP,OAAO,CAAC,WAAW;IAIb,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAQtD"}
|