@floegence/floeterm-terminal-web 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +29 -0
  3. package/dist/core/TerminalCore.d.ts +69 -0
  4. package/dist/core/TerminalCore.d.ts.map +1 -0
  5. package/dist/core/TerminalCore.js +412 -0
  6. package/dist/core/TerminalCore.js.map +1 -0
  7. package/dist/hooks/useTerminalInstance.d.ts +3 -0
  8. package/dist/hooks/useTerminalInstance.d.ts.map +1 -0
  9. package/dist/hooks/useTerminalInstance.js +455 -0
  10. package/dist/hooks/useTerminalInstance.js.map +1 -0
  11. package/dist/index.d.ts +6 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +5 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/internal/SequenceBuffer.d.ts +22 -0
  16. package/dist/internal/SequenceBuffer.d.ts.map +1 -0
  17. package/dist/internal/SequenceBuffer.js +116 -0
  18. package/dist/internal/SequenceBuffer.js.map +1 -0
  19. package/dist/types.d.ts +221 -0
  20. package/dist/types.d.ts.map +1 -0
  21. package/dist/types.js +38 -0
  22. package/dist/types.js.map +1 -0
  23. package/dist/utils/config.d.ts +4 -0
  24. package/dist/utils/config.d.ts.map +1 -0
  25. package/dist/utils/config.js +153 -0
  26. package/dist/utils/config.js.map +1 -0
  27. package/dist/utils/errors.d.ts +3 -0
  28. package/dist/utils/errors.d.ts.map +1 -0
  29. package/dist/utils/errors.js +11 -0
  30. package/dist/utils/errors.js.map +1 -0
  31. package/dist/utils/history.d.ts +2 -0
  32. package/dist/utils/history.d.ts.map +1 -0
  33. package/dist/utils/history.js +12 -0
  34. package/dist/utils/history.js.map +1 -0
  35. package/dist/utils/logger.d.ts +4 -0
  36. package/dist/utils/logger.d.ts.map +1 -0
  37. package/dist/utils/logger.js +13 -0
  38. package/dist/utils/logger.js.map +1 -0
  39. package/dist/utils/xtermAutoResponseFilter.d.ts +2 -0
  40. package/dist/utils/xtermAutoResponseFilter.d.ts.map +1 -0
  41. package/dist/utils/xtermAutoResponseFilter.js +109 -0
  42. package/dist/utils/xtermAutoResponseFilter.js.map +1 -0
  43. package/package.json +66 -0
