@celljs/ta-web 4.7.0 → 4.8.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/README.en.md +1 -1
- package/README.md +1 -1
- package/esm/browser/chat/chat-protocol.d.ts +4 -0
- package/esm/browser/chat/chat-view.js +4 -1
- package/esm/browser/chat/chat-view.js.map +1 -1
- package/esm/browser/chat/chat.d.ts +8 -1
- package/esm/browser/chat/chat.js +34 -15
- package/esm/browser/chat/chat.js.map +1 -1
- package/esm/browser/chat/draft-model.d.ts +15 -0
- package/esm/browser/chat/draft-model.js +53 -0
- package/esm/browser/chat/draft-model.js.map +1 -0
- package/esm/browser/components/app-view.js +10 -3
- package/esm/browser/components/app-view.js.map +1 -1
- package/esm/browser/components/composer-box.d.ts +6 -0
- package/esm/browser/components/composer-box.js +50 -13
- package/esm/browser/components/composer-box.js.map +1 -1
- package/esm/browser/components/composer.js +1 -1
- package/esm/browser/components/composer.js.map +1 -1
- package/esm/browser/components/dialog-view.d.ts +4 -1
- package/esm/browser/components/dialog-view.js +11 -7
- package/esm/browser/components/dialog-view.js.map +1 -1
- package/esm/browser/components/notice-center.js +3 -1
- package/esm/browser/components/notice-center.js.map +1 -1
- package/esm/browser/components/session-view.js +48 -4
- package/esm/browser/components/session-view.js.map +1 -1
- package/esm/browser/components/terminal-art.d.ts +7 -0
- package/esm/browser/components/terminal-art.js +12 -0
- package/esm/browser/components/terminal-art.js.map +1 -0
- package/esm/browser/components/tool-view.js +1 -1
- package/esm/browser/components/tool-view.js.map +1 -1
- package/esm/browser/components/web-composer.js +1 -1
- package/esm/browser/components/web-composer.js.map +1 -1
- package/esm/browser/extension/icons.js +4 -1
- package/esm/browser/extension/icons.js.map +1 -1
- package/esm/browser/extension/web-extension-api.d.ts +117 -1
- package/esm/browser/extension/web-extensions.d.ts +3 -0
- package/esm/browser/extension/web-extensions.js +22 -0
- package/esm/browser/extension/web-extensions.js.map +1 -1
- package/esm/browser/i18n/locales.d.ts +13 -1
- package/esm/browser/i18n/messages.d.ts +12 -0
- package/esm/browser/i18n/messages.js +24 -0
- package/esm/browser/i18n/messages.js.map +1 -1
- package/esm/browser/notices/notices-protocol.d.ts +3 -0
- package/esm/browser/notices/notices.d.ts +3 -0
- package/esm/browser/notices/notices.js +15 -0
- package/esm/browser/notices/notices.js.map +1 -1
- package/esm/browser/style/conversation.d.ts +1 -1
- package/esm/browser/style/conversation.js +16 -1
- package/esm/browser/style/conversation.js.map +1 -1
- package/esm/browser/style/layout.d.ts +1 -1
- package/esm/browser/style/layout.js +5 -0
- package/esm/browser/style/layout.js.map +1 -1
- package/esm/browser/style/shell.d.ts +1 -1
- package/esm/browser/style/shell.js +1 -0
- package/esm/browser/style/shell.js.map +1 -1
- package/esm/browser/terminal/canvas-font.d.ts +10 -0
- package/esm/browser/terminal/canvas-font.js +34 -0
- package/esm/browser/terminal/canvas-font.js.map +1 -0
- package/esm/browser/terminal/terminal-links.d.ts +18 -0
- package/esm/browser/terminal/terminal-links.js +72 -0
- package/esm/browser/terminal/terminal-links.js.map +1 -0
- package/esm/browser/terminal/terminal-theme.d.ts +8 -0
- package/esm/browser/terminal/terminal-theme.js +65 -0
- package/esm/browser/terminal/terminal-theme.js.map +1 -0
- package/esm/browser/terminal/web-terminal.d.ts +74 -0
- package/esm/browser/terminal/web-terminal.js +300 -0
- package/esm/browser/terminal/web-terminal.js.map +1 -0
- package/esm/browser/terminal/xterm.d.ts +5 -0
- package/esm/browser/terminal/xterm.js +9 -0
- package/esm/browser/terminal/xterm.js.map +1 -0
- package/esm/browser/util/desktop.d.ts +43 -0
- package/esm/browser/util/desktop.js +55 -0
- package/esm/browser/util/desktop.js.map +1 -0
- package/esm/browser/util/file-drag.d.ts +26 -0
- package/esm/browser/util/file-drag.js +73 -0
- package/esm/browser/util/file-drag.js.map +1 -0
- package/esm/browser/util/terminal-text.d.ts +33 -0
- package/esm/browser/util/terminal-text.js +209 -0
- package/esm/browser/util/terminal-text.js.map +1 -0
- package/esm/browser/util/tool.js +16 -0
- package/esm/browser/util/tool.js.map +1 -1
- package/lib/browser/chat/chat-protocol.d.ts +4 -0
- package/lib/browser/chat/chat-protocol.d.ts.map +1 -1
- package/lib/browser/chat/chat-view.d.ts.map +1 -1
- package/lib/browser/chat/chat-view.js +4 -1
- package/lib/browser/chat/chat-view.js.map +1 -1
- package/lib/browser/chat/chat.d.ts +8 -1
- package/lib/browser/chat/chat.d.ts.map +1 -1
- package/lib/browser/chat/chat.js +34 -15
- package/lib/browser/chat/chat.js.map +1 -1
- package/lib/browser/chat/chat.spec.js +30 -0
- package/lib/browser/chat/chat.spec.js.map +1 -1
- package/lib/browser/chat/draft-model.d.ts +16 -0
- package/lib/browser/chat/draft-model.d.ts.map +1 -0
- package/lib/browser/chat/draft-model.js +90 -0
- package/lib/browser/chat/draft-model.js.map +1 -0
- package/lib/browser/chat/draft-model.spec.d.ts +2 -0
- package/lib/browser/chat/draft-model.spec.d.ts.map +1 -0
- package/lib/browser/chat/draft-model.spec.js +31 -0
- package/lib/browser/chat/draft-model.spec.js.map +1 -0
- package/lib/browser/components/app-view.d.ts.map +1 -1
- package/lib/browser/components/app-view.js +10 -3
- package/lib/browser/components/app-view.js.map +1 -1
- package/lib/browser/components/composer-box.d.ts +6 -0
- package/lib/browser/components/composer-box.d.ts.map +1 -1
- package/lib/browser/components/composer-box.js +51 -14
- package/lib/browser/components/composer-box.js.map +1 -1
- package/lib/browser/components/composer.d.ts.map +1 -1
- package/lib/browser/components/composer.js +1 -1
- package/lib/browser/components/composer.js.map +1 -1
- package/lib/browser/components/dialog-view.d.ts +4 -1
- package/lib/browser/components/dialog-view.d.ts.map +1 -1
- package/lib/browser/components/dialog-view.js +11 -7
- package/lib/browser/components/dialog-view.js.map +1 -1
- package/lib/browser/components/notice-center.d.ts.map +1 -1
- package/lib/browser/components/notice-center.js +3 -1
- package/lib/browser/components/notice-center.js.map +1 -1
- package/lib/browser/components/plus-menu.spec.d.ts +2 -0
- package/lib/browser/components/plus-menu.spec.d.ts.map +1 -0
- package/lib/browser/components/plus-menu.spec.js +18 -0
- package/lib/browser/components/plus-menu.spec.js.map +1 -0
- package/lib/browser/components/session-view.d.ts.map +1 -1
- package/lib/browser/components/session-view.js +48 -4
- package/lib/browser/components/session-view.js.map +1 -1
- package/lib/browser/components/terminal-art.d.ts +8 -0
- package/lib/browser/components/terminal-art.d.ts.map +1 -0
- package/lib/browser/components/terminal-art.js +48 -0
- package/lib/browser/components/terminal-art.js.map +1 -0
- package/lib/browser/components/tool-view.js +1 -1
- package/lib/browser/components/tool-view.js.map +1 -1
- package/lib/browser/components/web-composer.d.ts.map +1 -1
- package/lib/browser/components/web-composer.js +1 -1
- package/lib/browser/components/web-composer.js.map +1 -1
- package/lib/browser/extension/icons.d.ts.map +1 -1
- package/lib/browser/extension/icons.js +3 -0
- package/lib/browser/extension/icons.js.map +1 -1
- package/lib/browser/extension/web-extension-api.d.ts +117 -1
- package/lib/browser/extension/web-extension-api.d.ts.map +1 -1
- package/lib/browser/extension/web-extensions.d.ts +3 -0
- package/lib/browser/extension/web-extensions.d.ts.map +1 -1
- package/lib/browser/extension/web-extensions.js +22 -0
- package/lib/browser/extension/web-extensions.js.map +1 -1
- package/lib/browser/i18n/locales.d.ts +13 -1
- package/lib/browser/i18n/locales.d.ts.map +1 -1
- package/lib/browser/i18n/messages.d.ts +12 -0
- package/lib/browser/i18n/messages.d.ts.map +1 -1
- package/lib/browser/i18n/messages.js +24 -0
- package/lib/browser/i18n/messages.js.map +1 -1
- package/lib/browser/notices/notices-protocol.d.ts +3 -0
- package/lib/browser/notices/notices-protocol.d.ts.map +1 -1
- package/lib/browser/notices/notices.d.ts +3 -0
- package/lib/browser/notices/notices.d.ts.map +1 -1
- package/lib/browser/notices/notices.js +15 -0
- package/lib/browser/notices/notices.js.map +1 -1
- package/lib/browser/notices/notices.spec.js +7 -2
- package/lib/browser/notices/notices.spec.js.map +1 -1
- package/lib/browser/style/conversation.d.ts +1 -1
- package/lib/browser/style/conversation.d.ts.map +1 -1
- package/lib/browser/style/conversation.js +16 -1
- package/lib/browser/style/conversation.js.map +1 -1
- package/lib/browser/style/layout.d.ts +1 -1
- package/lib/browser/style/layout.d.ts.map +1 -1
- package/lib/browser/style/layout.js +5 -0
- package/lib/browser/style/layout.js.map +1 -1
- package/lib/browser/style/shell.d.ts +1 -1
- package/lib/browser/style/shell.d.ts.map +1 -1
- package/lib/browser/style/shell.js +1 -0
- package/lib/browser/style/shell.js.map +1 -1
- package/lib/browser/terminal/canvas-font.d.ts +11 -0
- package/lib/browser/terminal/canvas-font.d.ts.map +1 -0
- package/lib/browser/terminal/canvas-font.js +37 -0
- package/lib/browser/terminal/canvas-font.js.map +1 -0
- package/lib/browser/terminal/canvas-font.spec.d.ts +2 -0
- package/lib/browser/terminal/canvas-font.spec.d.ts.map +1 -0
- package/lib/browser/terminal/canvas-font.spec.js +32 -0
- package/lib/browser/terminal/canvas-font.spec.js.map +1 -0
- package/lib/browser/terminal/terminal-links.d.ts +19 -0
- package/lib/browser/terminal/terminal-links.d.ts.map +1 -0
- package/lib/browser/terminal/terminal-links.js +75 -0
- package/lib/browser/terminal/terminal-links.js.map +1 -0
- package/lib/browser/terminal/terminal-links.spec.d.ts +2 -0
- package/lib/browser/terminal/terminal-links.spec.d.ts.map +1 -0
- package/lib/browser/terminal/terminal-links.spec.js +30 -0
- package/lib/browser/terminal/terminal-links.spec.js.map +1 -0
- package/lib/browser/terminal/terminal-theme.d.ts +9 -0
- package/lib/browser/terminal/terminal-theme.d.ts.map +1 -0
- package/lib/browser/terminal/terminal-theme.js +68 -0
- package/lib/browser/terminal/terminal-theme.js.map +1 -0
- package/lib/browser/terminal/terminal-theme.spec.d.ts +2 -0
- package/lib/browser/terminal/terminal-theme.spec.d.ts.map +1 -0
- package/lib/browser/terminal/terminal-theme.spec.js +24 -0
- package/lib/browser/terminal/terminal-theme.spec.js.map +1 -0
- package/lib/browser/terminal/web-terminal.d.ts +75 -0
- package/lib/browser/terminal/web-terminal.d.ts.map +1 -0
- package/lib/browser/terminal/web-terminal.js +304 -0
- package/lib/browser/terminal/web-terminal.js.map +1 -0
- package/lib/browser/terminal/xterm.d.ts +6 -0
- package/lib/browser/terminal/xterm.d.ts.map +1 -0
- package/lib/browser/terminal/xterm.js +16 -0
- package/lib/browser/terminal/xterm.js.map +1 -0
- package/lib/browser/util/desktop.d.ts +44 -0
- package/lib/browser/util/desktop.d.ts.map +1 -0
- package/lib/browser/util/desktop.js +58 -0
- package/lib/browser/util/desktop.js.map +1 -0
- package/lib/browser/util/desktop.spec.d.ts +2 -0
- package/lib/browser/util/desktop.spec.d.ts.map +1 -0
- package/lib/browser/util/desktop.spec.js +67 -0
- package/lib/browser/util/desktop.spec.js.map +1 -0
- package/lib/browser/util/file-drag.d.ts +27 -0
- package/lib/browser/util/file-drag.d.ts.map +1 -0
- package/lib/browser/util/file-drag.js +76 -0
- package/lib/browser/util/file-drag.js.map +1 -0
- package/lib/browser/util/file-drag.spec.d.ts +2 -0
- package/lib/browser/util/file-drag.spec.d.ts.map +1 -0
- package/lib/browser/util/file-drag.spec.js +46 -0
- package/lib/browser/util/file-drag.spec.js.map +1 -0
- package/lib/browser/util/terminal-text.d.ts +34 -0
- package/lib/browser/util/terminal-text.d.ts.map +1 -0
- package/lib/browser/util/terminal-text.js +212 -0
- package/lib/browser/util/terminal-text.js.map +1 -0
- package/lib/browser/util/terminal-text.spec.d.ts +2 -0
- package/lib/browser/util/terminal-text.spec.d.ts.map +1 -0
- package/lib/browser/util/terminal-text.spec.js +54 -0
- package/lib/browser/util/terminal-text.spec.js.map +1 -0
- package/lib/browser/util/tool.d.ts.map +1 -1
- package/lib/browser/util/tool.js +16 -0
- package/lib/browser/util/tool.js.map +1 -1
- package/lib/browser/util/tool.spec.js +12 -0
- package/lib/browser/util/tool.spec.js.map +1 -1
- package/package.json +11 -7
- package/src/browser/chat/chat-protocol.ts +4 -0
- package/src/browser/chat/chat-view.tsx +4 -0
- package/src/browser/chat/chat.spec.ts +31 -0
- package/src/browser/chat/chat.ts +36 -14
- package/src/browser/chat/draft-model.spec.tsx +31 -0
- package/src/browser/chat/draft-model.tsx +63 -0
- package/src/browser/components/app-view.tsx +10 -3
- package/src/browser/components/composer-box.tsx +52 -6
- package/src/browser/components/composer.tsx +1 -0
- package/src/browser/components/dialog-view.tsx +16 -7
- package/src/browser/components/notice-center.tsx +7 -1
- package/src/browser/components/plus-menu.spec.ts +16 -0
- package/src/browser/components/session-view.tsx +65 -4
- package/src/browser/components/terminal-art.tsx +21 -0
- package/src/browser/components/tool-view.tsx +1 -1
- package/src/browser/components/web-composer.tsx +1 -0
- package/src/browser/extension/icons.ts +6 -0
- package/src/browser/extension/web-extension-api.ts +131 -1
- package/src/browser/extension/web-extensions.ts +36 -1
- package/src/browser/i18n/messages.ts +24 -0
- package/src/browser/notices/notices-protocol.ts +3 -0
- package/src/browser/notices/notices.spec.ts +8 -2
- package/src/browser/notices/notices.ts +17 -1
- package/src/browser/style/conversation.ts +16 -1
- package/src/browser/style/layout.ts +5 -0
- package/src/browser/style/shell.ts +1 -0
- package/src/browser/terminal/canvas-font.spec.ts +29 -0
- package/src/browser/terminal/canvas-font.ts +32 -0
- package/src/browser/terminal/terminal-links.spec.ts +32 -0
- package/src/browser/terminal/terminal-links.ts +75 -0
- package/src/browser/terminal/terminal-theme.spec.ts +23 -0
- package/src/browser/terminal/terminal-theme.ts +66 -0
- package/src/browser/terminal/web-terminal.ts +330 -0
- package/src/browser/terminal/xterm.ts +10 -0
- package/src/browser/util/desktop.spec.ts +68 -0
- package/src/browser/util/desktop.ts +96 -0
- package/src/browser/util/file-drag.spec.ts +48 -0
- package/src/browser/util/file-drag.ts +78 -0
- package/src/browser/util/terminal-text.spec.ts +60 -0
- package/src/browser/util/terminal-text.ts +223 -0
- package/src/browser/util/tool.spec.ts +12 -0
- package/src/browser/util/tool.ts +17 -0
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultWebTerminal = exports.XtermLoader = void 0;
|
|
4
|
+
const messages_1 = require("../i18n/messages");
|
|
5
|
+
const agent_settings_1 = require("../settings/agent-settings");
|
|
6
|
+
const terminal_links_1 = require("./terminal-links");
|
|
7
|
+
const terminal_theme_1 = require("./terminal-theme");
|
|
8
|
+
/** Loads xterm.js the first time a terminal is made, not with the page. */
|
|
9
|
+
var XtermLoader;
|
|
10
|
+
(function (XtermLoader) {
|
|
11
|
+
let loading;
|
|
12
|
+
function load() {
|
|
13
|
+
loading !== null && loading !== void 0 ? loading : (loading = import('./xterm.js').catch(error => {
|
|
14
|
+
loading = undefined;
|
|
15
|
+
throw error;
|
|
16
|
+
}));
|
|
17
|
+
return loading;
|
|
18
|
+
}
|
|
19
|
+
XtermLoader.load = load;
|
|
20
|
+
})(XtermLoader || (exports.XtermLoader = XtermLoader = {}));
|
|
21
|
+
const DEFAULT_COLS = 80;
|
|
22
|
+
const DEFAULT_ROWS = 24;
|
|
23
|
+
const SCROLLBACK = 5000;
|
|
24
|
+
/** Rows of one line that wraps, at most, read for its links. */
|
|
25
|
+
const MAX_WRAPPED_ROWS = 50;
|
|
26
|
+
/** A view being dragged to a new size fits once it stops. */
|
|
27
|
+
const FIT_MS = 50;
|
|
28
|
+
function cssVariable(name) {
|
|
29
|
+
return getComputedStyle(document.documentElement).getPropertyValue(name);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* A terminal as VS Code's: xterm.js on the GPU (its WebGL renderer; the DOM one when the browser has
|
|
33
|
+
* no WebGL or loses it), in the theme of the page, which it follows. It opens in an element of its own
|
|
34
|
+
* that moves from view to view, so that it keeps its screen and scrollback while no view shows it.
|
|
35
|
+
* URLs and paths of files are links, opened with Cmd or Ctrl + click, from the directory the shell says
|
|
36
|
+
* it is in (OSC 7), else the one it started in.
|
|
37
|
+
*/
|
|
38
|
+
class DefaultWebTerminal {
|
|
39
|
+
constructor(settings, openLink, options = {}) {
|
|
40
|
+
var _a, _b;
|
|
41
|
+
this.settings = settings;
|
|
42
|
+
this.openLink = openLink;
|
|
43
|
+
this.opened = false;
|
|
44
|
+
this.disposed = false;
|
|
45
|
+
/** Focus asked for before xterm.js opened: it takes it once it does. */
|
|
46
|
+
this.wantsFocus = false;
|
|
47
|
+
/** Output that came before xterm.js loaded. */
|
|
48
|
+
this.pending = [];
|
|
49
|
+
this.dataListeners = new Set();
|
|
50
|
+
this.resizeListeners = new Set();
|
|
51
|
+
this.host = document.createElement('div');
|
|
52
|
+
this.cols = (_a = options.cols) !== null && _a !== void 0 ? _a : DEFAULT_COLS;
|
|
53
|
+
this.rows = (_b = options.rows) !== null && _b !== void 0 ? _b : DEFAULT_ROWS;
|
|
54
|
+
this.cwd = options.cwd;
|
|
55
|
+
this.host.className = 'ta-terminal';
|
|
56
|
+
XtermLoader.load().then(module => this.start(module), error => console.error('The terminal did not load:', error));
|
|
57
|
+
}
|
|
58
|
+
write(data) {
|
|
59
|
+
if (this.term) {
|
|
60
|
+
this.term.write(data);
|
|
61
|
+
}
|
|
62
|
+
else if (!this.disposed) {
|
|
63
|
+
this.pending.push(data);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
onData(listener) {
|
|
67
|
+
this.dataListeners.add(listener);
|
|
68
|
+
return () => this.dataListeners.delete(listener);
|
|
69
|
+
}
|
|
70
|
+
onResize(listener) {
|
|
71
|
+
this.resizeListeners.add(listener);
|
|
72
|
+
return () => this.resizeListeners.delete(listener);
|
|
73
|
+
}
|
|
74
|
+
attach(element) {
|
|
75
|
+
this.detach();
|
|
76
|
+
this.parent = element;
|
|
77
|
+
element.appendChild(this.host);
|
|
78
|
+
this.observer = new ResizeObserver(() => this.layout());
|
|
79
|
+
this.observer.observe(element);
|
|
80
|
+
this.open();
|
|
81
|
+
this.layout();
|
|
82
|
+
return () => {
|
|
83
|
+
if (this.parent === element) {
|
|
84
|
+
this.detach();
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
focus() {
|
|
89
|
+
var _a;
|
|
90
|
+
if (this.opened) {
|
|
91
|
+
(_a = this.term) === null || _a === void 0 ? void 0 : _a.focus();
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
this.wantsFocus = true;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
dispose() {
|
|
98
|
+
var _a, _b;
|
|
99
|
+
this.disposed = true;
|
|
100
|
+
this.detach();
|
|
101
|
+
(_a = this.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
102
|
+
(_b = this.term) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
103
|
+
this.pending = [];
|
|
104
|
+
this.dataListeners.clear();
|
|
105
|
+
this.resizeListeners.clear();
|
|
106
|
+
}
|
|
107
|
+
start(module) {
|
|
108
|
+
if (this.disposed) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
this.module = module;
|
|
112
|
+
const term = new module.Terminal({
|
|
113
|
+
cols: this.cols,
|
|
114
|
+
rows: this.rows,
|
|
115
|
+
// The Unicode 11 widths of emoji and CJK, as programs reckon them.
|
|
116
|
+
allowProposedApi: true,
|
|
117
|
+
fontFamily: terminal_theme_1.TerminalTheme.fontFamily(cssVariable),
|
|
118
|
+
fontSize: 12,
|
|
119
|
+
lineHeight: 1.2,
|
|
120
|
+
scrollback: SCROLLBACK,
|
|
121
|
+
cursorBlink: true,
|
|
122
|
+
cursorInactiveStyle: 'outline',
|
|
123
|
+
minimumContrastRatio: 4.5,
|
|
124
|
+
drawBoldTextInBrightColors: true,
|
|
125
|
+
rescaleOverlappingGlyphs: true,
|
|
126
|
+
theme: terminal_theme_1.TerminalTheme.of(this.settings.state.theme, cssVariable),
|
|
127
|
+
});
|
|
128
|
+
const unicode = new module.Unicode11Addon();
|
|
129
|
+
term.loadAddon(unicode);
|
|
130
|
+
term.unicode.activeVersion = '11';
|
|
131
|
+
this.fit = new module.FitAddon();
|
|
132
|
+
term.loadAddon(this.fit);
|
|
133
|
+
// Shift+Enter as the kitty keyboard protocol writes it: a new line in the editor of pi (ta), not a send.
|
|
134
|
+
term.attachCustomKeyEventHandler(event => {
|
|
135
|
+
if (event.key === 'Enter' && event.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey) {
|
|
136
|
+
if (event.type === 'keydown') {
|
|
137
|
+
this.emitData('\x1b[13;2u');
|
|
138
|
+
}
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
return true;
|
|
142
|
+
});
|
|
143
|
+
term.onData(data => this.emitData(data));
|
|
144
|
+
// Mouse reports in the old encoding, bytes over 127: as characters, which the server sends as they are.
|
|
145
|
+
term.onBinary(data => this.emitData(data));
|
|
146
|
+
term.onResize(size => {
|
|
147
|
+
this.cols = size.cols;
|
|
148
|
+
this.rows = size.rows;
|
|
149
|
+
for (const listener of this.resizeListeners) {
|
|
150
|
+
listener(size);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
term.parser.registerOscHandler(7, data => {
|
|
154
|
+
var _a;
|
|
155
|
+
this.cwd = (_a = terminal_links_1.TerminalLinkUtil.cwdOf(data)) !== null && _a !== void 0 ? _a : this.cwd;
|
|
156
|
+
return true;
|
|
157
|
+
});
|
|
158
|
+
term.registerLinkProvider({ provideLinks: (y, callback) => callback(this.linksAt(term, y)) });
|
|
159
|
+
for (const data of this.pending) {
|
|
160
|
+
term.write(data);
|
|
161
|
+
}
|
|
162
|
+
this.pending = [];
|
|
163
|
+
this.term = term;
|
|
164
|
+
this.unsubscribe = this.settings.subscribe(state => {
|
|
165
|
+
term.options.theme = terminal_theme_1.TerminalTheme.of(state.theme, cssVariable);
|
|
166
|
+
});
|
|
167
|
+
this.open();
|
|
168
|
+
this.layout();
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Opens xterm.js where it can measure its font: once, the first time it is in the page with a size
|
|
172
|
+
* (a hidden tab has none; ResizeObserver calls again when it shows).
|
|
173
|
+
*/
|
|
174
|
+
open() {
|
|
175
|
+
var _a;
|
|
176
|
+
const { term, module, parent } = this;
|
|
177
|
+
if (!term || !module || this.opened || !(parent === null || parent === void 0 ? void 0 : parent.clientWidth) || !parent.clientHeight) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
this.opened = true;
|
|
181
|
+
term.open(this.host);
|
|
182
|
+
const input = this.host.querySelector('.xterm-helper-textarea');
|
|
183
|
+
for (const name of ['autocomplete', 'autocorrect', 'autocapitalize']) {
|
|
184
|
+
input === null || input === void 0 ? void 0 : input.setAttribute(name, 'off');
|
|
185
|
+
}
|
|
186
|
+
input === null || input === void 0 ? void 0 : input.setAttribute('spellcheck', 'false');
|
|
187
|
+
try {
|
|
188
|
+
const webgl = new module.WebglAddon();
|
|
189
|
+
webgl.onContextLoss(() => webgl.dispose());
|
|
190
|
+
term.loadAddon(webgl);
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
console.warn('No WebGL for the terminal; it draws with the DOM:', error);
|
|
194
|
+
}
|
|
195
|
+
// After the renderer: WebGL measures characters otherwise than the DOM, so the size it fits differs.
|
|
196
|
+
(_a = this.fit) === null || _a === void 0 ? void 0 : _a.fit();
|
|
197
|
+
if (this.wantsFocus) {
|
|
198
|
+
this.wantsFocus = false;
|
|
199
|
+
term.focus();
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Opens it the first time its view has a size, and fits it to the view after that, once the size
|
|
204
|
+
* settled; a hidden view (no size) keeps the size it had. Timers, not frames: a window in the
|
|
205
|
+
* background gets no frames, and the terminal would stay unopened there.
|
|
206
|
+
*/
|
|
207
|
+
layout() {
|
|
208
|
+
var _a;
|
|
209
|
+
if (!((_a = this.parent) === null || _a === void 0 ? void 0 : _a.clientWidth) || !this.parent.clientHeight) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
if (!this.opened) {
|
|
213
|
+
this.open();
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
clearTimeout(this.fitTimer);
|
|
217
|
+
this.fitTimer = setTimeout(() => {
|
|
218
|
+
var _a, _b, _c, _d, _e;
|
|
219
|
+
const size = ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.clientWidth) && this.parent.clientHeight ? (_b = this.fit) === null || _b === void 0 ? void 0 : _b.proposeDimensions() : undefined;
|
|
220
|
+
if (size && (size.cols !== ((_c = this.term) === null || _c === void 0 ? void 0 : _c.cols) || size.rows !== ((_d = this.term) === null || _d === void 0 ? void 0 : _d.rows))) {
|
|
221
|
+
(_e = this.fit) === null || _e === void 0 ? void 0 : _e.fit();
|
|
222
|
+
}
|
|
223
|
+
}, FIT_MS);
|
|
224
|
+
}
|
|
225
|
+
/** The links of the line (with the rows it wraps onto) that crosses row `y` (from 1). */
|
|
226
|
+
linksAt(term, y) {
|
|
227
|
+
var _a;
|
|
228
|
+
var _b;
|
|
229
|
+
const buffer = term.buffer.active;
|
|
230
|
+
let first = y - 1;
|
|
231
|
+
while (first > 0 && y - 1 - first < MAX_WRAPPED_ROWS && ((_a = buffer.getLine(first)) === null || _a === void 0 ? void 0 : _a.isWrapped)) {
|
|
232
|
+
first--;
|
|
233
|
+
}
|
|
234
|
+
// The text of the line, and where each of its characters (UTF-16 units) is on the screen.
|
|
235
|
+
let text = '';
|
|
236
|
+
const places = [];
|
|
237
|
+
for (let row = first; row - first < MAX_WRAPPED_ROWS; row++) {
|
|
238
|
+
const line = buffer.getLine(row);
|
|
239
|
+
if (!line || (row > first && !line.isWrapped)) {
|
|
240
|
+
break;
|
|
241
|
+
}
|
|
242
|
+
for (let x = 0; x < line.length; x++) {
|
|
243
|
+
const cell = line.getCell(x);
|
|
244
|
+
const width = (_b = cell === null || cell === void 0 ? void 0 : cell.getWidth()) !== null && _b !== void 0 ? _b : 1;
|
|
245
|
+
if (!cell || width === 0) {
|
|
246
|
+
// The second half of a wide character.
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
const chars = cell.getChars() || ' ';
|
|
250
|
+
for (let unit = 0; unit < chars.length; unit++) {
|
|
251
|
+
places.push({ x: x + 1, y: row + 1, width });
|
|
252
|
+
}
|
|
253
|
+
text += chars;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
const links = terminal_links_1.TerminalLinkUtil.find(text).filter(link => places[link.start].y <= y && places[link.end - 1].y >= y);
|
|
257
|
+
if (!links.length) {
|
|
258
|
+
return undefined;
|
|
259
|
+
}
|
|
260
|
+
const mac = agent_settings_1.ShortcutUtil.isMac();
|
|
261
|
+
return links.map(link => {
|
|
262
|
+
const start = places[link.start];
|
|
263
|
+
const last = places[link.end - 1];
|
|
264
|
+
const hint = link.target.type === 'path'
|
|
265
|
+
? mac
|
|
266
|
+
? 'ta.terminal.openLinkMac'
|
|
267
|
+
: 'ta.terminal.openLink'
|
|
268
|
+
: mac
|
|
269
|
+
? 'ta.terminal.openUrlMac'
|
|
270
|
+
: 'ta.terminal.openUrl';
|
|
271
|
+
return {
|
|
272
|
+
range: { start: { x: start.x, y: start.y }, end: { x: last.x + last.width - 1, y: last.y } },
|
|
273
|
+
text: text.slice(link.start, link.end),
|
|
274
|
+
decorations: { underline: true, pointerCursor: true },
|
|
275
|
+
activate: (event) => {
|
|
276
|
+
if (mac ? event.metaKey : event.ctrlKey) {
|
|
277
|
+
this.openLink(link.target, { cwd: this.cwd, external: event.shiftKey && link.target.type !== 'path' });
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
hover: () => {
|
|
281
|
+
this.host.title = (0, messages_1.message)(this.settings.state.language, hint);
|
|
282
|
+
},
|
|
283
|
+
leave: () => {
|
|
284
|
+
this.host.title = '';
|
|
285
|
+
},
|
|
286
|
+
};
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
detach() {
|
|
290
|
+
var _a;
|
|
291
|
+
(_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
292
|
+
this.observer = undefined;
|
|
293
|
+
clearTimeout(this.fitTimer);
|
|
294
|
+
this.host.remove();
|
|
295
|
+
this.parent = undefined;
|
|
296
|
+
}
|
|
297
|
+
emitData(data) {
|
|
298
|
+
for (const listener of this.dataListeners) {
|
|
299
|
+
listener(data);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
exports.DefaultWebTerminal = DefaultWebTerminal;
|
|
304
|
+
//# sourceMappingURL=web-terminal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-terminal.js","sourceRoot":"","sources":["../../../src/browser/terminal/web-terminal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import '@xterm/xterm/css/xterm.css';
|
|
2
|
+
export { FitAddon } from '@xterm/addon-fit';
|
|
3
|
+
export { Unicode11Addon } from '@xterm/addon-unicode11';
|
|
4
|
+
export { WebglAddon } from '@xterm/addon-webgl';
|
|
5
|
+
export { Terminal } from '@xterm/xterm';
|
|
6
|
+
//# sourceMappingURL=xterm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xterm.d.ts","sourceRoot":"","sources":["../../../src/browser/terminal/xterm.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,CAAC;AAKpC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Terminal = exports.WebglAddon = exports.Unicode11Addon = exports.FitAddon = void 0;
|
|
4
|
+
// What a terminal loads the first time one is made: xterm.js, its WebGL renderer and its styles.
|
|
5
|
+
require("@xterm/xterm/css/xterm.css");
|
|
6
|
+
const canvas_font_1 = require("./canvas-font");
|
|
7
|
+
canvas_font_1.CanvasFontFix.install();
|
|
8
|
+
var addon_fit_1 = require("@xterm/addon-fit");
|
|
9
|
+
Object.defineProperty(exports, "FitAddon", { enumerable: true, get: function () { return addon_fit_1.FitAddon; } });
|
|
10
|
+
var addon_unicode11_1 = require("@xterm/addon-unicode11");
|
|
11
|
+
Object.defineProperty(exports, "Unicode11Addon", { enumerable: true, get: function () { return addon_unicode11_1.Unicode11Addon; } });
|
|
12
|
+
var addon_webgl_1 = require("@xterm/addon-webgl");
|
|
13
|
+
Object.defineProperty(exports, "WebglAddon", { enumerable: true, get: function () { return addon_webgl_1.WebglAddon; } });
|
|
14
|
+
var xterm_1 = require("@xterm/xterm");
|
|
15
|
+
Object.defineProperty(exports, "Terminal", { enumerable: true, get: function () { return xterm_1.Terminal; } });
|
|
16
|
+
//# sourceMappingURL=xterm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xterm.js","sourceRoot":"","sources":["../../../src/browser/terminal/xterm.ts"],"names":[],"mappings":";;;AAAA,iGAAiG;AACjG,sCAAoC;AACpC,+CAA8C;AAE9C,2BAAa,CAAC,OAAO,EAAE,CAAC;AAExB,8CAA4C;AAAnC,qGAAA,QAAQ,OAAA;AACjB,0DAAwD;AAA/C,iHAAA,cAAc,OAAA;AACvB,kDAAgD;AAAvC,yGAAA,UAAU,OAAA;AACnB,sCAAwC;AAA/B,iGAAA,QAAQ,OAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** What Ta Desktop can do for the page beyond a tab of a browser. */
|
|
2
|
+
export type DesktopFeature = 'webview' | 'debugWebview' | 'showItemInFolder' | 'browserData';
|
|
3
|
+
/** The file manager of the system, from Ta Desktop: {@link WebDesktop} of the extension API. */
|
|
4
|
+
export interface DesktopFileManager {
|
|
5
|
+
/** Node's `process.platform` of the machine: what the file manager is called there. */
|
|
6
|
+
readonly platform: string;
|
|
7
|
+
showItemInFolder(path: string): Promise<void>;
|
|
8
|
+
readonly browserData?: DesktopBrowserData;
|
|
9
|
+
}
|
|
10
|
+
/** A profile of the user's Chrome, Edge…, whose sign-ins Ta Desktop can take. */
|
|
11
|
+
export interface DesktopBrowserProfile {
|
|
12
|
+
id: string;
|
|
13
|
+
browser: string;
|
|
14
|
+
name: string;
|
|
15
|
+
}
|
|
16
|
+
/** What an import took; `appBound`: cookies only Chrome itself can read (Windows). */
|
|
17
|
+
export interface DesktopBrowserImport {
|
|
18
|
+
imported: number;
|
|
19
|
+
skipped: number;
|
|
20
|
+
appBound: number;
|
|
21
|
+
}
|
|
22
|
+
/** The sign-ins of the user's browsers in the browser of Ta: {@link WebBrowserData} of the extension API. */
|
|
23
|
+
export interface DesktopBrowserData {
|
|
24
|
+
profiles(): Promise<DesktopBrowserProfile[]>;
|
|
25
|
+
/** After the user said yes in a dialog of the app; `undefined` when they said no. */
|
|
26
|
+
import(profileId: string): Promise<DesktopBrowserImport | undefined>;
|
|
27
|
+
clear(): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
/** A command of the DevTools protocol to the page of a `<webview>` of this page, by its getWebContentsId(). */
|
|
30
|
+
export type DebugWebview = (webContentsId: number, method: string, params?: Record<string, unknown>) => Promise<unknown>;
|
|
31
|
+
/**
|
|
32
|
+
* Ta Desktop gives its window's page `taDesktop` (its preload, apps/ta-desktop): the features it adds to
|
|
33
|
+
* what a browser can do. A browser, an installed web app and the mobile app have none.
|
|
34
|
+
*/
|
|
35
|
+
export declare namespace DesktopUtil {
|
|
36
|
+
function has(feature: DesktopFeature, scope?: object): boolean;
|
|
37
|
+
/** The file manager of the system, when the page is in Ta Desktop. */
|
|
38
|
+
function fileManager(scope?: object): DesktopFileManager | undefined;
|
|
39
|
+
/** The sign-ins of the user's browsers, where Ta Desktop can read them (macOS, Windows). */
|
|
40
|
+
function browserData(scope?: object): DesktopBrowserData | undefined;
|
|
41
|
+
/** `debugWebview` of Ta Desktop; `undefined` elsewhere. */
|
|
42
|
+
function debugWebview(scope?: object): DebugWebview | undefined;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=desktop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"desktop.d.ts","sourceRoot":"","sources":["../../../src/browser/util/desktop.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAE7F,gGAAgG;AAChG,MAAM,WAAW,kBAAkB;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAC7C;AAED,iFAAiF;AACjF,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,sFAAsF;AACtF,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,6GAA6G;AAC7G,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC7C,qFAAqF;IACrF,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;IACrE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,+GAA+G;AAC/G,MAAM,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAYzH;;;GAGG;AACH,yBAAiB,WAAW,CAAC;IACzB,SAAgB,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,GAAE,MAAmB,GAAG,OAAO,CAGhF;IAED,sEAAsE;IACtE,SAAgB,WAAW,CAAC,KAAK,GAAE,MAAmB,GAAG,kBAAkB,GAAG,SAAS,CAWtF;IAED,4FAA4F;IAC5F,SAAgB,WAAW,CAAC,KAAK,GAAE,MAAmB,GAAG,kBAAkB,GAAG,SAAS,CAgBtF;IAED,2DAA2D;IAC3D,SAAgB,YAAY,CAAC,KAAK,GAAE,MAAmB,GAAG,YAAY,GAAG,SAAS,CAIjF;CACJ"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DesktopUtil = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Ta Desktop gives its window's page `taDesktop` (its preload, apps/ta-desktop): the features it adds to
|
|
6
|
+
* what a browser can do. A browser, an installed web app and the mobile app have none.
|
|
7
|
+
*/
|
|
8
|
+
var DesktopUtil;
|
|
9
|
+
(function (DesktopUtil) {
|
|
10
|
+
function has(feature, scope = globalThis) {
|
|
11
|
+
var _a;
|
|
12
|
+
const features = (_a = scope.taDesktop) === null || _a === void 0 ? void 0 : _a.features;
|
|
13
|
+
return Array.isArray(features) && features.includes(feature);
|
|
14
|
+
}
|
|
15
|
+
DesktopUtil.has = has;
|
|
16
|
+
/** The file manager of the system, when the page is in Ta Desktop. */
|
|
17
|
+
function fileManager(scope = globalThis) {
|
|
18
|
+
const desktop = scope.taDesktop;
|
|
19
|
+
const show = desktop === null || desktop === void 0 ? void 0 : desktop.showItemInFolder;
|
|
20
|
+
if (!has('showItemInFolder', scope) || typeof show !== 'function') {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
return Object.freeze({
|
|
24
|
+
platform: typeof (desktop === null || desktop === void 0 ? void 0 : desktop.platform) === 'string' ? desktop.platform : 'unknown',
|
|
25
|
+
showItemInFolder: (path) => Promise.resolve(show(path)).then(() => undefined),
|
|
26
|
+
browserData: browserData(scope),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
DesktopUtil.fileManager = fileManager;
|
|
30
|
+
/** The sign-ins of the user's browsers, where Ta Desktop can read them (macOS, Windows). */
|
|
31
|
+
function browserData(scope = globalThis) {
|
|
32
|
+
var _a;
|
|
33
|
+
const data = (_a = scope.taDesktop) === null || _a === void 0 ? void 0 : _a.browserData;
|
|
34
|
+
const { profiles, import: take, clear } = data !== null && data !== void 0 ? data : {};
|
|
35
|
+
if (!has('browserData', scope) || typeof profiles !== 'function' || typeof take !== 'function' || typeof clear !== 'function') {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
return Object.freeze({
|
|
39
|
+
profiles: async () => { var _a; return (_a = (await profiles())) !== null && _a !== void 0 ? _a : []; },
|
|
40
|
+
import: async (profileId) => {
|
|
41
|
+
const report = (await take(profileId));
|
|
42
|
+
return 'cancelled' in report ? undefined : report;
|
|
43
|
+
},
|
|
44
|
+
clear: async () => {
|
|
45
|
+
await clear();
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
DesktopUtil.browserData = browserData;
|
|
50
|
+
/** `debugWebview` of Ta Desktop; `undefined` elsewhere. */
|
|
51
|
+
function debugWebview(scope = globalThis) {
|
|
52
|
+
const desktop = scope.taDesktop;
|
|
53
|
+
const debug = desktop === null || desktop === void 0 ? void 0 : desktop.debugWebview;
|
|
54
|
+
return has('debugWebview', scope) && typeof debug === 'function' ? (webContentsId, method, params) => debug(webContentsId, method, params) : undefined;
|
|
55
|
+
}
|
|
56
|
+
DesktopUtil.debugWebview = debugWebview;
|
|
57
|
+
})(DesktopUtil || (exports.DesktopUtil = DesktopUtil = {}));
|
|
58
|
+
//# sourceMappingURL=desktop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"desktop.js","sourceRoot":"","sources":["../../../src/browser/util/desktop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"desktop.spec.d.ts","sourceRoot":"","sources":["../../../src/browser/util/desktop.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const bun_test_1 = require("bun:test");
|
|
4
|
+
const desktop_1 = require("./desktop");
|
|
5
|
+
(0, bun_test_1.describe)('DesktopUtil', () => {
|
|
6
|
+
(0, bun_test_1.it)('reads the features Ta Desktop gives its page', () => {
|
|
7
|
+
(0, bun_test_1.expect)(desktop_1.DesktopUtil.has('webview', { taDesktop: { features: ['webview'] } })).toBe(true);
|
|
8
|
+
(0, bun_test_1.expect)(desktop_1.DesktopUtil.has('debugWebview', { taDesktop: { features: ['webview'] } })).toBe(false);
|
|
9
|
+
});
|
|
10
|
+
(0, bun_test_1.it)('has none in a browser, or from what is not a list', () => {
|
|
11
|
+
(0, bun_test_1.expect)(desktop_1.DesktopUtil.has('webview', {})).toBe(false);
|
|
12
|
+
(0, bun_test_1.expect)(desktop_1.DesktopUtil.has('webview', { taDesktop: {} })).toBe(false);
|
|
13
|
+
(0, bun_test_1.expect)(desktop_1.DesktopUtil.has('webview', { taDesktop: { features: 'webview' } })).toBe(false);
|
|
14
|
+
(0, bun_test_1.expect)(desktop_1.DesktopUtil.has('webview')).toBe(false);
|
|
15
|
+
});
|
|
16
|
+
(0, bun_test_1.it)('gives the file manager of Ta Desktop, and none without it', async () => {
|
|
17
|
+
const shown = [];
|
|
18
|
+
const scope = { taDesktop: { features: ['showItemInFolder'], platform: 'darwin', showItemInFolder: async (path) => shown.push(path) } };
|
|
19
|
+
const manager = desktop_1.DesktopUtil.fileManager(scope);
|
|
20
|
+
(0, bun_test_1.expect)(manager === null || manager === void 0 ? void 0 : manager.platform).toBe('darwin');
|
|
21
|
+
await (manager === null || manager === void 0 ? void 0 : manager.showItemInFolder('/work/app'));
|
|
22
|
+
(0, bun_test_1.expect)(shown).toEqual(['/work/app']);
|
|
23
|
+
(0, bun_test_1.expect)(desktop_1.DesktopUtil.fileManager({ taDesktop: { features: ['webview'], showItemInFolder: () => undefined } })).toBeUndefined();
|
|
24
|
+
(0, bun_test_1.expect)(desktop_1.DesktopUtil.fileManager({})).toBeUndefined();
|
|
25
|
+
});
|
|
26
|
+
(0, bun_test_1.it)('takes the sign-ins of browsers through the app, and tells a refusal as nothing', async () => {
|
|
27
|
+
var _a, _b;
|
|
28
|
+
const asked = [];
|
|
29
|
+
const taDesktop = {
|
|
30
|
+
features: ['showItemInFolder', 'browserData'],
|
|
31
|
+
showItemInFolder: () => undefined,
|
|
32
|
+
browserData: {
|
|
33
|
+
profiles: async () => [{ id: 'chrome:Default', browser: 'Google Chrome', name: 'Work' }],
|
|
34
|
+
import: async (id) => {
|
|
35
|
+
asked.push(id);
|
|
36
|
+
return id === 'no' ? { cancelled: true } : { imported: 3, skipped: 1, appBound: 0 };
|
|
37
|
+
},
|
|
38
|
+
clear: async () => 'cleared',
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
const data = (_a = desktop_1.DesktopUtil.fileManager({ taDesktop })) === null || _a === void 0 ? void 0 : _a.browserData;
|
|
42
|
+
(0, bun_test_1.expect)(await (data === null || data === void 0 ? void 0 : data.profiles())).toEqual([{ id: 'chrome:Default', browser: 'Google Chrome', name: 'Work' }]);
|
|
43
|
+
(0, bun_test_1.expect)(await (data === null || data === void 0 ? void 0 : data.import('chrome:Default'))).toEqual({ imported: 3, skipped: 1, appBound: 0 });
|
|
44
|
+
(0, bun_test_1.expect)(await (data === null || data === void 0 ? void 0 : data.import('no'))).toBeUndefined();
|
|
45
|
+
(0, bun_test_1.expect)(await (data === null || data === void 0 ? void 0 : data.clear())).toBeUndefined();
|
|
46
|
+
(0, bun_test_1.expect)(asked).toEqual(['chrome:Default', 'no']);
|
|
47
|
+
(0, bun_test_1.expect)(desktop_1.DesktopUtil.browserData({ taDesktop: { ...taDesktop, features: ['showItemInFolder'] } })).toBeUndefined();
|
|
48
|
+
(0, bun_test_1.expect)((_b = desktop_1.DesktopUtil.fileManager({ taDesktop: { ...taDesktop, features: ['showItemInFolder'] } })) === null || _b === void 0 ? void 0 : _b.browserData).toBeUndefined();
|
|
49
|
+
});
|
|
50
|
+
(0, bun_test_1.it)('sends commands to a webview through the app, only when it says it can', async () => {
|
|
51
|
+
const calls = [];
|
|
52
|
+
const taDesktop = {
|
|
53
|
+
features: ['webview', 'debugWebview'],
|
|
54
|
+
debugWebview: async (...args) => {
|
|
55
|
+
calls.push(args);
|
|
56
|
+
return { ok: 1 };
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
const debug = desktop_1.DesktopUtil.debugWebview({ taDesktop });
|
|
60
|
+
(0, bun_test_1.expect)(await (debug === null || debug === void 0 ? void 0 : debug(3, 'Runtime.evaluate', { expression: '1' }))).toEqual({ ok: 1 });
|
|
61
|
+
(0, bun_test_1.expect)(calls).toEqual([[3, 'Runtime.evaluate', { expression: '1' }]]);
|
|
62
|
+
(0, bun_test_1.expect)(desktop_1.DesktopUtil.debugWebview({ taDesktop: { features: ['webview'], debugWebview: taDesktop.debugWebview } })).toBeUndefined();
|
|
63
|
+
(0, bun_test_1.expect)(desktop_1.DesktopUtil.debugWebview({ taDesktop: { features: ['debugWebview'] } })).toBeUndefined();
|
|
64
|
+
(0, bun_test_1.expect)(desktop_1.DesktopUtil.debugWebview({})).toBeUndefined();
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=desktop.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"desktop.spec.js","sourceRoot":"","sources":["../../../src/browser/util/desktop.spec.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,uCAAwC;AAExC,IAAA,mBAAQ,EAAC,aAAa,EAAE,GAAG,EAAE;IACzB,IAAA,aAAE,EAAC,8CAA8C,EAAE,GAAG,EAAE;QACpD,IAAA,iBAAM,EAAC,qBAAW,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxF,IAAA,iBAAM,EAAC,qBAAW,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;IAEH,IAAA,aAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;QACzD,IAAA,iBAAM,EAAC,qBAAW,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,IAAA,iBAAM,EAAC,qBAAW,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,IAAA,iBAAM,EAAC,qBAAW,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvF,IAAA,iBAAM,EAAC,qBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAA,aAAE,EAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAChJ,MAAM,OAAO,GAAG,qBAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAA,iBAAM,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,OAAM,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,CAAC,WAAW,CAAC,CAAA,CAAC;QAC7C,IAAA,iBAAM,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QACrC,IAAA,iBAAM,EAAC,qBAAW,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7H,IAAA,iBAAM,EAAC,qBAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,IAAA,aAAE,EAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;;QAC5F,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG;YACd,QAAQ,EAAE,CAAC,kBAAkB,EAAE,aAAa,CAAC;YAC7C,gBAAgB,EAAE,GAAG,EAAE,CAAC,SAAS;YACjC,WAAW,EAAE;gBACT,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACxF,MAAM,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE;oBACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACf,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;gBACxF,CAAC;gBACD,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;aAC/B;SACJ,CAAC;QACF,MAAM,IAAI,GAAG,MAAA,qBAAW,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,0CAAE,WAAW,CAAC;QACjE,IAAA,iBAAM,EAAC,OAAM,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAE,CAAA,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3G,IAAA,iBAAM,EAAC,OAAM,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,gBAAgB,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/F,IAAA,iBAAM,EAAC,OAAM,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,aAAa,EAAE,CAAC;QACjD,IAAA,iBAAM,EAAC,OAAM,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,CAAA,CAAC,CAAC,aAAa,EAAE,CAAC;QAC5C,IAAA,iBAAM,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;QAChD,IAAA,iBAAM,EAAC,qBAAW,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACjH,IAAA,iBAAM,EAAC,MAAA,qBAAW,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,0CAAE,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;IAClI,CAAC,CAAC,CAAC;IAEH,IAAA,aAAE,EAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG;YACd,QAAQ,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC;YACrC,YAAY,EAAE,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBACvC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;YACrB,CAAC;SACJ,CAAC;QACF,MAAM,KAAK,GAAG,qBAAW,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACtD,IAAA,iBAAM,EAAC,OAAM,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,EAAE,kBAAkB,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACrF,IAAA,iBAAM,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACtE,IAAA,iBAAM,EAAC,qBAAW,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACjI,IAAA,iBAAM,EAAC,qBAAW,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAChG,IAAA,iBAAM,EAAC,qBAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** Files of a directory dragged from a view (the explorer): {@link WebFileDrag} of the extension API. */
|
|
2
|
+
export interface DraggedFiles {
|
|
3
|
+
/** The directory they are of: a path of the machine of ta serve, or `ssh://` (TaLocation). */
|
|
4
|
+
cwd: string;
|
|
5
|
+
/** Relative to `cwd`, with `/`; '' for `cwd` itself. */
|
|
6
|
+
paths: string[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Files on a drag between the views of the page: their own type, read on a drop; and their paths as text,
|
|
10
|
+
* for what is not of the page (a native field, another app).
|
|
11
|
+
*/
|
|
12
|
+
export declare namespace FileDragUtil {
|
|
13
|
+
const TYPE = "application/x-ta-files";
|
|
14
|
+
function set(dataTransfer: DataTransfer, files: DraggedFiles): void;
|
|
15
|
+
/** Whether a drag holds files: all that `dragover` can tell. */
|
|
16
|
+
function has(dataTransfer: Pick<DataTransfer, 'types'>): boolean;
|
|
17
|
+
/** The files of a drop; undefined when it holds none. */
|
|
18
|
+
function get(dataTransfer: Pick<DataTransfer, 'getData'>): DraggedFiles | undefined;
|
|
19
|
+
/** The paths inside their machine, as a terminal there takes them. */
|
|
20
|
+
function paths(files: DraggedFiles): string[];
|
|
21
|
+
/**
|
|
22
|
+
* The files as `@` references of a conversation in `cwd`: relative to it when they are inside it, on the
|
|
23
|
+
* same machine; else their paths there.
|
|
24
|
+
*/
|
|
25
|
+
function references(files: DraggedFiles, cwd: string | undefined): string;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=file-drag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-drag.d.ts","sourceRoot":"","sources":["../../../src/browser/util/file-drag.ts"],"names":[],"mappings":"AAGA,yGAAyG;AACzG,MAAM,WAAW,YAAY;IACzB,8FAA8F;IAC9F,GAAG,EAAE,MAAM,CAAC;IACZ,wDAAwD;IACxD,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,yBAAiB,YAAY,CAAC;IACnB,MAAM,IAAI,2BAA2B,CAAC;IAE7C,SAAgB,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAIzE;IAED,gEAAgE;IAChE,SAAgB,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,OAAO,CAEtE;IAED,yDAAyD;IACzD,SAAgB,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,YAAY,GAAG,SAAS,CAWzF;IAED,sEAAsE;IACtE,SAAgB,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,CAUnD;IAED;;;OAGG;IACH,SAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAgB/E;CACJ"}
|