@peteanderson/ansi 3.6.0 → 3.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -214,6 +214,8 @@ Available if feature is enabled:
214
214
 
215
215
  - `scroll.up(lines)` - scroll up (default 1 line); negative values scroll down
216
216
  - `scroll.down(lines)` - scroll down (default 1 line); negative values scroll up
217
+ - `scroll.setRegion(top, bottom)` - set scroll region; omit top/bottom to use defaults (top/bottom
218
+ of viewport)
217
219
 
218
220
  ### `strip(text)`
219
221
 
@@ -47,6 +47,7 @@ export declare const fg: import("./sgr/types").Channel<"bg" | import("./sgr/type
47
47
  }, scroll: {
48
48
  up: (lines?: number | undefined) => string;
49
49
  down: (lines?: number | undefined) => string;
50
+ setRegion: (top?: number, bottom?: number) => string;
50
51
  }, terminal: {
51
52
  focusReporting: {
52
53
  enable: string;
@@ -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,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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/cursor.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,MAAM;;;;;;;WAWJ,MAAM;;;;;;;iBAkBH,MAAM,KAAK,MAAM,KAAG,MAAM;;;;;;;;;;;CAYpC,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAkCnC,eAAO,MAAM,UAAU,GAAI,iBAAc,KAAG,MAAqC,CAAC"}
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/cursor.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,MAAM;;;;;;;WAQJ,MAAM;;;;;;;iBAkBF,MAAM,KAAK,MAAM,KAAG,MAAM;;;;;;;;;;;CAmBrC,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAkCnC,eAAO,MAAM,UAAU,GAAI,iBAAc,KAAG,MAAqC,CAAC"}
@@ -9,10 +9,7 @@ const cursor = {
9
9
  backward: (0, utils_1.count)("D", "C"),
10
10
  nextLine: (0, utils_1.count)("E", "F"),
11
11
  prevLine: (0, utils_1.count)("F", "E"),
12
- // Don't use `move`/`count` here, because it will output an empty string if `x` is `0`, but the
13
- // terminal accepts `\x1b[0G` and will process it the same as `\x1b[1G`/`x1b[G`. Also, the
14
- // parameter for `move`/`count` is optional, but the parameter for `x` is required.
15
- x: (x) => (0, utils_1.csi)(x, "G"),
12
+ x: (x) => (0, utils_1.csi)(x < 2 ? undefined : x, "G"),
16
13
  // These are the old VT100 codes, but they're widely supported by old and new terminals. The
17
14
  // newer VT220 codes are standardized by ECMA and ISO, and are also widely supported, but might
18
15
  // not work in some older terminals. The VT220 codes are:
@@ -27,7 +24,11 @@ const cursor = {
27
24
  show: (0, utils_1.csi)("?25h"),
28
25
  position: {
29
26
  get: (0, utils_1.csi)("6n"),
30
- set: (x, y) => (0, utils_1.csi)(`${y};${x}H`),
27
+ set: (x, y) => (0, utils_1.csi)(x < 2 ? // Omit x if we can use the default.
28
+ y < 2 ? undefined : y : // Omit y too if we can use both defaults.
29
+ y < 2 ?
30
+ `;${x}` :
31
+ `${y};${x}`, "H"),
31
32
  },
32
33
  shape: {
33
34
  steadyBlock: (0, utils_1.csi)("2 q"),
@@ -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,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"}
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,CAAC,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,IAAA,WAAG,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IAEjD,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,EAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,IAAA,WAAG,EAC1C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oCAAoC;YAC3C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C;YACnE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACN,IAAI,CAAC,EAAE,CAAC,CAAC;gBACV,GAAG,CAAC,IAAI,CAAC,EAAE,EACX,GAAG,CACH;KACD;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"}
@@ -1,6 +1,9 @@
1
1
  import * as $ansi from "./ansi";
2
2
  declare namespace ansi {
3
3
  type Ansi = import("./types").Ansi;
4
+ type ChainKey = import("./sgr/types").ChainKey;
5
+ type Format = import("./sgr/types").Format;
6
+ type FormatBase = import("./sgr/types").FormatBase;
4
7
  }
5
8
  declare const ansi: typeof $ansi.makeAnsi & import("./sgr").SGR & {
6
9
  cursor: import("./cursor").Cursor;
@@ -71,6 +74,7 @@ declare const ansi: typeof $ansi.makeAnsi & import("./sgr").SGR & {
71
74
  scroll: {
72
75
  up: (lines?: number | undefined) => string;
73
76
  down: (lines?: number | undefined) => string;
77
+ setRegion: (top?: number, bottom?: number) => string;
74
78
  };
75
79
  terminal: {
76
80
  focusReporting: {
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAkC,CAAC;AAE7C,SAAS,IAAI,CAAC"}
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,GAAS,OAAO,SAAS,EAAE,IAAI,CAAC;IAChD,KAAY,QAAQ,GAAK,OAAO,aAAa,EAAE,QAAQ,CAAC;IACxD,KAAY,MAAM,GAAO,OAAO,aAAa,EAAE,MAAM,CAAC;IACtD,KAAY,UAAU,GAAG,OAAO,aAAa,EAAE,UAAU,CAAC;CAC1D;AAID,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAkC,CAAC;AAE7C,SAAS,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/require.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAgC;AAMhC,MAAM,EAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAC,GAAG,KAAK,CAAC;AAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE7C,iBAAS,IAAI,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/require.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAgC;AAShC,MAAM,EAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAC,GAAG,KAAK,CAAC;AAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE7C,iBAAS,IAAI,CAAC"}
@@ -1,6 +1,7 @@
1
1
  declare const scroll: {
2
2
  up: (lines?: number | undefined) => string;
3
3
  down: (lines?: number | undefined) => string;
4
+ setRegion: (top?: number, bottom?: number) => string;
4
5
  };
5
6
  export type Scroll = typeof scroll;
6
7
  export declare const makeScroll: (enabled?: boolean) => Scroll;
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,MAAM;;;CAGX,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAOnC,eAAO,MAAM,UAAU,GAAI,iBAAc,KAAG,MAAqC,CAAC"}
1
+ {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,MAAM;;;sBAGQ,MAAM,WAAW,MAAM;CAS1C,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAQnC,eAAO,MAAM,UAAU,GAAI,iBAAc,KAAG,MAAqC,CAAC"}
@@ -5,10 +5,16 @@ const utils_1 = require("./utils");
5
5
  const scroll = {
6
6
  up: (0, utils_1.count)("S", "T"),
7
7
  down: (0, utils_1.count)("T", "S"),
8
+ setRegion: (top, bottom) => (0, utils_1.csi)(!top || top < 2 ? // Omit top if we can use the default.
9
+ bottom :
10
+ !bottom ?
11
+ top :
12
+ `${top};${bottom}`, "r"),
8
13
  };
9
14
  const disabled = {
10
15
  up: utils_1.noop,
11
16
  down: utils_1.noop,
17
+ setRegion: utils_1.noop,
12
18
  };
13
19
  const makeScroll = (enabled = true) => enabled ? scroll : disabled;
14
20
  exports.makeScroll = makeScroll;
@@ -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,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"}
1
+ {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AAEzC,MAAM,MAAM,GAAG;IACd,EAAE,EAAU,IAAA,aAAK,EAAmB,GAAG,EAAE,GAAG,CAAC;IAC7C,IAAI,EAAQ,IAAA,aAAK,EAAmB,GAAG,EAAE,GAAG,CAAC;IAC7C,SAAS,EAAG,CAAC,GAAY,EAAE,MAAe,EAAE,EAAE,CAC7C,IAAA,WAAG,EACF,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAsC;QACvD,MAAM,CAAC,CAAC;QACT,CAAC,MAAM,CAAC,CAAC;YACR,GAAG,CAAC,CAAC;YACN,GAAG,GAAG,IAAI,MAAM,EAAE,EAClB,GAAG,CACH;CACF,CAAC;AAIF,MAAM,QAAQ,GAAW;IACxB,EAAE,EAAU,YAAI;IAChB,IAAI,EAAQ,YAAI;IAChB,SAAS,EAAG,YAAI;CAChB,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"}
@@ -6,7 +6,7 @@ import type { Ansi } from "./types.js";
6
6
  export declare function makeAnsi(...args: Args): Ansi;
7
7
  export declare const ansi: Ansi;
8
8
  export declare const disabled: Ansi;
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
+ 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("./index.js").ChainKey>, reset: string, cursor: {
10
10
  up: (count?: number | undefined) => string;
11
11
  down: (count?: number | undefined) => string;
12
12
  forward: (count?: number | undefined) => string;
@@ -47,6 +47,7 @@ export declare const fg: import("./sgr/types.js").Channel<"bg" | import("./sgr/t
47
47
  }, scroll: {
48
48
  up: (lines?: number | undefined) => string;
49
49
  down: (lines?: number | undefined) => string;
50
+ setRegion: (top?: number, bottom?: number) => string;
50
51
  }, terminal: {
51
52
  focusReporting: {
52
53
  enable: string;
@@ -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,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"}
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,qDAAE,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/cursor.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,MAAM;;;;;;;WAWJ,MAAM;;;;;;;iBAkBH,MAAM,KAAK,MAAM,KAAG,MAAM;;;;;;;;;;;CAYpC,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAkCnC,eAAO,MAAM,UAAU,GAAI,iBAAc,KAAG,MAAqC,CAAC"}
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/cursor.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,MAAM;;;;;;;WAQJ,MAAM;;;;;;;iBAkBF,MAAM,KAAK,MAAM,KAAG,MAAM;;;;;;;;;;;CAmBrC,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAkCnC,eAAO,MAAM,UAAU,GAAI,iBAAc,KAAG,MAAqC,CAAC"}
@@ -6,10 +6,7 @@ const cursor = {
6
6
  backward: move("D", "C"),
7
7
  nextLine: move("E", "F"),
8
8
  prevLine: move("F", "E"),
9
- // Don't use `move`/`count` here, because it will output an empty string if `x` is `0`, but the
10
- // terminal accepts `\x1b[0G` and will process it the same as `\x1b[1G`/`x1b[G`. Also, the
11
- // parameter for `move`/`count` is optional, but the parameter for `x` is required.
12
- x: (x) => csi(x, "G"),
9
+ x: (x) => csi(x < 2 ? undefined : x, "G"),
13
10
  // These are the old VT100 codes, but they're widely supported by old and new terminals. The
14
11
  // newer VT220 codes are standardized by ECMA and ISO, and are also widely supported, but might
15
12
  // not work in some older terminals. The VT220 codes are:
@@ -24,7 +21,11 @@ const cursor = {
24
21
  show: csi("?25h"),
25
22
  position: {
26
23
  get: csi("6n"),
27
- set: (x, y) => csi(`${y};${x}H`),
24
+ set: (x, y) => csi(x < 2 ? // Omit x if we can use the default.
25
+ y < 2 ? undefined : y : // Omit y too if we can use both defaults.
26
+ y < 2 ?
27
+ `;${x}` :
28
+ `${y};${x}`, "H"),
28
29
  },
29
30
  shape: {
30
31
  steadyBlock: csi("2 q"),
@@ -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,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"}
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,CAAC,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IAEjD,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,EAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,GAAG,CAC1C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oCAAoC;YAC3C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C;YACnE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACN,IAAI,CAAC,EAAE,CAAC,CAAC;gBACV,GAAG,CAAC,IAAI,CAAC,EAAE,EACX,GAAG,CACH;KACD;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"}
@@ -1,4 +1,5 @@
1
1
  export { default } from "./ansi.js";
2
2
  export * from "./ansi.js";
3
3
  export type { Ansi } from "./types.js";
4
+ export type { ChainKey, Format, FormatBase } from "./sgr/types.js";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAC/B,cAAsB,QAAQ,CAAC;AAE/B,YAAY,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAC/B,cAAsB,QAAQ,CAAC;AAE/B,YAAY,EAAC,IAAI,EAAC,MAA8B,SAAS,CAAC;AAC1D,YAAY,EAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAC,MAAM,aAAa,CAAC"}
@@ -1,6 +1,7 @@
1
1
  declare const scroll: {
2
2
  up: (lines?: number | undefined) => string;
3
3
  down: (lines?: number | undefined) => string;
4
+ setRegion: (top?: number, bottom?: number) => string;
4
5
  };
5
6
  export type Scroll = typeof scroll;
6
7
  export declare const makeScroll: (enabled?: boolean) => Scroll;
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,MAAM;;;CAGX,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAOnC,eAAO,MAAM,UAAU,GAAI,iBAAc,KAAG,MAAqC,CAAC"}
1
+ {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,MAAM;;;sBAGQ,MAAM,WAAW,MAAM;CAS1C,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAQnC,eAAO,MAAM,UAAU,GAAI,iBAAc,KAAG,MAAqC,CAAC"}
@@ -1,11 +1,17 @@
1
- import { count, noop } from "./utils.js";
1
+ import { csi, count, noop } from "./utils.js";
2
2
  const scroll = {
3
3
  up: count("S", "T"),
4
4
  down: count("T", "S"),
5
+ setRegion: (top, bottom) => csi(!top || top < 2 ? // Omit top if we can use the default.
6
+ bottom :
7
+ !bottom ?
8
+ top :
9
+ `${top};${bottom}`, "r"),
5
10
  };
6
11
  const disabled = {
7
12
  up: noop,
8
13
  down: noop,
14
+ setRegion: noop,
9
15
  };
10
16
  export const makeScroll = (enabled = true) => enabled ? scroll : disabled;
11
17
  //# sourceMappingURL=scroll.js.map
@@ -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,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"}
1
+ {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,SAAS,CAAC;AAEzC,MAAM,MAAM,GAAG;IACd,EAAE,EAAU,KAAK,CAAmB,GAAG,EAAE,GAAG,CAAC;IAC7C,IAAI,EAAQ,KAAK,CAAmB,GAAG,EAAE,GAAG,CAAC;IAC7C,SAAS,EAAG,CAAC,GAAY,EAAE,MAAe,EAAE,EAAE,CAC7C,GAAG,CACF,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAsC;QACvD,MAAM,CAAC,CAAC;QACT,CAAC,MAAM,CAAC,CAAC;YACR,GAAG,CAAC,CAAC;YACN,GAAG,GAAG,IAAI,MAAM,EAAE,EAClB,GAAG,CACH;CACF,CAAC;AAIF,MAAM,QAAQ,GAAW;IACxB,EAAE,EAAU,IAAI;IAChB,IAAI,EAAQ,IAAI;IAChB,SAAS,EAAG,IAAI;CAChB,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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name" : "@peteanderson/ansi",
3
- "version" : "3.6.0",
3
+ "version" : "3.7.1",
4
4
  "description" : "ANSI escape sequence generation with automatic feature detection",
5
5
  "author" : {
6
6
  "name" : "Pete Anderson",
package/src/cursor.ts CHANGED
@@ -8,10 +8,7 @@ const cursor = {
8
8
  nextLine : move("E", "F"),
9
9
  prevLine : move("F", "E"),
10
10
 
11
- // Don't use `move`/`count` here, because it will output an empty string if `x` is `0`, but the
12
- // terminal accepts `\x1b[0G` and will process it the same as `\x1b[1G`/`x1b[G`. Also, the
13
- // parameter for `move`/`count` is optional, but the parameter for `x` is required.
14
- x: (x: number) => csi(x, "G"),
11
+ x: (x: number) => csi(x < 2 ? undefined : x, "G"),
15
12
 
16
13
  // These are the old VT100 codes, but they're widely supported by old and new terminals. The
17
14
  // newer VT220 codes are standardized by ECMA and ISO, and are also widely supported, but might
@@ -29,7 +26,14 @@ const cursor = {
29
26
 
30
27
  position: {
31
28
  get: csi("6n"),
32
- set: (x: number, y: number): string => csi(`${y};${x}H`),
29
+ set : (x: number, y: number): string => csi(
30
+ x < 2 ? // Omit x if we can use the default.
31
+ y < 2 ? undefined : y : // Omit y too if we can use both defaults.
32
+ y < 2 ?
33
+ `;${x}` :
34
+ `${y};${x}`,
35
+ "H", // "f" is equivalent, but "H" is more widely supported
36
+ ),
33
37
  },
34
38
 
35
39
  shape: {
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export {default} from "./ansi";
2
2
  export * from "./ansi";
3
3
 
4
- export type {Ansi} from "./types";
4
+ export type {Ansi} from "./types";
5
+ export type {ChainKey, Format, FormatBase} from "./sgr/types";
package/src/require.ts CHANGED
@@ -1,7 +1,10 @@
1
1
  import * as $ansi from "./ansi";
2
2
 
3
3
  declare namespace ansi {
4
- export type Ansi = import("./types").Ansi;
4
+ export type Ansi = import("./types").Ansi;
5
+ export type ChainKey = import("./sgr/types").ChainKey;
6
+ export type Format = import("./sgr/types").Format;
7
+ export type FormatBase = import("./sgr/types").FormatBase;
5
8
  }
6
9
 
7
10
  const {default: $default, ...$named} = $ansi;
package/src/scroll.ts CHANGED
@@ -1,15 +1,25 @@
1
- import {count, noop} from "./utils";
1
+ import {csi, count, noop} from "./utils";
2
2
 
3
3
  const scroll = {
4
- up : count<[lines?: number]>("S", "T"),
5
- down : count<[lines?: number]>("T", "S"),
4
+ up : count<[lines?: number]>("S", "T"),
5
+ down : count<[lines?: number]>("T", "S"),
6
+ setRegion : (top?: number, bottom?: number) =>
7
+ csi(
8
+ !top || top < 2 ? // Omit top if we can use the default.
9
+ bottom :
10
+ !bottom ?
11
+ top :
12
+ `${top};${bottom}`,
13
+ "r",
14
+ ),
6
15
  };
7
16
 
8
17
  export type Scroll = typeof scroll;
9
18
 
10
19
  const disabled: Scroll = {
11
- up : noop,
12
- down : noop,
20
+ up : noop,
21
+ down : noop,
22
+ setRegion : noop,
13
23
  };
14
24
 
15
25
  export const makeScroll = (enabled = true): Scroll => enabled ? scroll : disabled;