@peteanderson/ansi 2.3.1 → 3.1.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 +16 -12
- package/dist/cjs/ansi.d.ts +13 -11
- package/dist/cjs/ansi.d.ts.map +1 -1
- package/dist/cjs/ansi.js +7 -4
- package/dist/cjs/ansi.js.map +1 -1
- package/dist/cjs/cursor.d.ts +30 -0
- package/dist/cjs/cursor.d.ts.map +1 -0
- package/dist/cjs/cursor.js +70 -0
- package/dist/cjs/cursor.js.map +1 -0
- package/dist/cjs/erase.d.ts.map +1 -1
- package/dist/cjs/erase.js +8 -7
- package/dist/cjs/erase.js.map +1 -1
- package/dist/cjs/features/build.d.ts +1 -1
- package/dist/cjs/features/build.d.ts.map +1 -1
- package/dist/cjs/features/build.js +4 -4
- package/dist/cjs/features/build.js.map +1 -1
- package/dist/cjs/features/detect.js +1 -1
- package/dist/cjs/features/detect.js.map +1 -1
- package/dist/cjs/features/features.js +4 -4
- package/dist/cjs/features/features.js.map +1 -1
- package/dist/cjs/features/types.d.ts +1 -1
- package/dist/cjs/features/types.d.ts.map +1 -1
- package/dist/cjs/index.d.ts +12 -10
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/scroll.d.ts +2 -2
- package/dist/cjs/scroll.d.ts.map +1 -1
- package/dist/cjs/scroll.js +5 -4
- package/dist/cjs/scroll.js.map +1 -1
- package/dist/cjs/sgr/color/channel.d.ts.map +1 -1
- package/dist/cjs/sgr/color/channel.js +2 -1
- package/dist/cjs/sgr/color/channel.js.map +1 -1
- package/dist/cjs/sgr/format-builder.d.ts.map +1 -1
- package/dist/cjs/sgr/format-builder.js +3 -2
- package/dist/cjs/sgr/format-builder.js.map +1 -1
- package/dist/cjs/sgr/reset.d.ts.map +1 -1
- package/dist/cjs/sgr/reset.js +2 -1
- package/dist/cjs/sgr/reset.js.map +1 -1
- package/dist/cjs/simplify/simplify.d.ts.map +1 -1
- package/dist/cjs/simplify/simplify.js +2 -1
- package/dist/cjs/simplify/simplify.js.map +1 -1
- package/dist/cjs/slice.d.ts +4 -0
- package/dist/cjs/slice.d.ts.map +1 -1
- package/dist/cjs/slice.js +1 -0
- package/dist/cjs/slice.js.map +1 -1
- package/dist/cjs/split-at.d.ts +12 -0
- package/dist/cjs/split-at.d.ts.map +1 -0
- package/dist/cjs/split-at.js +26 -0
- package/dist/cjs/split-at.js.map +1 -0
- package/dist/cjs/terminal.d.ts.map +1 -1
- package/dist/cjs/terminal.js +13 -12
- package/dist/cjs/terminal.js.map +1 -1
- package/dist/cjs/types.d.ts +4 -2
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/utils.d.ts +5 -0
- package/dist/cjs/utils.d.ts.map +1 -0
- package/dist/cjs/utils.js +14 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/esm/ansi.d.ts +13 -11
- package/dist/esm/ansi.d.ts.map +1 -1
- package/dist/esm/ansi.js +6 -4
- package/dist/esm/ansi.js.map +1 -1
- package/dist/esm/cursor.d.ts +30 -0
- package/dist/esm/cursor.d.ts.map +1 -0
- package/dist/esm/{caret.js → cursor.js} +21 -19
- package/dist/esm/cursor.js.map +1 -0
- package/dist/esm/erase.d.ts.map +1 -1
- package/dist/esm/erase.js +8 -7
- package/dist/esm/erase.js.map +1 -1
- package/dist/esm/features/build.d.ts +1 -1
- package/dist/esm/features/build.d.ts.map +1 -1
- package/dist/esm/features/build.js +4 -4
- package/dist/esm/features/build.js.map +1 -1
- package/dist/esm/features/detect.js +1 -1
- package/dist/esm/features/detect.js.map +1 -1
- package/dist/esm/features/features.js +4 -4
- package/dist/esm/features/features.js.map +1 -1
- package/dist/esm/features/types.d.ts +1 -1
- package/dist/esm/features/types.d.ts.map +1 -1
- package/dist/esm/scroll.d.ts +2 -2
- package/dist/esm/scroll.d.ts.map +1 -1
- package/dist/esm/scroll.js +5 -4
- package/dist/esm/scroll.js.map +1 -1
- package/dist/esm/sgr/color/channel.d.ts.map +1 -1
- package/dist/esm/sgr/color/channel.js +2 -1
- package/dist/esm/sgr/color/channel.js.map +1 -1
- package/dist/esm/sgr/format-builder.d.ts.map +1 -1
- package/dist/esm/sgr/format-builder.js +3 -2
- package/dist/esm/sgr/format-builder.js.map +1 -1
- package/dist/esm/sgr/reset.d.ts.map +1 -1
- package/dist/esm/sgr/reset.js +2 -1
- package/dist/esm/sgr/reset.js.map +1 -1
- package/dist/esm/simplify/simplify.d.ts.map +1 -1
- package/dist/esm/simplify/simplify.js +2 -1
- package/dist/esm/simplify/simplify.js.map +1 -1
- package/dist/esm/slice.d.ts +4 -0
- package/dist/esm/slice.d.ts.map +1 -1
- package/dist/esm/slice.js +1 -1
- package/dist/esm/slice.js.map +1 -1
- package/dist/esm/split-at.d.ts +12 -0
- package/dist/esm/split-at.d.ts.map +1 -0
- package/dist/esm/split-at.js +23 -0
- package/dist/esm/split-at.js.map +1 -0
- package/dist/esm/terminal.d.ts.map +1 -1
- package/dist/esm/terminal.js +13 -12
- package/dist/esm/terminal.js.map +1 -1
- package/dist/esm/types.d.ts +4 -2
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils.d.ts +5 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +8 -0
- package/dist/esm/utils.js.map +1 -0
- package/package.json +1 -1
- package/src/ansi.ts +6 -4
- package/src/cursor.ts +80 -0
- package/src/erase.ts +9 -7
- package/src/features/build.ts +4 -4
- package/src/features/detect.ts +1 -1
- package/src/features/features.ts +4 -4
- package/src/features/types.ts +1 -1
- package/src/scroll.ts +6 -4
- package/src/sgr/color/channel.ts +2 -1
- package/src/sgr/format-builder.ts +3 -2
- package/src/sgr/reset.ts +3 -1
- package/src/simplify/simplify.ts +2 -1
- package/src/slice.ts +1 -1
- package/src/split-at.ts +32 -0
- package/src/terminal.ts +14 -12
- package/src/types.ts +4 -2
- package/src/utils.ts +15 -0
- package/dist/cjs/caret.d.ts +0 -30
- package/dist/cjs/caret.d.ts.map +0 -1
- package/dist/cjs/caret.js +0 -68
- package/dist/cjs/caret.js.map +0 -1
- package/dist/esm/caret.d.ts +0 -30
- package/dist/esm/caret.d.ts.map +0 -1
- package/dist/esm/caret.js.map +0 -1
- package/src/caret.ts +0 -80
package/src/features/types.ts
CHANGED
package/src/scroll.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
import {count, noop} from "./utils";
|
|
2
|
+
|
|
1
3
|
const scroll = {
|
|
2
|
-
up :
|
|
3
|
-
down :
|
|
4
|
+
up : count<[lines?: number]>("S"),
|
|
5
|
+
down : count<[lines?: number]>("T"),
|
|
4
6
|
};
|
|
5
7
|
|
|
6
8
|
export type Scroll = typeof scroll;
|
|
7
9
|
|
|
8
10
|
const disabled: Scroll = {
|
|
9
|
-
up :
|
|
10
|
-
down :
|
|
11
|
+
up : noop,
|
|
12
|
+
down : noop,
|
|
11
13
|
};
|
|
12
14
|
|
|
13
15
|
export const makeScroll = (enabled = true): Scroll => enabled ? scroll : disabled;
|
package/src/sgr/color/channel.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import {csi} from "../../utils";
|
|
1
2
|
import {lazy} from "../lazy";
|
|
2
3
|
import {buildContext} from "./context";
|
|
3
4
|
import {makeRGB, makeX256} from "./rgb";
|
|
@@ -29,7 +30,7 @@ export function makeChannel(
|
|
|
29
30
|
const rtn = {
|
|
30
31
|
rgb : makeRGB(ctx),
|
|
31
32
|
x256 : makeX256(ctx),
|
|
32
|
-
default : colorDepth > 1 ?
|
|
33
|
+
default : colorDepth > 1 ? csi(close, "m") : "",
|
|
33
34
|
} as Channel;
|
|
34
35
|
|
|
35
36
|
for (let i = 0; i < colors.length; i++) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {define} from "@peteanderson/props";
|
|
2
|
+
import {csi} from "../utils";
|
|
2
3
|
import {combineCodes} from "./combine";
|
|
3
4
|
import {lazy} from "./lazy";
|
|
4
5
|
|
|
@@ -19,8 +20,8 @@ export const makeFormatBuilder = (makeChain: ChainBuilder): FormatBuilder =>
|
|
|
19
20
|
const empty = Array.isArray(open) && !open.length;
|
|
20
21
|
const openCode = empty ? "" : codeSequence(open);
|
|
21
22
|
const closeCode = empty ? "" : codeSequence(close);
|
|
22
|
-
const openSequence = empty ? ""
|
|
23
|
-
const closeSequence = empty ? ""
|
|
23
|
+
const openSequence = empty ? "" : csi(openCode, "m");
|
|
24
|
+
const closeSequence = empty ? "" : csi(closeCode, "m");
|
|
24
25
|
const reopenCode = reset && !empty ? `${closeCode};${openCode}` : openCode;
|
|
25
26
|
|
|
26
27
|
const rxClose = new RegExp(
|
package/src/sgr/reset.ts
CHANGED
package/src/simplify/simplify.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {rxSGR} from "../patterns";
|
|
2
|
+
import {csi} from "../utils";
|
|
2
3
|
import {State} from "./state";
|
|
3
4
|
|
|
4
5
|
export function simplify(text: string): string {
|
|
@@ -20,7 +21,7 @@ export function simplify(text: string): string {
|
|
|
20
21
|
|
|
21
22
|
const newCodes = state.update(codes);
|
|
22
23
|
if (newCodes.length)
|
|
23
|
-
result +=
|
|
24
|
+
result += csi(newCodes.join(";"), "m");
|
|
24
25
|
result += chunk;
|
|
25
26
|
}
|
|
26
27
|
|
package/src/slice.ts
CHANGED
package/src/split-at.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import {scanCSI} from "./slice";
|
|
2
|
+
|
|
3
|
+
import type {slice} from "./slice";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Split a string into two parts at the given visible index (i.e., the given visible character,
|
|
7
|
+
* ignoring ANSI escape codes). The returned strings will include any ANSI escape codes from within
|
|
8
|
+
* each slice.
|
|
9
|
+
*
|
|
10
|
+
* Note that unlike {@linkcode slice}, this function does not include any SGR codes (m) from before
|
|
11
|
+
* or after the split point. If you need to preserve the terminal state before and after the split,
|
|
12
|
+
* use {@linkcode slice} instead.
|
|
13
|
+
*/
|
|
14
|
+
export function splitAt(text: string, visibleIndex: number): [start: string, end: string] {
|
|
15
|
+
if (!visibleIndex)
|
|
16
|
+
return ["", text];
|
|
17
|
+
|
|
18
|
+
if (visibleIndex < 0)
|
|
19
|
+
throw new Error("visibleIndex must be non-negative");
|
|
20
|
+
|
|
21
|
+
if (visibleIndex > text.length)
|
|
22
|
+
return [text, ""];
|
|
23
|
+
|
|
24
|
+
const {index} = scanCSI(text, 0, visibleIndex);
|
|
25
|
+
|
|
26
|
+
if (index === text.length)
|
|
27
|
+
return [text, ""];
|
|
28
|
+
|
|
29
|
+
return [text.slice(0, index), text.slice(index)];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export type SplitAt = typeof splitAt;
|
package/src/terminal.ts
CHANGED
|
@@ -1,26 +1,28 @@
|
|
|
1
|
+
import {csi} from "./utils";
|
|
2
|
+
|
|
1
3
|
const terminal = {
|
|
2
4
|
focusReporting: {
|
|
3
|
-
enable : "
|
|
4
|
-
disable : "
|
|
5
|
-
focus : "
|
|
6
|
-
blur : "
|
|
5
|
+
enable : csi("?1004h"),
|
|
6
|
+
disable : csi("?1004l"),
|
|
7
|
+
focus : csi("I"),
|
|
8
|
+
blur : csi("O"),
|
|
7
9
|
},
|
|
8
10
|
|
|
9
11
|
alternateScreen: {
|
|
10
|
-
enable : "
|
|
11
|
-
disable : "
|
|
12
|
+
enable : csi("?1049h"),
|
|
13
|
+
disable : csi("?1049l"),
|
|
12
14
|
|
|
13
15
|
legacy: {
|
|
14
|
-
enable : "
|
|
15
|
-
disable : "
|
|
16
|
+
enable : csi("?47h"),
|
|
17
|
+
disable : csi("?47l"),
|
|
16
18
|
},
|
|
17
19
|
},
|
|
18
20
|
|
|
19
21
|
bracketedPaste: {
|
|
20
|
-
enable : "
|
|
21
|
-
disable : "
|
|
22
|
-
start : "
|
|
23
|
-
end : "
|
|
22
|
+
enable : csi("?2004h"),
|
|
23
|
+
disable : csi("?2004l"),
|
|
24
|
+
start : csi("200~"),
|
|
25
|
+
end : csi("201~"),
|
|
24
26
|
},
|
|
25
27
|
};
|
|
26
28
|
|
package/src/types.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {Cursor} from "./cursor";
|
|
2
2
|
import type {Erase} from "./erase";
|
|
3
3
|
import type {Features} from "./features";
|
|
4
4
|
import type {PadEnd, PadStart} from "./pad";
|
|
@@ -6,11 +6,12 @@ import type {Scroll} from "./scroll";
|
|
|
6
6
|
import type {SGR} from "./sgr";
|
|
7
7
|
import type {Simplify} from "./simplify";
|
|
8
8
|
import type {Slice} from "./slice";
|
|
9
|
+
import type {SplitAt} from "./split-at";
|
|
9
10
|
import type {Sanitize, Strip, VisibleLength} from "./strip";
|
|
10
11
|
import type {Terminal} from "./terminal";
|
|
11
12
|
|
|
12
13
|
export type Ansi = SGR & {
|
|
13
|
-
|
|
14
|
+
cursor : Cursor;
|
|
14
15
|
erase : Erase;
|
|
15
16
|
scroll : Scroll;
|
|
16
17
|
terminal : Terminal;
|
|
@@ -22,6 +23,7 @@ export type Ansi = SGR & {
|
|
|
22
23
|
visibleLength : VisibleLength;
|
|
23
24
|
sanitize : Sanitize;
|
|
24
25
|
slice : Slice;
|
|
26
|
+
splitAt : SplitAt;
|
|
25
27
|
simplify : Simplify;
|
|
26
28
|
|
|
27
29
|
features : Features;
|
package/src/utils.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function csi(command: string): string;
|
|
2
|
+
export function csi(params: string | number | undefined, command: string): string;
|
|
3
|
+
export function csi(...args: [string] | [string | number | undefined, string]): string {
|
|
4
|
+
const command = args.pop() as string;
|
|
5
|
+
const params = args.pop();
|
|
6
|
+
|
|
7
|
+
return `\x1b[${params === undefined ? "" : params}${command}`;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const count = <Param extends [number?] = [count?: number]>(
|
|
11
|
+
code: string
|
|
12
|
+
): (...args: Param) => string =>
|
|
13
|
+
(count?: number): string => count === 0 ? "" : csi(count === 1 ? undefined : count, code);
|
|
14
|
+
|
|
15
|
+
export const noop = () => "";
|
package/dist/cjs/caret.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
declare const caret: {
|
|
2
|
-
up: (count?: number) => string;
|
|
3
|
-
down: (count?: number) => string;
|
|
4
|
-
forward: (count?: number) => string;
|
|
5
|
-
backward: (count?: number) => string;
|
|
6
|
-
nextLine: (count?: number) => string;
|
|
7
|
-
prevLine: (count?: number) => string;
|
|
8
|
-
x: (x: number) => string;
|
|
9
|
-
save: string;
|
|
10
|
-
restore: string;
|
|
11
|
-
hide: string;
|
|
12
|
-
show: string;
|
|
13
|
-
position: {
|
|
14
|
-
get: string;
|
|
15
|
-
set: (x: number, y: number) => string;
|
|
16
|
-
};
|
|
17
|
-
shape: {
|
|
18
|
-
steadyBlock: string;
|
|
19
|
-
steadyBar: string;
|
|
20
|
-
steadyUnderline: string;
|
|
21
|
-
blinkingBlock: string;
|
|
22
|
-
blinkingBar: string;
|
|
23
|
-
blinkingUnderline: string;
|
|
24
|
-
default: string;
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
export type Caret = typeof caret;
|
|
28
|
-
export declare const makeCaret: (enabled?: boolean) => Caret;
|
|
29
|
-
export {};
|
|
30
|
-
//# sourceMappingURL=caret.d.ts.map
|
package/dist/cjs/caret.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"caret.d.ts","sourceRoot":"","sources":["../../src/caret.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,KAAK;iBAL6B,MAAM,KAAG,MAAM;mBAAf,MAAM,KAAG,MAAM;sBAAf,MAAM,KAAG,MAAM;uBAAf,MAAM,KAAG,MAAM;uBAAf,MAAM,KAAG,MAAM;uBAAf,MAAM,KAAG,MAAM;WAa/C,MAAM,KAAG,MAAM;;;;;;;iBAkBZ,MAAM,KAAK,MAAM,KAAG,MAAM;;;;;;;;;;;CAYpC,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC;AAkCjC,eAAO,MAAM,SAAS,GAAI,iBAAc,KAAG,KAAmC,CAAC"}
|
package/dist/cjs/caret.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeCaret = void 0;
|
|
4
|
-
const move = (code) => (count) => `\x1b[${count === undefined ? "" : count ? count : "?"}${code}`;
|
|
5
|
-
const noop = () => "";
|
|
6
|
-
const caret = {
|
|
7
|
-
up: move("A"),
|
|
8
|
-
down: move("B"),
|
|
9
|
-
forward: move("C"),
|
|
10
|
-
backward: move("D"),
|
|
11
|
-
nextLine: move("E"),
|
|
12
|
-
prevLine: move("F"),
|
|
13
|
-
x: (x) => `\x1b[${x}G`,
|
|
14
|
-
// These are the old VT100 codes, but they're widely supported by old and new terminals. The
|
|
15
|
-
// newer VT220 codes are standardized by ECMA and ISO, and are also widely supported, but might
|
|
16
|
-
// not work in some older terminals. The VT220 codes are:
|
|
17
|
-
//
|
|
18
|
-
// ```
|
|
19
|
-
// save : "\x1b[s",
|
|
20
|
-
// restore : "\x1b[u",
|
|
21
|
-
// ```
|
|
22
|
-
save: "\x1b7",
|
|
23
|
-
restore: "\x1b8",
|
|
24
|
-
hide: "\x1b[?25l",
|
|
25
|
-
show: "\x1b[?25h",
|
|
26
|
-
position: {
|
|
27
|
-
get: "\x1b[6n",
|
|
28
|
-
set: (x, y) => `\x1b[${y};${x}H`,
|
|
29
|
-
},
|
|
30
|
-
shape: {
|
|
31
|
-
steadyBlock: "\x1b[2 q",
|
|
32
|
-
steadyBar: "\x1b[6 q",
|
|
33
|
-
steadyUnderline: "\x1b[4 q",
|
|
34
|
-
blinkingBlock: "\x1b[1 q",
|
|
35
|
-
blinkingBar: "\x1b[5 q",
|
|
36
|
-
blinkingUnderline: "\x1b[3 q",
|
|
37
|
-
default: "\x1b[0 q",
|
|
38
|
-
},
|
|
39
|
-
};
|
|
40
|
-
const disabled = {
|
|
41
|
-
up: noop,
|
|
42
|
-
down: noop,
|
|
43
|
-
forward: noop,
|
|
44
|
-
backward: noop,
|
|
45
|
-
nextLine: noop,
|
|
46
|
-
prevLine: noop,
|
|
47
|
-
x: noop,
|
|
48
|
-
save: "",
|
|
49
|
-
restore: "",
|
|
50
|
-
hide: "",
|
|
51
|
-
show: "",
|
|
52
|
-
position: {
|
|
53
|
-
get: "",
|
|
54
|
-
set: noop,
|
|
55
|
-
},
|
|
56
|
-
shape: {
|
|
57
|
-
steadyBlock: "",
|
|
58
|
-
steadyBar: "",
|
|
59
|
-
steadyUnderline: "",
|
|
60
|
-
blinkingBlock: "",
|
|
61
|
-
blinkingBar: "",
|
|
62
|
-
blinkingUnderline: "",
|
|
63
|
-
default: "",
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
const makeCaret = (enabled = true) => enabled ? caret : disabled;
|
|
67
|
-
exports.makeCaret = makeCaret;
|
|
68
|
-
//# sourceMappingURL=caret.js.map
|
package/dist/cjs/caret.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"caret.js","sourceRoot":"","sources":["../../src/caret.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,KAAc,EAAU,EAAE,CACzD,QAAQ,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;AAEjE,MAAM,IAAI,GAAG,GAAW,EAAE,CAAC,EAAE,CAAC;AAE9B,MAAM,KAAK,GAAG;IACb,EAAE,EAAS,IAAI,CAAC,GAAG,CAAC;IACpB,IAAI,EAAO,IAAI,CAAC,GAAG,CAAC;IACpB,OAAO,EAAI,IAAI,CAAC,GAAG,CAAC;IACpB,QAAQ,EAAG,IAAI,CAAC,GAAG,CAAC;IACpB,QAAQ,EAAG,IAAI,CAAC,GAAG,CAAC;IACpB,QAAQ,EAAG,IAAI,CAAC,GAAG,CAAC;IAEpB,CAAC,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,QAAQ,CAAC,GAAG;IAEtC,4FAA4F;IAC5F,+FAA+F;IAC/F,yDAAyD;IACzD,EAAE;IACF,MAAM;IACN,sBAAsB;IACtB,sBAAsB;IACtB,MAAM;IACN,IAAI,EAAM,OAAO;IACjB,OAAO,EAAG,OAAO;IAEjB,IAAI,EAAG,WAAW;IAClB,IAAI,EAAG,WAAW;IAElB,QAAQ,EAAE;QACT,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;KACxD;IAED,KAAK,EAAE;QACN,WAAW,EAAS,UAAU;QAC9B,SAAS,EAAW,UAAU;QAC9B,eAAe,EAAK,UAAU;QAC9B,aAAa,EAAO,UAAU;QAC9B,WAAW,EAAS,UAAU;QAC9B,iBAAiB,EAAG,UAAU;QAC9B,OAAO,EAAa,UAAU;KAC9B;CACD,CAAC;AAIF,MAAM,QAAQ,GAAU;IACvB,EAAE,EAAS,IAAI;IACf,IAAI,EAAO,IAAI;IACf,OAAO,EAAI,IAAI;IACf,QAAQ,EAAG,IAAI;IACf,QAAQ,EAAG,IAAI;IACf,QAAQ,EAAG,IAAI;IAEf,CAAC,EAAE,IAAI;IAEP,IAAI,EAAM,EAAE;IACZ,OAAO,EAAG,EAAE;IAEZ,IAAI,EAAG,EAAE;IACT,IAAI,EAAG,EAAE;IAET,QAAQ,EAAE;QACT,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,IAAI;KACT;IAED,KAAK,EAAE;QACN,WAAW,EAAS,EAAE;QACtB,SAAS,EAAW,EAAE;QACtB,eAAe,EAAK,EAAE;QACtB,aAAa,EAAO,EAAE;QACtB,WAAW,EAAS,EAAE;QACtB,iBAAiB,EAAG,EAAE;QACtB,OAAO,EAAa,EAAE;KACtB;CACD,CAAC;AAEK,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,IAAI,EAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAAlE,QAAA,SAAS,aAAyD"}
|
package/dist/esm/caret.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
declare const caret: {
|
|
2
|
-
up: (count?: number) => string;
|
|
3
|
-
down: (count?: number) => string;
|
|
4
|
-
forward: (count?: number) => string;
|
|
5
|
-
backward: (count?: number) => string;
|
|
6
|
-
nextLine: (count?: number) => string;
|
|
7
|
-
prevLine: (count?: number) => string;
|
|
8
|
-
x: (x: number) => string;
|
|
9
|
-
save: string;
|
|
10
|
-
restore: string;
|
|
11
|
-
hide: string;
|
|
12
|
-
show: string;
|
|
13
|
-
position: {
|
|
14
|
-
get: string;
|
|
15
|
-
set: (x: number, y: number) => string;
|
|
16
|
-
};
|
|
17
|
-
shape: {
|
|
18
|
-
steadyBlock: string;
|
|
19
|
-
steadyBar: string;
|
|
20
|
-
steadyUnderline: string;
|
|
21
|
-
blinkingBlock: string;
|
|
22
|
-
blinkingBar: string;
|
|
23
|
-
blinkingUnderline: string;
|
|
24
|
-
default: string;
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
export type Caret = typeof caret;
|
|
28
|
-
export declare const makeCaret: (enabled?: boolean) => Caret;
|
|
29
|
-
export {};
|
|
30
|
-
//# sourceMappingURL=caret.d.ts.map
|
package/dist/esm/caret.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"caret.d.ts","sourceRoot":"","sources":["../../src/caret.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,KAAK;iBAL6B,MAAM,KAAG,MAAM;mBAAf,MAAM,KAAG,MAAM;sBAAf,MAAM,KAAG,MAAM;uBAAf,MAAM,KAAG,MAAM;uBAAf,MAAM,KAAG,MAAM;uBAAf,MAAM,KAAG,MAAM;WAa/C,MAAM,KAAG,MAAM;;;;;;;iBAkBZ,MAAM,KAAK,MAAM,KAAG,MAAM;;;;;;;;;;;CAYpC,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC;AAkCjC,eAAO,MAAM,SAAS,GAAI,iBAAc,KAAG,KAAmC,CAAC"}
|
package/dist/esm/caret.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"caret.js","sourceRoot":"","sources":["../../src/caret.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,KAAc,EAAU,EAAE,CACzD,QAAQ,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;AAEjE,MAAM,IAAI,GAAG,GAAW,EAAE,CAAC,EAAE,CAAC;AAE9B,MAAM,KAAK,GAAG;IACb,EAAE,EAAS,IAAI,CAAC,GAAG,CAAC;IACpB,IAAI,EAAO,IAAI,CAAC,GAAG,CAAC;IACpB,OAAO,EAAI,IAAI,CAAC,GAAG,CAAC;IACpB,QAAQ,EAAG,IAAI,CAAC,GAAG,CAAC;IACpB,QAAQ,EAAG,IAAI,CAAC,GAAG,CAAC;IACpB,QAAQ,EAAG,IAAI,CAAC,GAAG,CAAC;IAEpB,CAAC,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,QAAQ,CAAC,GAAG;IAEtC,4FAA4F;IAC5F,+FAA+F;IAC/F,yDAAyD;IACzD,EAAE;IACF,MAAM;IACN,sBAAsB;IACtB,sBAAsB;IACtB,MAAM;IACN,IAAI,EAAM,OAAO;IACjB,OAAO,EAAG,OAAO;IAEjB,IAAI,EAAG,WAAW;IAClB,IAAI,EAAG,WAAW;IAElB,QAAQ,EAAE;QACT,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;KACxD;IAED,KAAK,EAAE;QACN,WAAW,EAAS,UAAU;QAC9B,SAAS,EAAW,UAAU;QAC9B,eAAe,EAAK,UAAU;QAC9B,aAAa,EAAO,UAAU;QAC9B,WAAW,EAAS,UAAU;QAC9B,iBAAiB,EAAG,UAAU;QAC9B,OAAO,EAAa,UAAU;KAC9B;CACD,CAAC;AAIF,MAAM,QAAQ,GAAU;IACvB,EAAE,EAAS,IAAI;IACf,IAAI,EAAO,IAAI;IACf,OAAO,EAAI,IAAI;IACf,QAAQ,EAAG,IAAI;IACf,QAAQ,EAAG,IAAI;IACf,QAAQ,EAAG,IAAI;IAEf,CAAC,EAAE,IAAI;IAEP,IAAI,EAAM,EAAE;IACZ,OAAO,EAAG,EAAE;IAEZ,IAAI,EAAG,EAAE;IACT,IAAI,EAAG,EAAE;IAET,QAAQ,EAAE;QACT,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,IAAI;KACT;IAED,KAAK,EAAE;QACN,WAAW,EAAS,EAAE;QACtB,SAAS,EAAW,EAAE;QACtB,eAAe,EAAK,EAAE;QACtB,aAAa,EAAO,EAAE;QACtB,WAAW,EAAS,EAAE;QACtB,iBAAiB,EAAG,EAAE;QACtB,OAAO,EAAa,EAAE;KACtB;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,IAAI,EAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC"}
|
package/src/caret.ts
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
const move = (code: string) => (count?: number): string =>
|
|
2
|
-
`\x1b[${count === undefined ? "" : count ? count : "?"}${code}`;
|
|
3
|
-
|
|
4
|
-
const noop = (): string => "";
|
|
5
|
-
|
|
6
|
-
const caret = {
|
|
7
|
-
up : move("A"),
|
|
8
|
-
down : move("B"),
|
|
9
|
-
forward : move("C"),
|
|
10
|
-
backward : move("D"),
|
|
11
|
-
nextLine : move("E"),
|
|
12
|
-
prevLine : move("F"),
|
|
13
|
-
|
|
14
|
-
x: (x: number): string => `\x1b[${x}G`,
|
|
15
|
-
|
|
16
|
-
// These are the old VT100 codes, but they're widely supported by old and new terminals. The
|
|
17
|
-
// newer VT220 codes are standardized by ECMA and ISO, and are also widely supported, but might
|
|
18
|
-
// not work in some older terminals. The VT220 codes are:
|
|
19
|
-
//
|
|
20
|
-
// ```
|
|
21
|
-
// save : "\x1b[s",
|
|
22
|
-
// restore : "\x1b[u",
|
|
23
|
-
// ```
|
|
24
|
-
save : "\x1b7",
|
|
25
|
-
restore : "\x1b8",
|
|
26
|
-
|
|
27
|
-
hide : "\x1b[?25l",
|
|
28
|
-
show : "\x1b[?25h",
|
|
29
|
-
|
|
30
|
-
position: {
|
|
31
|
-
get: "\x1b[6n",
|
|
32
|
-
set: (x: number, y: number): string => `\x1b[${y};${x}H`,
|
|
33
|
-
},
|
|
34
|
-
|
|
35
|
-
shape: {
|
|
36
|
-
steadyBlock : "\x1b[2 q",
|
|
37
|
-
steadyBar : "\x1b[6 q",
|
|
38
|
-
steadyUnderline : "\x1b[4 q",
|
|
39
|
-
blinkingBlock : "\x1b[1 q",
|
|
40
|
-
blinkingBar : "\x1b[5 q",
|
|
41
|
-
blinkingUnderline : "\x1b[3 q",
|
|
42
|
-
default : "\x1b[0 q",
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
export type Caret = typeof caret;
|
|
47
|
-
|
|
48
|
-
const disabled: Caret = {
|
|
49
|
-
up : noop,
|
|
50
|
-
down : noop,
|
|
51
|
-
forward : noop,
|
|
52
|
-
backward : noop,
|
|
53
|
-
nextLine : noop,
|
|
54
|
-
prevLine : noop,
|
|
55
|
-
|
|
56
|
-
x: noop,
|
|
57
|
-
|
|
58
|
-
save : "",
|
|
59
|
-
restore : "",
|
|
60
|
-
|
|
61
|
-
hide : "",
|
|
62
|
-
show : "",
|
|
63
|
-
|
|
64
|
-
position: {
|
|
65
|
-
get: "",
|
|
66
|
-
set: noop,
|
|
67
|
-
},
|
|
68
|
-
|
|
69
|
-
shape: {
|
|
70
|
-
steadyBlock : "",
|
|
71
|
-
steadyBar : "",
|
|
72
|
-
steadyUnderline : "",
|
|
73
|
-
blinkingBlock : "",
|
|
74
|
-
blinkingBar : "",
|
|
75
|
-
blinkingUnderline : "",
|
|
76
|
-
default : "",
|
|
77
|
-
},
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
export const makeCaret = (enabled = true): Caret => enabled ? caret : disabled;
|