termkit 2.2.0 → 2.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/README.md CHANGED
@@ -600,10 +600,27 @@ await doWork()
600
600
  spinner.succeed('Done')
601
601
  ```
602
602
 
603
- Update the label while running:
603
+ Update the inline label while running:
604
604
 
605
605
  ```ts
606
- spinner.message('Still working…')
606
+ spinner.update('Still working…')
607
+ ```
608
+
609
+ Write a persistent log line while the spinner keeps running. The default glyph is a faint `·`; pass any string — plain or pre-colored — as the second argument to override it:
610
+
611
+ ```ts
612
+ spinner.log('Fetched 42 items')
613
+ spinner.log('Fetched 42 items', '→')
614
+ spinner.log('Fetched 42 items', Color.hex('#00ff00')('✔'))
615
+ spinner.log('Fetched 42 items', '') // no glyph
616
+ ```
617
+
618
+ The completion methods accept a custom glyph color via `successColor`, `failColor`, `warnColor`, and `infoColor` — the glyph is colored, the message text is left unstyled:
619
+
620
+ ```ts
621
+ const spinner = new Spinner({ successColor: '#a855f7', failColor: '#ef4444' })
622
+ spinner.succeed('Build complete') // purple ✔
623
+ spinner.fail('Connection refused') // red ✖
607
624
  ```
608
625
 
609
626
  Built-in frame sets are available on `Spinner.FRAMES`:
package/dist/index.js CHANGED
@@ -2528,7 +2528,7 @@ var _Spinner = class _Spinner {
2528
2528
  `);
2529
2529
  return this;
2530
2530
  }
2531
- message(string) {
2531
+ update(string) {
2532
2532
  this.text = string;
2533
2533
  return this;
2534
2534
  }
@@ -2592,6 +2592,14 @@ var _Spinner = class _Spinner {
2592
2592
  }
2593
2593
  return this;
2594
2594
  }
2595
+ log(message, glyph = `${FAINT}\xB7${RESET}`) {
2596
+ if (process.stdout.isTTY) {
2597
+ this.clear();
2598
+ }
2599
+ process.stdout.write(`${glyph ? `${glyph} ` : ""}${message}
2600
+ `);
2601
+ return this;
2602
+ }
2595
2603
  clear() {
2596
2604
  process.stdout.clearLine?.(0);
2597
2605
  this._lastLineLength = 0;
package/dist/index.mjs CHANGED
@@ -2468,7 +2468,7 @@ var _Spinner = class _Spinner {
2468
2468
  `);
2469
2469
  return this;
2470
2470
  }
2471
- message(string) {
2471
+ update(string) {
2472
2472
  this.text = string;
2473
2473
  return this;
2474
2474
  }
@@ -2532,6 +2532,14 @@ var _Spinner = class _Spinner {
2532
2532
  }
2533
2533
  return this;
2534
2534
  }
2535
+ log(message, glyph = `${FAINT}\xB7${RESET}`) {
2536
+ if (process.stdout.isTTY) {
2537
+ this.clear();
2538
+ }
2539
+ process.stdout.write(`${glyph ? `${glyph} ` : ""}${message}
2540
+ `);
2541
+ return this;
2542
+ }
2535
2543
  clear() {
2536
2544
  process.stdout.clearLine?.(0);
2537
2545
  this._lastLineLength = 0;
@@ -55,11 +55,12 @@ export declare class Spinner {
55
55
  set bgColors(value: string[]);
56
56
  start(): void;
57
57
  stop(message?: string): this;
58
- message(string: string): this;
58
+ update(string: string): this;
59
59
  succeed(string?: string): this;
60
60
  fail(string?: string): this;
61
61
  warn(string?: string): this;
62
62
  info(string?: string): this;
63
+ log(message: string, glyph?: string): this;
63
64
  private clear;
64
65
  private coloredFrame;
65
66
  private run;
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/models/Spinner.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,qBAAa,OAAO;IAClB,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;MAMrB;IAED,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;IAEhC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,YAAY,CAAY;IAChC,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,kBAAkB,CAA4B;gBAE1C,OAAO,GAAE,cAAmB;IAqBxC,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAGzB;IAED,IAAI,QAAQ,IAAI,MAAM,EAAE,CAEvB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAG3B;IAED,KAAK,IAAI,IAAI;IAYb,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAY5B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK7B,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAc9B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAc3B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAc3B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAc3B,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,GAAG;CAwBZ"}
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/models/Spinner.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,qBAAa,OAAO;IAClB,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;MAMrB;IAED,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;IAEhC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,YAAY,CAAY;IAChC,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,kBAAkB,CAA4B;gBAE1C,OAAO,GAAE,cAAmB;IAqBxC,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAGzB;IAED,IAAI,QAAQ,IAAI,MAAM,EAAE,CAEvB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAG3B;IAED,KAAK,IAAI,IAAI;IAYb,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAY5B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAc9B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAc3B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAc3B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAc3B,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAA4B,GAAG,IAAI;IAQ/D,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,GAAG;CAwBZ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "termkit",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Node.js terminal toolkit with CLI commands, progress bars, charts, tables, styled markup, prompts, and text utilities",
5
5
  "keywords": [
6
6
  "animation",