osc-progress 0.2.0 → 0.3.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/CHANGELOG.md +11 -0
- package/LICENSE +1 -1
- package/README.md +20 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/oscProgress.js +153 -24
- package/dist/esm/oscProgress.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/oscProgress.d.ts +27 -1
- package/package.json +9 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
All notable changes to this project are documented in this file.
|
|
3
3
|
|
|
4
|
+
## 0.3.0 - Unreleased
|
|
5
|
+
### Added
|
|
6
|
+
- Throttled/deduped OSC progress updates (default).
|
|
7
|
+
- Stalled/paused state support (`setPaused`, `stallAfterMs`).
|
|
8
|
+
- Completion/error helpers (`done`, `fail`) with delayed clear (`clearDelayMs`).
|
|
9
|
+
- Optional auto-clear on process exit (`autoClearOnExit`).
|
|
10
|
+
- Controller cleanup via `dispose()`.
|
|
11
|
+
### Changed
|
|
12
|
+
- `createOscProgressController` now returns an extended controller with pause/done/fail helpers.
|
|
13
|
+
- Controller updates are throttled by default (behavior change).
|
|
14
|
+
|
|
4
15
|
## 0.2.0 - 2025-12-25
|
|
5
16
|
### Added
|
|
6
17
|
- `createOscProgressController` for stateful determinate/indeterminate updates.
|
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ⏳ osc-progress — Tiny lib for OSC 9;4 terminal progress.
|
|
2
2
|
|
|
3
|
-
Tiny TypeScript helper for **OSC 9;4** terminal progress
|
|
3
|
+
Tiny TypeScript helper for **OSC 9;4** terminal progress (Ghostty / WezTerm / Windows Terminal).
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -72,7 +72,11 @@ Notes:
|
|
|
72
72
|
Returns a small stateful controller:
|
|
73
73
|
- `setIndeterminate(label)`
|
|
74
74
|
- `setPercent(label, percent)`
|
|
75
|
+
- `setPaused(label)` (state `4`)
|
|
76
|
+
- `done(label?)` (emit 100% then clear)
|
|
77
|
+
- `fail(label?)` (emit error state then clear)
|
|
75
78
|
- `clear()`
|
|
79
|
+
- `dispose()` (cleanup timers/listeners)
|
|
76
80
|
|
|
77
81
|
Use this when you already have real progress (bytes/total, seconds/total) and want determinate terminal progress instead of the timer-based ramp.
|
|
78
82
|
|
|
@@ -80,6 +84,10 @@ Notes:
|
|
|
80
84
|
- returns no-op methods when `supportsOscProgress(...)` is false
|
|
81
85
|
- `percent` is rounded and clamped to `0..100`
|
|
82
86
|
- `clear()` uses the last label (or the initial `options.label` if nothing was set yet)
|
|
87
|
+
- progress updates are throttled by default (deduped + max ~1 update/150ms)
|
|
88
|
+
- `stallAfterMs` emits a paused/stalled state when updates stop
|
|
89
|
+
- `clearDelayMs` controls how long `done()` / `fail()` wait before clearing
|
|
90
|
+
- `autoClearOnExit` clears on process exit
|
|
83
91
|
|
|
84
92
|
```ts
|
|
85
93
|
import process from 'node:process'
|
|
@@ -89,14 +97,24 @@ const osc = createOscProgressController({
|
|
|
89
97
|
env: process.env,
|
|
90
98
|
isTty: process.stderr.isTTY,
|
|
91
99
|
write: (chunk) => process.stderr.write(chunk),
|
|
100
|
+
stallAfterMs: 10_000,
|
|
101
|
+
clearDelayMs: 200,
|
|
102
|
+
autoClearOnExit: true,
|
|
92
103
|
})
|
|
93
104
|
|
|
94
105
|
osc.setIndeterminate('Connecting')
|
|
95
106
|
osc.setPercent('Downloading', 12)
|
|
96
107
|
osc.setPercent('Downloading', 67)
|
|
97
|
-
osc.
|
|
108
|
+
osc.done()
|
|
98
109
|
```
|
|
99
110
|
|
|
111
|
+
#### Controller options
|
|
112
|
+
|
|
113
|
+
- `stallAfterMs`: emit state=4 when no updates are seen within this window.
|
|
114
|
+
- `stalledLabel`: override stalled label (string or formatter).
|
|
115
|
+
- `clearDelayMs`: delay before `done()`/`fail()` clears.
|
|
116
|
+
- `autoClearOnExit`: clear progress on process exit.
|
|
117
|
+
|
|
100
118
|
### `sanitizeOscProgress(text, keepOsc)`
|
|
101
119
|
|
|
102
120
|
Removes OSC 9;4 progress sequences (terminated by `BEL`, `ST` (`ESC \\`), or `0x9c`).
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EAQf,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,kBAAkB,CAAA"}
|
package/dist/esm/oscProgress.js
CHANGED
|
@@ -13,6 +13,8 @@ export const OSC_PROGRESS_ST = '\u001b\\';
|
|
|
13
13
|
export const OSC_PROGRESS_BEL = '\u0007';
|
|
14
14
|
/** C1 String Terminator (ST): `0x9c` */
|
|
15
15
|
export const OSC_PROGRESS_C1_ST = '\u009c';
|
|
16
|
+
const DEFAULT_THROTTLE_INTERVAL_MS = 150;
|
|
17
|
+
const DEFAULT_CLEAR_DELAY_MS = 150;
|
|
16
18
|
function resolveTerminator(terminator) {
|
|
17
19
|
return terminator === 'bel' ? OSC_PROGRESS_BEL : OSC_PROGRESS_ST;
|
|
18
20
|
}
|
|
@@ -206,41 +208,168 @@ export function startOscProgress(options = {}) {
|
|
|
206
208
|
*/
|
|
207
209
|
export function createOscProgressController(options = {}) {
|
|
208
210
|
// Default to stderr: progress belongs with other interactive output and avoids polluting stdout pipes.
|
|
209
|
-
const { label = 'Working…', write = (text) => process.stderr.write(text), terminator } = options;
|
|
211
|
+
const { label = 'Working…', write = (text) => process.stderr.write(text), terminator, stallAfterMs = 0, stalledLabel, clearDelayMs = DEFAULT_CLEAR_DELAY_MS, autoClearOnExit = false, } = options;
|
|
210
212
|
if (!supportsOscProgress(options.env, options.isTty, options)) {
|
|
211
213
|
// No-op controller: callers can keep their code linear and still be safe in unsupported terminals/logs.
|
|
212
|
-
return {
|
|
214
|
+
return {
|
|
215
|
+
setIndeterminate: () => { },
|
|
216
|
+
setPercent: () => { },
|
|
217
|
+
setPaused: () => { },
|
|
218
|
+
done: () => { },
|
|
219
|
+
fail: () => { },
|
|
220
|
+
clear: () => { },
|
|
221
|
+
dispose: () => { },
|
|
222
|
+
};
|
|
213
223
|
}
|
|
214
224
|
// Resolve once; avoids branching in hot paths.
|
|
215
225
|
const end = resolveTerminator(terminator);
|
|
216
|
-
const
|
|
226
|
+
const resolveStalledLabel = (baseLabel) => {
|
|
227
|
+
if (typeof stalledLabel === 'function')
|
|
228
|
+
return stalledLabel(baseLabel);
|
|
229
|
+
if (typeof stalledLabel === 'string')
|
|
230
|
+
return stalledLabel;
|
|
231
|
+
return `${baseLabel} (stalled)`;
|
|
232
|
+
};
|
|
233
|
+
const normalizePercent = (percent) => Math.max(0, Math.min(100, Math.round(percent)));
|
|
234
|
+
let lastEmittedLabel = label;
|
|
235
|
+
let lastEmittedPercent = null;
|
|
236
|
+
let lastEmittedState = null;
|
|
237
|
+
let lastEmitAt = 0;
|
|
238
|
+
let hasEmitted = false;
|
|
239
|
+
let lastSeenLabel = label;
|
|
240
|
+
let lastSeenPercent = 0;
|
|
241
|
+
let lastSeenMode = 'indeterminate';
|
|
242
|
+
let stallTimer = null;
|
|
243
|
+
let clearTimer = null;
|
|
244
|
+
let stallEnabled = true;
|
|
245
|
+
const clearStallTimer = () => {
|
|
246
|
+
if (stallTimer !== null) {
|
|
247
|
+
clearTimeout(stallTimer);
|
|
248
|
+
stallTimer = null;
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
const clearTimers = () => {
|
|
252
|
+
clearStallTimer();
|
|
253
|
+
if (clearTimer !== null) {
|
|
254
|
+
clearTimeout(clearTimer);
|
|
255
|
+
clearTimer = null;
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
const scheduleStall = () => {
|
|
259
|
+
if (!stallAfterMs || stallAfterMs <= 0)
|
|
260
|
+
return;
|
|
261
|
+
if (stallTimer !== null)
|
|
262
|
+
clearTimeout(stallTimer);
|
|
263
|
+
stallTimer = setTimeout(() => {
|
|
264
|
+
stallTimer = null;
|
|
265
|
+
if (!stallEnabled)
|
|
266
|
+
return;
|
|
267
|
+
const labelToUse = resolveStalledLabel(lastSeenLabel);
|
|
268
|
+
const percent = lastSeenMode === 'determinate' ? lastSeenPercent : null;
|
|
269
|
+
send(4, percent, labelToUse, true);
|
|
270
|
+
}, stallAfterMs);
|
|
271
|
+
stallTimer.unref?.();
|
|
272
|
+
};
|
|
273
|
+
const scheduleClear = () => {
|
|
274
|
+
if (clearDelayMs <= 0) {
|
|
275
|
+
clear();
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
if (clearTimer !== null)
|
|
279
|
+
clearTimeout(clearTimer);
|
|
280
|
+
clearTimer = setTimeout(() => {
|
|
281
|
+
clearTimer = null;
|
|
282
|
+
clear();
|
|
283
|
+
}, clearDelayMs);
|
|
284
|
+
clearTimer.unref?.();
|
|
285
|
+
};
|
|
286
|
+
const send = (state, percent, nextLabel, force = false) => {
|
|
217
287
|
// Always sanitize; labels often come from user-visible input (filenames/URLs) and must not break OSC.
|
|
218
288
|
const cleanLabel = sanitizeLabel(nextLabel);
|
|
219
|
-
|
|
220
|
-
|
|
289
|
+
const normalizedPercent = percent == null ? null : normalizePercent(percent);
|
|
290
|
+
const now = Date.now();
|
|
291
|
+
const stateChanged = state !== lastEmittedState;
|
|
292
|
+
const labelChanged = cleanLabel !== lastEmittedLabel;
|
|
293
|
+
const percentChanged = normalizedPercent !== lastEmittedPercent;
|
|
294
|
+
const withinInterval = now - lastEmitAt < DEFAULT_THROTTLE_INTERVAL_MS;
|
|
295
|
+
let shouldEmit = force || !hasEmitted || stateChanged || labelChanged;
|
|
296
|
+
if (!shouldEmit && percentChanged) {
|
|
297
|
+
shouldEmit = !withinInterval;
|
|
298
|
+
}
|
|
299
|
+
if (!shouldEmit)
|
|
221
300
|
return;
|
|
301
|
+
if (normalizedPercent == null) {
|
|
302
|
+
write(`${OSC_PROGRESS_PREFIX}${state};;${cleanLabel}${end}`);
|
|
222
303
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
304
|
+
else {
|
|
305
|
+
write(`${OSC_PROGRESS_PREFIX}${state};${normalizedPercent};${cleanLabel}${end}`);
|
|
306
|
+
}
|
|
307
|
+
lastEmittedLabel = cleanLabel;
|
|
308
|
+
lastEmittedPercent = normalizedPercent;
|
|
309
|
+
lastEmittedState = state;
|
|
310
|
+
lastEmitAt = now;
|
|
311
|
+
hasEmitted = true;
|
|
226
312
|
};
|
|
227
313
|
// Remember the last user-provided label so `clear()` clears the most recent task label.
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
314
|
+
const updateSeen = (nextLabel, mode, percent, shouldScheduleStall = true) => {
|
|
315
|
+
lastSeenLabel = nextLabel;
|
|
316
|
+
lastSeenMode = mode;
|
|
317
|
+
lastSeenPercent = percent ?? 0;
|
|
318
|
+
if (shouldScheduleStall) {
|
|
319
|
+
scheduleStall();
|
|
320
|
+
}
|
|
321
|
+
};
|
|
322
|
+
const setIndeterminate = (nextLabel) => {
|
|
323
|
+
stallEnabled = true;
|
|
324
|
+
updateSeen(nextLabel, 'indeterminate', null);
|
|
325
|
+
send(3, null, nextLabel);
|
|
326
|
+
};
|
|
327
|
+
const setPercent = (nextLabel, percent) => {
|
|
328
|
+
const normalized = normalizePercent(percent);
|
|
329
|
+
stallEnabled = true;
|
|
330
|
+
updateSeen(nextLabel, 'determinate', normalized);
|
|
331
|
+
send(1, normalized, nextLabel);
|
|
332
|
+
};
|
|
333
|
+
const setPaused = (nextLabel) => {
|
|
334
|
+
stallEnabled = false;
|
|
335
|
+
const percent = lastSeenMode === 'determinate' ? lastSeenPercent : null;
|
|
336
|
+
updateSeen(nextLabel, lastSeenMode, lastSeenMode === 'determinate' ? lastSeenPercent : null, false);
|
|
337
|
+
send(4, percent, nextLabel, true);
|
|
338
|
+
};
|
|
339
|
+
const clear = () => {
|
|
340
|
+
stallEnabled = false;
|
|
341
|
+
clearTimers();
|
|
342
|
+
send(0, 0, lastSeenLabel, true);
|
|
343
|
+
};
|
|
344
|
+
const done = (nextLabel) => {
|
|
345
|
+
const labelToUse = nextLabel ?? lastSeenLabel;
|
|
346
|
+
stallEnabled = false;
|
|
347
|
+
clearStallTimer();
|
|
348
|
+
updateSeen(labelToUse, 'determinate', 100, false);
|
|
349
|
+
send(1, 100, labelToUse, true);
|
|
350
|
+
scheduleClear();
|
|
351
|
+
};
|
|
352
|
+
const fail = (nextLabel) => {
|
|
353
|
+
const labelToUse = nextLabel ?? lastSeenLabel;
|
|
354
|
+
const percent = lastSeenMode === 'determinate' ? lastSeenPercent : null;
|
|
355
|
+
stallEnabled = false;
|
|
356
|
+
clearStallTimer();
|
|
357
|
+
updateSeen(labelToUse, lastSeenMode, lastSeenMode === 'determinate' ? lastSeenPercent : null, false);
|
|
358
|
+
send(2, percent, labelToUse, true);
|
|
359
|
+
scheduleClear();
|
|
360
|
+
};
|
|
361
|
+
const handleExit = () => {
|
|
362
|
+
clear();
|
|
363
|
+
};
|
|
364
|
+
if (autoClearOnExit) {
|
|
365
|
+
process.once('exit', handleExit);
|
|
366
|
+
}
|
|
367
|
+
const dispose = () => {
|
|
368
|
+
clearTimers();
|
|
369
|
+
if (autoClearOnExit) {
|
|
370
|
+
process.off('exit', handleExit);
|
|
371
|
+
}
|
|
244
372
|
};
|
|
373
|
+
return { setIndeterminate, setPercent, setPaused, done, fail, clear, dispose };
|
|
245
374
|
}
|
|
246
375
|
//# sourceMappingURL=oscProgress.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oscProgress.js","sourceRoot":"","sources":["../../src/oscProgress.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oscProgress.js","sourceRoot":"","sources":["../../src/oscProgress.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAA;AAChD,uCAAuC;AACvC,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAA;AACzC,yBAAyB;AACzB,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAA;AACxC,wCAAwC;AACxC,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAA;AAE1C,MAAM,4BAA4B,GAAG,GAAG,CAAA;AACxC,MAAM,sBAAsB,GAAG,GAAG,CAAA;AA2ElC,SAAS,iBAAiB,CAAC,UAA6C;IACtE,OAAO,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAA;AAClE,CAAC;AAsBD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;IACvD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACxD,MAAM,kBAAkB,GAAG,aAAa;SACrC,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAChC,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;IACrC,OAAO,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAyB,OAAO,CAAC,GAAG,EACpC,QAAiB,OAAO,CAAC,MAAM,CAAC,KAAK,EACrC,UAAqC,EAAE;IAEvC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxB,IAAI,OAAO,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAA;IAClC,IAAI,OAAO,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAE9B,IAAI,OAAO,CAAC,aAAa,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;QAChE,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC1D,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAA;IAChD,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAA;IAChD,IAAI,GAAG,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAC/B,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,MAAM,SAAS,GAA0B,EAAE,CAAA;IAC3C,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAA;IAC5C,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,OAAO,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAA;QAC3D,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,MAAK;QAEvB,MAAM,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;QAC/B,MAAM,UAAU,GAGX,EAAE,CAAA;QAEP,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QACpD,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;QACvF,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;QACtD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1F,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;QACvD,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,OAAO,GAAG,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;QAC5F,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,UAAU,GAAG,KAAK,CAAA;YAClB,SAAQ;QACV,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAA;QAC1D,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;QAC1B,SAAS,CAAC,IAAI,CAAC;YACb,KAAK;YACL,GAAG,EAAE,IAAI,CAAC,YAAY;YACtB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC;YACzC,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAA;QACF,UAAU,GAAG,IAAI,CAAC,YAAY,CAAA;IAChC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAA;IAC5C,IAAI,OAAO,GAAG,IAAI,CAAA;IAClB,OAAO,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;QAE/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;QAE1D,MAAM,IAAI,GAAa,EAAE,CAAA;QACzB,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;QAC/D,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAClE,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAElE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;QACrE,OAAO,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAA;IAChE,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,OAAgB;IAChE,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAA8B,EAAE;IAC/D,MAAM,EACJ,KAAK,GAAG,UAAU,EAClB,QAAQ,GAAG,EAAE,GAAG,MAAM,EACtB,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5C,aAAa,GAAG,KAAK,EACrB,KAAK,GAAG,CAAC,EACT,UAAU,GACX,GAAG,OAAO,CAAA;IACX,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QAC9D,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAA;IAEzC,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,OAAsB,EAAQ,EAAE;QACxD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACpB,KAAK,CAAC,GAAG,mBAAmB,GAAG,EAAE,KAAK,UAAU,GAAG,GAAG,EAAE,CAAC,CAAA;YACzD,OAAM;QACR,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC/D,KAAK,CAAC,GAAG,mBAAmB,GAAG,EAAE,IAAI,OAAO,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC,CAAA;IACrE,CAAC,CAAA;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QACb,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACZ,CAAC,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IACxC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAEd,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA;QACtD,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACtB,CAAC,EAAE,GAAG,CAAC,CAAA;IACP,KAAK,CAAC,KAAK,EAAE,EAAE,CAAA;IAEf,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,OAAO,GAAG,EAAE;QACV,IAAI,OAAO;YAAE,OAAM;QACnB,OAAO,GAAG,IAAI,CAAA;QACd,aAAa,CAAC,KAAK,CAAC,CAAA;QACpB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACZ,CAAC,CAAA;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,2BAA2B,CACzC,UAAwC,EAAE;IAE1C,uGAAuG;IACvG,MAAM,EACJ,KAAK,GAAG,UAAU,EAClB,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5C,UAAU,EACV,YAAY,GAAG,CAAC,EAChB,YAAY,EACZ,YAAY,GAAG,sBAAsB,EACrC,eAAe,GAAG,KAAK,GACxB,GAAG,OAAO,CAAA;IAEX,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QAC9D,wGAAwG;QACxG,OAAO;YACL,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;YAC1B,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;YACpB,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC;YACnB,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;YACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;YACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;YACf,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;SAClB,CAAA;IACH,CAAC;IAED,+CAA+C;IAC/C,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAA;IAEzC,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAU,EAAE;QACxD,IAAI,OAAO,YAAY,KAAK,UAAU;YAAE,OAAO,YAAY,CAAC,SAAS,CAAC,CAAA;QACtE,IAAI,OAAO,YAAY,KAAK,QAAQ;YAAE,OAAO,YAAY,CAAA;QACzD,OAAO,GAAG,SAAS,YAAY,CAAA;IACjC,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAU,EAAE,CACnD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAEjD,IAAI,gBAAgB,GAAG,KAAK,CAAA;IAC5B,IAAI,kBAAkB,GAAkB,IAAI,CAAA;IAC5C,IAAI,gBAAgB,GAAkB,IAAI,CAAA;IAC1C,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,UAAU,GAAG,KAAK,CAAA;IAEtB,IAAI,aAAa,GAAG,KAAK,CAAA;IACzB,IAAI,eAAe,GAAG,CAAC,CAAA;IACvB,IAAI,YAAY,GAAoC,eAAe,CAAA;IAEnE,IAAI,UAAU,GAA0B,IAAI,CAAA;IAC5C,IAAI,UAAU,GAA0B,IAAI,CAAA;IAC5C,IAAI,YAAY,GAAG,IAAI,CAAA;IAEvB,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,YAAY,CAAC,UAAU,CAAC,CAAA;YACxB,UAAU,GAAG,IAAI,CAAA;QACnB,CAAC;IACH,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,eAAe,EAAE,CAAA;QACjB,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,YAAY,CAAC,UAAU,CAAC,CAAA;YACxB,UAAU,GAAG,IAAI,CAAA;QACnB,CAAC;IACH,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,IAAI,CAAC,YAAY,IAAI,YAAY,IAAI,CAAC;YAAE,OAAM;QAC9C,IAAI,UAAU,KAAK,IAAI;YAAE,YAAY,CAAC,UAAU,CAAC,CAAA;QACjD,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YAC3B,UAAU,GAAG,IAAI,CAAA;YACjB,IAAI,CAAC,YAAY;gBAAE,OAAM;YACzB,MAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAA;YACrD,MAAM,OAAO,GAAG,YAAY,KAAK,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAA;YACvE,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;QACpC,CAAC,EAAE,YAAY,CAAC,CAAA;QAChB,UAAU,CAAC,KAAK,EAAE,EAAE,CAAA;IACtB,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;YACtB,KAAK,EAAE,CAAA;YACP,OAAM;QACR,CAAC;QACD,IAAI,UAAU,KAAK,IAAI;YAAE,YAAY,CAAC,UAAU,CAAC,CAAA;QACjD,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YAC3B,UAAU,GAAG,IAAI,CAAA;YACjB,KAAK,EAAE,CAAA;QACT,CAAC,EAAE,YAAY,CAAC,CAAA;QAChB,UAAU,CAAC,KAAK,EAAE,EAAE,CAAA;IACtB,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,OAAsB,EAAE,SAAiB,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE;QACvF,sGAAsG;QACtG,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;QAC3C,MAAM,iBAAiB,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,YAAY,GAAG,KAAK,KAAK,gBAAgB,CAAA;QAC/C,MAAM,YAAY,GAAG,UAAU,KAAK,gBAAgB,CAAA;QACpD,MAAM,cAAc,GAAG,iBAAiB,KAAK,kBAAkB,CAAA;QAC/D,MAAM,cAAc,GAAG,GAAG,GAAG,UAAU,GAAG,4BAA4B,CAAA;QAEtE,IAAI,UAAU,GAAG,KAAK,IAAI,CAAC,UAAU,IAAI,YAAY,IAAI,YAAY,CAAA;QACrE,IAAI,CAAC,UAAU,IAAI,cAAc,EAAE,CAAC;YAClC,UAAU,GAAG,CAAC,cAAc,CAAA;QAC9B,CAAC;QACD,IAAI,CAAC,UAAU;YAAE,OAAM;QAEvB,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;YAC9B,KAAK,CAAC,GAAG,mBAAmB,GAAG,KAAK,KAAK,UAAU,GAAG,GAAG,EAAE,CAAC,CAAA;QAC9D,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,mBAAmB,GAAG,KAAK,IAAI,iBAAiB,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC,CAAA;QAClF,CAAC;QACD,gBAAgB,GAAG,UAAU,CAAA;QAC7B,kBAAkB,GAAG,iBAAiB,CAAA;QACtC,gBAAgB,GAAG,KAAK,CAAA;QACxB,UAAU,GAAG,GAAG,CAAA;QAChB,UAAU,GAAG,IAAI,CAAA;IACnB,CAAC,CAAA;IAED,wFAAwF;IACxF,MAAM,UAAU,GAAG,CACjB,SAAiB,EACjB,IAAqC,EACrC,OAAsB,EACtB,mBAAmB,GAAG,IAAI,EAC1B,EAAE;QACF,aAAa,GAAG,SAAS,CAAA;QACzB,YAAY,GAAG,IAAI,CAAA;QACnB,eAAe,GAAG,OAAO,IAAI,CAAC,CAAA;QAC9B,IAAI,mBAAmB,EAAE,CAAC;YACxB,aAAa,EAAE,CAAA;QACjB,CAAC;IACH,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,EAAE;QAC7C,YAAY,GAAG,IAAI,CAAA;QACnB,UAAU,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,CAAC,CAAA;QAC5C,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;IAC1B,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAE,OAAe,EAAE,EAAE;QACxD,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAC5C,YAAY,GAAG,IAAI,CAAA;QACnB,UAAU,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;QAChD,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;IAChC,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,SAAiB,EAAE,EAAE;QACtC,YAAY,GAAG,KAAK,CAAA;QACpB,MAAM,OAAO,GAAG,YAAY,KAAK,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAA;QACvE,UAAU,CACR,SAAS,EACT,YAAY,EACZ,YAAY,KAAK,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EACvD,KAAK,CACN,CAAA;QACD,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,YAAY,GAAG,KAAK,CAAA;QACpB,WAAW,EAAE,CAAA;QACb,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;IACjC,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,CAAC,SAAkB,EAAE,EAAE;QAClC,MAAM,UAAU,GAAG,SAAS,IAAI,aAAa,CAAA;QAC7C,YAAY,GAAG,KAAK,CAAA;QACpB,eAAe,EAAE,CAAA;QACjB,UAAU,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;QACjD,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;QAC9B,aAAa,EAAE,CAAA;IACjB,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,CAAC,SAAkB,EAAE,EAAE;QAClC,MAAM,UAAU,GAAG,SAAS,IAAI,aAAa,CAAA;QAC7C,MAAM,OAAO,GAAG,YAAY,KAAK,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAA;QACvE,YAAY,GAAG,KAAK,CAAA;QACpB,eAAe,EAAE,CAAA;QACjB,UAAU,CACR,UAAU,EACV,YAAY,EACZ,YAAY,KAAK,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EACvD,KAAK,CACN,CAAA;QACD,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;QAClC,aAAa,EAAE,CAAA;IACjB,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,KAAK,EAAE,CAAA;IACT,CAAC,CAAA;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,WAAW,EAAE,CAAA;QACb,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACjC,CAAC;IACH,CAAC,CAAA;IAED,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAChF,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { createOscProgressController, findOscProgressSequences, OSC_PROGRESS_BEL, OSC_PROGRESS_C1_ST, OSC_PROGRESS_PREFIX, OSC_PROGRESS_ST, type OscProgressController, type OscProgressOptions, type OscProgressSequence, type OscProgressSupportOptions, type OscProgressTerminator, sanitizeLabel, sanitizeOscProgress, startOscProgress, stripOscProgress, supportsOscProgress, } from './oscProgress.js';
|
|
1
|
+
export { createOscProgressController, findOscProgressSequences, OSC_PROGRESS_BEL, OSC_PROGRESS_C1_ST, OSC_PROGRESS_PREFIX, OSC_PROGRESS_ST, type OscProgressController, type OscProgressControllerOptions, type OscProgressOptions, type OscProgressReporter, type OscProgressSequence, type OscProgressSupportOptions, type OscProgressTerminator, sanitizeLabel, sanitizeOscProgress, startOscProgress, stripOscProgress, supportsOscProgress, } from './oscProgress.js';
|
|
@@ -54,6 +54,22 @@ export interface OscProgressOptions extends OscProgressSupportOptions {
|
|
|
54
54
|
/** OSC terminator to use. `st` = ESC \\, `bel` = BEL. */
|
|
55
55
|
terminator?: OscProgressTerminator;
|
|
56
56
|
}
|
|
57
|
+
export interface OscProgressControllerOptions extends OscProgressOptions {
|
|
58
|
+
/**
|
|
59
|
+
* Emit a stalled state when no updates arrive within this window.
|
|
60
|
+
* Set to 0 to disable (default).
|
|
61
|
+
*/
|
|
62
|
+
stallAfterMs?: number;
|
|
63
|
+
/** Customize the stalled label or formatter. Defaults to appending " (stalled)". */
|
|
64
|
+
stalledLabel?: string | ((label: string) => string);
|
|
65
|
+
/**
|
|
66
|
+
* Delay (ms) between done/fail and clearing the progress indicator.
|
|
67
|
+
* Set to 0 for immediate clear.
|
|
68
|
+
*/
|
|
69
|
+
clearDelayMs?: number;
|
|
70
|
+
/** Clear progress on process exit. */
|
|
71
|
+
autoClearOnExit?: boolean;
|
|
72
|
+
}
|
|
57
73
|
export interface OscProgressSequence {
|
|
58
74
|
/** Inclusive start index in the input string. */
|
|
59
75
|
start: number;
|
|
@@ -72,6 +88,16 @@ export type OscProgressController = {
|
|
|
72
88
|
/** Clear/hide the progress indicator. */
|
|
73
89
|
clear: () => void;
|
|
74
90
|
};
|
|
91
|
+
export type OscProgressReporter = OscProgressController & {
|
|
92
|
+
/** Emit a paused/stalled progress indicator (state=4). */
|
|
93
|
+
setPaused: (label: string) => void;
|
|
94
|
+
/** Emit 100% then clear after the configured delay. */
|
|
95
|
+
done: (label?: string) => void;
|
|
96
|
+
/** Emit error state then clear after the configured delay. */
|
|
97
|
+
fail: (label?: string) => void;
|
|
98
|
+
/** Dispose timers/listeners created by this controller. */
|
|
99
|
+
dispose: () => void;
|
|
100
|
+
};
|
|
75
101
|
/**
|
|
76
102
|
* Sanitizes a label/payload so it can't break the surrounding OSC sequence.
|
|
77
103
|
* Removes escape chars and common OSC terminators; trims whitespace.
|
|
@@ -135,4 +161,4 @@ export declare function startOscProgress(options?: OscProgressOptions): () => vo
|
|
|
135
161
|
* - `setPercent(label, percent)` emits `state=1` with a clamped integer percent
|
|
136
162
|
* - `clear()` emits `state=0` using the last label
|
|
137
163
|
*/
|
|
138
|
-
export declare function createOscProgressController(options?:
|
|
164
|
+
export declare function createOscProgressController(options?: OscProgressControllerOptions): OscProgressReporter;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "osc-progress",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Tiny TypeScript helper for OSC 9;4 terminal progress sequences.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Peter Steinberger",
|
|
@@ -41,12 +41,15 @@
|
|
|
41
41
|
"node": ">=20"
|
|
42
42
|
},
|
|
43
43
|
"sideEffects": false,
|
|
44
|
-
"
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@biomejs/biome": "^2.3.10",
|
|
46
|
+
"@types/node": "^25.0.3",
|
|
47
|
+
"@vitest/coverage-v8": "^4.0.16",
|
|
48
|
+
"typescript": "^5.9.3",
|
|
49
|
+
"vitest": "^4.0.16"
|
|
50
|
+
},
|
|
45
51
|
"scripts": {
|
|
46
52
|
"build": "tsc -p tsconfig.build.json",
|
|
47
|
-
"prepare": "pnpm build",
|
|
48
|
-
"prepack": "pnpm build",
|
|
49
|
-
"prepublishOnly": "pnpm check",
|
|
50
53
|
"typecheck": "tsc -p tsconfig.build.json --noEmit",
|
|
51
54
|
"format": "biome format --write .",
|
|
52
55
|
"lint": "biome check .",
|
|
@@ -54,12 +57,5 @@
|
|
|
54
57
|
"test": "pnpm build && vitest run",
|
|
55
58
|
"test:coverage": "pnpm build && vitest run --coverage",
|
|
56
59
|
"check": "pnpm lint && pnpm test:coverage"
|
|
57
|
-
},
|
|
58
|
-
"devDependencies": {
|
|
59
|
-
"@biomejs/biome": "^2.3.10",
|
|
60
|
-
"@types/node": "^25.0.3",
|
|
61
|
-
"@vitest/coverage-v8": "^4.0.16",
|
|
62
|
-
"typescript": "^5.9.3",
|
|
63
|
-
"vitest": "^4.0.16"
|
|
64
60
|
}
|
|
65
|
-
}
|
|
61
|
+
}
|