@aitty/browser 0.1.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/dist/browser.d.ts +6 -0
- package/dist/browser.js +5 -0
- package/dist/frontend/ansi-sequences.d.ts +5 -0
- package/dist/frontend/ansi-sequences.js +17 -0
- package/dist/frontend/ansi-style-tracker.d.ts +37 -0
- package/dist/frontend/ansi-style-tracker.js +435 -0
- package/dist/frontend/browser-terminal-renderer.d.ts +86 -0
- package/dist/frontend/browser-terminal-renderer.js +546 -0
- package/dist/frontend/cell-width.d.ts +5 -0
- package/dist/frontend/cell-width.js +9 -0
- package/dist/frontend/terminal-app.d.ts +156 -0
- package/dist/frontend/terminal-app.js +1957 -0
- package/dist/frontend/terminal-input-policies.d.ts +24 -0
- package/dist/frontend/terminal-input-policies.js +462 -0
- package/dist/frontend/terminal-theme-protocol.d.ts +22 -0
- package/dist/frontend/terminal-theme-protocol.js +270 -0
- package/dist/frontend/terminal.css +268 -0
- package/dist/theme-source.d.ts +2 -0
- package/dist/theme-source.js +2 -0
- package/package.json +54 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { BrowserTerminalBridge, BrowserTerminalRenderOptions } from "./browser-terminal-renderer.js";
|
|
2
|
+
import { TerminalKeyResolver } from "./terminal-input-policies.js";
|
|
3
|
+
import { WTermOptions } from "@wterm/dom";
|
|
4
|
+
import { AittyRuntimeKind, AittyTerminalConnectionState, AittyTerminalLoadingPresentation, AittyTerminalOutputState, AittyTerminalSessionPresentationState, AittyTerminalStatusSnapshot, AittyTheme } from "@aitty/protocol";
|
|
5
|
+
|
|
6
|
+
//#region src/frontend/terminal-app.d.ts
|
|
7
|
+
type RuntimeKind = AittyRuntimeKind;
|
|
8
|
+
type TerminalTheme = AittyTheme;
|
|
9
|
+
type TerminalConnectionState = AittyTerminalConnectionState;
|
|
10
|
+
type TerminalOutputState = AittyTerminalOutputState;
|
|
11
|
+
type TerminalSessionPresentationState = AittyTerminalSessionPresentationState;
|
|
12
|
+
type BinaryWriteTarget = {
|
|
13
|
+
write(data: Uint8Array): void;
|
|
14
|
+
};
|
|
15
|
+
type FrameScheduler = {
|
|
16
|
+
cancelFrame?: (handle: number) => void;
|
|
17
|
+
requestFrame?: (callback: FrameRequestCallback) => number;
|
|
18
|
+
};
|
|
19
|
+
type BufferedTerminalWriter = {
|
|
20
|
+
destroy(): void;
|
|
21
|
+
discardPending(): void;
|
|
22
|
+
enqueue(chunk: Uint8Array): void;
|
|
23
|
+
};
|
|
24
|
+
type TerminalLoadingPresentation = AittyTerminalLoadingPresentation;
|
|
25
|
+
type TerminalStatusSnapshot = AittyTerminalStatusSnapshot;
|
|
26
|
+
type TerminalStatusListener = (status: TerminalStatusSnapshot) => void;
|
|
27
|
+
type TerminalScrollMetrics = {
|
|
28
|
+
atBottom: boolean;
|
|
29
|
+
atTop: boolean;
|
|
30
|
+
clientHeight: number;
|
|
31
|
+
maxScrollTop: number;
|
|
32
|
+
scrollHeight: number;
|
|
33
|
+
scrollTop: number;
|
|
34
|
+
thumbOffsetRatio: number;
|
|
35
|
+
thumbSizeRatio: number;
|
|
36
|
+
};
|
|
37
|
+
type TerminalScrollOptions = {
|
|
38
|
+
getViewport?: () => HTMLElement | null | undefined;
|
|
39
|
+
onMetricsChange?: (metrics: TerminalScrollMetrics) => void;
|
|
40
|
+
requestUiUpdate?: () => void;
|
|
41
|
+
viewport?: HTMLElement | null;
|
|
42
|
+
};
|
|
43
|
+
type TerminalScrollAdapterContext = {
|
|
44
|
+
content: HTMLElement;
|
|
45
|
+
scrollOptions: TerminalScrollOptions;
|
|
46
|
+
target: HTMLElement;
|
|
47
|
+
viewport: HTMLElement;
|
|
48
|
+
};
|
|
49
|
+
type TerminalScrollAdapter = {
|
|
50
|
+
destroy?: () => void;
|
|
51
|
+
scrollOptions?: Partial<TerminalScrollOptions>;
|
|
52
|
+
};
|
|
53
|
+
type TerminalScrollAdapterFactory = (context: TerminalScrollAdapterContext) => TerminalScrollAdapter | void;
|
|
54
|
+
type MountTerminalElements = {
|
|
55
|
+
loading?: HTMLElement | null;
|
|
56
|
+
shell?: HTMLElement;
|
|
57
|
+
status?: HTMLElement | null;
|
|
58
|
+
terminalRoot?: HTMLElement;
|
|
59
|
+
};
|
|
60
|
+
type TransportCloseEvent = {
|
|
61
|
+
code?: number;
|
|
62
|
+
reason?: string;
|
|
63
|
+
wasClean?: boolean;
|
|
64
|
+
};
|
|
65
|
+
type TransportHandlers = {
|
|
66
|
+
onBinary(data: Uint8Array): void;
|
|
67
|
+
onClose(event?: TransportCloseEvent): void;
|
|
68
|
+
onControlMessage(data: string): void;
|
|
69
|
+
onError(event: Event): void;
|
|
70
|
+
onOpen(): void;
|
|
71
|
+
};
|
|
72
|
+
type TerminalTransport = {
|
|
73
|
+
close(): void;
|
|
74
|
+
connect(url?: string): void;
|
|
75
|
+
disconnect?(reason?: string): void;
|
|
76
|
+
send(data: string | Uint8Array): void;
|
|
77
|
+
sendControl?(data: string): void;
|
|
78
|
+
};
|
|
79
|
+
type MountTerminalDependencies = {
|
|
80
|
+
createTerm?: (element: HTMLElement, options: WTermOptions) => BrowserWTerm;
|
|
81
|
+
createTransport?: (handlers: TransportHandlers) => TerminalTransport;
|
|
82
|
+
elements?: MountTerminalElements;
|
|
83
|
+
frameScheduler?: FrameScheduler;
|
|
84
|
+
input?: {
|
|
85
|
+
resolveKey?: TerminalKeyResolver;
|
|
86
|
+
};
|
|
87
|
+
onStatusChange?: TerminalStatusListener;
|
|
88
|
+
reconnectDelayMs?: number;
|
|
89
|
+
resolveRuntimeKind?: (doc: Document, shell: HTMLElement) => RuntimeKind | Promise<RuntimeKind>;
|
|
90
|
+
scroll?: TerminalScrollOptions;
|
|
91
|
+
src?: string | URL;
|
|
92
|
+
theme?: TerminalTheme;
|
|
93
|
+
transcriptArchiveOptions?: {
|
|
94
|
+
scrollbackLimit?: number;
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
type MountedTerminalApp = {
|
|
98
|
+
destroy(): void;
|
|
99
|
+
getStatus(): TerminalStatusSnapshot;
|
|
100
|
+
getTheme(): string | undefined;
|
|
101
|
+
setTheme(theme: TerminalTheme | undefined): void;
|
|
102
|
+
term: BrowserWTerm;
|
|
103
|
+
transport: TerminalTransport;
|
|
104
|
+
};
|
|
105
|
+
type TerminalRendererLike = {
|
|
106
|
+
cols?: number;
|
|
107
|
+
render?(bridge: BrowserTerminalBridge, options?: BrowserTerminalRenderOptions): void;
|
|
108
|
+
rows?: number;
|
|
109
|
+
setup?(cols: number, rows: number): void;
|
|
110
|
+
};
|
|
111
|
+
type BrowserWTerm = {
|
|
112
|
+
_container?: HTMLElement;
|
|
113
|
+
_measureCharSize?: () => TerminalCellMetrics;
|
|
114
|
+
bridge?: BrowserTerminalBridge | null;
|
|
115
|
+
cols: number;
|
|
116
|
+
destroy(): void;
|
|
117
|
+
element: HTMLElement;
|
|
118
|
+
focus(): void;
|
|
119
|
+
init(): Promise<unknown>;
|
|
120
|
+
input?: {
|
|
121
|
+
destroy?: () => void;
|
|
122
|
+
focus?: () => void;
|
|
123
|
+
textarea?: HTMLTextAreaElement | null;
|
|
124
|
+
};
|
|
125
|
+
renderer?: TerminalRendererLike;
|
|
126
|
+
resize(cols: number, rows: number): void;
|
|
127
|
+
rows: number;
|
|
128
|
+
write?(data: string | Uint8Array): void;
|
|
129
|
+
};
|
|
130
|
+
type TerminalCellMetrics = {
|
|
131
|
+
charWidth: number;
|
|
132
|
+
rowHeight: number;
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* Batches raw PTY bytes into animation frames without splitting UTF-8 codepoints or
|
|
136
|
+
* incomplete ANSI sequences. This is the only throttling layer in the browser path.
|
|
137
|
+
*/
|
|
138
|
+
declare function createBufferedTerminalWriter(target: BinaryWriteTarget, scheduler?: FrameScheduler, options?: {
|
|
139
|
+
maxBytesPerFrame?: number;
|
|
140
|
+
}): BufferedTerminalWriter;
|
|
141
|
+
declare function mountTerminalApp(doc?: Document, dependencies?: MountTerminalDependencies): Promise<MountedTerminalApp>;
|
|
142
|
+
interface MountAittyOptions extends MountTerminalDependencies {
|
|
143
|
+
document?: Document;
|
|
144
|
+
loading?: HTMLElement | null;
|
|
145
|
+
shell?: HTMLElement;
|
|
146
|
+
status?: HTMLElement | null;
|
|
147
|
+
terminalRoot?: HTMLElement;
|
|
148
|
+
}
|
|
149
|
+
interface MountAittyContainerOptions extends Omit<MountAittyOptions, "elements" | "loading" | "shell" | "status" | "terminalRoot"> {
|
|
150
|
+
scrollAdapter?: TerminalScrollAdapterFactory;
|
|
151
|
+
}
|
|
152
|
+
declare function mountAitty(options?: MountAittyOptions): Promise<MountedTerminalApp>;
|
|
153
|
+
declare function mountAitty(container: HTMLElement | string, options?: MountAittyContainerOptions): Promise<MountedTerminalApp>;
|
|
154
|
+
declare function defineAittyTerminalElement(registry?: CustomElementRegistry | undefined): void;
|
|
155
|
+
//#endregion
|
|
156
|
+
export { BinaryWriteTarget, BufferedTerminalWriter, FrameScheduler, MountAittyContainerOptions, MountAittyOptions, MountTerminalDependencies, MountTerminalElements, MountedTerminalApp, TerminalConnectionState, TerminalLoadingPresentation, TerminalOutputState, TerminalScrollAdapter, TerminalScrollAdapterContext, TerminalScrollAdapterFactory, TerminalScrollMetrics, TerminalScrollOptions, TerminalSessionPresentationState, TerminalStatusListener, TerminalStatusSnapshot, TerminalTheme, TerminalTransport, TransportCloseEvent, TransportHandlers, createBufferedTerminalWriter, defineAittyTerminalElement, mountAitty, mountTerminalApp };
|