@floegence/floeterm-terminal-web 0.5.8 → 0.5.9

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.
@@ -0,0 +1,68 @@
1
+ export type TerminalOutputPipelineCatchUpReason = 'sequence-gap' | 'inactive-buffer-overflow';
2
+ export interface TerminalOutputPipelineChunk {
3
+ data: Uint8Array;
4
+ sequence?: number;
5
+ timestampMs?: number;
6
+ }
7
+ export interface TerminalOutputPipelinePolicy {
8
+ maxLiveBatchChunks: number;
9
+ maxLiveBatchBytes: number;
10
+ maxInactiveChunks: number;
11
+ maxInactiveBytes: number;
12
+ }
13
+ export interface TerminalOutputPipelineCatchUpRequest {
14
+ reason: TerminalOutputPipelineCatchUpReason;
15
+ startSequence: number;
16
+ expectedSequence?: number;
17
+ observedSequence?: number;
18
+ firstBufferedSequence?: number;
19
+ droppedChunks: number;
20
+ droppedBytes: number;
21
+ }
22
+ export interface TerminalOutputPipelineStats {
23
+ enqueuedChunks: number;
24
+ enqueuedBytes: number;
25
+ flushedChunks: number;
26
+ flushedBytes: number;
27
+ droppedChunks: number;
28
+ droppedBytes: number;
29
+ duplicateChunks: number;
30
+ sequenceGaps: number;
31
+ catchUpRequests: number;
32
+ inactiveOverflows: number;
33
+ pendingChunks: number;
34
+ pendingBytes: number;
35
+ inactiveChunks: number;
36
+ inactiveBytes: number;
37
+ lastObservedSequence: number;
38
+ lastAppliedSequence: number;
39
+ catchUpPending: boolean;
40
+ disposed: boolean;
41
+ }
42
+ export interface TerminalOutputPipelineScheduler {
43
+ requestFrame?: (callback: FrameRequestCallback) => number;
44
+ cancelFrame?: (handle: number) => void;
45
+ now?: () => number;
46
+ }
47
+ export interface TerminalOutputPipelineOptions {
48
+ write: (data: Uint8Array, chunks: readonly TerminalOutputPipelineChunk[]) => void;
49
+ isInteractive?: () => boolean;
50
+ requestCatchUp?: (request: TerminalOutputPipelineCatchUpRequest) => void;
51
+ onDrain?: () => void;
52
+ policy?: Partial<TerminalOutputPipelinePolicy>;
53
+ scheduler?: TerminalOutputPipelineScheduler;
54
+ startSequence?: number;
55
+ }
56
+ export interface TerminalOutputPipelineResetOptions {
57
+ startSequence?: number;
58
+ resetStats?: boolean;
59
+ }
60
+ export interface TerminalOutputPipelineHandle {
61
+ enqueue(chunk: TerminalOutputPipelineChunk): void;
62
+ flush(): void;
63
+ reset(options?: TerminalOutputPipelineResetOptions): void;
64
+ dispose(): void;
65
+ getStats(): TerminalOutputPipelineStats;
66
+ }
67
+ export declare const createTerminalOutputPipeline: (options: TerminalOutputPipelineOptions) => TerminalOutputPipelineHandle;
68
+ //# sourceMappingURL=TerminalOutputPipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerminalOutputPipeline.d.ts","sourceRoot":"","sources":["../../src/core/TerminalOutputPipeline.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,mCAAmC,GAC3C,cAAc,GACd,0BAA0B,CAAC;AAE/B,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oCAAoC;IACnD,MAAM,EAAE,mCAAmC,CAAC;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,+BAA+B;IAC9C,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,MAAM,CAAC;IAC1D,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,2BAA2B,EAAE,KAAK,IAAI,CAAC;IAClF,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,oCAAoC,KAAK,IAAI,CAAC;IACzE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC/C,SAAS,CAAC,EAAE,+BAA+B,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kCAAkC;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CAAC,KAAK,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAClD,KAAK,IAAI,IAAI,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,kCAAkC,GAAG,IAAI,CAAC;IAC1D,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,IAAI,2BAA2B,CAAC;CACzC;AAqeD,eAAO,MAAM,4BAA4B,GACvC,SAAS,6BAA6B,KACrC,4BAEF,CAAC"}
@@ -0,0 +1,397 @@
1
+ import { concatChunks } from '../utils/history';
2
+ const DEFAULT_POLICY = {
3
+ maxLiveBatchChunks: 64,
4
+ maxLiveBatchBytes: 256 * 1024,
5
+ maxInactiveChunks: 256,
6
+ maxInactiveBytes: 512 * 1024,
7
+ };
8
+ const resolveRequestFrame = () => {
9
+ if (typeof requestAnimationFrame === 'function') {
10
+ return requestAnimationFrame.bind(globalThis);
11
+ }
12
+ return callback => setTimeout(() => callback(resolveNow()), 16);
13
+ };
14
+ const resolveCancelFrame = () => {
15
+ if (typeof cancelAnimationFrame === 'function') {
16
+ return cancelAnimationFrame.bind(globalThis);
17
+ }
18
+ return handle => clearTimeout(handle);
19
+ };
20
+ const resolveNow = () => {
21
+ if (typeof performance !== 'undefined' && typeof performance.now === 'function') {
22
+ return performance.now();
23
+ }
24
+ return Date.now();
25
+ };
26
+ const createEmptyStats = () => ({
27
+ enqueuedChunks: 0,
28
+ enqueuedBytes: 0,
29
+ flushedChunks: 0,
30
+ flushedBytes: 0,
31
+ droppedChunks: 0,
32
+ droppedBytes: 0,
33
+ duplicateChunks: 0,
34
+ sequenceGaps: 0,
35
+ catchUpRequests: 0,
36
+ inactiveOverflows: 0,
37
+ });
38
+ const normalizePositiveInteger = (value, fallback) => {
39
+ return typeof value === 'number' && Number.isFinite(value) && value > 0
40
+ ? Math.max(1, Math.floor(value))
41
+ : fallback;
42
+ };
43
+ const normalizePolicy = (policy) => ({
44
+ maxLiveBatchChunks: normalizePositiveInteger(policy?.maxLiveBatchChunks, DEFAULT_POLICY.maxLiveBatchChunks),
45
+ maxLiveBatchBytes: normalizePositiveInteger(policy?.maxLiveBatchBytes, DEFAULT_POLICY.maxLiveBatchBytes),
46
+ maxInactiveChunks: normalizePositiveInteger(policy?.maxInactiveChunks, DEFAULT_POLICY.maxInactiveChunks),
47
+ maxInactiveBytes: normalizePositiveInteger(policy?.maxInactiveBytes, DEFAULT_POLICY.maxInactiveBytes),
48
+ });
49
+ const normalizeSequence = (sequence) => {
50
+ return typeof sequence === 'number' && Number.isFinite(sequence) && sequence > 0
51
+ ? Math.floor(sequence)
52
+ : undefined;
53
+ };
54
+ const normalizeStartSequence = (sequence) => {
55
+ return normalizeSequence(sequence) ?? 1;
56
+ };
57
+ const countChunkBytes = (chunks) => {
58
+ return chunks.reduce((sum, chunk) => sum + chunk.data.byteLength, 0);
59
+ };
60
+ const takeChunkBatch = (queue, maxChunks, maxBytes) => {
61
+ if (queue.length === 0) {
62
+ return [];
63
+ }
64
+ let count = 0;
65
+ let byteLength = 0;
66
+ while (count < queue.length && count < maxChunks) {
67
+ const next = queue[count];
68
+ if (!next) {
69
+ break;
70
+ }
71
+ if (count > 0 && byteLength + next.data.byteLength > maxBytes) {
72
+ break;
73
+ }
74
+ byteLength += next.data.byteLength;
75
+ count += 1;
76
+ if (byteLength >= maxBytes) {
77
+ break;
78
+ }
79
+ }
80
+ return queue.splice(0, Math.max(1, count));
81
+ };
82
+ class TerminalOutputPipeline {
83
+ constructor(options) {
84
+ this.liveQueue = [];
85
+ this.liveBytes = 0;
86
+ this.inactiveQueue = [];
87
+ this.inactiveBytes = 0;
88
+ this.queuedSequences = new Set();
89
+ this.frameHandle = null;
90
+ this.disposed = false;
91
+ this.catchUpPending = false;
92
+ this.stats = createEmptyStats();
93
+ this.write = options.write;
94
+ this.isInteractive = options.isInteractive ?? (() => true);
95
+ this.requestCatchUp = options.requestCatchUp;
96
+ this.onDrain = options.onDrain;
97
+ this.requestFrame = options.scheduler?.requestFrame ?? resolveRequestFrame();
98
+ this.cancelFrame = options.scheduler?.cancelFrame ?? resolveCancelFrame();
99
+ this.policy = normalizePolicy(options.policy);
100
+ const startSequence = normalizeStartSequence(options.startSequence);
101
+ this.lastObservedSequence = startSequence - 1;
102
+ this.lastAppliedSequence = startSequence - 1;
103
+ }
104
+ enqueue(chunk) {
105
+ if (this.disposed) {
106
+ return;
107
+ }
108
+ if (this.catchUpPending) {
109
+ this.stats.droppedChunks += 1;
110
+ this.stats.droppedBytes += chunk.data.byteLength;
111
+ return;
112
+ }
113
+ const sequence = normalizeSequence(chunk.sequence);
114
+ const normalizedChunk = sequence
115
+ ? { ...chunk, sequence }
116
+ : chunk;
117
+ if (!this.acceptSequence(sequence, normalizedChunk.data.byteLength)) {
118
+ return;
119
+ }
120
+ this.stats.enqueuedChunks += 1;
121
+ this.stats.enqueuedBytes += normalizedChunk.data.byteLength;
122
+ if (normalizedChunk.data.byteLength === 0) {
123
+ this.markApplied([normalizedChunk]);
124
+ this.emitDrainIfIdle();
125
+ return;
126
+ }
127
+ if (!this.isInteractive()) {
128
+ this.enqueueInactive(normalizedChunk);
129
+ return;
130
+ }
131
+ this.liveQueue.push(normalizedChunk);
132
+ this.liveBytes += normalizedChunk.data.byteLength;
133
+ this.scheduleFrame();
134
+ }
135
+ flush() {
136
+ if (this.disposed || this.catchUpPending) {
137
+ return;
138
+ }
139
+ if (!this.isInteractive()) {
140
+ this.deferLiveQueue();
141
+ return;
142
+ }
143
+ this.promoteInactiveQueue();
144
+ if (this.liveQueue.length === 0) {
145
+ this.emitDrainIfIdle();
146
+ return;
147
+ }
148
+ this.scheduleFrame();
149
+ }
150
+ reset(options = {}) {
151
+ this.cancelFrameIfScheduled();
152
+ this.clearQueues();
153
+ this.catchUpPending = false;
154
+ const startSequence = normalizeStartSequence(options.startSequence);
155
+ this.lastObservedSequence = startSequence - 1;
156
+ this.lastAppliedSequence = startSequence - 1;
157
+ if (options.resetStats) {
158
+ this.stats = createEmptyStats();
159
+ }
160
+ }
161
+ dispose() {
162
+ if (this.disposed) {
163
+ return;
164
+ }
165
+ this.disposed = true;
166
+ this.cancelFrameIfScheduled();
167
+ this.clearQueues();
168
+ this.catchUpPending = false;
169
+ }
170
+ getStats() {
171
+ return {
172
+ ...this.stats,
173
+ pendingChunks: this.liveQueue.length,
174
+ pendingBytes: this.liveBytes,
175
+ inactiveChunks: this.inactiveQueue.length,
176
+ inactiveBytes: this.inactiveBytes,
177
+ lastObservedSequence: this.lastObservedSequence,
178
+ lastAppliedSequence: this.lastAppliedSequence,
179
+ catchUpPending: this.catchUpPending,
180
+ disposed: this.disposed,
181
+ };
182
+ }
183
+ acceptSequence(sequence, byteLength) {
184
+ if (!sequence) {
185
+ return true;
186
+ }
187
+ if (sequence <= this.lastAppliedSequence || this.queuedSequences.has(sequence)) {
188
+ this.stats.duplicateChunks += 1;
189
+ return false;
190
+ }
191
+ const expectedSequence = Math.max(this.lastObservedSequence, this.lastAppliedSequence) + 1;
192
+ if (sequence > expectedSequence) {
193
+ this.stats.sequenceGaps += 1;
194
+ if (this.requestCatchUp) {
195
+ this.requestCatchUpForGap(sequence, expectedSequence, byteLength);
196
+ return false;
197
+ }
198
+ }
199
+ this.lastObservedSequence = Math.max(this.lastObservedSequence, sequence);
200
+ this.queuedSequences.add(sequence);
201
+ return true;
202
+ }
203
+ requestCatchUpForGap(observedSequence, expectedSequence, currentChunkBytes) {
204
+ const droppedChunks = this.liveQueue.length + this.inactiveQueue.length + 1;
205
+ const droppedBytes = this.liveBytes + this.inactiveBytes + currentChunkBytes;
206
+ const startSequence = this.lastAppliedSequence > 0 ? this.lastAppliedSequence + 1 : 0;
207
+ this.clearQueues();
208
+ this.cancelFrameIfScheduled();
209
+ this.catchUpPending = true;
210
+ this.stats.catchUpRequests += 1;
211
+ this.stats.droppedChunks += droppedChunks;
212
+ this.stats.droppedBytes += droppedBytes;
213
+ this.requestCatchUp?.({
214
+ reason: 'sequence-gap',
215
+ startSequence,
216
+ expectedSequence,
217
+ observedSequence,
218
+ droppedChunks,
219
+ droppedBytes,
220
+ });
221
+ }
222
+ requestCatchUpForInactiveOverflow(nextChunk) {
223
+ const droppedChunks = this.liveQueue.length + this.inactiveQueue.length + 1;
224
+ const droppedBytes = this.liveBytes + this.inactiveBytes + nextChunk.data.byteLength;
225
+ const firstBufferedSequence = this.findFirstBufferedSequence();
226
+ const startSequence = firstBufferedSequence ?? (this.lastAppliedSequence > 0 ? this.lastAppliedSequence + 1 : 0);
227
+ this.clearQueues();
228
+ this.cancelFrameIfScheduled();
229
+ this.catchUpPending = true;
230
+ this.stats.catchUpRequests += 1;
231
+ this.stats.inactiveOverflows += 1;
232
+ this.stats.droppedChunks += droppedChunks;
233
+ this.stats.droppedBytes += droppedBytes;
234
+ this.requestCatchUp?.({
235
+ reason: 'inactive-buffer-overflow',
236
+ startSequence,
237
+ firstBufferedSequence,
238
+ droppedChunks,
239
+ droppedBytes,
240
+ });
241
+ }
242
+ enqueueInactive(chunk) {
243
+ const nextBytes = this.inactiveBytes + chunk.data.byteLength;
244
+ if (this.inactiveQueue.length >= this.policy.maxInactiveChunks
245
+ || nextBytes > this.policy.maxInactiveBytes) {
246
+ if (this.requestCatchUp) {
247
+ this.requestCatchUpForInactiveOverflow(chunk);
248
+ return;
249
+ }
250
+ this.evictInactiveUntilFits(chunk);
251
+ }
252
+ if (chunk.data.byteLength > this.policy.maxInactiveBytes) {
253
+ this.dropAcceptedChunk(chunk);
254
+ this.stats.inactiveOverflows += 1;
255
+ return;
256
+ }
257
+ this.inactiveQueue.push(chunk);
258
+ this.inactiveBytes += chunk.data.byteLength;
259
+ }
260
+ evictInactiveUntilFits(chunk) {
261
+ this.stats.inactiveOverflows += 1;
262
+ while (this.inactiveQueue.length > 0
263
+ && (this.inactiveQueue.length >= this.policy.maxInactiveChunks
264
+ || this.inactiveBytes + chunk.data.byteLength > this.policy.maxInactiveBytes)) {
265
+ const dropped = this.inactiveQueue.shift();
266
+ if (!dropped) {
267
+ break;
268
+ }
269
+ this.inactiveBytes -= dropped.data.byteLength;
270
+ this.forgetQueuedSequence(dropped);
271
+ this.stats.droppedChunks += 1;
272
+ this.stats.droppedBytes += dropped.data.byteLength;
273
+ }
274
+ }
275
+ deferLiveQueue() {
276
+ if (this.liveQueue.length === 0) {
277
+ return;
278
+ }
279
+ this.cancelFrameIfScheduled();
280
+ const pending = this.liveQueue;
281
+ this.liveQueue = [];
282
+ this.liveBytes = 0;
283
+ for (const chunk of pending) {
284
+ this.enqueueInactive(chunk);
285
+ if (this.catchUpPending) {
286
+ return;
287
+ }
288
+ }
289
+ }
290
+ promoteInactiveQueue() {
291
+ if (this.inactiveQueue.length === 0) {
292
+ return;
293
+ }
294
+ this.liveQueue.push(...this.inactiveQueue);
295
+ this.liveBytes += this.inactiveBytes;
296
+ this.inactiveQueue = [];
297
+ this.inactiveBytes = 0;
298
+ }
299
+ scheduleFrame() {
300
+ if (this.frameHandle !== null || this.disposed || this.catchUpPending) {
301
+ return;
302
+ }
303
+ this.frameHandle = this.requestFrame(() => {
304
+ this.frameHandle = null;
305
+ this.flushFrame();
306
+ });
307
+ }
308
+ flushFrame() {
309
+ if (this.disposed || this.catchUpPending) {
310
+ return;
311
+ }
312
+ if (!this.isInteractive()) {
313
+ this.deferLiveQueue();
314
+ return;
315
+ }
316
+ this.promoteInactiveQueue();
317
+ const batch = takeChunkBatch(this.liveQueue, this.policy.maxLiveBatchChunks, this.policy.maxLiveBatchBytes);
318
+ if (batch.length === 0) {
319
+ this.emitDrainIfIdle();
320
+ return;
321
+ }
322
+ this.liveBytes -= countChunkBytes(batch);
323
+ const payload = batch.length === 1 ? batch[0].data : concatChunks(batch.map(chunk => chunk.data));
324
+ if (payload.byteLength > 0) {
325
+ this.write(payload, batch);
326
+ }
327
+ this.markApplied(batch);
328
+ this.stats.flushedChunks += batch.length;
329
+ this.stats.flushedBytes += payload.byteLength;
330
+ if (this.liveQueue.length > 0) {
331
+ this.scheduleFrame();
332
+ return;
333
+ }
334
+ this.emitDrainIfIdle();
335
+ }
336
+ markApplied(chunks) {
337
+ for (const chunk of chunks) {
338
+ const sequence = normalizeSequence(chunk.sequence);
339
+ if (!sequence) {
340
+ continue;
341
+ }
342
+ this.queuedSequences.delete(sequence);
343
+ if (sequence > this.lastAppliedSequence) {
344
+ this.lastAppliedSequence = sequence;
345
+ }
346
+ }
347
+ }
348
+ dropAcceptedChunk(chunk) {
349
+ this.forgetQueuedSequence(chunk);
350
+ this.stats.droppedChunks += 1;
351
+ this.stats.droppedBytes += chunk.data.byteLength;
352
+ }
353
+ forgetQueuedSequence(chunk) {
354
+ const sequence = normalizeSequence(chunk.sequence);
355
+ if (sequence) {
356
+ this.queuedSequences.delete(sequence);
357
+ }
358
+ }
359
+ findFirstBufferedSequence() {
360
+ let first;
361
+ for (const chunk of [...this.inactiveQueue, ...this.liveQueue]) {
362
+ const sequence = normalizeSequence(chunk.sequence);
363
+ if (sequence && (first === undefined || sequence < first)) {
364
+ first = sequence;
365
+ }
366
+ }
367
+ return first;
368
+ }
369
+ clearQueues() {
370
+ this.liveQueue = [];
371
+ this.liveBytes = 0;
372
+ this.inactiveQueue = [];
373
+ this.inactiveBytes = 0;
374
+ this.queuedSequences.clear();
375
+ }
376
+ cancelFrameIfScheduled() {
377
+ if (this.frameHandle === null) {
378
+ return;
379
+ }
380
+ this.cancelFrame(this.frameHandle);
381
+ this.frameHandle = null;
382
+ }
383
+ emitDrainIfIdle() {
384
+ if (this.disposed
385
+ || this.catchUpPending
386
+ || this.liveQueue.length > 0
387
+ || this.inactiveQueue.length > 0
388
+ || this.frameHandle !== null) {
389
+ return;
390
+ }
391
+ this.onDrain?.();
392
+ }
393
+ }
394
+ export const createTerminalOutputPipeline = (options) => {
395
+ return new TerminalOutputPipeline(options);
396
+ };
397
+ //# sourceMappingURL=TerminalOutputPipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerminalOutputPipeline.js","sourceRoot":"","sources":["../../src/core/TerminalOutputPipeline.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,10 +2,12 @@ export { TerminalCore } from './core/TerminalCore';
2
2
  export { TerminalState } from './types';
