table 6.9.5 → 6.9.6
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/dist/src/alignSpanningCell.js +1 -5
- package/dist/src/alignSpanningCell.js.map +1 -1
- package/dist/src/alignString.js +1 -5
- package/dist/src/alignString.js.map +1 -1
- package/dist/src/calculateMaximumColumnWidths.js +1 -5
- package/dist/src/calculateMaximumColumnWidths.js.map +1 -1
- package/dist/src/truncateTableData.js +2 -4
- package/dist/src/truncateTableData.js.map +1 -1
- package/dist/src/utils.js +94 -3
- package/dist/src/utils.js.map +1 -1
- package/dist/src/wrapString.js +4 -10
- package/dist/src/wrapString.js.map +1 -1
- package/dist/src/wrapWord.js +2 -7
- package/dist/src/wrapWord.js.map +1 -1
- package/package.json +1 -1
|
@@ -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,
|
|
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":"
|
|
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"}
|
package/dist/src/alignString.js
CHANGED
|
@@ -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,
|
|
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":"
|
|
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(
|
|
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":"
|
|
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"}
|
|
@@ -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,
|
|
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,
|
|
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;
|
|
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"}
|
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,
|
|
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,
|
|
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
|
});
|
package/dist/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/src/wrapString.js
CHANGED
|
@@ -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,
|
|
23
|
-
chunks.push((0,
|
|
24
|
-
subjectSlice = (0,
|
|
25
|
-
} while ((0,
|
|
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":"
|
|
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"}
|
package/dist/src/wrapWord.js
CHANGED
|
@@ -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,
|
|
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,
|
|
64
|
+
result.push((0, utils_1.sliceAnsi)(input, startIndex, startIndex + length));
|
|
70
65
|
startIndex += length + offset;
|
|
71
66
|
});
|
|
72
67
|
return result;
|
package/dist/src/wrapWord.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapWord.js","sourceRoot":"","sources":["../../src/wrapWord.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wrapWord.js","sourceRoot":"","sources":["../../src/wrapWord.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED