@peteanderson/ansi 3.0.0 → 3.2.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.
Files changed (105) hide show
  1. package/README.md +4 -0
  2. package/dist/cjs/ansi.d.ts +11 -9
  3. package/dist/cjs/ansi.d.ts.map +1 -1
  4. package/dist/cjs/ansi.js +4 -1
  5. package/dist/cjs/ansi.js.map +1 -1
  6. package/dist/cjs/cursor.d.ts +6 -6
  7. package/dist/cjs/cursor.d.ts.map +1 -1
  8. package/dist/cjs/cursor.js +32 -30
  9. package/dist/cjs/cursor.js.map +1 -1
  10. package/dist/cjs/erase.d.ts.map +1 -1
  11. package/dist/cjs/erase.js +8 -7
  12. package/dist/cjs/erase.js.map +1 -1
  13. package/dist/cjs/index.d.ts +10 -8
  14. package/dist/cjs/index.d.ts.map +1 -1
  15. package/dist/cjs/scroll.d.ts +2 -2
  16. package/dist/cjs/scroll.d.ts.map +1 -1
  17. package/dist/cjs/scroll.js +5 -4
  18. package/dist/cjs/scroll.js.map +1 -1
  19. package/dist/cjs/sgr/color/channel.d.ts.map +1 -1
  20. package/dist/cjs/sgr/color/channel.js +2 -1
  21. package/dist/cjs/sgr/color/channel.js.map +1 -1
  22. package/dist/cjs/sgr/format-builder.d.ts.map +1 -1
  23. package/dist/cjs/sgr/format-builder.js +3 -2
  24. package/dist/cjs/sgr/format-builder.js.map +1 -1
  25. package/dist/cjs/sgr/reset.d.ts.map +1 -1
  26. package/dist/cjs/sgr/reset.js +2 -1
  27. package/dist/cjs/sgr/reset.js.map +1 -1
  28. package/dist/cjs/simplify/simplify.d.ts.map +1 -1
  29. package/dist/cjs/simplify/simplify.js +2 -1
  30. package/dist/cjs/simplify/simplify.js.map +1 -1
  31. package/dist/cjs/slice.d.ts +6 -1
  32. package/dist/cjs/slice.d.ts.map +1 -1
  33. package/dist/cjs/slice.js +8 -7
  34. package/dist/cjs/slice.js.map +1 -1
  35. package/dist/cjs/split-at.d.ts +12 -0
  36. package/dist/cjs/split-at.d.ts.map +1 -0
  37. package/dist/cjs/split-at.js +32 -0
  38. package/dist/cjs/split-at.js.map +1 -0
  39. package/dist/cjs/terminal.d.ts.map +1 -1
  40. package/dist/cjs/terminal.js +13 -12
  41. package/dist/cjs/terminal.js.map +1 -1
  42. package/dist/cjs/types.d.ts +2 -0
  43. package/dist/cjs/types.d.ts.map +1 -1
  44. package/dist/cjs/utils.d.ts +5 -0
  45. package/dist/cjs/utils.d.ts.map +1 -0
  46. package/dist/cjs/utils.js +14 -0
  47. package/dist/cjs/utils.js.map +1 -0
  48. package/dist/esm/ansi.d.ts +11 -9
  49. package/dist/esm/ansi.d.ts.map +1 -1
  50. package/dist/esm/ansi.js +3 -1
  51. package/dist/esm/ansi.js.map +1 -1
  52. package/dist/esm/cursor.d.ts +6 -6
  53. package/dist/esm/cursor.d.ts.map +1 -1
  54. package/dist/esm/cursor.js +18 -16
  55. package/dist/esm/cursor.js.map +1 -1
  56. package/dist/esm/erase.d.ts.map +1 -1
  57. package/dist/esm/erase.js +8 -7
  58. package/dist/esm/erase.js.map +1 -1
  59. package/dist/esm/scroll.d.ts +2 -2
  60. package/dist/esm/scroll.d.ts.map +1 -1
  61. package/dist/esm/scroll.js +5 -4
  62. package/dist/esm/scroll.js.map +1 -1
  63. package/dist/esm/sgr/color/channel.d.ts.map +1 -1
  64. package/dist/esm/sgr/color/channel.js +2 -1
  65. package/dist/esm/sgr/color/channel.js.map +1 -1
  66. package/dist/esm/sgr/format-builder.d.ts.map +1 -1
  67. package/dist/esm/sgr/format-builder.js +3 -2
  68. package/dist/esm/sgr/format-builder.js.map +1 -1
  69. package/dist/esm/sgr/reset.d.ts.map +1 -1
  70. package/dist/esm/sgr/reset.js +2 -1
  71. package/dist/esm/sgr/reset.js.map +1 -1
  72. package/dist/esm/simplify/simplify.d.ts.map +1 -1
  73. package/dist/esm/simplify/simplify.js +2 -1
  74. package/dist/esm/simplify/simplify.js.map +1 -1
  75. package/dist/esm/slice.d.ts +6 -1
  76. package/dist/esm/slice.d.ts.map +1 -1
  77. package/dist/esm/slice.js +8 -9
  78. package/dist/esm/slice.js.map +1 -1
  79. package/dist/esm/split-at.d.ts +12 -0
  80. package/dist/esm/split-at.d.ts.map +1 -0
  81. package/dist/esm/split-at.js +29 -0
  82. package/dist/esm/split-at.js.map +1 -0
  83. package/dist/esm/terminal.d.ts.map +1 -1
  84. package/dist/esm/terminal.js +13 -12
  85. package/dist/esm/terminal.js.map +1 -1
  86. package/dist/esm/types.d.ts +2 -0
  87. package/dist/esm/types.d.ts.map +1 -1
  88. package/dist/esm/utils.d.ts +5 -0
  89. package/dist/esm/utils.d.ts.map +1 -0
  90. package/dist/esm/utils.js +8 -0
  91. package/dist/esm/utils.js.map +1 -0
  92. package/package.json +1 -1
  93. package/src/ansi.ts +3 -1
  94. package/src/cursor.ts +18 -18
  95. package/src/erase.ts +9 -7
  96. package/src/scroll.ts +6 -4
  97. package/src/sgr/color/channel.ts +2 -1
  98. package/src/sgr/format-builder.ts +3 -2
  99. package/src/sgr/reset.ts +3 -1
  100. package/src/simplify/simplify.ts +2 -1
  101. package/src/slice.ts +11 -10
  102. package/src/split-at.ts +44 -0
  103. package/src/terminal.ts +14 -12
  104. package/src/types.ts +2 -0
  105. package/src/utils.ts +15 -0
package/README.md CHANGED
@@ -206,6 +206,10 @@ Removes all ANSI CSI sequences from a string (always available).
206
206
 
207
207
  Slices a string by visible characters, ignoring ANSI sequences (always available).
208
208
 
209
+ ### `splitAt(text, visibleIndex)`
210
+
211
+ Splits a string into two parts at the given visible index, ignoring ANSI sequences (always available).
212
+
209
213
  ### `sanitize(text)`
210
214
 
211
215
  Removes "unsafe" CSI sequences, leaving only color and style codes (always available).
@@ -1,16 +1,17 @@
1
1
  import { padEnd, padStart } from "./pad";
2
+ import { splitAt } from "./split-at";
2
3
  import { strip, visibleLength } from "./strip";
3
4
  import type { Args } from "./features";
4
5
  import type { Ansi } from "./types";
5
6
  export declare function makeAnsi(...args: Args): Ansi;
6
7
  export declare const ansi: Ansi;
7
8
  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: {
8
- up: (count?: number) => string;
9
- down: (count?: number) => string;
10
- forward: (count?: number) => string;
11
- backward: (count?: number) => string;
12
- nextLine: (count?: number) => string;
13
- prevLine: (count?: number) => string;
9
+ up: (count?: number | undefined) => string;
10
+ down: (count?: number | undefined) => string;
11
+ forward: (count?: number | undefined) => string;
12
+ backward: (count?: number | undefined) => string;
13
+ nextLine: (count?: number | undefined) => string;
14
+ prevLine: (count?: number | undefined) => string;
14
15
  x: (x: number) => string;
15
16
  save: string;
16
17
  restore: string;
@@ -42,8 +43,8 @@ export declare const fg: import("./sgr/types").Channel<"bg" | import("./sgr/type
42
43
  scrollback: string;
43
44
  };
44
45
  }, scroll: {
45
- up: (lines?: number) => string;
46
- down: (lines?: number) => string;
46
+ up: (lines?: number | undefined) => string;
47
+ down: (lines?: number | undefined) => string;
47
48
  }, terminal: {
48
49
  focusReporting: {
49
50
  enable: string;
@@ -66,7 +67,7 @@ export declare const fg: import("./sgr/types").Channel<"bg" | import("./sgr/type
66
67
  end: string;
67
68
  };
68
69
  };
69
- export { padEnd, padStart, strip, visibleLength };
70
+ export { padEnd, padStart, splitAt, strip, visibleLength };
70
71
  declare const _default: typeof makeAnsi & import("./sgr").SGR & {
71
72
  cursor: import("./cursor").Cursor;
72
73
  erase: import("./erase").Erase;
@@ -78,6 +79,7 @@ declare const _default: typeof makeAnsi & import("./sgr").SGR & {
78
79
  visibleLength: import("./strip").VisibleLength;
79
80
  sanitize: import("./strip").Sanitize;
80
81
  slice: import("./slice").Slice;
82
+ splitAt: import("./split-at").SplitAt;
81
83
  simplify: import("./simplify").Simplify;
82
84
  features: import("./features").Features;
83
85
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAoB,OAAO,CAAC;AAKrD,OAAO,EAAW,KAAK,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AAGvD,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,CAuB5C;AAED,eAAO,MAAM,IAAI,MAAa,CAAC;AAE/B,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,KAAK,EAAE,aAAa,EAAC,CAAA;;;;;;;;;;;;;;;AAE/C,wBAGE"}
1
+ {"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAoB,OAAO,CAAC;AAKrD,OAAO,EAAC,OAAO,EAAC,MAA6B,YAAY,CAAC;AAC1D,OAAO,EAAW,KAAK,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AAGvD,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,CAwB5C;AAED,eAAO,MAAM,IAAI,MAAa,CAAC;AAE/B,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,wBAGE"}
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.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.ansi = void 0;
4
4
  exports.makeAnsi = makeAnsi;
5
5
  const cursor_1 = require("./cursor");
6
6
  const erase_1 = require("./erase");
@@ -12,6 +12,8 @@ const scroll_1 = require("./scroll");
12
12
  const sgr_1 = require("./sgr");
13
13
  const simplify_1 = require("./simplify");
14
14
  const slice_1 = require("./slice");
15
+ const split_at_1 = require("./split-at");
16
+ Object.defineProperty(exports, "splitAt", { enumerable: true, get: function () { return split_at_1.splitAt; } });
15
17
  const strip_1 = require("./strip");
16
18
  Object.defineProperty(exports, "strip", { enumerable: true, get: function () { return strip_1.strip; } });
17
19
  Object.defineProperty(exports, "visibleLength", { enumerable: true, get: function () { return strip_1.visibleLength; } });
@@ -31,6 +33,7 @@ function makeAnsi(...args) {
31
33
  sanitize: strip_1.sanitize,
32
34
  slice: slice_1.slice,
33
35
  simplify: simplify_1.simplify,
36
+ splitAt: split_at_1.splitAt,
34
37
  features,
35
38
  };
36
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":";;;AAcA,4BAuBC;AArCD,qCAAwD;AACxD,mCAAuD;AACvD,yCAA0D;AAC1D,+BAAqD;AAwC7C,uFAxCA,YAAM,OAwCA;AAAE,yFAxCA,cAAQ,OAwCA;AAvCxB,qCAAwD;AACxD,+BAAqD;AACrD,yCAA0D;AAC1D,mCAAuD;AACvD,mCAAuD;AAmC7B,sFAnCR,aAAK,OAmCQ;AAAE,8FAnCR,qBAAa,OAmCQ;AAlC9C,yCAA0D;AAK1D,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,KAAK,EAAI,IAAA,iBAAS,EAAC,QAAQ,CAAC,KAAK,CAAC;QAClC,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;QAER,QAAQ;KACR,CAAC;AACH,CAAC;AAEY,QAAA,IAAI,GAAG,QAAQ,EAAE,CAAC;AAEjB,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,CACJ,CAAC"}
1
+ {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":";;;AAeA,4BAwBC;AAvCD,qCAAwD;AACxD,mCAAuD;AACvD,yCAA0D;AAC1D,+BAAqD;AA0C7C,uFA1CA,YAAM,OA0CA;AAAE,yFA1CA,cAAQ,OA0CA;AAzCxB,qCAAwD;AACxD,+BAAqD;AACrD,yCAA0D;AAC1D,mCAAuD;AACvD,yCAA0D;AAqChC,wFArClB,kBAAO,OAqCkB;AApCjC,mCAAuD;AAoCpB,sFApCjB,aAAK,OAoCiB;AAAE,8FApCjB,qBAAa,OAoCiB;AAnCvD,yCAA0D;AAK1D,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,KAAK,EAAI,IAAA,iBAAS,EAAC,QAAQ,CAAC,KAAK,CAAC;QAClC,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,GAAG,QAAQ,EAAE,CAAC;AAEjB,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,CACJ,CAAC"}
@@ -1,10 +1,10 @@
1
1
  declare const cursor: {
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;
2
+ up: (count?: number | undefined) => string;
3
+ down: (count?: number | undefined) => string;
4
+ forward: (count?: number | undefined) => string;
5
+ backward: (count?: number | undefined) => string;
6
+ nextLine: (count?: number | undefined) => string;
7
+ prevLine: (count?: number | undefined) => string;
8
8
  x: (x: number) => string;
9
9
  save: string;
10
10
  restore: string;
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/cursor.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,MAAM;iBAL4B,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,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;;;;;;;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,57 +1,59 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeCursor = void 0;
4
- const move = (code) => (count) => `\x1b[${count === undefined ? "" : count ? count : "?"}${code}`;
5
- const noop = () => "";
4
+ const utils_1 = require("./utils");
6
5
  const cursor = {
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`,
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"),
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"),
14
16
  // These are the old VT100 codes, but they're widely supported by old and new terminals. The
15
17
  // newer VT220 codes are standardized by ECMA and ISO, and are also widely supported, but might
16
18
  // not work in some older terminals. The VT220 codes are:
17
19
  //
18
20
  // ```
19
- // save : "\x1b[s",
20
- // restore : "\x1b[u",
21
+ // save : csi("s"),
22
+ // restore : csi("u"),
21
23
  // ```
22
24
  save: "\x1b7",
23
25
  restore: "\x1b8",
24
- hide: "\x1b[?25l",
25
- show: "\x1b[?25h",
26
+ hide: (0, utils_1.csi)("?25l"),
27
+ show: (0, utils_1.csi)("?25h"),
26
28
  position: {
27
- get: "\x1b[6n",
28
- set: (x, y) => `\x1b[${y};${x}H`,
29
+ get: (0, utils_1.csi)("6n"),
30
+ set: (x, y) => (0, utils_1.csi)(`${y};${x}H`),
29
31
  },
30
32
  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",
33
+ steadyBlock: (0, utils_1.csi)("2 q"),
34
+ steadyBar: (0, utils_1.csi)("6 q"),
35
+ steadyUnderline: (0, utils_1.csi)("4 q"),
36
+ blinkingBlock: (0, utils_1.csi)("1 q"),
37
+ blinkingBar: (0, utils_1.csi)("5 q"),
38
+ blinkingUnderline: (0, utils_1.csi)("3 q"),
39
+ default: (0, utils_1.csi)("0 q"),
38
40
  },
39
41
  };
40
42
  const disabled = {
41
- up: noop,
42
- down: noop,
43
- forward: noop,
44
- backward: noop,
45
- nextLine: noop,
46
- prevLine: noop,
47
- x: noop,
43
+ up: utils_1.noop,
44
+ down: utils_1.noop,
45
+ forward: utils_1.noop,
46
+ backward: utils_1.noop,
47
+ nextLine: utils_1.noop,
48
+ prevLine: utils_1.noop,
49
+ x: utils_1.noop,
48
50
  save: "",
49
51
  restore: "",
50
52
  hide: "",
51
53
  show: "",
52
54
  position: {
53
55
  get: "",
54
- set: noop,
56
+ set: utils_1.noop,
55
57
  },
56
58
  shape: {
57
59
  steadyBlock: "",
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/cursor.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,MAAM,GAAG;IACd,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,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;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,CAAC;IACpB,IAAI,EAAO,IAAA,aAAI,EAAC,GAAG,CAAC;IACpB,OAAO,EAAI,IAAA,aAAI,EAAC,GAAG,CAAC;IACpB,QAAQ,EAAG,IAAA,aAAI,EAAC,GAAG,CAAC;IACpB,QAAQ,EAAG,IAAA,aAAI,EAAC,GAAG,CAAC;IACpB,QAAQ,EAAG,IAAA,aAAI,EAAC,GAAG,CAAC;IAEpB,+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 +1 @@
1
- {"version":3,"file":"erase.d.ts","sourceRoot":"","sources":["../../src/erase.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,KAAK;;;;;;;;;;;;CAYV,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC;AAgBjC,eAAO,MAAM,SAAS,GAAI,iBAAc,KAAG,KAAmC,CAAC"}
1
+ {"version":3,"file":"erase.d.ts","sourceRoot":"","sources":["../../src/erase.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,KAAK;;;;;;;;;;;;CAYV,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC;AAgBjC,eAAO,MAAM,SAAS,GAAI,iBAAc,KAAG,KAAmC,CAAC"}
package/dist/cjs/erase.js CHANGED
@@ -1,17 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeErase = void 0;
4
+ const utils_1 = require("./utils");
4
5
  const erase = {
5
6
  line: {
6
- toStart: "\x1b[1K",
7
- toEnd: "\x1b[0K",
8
- full: "\x1b[2K",
7
+ toStart: (0, utils_1.csi)("1K"),
8
+ toEnd: (0, utils_1.csi)("0K"),
9
+ full: (0, utils_1.csi)("2K"),
9
10
  },
10
11
  screen: {
11
- toStart: "\x1b[1J",
12
- toEnd: "\x1b[0J",
13
- full: "\x1b[2J",
14
- scrollback: "\x1b[3J",
12
+ toStart: (0, utils_1.csi)("1J"),
13
+ toEnd: (0, utils_1.csi)("0J"),
14
+ full: (0, utils_1.csi)("2J"),
15
+ scrollback: (0, utils_1.csi)("3J"),
15
16
  },
16
17
  };
17
18
  const disabled = {
@@ -1 +1 @@
1
- {"version":3,"file":"erase.js","sourceRoot":"","sources":["../../src/erase.ts"],"names":[],"mappings":";;;AAAA,MAAM,KAAK,GAAG;IACb,IAAI,EAAE;QACL,OAAO,EAAG,SAAS;QACnB,KAAK,EAAK,SAAS;QACnB,IAAI,EAAM,SAAS;KACnB;IACD,MAAM,EAAE;QACP,OAAO,EAAM,SAAS;QACtB,KAAK,EAAQ,SAAS;QACtB,IAAI,EAAS,SAAS;QACtB,UAAU,EAAG,SAAS;KACtB;CACD,CAAC;AAIF,MAAM,QAAQ,GAAU;IACvB,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;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"}
1
+ {"version":3,"file":"erase.js","sourceRoot":"","sources":["../../src/erase.ts"],"names":[],"mappings":";;;AAAA,mCAA4B;AAE5B,MAAM,KAAK,GAAG;IACb,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;AAIF,MAAM,QAAQ,GAAU;IACvB,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;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"}
@@ -13,6 +13,7 @@ declare const ansi: typeof $ansi.makeAnsi & import("./sgr").SGR & {
13
13
  visibleLength: import("./strip").VisibleLength;
14
14
  sanitize: import("./strip").Sanitize;
15
15
  slice: import("./slice").Slice;
16
+ splitAt: import("./split-at").SplitAt;
16
17
  simplify: import("./simplify").Simplify;
17
18
  features: import("./features").Features;
18
19
  } & {
@@ -23,12 +24,12 @@ declare const ansi: typeof $ansi.makeAnsi & import("./sgr").SGR & {
23
24
  style: import("./sgr/types").Style<import("./sgr/types").ChainKey>;
24
25
  reset: string;
25
26
  cursor: {
26
- up: (count?: number) => string;
27
- down: (count?: number) => string;
28
- forward: (count?: number) => string;
29
- backward: (count?: number) => string;
30
- nextLine: (count?: number) => string;
31
- prevLine: (count?: number) => string;
27
+ up: (count?: number | undefined) => string;
28
+ down: (count?: number | undefined) => string;
29
+ forward: (count?: number | undefined) => string;
30
+ backward: (count?: number | undefined) => string;
31
+ nextLine: (count?: number | undefined) => string;
32
+ prevLine: (count?: number | undefined) => string;
32
33
  x: (x: number) => string;
33
34
  save: string;
34
35
  restore: string;
@@ -62,8 +63,8 @@ declare const ansi: typeof $ansi.makeAnsi & import("./sgr").SGR & {
62
63
  };
63
64
  };
64
65
  scroll: {
65
- up: (lines?: number) => string;
66
- down: (lines?: number) => string;
66
+ up: (lines?: number | undefined) => string;
67
+ down: (lines?: number | undefined) => string;
67
68
  };
68
69
  terminal: {
69
70
  focusReporting: {
@@ -89,6 +90,7 @@ declare const ansi: typeof $ansi.makeAnsi & import("./sgr").SGR & {
89
90
  };
90
91
  padEnd: (text: string, targetLength: number, fillString?: string) => string;
91
92
  padStart: (text: string, targetLength: number, fillString?: string) => string;
93
+ splitAt: typeof $ansi.splitAt;
92
94
  strip: (text: string) => string;
93
95
  visibleLength: (text: string) => number;
94
96
  };
@@ -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,GAAG,OAAO,SAAS,EAAE,IAAI,CAAC;CAC1C;AAID,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAkC,CAAC;AAE7C,SAAS,IAAI,CAAC"}
@@ -1,6 +1,6 @@
1
1
  declare const scroll: {
2
- up: (lines?: number) => string;
3
- down: (lines?: number) => string;
2
+ up: (lines?: number | undefined) => string;
3
+ down: (lines?: number | undefined) => string;
4
4
  };
5
5
  export type Scroll = typeof scroll;
6
6
  export declare const makeScroll: (enabled?: boolean) => Scroll;
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM;iBACK,MAAM,KAAG,MAAM;mBACf,MAAM,KAAG,MAAM;CAC/B,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;;;CAGX,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAOnC,eAAO,MAAM,UAAU,GAAI,iBAAc,KAAG,MAAqC,CAAC"}
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeScroll = void 0;
4
+ const utils_1 = require("./utils");
4
5
  const scroll = {
5
- up: (lines) => `\x1b[${lines ?? 1}S`,
6
- down: (lines) => `\x1b[${lines ?? 1}T`,
6
+ up: (0, utils_1.count)("S"),
7
+ down: (0, utils_1.count)("T"),
7
8
  };
8
9
  const disabled = {
9
- up: () => "",
10
- down: () => "",
10
+ up: utils_1.noop,
11
+ down: utils_1.noop,
11
12
  };
12
13
  const makeScroll = (enabled = true) => enabled ? scroll : disabled;
13
14
  exports.makeScroll = makeScroll;
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":";;;AAAA,MAAM,MAAM,GAAG;IACd,EAAE,EAAK,CAAC,KAAc,EAAU,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG;IACxD,IAAI,EAAG,CAAC,KAAc,EAAU,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG;CACxD,CAAC;AAIF,MAAM,QAAQ,GAAW;IACxB,EAAE,EAAK,GAAG,EAAE,CAAC,EAAE;IACf,IAAI,EAAG,GAAG,EAAE,CAAC,EAAE;CACf,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,mCAAoC;AAEpC,MAAM,MAAM,GAAG;IACd,EAAE,EAAK,IAAA,aAAK,EAAmB,GAAG,CAAC;IACnC,IAAI,EAAG,IAAA,aAAK,EAAmB,GAAG,CAAC;CACnC,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 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/channel.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,MAA6C,gBAAgB,CAAC;AACtF,OAAO,KAAK,EAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAC,MAAM,UAAU,CAAC;AAahF,wBAAgB,WAAW,CAC1B,IAAI,EAAY,WAAW,CAAC,QAAQ,CAAC,EACrC,aAAa,EAAG,aAAa,EAC7B,KAAK,EAAW,KAAK,EACrB,UAAU,EAAM,UAAU,EAC1B,OAAO,EAAS,QAAQ,GACtB,OAAO,CAmBT"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/channel.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,UAAU,EAAC,MAA6C,gBAAgB,CAAC;AACtF,OAAO,KAAK,EAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAC,MAAM,UAAU,CAAC;AAahF,wBAAgB,WAAW,CAC1B,IAAI,EAAY,WAAW,CAAC,QAAQ,CAAC,EACrC,aAAa,EAAG,aAAa,EAC7B,KAAK,EAAW,KAAK,EACrB,UAAU,EAAM,UAAU,EAC1B,OAAO,EAAS,QAAQ,GACtB,OAAO,CAmBT"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeChannel = makeChannel;
4
+ const utils_1 = require("../../utils");
4
5
  const lazy_1 = require("../lazy");
5
6
  const context_1 = require("./context");
6
7
  const rgb_1 = require("./rgb");
@@ -20,7 +21,7 @@ function makeChannel(keys, makeFormatter, style, colorDepth, channel) {
20
21
  const rtn = {
21
22
  rgb: (0, rgb_1.makeRGB)(ctx),
22
23
  x256: (0, rgb_1.makeX256)(ctx),
23
- default: colorDepth > 1 ? `\x1b[${close}m` : "",
24
+ default: colorDepth > 1 ? (0, utils_1.csi)(close, "m") : "",
24
25
  };
25
26
  for (let i = 0; i < colors.length; i++) {
26
27
  const color = colors[i];
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../../src/sgr/color/channel.ts"],"names":[],"mappings":";;AAkBA,kCAyBC;AA3CD,kCAA0C;AAC1C,uCAA4C;AAC5C,+BAAwC;AAKxC,MAAM,MAAM,GAAG;IACd,OAAO;IACP,KAAK;IACL,OAAO;IACP,QAAQ;IACR,MAAM;IACN,SAAS;IACT,MAAM;IACN,OAAO;CACE,CAAC;AAEX,SAAgB,WAAW,CAC1B,IAAqC,EACrC,aAA6B,EAC7B,KAAqB,EACrB,UAA0B,EAC1B,OAAwB;IAExB,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAC,GAAG,GAAG,CAAC;IAEzC,MAAM,GAAG,GAAG;QACX,GAAG,EAAO,IAAA,aAAO,EAAC,GAAG,CAAC;QACtB,IAAI,EAAM,IAAA,cAAQ,EAAC,GAAG,CAAC;QACvB,OAAO,EAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;KACrC,CAAC;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAS,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,WAAW,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvE,WAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,WAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../../src/sgr/color/channel.ts"],"names":[],"mappings":";;AAmBA,kCAyBC;AA5CD,uCAA8C;AAC9C,kCAA0C;AAC1C,uCAA4C;AAC5C,+BAAwC;AAKxC,MAAM,MAAM,GAAG;IACd,OAAO;IACP,KAAK;IACL,OAAO;IACP,QAAQ;IACR,MAAM;IACN,SAAS;IACT,MAAM;IACN,OAAO;CACE,CAAC;AAEX,SAAgB,WAAW,CAC1B,IAAqC,EACrC,aAA6B,EAC7B,KAAqB,EACrB,UAA0B,EAC1B,OAAwB;IAExB,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAC,GAAG,GAAG,CAAC;IAEzC,MAAM,GAAG,GAAG;QACX,GAAG,EAAO,IAAA,aAAO,EAAC,GAAG,CAAC;QACtB,IAAI,EAAM,IAAA,cAAQ,EAAC,GAAG,CAAC;QACvB,OAAO,EAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,WAAG,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;KACpC,CAAC;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAS,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,WAAW,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvE,WAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,WAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"format-builder.d.ts","sourceRoot":"","sources":["../../../src/sgr/format-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAsC,aAAa,EAAC,MAAM,SAAS,CAAC;AAY7F,eAAO,MAAM,iBAAiB,GAAI,WAAW,YAAY,KAAG,aAkC1D,CAAC"}
1
+ {"version":3,"file":"format-builder.d.ts","sourceRoot":"","sources":["../../../src/sgr/format-builder.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAsC,aAAa,EAAC,MAAM,SAAS,CAAC;AAY7F,eAAO,MAAM,iBAAiB,GAAI,WAAW,YAAY,KAAG,aAkC1D,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeFormatBuilder = void 0;
4
4
  const props_1 = require("@peteanderson/props");
5
+ const utils_1 = require("../utils");
5
6
  const combine_1 = require("./combine");
6
7
  const lazy_1 = require("./lazy");
7
8
  const codeSequence = (code) => Array.isArray(code) ? code.join(';') : code;
@@ -12,8 +13,8 @@ const makeFormatBuilder = (makeChain) => function format(keys, open, close, rese
12
13
  const empty = Array.isArray(open) && !open.length;
13
14
  const openCode = empty ? "" : codeSequence(open);
14
15
  const closeCode = empty ? "" : codeSequence(close);
15
- const openSequence = empty ? "" : `\x1b[${openCode}m`;
16
- const closeSequence = empty ? "" : `\x1b[${closeCode}m`;
16
+ const openSequence = empty ? "" : (0, utils_1.csi)(openCode, "m");
17
+ const closeSequence = empty ? "" : (0, utils_1.csi)(closeCode, "m");
17
18
  const reopenCode = reset && !empty ? `${closeCode};${openCode}` : openCode;
18
19
  const rxClose = new RegExp(`(?<start>\\x1b\\[(?:\\d+;)*)${closeCode}(?<end>(?:;\\d+)*m)`, "g");
19
20
  const replace = `$<start>${reopenCode}$<end>`;
@@ -1 +1 @@
1
- {"version":3,"file":"format-builder.js","sourceRoot":"","sources":["../../../src/sgr/format-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format-builder.js","sourceRoot":"","sources":["../../../src/sgr/format-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/sgr/reset.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,GAAI,iBAAc,KAAG,MAAiC,CAAC"}
1
+ {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/sgr/reset.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,GAAI,iBAAc,KAAG,MAAiC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeReset = void 0;
4
- const makeReset = (enabled = true) => enabled ? "\x1b[m" : "";
4
+ const utils_1 = require("../utils");
5
+ const makeReset = (enabled = true) => enabled ? (0, utils_1.csi)("m") : "";
5
6
  exports.makeReset = makeReset;
6
7
  //# sourceMappingURL=reset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/sgr/reset.ts"],"names":[],"mappings":";;;AAAO,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;AAAhE,QAAA,SAAS,aAAuD"}
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/sgr/reset.ts"],"names":[],"mappings":";;;AAAA,oCAA6B;AAEtB,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,WAAG,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAAhE,QAAA,SAAS,aAAuD"}
@@ -1 +1 @@
1
- {"version":3,"file":"simplify.d.ts","sourceRoot":"","sources":["../../../src/simplify/simplify.ts"],"names":[],"mappings":"AAGA,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAwB7C;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC"}
1
+ {"version":3,"file":"simplify.d.ts","sourceRoot":"","sources":["../../../src/simplify/simplify.ts"],"names":[],"mappings":"AAIA,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAwB7C;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.simplify = simplify;
4
4
  const patterns_1 = require("../patterns");
5
+ const utils_1 = require("../utils");
5
6
  const state_1 = require("./state");
6
7
  function simplify(text) {
7
8
  // `.split` doesn't modify `lastIndex`, so no clone is necessary here.
@@ -18,7 +19,7 @@ function simplify(text) {
18
19
  }
19
20
  const newCodes = state.update(codes);
20
21
  if (newCodes.length)
21
- result += `\x1b[${newCodes.join(";")}m`;
22
+ result += (0, utils_1.csi)(newCodes.join(";"), "m");
22
23
  result += chunk;
23
24
  }
24
25
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"simplify.js","sourceRoot":"","sources":["../../../src/simplify/simplify.ts"],"names":[],"mappings":";;AAGA,4BAwBC;AA3BD,0CAAkC;AAClC,mCAA8B;AAE9B,SAAgB,QAAQ,CAAC,IAAY;IACpC,sEAAsE;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAK,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAI,IAAI,aAAK,EAAE,CAAC;IAC3B,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAI,CAAC;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjE,IAAM,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAEzB,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACnC,6DAA6D;YAC7D,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,QAAQ,CAAC,MAAM;YAClB,MAAM,IAAI,QAAQ,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"simplify.js","sourceRoot":"","sources":["../../../src/simplify/simplify.ts"],"names":[],"mappings":";;AAIA,4BAwBC;AA5BD,0CAAkC;AAClC,oCAA+B;AAC/B,mCAA8B;AAE9B,SAAgB,QAAQ,CAAC,IAAY;IACpC,sEAAsE;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAK,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAI,IAAI,aAAK,EAAE,CAAC;IAC3B,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAI,CAAC;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjE,IAAM,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAEzB,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACnC,6DAA6D;YAC7D,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,QAAQ,CAAC,MAAM;YAClB,MAAM,IAAI,IAAA,WAAG,EAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -1,3 +1,8 @@
1
+ export declare function scanCSI(text: string, fromStringIndex: number, visibleCount: number): {
2
+ index: number;
3
+ length: number;
4
+ };
5
+ export declare function skippedSequences(text: string, start: number, end?: number): string;
1
6
  /**
2
7
  * Return a slice of the given text, counting only visible characters (i.e. ignoring ANSI escape
3
8
  * codes). The returned slice will include any ANSI escape codes from within the slice. In addition,
@@ -17,6 +22,6 @@
17
22
  * of the slice as it would be if the whole string were printed. This function is intended mostly
18
23
  * for text that contains SGR codes, but no other ANSI codes or control characters.
19
24
  */
20
- export declare function slice(text: string, start: number, end: number): string;
25
+ export declare function slice(text: string, start: number, end?: number): string;
21
26
  export type Slice = typeof slice;
22
27
  //# sourceMappingURL=slice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../src/slice.ts"],"names":[],"mappings":"AAqCA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CA6BtE;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC"}
1
+ {"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../src/slice.ts"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CACtB,IAAI,EAAc,MAAM,EACxB,eAAe,EAAG,MAAM,EACxB,YAAY,EAAM,MAAM,GACtB;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAsBjC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGlF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CA8BvE;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC"}
package/dist/cjs/slice.js CHANGED
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.scanCSI = scanCSI;
4
+ exports.skippedSequences = skippedSequences;
3
5
  exports.slice = slice;
4
6
  const patterns_1 = require("./patterns");
5
7
  const simplify_1 = require("./simplify");
@@ -49,13 +51,12 @@ function skippedSequences(text, start, end) {
49
51
  function slice(text, start, end) {
50
52
  let textVisibleLength;
51
53
  const getVisibleLength = () => textVisibleLength ??= (0, strip_1.visibleLength)(text);
52
- if (start < 0 || end < 0) {
53
- textVisibleLength = getVisibleLength();
54
- if (start < 0)
55
- start = Math.max(0, textVisibleLength + start);
56
- if (end < 0)
57
- end = Math.max(0, textVisibleLength + end);
58
- }
54
+ if (end === undefined)
55
+ end = getVisibleLength();
56
+ if (start < 0)
57
+ start = Math.max(0, getVisibleLength() + start);
58
+ if (end < 0)
59
+ end = Math.max(0, getVisibleLength() + end);
59
60
  if (start > end)
60
61
  return "";
61
62
  if (start === 0 && (end >= text.length || end >= getVisibleLength()))
@@ -1 +1 @@
1
- {"version":3,"file":"slice.js","sourceRoot":"","sources":["../../src/slice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slice.js","sourceRoot":"","sources":["../../src/slice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Split a string into two parts at the given visible index (i.e., the given visible character,
3
+ * ignoring ANSI escape codes). The returned strings will include any ANSI escape codes from within
4
+ * each slice.
5
+ *
6
+ * Note that unlike {@linkcode slice}, this function doesn't, by default include any SGR codes (m)
7
+ * from before or after the split point. If you need to preserve the terminal state before and after
8
+ * the split, pass `true` for the `includeSkipped` parameter.
9
+ */
10
+ export declare function splitAt(text: string, visibleIndex: number, includeSkipped?: boolean): [start: string, end: string];
11
+ export type SplitAt = typeof splitAt;
12
+ //# sourceMappingURL=split-at.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split-at.d.ts","sourceRoot":"","sources":["../../src/split-at.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACtB,IAAI,EAAa,MAAM,EACvB,YAAY,EAAK,MAAM,EACvB,cAAc,GAAG,OAAe,GAC9B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAwB9B;AAED,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.splitAt = splitAt;
4
+ const slice_1 = require("./slice");
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 doesn't, by default include any SGR codes (m)
11
+ * from before or after the split point. If you need to preserve the terminal state before and after
12
+ * the split, pass `true` for the `includeSkipped` parameter.
13
+ */
14
+ function splitAt(text, visibleIndex, includeSkipped = false) {
15
+ if (!visibleIndex)
16
+ return ["", text];
17
+ if (visibleIndex < 0)
18
+ throw new Error("visibleIndex must be non-negative");
19
+ if (visibleIndex > text.length)
20
+ return [text, ""];
21
+ const { index } = (0, slice_1.scanCSI)(text, 0, visibleIndex);
22
+ if (index === text.length)
23
+ return [text, ""];
24
+ let start = text.slice(0, index);
25
+ let end = text.slice(index);
26
+ if (includeSkipped) {
27
+ start += (0, slice_1.skippedSequences)(text, index);
28
+ end = (0, slice_1.skippedSequences)(text, 0, index) + end;
29
+ }
30
+ return [start, end];
31
+ }
32
+ //# sourceMappingURL=split-at.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split-at.js","sourceRoot":"","sources":["../../src/split-at.ts"],"names":[],"mappings":";;AAaA,0BA4BC;AAzCD,mCAAkD;AAIlD;;;;;;;;GAQG;AACH,SAAgB,OAAO,CACtB,IAAuB,EACvB,YAAuB,EACvB,iBAA2B,KAAK;IAEhC,IAAI,CAAC,YAAY;QAChB,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAEnB,IAAI,YAAY,GAAG,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAEtD,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM;QAC7B,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEnB,MAAM,EAAC,KAAK,EAAC,GAAG,IAAA,eAAO,EAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;IAE/C,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM;QACxB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEnB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACjC,IAAI,GAAG,GAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE9B,IAAI,cAAc,EAAE,CAAC;QACpB,KAAK,IAAI,IAAA,wBAAgB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvC,GAAG,GAAM,IAAA,wBAAgB,EAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;IACjD,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACrB,CAAC"}