3
3
  export { createTerminalInstance, FrameworkNeutralTerminalInstanceController, } from './manager/TerminalInstanceController';
4
4
  export { getTerminalRenderSchedulerStats, resetTerminalRenderSchedulerStats, } from './core/TerminalRenderScheduler';
5
+ export { createTerminalOutputPipeline } from './core/TerminalOutputPipeline';
5
6
  export { getTerminalFabricDiagnostics, resetTerminalFabricDiagnostics, } from './fabric/TerminalFabricCoordinator';
6
7
  export { TerminalSessionsCoordinator } from './sessions/TerminalSessionsCoordinator';
7
8
  export type { TerminalSessionsCoordinatorOptions } from './sessions/TerminalSessionsCoordinator';
8
9
  export type { TerminalRenderSchedulerStats } from './core/TerminalRenderScheduler';
10
+ export type { TerminalOutputPipelineCatchUpReason, TerminalOutputPipelineCatchUpRequest, TerminalOutputPipelineChunk, TerminalOutputPipelineHandle, TerminalOutputPipelineOptions, TerminalOutputPipelinePolicy, TerminalOutputPipelineResetOptions, TerminalOutputPipelineScheduler, TerminalOutputPipelineStats, } from './core/TerminalOutputPipeline';
9
11
  export type { TerminalFabricBackend, TerminalFabricDiagnostics, TerminalFabricRenderPath, TerminalFabricStats, } from './fabric/types';
