@floegence/floeterm-terminal-web 0.5.24 → 0.6.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.md +20 -0
- package/dist/core/PagedTerminalOutputCoordinator.js +3 -4
- package/dist/core/PagedTerminalOutputCoordinator.js.map +1 -1
- package/dist/core/TerminalCore.d.ts +3 -0
- package/dist/core/TerminalCore.d.ts.map +1 -1
- package/dist/core/TerminalCore.js +96 -21
- package/dist/core/TerminalCore.js.map +1 -1
- package/dist/core/TerminalOutputPipeline.js +2 -2
- package/dist/core/TerminalOutputPipeline.js.map +1 -1
- package/dist/entries/live.d.ts +7 -0
- package/dist/entries/live.d.ts.map +1 -0
- package/dist/entries/live.js +4 -0
- package/dist/entries/live.js.map +1 -0
- package/dist/fabric/BeamtermFabricRenderer.d.ts +11 -4
- package/dist/fabric/BeamtermFabricRenderer.d.ts.map +1 -1
- package/dist/fabric/BeamtermFabricRenderer.js +259 -47
- package/dist/fabric/BeamtermFabricRenderer.js.map +1 -1
- package/dist/fabric/TerminalFabricCoordinator.d.ts +1 -1
- package/dist/fabric/TerminalFabricCoordinator.d.ts.map +1 -1
- package/dist/fabric/TerminalFabricCoordinator.js +4 -7
- package/dist/fabric/TerminalFabricCoordinator.js.map +1 -1
- package/dist/fabric/TerminalLiveFabric.d.ts +3 -43
- package/dist/fabric/TerminalLiveFabric.d.ts.map +1 -1
- package/dist/fabric/TerminalLiveFabric.js +3 -97
- package/dist/fabric/TerminalLiveFabric.js.map +1 -1
- package/dist/fabric/types.d.ts +41 -3
- package/dist/fabric/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/BeamtermResourceLoader.d.ts +1 -1
- package/dist/internal/BeamtermResourceLoader.d.ts.map +1 -1
- package/dist/internal/BeamtermResourceLoader.js +1 -1
- package/dist/internal/BeamtermResourceLoader.js.map +1 -1
- package/dist/internal/SequenceBuffer.d.ts +7 -11
- package/dist/internal/SequenceBuffer.d.ts.map +1 -1
- package/dist/internal/SequenceBuffer.js +52 -103
- package/dist/internal/SequenceBuffer.js.map +1 -1
- package/dist/live/client.d.ts +62 -0
- package/dist/live/client.d.ts.map +1 -0
- package/dist/live/client.js +326 -0
- package/dist/live/client.js.map +1 -0
- package/dist/live/codec.d.ts +97 -0
- package/dist/live/codec.d.ts.map +1 -0
- package/dist/live/codec.js +386 -0
- package/dist/live/codec.js.map +1 -0
- package/dist/live/transport.d.ts +37 -0
- package/dist/live/transport.d.ts.map +1 -0
- package/dist/live/transport.js +194 -0
- package/dist/live/transport.js.map +1 -0
- package/dist/manager/TerminalInstanceController.d.ts +11 -0
- package/dist/manager/TerminalInstanceController.d.ts.map +1 -1
- package/dist/manager/TerminalInstanceController.js +265 -38
- package/dist/manager/TerminalInstanceController.js.map +1 -1
- package/dist/types.d.ts +41 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +6 -2
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { connectTerminalLive, } from './client.js';
|
|
2
|
+
const textEncoder = new TextEncoder();
|
|
3
|
+
export const createTerminalLiveTransport = (options) => {
|
|
4
|
+
const listeners = new Map();
|
|
5
|
+
const deletionListeners = new Map();
|
|
6
|
+
const geometryListeners = new Map();
|
|
7
|
+
const entries = new Map();
|
|
8
|
+
const attachEpochs = new Map();
|
|
9
|
+
let connectionEpochKey;
|
|
10
|
+
let nextGeneration = 0;
|
|
11
|
+
let disposed = false;
|
|
12
|
+
const emit = (sessionId, event) => {
|
|
13
|
+
for (const listener of listeners.get(sessionId) ?? [])
|
|
14
|
+
listener(event);
|
|
15
|
+
};
|
|
16
|
+
const emitDeleted = (sessionId) => {
|
|
17
|
+
for (const listener of deletionListeners.get(sessionId) ?? [])
|
|
18
|
+
listener();
|
|
19
|
+
};
|
|
20
|
+
const emitGeometry = (sessionId, geometry) => {
|
|
21
|
+
const event = { sessionId, ...geometry };
|
|
22
|
+
for (const listener of geometryListeners.get(sessionId) ?? [])
|
|
23
|
+
listener(event);
|
|
24
|
+
};
|
|
25
|
+
const closeEntry = (sessionId) => {
|
|
26
|
+
const entry = entries.get(sessionId);
|
|
27
|
+
if (!entry)
|
|
28
|
+
return;
|
|
29
|
+
entries.delete(sessionId);
|
|
30
|
+
void entry.connection.close();
|
|
31
|
+
};
|
|
32
|
+
const attachWithHistoryBoundary = async (sessionId, cols, rows) => {
|
|
33
|
+
if (disposed)
|
|
34
|
+
throw new Error('terminal live transport is disposed');
|
|
35
|
+
const epoch = (attachEpochs.get(sessionId) ?? 0) + 1;
|
|
36
|
+
attachEpochs.set(sessionId, epoch);
|
|
37
|
+
closeEntry(sessionId);
|
|
38
|
+
nextGeneration += 1;
|
|
39
|
+
const generation = nextGeneration;
|
|
40
|
+
const connection = await connectTerminalLive({
|
|
41
|
+
openStream: options.openStream,
|
|
42
|
+
attach: {
|
|
43
|
+
sessionId,
|
|
44
|
+
connectionId: options.connectionId,
|
|
45
|
+
attachGeneration: generation,
|
|
46
|
+
cols,
|
|
47
|
+
rows,
|
|
48
|
+
},
|
|
49
|
+
onOutputBatch: records => {
|
|
50
|
+
for (const record of records) {
|
|
51
|
+
const sequence = Number(record.sequence);
|
|
52
|
+
const timestampMs = Number(record.timestampMs);
|
|
53
|
+
if (!Number.isSafeInteger(sequence) || !Number.isSafeInteger(timestampMs)) {
|
|
54
|
+
const error = new Error('terminal live output metadata exceeds JavaScript safe integer range');
|
|
55
|
+
options.onError?.(sessionId, error);
|
|
56
|
+
emit(sessionId, { sessionId, type: 'error', data: new Uint8Array(), error: error.message });
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
emit(sessionId, {
|
|
60
|
+
sessionId,
|
|
61
|
+
type: 'data',
|
|
62
|
+
data: record.data,
|
|
63
|
+
sequence,
|
|
64
|
+
timestampMs,
|
|
65
|
+
liveBatchSize: records.length,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
onGeometry: geometry => emitGeometry(sessionId, geometry),
|
|
70
|
+
onClosed: reason => {
|
|
71
|
+
const current = entries.get(sessionId);
|
|
72
|
+
if (!current || current.generation !== generation)
|
|
73
|
+
return;
|
|
74
|
+
entries.delete(sessionId);
|
|
75
|
+
if (reason === 'session_closed') {
|
|
76
|
+
emitDeleted(sessionId);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
emit(sessionId, {
|
|
80
|
+
sessionId,
|
|
81
|
+
type: 'error',
|
|
82
|
+
data: new Uint8Array(),
|
|
83
|
+
error: 'terminal live stream closed',
|
|
84
|
+
});
|
|
85
|
+
},
|
|
86
|
+
onError: error => {
|
|
87
|
+
options.onError?.(sessionId, error);
|
|
88
|
+
const current = entries.get(sessionId);
|
|
89
|
+
if (current?.generation === generation)
|
|
90
|
+
entries.delete(sessionId);
|
|
91
|
+
emit(sessionId, { sessionId, type: 'error', data: new Uint8Array(), error: error.message });
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
if (disposed || attachEpochs.get(sessionId) !== epoch) {
|
|
95
|
+
await connection.close();
|
|
96
|
+
const error = new Error('terminal live attach was superseded');
|
|
97
|
+
error.name = 'AbortError';
|
|
98
|
+
throw error;
|
|
99
|
+
}
|
|
100
|
+
entries.set(sessionId, { generation, connection });
|
|
101
|
+
return {
|
|
102
|
+
...connection.attached,
|
|
103
|
+
runtimeAttachGeneration: generation,
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
const transport = {
|
|
107
|
+
attach: async (sessionId, cols, rows) => {
|
|
108
|
+
await attachWithHistoryBoundary(sessionId, cols, rows);
|
|
109
|
+
},
|
|
110
|
+
attachWithHistoryBoundary,
|
|
111
|
+
resize: async (sessionId, cols, rows) => {
|
|
112
|
+
const entry = entries.get(sessionId);
|
|
113
|
+
if (!entry)
|
|
114
|
+
throw new Error('terminal live session is not attached');
|
|
115
|
+
await entry.connection.resize(cols, rows);
|
|
116
|
+
},
|
|
117
|
+
sendInput: async (sessionId, input) => {
|
|
118
|
+
const entry = entries.get(sessionId);
|
|
119
|
+
if (!entry)
|
|
120
|
+
throw new Error('terminal live session is not attached');
|
|
121
|
+
await entry.connection.sendInput(textEncoder.encode(String(input ?? '')));
|
|
122
|
+
},
|
|
123
|
+
history: options.control.history,
|
|
124
|
+
historyPage: options.control.historyPage,
|
|
125
|
+
clear: options.control.clear,
|
|
126
|
+
listSessions: options.control.listSessions,
|
|
127
|
+
createSession: options.control.createSession,
|
|
128
|
+
deleteSession: options.control.deleteSession ? async (sessionId) => {
|
|
129
|
+
await options.control.deleteSession(sessionId);
|
|
130
|
+
closeEntry(sessionId);
|
|
131
|
+
emitDeleted(sessionId);
|
|
132
|
+
} : undefined,
|
|
133
|
+
renameSession: options.control.renameSession,
|
|
134
|
+
forgetSession: closeEntry,
|
|
135
|
+
syncConnectionEpoch: key => {
|
|
136
|
+
if (connectionEpochKey === undefined) {
|
|
137
|
+
connectionEpochKey = key;
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
if (connectionEpochKey === key)
|
|
141
|
+
return;
|
|
142
|
+
connectionEpochKey = key;
|
|
143
|
+
for (const sessionId of Array.from(entries.keys()))
|
|
144
|
+
closeEntry(sessionId);
|
|
145
|
+
},
|
|
146
|
+
dispose: () => {
|
|
147
|
+
if (disposed)
|
|
148
|
+
return;
|
|
149
|
+
disposed = true;
|
|
150
|
+
for (const sessionId of Array.from(entries.keys()))
|
|
151
|
+
closeEntry(sessionId);
|
|
152
|
+
listeners.clear();
|
|
153
|
+
deletionListeners.clear();
|
|
154
|
+
geometryListeners.clear();
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
const eventSource = {
|
|
158
|
+
onTerminalData: (sessionId, handler) => {
|
|
159
|
+
const set = listeners.get(sessionId) ?? new Set();
|
|
160
|
+
set.add(handler);
|
|
161
|
+
listeners.set(sessionId, set);
|
|
162
|
+
return () => {
|
|
163
|
+
set.delete(handler);
|
|
164
|
+
if (set.size === 0)
|
|
165
|
+
listeners.delete(sessionId);
|
|
166
|
+
};
|
|
167
|
+
},
|
|
168
|
+
onTerminalNameUpdate: options.controlEvents?.onTerminalNameUpdate
|
|
169
|
+
? (sessionId, handler) => (options.controlEvents.onTerminalNameUpdate(sessionId, handler))
|
|
170
|
+
: undefined,
|
|
171
|
+
onTerminalGeometry: (sessionId, handler) => {
|
|
172
|
+
const set = geometryListeners.get(sessionId) ?? new Set();
|
|
173
|
+
set.add(handler);
|
|
174
|
+
geometryListeners.set(sessionId, set);
|
|
175
|
+
return () => {
|
|
176
|
+
set.delete(handler);
|
|
177
|
+
if (set.size === 0)
|
|
178
|
+
geometryListeners.delete(sessionId);
|
|
179
|
+
};
|
|
180
|
+
},
|
|
181
|
+
onSessionDeleted: (sessionId, handler) => {
|
|
182
|
+
const set = deletionListeners.get(sessionId) ?? new Set();
|
|
183
|
+
set.add(handler);
|
|
184
|
+
deletionListeners.set(sessionId, set);
|
|
185
|
+
return () => {
|
|
186
|
+
set.delete(handler);
|
|
187
|
+
if (set.size === 0)
|
|
188
|
+
deletionListeners.delete(sessionId);
|
|
189
|
+
};
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
return { transport, eventSource };
|
|
193
|
+
};
|
|
194
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/live/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,9 @@ export declare class FrameworkNeutralTerminalInstanceController implements Termi
|
|
|
8
8
|
private terminalCore;
|
|
9
9
|
private isInitializing;
|
|
10
10
|
private terminalDataUnsubscribe;
|
|
11
|
+
private terminalGeometryUnsubscribe;
|
|
12
|
+
private lastGeometryGeneration;
|
|
13
|
+
private pendingGeometryEvents;
|
|
11
14
|
private sequenceBuffer;
|
|
12
15
|
private replayCompleteReceived;
|
|
13
16
|
private isReplayActive;
|
|
@@ -17,6 +20,8 @@ export declare class FrameworkNeutralTerminalInstanceController implements Termi
|
|
|
17
20
|
private connectionState;
|
|
18
21
|
private connectionError;
|
|
19
22
|
private retryCount;
|
|
23
|
+
private connectGeneration;
|
|
24
|
+
private resizeGeneration;
|
|
20
25
|
private retryTimeout;
|
|
21
26
|
private initializationAbortController;
|
|
22
27
|
private queueRetryTimeout;
|
|
@@ -26,6 +31,9 @@ export declare class FrameworkNeutralTerminalInstanceController implements Termi
|
|
|
26
31
|
private isProcessing;
|
|
27
32
|
private queueGeneration;
|
|
28
33
|
private flushRaf;
|
|
34
|
+
private flushMicrotaskScheduled;
|
|
35
|
+
private flushMicrotaskGeneration;
|
|
36
|
+
private immediateFlushEligible;
|
|
29
37
|
private disposed;
|
|
30
38
|
readonly actions: TerminalManagerActions;
|
|
31
39
|
constructor(options: TerminalInstanceOptions);
|
|
@@ -59,10 +67,13 @@ export declare class FrameworkNeutralTerminalInstanceController implements Termi
|
|
|
59
67
|
private scheduleInitialize;
|
|
60
68
|
private initializeTerminal;
|
|
61
69
|
private connectToSession;
|
|
70
|
+
private recoverAtomicHistory;
|
|
62
71
|
private scheduleConnectionRetry;
|
|
63
72
|
private clearRetryTimeout;
|
|
64
73
|
private clearQueueRetryTimeout;
|
|
65
74
|
private subscribeToTerminalData;
|
|
75
|
+
private subscribeToTerminalGeometry;
|
|
76
|
+
private applyPendingGeometryEvents;
|
|
66
77
|
private reinitialize;
|
|
67
78
|
}
|
|
68
79
|
export declare const createTerminalInstance: (options: TerminalInstanceOptions) => TerminalInstanceController;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerminalInstanceController.d.ts","sourceRoot":"","sources":["../../src/manager/TerminalInstanceController.ts"],"names":[],"mappings":"AAMA,OAAO,EAKL,KAAK,4BAA4B,EAGjC,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"TerminalInstanceController.d.ts","sourceRoot":"","sources":["../../src/manager/TerminalInstanceController.ts"],"names":[],"mappings":"AAMA,OAAO,EAKL,KAAK,4BAA4B,EAGjC,KAAK,gBAAgB,EAKrB,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAE5B,KAAK,wBAAwB,EAI7B,KAAK,sBAAsB,EAG5B,MAAM,aAAa,CAAC;AAuCrB,qBAAa,0CAA2C,YAAW,0BAA0B;IAC3F,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IAEjE,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,uBAAuB,CAA6B;IAC5D,OAAO,CAAC,2BAA2B,CAA6B;IAChE,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,qBAAqB,CAA+B;IAC5D,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,mBAAmB,CAAK;IAEhC,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,6BAA6B,CAAgC;IACrE,OAAO,CAAC,iBAAiB,CAA8C;IAEvE,OAAO,CAAC,KAAK,CAIX;IACF,OAAO,CAAC,UAAU,CAA0B;IAE5C,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,wBAAwB,CAAK;IACrC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAS;IAEzB,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CA6CtC;gBAEU,OAAO,EAAE,uBAAuB;IAQ5C,IAAI,UAAU,IAAI,4BAA4B,CAE7C;IAEK,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD,OAAO,IAAI,IAAI;IAOf,OAAO,IAAI,IAAI;IAoBf,aAAa,CAAC,OAAO,EAAE,8BAA8B,GAAG,IAAI;IAgE5D,WAAW,IAAI,wBAAwB;IASvC,SAAS,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAQzD,OAAO,IAAI,gBAAgB,GAAG,IAAI;IAIlC,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,YAAY,CAsBlB;IAEF,OAAO,CAAC,WAAW,CAGjB;IAEF,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,sBAAsB;IAyC9B,OAAO,CAAC,oBAAoB;YAWd,gBAAgB;IA0E9B,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,kBAAkB;YAOZ,kBAAkB;YA8ElB,gBAAgB;YAwChB,oBAAoB;IAkGlC,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,uBAAuB;IAuD/B,OAAO,CAAC,2BAA2B;IAuCnC,OAAO,CAAC,0BAA0B;YAepB,YAAY;CAoB3B;AAED,eAAO,MAAM,sBAAsB,GAAI,SAAS,uBAAuB,KAAG,0BAEzE,CAAC"}
|