@peteanderson/ansi 3.4.0 → 3.6.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 +15 -8
- package/dist/cjs/ansi.d.ts +3 -0
- package/dist/cjs/ansi.d.ts.map +1 -1
- package/dist/cjs/ansi.js +3 -2
- package/dist/cjs/ansi.js.map +1 -1
- package/dist/cjs/cursor.js +6 -6
- package/dist/cjs/cursor.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/ins-del.js +4 -4
- package/dist/cjs/ins-del.js.map +1 -1
- package/dist/cjs/scroll.js +2 -2
- package/dist/cjs/scroll.js.map +1 -1
- package/dist/cjs/utils.d.ts +1 -1
- package/dist/cjs/utils.d.ts.map +1 -1
- package/dist/cjs/utils.js +13 -1
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/ansi.d.ts +3 -0
- package/dist/esm/ansi.d.ts.map +1 -1
- package/dist/esm/ansi.js +2 -1
- package/dist/esm/ansi.js.map +1 -1
- package/dist/esm/cursor.js +6 -6
- package/dist/esm/cursor.js.map +1 -1
- package/dist/esm/ins-del.js +4 -4
- package/dist/esm/ins-del.js.map +1 -1
- package/dist/esm/scroll.js +2 -2
- package/dist/esm/scroll.js.map +1 -1
- package/dist/esm/utils.d.ts +1 -1
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +13 -1
- package/dist/esm/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/ansi.ts +3 -1
- package/src/cursor.ts +6 -6
- package/src/ins-del.ts +4 -4
- package/src/scroll.ts +2 -2
- package/src/utils.ts +20 -2
package/README.md
CHANGED
|
@@ -166,8 +166,10 @@ Available if feature is enabled:
|
|
|
166
166
|
- `cursor.position.get` - get the current cursor position (terminal sends position to stdin)
|
|
167
167
|
- `cursor.position.set(row, col)` - set cursor position (1-based indexing)
|
|
168
168
|
- `cursor.shape.block` / `cursor.shape.underline` / `cursor.shape.bar` - change cursor shape
|
|
169
|
-
- `cursor.up(n)` / `cursor.down(n)` / `cursor.forward(n)` / `cursor.backward(n)` - move cursor
|
|
170
|
-
|
|
169
|
+
- `cursor.up(n)` / `cursor.down(n)` / `cursor.forward(n)` / `cursor.backward(n)` - move cursor;
|
|
170
|
+
negative values move in the opposite direction
|
|
171
|
+
- `cursor.nextLine(n)` / `cursor.prevLine(n)` - move cursor to next/previous line; negative values
|
|
172
|
+
move in the opposite direction
|
|
171
173
|
- `cursor.x(col)` - move cursor to column (1-based)
|
|
172
174
|
- `cursor.save` / `cursor.restore` - save/restore cursor position (VT100)
|
|
173
175
|
|
|
@@ -187,15 +189,15 @@ Terminal control features (available if feature is enabled):
|
|
|
187
189
|
|
|
188
190
|
Available if feature is enabled:
|
|
189
191
|
|
|
190
|
-
- `insert.char(count)` - insert characters (default 1)
|
|
191
|
-
- `insert.line(count)` - insert lines (default 1)
|
|
192
|
+
- `insert.char(count)` - insert characters (default 1); negative values delete characters
|
|
193
|
+
- `insert.line(count)` - insert lines (default 1); negative values delete lines
|
|
192
194
|
|
|
193
195
|
### `delete`
|
|
194
196
|
|
|
195
197
|
Available if feature is enabled:
|
|
196
198
|
|
|
197
|
-
- `delete.char(count)` - delete characters (default 1)
|
|
198
|
-
- `delete.line(count)` - delete lines (default 1)
|
|
199
|
+
- `delete.char(count)` - delete characters (default 1); negative values insert characters
|
|
200
|
+
- `delete.line(count)` - delete lines (default 1); negative values insert lines
|
|
199
201
|
|
|
200
202
|
### `erase`
|
|
201
203
|
|
|
@@ -210,8 +212,8 @@ Available if feature is enabled:
|
|
|
210
212
|
|
|
211
213
|
Available if feature is enabled:
|
|
212
214
|
|
|
213
|
-
- `scroll.up(lines)` - scroll up (default 1 line)
|
|
214
|
-
- `scroll.down(lines)` - scroll down (default 1 line)
|
|
215
|
+
- `scroll.up(lines)` - scroll up (default 1 line); negative values scroll down
|
|
216
|
+
- `scroll.down(lines)` - scroll down (default 1 line); negative values scroll up
|
|
215
217
|
|
|
216
218
|
### `strip(text)`
|
|
217
219
|
|
|
@@ -258,6 +260,11 @@ Object containing the detected feature configuration:
|
|
|
258
260
|
}
|
|
259
261
|
```
|
|
260
262
|
|
|
263
|
+
### `disabled`
|
|
264
|
+
|
|
265
|
+
A pre-built `Ansi` instance with all features disabled. Useful for testing or for disabling output
|
|
266
|
+
in certain environments.
|
|
267
|
+
|
|
261
268
|
## License
|
|
262
269
|
|
|
263
270
|
MIT
|
package/dist/cjs/ansi.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { Args } from "./features";
|
|
|
5
5
|
import type { Ansi } from "./types";
|
|
6
6
|
export declare function makeAnsi(...args: Args): Ansi;
|
|
7
7
|
export declare const ansi: Ansi;
|
|
8
|
+
export declare const disabled: Ansi;
|
|
8
9
|
export declare const fg: import("./sgr/types").Channel<"bg" | import("./sgr/types").StyleKey>, bg: import("./sgr/types").Channel<"fg" | import("./sgr/types").StyleKey>, style: import("./sgr/types").Style<import("./sgr/types").ChainKey>, reset: string, cursor: {
|
|
9
10
|
up: (count?: number | undefined) => string;
|
|
10
11
|
down: (count?: number | undefined) => string;
|
|
@@ -85,6 +86,8 @@ declare const _default: typeof makeAnsi & import("./sgr").SGR & {
|
|
|
85
86
|
splitAt: import("./split-at").SplitAt;
|
|
86
87
|
simplify: import("./simplify").Simplify;
|
|
87
88
|
features: import("./features").Features;
|
|
89
|
+
} & {
|
|
90
|
+
disabled: Ansi;
|
|
88
91
|
};
|
|
89
92
|
export default _default;
|
|
90
93
|
//# sourceMappingURL=ansi.d.ts.map
|
package/dist/cjs/ansi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAuB,OAAO,CAAC;AAKxD,OAAO,EAAC,OAAO,EAAC,MAAgC,YAAY,CAAC;AAC7D,OAAO,EAAW,KAAK,EAAE,aAAa,EAAC,MAAS,SAAS,CAAC;AAG1D,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAElC,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CA0B5C;AAED,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAuB,OAAO,CAAC;AAKxD,OAAO,EAAC,OAAO,EAAC,MAAgC,YAAY,CAAC;AAC7D,OAAO,EAAW,KAAK,EAAE,aAAa,EAAC,MAAS,SAAS,CAAC;AAG1D,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAElC,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CA0B5C;AAED,eAAO,MAAM,IAAI,MAAiB,CAAC;AACnC,eAAO,MAAM,QAAQ,MAAkB,CAAC;AAExC,eAAO,MAAO,EAAE,wEAAE,EAAE,wEAAE,KAAK,+DAAE,KAAK,UAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,KAAK;;;;;;;;;;;;;GAAE,MAAM;;;GAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;CAAQ,CAAC;AAE5E,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAC,CAAA;;;;;;;;;;;;;;;;;;;;AAExD,wBAIE"}
|
package/dist/cjs/ansi.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.visibleLength = exports.strip = exports.splitAt = exports.padStart = exports.padEnd = exports.terminal = exports.scroll = exports.erase = exports.cursor = exports.reset = exports.style = exports.bg = exports.fg = exports.ansi = void 0;
|
|
3
|
+
exports.visibleLength = exports.strip = exports.splitAt = exports.padStart = exports.padEnd = exports.terminal = exports.scroll = exports.erase = exports.cursor = exports.reset = exports.style = exports.bg = exports.fg = exports.disabled = exports.ansi = void 0;
|
|
4
4
|
exports.makeAnsi = makeAnsi;
|
|
5
5
|
const cursor_1 = require("./cursor");
|
|
6
6
|
const ins_del_1 = require("./ins-del");
|
|
@@ -40,6 +40,7 @@ function makeAnsi(...args) {
|
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
exports.ansi = makeAnsi();
|
|
43
|
+
exports.disabled = makeAnsi(false);
|
|
43
44
|
exports.fg = exports.ansi.fg, exports.bg = exports.ansi.bg, exports.style = exports.ansi.style, exports.reset = exports.ansi.reset, exports.cursor = exports.ansi.cursor, exports.erase = exports.ansi.erase, exports.scroll = exports.ansi.scroll, exports.terminal = exports.ansi.terminal;
|
|
44
|
-
exports.default = Object.assign(Object.defineProperty(makeAnsi.bind(undefined), "name", { value: "ansi" }), exports.ansi);
|
|
45
|
+
exports.default = Object.assign(Object.defineProperty(makeAnsi.bind(undefined), "name", { value: "ansi" }), exports.ansi, { disabled: exports.disabled });
|
|
45
46
|
//# sourceMappingURL=ansi.js.map
|
package/dist/cjs/ansi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":";;;AAeA,4BA0BC;AAzCD,qCAA2D;AAC3D,uCAA4D;AAC5D,yCAA6D;AAC7D,+BAAwD;
|
|
1
|
+
{"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":";;;AAeA,4BA0BC;AAzCD,qCAA2D;AAC3D,uCAA4D;AAC5D,yCAA6D;AAC7D,+BAAwD;AA6ChD,uFA7CA,YAAM,OA6CA;AAAE,yFA7CA,cAAQ,OA6CA;AA5CxB,qCAA2D;AAC3D,+BAAwD;AACxD,yCAA6D;AAC7D,mCAA0D;AAC1D,yCAA6D;AAwCnC,wFAxClB,kBAAO,OAwCkB;AAvCjC,mCAA0D;AAuCvB,sFAvCjB,aAAK,OAuCiB;AAAE,8FAvCjB,qBAAa,OAuCiB;AAtCvD,yCAA6D;AAK7D,SAAgB,QAAQ,CAAC,GAAG,IAAU;IACrC,MAAM,QAAQ,GAAG,IAAA,sBAAW,EAAC,GAAG,IAAI,CAAC,CAAC;IAEtC,OAAO;QACN,GAAG,IAAA,aAAO,EAAC,QAAQ,CAAC;QAEpB,MAAM,EAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,MAAM,CAAC;QACpC,MAAM,EAAG,IAAA,oBAAU,EAAC,QAAQ,CAAC,KAAK,CAAC;QACnC,KAAK,EAAI,IAAA,mBAAS,EAAC,QAAQ,CAAC,KAAK,CAAC;QAClC,MAAM,EAAG,IAAA,oBAAU,EAAC,QAAQ,CAAC,KAAK,CAAC;QACnC,MAAM,EAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,MAAM,CAAC;QAEpC,QAAQ,EAAE,IAAA,uBAAY,EAAC,QAAQ,CAAC,QAAQ,CAAC;QAEzC,MAAM,EAAN,YAAM;QACN,QAAQ,EAAR,cAAQ;QAER,KAAK,EAAL,aAAK;QACL,aAAa,EAAb,qBAAa;QACb,QAAQ,EAAR,gBAAQ;QACR,KAAK,EAAL,aAAK;QACL,QAAQ,EAAR,mBAAQ;QACR,OAAO,EAAP,kBAAO;QAEP,QAAQ;KACR,CAAC;AACH,CAAC;AAEY,QAAA,IAAI,GAAO,QAAQ,EAAE,CAAC;AACtB,QAAA,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAE1B,UAAE,GAAuD,YAAI,KAAzD,UAAE,GAAmD,YAAI,KAArD,aAAK,GAA4C,YAAI,QAA9C,aAAK,GAAqC,YAAI,QAAvC,cAAM,GAA6B,YAAI,SAA/B,aAAK,GAAsB,YAAI,QAAxB,cAAM,GAAc,YAAI,SAAhB,gBAAQ,GAAI,YAAI,UAAC;AAI5E,kBAAe,MAAM,CAAC,MAAM,CAC3B,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,EACxE,YAAI,EACJ,EAAC,QAAQ,EAAR,gBAAQ,EAAC,CACV,CAAC"}
|
package/dist/cjs/cursor.js
CHANGED
|
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.makeCursor = void 0;
|
|
4
4
|
const utils_1 = require("./utils");
|
|
5
5
|
const cursor = {
|
|
6
|
-
up: (0, utils_1.count)("A"),
|
|
7
|
-
down: (0, utils_1.count)("B"),
|
|
8
|
-
forward: (0, utils_1.count)("C"),
|
|
9
|
-
backward: (0, utils_1.count)("D"),
|
|
10
|
-
nextLine: (0, utils_1.count)("E"),
|
|
11
|
-
prevLine: (0, utils_1.count)("F"),
|
|
6
|
+
up: (0, utils_1.count)("A", "B"),
|
|
7
|
+
down: (0, utils_1.count)("B", "A"),
|
|
8
|
+
forward: (0, utils_1.count)("C", "D"),
|
|
9
|
+
backward: (0, utils_1.count)("D", "C"),
|
|
10
|
+
nextLine: (0, utils_1.count)("E", "F"),
|
|
11
|
+
prevLine: (0, utils_1.count)("F", "E"),
|
|
12
12
|
// Don't use `move`/`count` here, because it will output an empty string if `x` is `0`, but the
|
|
13
13
|
// terminal accepts `\x1b[0G` and will process it the same as `\x1b[1G`/`x1b[G`. Also, the
|
|
14
14
|
// parameter for `move`/`count` is optional, but the parameter for `x` is required.
|
package/dist/cjs/cursor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/cursor.ts"],"names":[],"mappings":";;;AAAA,mCAAiD;AAEjD,MAAM,MAAM,GAAG;IACd,EAAE,EAAS,IAAA,aAAI,EAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/cursor.ts"],"names":[],"mappings":";;;AAAA,mCAAiD;AAEjD,MAAM,MAAM,GAAG;IACd,EAAE,EAAS,IAAA,aAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IACzB,IAAI,EAAO,IAAA,aAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IACzB,OAAO,EAAI,IAAA,aAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IACzB,QAAQ,EAAG,IAAA,aAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IACzB,QAAQ,EAAG,IAAA,aAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IACzB,QAAQ,EAAG,IAAA,aAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IAEzB,+FAA+F;IAC/F,0FAA0F;IAC1F,mFAAmF;IACnF,CAAC,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,IAAA,WAAG,EAAC,CAAC,EAAE,GAAG,CAAC;IAE7B,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,IAAA,WAAG,EAAC,MAAM,CAAC;IAClB,IAAI,EAAG,IAAA,WAAG,EAAC,MAAM,CAAC;IAElB,QAAQ,EAAE;QACT,GAAG,EAAE,IAAA,WAAG,EAAC,IAAI,CAAC;QACd,GAAG,EAAE,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,IAAA,WAAG,EAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;KACxD;IAED,KAAK,EAAE;QACN,WAAW,EAAS,IAAA,WAAG,EAAC,KAAK,CAAC;QAC9B,SAAS,EAAW,IAAA,WAAG,EAAC,KAAK,CAAC;QAC9B,eAAe,EAAK,IAAA,WAAG,EAAC,KAAK,CAAC;QAC9B,aAAa,EAAO,IAAA,WAAG,EAAC,KAAK,CAAC;QAC9B,WAAW,EAAS,IAAA,WAAG,EAAC,KAAK,CAAC;QAC9B,iBAAiB,EAAG,IAAA,WAAG,EAAC,KAAK,CAAC;QAC9B,OAAO,EAAa,IAAA,WAAG,EAAC,KAAK,CAAC;KAC9B;CACD,CAAC;AAIF,MAAM,QAAQ,GAAW;IACxB,EAAE,EAAS,YAAI;IACf,IAAI,EAAO,YAAI;IACf,OAAO,EAAI,YAAI;IACf,QAAQ,EAAG,YAAI;IACf,QAAQ,EAAG,YAAI;IACf,QAAQ,EAAG,YAAI;IAEf,CAAC,EAAE,YAAI;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,YAAI;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,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAArE,QAAA,UAAU,cAA2D"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -18,9 +18,12 @@ declare const ansi: typeof $ansi.makeAnsi & import("./sgr").SGR & {
|
|
|
18
18
|
splitAt: import("./split-at").SplitAt;
|
|
19
19
|
simplify: import("./simplify").Simplify;
|
|
20
20
|
features: import("./features").Features;
|
|
21
|
+
} & {
|
|
22
|
+
disabled: import("./types").Ansi;
|
|
21
23
|
} & {
|
|
22
24
|
makeAnsi(...args: import("./features").Args): import("./types").Ansi;
|
|
23
25
|
ansi: import("./types").Ansi;
|
|
26
|
+
disabled: import("./types").Ansi;
|
|
24
27
|
fg: import("./sgr/types").Channel<"bg" | import("./sgr/types").StyleKey>;
|
|
25
28
|
bg: import("./sgr/types").Channel<"fg" | import("./sgr/types").StyleKey>;
|
|
26
29
|
style: import("./sgr/types").Style<import("./sgr/types").ChainKey>;
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/require.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAEhC,OAAO,WAAW,IAAI,CAAC;IACtB,KAAY,IAAI,GAAG,OAAO,SAAS,EAAE,IAAI,CAAC;CAC1C;AAID,QAAA,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/require.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAEhC,OAAO,WAAW,IAAI,CAAC;IACtB,KAAY,IAAI,GAAG,OAAO,SAAS,EAAE,IAAI,CAAC;CAC1C;AAID,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAkC,CAAC;AAE7C,SAAS,IAAI,CAAC"}
|
package/dist/cjs/ins-del.js
CHANGED
|
@@ -17,12 +17,12 @@ const erase = {
|
|
|
17
17
|
},
|
|
18
18
|
};
|
|
19
19
|
const insert = {
|
|
20
|
-
char: (0, utils_1.count)("@"),
|
|
21
|
-
line: (0, utils_1.count)("L"),
|
|
20
|
+
char: (0, utils_1.count)("@", "P"),
|
|
21
|
+
line: (0, utils_1.count)("L", "M"),
|
|
22
22
|
};
|
|
23
23
|
const del = {
|
|
24
|
-
char: (0, utils_1.count)("P"),
|
|
25
|
-
line: (0, utils_1.count)("M"),
|
|
24
|
+
char: (0, utils_1.count)("P", "@"),
|
|
25
|
+
line: (0, utils_1.count)("M", "L"),
|
|
26
26
|
};
|
|
27
27
|
const disabledErase = {
|
|
28
28
|
char: utils_1.noop,
|
package/dist/cjs/ins-del.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ins-del.js","sourceRoot":"","sources":["../../src/ins-del.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AAEzC,MAAM,KAAK,GAAG;IACb,IAAI,EAAE,IAAA,aAAK,EAAC,GAAG,CAAC;IAEhB,IAAI,EAAE;QACL,OAAO,EAAG,IAAA,WAAG,EAAC,IAAI,CAAC;QACnB,KAAK,EAAK,IAAA,WAAG,EAAC,IAAI,CAAC;QACnB,IAAI,EAAM,IAAA,WAAG,EAAC,IAAI,CAAC;KACnB;IACD,MAAM,EAAE;QACP,OAAO,EAAM,IAAA,WAAG,EAAC,IAAI,CAAC;QACtB,KAAK,EAAQ,IAAA,WAAG,EAAC,IAAI,CAAC;QACtB,IAAI,EAAS,IAAA,WAAG,EAAC,IAAI,CAAC;QACtB,UAAU,EAAG,IAAA,WAAG,EAAC,IAAI,CAAC;KACtB;CACD,CAAC;AAEF,MAAM,MAAM,GAAG;IACd,IAAI,EAAE,IAAA,aAAK,EAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"ins-del.js","sourceRoot":"","sources":["../../src/ins-del.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AAEzC,MAAM,KAAK,GAAG;IACb,IAAI,EAAE,IAAA,aAAK,EAAC,GAAG,CAAC;IAEhB,IAAI,EAAE;QACL,OAAO,EAAG,IAAA,WAAG,EAAC,IAAI,CAAC;QACnB,KAAK,EAAK,IAAA,WAAG,EAAC,IAAI,CAAC;QACnB,IAAI,EAAM,IAAA,WAAG,EAAC,IAAI,CAAC;KACnB;IACD,MAAM,EAAE;QACP,OAAO,EAAM,IAAA,WAAG,EAAC,IAAI,CAAC;QACtB,KAAK,EAAQ,IAAA,WAAG,EAAC,IAAI,CAAC;QACtB,IAAI,EAAS,IAAA,WAAG,EAAC,IAAI,CAAC;QACtB,UAAU,EAAG,IAAA,WAAG,EAAC,IAAI,CAAC;KACtB;CACD,CAAC;AAEF,MAAM,MAAM,GAAG;IACd,IAAI,EAAE,IAAA,aAAK,EAAC,GAAG,EAAE,GAAG,CAAC;IACrB,IAAI,EAAE,IAAA,aAAK,EAAC,GAAG,EAAE,GAAG,CAAC;CACrB,CAAC;AAEF,MAAM,GAAG,GAAG;IACX,IAAI,EAAE,IAAA,aAAK,EAAC,GAAG,EAAE,GAAG,CAAC;IACrB,IAAI,EAAE,IAAA,aAAK,EAAC,GAAG,EAAE,GAAG,CAAC;CACrB,CAAC;AAMF,MAAM,aAAa,GAAU;IAC5B,IAAI,EAAE,YAAI;IAEV,IAAI,EAAE;QACL,OAAO,EAAG,EAAE;QACZ,KAAK,EAAK,EAAE;QACZ,IAAI,EAAM,EAAE;KACZ;IACD,MAAM,EAAE;QACP,OAAO,EAAM,EAAE;QACf,KAAK,EAAQ,EAAE;QACf,IAAI,EAAS,EAAE;QACf,UAAU,EAAG,EAAE;KACf;CACD,CAAC;AAEF,MAAM,cAAc,GAAW;IAC9B,IAAI,EAAE,YAAI;IACV,IAAI,EAAE,YAAI;CACV,CAAC;AAEF,MAAM,cAAc,GAAW,cAAc,CAAC;AAEvC,MAAM,SAAS,GAAI,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAE,CAAC,CAAC,aAAa,CAAC;AAA1E,QAAA,SAAS,aAAiE;AAChF,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;AAA3E,QAAA,UAAU,cAAiE;AACjF,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAI,CAAC,CAAC,cAAc,CAAC;AAA3E,QAAA,UAAU,cAAiE"}
|
package/dist/cjs/scroll.js
CHANGED
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.makeScroll = void 0;
|
|
4
4
|
const utils_1 = require("./utils");
|
|
5
5
|
const scroll = {
|
|
6
|
-
up: (0, utils_1.count)("S"),
|
|
7
|
-
down: (0, utils_1.count)("T"),
|
|
6
|
+
up: (0, utils_1.count)("S", "T"),
|
|
7
|
+
down: (0, utils_1.count)("T", "S"),
|
|
8
8
|
};
|
|
9
9
|
const disabled = {
|
|
10
10
|
up: utils_1.noop,
|
package/dist/cjs/scroll.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAEpC,MAAM,MAAM,GAAG;IACd,EAAE,EAAK,IAAA,aAAK,EAAmB,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAEpC,MAAM,MAAM,GAAG;IACd,EAAE,EAAK,IAAA,aAAK,EAAmB,GAAG,EAAE,GAAG,CAAC;IACxC,IAAI,EAAG,IAAA,aAAK,EAAmB,GAAG,EAAE,GAAG,CAAC;CACxC,CAAC;AAIF,MAAM,QAAQ,GAAW;IACxB,EAAE,EAAK,YAAI;IACX,IAAI,EAAG,YAAI;CACX,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAArE,QAAA,UAAU,cAA2D"}
|
package/dist/cjs/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare function csi(command: string): string;
|
|
2
2
|
export declare function csi(params: string | number | undefined, command: string): string;
|
|
3
|
-
export declare const count: <Param extends [number?] = [count?: number]>(code: string) => (...args: Param) => string;
|
|
3
|
+
export declare const count: <Param extends [number?] = [count?: number]>(code: string, negativeCode?: string) => (...args: Param) => string;
|
|
4
4
|
export declare const noop: () => string;
|
|
5
5
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/cjs/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;AAC7C,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;AAC7C,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;AAyBlF,eAAO,MAAM,KAAK,GAAI,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EAC/D,MAAgB,MAAM,EACtB,eAAgB,MAAM,KACpB,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,MACqD,CAAC;AAE7E,eAAO,MAAM,IAAI,cAAW,CAAC"}
|
package/dist/cjs/utils.js
CHANGED
|
@@ -7,7 +7,19 @@ function csi(...args) {
|
|
|
7
7
|
const params = args.pop();
|
|
8
8
|
return `\x1b[${params === undefined ? "" : params}${command}`;
|
|
9
9
|
}
|
|
10
|
-
const
|
|
10
|
+
const forwardOnlyCount = (code) => (count) => {
|
|
11
|
+
if (count === 0 || count < 0)
|
|
12
|
+
return "";
|
|
13
|
+
return csi(count === 1 ? undefined : count, code);
|
|
14
|
+
};
|
|
15
|
+
const reversibleCount = (forwardCode, backwardCode) => (count) => {
|
|
16
|
+
if (count === 0)
|
|
17
|
+
return "";
|
|
18
|
+
if (!count || count > 0)
|
|
19
|
+
return csi(count === 1 ? undefined : count, forwardCode);
|
|
20
|
+
return csi(count === -1 ? undefined : -count, backwardCode);
|
|
21
|
+
};
|
|
22
|
+
const count = (code, negativeCode) => negativeCode ? reversibleCount(code, negativeCode) : forwardOnlyCount(code);
|
|
11
23
|
exports.count = count;
|
|
12
24
|
const noop = () => "";
|
|
13
25
|
exports.noop = noop;
|
package/dist/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAEA,kBAKC;AALD,SAAgB,GAAG,CAAC,GAAG,IAAsD;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAY,CAAC;IACrC,MAAM,MAAM,GAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,OAAO,QAAQ,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;AAC/D,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAEA,kBAKC;AALD,SAAgB,GAAG,CAAC,GAAG,IAAsD;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAY,CAAC;IACrC,MAAM,MAAM,GAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,OAAO,QAAQ,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,KAAc,EAAU,EAAE;IACrE,IAAI,KAAK,KAAK,CAAC,IAAI,KAAM,GAAG,CAAC;QAC5B,OAAO,EAAE,CAAC;IAEX,OAAO,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,YAAoB,EAAE,EAAE,CAAC,CAAC,KAAc,EAAU,EAAE;IACjG,IAAI,KAAK,KAAK,CAAC;QACd,OAAO,EAAE,CAAC;IAEX,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC;QACtB,OAAO,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAE1D,OAAO,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC,CAAA;AAEM,MAAM,KAAK,GAAG,CACpB,IAAsB,EACtB,YAAsB,EACO,EAAE,CAC/B,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAJhE,QAAA,KAAK,SAI2D;AAEtE,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC;AAAhB,QAAA,IAAI,QAAY"}
|
package/dist/esm/ansi.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { Args } from "./features/index.js";
|
|
|
5
5
|
import type { Ansi } from "./types.js";
|
|
6
6
|
export declare function makeAnsi(...args: Args): Ansi;
|
|
7
7
|
export declare const ansi: Ansi;
|
|
8
|
+
export declare const disabled: Ansi;
|
|
8
9
|
export declare const fg: import("./sgr/types.js").Channel<"bg" | import("./sgr/types.js").StyleKey>, bg: import("./sgr/types.js").Channel<"fg" | import("./sgr/types.js").StyleKey>, style: import("./sgr/types.js").Style<import("./sgr/types.js").ChainKey>, reset: string, cursor: {
|
|
9
10
|
up: (count?: number | undefined) => string;
|
|
10
11
|
down: (count?: number | undefined) => string;
|
|
@@ -85,6 +86,8 @@ declare const _default: typeof makeAnsi & import("./sgr/index.js").SGR & {
|
|
|
85
86
|
splitAt: import("./split-at.js").SplitAt;
|
|
86
87
|
simplify: import("./simplify/index.js").Simplify;
|
|
87
88
|
features: import("./features/index.js").Features;
|
|
89
|
+
} & {
|
|
90
|
+
disabled: Ansi;
|
|
88
91
|
};
|
|
89
92
|
export default _default;
|
|
90
93
|
//# sourceMappingURL=ansi.d.ts.map
|
package/dist/esm/ansi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAuB,OAAO,CAAC;AAKxD,OAAO,EAAC,OAAO,EAAC,MAAgC,YAAY,CAAC;AAC7D,OAAO,EAAW,KAAK,EAAE,aAAa,EAAC,MAAS,SAAS,CAAC;AAG1D,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAElC,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CA0B5C;AAED,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAuB,OAAO,CAAC;AAKxD,OAAO,EAAC,OAAO,EAAC,MAAgC,YAAY,CAAC;AAC7D,OAAO,EAAW,KAAK,EAAE,aAAa,EAAC,MAAS,SAAS,CAAC;AAG1D,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAElC,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CA0B5C;AAED,eAAO,MAAM,IAAI,MAAiB,CAAC;AACnC,eAAO,MAAM,QAAQ,MAAkB,CAAC;AAExC,eAAO,MAAO,EAAE,wEAAE,EAAE,wEAAE,KAAK,+DAAE,KAAK,UAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,KAAK;;;;;;;;;;;;;GAAE,MAAM;;;GAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;CAAQ,CAAC;AAE5E,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAC,CAAA;;;;;;;;;;;;;;;;;;;;AAExD,wBAIE"}
|
package/dist/esm/ansi.js
CHANGED
|
@@ -31,7 +31,8 @@ export function makeAnsi(...args) {
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
export const ansi = makeAnsi();
|
|
34
|
+
export const disabled = makeAnsi(false);
|
|
34
35
|
export const { fg, bg, style, reset, cursor, erase, scroll, terminal } = ansi;
|
|
35
36
|
export { padEnd, padStart, splitAt, strip, visibleLength };
|
|
36
|
-
export default Object.assign(Object.defineProperty(makeAnsi.bind(undefined), "name", { value: "ansi" }), ansi);
|
|
37
|
+
export default Object.assign(Object.defineProperty(makeAnsi.bind(undefined), "name", { value: "ansi" }), ansi, { disabled });
|
|
37
38
|
//# sourceMappingURL=ansi.js.map
|
package/dist/esm/ansi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAA6B,UAAU,CAAC;AAC3D,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAC,WAAW,EAAC,MAA4B,YAAY,CAAC;AAC7D,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAuB,OAAO,CAAC;AACxD,OAAO,EAAC,UAAU,EAAC,MAA6B,UAAU,CAAC;AAC3D,OAAO,EAAC,OAAO,EAAC,MAAgC,OAAO,CAAC;AACxD,OAAO,EAAC,QAAQ,EAAC,MAA+B,YAAY,CAAC;AAC7D,OAAO,EAAC,KAAK,EAAC,MAAkC,SAAS,CAAC;AAC1D,OAAO,EAAC,OAAO,EAAC,MAAgC,YAAY,CAAC;AAC7D,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAC,MAAS,SAAS,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,MAA2B,YAAY,CAAC;AAK7D,MAAM,UAAU,QAAQ,CAAC,GAAG,IAAU;IACrC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IAEtC,OAAO;QACN,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEpB,MAAM,EAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpC,MAAM,EAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnC,KAAK,EAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAClC,MAAM,EAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnC,MAAM,EAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAEpC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAEzC,MAAM;QACN,QAAQ;QAER,KAAK;QACL,aAAa;QACb,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,OAAO;QAEP,QAAQ;KACR,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAA6B,UAAU,CAAC;AAC3D,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAC,WAAW,EAAC,MAA4B,YAAY,CAAC;AAC7D,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAuB,OAAO,CAAC;AACxD,OAAO,EAAC,UAAU,EAAC,MAA6B,UAAU,CAAC;AAC3D,OAAO,EAAC,OAAO,EAAC,MAAgC,OAAO,CAAC;AACxD,OAAO,EAAC,QAAQ,EAAC,MAA+B,YAAY,CAAC;AAC7D,OAAO,EAAC,KAAK,EAAC,MAAkC,SAAS,CAAC;AAC1D,OAAO,EAAC,OAAO,EAAC,MAAgC,YAAY,CAAC;AAC7D,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAC,MAAS,SAAS,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,MAA2B,YAAY,CAAC;AAK7D,MAAM,UAAU,QAAQ,CAAC,GAAG,IAAU;IACrC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IAEtC,OAAO;QACN,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEpB,MAAM,EAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpC,MAAM,EAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnC,KAAK,EAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAClC,MAAM,EAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnC,MAAM,EAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAEpC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAEzC,MAAM;QACN,QAAQ;QAER,KAAK;QACL,aAAa;QACb,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,OAAO;QAEP,QAAQ;KACR,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAO,QAAQ,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC;AAE5E,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAC,CAAA;AAExD,eAAe,MAAM,CAAC,MAAM,CAC3B,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,EACxE,IAAI,EACJ,EAAC,QAAQ,EAAC,CACV,CAAC"}
|
package/dist/esm/cursor.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { csi, count as move, noop } from "./utils.js";
|
|
2
2
|
const cursor = {
|
|
3
|
-
up: move("A"),
|
|
4
|
-
down: move("B"),
|
|
5
|
-
forward: move("C"),
|
|
6
|
-
backward: move("D"),
|
|
7
|
-
nextLine: move("E"),
|
|
8
|
-
prevLine: move("F"),
|
|
3
|
+
up: move("A", "B"),
|
|
4
|
+
down: move("B", "A"),
|
|
5
|
+
forward: move("C", "D"),
|
|
6
|
+
backward: move("D", "C"),
|
|
7
|
+
nextLine: move("E", "F"),
|
|
8
|
+
prevLine: move("F", "E"),
|
|
9
9
|
// Don't use `move`/`count` here, because it will output an empty string if `x` is `0`, but the
|
|
10
10
|
// terminal accepts `\x1b[0G` and will process it the same as `\x1b[1G`/`x1b[G`. Also, the
|
|
11
11
|
// parameter for `move`/`count` is optional, but the parameter for `x` is required.
|
package/dist/esm/cursor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAC,MAAM,SAAS,CAAC;AAEjD,MAAM,MAAM,GAAG;IACd,EAAE,EAAS,IAAI,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAC,MAAM,SAAS,CAAC;AAEjD,MAAM,MAAM,GAAG;IACd,EAAE,EAAS,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;IACzB,IAAI,EAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;IACzB,OAAO,EAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;IACzB,QAAQ,EAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;IACzB,QAAQ,EAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;IACzB,QAAQ,EAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;IAEzB,+FAA+F;IAC/F,0FAA0F;IAC1F,mFAAmF;IACnF,CAAC,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;IAE7B,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,GAAG,CAAC,MAAM,CAAC;IAClB,IAAI,EAAG,GAAG,CAAC,MAAM,CAAC;IAElB,QAAQ,EAAE;QACT,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;QACd,GAAG,EAAE,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;KACxD;IAED,KAAK,EAAE;QACN,WAAW,EAAS,GAAG,CAAC,KAAK,CAAC;QAC9B,SAAS,EAAW,GAAG,CAAC,KAAK,CAAC;QAC9B,eAAe,EAAK,GAAG,CAAC,KAAK,CAAC;QAC9B,aAAa,EAAO,GAAG,CAAC,KAAK,CAAC;QAC9B,WAAW,EAAS,GAAG,CAAC,KAAK,CAAC;QAC9B,iBAAiB,EAAG,GAAG,CAAC,KAAK,CAAC;QAC9B,OAAO,EAAa,GAAG,CAAC,KAAK,CAAC;KAC9B;CACD,CAAC;AAIF,MAAM,QAAQ,GAAW;IACxB,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,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC"}
|
package/dist/esm/ins-del.js
CHANGED
|
@@ -14,12 +14,12 @@ const erase = {
|
|
|
14
14
|
},
|
|
15
15
|
};
|
|
16
16
|
const insert = {
|
|
17
|
-
char: count("@"),
|
|
18
|
-
line: count("L"),
|
|
17
|
+
char: count("@", "P"),
|
|
18
|
+
line: count("L", "M"),
|
|
19
19
|
};
|
|
20
20
|
const del = {
|
|
21
|
-
char: count("P"),
|
|
22
|
-
line: count("M"),
|
|
21
|
+
char: count("P", "@"),
|
|
22
|
+
line: count("M", "L"),
|
|
23
23
|
};
|
|
24
24
|
const disabledErase = {
|
|
25
25
|
char: noop,
|
package/dist/esm/ins-del.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ins-del.js","sourceRoot":"","sources":["../../src/ins-del.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAC,MAAM,SAAS,CAAC;AAEzC,MAAM,KAAK,GAAG;IACb,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;IAEhB,IAAI,EAAE;QACL,OAAO,EAAG,GAAG,CAAC,IAAI,CAAC;QACnB,KAAK,EAAK,GAAG,CAAC,IAAI,CAAC;QACnB,IAAI,EAAM,GAAG,CAAC,IAAI,CAAC;KACnB;IACD,MAAM,EAAE;QACP,OAAO,EAAM,GAAG,CAAC,IAAI,CAAC;QACtB,KAAK,EAAQ,GAAG,CAAC,IAAI,CAAC;QACtB,IAAI,EAAS,GAAG,CAAC,IAAI,CAAC;QACtB,UAAU,EAAG,GAAG,CAAC,IAAI,CAAC;KACtB;CACD,CAAC;AAEF,MAAM,MAAM,GAAG;IACd,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"ins-del.js","sourceRoot":"","sources":["../../src/ins-del.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAC,MAAM,SAAS,CAAC;AAEzC,MAAM,KAAK,GAAG;IACb,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;IAEhB,IAAI,EAAE;QACL,OAAO,EAAG,GAAG,CAAC,IAAI,CAAC;QACnB,KAAK,EAAK,GAAG,CAAC,IAAI,CAAC;QACnB,IAAI,EAAM,GAAG,CAAC,IAAI,CAAC;KACnB;IACD,MAAM,EAAE;QACP,OAAO,EAAM,GAAG,CAAC,IAAI,CAAC;QACtB,KAAK,EAAQ,GAAG,CAAC,IAAI,CAAC;QACtB,IAAI,EAAS,GAAG,CAAC,IAAI,CAAC;QACtB,UAAU,EAAG,GAAG,CAAC,IAAI,CAAC;KACtB;CACD,CAAC;AAEF,MAAM,MAAM,GAAG;IACd,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;IACrB,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;CACrB,CAAC;AAEF,MAAM,GAAG,GAAG;IACX,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;IACrB,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;CACrB,CAAC;AAMF,MAAM,aAAa,GAAU;IAC5B,IAAI,EAAE,IAAI;IAEV,IAAI,EAAE;QACL,OAAO,EAAG,EAAE;QACZ,KAAK,EAAK,EAAE;QACZ,IAAI,EAAM,EAAE;KACZ;IACD,MAAM,EAAE;QACP,OAAO,EAAM,EAAE;QACf,KAAK,EAAQ,EAAE;QACf,IAAI,EAAS,EAAE;QACf,UAAU,EAAG,EAAE;KACf;CACD,CAAC;AAEF,MAAM,cAAc,GAAW;IAC9B,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;CACV,CAAC;AAEF,MAAM,cAAc,GAAW,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,SAAS,GAAI,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAE,CAAC,CAAC,aAAa,CAAC;AACvF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;AACxF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAI,CAAC,CAAC,cAAc,CAAC"}
|
package/dist/esm/scroll.js
CHANGED
package/dist/esm/scroll.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,MAAM,SAAS,CAAC;AAEpC,MAAM,MAAM,GAAG;IACd,EAAE,EAAK,KAAK,CAAmB,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,MAAM,SAAS,CAAC;AAEpC,MAAM,MAAM,GAAG;IACd,EAAE,EAAK,KAAK,CAAmB,GAAG,EAAE,GAAG,CAAC;IACxC,IAAI,EAAG,KAAK,CAAmB,GAAG,EAAE,GAAG,CAAC;CACxC,CAAC;AAIF,MAAM,QAAQ,GAAW;IACxB,EAAE,EAAK,IAAI;IACX,IAAI,EAAG,IAAI;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC"}
|
package/dist/esm/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare function csi(command: string): string;
|
|
2
2
|
export declare function csi(params: string | number | undefined, command: string): string;
|
|
3
|
-
export declare const count: <Param extends [number?] = [count?: number]>(code: string) => (...args: Param) => string;
|
|
3
|
+
export declare const count: <Param extends [number?] = [count?: number]>(code: string, negativeCode?: string) => (...args: Param) => string;
|
|
4
4
|
export declare const noop: () => string;
|
|
5
5
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/esm/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;AAC7C,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;AAC7C,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;AAyBlF,eAAO,MAAM,KAAK,GAAI,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EAC/D,MAAgB,MAAM,EACtB,eAAgB,MAAM,KACpB,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,MACqD,CAAC;AAE7E,eAAO,MAAM,IAAI,cAAW,CAAC"}
|
package/dist/esm/utils.js
CHANGED
|
@@ -3,6 +3,18 @@ export function csi(...args) {
|
|
|
3
3
|
const params = args.pop();
|
|
4
4
|
return `\x1b[${params === undefined ? "" : params}${command}`;
|
|
5
5
|
}
|
|
6
|
-
|
|
6
|
+
const forwardOnlyCount = (code) => (count) => {
|
|
7
|
+
if (count === 0 || count < 0)
|
|
8
|
+
return "";
|
|
9
|
+
return csi(count === 1 ? undefined : count, code);
|
|
10
|
+
};
|
|
11
|
+
const reversibleCount = (forwardCode, backwardCode) => (count) => {
|
|
12
|
+
if (count === 0)
|
|
13
|
+
return "";
|
|
14
|
+
if (!count || count > 0)
|
|
15
|
+
return csi(count === 1 ? undefined : count, forwardCode);
|
|
16
|
+
return csi(count === -1 ? undefined : -count, backwardCode);
|
|
17
|
+
};
|
|
18
|
+
export const count = (code, negativeCode) => negativeCode ? reversibleCount(code, negativeCode) : forwardOnlyCount(code);
|
|
7
19
|
export const noop = () => "";
|
|
8
20
|
//# sourceMappingURL=utils.js.map
|
package/dist/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAG,CAAC,GAAG,IAAsD;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAY,CAAC;IACrC,MAAM,MAAM,GAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,OAAO,QAAQ,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAG,CAAC,GAAG,IAAsD;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAY,CAAC;IACrC,MAAM,MAAM,GAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,OAAO,QAAQ,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,KAAc,EAAU,EAAE;IACrE,IAAI,KAAK,KAAK,CAAC,IAAI,KAAM,GAAG,CAAC;QAC5B,OAAO,EAAE,CAAC;IAEX,OAAO,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,YAAoB,EAAE,EAAE,CAAC,CAAC,KAAc,EAAU,EAAE;IACjG,IAAI,KAAK,KAAK,CAAC;QACd,OAAO,EAAE,CAAC;IAEX,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC;QACtB,OAAO,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAE1D,OAAO,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,CACpB,IAAsB,EACtB,YAAsB,EACO,EAAE,CAC/B,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC"}
|
package/package.json
CHANGED
package/src/ansi.ts
CHANGED
|
@@ -41,7 +41,8 @@ export function makeAnsi(...args: Args): Ansi {
|
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
export const ansi
|
|
44
|
+
export const ansi = makeAnsi();
|
|
45
|
+
export const disabled = makeAnsi(false);
|
|
45
46
|
|
|
46
47
|
export const {fg, bg, style, reset, cursor, erase, scroll, terminal} = ansi;
|
|
47
48
|
|
|
@@ -50,4 +51,5 @@ export {padEnd, padStart, splitAt, strip, visibleLength}
|
|
|
50
51
|
export default Object.assign(
|
|
51
52
|
Object.defineProperty(makeAnsi.bind(undefined), "name", {value: "ansi"}),
|
|
52
53
|
ansi,
|
|
54
|
+
{disabled},
|
|
53
55
|
);
|
package/src/cursor.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {csi, count as move, noop} from "./utils";
|
|
2
2
|
|
|
3
3
|
const cursor = {
|
|
4
|
-
up : move("A"),
|
|
5
|
-
down : move("B"),
|
|
6
|
-
forward : move("C"),
|
|
7
|
-
backward : move("D"),
|
|
8
|
-
nextLine : move("E"),
|
|
9
|
-
prevLine : move("F"),
|
|
4
|
+
up : move("A", "B"),
|
|
5
|
+
down : move("B", "A"),
|
|
6
|
+
forward : move("C", "D"),
|
|
7
|
+
backward : move("D", "C"),
|
|
8
|
+
nextLine : move("E", "F"),
|
|
9
|
+
prevLine : move("F", "E"),
|
|
10
10
|
|
|
11
11
|
// Don't use `move`/`count` here, because it will output an empty string if `x` is `0`, but the
|
|
12
12
|
// terminal accepts `\x1b[0G` and will process it the same as `\x1b[1G`/`x1b[G`. Also, the
|
package/src/ins-del.ts
CHANGED
|
@@ -17,13 +17,13 @@ const erase = {
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
const insert = {
|
|
20
|
-
char: count("@"),
|
|
21
|
-
line: count("L"),
|
|
20
|
+
char: count("@", "P"),
|
|
21
|
+
line: count("L", "M"),
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
const del = {
|
|
25
|
-
char: count("P"),
|
|
26
|
-
line: count("M"),
|
|
25
|
+
char: count("P", "@"),
|
|
26
|
+
line: count("M", "L"),
|
|
27
27
|
};
|
|
28
28
|
|
|
29
29
|
export type Erase = typeof erase;
|
package/src/scroll.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {count, noop} from "./utils";
|
|
2
2
|
|
|
3
3
|
const scroll = {
|
|
4
|
-
up : count<[lines?: number]>("S"),
|
|
5
|
-
down : count<[lines?: number]>("T"),
|
|
4
|
+
up : count<[lines?: number]>("S", "T"),
|
|
5
|
+
down : count<[lines?: number]>("T", "S"),
|
|
6
6
|
};
|
|
7
7
|
|
|
8
8
|
export type Scroll = typeof scroll;
|
package/src/utils.ts
CHANGED
|
@@ -7,9 +7,27 @@ export function csi(...args: [string] | [string | number | undefined, string]):
|
|
|
7
7
|
return `\x1b[${params === undefined ? "" : params}${command}`;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
const forwardOnlyCount = (code: string) => (count?: number): string => {
|
|
11
|
+
if (count === 0 || count! < 0)
|
|
12
|
+
return "";
|
|
13
|
+
|
|
14
|
+
return csi(count === 1 ? undefined : count, code);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const reversibleCount = (forwardCode: string, backwardCode: string) => (count?: number): string => {
|
|
18
|
+
if (count === 0)
|
|
19
|
+
return "";
|
|
20
|
+
|
|
21
|
+
if (!count || count > 0)
|
|
22
|
+
return csi(count === 1 ? undefined : count, forwardCode);
|
|
23
|
+
|
|
24
|
+
return csi(count === -1 ? undefined : -count, backwardCode);
|
|
25
|
+
}
|
|
26
|
+
|
|
10
27
|
export const count = <Param extends [number?] = [count?: number]>(
|
|
11
|
-
code: string
|
|
28
|
+
code : string,
|
|
29
|
+
negativeCode? : string,
|
|
12
30
|
): (...args: Param) => string =>
|
|
13
|
-
|
|
31
|
+
negativeCode ? reversibleCount(code, negativeCode) : forwardOnlyCount(code);
|
|
14
32
|
|
|
15
33
|
export const noop = () => "";
|