10
12
  export type { Logger, TerminalBufferCellPosition, TerminalBufferRange, TerminalClipboardConfig, TerminalAppearance, TerminalConfig, TerminalCopySelectionResult, TerminalCopySelectionSource, TerminalResponsiveConfig, TerminalRuntimeLineSnapshot, TerminalEventHandlers, TerminalFocusOptions, TerminalInstanceController, TerminalInstanceListener, TerminalInstanceMutableOptions, TerminalInstanceOptions, TerminalInstanceScheduler, TerminalInstanceSnapshot, TerminalLoadingState, TerminalID, TerminalSessionInfo, TerminalDataChunk, TerminalDataEvent, TerminalNameUpdateEvent, TerminalTransport, TerminalEventSource, TerminalManagerOptions, TerminalManagerReturn, TerminalManagerActions, TerminalManagerAppearance, TerminalManagerState, TerminalError, TerminalLink, TerminalLinkProvider, TerminalSelectionSnapshot, TerminalTouchScrollRuntime, TerminalVisualSuspendHandle, TerminalVisualSuspendOptions, TerminalVisualSuspendReason, TerminalThemeName } from './types';
11
13
  export { getThemeColors, getDefaultTerminalConfig } from './utils/config';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EACL,sBAAsB,EACtB,0CAA0C,GAC3C,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,GAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,YAAY,EAAE,kCAAkC,EAAE,MAAM,wCAAwC,CAAC;AACjG,YAAY,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,MAAM,EACN,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,8BAA8B,EAC9B,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EACL,sBAAsB,EACtB,0CAA0C,GAC3C,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,GAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,YAAY,EAAE,kCAAkC,EAAE,MAAM,wCAAwC,CAAC;AACjG,YAAY,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,YAAY,EACV,mCAAmC,EACnC,oCAAoC,EACpC,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,EAC5B,kCAAkC,EAClC,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,MAAM,EACN,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,8BAA8B,EAC9B,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC"}
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@ export { TerminalCore } from './core/TerminalCore';
2
2
  export { TerminalState } from './types';
3
3
  export { createTerminalInstance, FrameworkNeutralTerminalInstanceController, } from './manager/TerminalInstanceController';
4
4
  export { getTerminalRenderSchedulerStats, resetTerminalRenderSchedulerStats, } from './core/TerminalRenderScheduler';
5
+ export { createTerminalOutputPipeline } from './core/TerminalOutputPipeline';
5
6
  export { getTerminalFabricDiagnostics, resetTerminalFabricDiagnostics, } from './fabric/TerminalFabricCoordinator';
6
7
  export { TerminalSessionsCoordinator } from './sessions/TerminalSessionsCoordinator';
7
8
  export { getThemeColors, getDefaultTerminalConfig } from './utils/config';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EACL,sBAAsB,EACtB,0CAA0C,GAC3C,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,GAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAqDrF,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EACL,sBAAsB,EACtB,0CAA0C,GAC3C,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,GAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAgErF,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@floegence/floeterm-terminal-web",
3
- "version": "0.5.8",
3
+ "version": "0.5.9",
4
4
  "description": "Framework-neutral ghostty-web (xterm.js API-compatible) integration with terminal core, session, and data flow utilities.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {