osc-progress 0.3.0 → 0.3.2

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 CHANGED
@@ -1,23 +1,47 @@
1
1
  # Changelog
2
+
2
3
  All notable changes to this project are documented in this file.
3
4
 
4
- ## 0.3.0 - Unreleased
5
+ ## 0.3.2 - 2026-07-04
6
+
7
+ ### Fixed
8
+
9
+ - Match default TTY detection to the default stderr writer and make indeterminate stop calls idempotent.
10
+ - Cancel delayed completion clears when a controller starts new progress and clamp `NaN` percentages to a valid frame.
11
+ - Strip all C0, C1, and DEL control bytes from labels while preserving printable punctuation.
12
+
13
+ ## 0.3.1 - 2026-06-10
14
+
15
+ ### Fixed
16
+
17
+ - Add a package export `default` condition so CJS-style resolvers can find the ESM entrypoint. (`#8`, thanks `@grimmjoww`)
18
+ - Strip control characters from OSC progress labels so labels cannot break emitted progress sequences. (`#15`, thanks `@devYRPauli`)
19
+
20
+ ## 0.3.0 - 2026-01-20
21
+
5
22
  ### Added
23
+
6
24
  - Throttled/deduped OSC progress updates (default).
7
25
  - Stalled/paused state support (`setPaused`, `stallAfterMs`).
8
26
  - Completion/error helpers (`done`, `fail`) with delayed clear (`clearDelayMs`).
9
27
  - Optional auto-clear on process exit (`autoClearOnExit`).
10
28
  - Controller cleanup via `dispose()`.
29
+
11
30
  ### Changed
31
+
12
32
  - `createOscProgressController` now returns an extended controller with pause/done/fail helpers.
13
33
  - Controller updates are throttled by default (behavior change).
14
34
 
15
35
  ## 0.2.0 - 2025-12-25
36
+
16
37
  ### Added
38
+
17
39
  - `createOscProgressController` for stateful determinate/indeterminate updates.
18
40
 
19
41
  ## 0.1.0 - 2025-12-19
42
+
20
43
  ### Added
44
+
21
45
  - OSC 9;4 progress emitter (`startOscProgress`) with determinate (`0% → 99%`) and indeterminate modes.
22
46
  - Terminal support detection (`supportsOscProgress`) with safe defaults (TTY-only) and heuristics for Ghostty / WezTerm / Windows Terminal.
23
47
  - Environment overrides (`force`/`disabled` and `forceEnvVar`/`disableEnvVar`).
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- \g<1>2026 Peter Steinberger
3
+ Copyright (c) 2026 Peter Steinberger
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -11,37 +11,37 @@ pnpm add osc-progress
11
11
  ## Usage
12
12
 
13
13
  ```ts
14
- import process from 'node:process'
15
- import { startOscProgress } from 'osc-progress'
14
+ import process from "node:process";
15
+ import { startOscProgress } from "osc-progress";
16
16
 
17
17
  const stop = startOscProgress({
18
- label: 'Fetching',
18
+ label: "Fetching",
19
19
  write: (chunk) => process.stderr.write(chunk),
20
20
  env: process.env,
21
21
  isTty: process.stderr.isTTY,
22
- })
22
+ });
23
23
 
24
24
  // ...do work...
25
25
 
26
- stop()
26
+ stop();
27
27
  ```
28
28
 
29
29
  Indeterminate (spinner-like) mode:
30
30
 
31
31
  ```ts
32
- import { startOscProgress } from 'osc-progress'
32
+ import { startOscProgress } from "osc-progress";
33
33
 
34
- const stop = startOscProgress({ label: 'Waiting', indeterminate: true })
34
+ const stop = startOscProgress({ label: "Waiting", indeterminate: true });
35
35
  // ...
36
- stop()
36
+ stop();
37
37
  ```
38
38
 
39
39
  Strip OSC progress from stored logs:
40
40
 
