table 6.9.5 → 6.10.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
@@ -1,3 +1,4 @@
1
+ <a name="user-content-table"></a>
1
2
  <a name="table"></a>
2
3
  # Table
3
4
 
@@ -9,18 +10,19 @@
9
10
  [![Canonical Code Style](https://img.shields.io/badge/code%20style-canonical-blue.svg?style=flat-square)](https://github.com/gajus/canonical)
10
11
  [![Twitter Follow](https://img.shields.io/twitter/follow/kuizinas.svg?style=social&label=Follow)](https://twitter.com/kuizinas)
11
12
 
12
- * [Table](#table)
13
- * [Features](#table-features)
14
- * [Install](#table-install)
15
- * [Usage](#table-usage)
16
- * [API](#table-api)
17
- * [table](#table-api-table-1)
18
- * [createStream](#table-api-createstream)
19
- * [getBorderCharacters](#table-api-getbordercharacters)
13
+ * [Table](#user-content-table)
14
+ * [Features](#user-content-table-features)
15
+ * [Install](#user-content-table-install)
16
+ * [Usage](#user-content-table-usage)
17
+ * [API](#user-content-table-api)
18
+ * [table](#user-content-table-api-table-1)
19
+ * [createStream](#user-content-table-api-createstream)
20
+ * [getBorderCharacters](#user-content-table-api-getbordercharacters)
20
21
 
21
22
 
22
23
  ![Demo of table displaying a list of missions to the Moon.](./.README/demo.png)
23
24
 
25
+ <a name="user-content-table-features"></a>
24
26
  <a name="table-features"></a>
25
27
  ## Features
26
28
 
@@ -32,6 +34,7 @@
32
34
  * Configurable column width.
33
35
  * Text wrapping.
34
36
 
37
+ <a name="user-content-table-install"></a>
35
38
  <a name="table-install"></a>
36
39
  ## Install
37
40
 
@@ -43,6 +46,7 @@ npm install table
43
46
  [![Become a Patron](https://c5.patreon.com/external/logo/become_a_patron_button.png)](https://www.patreon.com/gajus)
44
47
 
45
48
 
49
+ <a name="user-content-table-usage"></a>
46
50
  <a name="table-usage"></a>
47
51
  ## Usage
48
52
 
@@ -73,9 +77,11 @@ console.log(table(data));
73
77
  ```
74
78
 
75
79
 
80
+ <a name="user-content-table-api"></a>
76
81
  <a name="table-api"></a>
77
82
  ## API
78
83
 
84
+ <a name="user-content-table-api-table-1"></a>
79
85
  <a name="table-api-table-1"></a>
80
86
  ### table
81
87
 
@@ -90,11 +96,12 @@ Returns the string in the table format
90
96
  - Type: `object`
91
97
  - Required: `false`
92
98
 
99
+ <a name="user-content-table-api-table-1-config-border"></a>
93
100
  <a name="table-api-table-1-config-border"></a>
94
101
  ##### config.border
95
102
 
96
103
  Type: `{ [type: string]: string }`\
97
- Default: `honeywell` [template](#getbordercharacters)
104
+ Default: `honeywell` [template](#user-content-getbordercharacters)
98
105
 
99
106
  Custom borders. The keys are any of:
100
107
  - `topLeft`, `topRight`, `topBody`,`topJoin`
@@ -146,6 +153,7 @@ console.log(table(data, config));
146
153
  └────┴────┴────┘
147
154
  ```
148
155
 
156
+ <a name="user-content-table-api-table-1-config-drawverticalline"></a>
149
157
  <a name="table-api-table-1-config-drawverticalline"></a>
150
158
  ##### config.drawVerticalLine
151
159
 
@@ -189,6 +197,7 @@ console.log(table(data, config));
189
197
 
190
198
  ```
191
199
 
200
+ <a name="user-content-table-api-table-1-config-drawhorizontalline"></a>
192
201
  <a name="table-api-table-1-config-drawhorizontalline"></a>
193
202
  ##### config.drawHorizontalLine
194
203
 
@@ -231,6 +240,7 @@ console.log(table(data, config));
231
240
 
232
241
  ```
233
242
 
243
+ <a name="user-content-table-api-table-1-config-singleline"></a>
234
244
  <a name="table-api-table-1-config-singleline"></a>
235
245
  ##### config.singleLine
236
246
 
@@ -272,6 +282,7 @@ console.log(table(data, config));
272
282
  ```
273
283
 
274
284
 
285
+ <a name="user-content-table-api-table-1-config-columns"></a>
275
286
  <a name="table-api-table-1-config-columns"></a>
276
287
  ##### config.columns
277
288
 
@@ -279,6 +290,7 @@ Type: `Column[] | { [columnIndex: number]: Column }`
279
290
 
280
291
  Column specific configurations.
281
292
 
293
+ <a name="user-content-table-api-table-1-config-columns-config-columns-width"></a>
282
294
  <a name="table-api-table-1-config-columns-config-columns-width"></a>
283
295
  ###### config.columns[*].width
284
296
 
@@ -314,6 +326,7 @@ console.log(table(data, config));
314
326
  ╚════╧════════════╧════╝
315
327
  ```
316
328
 
329
+ <a name="user-content-table-api-table-1-config-columns-config-columns-alignment"></a>
317
330
  <a name="table-api-table-1-config-columns-config-columns-alignment"></a>
318
331
  ###### config.columns[*].alignment
319
332
 
@@ -354,6 +367,7 @@ console.log(table(data, config));
354
367
  ╚════════════╧════════════╧════════════╧════════════╝
355
368
  ```
356
369
 
370
+ <a name="user-content-table-api-table-1-config-columns-config-columns-verticalalignment"></a>
357
371
  <a name="table-api-table-1-config-columns-config-columns-verticalalignment"></a>
358
372
  ###### config.columns[*].verticalAlignment
359
373
 
@@ -389,6 +403,7 @@ console.log(table(data, config));
389
403
  ╚═══╧═══╧═══╧═══╝
390
404
  ```
391
405
 
406
+ <a name="user-content-table-api-table-1-config-columns-config-columns-paddingleft"></a>
392
407
  <a name="table-api-table-1-config-columns-config-columns-paddingleft"></a>
393
408
  ###### config.columns[*].paddingLeft
394
409
 
@@ -397,6 +412,7 @@ Default: `1`
397
412
 
398
413
  The number of whitespaces used to pad the content on the left.
399
414
 
415
+ <a name="user-content-table-api-table-1-config-columns-config-columns-paddingright"></a>
400
416
  <a name="table-api-table-1-config-columns-config-columns-paddingright"></a>
401
417
  ###### config.columns[*].paddingRight
402
418
 
@@ -442,6 +458,7 @@ console.log(table(data, config));
442
458
  ╚══════╧══════╧════╝
443
459
  ```
444
460
 
461
+ <a name="user-content-table-api-table-1-config-columns-config-columns-truncate"></a>
445
462
  <a name="table-api-table-1-config-columns-config-columns-truncate"></a>
446
463
  ###### config.columns[*].truncate
447
464
 
@@ -449,7 +466,7 @@ Type: `number`\
449
466
  Default: `Infinity`
450
467
 
451
468
  The number of characters is which the content will be truncated.
452
- To handle a content that overflows the container width, `table` package implements [text wrapping](#config.columns[*].wrapWord). However, sometimes you may want to truncate content that is too long to be displayed in the table.
469
+ To handle a content that overflows the container width, `table` package implements [text wrapping](#user-content-config.columns[*].wrapWord). However, sometimes you may want to truncate content that is too long to be displayed in the table.
453
470
 
454
471
  ```js
455
472
  const data = [
@@ -478,6 +495,7 @@ console.log(table(data, config));
478
495
  ╚══════════════════════╝
479
496
  ```
480
497
 
498
+ <a name="user-content-table-api-table-1-config-columns-config-columns-wrapword"></a>
481
499
  <a name="table-api-table-1-config-columns-config-columns-wrapword"></a>
482
500
  ###### config.columns[*].wrapWord
483
501
 
@@ -532,6 +550,7 @@ When `wrapWord` is `true`:
532
550
  ```
533
551
 
534
552
 
553
+ <a name="user-content-table-api-table-1-config-columndefault"></a>
535
554
  <a name="table-api-table-1-config-columndefault"></a>
536
555
  ##### config.columnDefault
537
556
 
@@ -541,6 +560,7 @@ Default: `{}`
541
560
  The default configuration for all columns. Column-specific settings will overwrite the default values.
542
561
 
543
562
 
563
+ <a name="user-content-table-api-table-1-config-header"></a>
544
564
  <a name="table-api-table-1-config-header"></a>
545
565
  ##### config.header
546
566
 
@@ -591,6 +611,7 @@ console.log(table(data, config));
591
611
  ```
592
612
 
593
613
 
614
+ <a name="user-content-table-api-table-1-config-spanningcells"></a>
594
615
  <a name="table-api-table-1-config-spanningcells"></a>
595
616
  ##### config.spanningCells
596
617
 
@@ -667,6 +688,7 @@ console.log(table(data, config));
667
688
  ```
668
689
 
669
690
 
691
+ <a name="user-content-table-api-createstream"></a>
670
692
  <a name="table-api-createstream"></a>
671
693
  ### createStream
672
694
 
@@ -699,6 +721,18 @@ setInterval(() => {
699
721
 
700
722
  The underlying implementation is explained in this [Stack Overflow answer](http://stackoverflow.com/a/32938658/368691).
701
723
 
724
+ The cursor stays at the end of the table after each row, so that the next row can replace the bottom border. Call `stream.end()` after the last row to move the cursor below the table, so that whatever is printed next does not overwrite it. A stream cannot be written to after it has ended.
725
+
726
+ ```js
727
+ const stream = createStream(config);
728
+
729
+ for (const row of rows) {
730
+ stream.write(row);
731
+ }
732
+
733
+ stream.end();
734
+ ```
735
+
702
736
  Streaming supports all of the configuration properties and functionality of a static table (such as auto text wrapping, alignment and padding), e.g.
703
737
 
704
738
  ```js
@@ -738,6 +772,7 @@ setInterval(() => {
738
772
  ![Streaming random data.](./.README/api/stream/streaming-random.gif)
739
773
 
740
774
 
775
+ <a name="user-content-table-api-getbordercharacters"></a>
741
776
  <a name="table-api-getbordercharacters"></a>
742
777
  ### getBorderCharacters
743
778
 
@@ -807,6 +842,7 @@ console.log(table(data, config));
807
842
 
808
843
  Raise [an issue](https://github.com/gajus/table/issues) if you'd like to contribute a new border template.
809
844
 
845
+ <a name="user-content-table-api-getbordercharacters-borderless-table"></a>
810
846
  <a name="table-api-getbordercharacters-borderless-table"></a>
811
847
  #### Borderless Table
812
848
 
@@ -1,10 +1,6 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.alignVerticalRangeContent = exports.wrapRangeContent = void 0;
7
- const string_width_1 = __importDefault(require("string-width"));
8
4
  const alignString_1 = require("./alignString");
9
5
  const mapDataUsingRowHeights_1 = require("./mapDataUsingRowHeights");
10
6
  const padTableData_1 = require("./padTableData");
@@ -39,7 +35,7 @@ const alignVerticalRangeContent = (range, content, context) => {
39
35
  const availableRangeHeight = totalCellHeight + totalBorderHeight - hiddenHorizontalBorderCount;
40
36
  return (0, mapDataUsingRowHeights_1.padCellVertically)(content, availableRangeHeight, verticalAlignment).map((line) => {
41
37
  if (line.length === 0) {
42
- return ' '.repeat((0, string_width_1.default)(content[0]));
38
+ return ' '.repeat((0, utils_1.stringWidth)(content[0]));
43
39
  }
44
40
  return line;
45
41
  });
@@ -1 +1 @@
1
- {"version":3,"file":"alignSpanningCell.js","sourceRoot":"","sources":["../../src/alignSpanningCell.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAuC;AACvC,+CAEuB;AACvB,qEAEkC;AAClC,iDAEwB;AAIxB,2DAE6B;AAI7B,mCAEiB;AACjB,yCAEoB;AAEpB;;GAEG;AACI,MAAM,gBAAgB,GAAG,CAAC,WAAwB,EAAE,UAAkB,EAAE,OAA4B,EAAY,EAAE;IACvH,MAAM,EAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,GAAG,WAAW,CAAC;IAExF,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC;IAE7D,OAAO,IAAA,mBAAQ,EAAC,IAAA,kCAAc,EAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9F,MAAM,WAAW,GAAG,IAAA,yBAAW,EAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAE/D,OAAO,IAAA,wBAAS,EAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAXW,QAAA,gBAAgB,oBAW3B;AAEK,MAAM,yBAAyB,GAAG,CAAC,KAAkB,EAAE,OAAiB,EAAE,OAA4B,EAAE,EAAE;IAC/G,MAAM,EAAC,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAC,GAAG,OAAO,CAAC;IACvD,MAAM,EAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAC,GAAG,KAAK,CAAC;IAExD,yDAAyD;IACzD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,OAAO,EAAE,CAAC;KACX;IAED,MAAM,eAAe,GAAG,IAAA,gBAAQ,EAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACrF,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxD,MAAM,2BAA2B,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,qBAAqB,EAAE,EAAE;QAC9G,OAAO,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC,MAAM,CAAC;IAEV,MAAM,oBAAoB,GAAG,eAAe,GAAG,iBAAiB,GAAG,2BAA2B,CAAC;IAE/F,OAAO,IAAA,0CAAiB,EAAC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACtF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,GAAG,CAAC,MAAM,CAAC,IAAA,sBAAW,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAxBW,QAAA,yBAAyB,6BAwBpC"}
1
+ {"version":3,"file":"alignSpanningCell.js","sourceRoot":"","sources":["../../src/alignSpanningCell.ts"],"names":[],"mappings":";;;AAAA,+CAEuB;AACvB,qEAEkC;AAClC,iDAEwB;AAIxB,2DAE6B;AAI7B,mCAEiB;AACjB,yCAEoB;AAEpB;;GAEG;AACI,MAAM,gBAAgB,GAAG,CAAC,WAAwB,EAAE,UAAkB,EAAE,OAA4B,EAAY,EAAE;IACvH,MAAM,EAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,GAAG,WAAW,CAAC;IAExF,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC;IAE7D,OAAO,IAAA,mBAAQ,EAAC,IAAA,kCAAc,EAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9F,MAAM,WAAW,GAAG,IAAA,yBAAW,EAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAE/D,OAAO,IAAA,wBAAS,EAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAXW,QAAA,gBAAgB,oBAW3B;AAEK,MAAM,yBAAyB,GAAG,CAAC,KAAkB,EAAE,OAAiB,EAAE,OAA4B,EAAE,EAAE;IAC/G,MAAM,EAAC,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAC,GAAG,OAAO,CAAC;IACvD,MAAM,EAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAC,GAAG,KAAK,CAAC;IAExD,yDAAyD;IACzD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,OAAO,EAAE,CAAC;KACX;IAED,MAAM,eAAe,GAAG,IAAA,gBAAQ,EAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACrF,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxD,MAAM,2BAA2B,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,qBAAqB,EAAE,EAAE;QAC9G,OAAO,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC,MAAM,CAAC;IAEV,MAAM,oBAAoB,GAAG,eAAe,GAAG,iBAAiB,GAAG,2BAA2B,CAAC;IAE/F,OAAO,IAAA,0CAAiB,EAAC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACtF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,GAAG,CAAC,MAAM,CAAC,IAAA,mBAAW,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAxBW,QAAA,yBAAyB,6BAwBpC"}
@@ -1,10 +1,6 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.alignString = void 0;
7
- const string_width_1 = __importDefault(require("string-width"));
8
4
  const utils_1 = require("./utils");
9
5
  const alignLeft = (subject, width) => {
10
6
  return subject + ' '.repeat(width);
@@ -34,7 +30,7 @@ const alignJustify = (subject, width) => {
34
30
  * text in a desired alignment within a container.
35
31
  */
36
32
  const alignString = (subject, containerWidth, alignment) => {
37
- const subjectWidth = (0, string_width_1.default)(subject);
33
+ const subjectWidth = (0, utils_1.stringWidth)(subject);
38
34
  if (subjectWidth === containerWidth) {
39
35
  return subject;
40
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"alignString.js","sourceRoot":"","sources":["../../src/alignString.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAuC;AAIvC,mCAEiB;AAEjB,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,KAAa,EAAU,EAAE;IAC3D,OAAO,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,KAAa,EAAU,EAAE;IAC5D,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,KAAa,EAAU,EAAE;IAC7D,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,KAAa,EAAU,EAAE;IAC9D,MAAM,kBAAkB,GAAG,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC;IAEvD,IAAI,kBAAkB,KAAK,CAAC,EAAE;QAC5B,OAAO,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KAClC;IAED,MAAM,YAAY,GAAG,IAAA,0BAAkB,EAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAEnE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE;QACjC,OAAO,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KAClC;IAED,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAE3B,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE;QAC5C,OAAO,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,cAAsB,EAAE,SAAoB,EAAU,EAAE;IACnG,MAAM,YAAY,GAAG,IAAA,sBAAW,EAAC,OAAO,CAAC,CAAC;IAE1C,IAAI,YAAY,KAAK,cAAc,EAAE;QACnC,OAAO,OAAO,CAAC;KAChB;IAED,IAAI,YAAY,GAAG,cAAc,EAAE;QACjC,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;KAC9F;IAED,IAAI,YAAY,KAAK,CAAC,EAAE;QACtB,OAAO,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;KACnC;IAED,MAAM,cAAc,GAAG,cAAc,GAAG,YAAY,CAAC;IAErD,IAAI,SAAS,KAAK,MAAM,EAAE;QACxB,OAAO,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;KAC3C;IAED,IAAI,SAAS,KAAK,OAAO,EAAE;QACzB,OAAO,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;KAC5C;IAED,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,OAAO,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;KAC9C;IAED,OAAO,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAC9C,CAAC,CAAC;AA9BW,QAAA,WAAW,eA8BtB"}
1
+ {"version":3,"file":"alignString.js","sourceRoot":"","sources":["../../src/alignString.ts"],"names":[],"mappings":";;;AAGA,mCAEiB;AAEjB,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,KAAa,EAAU,EAAE;IAC3D,OAAO,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,KAAa,EAAU,EAAE;IAC5D,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,KAAa,EAAU,EAAE;IAC7D,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,KAAa,EAAU,EAAE;IAC9D,MAAM,kBAAkB,GAAG,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC;IAEvD,IAAI,kBAAkB,KAAK,CAAC,EAAE;QAC5B,OAAO,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KAClC;IAED,MAAM,YAAY,GAAG,IAAA,0BAAkB,EAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAEnE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE;QACjC,OAAO,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KAClC;IAED,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAE3B,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE;QAC5C,OAAO,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,cAAsB,EAAE,SAAoB,EAAU,EAAE;IACnG,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,CAAC;IAE1C,IAAI,YAAY,KAAK,cAAc,EAAE;QACnC,OAAO,OAAO,CAAC;KAChB;IAED,IAAI,YAAY,GAAG,cAAc,EAAE;QACjC,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;KAC9F;IAED,IAAI,YAAY,KAAK,CAAC,EAAE;QACtB,OAAO,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;KACnC;IAED,MAAM,cAAc,GAAG,cAAc,GAAG,YAAY,CAAC;IAErD,IAAI,SAAS,KAAK,MAAM,EAAE;QACxB,OAAO,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;KAC3C;IAED,IAAI,SAAS,KAAK,OAAO,EAAE;QACzB,OAAO,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;KAC5C;IAED,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,OAAO,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;KAC9C;IAED,OAAO,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAC9C,CAAC,CAAC;AA9BW,QAAA,WAAW,eA8BtB"}
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.calculateMaximumColumnWidths = exports.calculateMaximumCellWidth = void 0;
7
- const string_width_1 = __importDefault(require("string-width"));
8
4
  const utils_1 = require("./utils");
9
5
  const calculateMaximumCellWidth = (cell) => {
10
- return Math.max(...cell.split('\n').map(string_width_1.default));
6
+ return Math.max(...cell.split('\n').map(utils_1.stringWidth));
11
7
  };
12
8
  exports.calculateMaximumCellWidth = calculateMaximumCellWidth;
13
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"calculateMaximumColumnWidths.js","sourceRoot":"","sources":["../../src/calculateMaximumColumnWidths.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAuC;AAQvC,mCAEiB;AAEV,MAAM,yBAAyB,GAAG,CAAC,IAAU,EAAU,EAAE;IAC9D,OAAO,IAAI,CAAC,GAAG,CACb,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,sBAAW,CAAC,CACrC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,yBAAyB,6BAIpC;AAEF;;GAEG;AACI,MAAM,4BAA4B,GAAG,CAAC,IAAW,EAAE,sBAA4C,EAAE,EAAY,EAAE;IACpH,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAAC,gCAAwB,CAAC,CAAC;IAE3E,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;QAC7B,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,EAAE;gBACtD,OAAO,IAAA,qBAAa,EAAC,EAAC,GAAG,EAAE,SAAS;oBAClC,GAAG,EAAE,QAAQ,EAAC,EAAE,eAAe,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE;gBAC5F,OAAO;aACR;YACD,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAA,iCAAyB,EAAC,IAAI,CAAC,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAnBW,QAAA,4BAA4B,gCAmBvC"}
1
+ {"version":3,"file":"calculateMaximumColumnWidths.js","sourceRoot":"","sources":["../../src/calculateMaximumColumnWidths.ts"],"names":[],"mappings":";;;AAOA,mCAEiB;AAEV,MAAM,yBAAyB,GAAG,CAAC,IAAU,EAAU,EAAE;IAC9D,OAAO,IAAI,CAAC,GAAG,CACb,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,mBAAW,CAAC,CACrC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,yBAAyB,6BAIpC;AAEF;;GAEG;AACI,MAAM,4BAA4B,GAAG,CAAC,IAAW,EAAE,sBAA4C,EAAE,EAAY,EAAE;IACpH,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAAC,gCAAwB,CAAC,CAAC;IAE3E,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;QAC7B,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,EAAE;gBACtD,OAAO,IAAA,qBAAa,EAAC,EAAC,GAAG,EAAE,SAAS;oBAClC,GAAG,EAAE,QAAQ,EAAC,EAAE,eAAe,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE;gBAC5F,OAAO;aACR;YACD,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAA,iCAAyB,EAAC,IAAI,CAAC,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAnBW,QAAA,4BAA4B,gCAmBvC"}
@@ -55,8 +55,22 @@ const createStream = (userConfig) => {
55
55
  return column.width + column.paddingLeft + column.paddingRight;
56
56
  });
57
57
  let empty = true;
58
+ let ended = false;
58
59
  return {
60
+ end: () => {
61
+ if (ended) {
62
+ return;
63
+ }
64
+ ended = true;
65
+ // Rows are written without a trailing newline, so that the next row can replace the bottom border.
66
+ if (!empty) {
67
+ process.stdout.write('\n');
68
+ }
69
+ },
59
70
  write: (row) => {
71
+ if (ended) {
72
+ throw new Error('Cannot write to a stream that has ended.');
73
+ }
60
74
  if (row.length !== config.columnCount) {
61
75
  throw new Error('Row cell count does not match the config.columnCount.');
62
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createStream.js","sourceRoot":"","sources":["../../src/createStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createStream.js","sourceRoot":"","sources":["../../src/createStream.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.truncateTableData = exports.truncateString = void 0;
7
7
  const lodash_truncate_1 = __importDefault(require("lodash.truncate"));
8
- const slice_ansi_1 = __importDefault(require("slice-ansi"));
9
- const strip_ansi_1 = __importDefault(require("strip-ansi"));
10
8
  const utils_1 = require("./utils");
11
9
  const omission = '…';
12
10
  const truncateString = (input, length) => {
@@ -15,7 +13,7 @@ const truncateString = (input, length) => {
15
13
  return input;
16
14
  }
17
15
  // Truncate the visible text, so that ANSI escape codes do not count towards the length.
18
- const visible = (0, strip_ansi_1.default)(input);
16
+ const visible = (0, utils_1.stripAnsi)(input);
19
17
  const truncated = (0, lodash_truncate_1.default)(visible, { length,
20
18
  omission });
21
19
  if (truncated === visible) {
@@ -24,7 +22,7 @@ const truncateString = (input, length) => {
24
22
  // Cut the input after the same characters, which keeps its ANSI escape codes and closes any that
25
23
  // are still open, so that styles do not leak past the cell.
26
24
  const kept = truncated.slice(0, -omission.length);
27
- return (0, slice_ansi_1.default)(input, 0, (0, utils_1.calculateSliceLength)(kept, Number.POSITIVE_INFINITY)) + omission;
25
+ return (0, utils_1.sliceAnsi)(input, 0, (0, utils_1.calculateSliceLength)(kept, Number.POSITIVE_INFINITY)) + omission;
28
26
  };
29
27
  exports.truncateString = truncateString;
30
28
  const truncateTableData = (rows, truncates) => {
@@ -1 +1 @@
1
- {"version":3,"file":"truncateTableData.js","sourceRoot":"","sources":["../../src/truncateTableData.ts"],"names":[],"mappings":";;;;;;AAAA,sEAAuC;AACvC,4DAA+B;AAC/B,4DAAmC;AAInC,mCAEiB;AAEjB,MAAM,QAAQ,GAAG,GAAG,CAAC;AAEd,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,MAAc,EAAU,EAAE;IACtE,qEAAqE;IACrE,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IAED,wFAAwF;IACxF,MAAM,OAAO,GAAG,IAAA,oBAAS,EAAC,KAAK,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,IAAA,yBAAQ,EAAC,OAAO,EAAE,EAAC,MAAM;QACzC,QAAQ,EAAC,CAAC,CAAC;IAEb,IAAI,SAAS,KAAK,OAAO,EAAE;QACzB,OAAO,KAAK,CAAC;KACd;IAED,iGAAiG;IACjG,4DAA4D;IAC5D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAElD,OAAO,IAAA,oBAAK,EAAC,KAAK,EAAE,CAAC,EAAE,IAAA,4BAAoB,EAAC,IAAI,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,QAAQ,CAAC;AAC1F,CAAC,CAAC;AApBW,QAAA,cAAc,kBAoBzB;AAEK,MAAM,iBAAiB,GAAG,CAAC,IAAW,EAAE,SAAmB,EAAS,EAAE;IAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;YACnC,OAAO,IAAA,sBAAc,EAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B"}
1
+ {"version":3,"file":"truncateTableData.js","sourceRoot":"","sources":["../../src/truncateTableData.ts"],"names":[],"mappings":";;;;;;AAAA,sEAAuC;AAIvC,mCAEiB;AAEjB,MAAM,QAAQ,GAAG,GAAG,CAAC;AAEd,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,MAAc,EAAU,EAAE;IACtE,qEAAqE;IACrE,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IAED,wFAAwF;IACxF,MAAM,OAAO,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,IAAA,yBAAQ,EAAC,OAAO,EAAE,EAAC,MAAM;QACzC,QAAQ,EAAC,CAAC,CAAC;IAEb,IAAI,SAAS,KAAK,OAAO,EAAE;QACzB,OAAO,KAAK,CAAC;KACd;IAED,iGAAiG;IACjG,4DAA4D;IAC5D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAElD,OAAO,IAAA,iBAAS,EAAC,KAAK,EAAE,CAAC,EAAE,IAAA,4BAAoB,EAAC,IAAI,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,QAAQ,CAAC;AAC9F,CAAC,CAAC;AApBW,QAAA,cAAc,kBAoBzB;AAEK,MAAM,iBAAiB,GAAG,CAAC,IAAW,EAAE,SAAmB,EAAS,EAAE;IAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;YACnC,OAAO,IAAA,sBAAc,EAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B"}
@@ -123,6 +123,11 @@ export declare type StreamUserConfig = BaseUserConfig & {
123
123
  };
124
124
  };
125
125
  export declare type WritableStream = {
126
+ /**
127
+ * Finishes the table by moving the cursor below it, so that whatever is printed next does not
128
+ * overwrite its bottom border. The stream cannot be written to afterwards.
129
+ */
130
+ readonly end: () => void;
126
131
  readonly write: (rows: string[]) => void;
127
132
  };
128
133
  export declare type Indexable<T> = {
package/dist/src/utils.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.isCellInRange = exports.areCellEqual = exports.calculateRangeCoordinate = exports.flatten = exports.extractTruncates = exports.sumArray = exports.sequence = exports.distributeUnevenly = exports.countSpaceSequence = exports.groupBySizes = exports.makeBorderConfig = exports.splitAnsi = exports.normalizeString = exports.calculateSliceLength = exports.splitGraphemes = void 0;
6
+ exports.isCellInRange = exports.areCellEqual = exports.calculateRangeCoordinate = exports.flatten = exports.extractTruncates = exports.sumArray = exports.sequence = exports.distributeUnevenly = exports.countSpaceSequence = exports.groupBySizes = exports.makeBorderConfig = exports.splitAnsi = exports.normalizeString = exports.sliceAnsi = exports.stringWidth = exports.stripAnsi = exports.calculateSliceLength = exports.splitGraphemes = void 0;
7
7
  const slice_ansi_1 = __importDefault(require("slice-ansi"));
8
8
  const string_width_1 = __importDefault(require("string-width"));
9
9
  const strip_ansi_1 = __importDefault(require("strip-ansi"));
@@ -96,6 +96,97 @@ const calculateSliceLength = (subject, maximumWidth) => {
96
96
  return positions;
97
97
  };
98
98
  exports.calculateSliceLength = calculateSliceLength;
99
+ /**
100
+ * A terminal hyperlink (OSC 8) sequence. An opening sequence carries the parameters and the URI of the
101
+ * link that the text after it belongs to; a closing sequence has an empty URI.
102
+ */
103
+ // eslint-disable-next-line no-control-regex
104
+ const hyperlinkRegex = /(\u001B\]|\u009D)8;[^\u0007\u001B\u009C;]*;([^\u0007\u001B\u009C]*)(\u0007|\u001B\\|\u009C)/gu;
105
+ const containsHyperlink = (input) => {
106
+ return input.includes(']8;') || input.includes('\u009D8;');
107
+ };
108
+ const removeHyperlinks = (input) => {
109
+ return containsHyperlink(input) ? input.replace(hyperlinkRegex, '') : input;
110
+ };
111
+ /**
112
+ * Like strip-ansi, but also removes terminal hyperlinks, whatever their URI and terminator.
113
+ *
114
+ * @internal
115
+ */
116
+ const stripAnsi = (input) => {
117
+ return (0, strip_ansi_1.default)(removeHyperlinks(input));
118
+ };
119
+ exports.stripAnsi = stripAnsi;
120
+ /**
121
+ * Like string-width, but also ignores terminal hyperlinks, whatever their URI and terminator.
122
+ *
123
+ * @internal
124
+ */
125
+ const stringWidth = (input) => {
126
+ return (0, string_width_1.default)(removeHyperlinks(input));
127
+ };
128
+ exports.stringWidth = stringWidth;
129
+ /**
130
+ * Separates the terminal hyperlinks from the rest of the input, and divides its text into runs, measured
131
+ * in slice-ansi positions, that each belong to one hyperlink or to none.
132
+ */
133
+ const splitHyperlinks = (input) => {
134
+ // A copy, so that this loop has its own lastIndex.
135
+ const regex = new RegExp(hyperlinkRegex);
136
+ const runs = [];
137
+ let plain = '';
138
+ let position = 0;
139
+ let start = 0;
140
+ let link;
141
+ let lastIndex = 0;
142
+ const appendText = (text) => {
143
+ plain += text;
144
+ position += (0, exports.calculateSliceLength)((0, strip_ansi_1.default)(text), Number.POSITIVE_INFINITY);
145
+ if (position > start) {
146
+ runs.push({ end: position,
147
+ link,
148
+ start });
149
+ start = position;
150
+ }
151
+ };
152
+ for (let match = regex.exec(input); match; match = regex.exec(input)) {
153
+ appendText(input.slice(lastIndex, match.index));
154
+ const [escapeSequence, introducer, uri, terminator] = match;
155
+ link = uri ? { close: introducer + '8;;' + terminator,
156
+ open: escapeSequence } : undefined;
157
+ lastIndex = regex.lastIndex;
158
+ }
159
+ appendText(input.slice(lastIndex));
160
+ return { plain,
161
+ runs };
162
+ };
163
+ /**
164
+ * Like slice-ansi, but keeps terminal hyperlinks: each part of the result that belongs to a hyperlink is
165
+ * wrapped in its own opening and closing sequences.
166
+ *
167
+ * @internal
168
+ */
169
+ const sliceAnsi = (input, begin, end) => {
170
+ if (!containsHyperlink(input)) {
171
+ return (0, slice_ansi_1.default)(input, begin, end);
172
+ }
173
+ const { plain, runs } = splitHyperlinks(input);
174
+ if (!runs.some(({ link }) => {
175
+ return link;
176
+ })) {
177
+ return (0, slice_ansi_1.default)(plain, begin, end);
178
+ }
179
+ return runs.map(({ end: runEnd, link, start }) => {
180
+ const from = Math.max(begin, start);
181
+ const to = Math.min(end !== null && end !== void 0 ? end : Number.POSITIVE_INFINITY, runEnd);
182
+ if (from >= to) {
183
+ return '';
184
+ }
185
+ const text = (0, slice_ansi_1.default)(plain, from, to);
186
+ return link ? link.open + text + link.close : text;
187
+ }).join('');
188
+ };
189
+ exports.sliceAnsi = sliceAnsi;
99
190
  /**
100
191
  * Converts Windows-style newline to Unix-style
101
192
  *
@@ -112,13 +203,13 @@ exports.normalizeString = normalizeString;
112
203
  */
113
204
  const splitAnsi = (input) => {
114
205
  // Line lengths in slice-ansi positions, which differ from display widths for emoji.
115
- const lengths = (0, strip_ansi_1.default)(input).split('\n').map((line) => {
206
+ const lengths = (0, exports.stripAnsi)(input).split('\n').map((line) => {
116
207
  return (0, exports.calculateSliceLength)(line, Number.POSITIVE_INFINITY);
117
208
  });
118
209
  const result = [];
119
210
  let startIndex = 0;
120
211
  lengths.forEach((length) => {
121
- result.push(length === 0 ? '' : (0, slice_ansi_1.default)(input, startIndex, startIndex + length));
212
+ result.push(length === 0 ? '' : (0, exports.sliceAnsi)(input, startIndex, startIndex + length));
122
213
  // Plus 1 for the newline character itself
123
214
  startIndex += length + 1;
124
215
  });
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,6 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.wrapString = void 0;
7
- const slice_ansi_1 = __importDefault(require("slice-ansi"));
8
- const string_width_1 = __importDefault(require("string-width"));
9
- const strip_ansi_1 = __importDefault(require("strip-ansi"));
10
4
  const utils_1 = require("./utils");
11
5
  /**
12
6
  * Creates an array of strings split into groups of at most size terminal columns.
@@ -19,10 +13,10 @@ const wrapString = (subject, size) => {
19
13
  let subjectSlice = subject;
20
14
  const chunks = [];
21
15
  do {
22
- const chunkLength = (0, utils_1.calculateSliceLength)((0, strip_ansi_1.default)(subjectSlice), size);
23
- chunks.push((0, slice_ansi_1.default)(subjectSlice, 0, chunkLength));
24
- subjectSlice = (0, slice_ansi_1.default)(subjectSlice, chunkLength).trim();
25
- } while ((0, string_width_1.default)(subjectSlice));
16
+ const chunkLength = (0, utils_1.calculateSliceLength)((0, utils_1.stripAnsi)(subjectSlice), size);
17
+ chunks.push((0, utils_1.sliceAnsi)(subjectSlice, 0, chunkLength));
18
+ subjectSlice = (0, utils_1.sliceAnsi)(subjectSlice, chunkLength).trim();
19
+ } while ((0, utils_1.stringWidth)(subjectSlice));
26
20
  return chunks;
27
21
  };
28
22
  exports.wrapString = wrapString;
@@ -1 +1 @@
1
- {"version":3,"file":"wrapString.js","sourceRoot":"","sources":["../../src/wrapString.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA+B;AAC/B,gEAAuC;AACvC,4DAAmC;AACnC,mCAEiB;AAEjB;;;;;;GAMG;AACI,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,IAAY,EAAY,EAAE;IACpE,IAAI,YAAY,GAAG,OAAO,CAAC;IAE3B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,GAAG;QACD,MAAM,WAAW,GAAG,IAAA,4BAAoB,EAAC,IAAA,oBAAS,EAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;QAExE,MAAM,CAAC,IAAI,CAAC,IAAA,oBAAK,EAAC,YAAY,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QAEjD,YAAY,GAAG,IAAA,oBAAK,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;KACxD,QAAQ,IAAA,sBAAW,EAAC,YAAY,CAAC,EAAE;IAEpC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAdW,QAAA,UAAU,cAcrB"}
1
+ {"version":3,"file":"wrapString.js","sourceRoot":"","sources":["../../src/wrapString.ts"],"names":[],"mappings":";;;AAAA,mCAEiB;AAEjB;;;;;;GAMG;AACI,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,IAAY,EAAY,EAAE;IACpE,IAAI,YAAY,GAAG,OAAO,CAAC;IAE3B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,GAAG;QACD,MAAM,WAAW,GAAG,IAAA,4BAAoB,EAAC,IAAA,iBAAS,EAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;QAExE,MAAM,CAAC,IAAI,CAAC,IAAA,iBAAS,EAAC,YAAY,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QAErD,YAAY,GAAG,IAAA,iBAAS,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;KAC5D,QAAQ,IAAA,mBAAW,EAAC,YAAY,CAAC,EAAE;IAEpC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAdW,QAAA,UAAU,cAcrB"}
@@ -1,11 +1,6 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.wrapWord = void 0;
7
- const slice_ansi_1 = __importDefault(require("slice-ansi"));
8
- const strip_ansi_1 = __importDefault(require("strip-ansi"));
9
4
  const utils_1 = require("./utils");
10
5
  /**
11
6
  * Number of characters standing in for a grapheme in the wrapping expression: one per terminal column,
@@ -19,7 +14,7 @@ const countColumns = (grapheme) => {
19
14
  * column, and reports each line length and the whitespace that follows it in slice-ansi positions.
20
15
  */
21
16
  const calculateStringLengths = (input, size) => {
22
- const graphemes = (0, utils_1.splitGraphemes)((0, strip_ansi_1.default)(input));
17
+ const graphemes = (0, utils_1.splitGraphemes)((0, utils_1.stripAnsi)(input));
23
18
  const width = Math.max(size, 1);
24
19
  // https://regex101.com/r/gY5kZ1/1
25
20
  const re = new RegExp('(^.{1,' + String(width) + '}(\\s+|$))|(^.{1,' + String(Math.max(size - 1, 1)) + '}(\\\\|/|_|\\.|,|;|-))');
@@ -66,7 +61,7 @@ const wrapWord = (input, size) => {
66
61
  const result = [];
67
62
  let startIndex = 0;
68
63
  calculateStringLengths(input, size).forEach(([length, offset]) => {
69
- result.push((0, slice_ansi_1.default)(input, startIndex, startIndex + length));
64
+ result.push((0, utils_1.sliceAnsi)(input, startIndex, startIndex + length));
70
65
  startIndex += length + offset;
71
66
  });
72
67
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"wrapWord.js","sourceRoot":"","sources":["../../src/wrapWord.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrapWord.js","sourceRoot":"","sources":["../../src/wrapWord.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -75,5 +75,5 @@
75
75
  "test": "nyc mocha && nyc check-coverage --lines 95"
76
76
  },
77
77
  "sideEffects": false,
78
- "version": "6.9.5"
78
+ "version": "6.10.0"
79
79
  }