@peteanderson/ansi 3.2.0 → 3.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/dist/cjs/slice.d.ts +8 -0
- package/dist/cjs/slice.d.ts.map +1 -1
- package/dist/cjs/slice.js +8 -0
- package/dist/cjs/slice.js.map +1 -1
- package/dist/cjs/split-at.d.ts.map +1 -1
- package/dist/cjs/split-at.js +2 -1
- package/dist/cjs/split-at.js.map +1 -1
- package/dist/esm/slice.d.ts +8 -0
- package/dist/esm/slice.d.ts.map +1 -1
- package/dist/esm/slice.js +8 -0
- package/dist/esm/slice.js.map +1 -1
- package/dist/esm/split-at.d.ts.map +1 -1
- package/dist/esm/split-at.js +2 -1
- package/dist/esm/split-at.js.map +1 -1
- package/package.json +1 -1
- package/src/slice.ts +8 -0
- package/src/split-at.ts +2 -1
package/dist/cjs/slice.d.ts
CHANGED
|
@@ -11,6 +11,14 @@ export declare function skippedSequences(text: string, start: number, end?: numb
|
|
|
11
11
|
* printed. If you compose two or more slices together, there may be redundant SGR sequences at the
|
|
12
12
|
* boundaries, but the result will be correct. You can use `simplify` to remove the redundancies.
|
|
13
13
|
*
|
|
14
|
+
* Negative indices for `start` or `end` are interpreted as offsets from the end of the string,
|
|
15
|
+
* counting only visible characters. For example, `slice(text, -1)` returns a string containing only
|
|
16
|
+
* the last visible character of `text`, as well as any SGR codes from before and after that
|
|
17
|
+
* character.
|
|
18
|
+
*
|
|
19
|
+
* This function is analogous to `String.prototype.slice`. If the given string contains no ANSI
|
|
20
|
+
* sequences, the result will be the same as `text.slice(start, end)`.
|
|
21
|
+
*
|
|
14
22
|
* Note the following caveats:
|
|
15
23
|
*
|
|
16
24
|
* * Any non-SGR ANSI codes prior to or after the slice will be ignored.
|
package/dist/cjs/slice.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../src/slice.ts"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CACtB,IAAI,EAAc,MAAM,EACxB,eAAe,EAAG,MAAM,EACxB,YAAY,EAAM,MAAM,GACtB;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAsBjC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGlF;AAED
|
|
1
|
+
{"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../src/slice.ts"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CACtB,IAAI,EAAc,MAAM,EACxB,eAAe,EAAG,MAAM,EACxB,YAAY,EAAM,MAAM,GACtB;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAsBjC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGlF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CA8BvE;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC"}
|
package/dist/cjs/slice.js
CHANGED
|
@@ -37,6 +37,14 @@ function skippedSequences(text, start, end) {
|
|
|
37
37
|
* printed. If you compose two or more slices together, there may be redundant SGR sequences at the
|
|
38
38
|
* boundaries, but the result will be correct. You can use `simplify` to remove the redundancies.
|
|
39
39
|
*
|
|
40
|
+
* Negative indices for `start` or `end` are interpreted as offsets from the end of the string,
|
|
41
|
+
* counting only visible characters. For example, `slice(text, -1)` returns a string containing only
|
|
42
|
+
* the last visible character of `text`, as well as any SGR codes from before and after that
|
|
43
|
+
* character.
|
|
44
|
+
*
|
|
45
|
+
* This function is analogous to `String.prototype.slice`. If the given string contains no ANSI
|
|
46
|
+
* sequences, the result will be the same as `text.slice(start, end)`.
|
|
47
|
+
*
|
|
40
48
|
* Note the following caveats:
|
|
41
49
|
*
|
|
42
50
|
* * Any non-SGR ANSI codes prior to or after the slice will be ignored.
|
package/dist/cjs/slice.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slice.js","sourceRoot":"","sources":["../../src/slice.ts"],"names":[],"mappings":";;AAIA,0BA0BC;AAED,4CAGC;
|
|
1
|
+
{"version":3,"file":"slice.js","sourceRoot":"","sources":["../../src/slice.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-at.d.ts","sourceRoot":"","sources":["../../src/split-at.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"split-at.d.ts","sourceRoot":"","sources":["../../src/split-at.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACtB,IAAI,EAAa,MAAM,EACvB,YAAY,EAAK,MAAM,EACvB,cAAc,GAAG,OAAe,GAC9B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAwB9B;AAED,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC"}
|
package/dist/cjs/split-at.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.splitAt = splitAt;
|
|
4
4
|
const slice_1 = require("./slice");
|
|
5
|
+
const strip_1 = require("./strip");
|
|
5
6
|
/**
|
|
6
7
|
* Split a string into two parts at the given visible index (i.e., the given visible character,
|
|
7
8
|
* ignoring ANSI escape codes). The returned strings will include any ANSI escape codes from within
|
|
@@ -15,7 +16,7 @@ function splitAt(text, visibleIndex, includeSkipped = false) {
|
|
|
15
16
|
if (!visibleIndex)
|
|
16
17
|
return ["", text];
|
|
17
18
|
if (visibleIndex < 0)
|
|
18
|
-
|
|
19
|
+
visibleIndex = Math.max(0, (0, strip_1.visibleLength)(text) + visibleIndex);
|
|
19
20
|
if (visibleIndex > text.length)
|
|
20
21
|
return [text, ""];
|
|
21
22
|
const { index } = (0, slice_1.scanCSI)(text, 0, visibleIndex);
|
package/dist/cjs/split-at.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-at.js","sourceRoot":"","sources":["../../src/split-at.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"split-at.js","sourceRoot":"","sources":["../../src/split-at.ts"],"names":[],"mappings":";;AAcA,0BA4BC;AA1CD,mCAAkD;AAClD,mCAAkD;AAIlD;;;;;;;;GAQG;AACH,SAAgB,OAAO,CACtB,IAAuB,EACvB,YAAuB,EACvB,iBAA2B,KAAK;IAEhC,IAAI,CAAC,YAAY;QAChB,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAEnB,IAAI,YAAY,GAAG,CAAC;QACnB,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;IAEhE,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM;QAC7B,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEnB,MAAM,EAAC,KAAK,EAAC,GAAG,IAAA,eAAO,EAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;IAE/C,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM;QACxB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEnB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACjC,IAAI,GAAG,GAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE9B,IAAI,cAAc,EAAE,CAAC;QACpB,KAAK,IAAI,IAAA,wBAAgB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvC,GAAG,GAAM,IAAA,wBAAgB,EAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;IACjD,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACrB,CAAC"}
|
package/dist/esm/slice.d.ts
CHANGED
|
@@ -11,6 +11,14 @@ export declare function skippedSequences(text: string, start: number, end?: numb
|
|
|
11
11
|
* printed. If you compose two or more slices together, there may be redundant SGR sequences at the
|
|
12
12
|
* boundaries, but the result will be correct. You can use `simplify` to remove the redundancies.
|
|
13
13
|
*
|
|
14
|
+
* Negative indices for `start` or `end` are interpreted as offsets from the end of the string,
|
|
15
|
+
* counting only visible characters. For example, `slice(text, -1)` returns a string containing only
|
|
16
|
+
* the last visible character of `text`, as well as any SGR codes from before and after that
|
|
17
|
+
* character.
|
|
18
|
+
*
|
|
19
|
+
* This function is analogous to `String.prototype.slice`. If the given string contains no ANSI
|
|
20
|
+
* sequences, the result will be the same as `text.slice(start, end)`.
|
|
21
|
+
*
|
|
14
22
|
* Note the following caveats:
|
|
15
23
|
*
|
|
16
24
|
* * Any non-SGR ANSI codes prior to or after the slice will be ignored.
|
package/dist/esm/slice.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../src/slice.ts"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CACtB,IAAI,EAAc,MAAM,EACxB,eAAe,EAAG,MAAM,EACxB,YAAY,EAAM,MAAM,GACtB;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAsBjC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGlF;AAED
|
|
1
|
+
{"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../src/slice.ts"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CACtB,IAAI,EAAc,MAAM,EACxB,eAAe,EAAG,MAAM,EACxB,YAAY,EAAM,MAAM,GACtB;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAsBjC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGlF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CA8BvE;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC"}
|
package/dist/esm/slice.js
CHANGED
|
@@ -32,6 +32,14 @@ export function skippedSequences(text, start, end) {
|
|
|
32
32
|
* printed. If you compose two or more slices together, there may be redundant SGR sequences at the
|
|
33
33
|
* boundaries, but the result will be correct. You can use `simplify` to remove the redundancies.
|
|
34
34
|
*
|
|
35
|
+
* Negative indices for `start` or `end` are interpreted as offsets from the end of the string,
|
|
36
|
+
* counting only visible characters. For example, `slice(text, -1)` returns a string containing only
|
|
37
|
+
* the last visible character of `text`, as well as any SGR codes from before and after that
|
|
38
|
+
* character.
|
|
39
|
+
*
|
|
40
|
+
* This function is analogous to `String.prototype.slice`. If the given string contains no ANSI
|
|
41
|
+
* sequences, the result will be the same as `text.slice(start, end)`.
|
|
42
|
+
*
|
|
35
43
|
* Note the following caveats:
|
|
36
44
|
*
|
|
37
45
|
* * Any non-SGR ANSI codes prior to or after the slice will be ignored.
|
package/dist/esm/slice.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slice.js","sourceRoot":"","sources":["../../src/slice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,KAAK,EAAC,MAAO,YAAY,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAW,YAAY,CAAC;AACzC,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAEtC,MAAM,UAAU,OAAO,CACtB,IAAwB,EACxB,eAAwB,EACxB,YAAwB;IAExB,gEAAgE;IAChE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAE7B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,KAAK,GAAI,eAAe,CAAC;IAE7B,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,GAAG,YAAY,EAAE,CAAC;QACrD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE,CAAC;YAC5B,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC;YACrB,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,KAAK,EAAE,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC5B,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACzB,SAAS;YACV,CAAC;QACF,CAAC;QAED,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;IACV,CAAC;IAED,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,KAAa,EAAE,GAAY;IACzE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,OAAO,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"slice.js","sourceRoot":"","sources":["../../src/slice.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-at.d.ts","sourceRoot":"","sources":["../../src/split-at.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"split-at.d.ts","sourceRoot":"","sources":["../../src/split-at.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACtB,IAAI,EAAa,MAAM,EACvB,YAAY,EAAK,MAAM,EACvB,cAAc,GAAG,OAAe,GAC9B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAwB9B;AAED,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC"}
|
package/dist/esm/split-at.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { scanCSI, skippedSequences } from "./slice.js";
|
|
2
|
+
import { visibleLength } from "./strip.js";
|
|
2
3
|
/**
|
|
3
4
|
* Split a string into two parts at the given visible index (i.e., the given visible character,
|
|
4
5
|
* ignoring ANSI escape codes). The returned strings will include any ANSI escape codes from within
|
|
@@ -12,7 +13,7 @@ export function splitAt(text, visibleIndex, includeSkipped = false) {
|
|
|
12
13
|
if (!visibleIndex)
|
|
13
14
|
return ["", text];
|
|
14
15
|
if (visibleIndex < 0)
|
|
15
|
-
|
|
16
|
+
visibleIndex = Math.max(0, visibleLength(text) + visibleIndex);
|
|
16
17
|
if (visibleIndex > text.length)
|
|
17
18
|
return [text, ""];
|
|
18
19
|
const { index } = scanCSI(text, 0, visibleIndex);
|
package/dist/esm/split-at.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-at.js","sourceRoot":"","sources":["../../src/split-at.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAIlD;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CACtB,IAAuB,EACvB,YAAuB,EACvB,iBAA2B,KAAK;IAEhC,IAAI,CAAC,YAAY;QAChB,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAEnB,IAAI,YAAY,GAAG,CAAC;QACnB,
|
|
1
|
+
{"version":3,"file":"split-at.js","sourceRoot":"","sources":["../../src/split-at.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAClD,OAAO,EAAC,aAAa,EAAC,MAAkB,SAAS,CAAC;AAIlD;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CACtB,IAAuB,EACvB,YAAuB,EACvB,iBAA2B,KAAK;IAEhC,IAAI,CAAC,YAAY;QAChB,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAEnB,IAAI,YAAY,GAAG,CAAC;QACnB,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;IAEhE,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM;QAC7B,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEnB,MAAM,EAAC,KAAK,EAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;IAE/C,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM;QACxB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEnB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACjC,IAAI,GAAG,GAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE9B,IAAI,cAAc,EAAE,CAAC;QACpB,KAAK,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvC,GAAG,GAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;IACjD,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACrB,CAAC"}
|
package/package.json
CHANGED
package/src/slice.ts
CHANGED
|
@@ -43,6 +43,14 @@ export function skippedSequences(text: string, start: number, end?: number): str
|
|
|
43
43
|
* printed. If you compose two or more slices together, there may be redundant SGR sequences at the
|
|
44
44
|
* boundaries, but the result will be correct. You can use `simplify` to remove the redundancies.
|
|
45
45
|
*
|
|
46
|
+
* Negative indices for `start` or `end` are interpreted as offsets from the end of the string,
|
|
47
|
+
* counting only visible characters. For example, `slice(text, -1)` returns a string containing only
|
|
48
|
+
* the last visible character of `text`, as well as any SGR codes from before and after that
|
|
49
|
+
* character.
|
|
50
|
+
*
|
|
51
|
+
* This function is analogous to `String.prototype.slice`. If the given string contains no ANSI
|
|
52
|
+
* sequences, the result will be the same as `text.slice(start, end)`.
|
|
53
|
+
*
|
|
46
54
|
* Note the following caveats:
|
|
47
55
|
*
|
|
48
56
|
* * Any non-SGR ANSI codes prior to or after the slice will be ignored.
|
package/src/split-at.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {scanCSI, skippedSequences} from "./slice";
|
|
2
|
+
import {visibleLength} from "./strip";
|
|
2
3
|
|
|
3
4
|
import type {slice} from "./slice";
|
|
4
5
|
|
|
@@ -20,7 +21,7 @@ export function splitAt(
|
|
|
20
21
|
return ["", text];
|
|
21
22
|
|
|
22
23
|
if (visibleIndex < 0)
|
|
23
|
-
|
|
24
|
+
visibleIndex = Math.max(0, visibleLength(text) + visibleIndex);
|
|
24
25
|
|
|
25
26
|
if (visibleIndex > text.length)
|
|
26
27
|
return [text, ""];
|