41
41
  ```ts
42
- import { sanitizeOscProgress } from 'osc-progress'
42
+ import { sanitizeOscProgress } from "osc-progress";
43
43
 
44
- const clean = sanitizeOscProgress(text, /*keepOsc*/ process.stdout.isTTY)
44
+ const clean = sanitizeOscProgress(text, /*keepOsc*/ process.stdout.isTTY);
45
45
  ```
46
46
 
47
47
  ## API
@@ -51,10 +51,12 @@ const clean = sanitizeOscProgress(text, /*keepOsc*/ process.stdout.isTTY)
51
51
  Returns `true` when emitting OSC 9;4 progress makes sense.
52
52
 
53
53
  Heuristics:
54
+
54
55
  - requires a TTY
55
56
  - enables for `TERM_PROGRAM=ghostty*`, `TERM_PROGRAM=wezterm*`, or `WT_SESSION` (Windows Terminal)
56
57
 
57
58
  Optional overrides:
59
+
58
60
  - `options.disabled` / `options.force`
59
61
  - `options.disableEnvVar` / `options.forceEnvVar` (expects `= "1"`)
60
62
 
@@ -63,13 +65,16 @@ Optional overrides:
63
65
  Starts a best-effort progress indicator and returns `stop(): void`.
64
66
 
65
67
  Notes:
68
+
66
69
  - `label` is appended as extra payload; **not part of the canonical OSC 9;4 spec** (many terminals ignore it, some show it).
70
+ - default output and TTY detection both use stderr.
67
71
  - default is a timer-driven `0% → 99%` progression (never completes by itself).
68
72
  - `terminator` defaults to `st` (`ESC \\`); `bel` is also supported.
69
73
 
70
74
  ### `createOscProgressController(options?)`
71
75
 
72
76
  Returns a small stateful controller:
77
+
73
78
  - `setIndeterminate(label)`
74
79
  - `setPercent(label, percent)`
75
80
  - `setPaused(label)` (state `4`)
@@ -81,6 +86,7 @@ Returns a small stateful controller:
81
86
  Use this when you already have real progress (bytes/total, seconds/total) and want determinate terminal progress instead of the timer-based ramp.
82
87
 
83
88
  Notes:
89
+
84
90
  - returns no-op methods when `supportsOscProgress(...)` is false
85
91
  - `percent` is rounded and clamped to `0..100`
86
92
  - `clear()` uses the last label (or the initial `options.label` if nothing was set yet)
@@ -90,8 +96,8 @@ Notes:
90
96
  - `autoClearOnExit` clears on process exit
91
97
 
92
98
  ```ts
93
- import process from 'node:process'
94
- import { createOscProgressController } from 'osc-progress'
99
+ import process from "node:process";
100
+ import { createOscProgressController } from "osc-progress";
95
101
 
96
102
  const osc = createOscProgressController({
97
103
  env: process.env,
@@ -100,12 +106,12 @@ const osc = createOscProgressController({
100
106
  stallAfterMs: 10_000,
101
107
  clearDelayMs: 200,
102
108
  autoClearOnExit: true,
103
- })
109
+ });
104
110
 
105
- osc.setIndeterminate('Connecting')
106
- osc.setPercent('Downloading', 12)
107
- osc.setPercent('Downloading', 67)
108
- osc.done()
111
+ osc.setIndeterminate("Connecting");
112
+ osc.setPercent("Downloading", 12);
113
+ osc.setPercent("Downloading", 67);
114
+ osc.done();
109
115
  ```
110
116
 
111
117
  #### Controller options
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { createOscProgressController, findOscProgressSequences, OSC_PROGRESS_BEL, OSC_PROGRESS_C1_ST, OSC_PROGRESS_PREFIX, OSC_PROGRESS_ST, 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, sanitizeLabel, sanitizeOscProgress, startOscProgress, stripOscProgress, supportsOscProgress, } from "./oscProgress.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -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,EAQf,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,kBAAkB,CAAA"}
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,CAAC"}
@@ -1,4 +1,4 @@
1
- import process from 'node:process';
1
+ import process from "node:process";
2
2
  /**
3
3
  * OSC 9;4 progress prefix (`ESC ] 9 ; 4 ;`).
4
4
  *
@@ -6,29 +6,33 @@ import process from 'node:process';
6
6
  * - `ESC ] 9;4;<state>;<percent>;<payload> ST`
7
7
  * - `ESC ] 9;4;<state>;;<payload> ST` (indeterminate)
8
8
  */