@@ -0,0 +1,221 @@
1
+ import type React from 'react';
2
+ export declare enum TerminalState {
3
+ IDLE = "idle",
4
+ INITIALIZING = "initializing",
5
+ READY = "ready",
6
+ CONNECTED = "connected",
7
+ ERROR = "error",
8
+ DISPOSED = "disposed"
9
+ }
10
+ export interface TerminalConfig {
11
+ cols?: number;
12
+ rows?: number;
13
+ theme?: Record<string, unknown>;
14
+ fontSize?: number;
15
+ fontFamily?: string;
16
+ cursorBlink?: boolean;
17
+ scrollback?: number;
18
+ rendererType?: 'canvas' | 'webgl' | 'dom';
19
+ allowTransparency?: boolean;
20
+ convertEol?: boolean;
21
+ allowProposedApi?: boolean;
22
+ [key: string]: unknown;
23
+ }
24
+ export interface Logger {
25
+ debug: (message: string, meta?: Record<string, unknown>) => void;
26
+ info: (message: string, meta?: Record<string, unknown>) => void;
27
+ warn: (message: string, meta?: Record<string, unknown>) => void;
28
+ error: (message: string, meta?: Record<string, unknown>) => void;
29
+ }
30
+ export interface TerminalEventHandlers {
31
+ onData?: (data: string) => void;
32
+ onResize?: (size: {
33
+ cols: number;
34
+ rows: number;
35
+ }) => void;
36
+ onStateChange?: (state: TerminalState) => void;
37
+ onError?: (error: Error) => void;
38
+ }
39
+ export interface TerminalCoreLike {
40
+ initialize(): Promise<void>;
41
+ dispose(): void;
42
+ write(data: string | Uint8Array, callback?: () => void): void;
43
+ clear(): void;
44
+ serialize(): string;
45
+ getSelectionText(): string;
46
+ getState(): TerminalState;
47
+ getDimensions(): {
48
+ cols: number;
49
+ rows: number;
50
+ };
51
+ getTerminalInfo(): {
52
+ rows: number;
53
+ cols: number;
54
+ bufferLength: number;
55
+ } | null;
56
+ findNext(term: string, options?: SearchOptions): boolean;
57
+ findPrevious(term: string, options?: SearchOptions): boolean;
58
+ clearSearch(): void;
59
+ setSearchResultsCallback(callback: ((results: {
60
+ resultIndex: number;
61
+ resultCount: number;
62
+ matchPositions?: number[];
63
+ }) => void) | null): void;
64
+ focus(): void;
65
+ setConnected(isConnected: boolean): void;
66
+ forceResize(): void;
67
+ setTheme(theme: Record<string, string>): void;
68
+ setFontSize(size: number): void;
69
+ startHistoryReplay(duration?: number): void;
70
+ }
71
+ export interface TerminalCoreConstructor {
72
+ new (container: HTMLElement, config?: TerminalConfig, eventHandlers?: TerminalEventHandlers, logger?: Logger): TerminalCoreLike;
73
+ }
74
+ export type TerminalID = string;
75
+ export interface TerminalSessionInfo {
76
+ id: TerminalID;
77
+ name: string;
78
+ workingDir: string;
79
+ createdAtMs: number;
80
+ lastActiveAtMs: number;
81
+ isActive: boolean;
82
+ }
83
+ export interface TerminalDataChunk {
84
+ sequence: number;
85
+ data: Uint8Array;
86
+ timestampMs: number;
87
+ }
88
+ export interface TerminalDataEvent {
89
+ sessionId: TerminalID;
90
+ data: Uint8Array;
91
+ sequence?: number;
92
+ timestampMs?: number;
93
+ echoOfInput?: boolean;
94
+ originalSource?: string;
95
+ }
96
+ export interface TerminalNameUpdateEvent {
97
+ sessionId: TerminalID;
98
+ newName: string;
99
+ workingDir: string;
100
+ }
101
+ export interface TerminalTransport {
102
+ attach(sessionId: TerminalID, cols: number, rows: number): Promise<void>;
103
+ resize(sessionId: TerminalID, cols: number, rows: number): Promise<void>;
104
+ sendInput(sessionId: TerminalID, input: string, sourceConnId?: string): Promise<void>;
105
+ history(sessionId: TerminalID, startSeq: number, endSeq: number): Promise<TerminalDataChunk[]>;
106
+ clear(sessionId: TerminalID): Promise<void>;
107
+ listSessions?(): Promise<TerminalSessionInfo[]>;
108
+ createSession?(name?: string, workingDir?: string, cols?: number, rows?: number): Promise<TerminalSessionInfo>;
109
+ deleteSession?(sessionId: TerminalID): Promise<void>;
110
+ renameSession?(sessionId: TerminalID, newName: string): Promise<void>;
111
+ }
112
+ export interface TerminalEventSource {
113
+ onTerminalData(sessionId: TerminalID, handler: (event: TerminalDataEvent) => void): () => void;
114
+ onTerminalNameUpdate?(sessionId: TerminalID, handler: (event: TerminalNameUpdateEvent) => void): () => void;
115
+ onSessionDeleted?(sessionId: TerminalID, handler: () => void): () => void;
116
+ }
117
+ export interface TerminalManagerState {
118
+ state: TerminalState;
119
+ error?: Error;
120
+ dimensions: {
121
+ cols: number;
122
+ rows: number;
123
+ };
124
+ }
125
+ export declare const computeTerminalState: (state: TerminalManagerState) => {
126
+ isReady: boolean;
127
+ isConnected: boolean;
128
+ hasError: boolean;
129
+ isInitializing: boolean;
130
+ isIdle: boolean;
131
+ state: TerminalState;
132
+ error?: Error;
133
+ dimensions: {
134
+ cols: number;
135
+ rows: number;
136
+ };
137
+ };
138
+ export type TerminalManagerStateWithComputed = ReturnType<typeof computeTerminalState>;
139
+ export interface TerminalError {
140
+ type: 'connection' | 'session' | 'transport' | 'timeout';
141
+ message: string;
142
+ retryable: boolean;
143
+ timestamp: number;
144
+ details?: Record<string, unknown>;
145
+ }
146
+ export interface TerminalManagerActions {
147
+ write: (data: string) => void;
148
+ clear: () => void;
149
+ findNext: (term: string, options?: SearchOptions) => boolean;
150
+ findPrevious: (term: string, options?: SearchOptions) => boolean;
151
+ clearSearch: () => void;
152
+ serialize: () => string;
153
+ getSelectionText: () => string;
154
+ setConnected: (connected: boolean) => void;
155
+ forceResize: () => void;
156
+ setSearchResultsCallback: (callback: ((results: {
157
+ resultIndex: number;
158
+ resultCount: number;
159
+ matchPositions?: number[];
160
+ }) => void) | null) => void;
161
+ focus: () => void;
162
+ getTerminalInfo: () => {
163
+ rows: number;
164
+ cols: number;
165
+ bufferLength: number;
166
+ } | null;
167
+ sendInput: (data: string) => void;
168
+ setTheme: (theme: TerminalThemeName) => void;
169
+ setFontSize: (size: number) => void;
170
+ reinitialize?: () => Promise<void> | void;
171
+ }
172
+ export interface SearchOptions {
173
+ caseSensitive?: boolean;
174
+ wholeWord?: boolean;
175
+ regex?: boolean;
176
+ }
177
+ export interface TerminalManagerOptions {
178
+ sessionId: TerminalID;
179
+ isActive: boolean;
180
+ transport: TerminalTransport;
181
+ eventSource: TerminalEventSource;
182
+ themeName?: TerminalThemeName;
183
+ fontSize?: number;
184
+ autoFocus?: boolean;
185
+ logger?: Logger;
186
+ onResize?: (cols: number, rows: number) => void;
187
+ onError?: (error: Error) => void;
188
+ config?: TerminalConfig;
189
+ coreConstructor?: TerminalCoreConstructor;
190
+ }
191
+ export interface TerminalConnectionState {
192
+ state: string;
193
+ error: TerminalError | null;
194
+ retryCount: number;
195
+ connect: () => void;
196
+ disconnect: () => void;
197
+ retry: () => void;
198
+ clearError: () => void;
199
+ }
200
+ export declare const computeConnectionState: (connection: TerminalConnectionState) => {
201
+ isConnecting: boolean;
202
+ isConnected: boolean;
203
+ state: string;
204
+ error: TerminalError | null;
205
+ retryCount: number;
206
+ connect: () => void;
207
+ disconnect: () => void;
208
+ retry: () => void;
209
+ clearError: () => void;
210
+ };
211
+ export type TerminalConnectionStateWithComputed = ReturnType<typeof computeConnectionState>;
212
+ export interface TerminalManagerReturn {
213
+ containerRef: React.RefObject<HTMLDivElement | null>;
214
+ state: TerminalManagerStateWithComputed;
215
+ actions: TerminalManagerActions;
216
+ connection: TerminalConnectionStateWithComputed;
217
+ loadingState: string;
218
+ loadingMessage: string;
219
+ }
220
+ export type TerminalThemeName = 'dark' | 'light' | 'solarizedDark' | 'monokai' | 'tokyoNight';
221
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,38 @@
1
+ // TerminalState tracks the lifecycle of the terminal instance.
2
+ export var TerminalState;
3
+ (function (TerminalState) {
4
+ TerminalState["IDLE"] = "idle";
5
+ TerminalState["INITIALIZING"] = "initializing";
6
+ TerminalState["READY"] = "ready";
7
+ TerminalState["CONNECTED"] = "connected";
8
+ TerminalState["ERROR"] = "error";
9
+ TerminalState["DISPOSED"] = "disposed";
10
+ })(TerminalState || (TerminalState = {}));
11
+ export const computeTerminalState = (state) => ({
12
+ ...state,
13
+ get isReady() {
14
+ return state.state === TerminalState.READY || state.state === TerminalState.CONNECTED;
15
+ },
16
+ get isConnected() {
17
+ return state.state === TerminalState.CONNECTED;
18
+ },
19
+ get hasError() {
20
+ return state.state === TerminalState.ERROR;
21
+ },
22
+ get isInitializing() {
23
+ return state.state === TerminalState.INITIALIZING;
24
+ },
25
+ get isIdle() {
26
+ return state.state === TerminalState.IDLE;
27
+ }
28
+ });
29
+ export const computeConnectionState = (connection) => ({
30
+ ...connection,
31
+ get isConnecting() {
32
+ return connection.state === 'connecting';
33
+ },
34
+ get isConnected() {
35
+ return connection.state === 'connected';
36
+ }
37
+ });
38
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,+DAA+D;AAC/D,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,8CAA6B,CAAA;IAC7B,gCAAe,CAAA;IACf,wCAAuB,CAAA;IACvB,gCAAe,CAAA;IACf,sCAAqB,CAAA;AACvB,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;AA6HD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAA2B,EAAE,EAAE,CAAC,CAAC;IACpE,GAAG,KAAK;IACR,IAAI,OAAO;QACT,OAAO,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,SAAS,CAAC;IACxF,CAAC;IACD,IAAI,WAAW;QACb,OAAO,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,SAAS,CAAC;IACjD,CAAC;IACD,IAAI,QAAQ;QACV,OAAO,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,CAAC;IAC7C,CAAC;IACD,IAAI,cAAc;QAChB,OAAO,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,YAAY,CAAC;IACpD,CAAC;IACD,IAAI,MAAM;QACR,OAAO,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,IAAI,CAAC;IAC5C,CAAC;CACF,CAAC,CAAC;AAgEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,UAAmC,EAAE,EAAE,CAAC,CAAC;IAC9E,GAAG,UAAU;IACb,IAAI,YAAY;QACd,OAAO,UAAU,CAAC,KAAK,KAAK,YAAY,CAAC;IAC3C,CAAC;IACD,IAAI,WAAW;QACb,OAAO,UAAU,CAAC,KAAK,KAAK,WAAW,CAAC;IAC1C,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { TerminalConfig, TerminalThemeName } from '../types';
2
+ export declare const getThemeColors: (theme: TerminalThemeName) => Record<string, string>;
3
+ export declare const getDefaultTerminalConfig: (theme: TerminalThemeName, overrides?: TerminalConfig) => TerminalConfig;
4
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAuHlE,eAAO,MAAM,cAAc,GAAI,OAAO,iBAAiB,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAc9E,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,OAAO,iBAAiB,EAAE,YAAW,cAAmB,KAAG,cAwBnG,CAAC"}
@@ -0,0 +1,153 @@
1
+ const DARK_THEME = {
2
+ background: '#0b0f14',
3
+ foreground: '#c9d1d9',
4
+ cursor: '#c9d1d9',
5
+ cursorAccent: '#0b0f14',
6
+ selectionBackground: 'rgba(124, 156, 255, 0.25)',
7
+ black: '#0b0f14',
8
+ red: '#ff5c57',
9
+ green: '#5af78e',
10
+ yellow: '#f3f99d',
11
+ blue: '#57c7ff',
12
+ magenta: '#ff6ac1',
13
+ cyan: '#9aedfe',
14
+ white: '#c9d1d9',
15
+ brightBlack: '#545d68',
16
+ brightRed: '#ff5c57',
17
+ brightGreen: '#5af78e',
18
+ brightYellow: '#f3f99d',
19
+ brightBlue: '#57c7ff',
20
+ brightMagenta: '#ff6ac1',
21
+ brightCyan: '#9aedfe',
22
+ brightWhite: '#ffffff'
23
+ };
24
+ const LIGHT_THEME = {
25
+ background: '#ffffff',
26
+ foreground: '#333333',
27
+ cursor: '#333333',
28
+ selection: '#add6ff',
29
+ black: '#000000',
30
+ red: '#cd3131',
31
+ green: '#00bc00',
32
+ yellow: '#949800',
33
+ blue: '#0451a5',
34
+ magenta: '#bc05bc',
35
+ cyan: '#0598bc',
36
+ white: '#555555',
37
+ brightBlack: '#666666',
38
+ brightRed: '#cd3131',
39
+ brightGreen: '#14ce14',
40
+ brightYellow: '#b5ba00',
41
+ brightBlue: '#0451a5',
42
+ brightMagenta: '#bc05bc',
43
+ brightCyan: '#0598bc',
44
+ brightWhite: '#a5a5a5'
45
+ };
46
+ const SOLARIZED_DARK_THEME = {
47
+ background: '#002b36',
48
+ foreground: '#93a1a1',
49
+ cursor: '#93a1a1',
50
+ selection: '#073642',
51
+ black: '#073642',
52
+ red: '#dc322f',
53
+ green: '#859900',
54
+ yellow: '#b58900',
55
+ blue: '#268bd2',
56
+ magenta: '#d33682',
57
+ cyan: '#2aa198',
58
+ white: '#eee8d5',
59
+ brightBlack: '#002b36',
60
+ brightRed: '#cb4b16',
61
+ brightGreen: '#586e75',
62
+ brightYellow: '#657b83',
63
+ brightBlue: '#839496',
64
+ brightMagenta: '#6c71c4',
65
+ brightCyan: '#93a1a1',
66
+ brightWhite: '#fdf6e3'
67
+ };
68
+ const MONOKAI_THEME = {
69
+ background: '#272822',
70
+ foreground: '#f8f8f2',
71
+ cursor: '#f8f8f2',
72
+ selectionBackground: '#49483e',
73
+ black: '#272822',
74
+ red: '#f92672',
75
+ green: '#a6e22e',
76
+ yellow: '#f4bf75',
77
+ blue: '#66d9ef',
78
+ magenta: '#ae81ff',
79
+ cyan: '#a1efe4',
80
+ white: '#f8f8f2',
81
+ brightBlack: '#75715e',
82
+ brightRed: '#f92672',
83
+ brightGreen: '#a6e22e',
84
+ brightYellow: '#f4bf75',
85
+ brightBlue: '#66d9ef',
86
+ brightMagenta: '#ae81ff',
87
+ brightCyan: '#a1efe4',
88
+ brightWhite: '#f9f8f5'
89
+ };
90
+ const TOKYO_NIGHT_THEME = {
91
+ background: '#1a1b26',
92
+ foreground: '#c0caf5',
93
+ cursor: '#c0caf5',
94
+ cursorAccent: '#1a1b26',
95
+ selectionBackground: 'rgba(122, 162, 247, 0.25)',
96
+ black: '#15161e',
97
+ red: '#f7768e',
98
+ green: '#9ece6a',
99
+ yellow: '#e0af68',
100
+ blue: '#7aa2f7',
101
+ magenta: '#bb9af7',
102
+ cyan: '#7dcfff',
103
+ white: '#a9b1d6',
104
+ brightBlack: '#414868',
105
+ brightRed: '#f7768e',
106
+ brightGreen: '#9ece6a',
107
+ brightYellow: '#e0af68',
108
+ brightBlue: '#7aa2f7',
109
+ brightMagenta: '#bb9af7',
110
+ brightCyan: '#7dcfff',
111
+ brightWhite: '#c0caf5'
112
+ };
113
+ export const getThemeColors = (theme) => {
114
+ switch (theme) {
115
+ case 'light':
116
+ return LIGHT_THEME;
117
+ case 'solarizedDark':
118
+ return SOLARIZED_DARK_THEME;
119
+ case 'monokai':
120
+ return MONOKAI_THEME;
121
+ case 'tokyoNight':
122
+ return TOKYO_NIGHT_THEME;
123
+ case 'dark':
124
+ default:
125
+ return DARK_THEME;
126
+ }
127
+ };
128
+ export const getDefaultTerminalConfig = (theme, overrides = {}) => {
129
+ return {
130
+ cols: 80,
131
+ rows: 24,
132
+ theme: getThemeColors(theme),
133
+ fontSize: 12,
134
+ fontFamily: '"JetBrains Mono", "Berkeley Mono", "SF Mono", Menlo, Monaco, "Cascadia Mono", "Cascadia Code", Consolas, "Roboto Mono", monospace',
135
+ cursorBlink: true,
136
+ scrollback: 10000,
137
+ allowTransparency: true,
138
+ convertEol: true,
139
+ allowProposedApi: true,
140
+ disableStdin: false,
141
+ screenReaderMode: false,
142
+ windowsMode: false,
143
+ bellStyle: 'none',
144
+ rightClickSelectsWord: false,
145
+ cursorStyle: 'block',
146
+ cursorWidth: 1,
147
+ logLevel: 'warn',
148
+ tabStopWidth: 8,
149
+ minimumContrastRatio: 1,
150
+ ...overrides
151
+ };
152
+ };
153
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { TerminalError } from '../types';
2
+ export declare const createTerminalError: (type: TerminalError["type"], error: unknown) => TerminalError;
3
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,eAAO,MAAM,mBAAmB,GAAI,MAAM,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,OAAO,KAAG,aASjF,CAAC"}
@@ -0,0 +1,11 @@
1
+ export const createTerminalError = (type, error) => {
2
+ const message = error instanceof Error ? error.message : String(error);
3
+ return {
4
+ type,
5
+ message,
6
+ retryable: true,
7
+ timestamp: Date.now(),
8
+ details: error instanceof Error ? { stack: error.stack } : undefined
9
+ };
10
+ };
11
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAA2B,EAAE,KAAc,EAAiB,EAAE;IAChG,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO;QACL,IAAI;QACJ,OAAO;QACP,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;KACrE,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const concatChunks: (chunks: Uint8Array[]) => Uint8Array;
2
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/utils/history.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,GAAI,QAAQ,UAAU,EAAE,KAAG,UASnD,CAAC"}
@@ -0,0 +1,12 @@
1
+ // concatChunks merges ordered byte chunks into a single Uint8Array.
2
+ export const concatChunks = (chunks) => {
3
+ const totalLength = chunks.reduce((sum, chunk) => sum + chunk.byteLength, 0);
4
+ const merged = new Uint8Array(totalLength);
5
+ let offset = 0;
6
+ for (const chunk of chunks) {
7
+ merged.set(chunk, offset);
8
+ offset += chunk.byteLength;
9
+ }
10
+ return merged;
11
+ };
12
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/utils/history.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAoB,EAAc,EAAE;IAC/D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Logger } from '../types';
2
+ export declare const createConsoleLogger: () => Logger;
3
+ export declare const noopLogger: Logger;
4
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,mBAAmB,QAAO,MAKrC,CAAC;AAEH,eAAO,MAAM,UAAU,EAAE,MAKxB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export const createConsoleLogger = () => ({
2
+ debug: (message, meta) => console.debug(message, meta ?? {}),
3
+ info: (message, meta) => console.info(message, meta ?? {}),
4
+ warn: (message, meta) => console.warn(message, meta ?? {}),
5
+ error: (message, meta) => console.error(message, meta ?? {})
6
+ });
7
+ export const noopLogger = {
8
+ debug: () => undefined,
9
+ info: () => undefined,
10
+ warn: () => undefined,
11
+ error: () => undefined
12
+ };
13
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAW,EAAE,CAAC,CAAC;IAChD,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;IAC5D,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;IAC1D,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;IAC1D,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;CAC7D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAW;IAChC,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS;IACtB,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;IACrB,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;IACrB,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS;CACvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const filterXtermAutoResponses: (data: string) => string;
2
+ //# sourceMappingURL=xtermAutoResponseFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xtermAutoResponseFilter.d.ts","sourceRoot":"","sources":["../../src/utils/xtermAutoResponseFilter.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,KAAG,MAqHvD,CAAC"}
@@ -0,0 +1,109 @@
1
+ // filterXtermAutoResponses removes terminal auto-responses that should not be sent to the backend.
2
+ export const filterXtermAutoResponses = (data) => {
3
+ if (!data.includes('\x1b')) {
4
+ return data;
5
+ }
6
+ let result = '';
7
+ let i = 0;
8
+ while (i < data.length) {
9
+ if (data[i] === '\x1b') {
10
+ if (i + 1 < data.length && data[i + 1] === '[') {
11
+ const j = i + 2;
12
+ if (j < data.length && data[j] === '?') {
13
+ let k = j + 1;
14
+ while (k < data.length && ((data[k] >= '0' && data[k] <= '9') || data[k] === ';')) {
15
+ k += 1;
16
+ }
17
+ if (k < data.length && data[k] === 'c') {
18
+ i = k + 1;
19
+ continue;
20
+ }
21
+ }
22
+ if (j < data.length && data[j] === '>') {
23
+ let k = j + 1;
24
+ while (k < data.length && ((data[k] >= '0' && data[k] <= '9') || data[k] === ';')) {
25
+ k += 1;
26
+ }
27
+ if (k < data.length && data[k] === 'c') {
28
+ i = k + 1;
29
+ continue;
30
+ }
31
+ }
32
+ if (j < data.length && data[j] >= '0' && data[j] <= '9') {
33
+ let k = j;
34
+ while (k < data.length && ((data[k] >= '0' && data[k] <= '9') || data[k] === ';')) {
35
+ k += 1;
36
+ }
37
+ if (k < data.length && data[k] === 'R' && k > j) {
38
+ i = k + 1;
39
+ continue;
40
+ }
41
+ }
42
+ if (j < data.length && data[j] === '?') {
43
+ let k = j + 1;
44
+ while (k < data.length && data[k] >= '0' && data[k] <= '9') {
45
+ k += 1;
46
+ }
47
+ if (k < data.length && data[k] === 'u') {
48
+ i = k + 1;
49
+ continue;
50
+ }
51
+ }
52
+ if (j < data.length && (data[j] === 'I' || data[j] === 'O')) {
53
+ i = j + 1;
54
+ continue;
55
+ }
56
+ }
57
+ if (i + 1 < data.length && data[i + 1] === 'P') {
58
+ let end = i + 2;
59
+ while (end < data.length) {
60
+ if (data[end] === '\x1b' && end + 1 < data.length && data[end + 1] === '\\') {
61
+ end += 2;
62
+ break;
63
+ }
64
+ if (data[end] === '\x07') {
65
+ end += 1;
66
+ break;
67
+ }
68
+ end += 1;
69
+ }
70
+ if (end <= data.length && end > i + 2) {
71
+ i = end;
72
+ continue;
73
+ }
74
+ }
75
+ if (i + 1 < data.length && data[i + 1] === ']') {
76
+ let j = i + 2;
77
+ const codeStart = j;
78
+ while (j < data.length && data[j] >= '0' && data[j] <= '9') {
79
+ j += 1;
80
+ }
81
+ if (j > codeStart) {
82
+ const code = Number.parseInt(data.slice(codeStart, j), 10);
83
+ if ((code === 10 || code === 11) && j < data.length && data[j] === ';') {
84
+ let end = j + 1;
85
+ while (end < data.length) {
86
+ if (data[end] === '\x07') {
87
+ end += 1;
88
+ break;
89
+ }
90
+ if (data[end] === '\x1b' && end + 1 < data.length && data[end + 1] === '\\') {
91
+ end += 2;
92
+ break;
93
+ }
94
+ end += 1;
95
+ }
96
+ if (end <= data.length) {
97
+ i = end;
98
+ continue;
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+ result += data[i];
105
+ i += 1;
106
+ }
107
+ return result;
108
+ };
109
+ //# sourceMappingURL=xtermAutoResponseFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xtermAutoResponseFilter.js","sourceRoot":"","sources":["../../src/utils/xtermAutoResponseFilter.ts"],"names":[],"mappings":"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"}