9
- export const OSC_PROGRESS_PREFIX = '\u001b]9;4;';
9
+ export const OSC_PROGRESS_PREFIX = "\u001b]9;4;";
10
10
  /** String Terminator (ST): `ESC \\` */
11
- export const OSC_PROGRESS_ST = '\u001b\\';
11
+ export const OSC_PROGRESS_ST = "\u001b\\";
12
12
  /** Bell (BEL): `0x07` */
13
- export const OSC_PROGRESS_BEL = '\u0007';
13
+ export const OSC_PROGRESS_BEL = "\u0007";
14
14
  /** C1 String Terminator (ST): `0x9c` */
15
- export const OSC_PROGRESS_C1_ST = '\u009c';
15
+ export const OSC_PROGRESS_C1_ST = "\u009c";
16
16
  const DEFAULT_THROTTLE_INTERVAL_MS = 150;
17
17
  const DEFAULT_CLEAR_DELAY_MS = 150;
18
18
  function resolveTerminator(terminator) {
19
- return terminator === 'bel' ? OSC_PROGRESS_BEL : OSC_PROGRESS_ST;
19
+ return terminator === "bel" ? OSC_PROGRESS_BEL : OSC_PROGRESS_ST;
20
20
  }
21
21
  /**
22
22
  * Sanitizes a label/payload so it can't break the surrounding OSC sequence.
23
23
  * Removes escape chars and common OSC terminators; trims whitespace.
24
24
  */
25
25
  export function sanitizeLabel(label) {
26
- const withoutSt = label.replaceAll(OSC_PROGRESS_ST, '');
27
- const withoutEscape = withoutSt.split('\u001b').join('');
28
- const withoutTerminators = withoutEscape
29
- .replaceAll(OSC_PROGRESS_BEL, '')
30
- .replaceAll(OSC_PROGRESS_C1_ST, '');
31
- return withoutTerminators.replaceAll(']', '').trim();
26
+ const withoutSt = label.replaceAll(OSC_PROGRESS_ST, "");
27
+ // Strip C0/C1 controls and DEL. This removes every OSC introducer/terminator
28
+ // while preserving printable payload characters such as closing brackets.
29
+ const withoutControls = [...withoutSt]
30
+ .filter((ch) => {
31
+ const code = ch.codePointAt(0) ?? 0;
32
+ return code > 0x1f && code !== 0x7f && !(code >= 0x80 && code <= 0x9f);
33
+ })
34
+ .join("");
35
+ return withoutControls.trim();
32
36
  }
33
37
  /**
34
38
  * Best-effort check whether OSC 9;4 progress output is likely to work.
@@ -41,23 +45,23 @@ export function sanitizeLabel(label) {
41
45
  * - `options.force` / `options.disabled`
42
46
  * - `options.forceEnvVar` / `options.disableEnvVar` (expects value `"1"`)
43
47
  */
44
- export function supportsOscProgress(env = process.env, isTty = process.stdout.isTTY, options = {}) {
48
+ export function supportsOscProgress(env = process.env, isTty = process.stderr.isTTY, options = {}) {
45
49
  if (!isTty)
46
50
  return false;
47
51
  if (options.disabled)
48
52
  return false;
49
53
  if (options.force)
50
54
  return true;
51
- if (options.disableEnvVar && env[options.disableEnvVar] === '1') {
55
+ if (options.disableEnvVar && env[options.disableEnvVar] === "1") {
52
56
  return false;
53
57
  }
54
- if (options.forceEnvVar && env[options.forceEnvVar] === '1') {
58
+ if (options.forceEnvVar && env[options.forceEnvVar] === "1") {
55
59
  return true;
56
60
  }
57
- const termProgram = (env.TERM_PROGRAM ?? '').toLowerCase();
58
- if (termProgram.includes('ghostty'))
61
+ const termProgram = (env.TERM_PROGRAM ?? "").toLowerCase();
62
+ if (termProgram.includes("ghostty"))
59
63
  return true;
60
- if (termProgram.includes('wezterm'))
64
+ if (termProgram.includes("wezterm"))
61
65
  return true;
62
66
  if (env.WT_SESSION)
63
67
  return true;
@@ -85,15 +89,15 @@ export function findOscProgressSequences(text) {
85
89
  const candidates = [];
86
90
  const stStart = text.indexOf(OSC_PROGRESS_ST, after);
87
91
  if (stStart !== -1) {
88
- candidates.push({ endExclusive: stStart + OSC_PROGRESS_ST.length, terminator: 'st' });
92
+ candidates.push({ endExclusive: stStart + OSC_PROGRESS_ST.length, terminator: "st" });
89
93
  }
90
94
  const belStart = text.indexOf(OSC_PROGRESS_BEL, after);
91
95
  if (belStart !== -1) {
92
- candidates.push({ endExclusive: belStart + OSC_PROGRESS_BEL.length, terminator: 'bel' });
96
+ candidates.push({ endExclusive: belStart + OSC_PROGRESS_BEL.length, terminator: "bel" });
93
97
  }
94
98
  const c1Start = text.indexOf(OSC_PROGRESS_C1_ST, after);
95
99
  if (c1Start !== -1) {
96
- candidates.push({ endExclusive: c1Start + OSC_PROGRESS_C1_ST.length, terminator: 'c1st' });
100
+ candidates.push({ endExclusive: c1Start + OSC_PROGRESS_C1_ST.length, terminator: "c1st" });
97
101
  }
98
102
  if (candidates.length === 0) {
99
103
  searchFrom = after;
@@ -156,12 +160,13 @@ export function sanitizeOscProgress(text, keepOsc) {
156
160
  * - indeterminate mode emits `state=3` and `stop()` clears progress
157
161
  */
158
162
  export function startOscProgress(options = {}) {
159
- const { label = 'Working…', targetMs = 10 * 60_000, write = (text) => process.stderr.write(text), indeterminate = false, state = 1, terminator, } = options;
163
+ const { label = "Working…", targetMs = 10 * 60_000, write = (text) => process.stderr.write(text), indeterminate = false, state = 1, terminator, } = options;
160
164
  if (!supportsOscProgress(options.env, options.isTty, options)) {
161
165
  return () => { };
162
166
  }
163
167
  const cleanLabel = sanitizeLabel(label);
164
168
  const end = resolveTerminator(terminator);
169
+ let stopped = false;
165
170
  const send = (st, percent) => {
166
171
  if (percent == null) {
167
172
  write(`${OSC_PROGRESS_PREFIX}${st};;${cleanLabel}${end}`);
@@ -173,6 +178,9 @@ export function startOscProgress(options = {}) {
173
178
  if (indeterminate) {
174
179
  send(3, null);
175
180
  return () => {
181
+ if (stopped)
182
+ return;
183
+ stopped = true;
176
184
  send(0, 0);
177
185
  };
178
186
  }
@@ -185,7 +193,6 @@ export function startOscProgress(options = {}) {
185
193
  send(state, percent);
186
194
  }, 900);
187
195
  timer.unref?.();
188
- let stopped = false;
189
196
  return () => {
190
197
  if (stopped)
191
198
  return;
@@ -208,7 +215,7 @@ export function startOscProgress(options = {}) {
208
215
  */
209
216
  export function createOscProgressController(options = {}) {
210
217
  // Default to stderr: progress belongs with other interactive output and avoids polluting stdout pipes.
211
- const { label = 'Working…', write = (text) => process.stderr.write(text), terminator, stallAfterMs = 0, stalledLabel, clearDelayMs = DEFAULT_CLEAR_DELAY_MS, autoClearOnExit = false, } = options;
218
+ const { label = "Working…", write = (text) => process.stderr.write(text), terminator, stallAfterMs = 0, stalledLabel, clearDelayMs = DEFAULT_CLEAR_DELAY_MS, autoClearOnExit = false, } = options;
212
219
  if (!supportsOscProgress(options.env, options.isTty, options)) {
213
220
  // No-op controller: callers can keep their code linear and still be safe in unsupported terminals/logs.
214
221
  return {
@@ -224,13 +231,17 @@ export function createOscProgressController(options = {}) {
224
231
  // Resolve once; avoids branching in hot paths.
225
232
  const end = resolveTerminator(terminator);
226
233
  const resolveStalledLabel = (baseLabel) => {
227
- if (typeof stalledLabel === 'function')
234
+ if (typeof stalledLabel === "function")
228
235
  return stalledLabel(baseLabel);
229
- if (typeof stalledLabel === 'string')
236
+ if (typeof stalledLabel === "string")
230
237
  return stalledLabel;
231
238
  return `${baseLabel} (stalled)`;
232
239
  };
233
- const normalizePercent = (percent) => Math.max(0, Math.min(100, Math.round(percent)));
240
+ const normalizePercent = (percent) => {
241
+ if (Number.isNaN(percent))
242
+ return 0;
243
+ return Math.max(0, Math.min(100, Math.round(percent)));
244
+ };
234
245
  let lastEmittedLabel = label;
235
246
  let lastEmittedPercent = null;
236
247
  let lastEmittedState = null;
@@ -238,10 +249,17 @@ export function createOscProgressController(options = {}) {
238
249
  let hasEmitted = false;
239
250
  let lastSeenLabel = label;
240
251
  let lastSeenPercent = 0;
241
- let lastSeenMode = 'indeterminate';
252
+ let lastSeenMode = "indeterminate";
242
253
  let stallTimer = null;
243
254
  let clearTimer = null;
244
255
  let stallEnabled = true;
256
+ const cancelPendingClear = () => {
257
+ if (clearTimer === null)
258
+ return false;
259
+ clearTimeout(clearTimer);
260
+ clearTimer = null;
261
+ return true;
262
+ };
245
263
  const clearStallTimer = () => {
246
264
  if (stallTimer !== null) {
247
265
  clearTimeout(stallTimer);
@@ -250,10 +268,7 @@ export function createOscProgressController(options = {}) {
250
268
  };
251
269
  const clearTimers = () => {
252
270
  clearStallTimer();
253
- if (clearTimer !== null) {
254
- clearTimeout(clearTimer);
255
- clearTimer = null;
256
- }
271
+ cancelPendingClear();
257
272
  };
258
273
  const scheduleStall = () => {
259
274
  if (!stallAfterMs || stallAfterMs <= 0)
@@ -265,7 +280,7 @@ export function createOscProgressController(options = {}) {
265
280
  if (!stallEnabled)
266
281
  return;
267
282
  const labelToUse = resolveStalledLabel(lastSeenLabel);
268
- const percent = lastSeenMode === 'determinate' ? lastSeenPercent : null;
283
+ const percent = lastSeenMode === "determinate" ? lastSeenPercent : null;
269
284
  send(4, percent, labelToUse, true);
270
285
  }, stallAfterMs);
271
286
  stallTimer.unref?.();
@@ -320,20 +335,23 @@ export function createOscProgressController(options = {}) {
320
335
  }
321
336
  };
322
337
  const setIndeterminate = (nextLabel) => {
338
+ const resumed = cancelPendingClear();
323
339
  stallEnabled = true;
324
- updateSeen(nextLabel, 'indeterminate', null);
325
- send(3, null, nextLabel);
340
+ updateSeen(nextLabel, "indeterminate", null);
341
+ send(3, null, nextLabel, resumed);
326
342
  };
327
343
  const setPercent = (nextLabel, percent) => {
344
+ const resumed = cancelPendingClear();
328
345
  const normalized = normalizePercent(percent);
329
346
  stallEnabled = true;
330
- updateSeen(nextLabel, 'determinate', normalized);
331
- send(1, normalized, nextLabel);
347
+ updateSeen(nextLabel, "determinate", normalized);
348
+ send(1, normalized, nextLabel, resumed);
332
349
  };
333
350
  const setPaused = (nextLabel) => {
351
+ cancelPendingClear();
334
352
  stallEnabled = false;
335
- const percent = lastSeenMode === 'determinate' ? lastSeenPercent : null;
336
- updateSeen(nextLabel, lastSeenMode, lastSeenMode === 'determinate' ? lastSeenPercent : null, false);
353
+ const percent = lastSeenMode === "determinate" ? lastSeenPercent : null;
354
+ updateSeen(nextLabel, lastSeenMode, lastSeenMode === "determinate" ? lastSeenPercent : null, false);
337
355
  send(4, percent, nextLabel, true);
338
356
  };
339
357
  const clear = () => {
@@ -345,16 +363,16 @@ export function createOscProgressController(options = {}) {
345
363
  const labelToUse = nextLabel ?? lastSeenLabel;
346
364
  stallEnabled = false;
347
365
  clearStallTimer();
348
- updateSeen(labelToUse, 'determinate', 100, false);
366
+ updateSeen(labelToUse, "determinate", 100, false);
349
367
  send(1, 100, labelToUse, true);
350
368
  scheduleClear();
351
369
  };
352
370
  const fail = (nextLabel) => {
353
371
  const labelToUse = nextLabel ?? lastSeenLabel;
354
- const percent = lastSeenMode === 'determinate' ? lastSeenPercent : null;
372
+ const percent = lastSeenMode === "determinate" ? lastSeenPercent : null;
355
373
  stallEnabled = false;
356
374
  clearStallTimer();
357
- updateSeen(labelToUse, lastSeenMode, lastSeenMode === 'determinate' ? lastSeenPercent : null, false);
375
+ updateSeen(labelToUse, lastSeenMode, lastSeenMode === "determinate" ? lastSeenPercent : null, false);
358
376
  send(2, percent, labelToUse, true);
359
377
  scheduleClear();
360
378
  };
@@ -362,12 +380,12 @@ export function createOscProgressController(options = {}) {
362
380
  clear();
363
381
  };
364
382
  if (autoClearOnExit) {
365
- process.once('exit', handleExit);
383
+ process.once("exit", handleExit);
366
384
  }
367
385
  const dispose = () => {
368
386
  clearTimers();
369
387
  if (autoClearOnExit) {
370
- process.off('exit', handleExit);
388
+ process.off("exit", handleExit);
371
389
  }
372
390
  };
373
391
  return { setIndeterminate, setPercent, setPaused, done, fail, clear, dispose };
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"oscProgress.js","sourceRoot":"","sources":["../../src/oscProgress.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
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';
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";
@@ -13,7 +13,7 @@ export declare const OSC_PROGRESS_BEL = "\u0007";
13
13
  /** C1 String Terminator (ST): `0x9c` */
14
14
  export declare const OSC_PROGRESS_C1_ST = "\u009C";
15
15
  /** How to terminate the OSC sequence when emitting. */
16
- export type OscProgressTerminator = 'st' | 'bel';
16
+ export type OscProgressTerminator = "st" | "bel";
17
17
  export interface OscProgressSupportOptions {
18
18
  /** Force support on/off, overriding env heuristics. */
19
19
  force?: boolean;
@@ -38,7 +38,7 @@ export interface OscProgressOptions extends OscProgressSupportOptions {
38
38
  write?: (data: string) => void;
39
39
  /** Environment lookup (defaults to `process.env`). */
40
40
  env?: NodeJS.ProcessEnv;
41
- /** TTY flag (defaults to `process.stdout.isTTY`). */
41
+ /** TTY flag (defaults to `process.stderr.isTTY`, matching the default writer). */
42
42
  isTty?: boolean;
43
43
  /** When true, emit an indeterminate progress indicator (no percentage). */
44
44
  indeterminate?: boolean;
@@ -78,7 +78,7 @@ export interface OscProgressSequence {
78
78
  /** Raw substring that matched. */
79
79
  raw: string;
80
80
  /** Which terminator was encountered. */
81
- terminator: 'st' | 'bel' | 'c1st';
81
+ terminator: "st" | "bel" | "c1st";
82
82
  }
83
83
  export type OscProgressController = {
84
84
  /** Emit an indeterminate progress indicator. */
package/package.json CHANGED
@@ -1,61 +1,71 @@
1
1
  {
2
2
  "name": "osc-progress",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "Tiny TypeScript helper for OSC 9;4 terminal progress sequences.",
5
+ "keywords": [
6
+ "cli",
7
+ "ghostty",
8
+ "osc",
9
+ "progress",
10
+ "terminal",
11
+ "wezterm",
12
+ "windows-terminal"
13
+ ],
14
+ "homepage": "https://github.com/steipete/osc-progress#readme",
15
+ "bugs": {
16
+ "url": "https://github.com/steipete/osc-progress/issues"
17
+ },
5
18
  "license": "MIT",
6
19
  "author": "Peter Steinberger",
7
20
  "repository": {
8
21
  "type": "git",
9
22
  "url": "git+https://github.com/steipete/osc-progress.git"
10
23
  },
11
- "homepage": "https://github.com/steipete/osc-progress#readme",
12
- "bugs": {
13
- "url": "https://github.com/steipete/osc-progress/issues"
14
- },
15
- "keywords": [
16
- "osc",
17
- "terminal",
18
- "progress",
19
- "cli",
20
- "ghostty",
21
- "wezterm",
22
- "windows-terminal"
24
+ "files": [
25
+ "dist",
26
+ "CHANGELOG.md",
27
+ "README.md",
28
+ "LICENSE"
23
29
  ],
24
30
  "type": "module",
31
+ "sideEffects": false,
25
32
  "main": "./dist/esm/index.js",
26
33
  "module": "./dist/esm/index.js",
27
34
  "types": "./dist/types/index.d.ts",
28
35
  "exports": {
29
36
  ".": {
30
37
  "types": "./dist/types/index.d.ts",
31
- "import": "./dist/esm/index.js"
38
+ "import": "./dist/esm/index.js",
39
+ "default": "./dist/esm/index.js"
32
40
  }
33
41
  },
34
- "files": [
35
- "dist",
36
- "CHANGELOG.md",
37
- "README.md",
38
- "LICENSE"
39
- ],
40
- "engines": {
41
- "node": ">=20"
42
- },
43
- "sideEffects": false,
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
- },
51
42
  "scripts": {
52
- "build": "tsc -p tsconfig.build.json",
53
- "typecheck": "tsc -p tsconfig.build.json --noEmit",
54
- "format": "biome format --write .",
55
- "lint": "biome check .",
56
- "lint:fix": "biome check --write .",
43
+ "build": "tsgo -p tsconfig.build.json",
44
+ "prepare": "pnpm build",
45
+ "prepack": "pnpm build",
46
+ "prepublishOnly": "pnpm check",
47
+ "typecheck": "tsgo -p tsconfig.build.json --noEmit",
48
+ "format": "oxfmt --write .",
49
+ "format:check": "oxfmt --check .",
50
+ "lint": "pnpm format:check && oxlint --deny-warnings src tests",
51
+ "lint:fix": "pnpm format && oxlint --fix src tests",
57
52
  "test": "pnpm build && vitest run",
58
53
  "test:coverage": "pnpm build && vitest run --coverage",
59
- "check": "pnpm lint && pnpm test:coverage"
60
- }
61
- }
54
+ "check": "pnpm lint && pnpm typecheck && pnpm test:coverage"
55
+ },
56
+ "devDependencies": {
57
+ "@types/node": "^26.0.1",
58
+ "@typescript/native-preview": "7.0.0-dev.20260703.1",
59
+ "@vitest/coverage-v8": "^4.1.9",
60
+ "oxfmt": "^0.57.0",
61
+ "oxlint": "^1.72.0",
62
+ "postcss": "^8.5.16",
63
+ "typescript": "^6.0.3",
64
+ "vite": "^8.1.2",
65
+ "vitest": "^4.1.9"
66
+ },
67
+ "engines": {
68
+ "node": ">=24"
69
+ },
70
+ "packageManager": "pnpm@10.33.2"
71
+ }