@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
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/terminal.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAwBb,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC;AA4BvC,eAAO,MAAM,YAAY,GAAI,iBAAc,KAAG,QAAyC,CAAC"}
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/terminal.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAwBb,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC;AA4BvC,eAAO,MAAM,YAAY,GAAI,iBAAc,KAAG,QAAyC,CAAC"}
@@ -1,26 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeTerminal = void 0;
4
+ const utils_1 = require("./utils");
4
5
  const terminal = {
5
6
  focusReporting: {
6
- enable: "\x1b[?1004h",
7
- disable: "\x1b[?1004l",
8
- focus: "\x1b[I",
9
- blur: "\x1b[O",
7
+ enable: (0, utils_1.csi)("?1004h"),
8
+ disable: (0, utils_1.csi)("?1004l"),
9
+ focus: (0, utils_1.csi)("I"),
10
+ blur: (0, utils_1.csi)("O"),
10
11
  },
11
12
  alternateScreen: {
12
- enable: "\x1b[?1049h",
13
- disable: "\x1b[?1049l",
13
+ enable: (0, utils_1.csi)("?1049h"),
14
+ disable: (0, utils_1.csi)("?1049l"),
14
15
  legacy: {
15
- enable: "\x1b[?47h",
16
- disable: "\x1b[?47l",
16
+ enable: (0, utils_1.csi)("?47h"),
17
+ disable: (0, utils_1.csi)("?47l"),
17
18
  },
18
19
  },
19
20
  bracketedPaste: {
20
- enable: "\x1b[?2004h",
21
- disable: "\x1b[?2004l",
22
- start: "\x1b[200~",
23
- end: "\x1b[201~",
21
+ enable: (0, utils_1.csi)("?2004h"),
22
+ disable: (0, utils_1.csi)("?2004l"),
23
+ start: (0, utils_1.csi)("200~"),
24
+ end: (0, utils_1.csi)("201~"),
24
25
  },
25
26
  };
26
27
  const disabled = {
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/terminal.ts"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG;IAChB,cAAc,EAAE;QACf,MAAM,EAAI,aAAa;QACvB,OAAO,EAAG,aAAa;QACvB,KAAK,EAAK,QAAQ;QAClB,IAAI,EAAM,QAAQ;KAClB;IAED,eAAe,EAAE;QAChB,MAAM,EAAI,aAAa;QACvB,OAAO,EAAG,aAAa;QAEvB,MAAM,EAAE;YACP,MAAM,EAAI,WAAW;YACrB,OAAO,EAAG,WAAW;SACrB;KACD;IAED,cAAc,EAAE;QACf,MAAM,EAAI,aAAa;QACvB,OAAO,EAAG,aAAa;QACvB,KAAK,EAAK,WAAW;QACrB,GAAG,EAAO,WAAW;KACrB;CACD,CAAC;AAIF,MAAM,QAAQ,GAAa;IAC1B,cAAc,EAAE;QACf,MAAM,EAAI,EAAE;QACZ,OAAO,EAAG,EAAE;QACZ,KAAK,EAAK,EAAE;QACZ,IAAI,EAAM,EAAE;KACZ;IAED,eAAe,EAAE;QAChB,MAAM,EAAI,EAAE;QACZ,OAAO,EAAG,EAAE;QAEZ,MAAM,EAAE;YACP,MAAM,EAAI,EAAE;YACZ,OAAO,EAAG,EAAE;SACZ;KACD;IAED,cAAc,EAAE;QACf,MAAM,EAAI,EAAE;QACZ,OAAO,EAAG,EAAE;QACZ,KAAK,EAAK,EAAE;QACZ,GAAG,EAAO,EAAE;KACZ;CACD,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,OAAO,GAAG,IAAI,EAAY,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AAA3E,QAAA,YAAY,gBAA+D"}
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/terminal.ts"],"names":[],"mappings":";;;AAAA,mCAA4B;AAE5B,MAAM,QAAQ,GAAG;IAChB,cAAc,EAAE;QACf,MAAM,EAAI,IAAA,WAAG,EAAC,QAAQ,CAAC;QACvB,OAAO,EAAG,IAAA,WAAG,EAAC,QAAQ,CAAC;QACvB,KAAK,EAAK,IAAA,WAAG,EAAC,GAAG,CAAC;QAClB,IAAI,EAAM,IAAA,WAAG,EAAC,GAAG,CAAC;KAClB;IAED,eAAe,EAAE;QAChB,MAAM,EAAI,IAAA,WAAG,EAAC,QAAQ,CAAC;QACvB,OAAO,EAAG,IAAA,WAAG,EAAC,QAAQ,CAAC;QAEvB,MAAM,EAAE;YACP,MAAM,EAAI,IAAA,WAAG,EAAC,MAAM,CAAC;YACrB,OAAO,EAAG,IAAA,WAAG,EAAC,MAAM,CAAC;SACrB;KACD;IAED,cAAc,EAAE;QACf,MAAM,EAAI,IAAA,WAAG,EAAC,QAAQ,CAAC;QACvB,OAAO,EAAG,IAAA,WAAG,EAAC,QAAQ,CAAC;QACvB,KAAK,EAAK,IAAA,WAAG,EAAC,MAAM,CAAC;QACrB,GAAG,EAAO,IAAA,WAAG,EAAC,MAAM,CAAC;KACrB;CACD,CAAC;AAIF,MAAM,QAAQ,GAAa;IAC1B,cAAc,EAAE;QACf,MAAM,EAAI,EAAE;QACZ,OAAO,EAAG,EAAE;QACZ,KAAK,EAAK,EAAE;QACZ,IAAI,EAAM,EAAE;KACZ;IAED,eAAe,EAAE;QAChB,MAAM,EAAI,EAAE;QACZ,OAAO,EAAG,EAAE;QAEZ,MAAM,EAAE;YACP,MAAM,EAAI,EAAE;YACZ,OAAO,EAAG,EAAE;SACZ;KACD;IAED,cAAc,EAAE;QACf,MAAM,EAAI,EAAE;QACZ,OAAO,EAAG,EAAE;QACZ,KAAK,EAAK,EAAE;QACZ,GAAG,EAAO,EAAE;KACZ;CACD,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,OAAO,GAAG,IAAI,EAAY,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AAA3E,QAAA,YAAY,gBAA+D"}
@@ -6,6 +6,7 @@ import type { Scroll } from "./scroll";
6
6
  import type { SGR } from "./sgr";
7
7
  import type { Simplify } from "./simplify";
8
8
  import type { Slice } from "./slice";
9
+ import type { SplitAt } from "./split-at";
9
10
  import type { Sanitize, Strip, VisibleLength } from "./strip";
10
11
  import type { Terminal } from "./terminal";
11
12
  export type Ansi = SGR & {
@@ -19,6 +20,7 @@ export type Ansi = SGR & {
19
20
  visibleLength: VisibleLength;
20
21
  sanitize: Sanitize;
21
22
  slice: Slice;
23
+ splitAt: SplitAt;
22
24
  simplify: Simplify;
23
25
  features: Features;
24
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAA8B,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAC,KAAK,EAAC,MAA+B,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAA4B,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAoB,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAC,MAAM,EAAC,MAA8B,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAC,GAAG,EAAC,MAAiC,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAA4B,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAC,KAAK,EAAC,MAA+B,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAA4B,YAAY,CAAC;AAE/D,MAAM,MAAM,IAAI,GAAG,GAAG,GAAG;IACxB,MAAM,EAAK,MAAM,CAAC;IAClB,KAAK,EAAM,KAAK,CAAC;IACjB,MAAM,EAAK,MAAM,CAAC;IAClB,QAAQ,EAAG,QAAQ,CAAC;IAEpB,MAAM,EAAK,MAAM,CAAC;IAClB,QAAQ,EAAG,QAAQ,CAAC;IAEpB,KAAK,EAAW,KAAK,CAAC;IACtB,aAAa,EAAG,aAAa,CAAC;IAC9B,QAAQ,EAAQ,QAAQ,CAAC;IACzB,KAAK,EAAW,KAAK,CAAC;IACtB,QAAQ,EAAQ,QAAQ,CAAC;IAEzB,QAAQ,EAAG,QAAQ,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAA8B,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAC,KAAK,EAAC,MAA+B,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAA4B,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAoB,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAC,MAAM,EAAC,MAA8B,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAC,GAAG,EAAC,MAAiC,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAA4B,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAC,KAAK,EAAC,MAA+B,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAC,OAAO,EAAC,MAA6B,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAA4B,YAAY,CAAC;AAE/D,MAAM,MAAM,IAAI,GAAG,GAAG,GAAG;IACxB,MAAM,EAAK,MAAM,CAAC;IAClB,KAAK,EAAM,KAAK,CAAC;IACjB,MAAM,EAAK,MAAM,CAAC;IAClB,QAAQ,EAAG,QAAQ,CAAC;IAEpB,MAAM,EAAK,MAAM,CAAC;IAClB,QAAQ,EAAG,QAAQ,CAAC;IAEpB,KAAK,EAAW,KAAK,CAAC;IACtB,aAAa,EAAG,aAAa,CAAC;IAC9B,QAAQ,EAAQ,QAAQ,CAAC;IACzB,KAAK,EAAW,KAAK,CAAC;IACtB,OAAO,EAAS,OAAO,CAAC;IACxB,QAAQ,EAAQ,QAAQ,CAAC;IAEzB,QAAQ,EAAG,QAAQ,CAAC;CACpB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function csi(command: string): string;
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;
4
+ export declare const noop: () => string;
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +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;AAQlF,eAAO,MAAM,KAAK,GAAI,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EAC/D,MAAM,MAAM,KACV,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,MACmE,CAAC;AAE3F,eAAO,MAAM,IAAI,cAAW,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.noop = exports.count = void 0;
4
+ exports.csi = csi;
5
+ function csi(...args) {
6
+ const command = args.pop();
7
+ const params = args.pop();
8
+ return `\x1b[${params === undefined ? "" : params}${command}`;
9
+ }
10
+ const count = (code) => (count) => count === 0 ? "" : csi(count === 1 ? undefined : count, code);
11
+ exports.count = count;
12
+ const noop = () => "";
13
+ exports.noop = noop;
14
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +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;AAEM,MAAM,KAAK,GAAG,CACpB,IAAY,EACiB,EAAE,CAC/B,CAAC,KAAc,EAAU,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAH9E,QAAA,KAAK,SAGyE;AAEpF,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC;AAAhB,QAAA,IAAI,QAAY"}
@@ -1,16 +1,17 @@
1
1
  import { padEnd, padStart } from "./pad.js";
2
+ import { splitAt } from "./split-at.js";
2
3
  import { strip, visibleLength } from "./strip.js";
3
4
  import type { Args } from "./features/index.js";
4
5
  import type { Ansi } from "./types.js";
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.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: {
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.js").Channel<"bg" | import("./sgr/t
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.js").Channel<"bg" | import("./sgr/t
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/index.js").SGR & {
71
72
  cursor: import("./cursor.js").Cursor;
72
73
  erase: import("./erase.js").Erase;
@@ -78,6 +79,7 @@ declare const _default: typeof makeAnsi & import("./sgr/index.js").SGR & {
78
79
  visibleLength: import("./strip.js").VisibleLength;
79
80
  sanitize: import("./strip.js").Sanitize;
80
81
  slice: import("./slice.js").Slice;
82
+ splitAt: import("./split-at.js").SplitAt;
81
83
  simplify: import("./simplify/index.js").Simplify;
82
84
  features: import("./features/index.js").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/esm/ansi.js CHANGED
@@ -6,6 +6,7 @@ import { makeScroll } from "./scroll.js";
6
6
  import { makeSGR } from "./sgr/index.js";
7
7
  import { simplify } from "./simplify/index.js";
8
8
  import { slice } from "./slice.js";
9
+ import { splitAt } from "./split-at.js";
9
10
  import { sanitize, strip, visibleLength } from "./strip.js";
10
11
  import { makeTerminal } from "./terminal.js";
11
12
  export function makeAnsi(...args) {
@@ -23,11 +24,12 @@ export function makeAnsi(...args) {
23
24
  sanitize,
24
25
  slice,
25
26
  simplify,
27
+ splitAt,
26
28
  features,
27
29
  };
28
30
  }
29
31
  export const ansi = makeAnsi();
30
32
  export const { fg, bg, style, reset, cursor, erase, scroll, terminal } = ansi;
31
- export { padEnd, padStart, strip, visibleLength };
33
+ export { padEnd, padStart, splitAt, strip, visibleLength };
32
34
  export default Object.assign(Object.defineProperty(makeAnsi.bind(undefined), "name", { value: "ansi" }), ansi);
33
35
  //# sourceMappingURL=ansi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAA0B,UAAU,CAAC;AACxD,OAAO,EAAC,SAAS,EAAC,MAA2B,SAAS,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAyB,YAAY,CAAC;AAC1D,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAoB,OAAO,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAA0B,UAAU,CAAC;AACxD,OAAO,EAAC,OAAO,EAAC,MAA6B,OAAO,CAAC;AACrD,OAAO,EAAC,QAAQ,EAAC,MAA4B,YAAY,CAAC;AAC1D,OAAO,EAAC,KAAK,EAAC,MAA+B,SAAS,CAAC;AACvD,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AACvD,OAAO,EAAC,YAAY,EAAC,MAAwB,YAAY,CAAC;AAK1D,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,KAAK,EAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAClC,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;QAER,QAAQ;KACR,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;AAE/B,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,KAAK,EAAE,aAAa,EAAC,CAAA;AAE/C,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,CACJ,CAAC"}
1
+ {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAA0B,UAAU,CAAC;AACxD,OAAO,EAAC,SAAS,EAAC,MAA2B,SAAS,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAyB,YAAY,CAAC;AAC1D,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAoB,OAAO,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAA0B,UAAU,CAAC;AACxD,OAAO,EAAC,OAAO,EAAC,MAA6B,OAAO,CAAC;AACrD,OAAO,EAAC,QAAQ,EAAC,MAA4B,YAAY,CAAC;AAC1D,OAAO,EAAC,KAAK,EAAC,MAA+B,SAAS,CAAC;AACvD,OAAO,EAAC,OAAO,EAAC,MAA6B,YAAY,CAAC;AAC1D,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AACvD,OAAO,EAAC,YAAY,EAAC,MAAwB,YAAY,CAAC;AAK1D,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,KAAK,EAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAClC,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,GAAG,QAAQ,EAAE,CAAC;AAE/B,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,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,5 +1,4 @@
1
- const move = (code) => (count) => `\x1b[${count === undefined ? "" : count ? count : "?"}${code}`;
2
- const noop = () => "";
1
+ import { csi, count as move, noop } from "./utils.js";
3
2
  const cursor = {
4
3
  up: move("A"),
5
4
  down: move("B"),
@@ -7,31 +6,34 @@ const cursor = {
7
6
  backward: move("D"),
8
7
  nextLine: move("E"),
9
8
  prevLine: move("F"),
10
- x: (x) => `\x1b[${x}G`,
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"),
11
13
  // These are the old VT100 codes, but they're widely supported by old and new terminals. The
12
14
  // newer VT220 codes are standardized by ECMA and ISO, and are also widely supported, but might
13
15
  // not work in some older terminals. The VT220 codes are:
14
16
  //
15
17
  // ```
16
- // save : "\x1b[s",
17
- // restore : "\x1b[u",
18
+ // save : csi("s"),
19
+ // restore : csi("u"),
18
20
  // ```
19
21
  save: "\x1b7",
20
22
  restore: "\x1b8",
21
- hide: "\x1b[?25l",
22
- show: "\x1b[?25h",
23
+ hide: csi("?25l"),
24
+ show: csi("?25h"),
23
25
  position: {
24
- get: "\x1b[6n",
25
- set: (x, y) => `\x1b[${y};${x}H`,
26
+ get: csi("6n"),
27
+ set: (x, y) => csi(`${y};${x}H`),
26
28
  },
27
29
  shape: {
28
- steadyBlock: "\x1b[2 q",
29
- steadyBar: "\x1b[6 q",
30
- steadyUnderline: "\x1b[4 q",
31
- blinkingBlock: "\x1b[1 q",
32
- blinkingBar: "\x1b[5 q",
33
- blinkingUnderline: "\x1b[3 q",
34
- default: "\x1b[0 q",
30
+ steadyBlock: csi("2 q"),
31
+ steadyBar: csi("6 q"),
32
+ steadyUnderline: csi("4 q"),
33
+ blinkingBlock: csi("1 q"),
34
+ blinkingBar: csi("5 q"),
35
+ blinkingUnderline: csi("3 q"),
36
+ default: csi("0 q"),
35
37
  },
36
38
  };
37
39
  const disabled = {
@@ -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;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,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,+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 +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/esm/erase.js CHANGED
@@ -1,14 +1,15 @@
1
+ import { csi } from "./utils.js";
1
2
  const erase = {
2
3
  line: {
3
- toStart: "\x1b[1K",
4
- toEnd: "\x1b[0K",
5
- full: "\x1b[2K",
4
+ toStart: csi("1K"),
5
+ toEnd: csi("0K"),
6
+ full: csi("2K"),
6
7
  },
7
8
  screen: {
8
- toStart: "\x1b[1J",
9
- toEnd: "\x1b[0J",
10
- full: "\x1b[2J",
11
- scrollback: "\x1b[3J",
9
+ toStart: csi("1J"),
10
+ toEnd: csi("0J"),
11
+ full: csi("2J"),
12
+ scrollback: csi("3J"),
12
13
  },
13
14
  };
14
15
  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;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,IAAI,EAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC"}
1
+ {"version":3,"file":"erase.js","sourceRoot":"","sources":["../../src/erase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,SAAS,CAAC;AAE5B,MAAM,KAAK,GAAG;IACb,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;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;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,IAAI,EAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,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,10 +1,11 @@
1
+ import { count, noop } from "./utils.js";
1
2
  const scroll = {
2
- up: (lines) => `\x1b[${lines ?? 1}S`,
3
- down: (lines) => `\x1b[${lines ?? 1}T`,
3
+ up: count("S"),
4
+ down: count("T"),
4
5
  };
5
6
  const disabled = {
6
- up: () => "",
7
- down: () => "",
7
+ up: noop,
8
+ down: noop,
8
9
  };
9
10
  export const makeScroll = (enabled = true) => enabled ? scroll : disabled;
10
11
  //# sourceMappingURL=scroll.js.map
@@ -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;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,KAAK,EAAE,IAAI,EAAC,MAAM,SAAS,CAAC;AAEpC,MAAM,MAAM,GAAG;IACd,EAAE,EAAK,KAAK,CAAmB,GAAG,CAAC;IACnC,IAAI,EAAG,KAAK,CAAmB,GAAG,CAAC;CACnC,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 +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,3 +1,4 @@
1
+ import { csi } from "../../utils.js";
1
2
  import { lazy } from "../lazy.js";
2
3
  import { buildContext } from "./context.js";
3
4
  import { makeRGB, makeX256 } from "./rgb.js";
@@ -17,7 +18,7 @@ export function makeChannel(keys, makeFormatter, style, colorDepth, channel) {
17
18
  const rtn = {
18
19
  rgb: makeRGB(ctx),
19
20
  x256: makeX256(ctx),
20
- default: colorDepth > 1 ? `\x1b[${close}m` : "",
21
+ default: colorDepth > 1 ? csi(close, "m") : "",
21
22
  };
22
23
  for (let i = 0; i < colors.length; i++) {
23
24
  const color = colors[i];
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../../src/sgr/color/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAmB,SAAS,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAW,WAAW,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAKxC,MAAM,MAAM,GAAG;IACd,OAAO;IACP,KAAK;IACL,OAAO;IACP,QAAQ;IACR,MAAM;IACN,SAAS;IACT,MAAM;IACN,OAAO;CACE,CAAC;AAEX,MAAM,UAAU,WAAW,CAC1B,IAAqC,EACrC,aAA6B,EAC7B,KAAqB,EACrB,UAA0B,EAC1B,OAAwB;IAExB,MAAM,GAAG,GAAG,YAAY,CAAC,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,OAAO,CAAC,GAAG,CAAC;QACtB,IAAI,EAAM,QAAQ,CAAC,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,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,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":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAoB,aAAa,CAAC;AAC9C,OAAO,EAAC,IAAI,EAAC,MAAmB,SAAS,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAW,WAAW,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAKxC,MAAM,MAAM,GAAG;IACd,OAAO;IACP,KAAK;IACL,OAAO;IACP,QAAQ;IACR,MAAM;IACN,SAAS;IACT,MAAM;IACN,OAAO;CACE,CAAC;AAEX,MAAM,UAAU,WAAW,CAC1B,IAAqC,EACrC,aAA6B,EAC7B,KAAqB,EACrB,UAA0B,EAC1B,OAAwB;IAExB,MAAM,GAAG,GAAG,YAAY,CAAC,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,OAAO,CAAC,GAAG,CAAC;QACtB,IAAI,EAAM,QAAQ,CAAC,GAAG,CAAC;QACvB,OAAO,EAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,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,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,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"}
@@ -1,4 +1,5 @@
1
1
  import { define } from "@peteanderson/props";
2
+ import { csi } from "../utils.js";
2
3
  import { combineCodes } from "./combine.js";
3
4
  import { lazy } from "./lazy.js";
4
5
  const codeSequence = (code) => Array.isArray(code) ? code.join(';') : code;
@@ -9,8 +10,8 @@ export const makeFormatBuilder = (makeChain) => function format(keys, open, clos
9
10
  const empty = Array.isArray(open) && !open.length;
10
11
  const openCode = empty ? "" : codeSequence(open);
11
12
  const closeCode = empty ? "" : codeSequence(close);
12
- const openSequence = empty ? "" : `\x1b[${openCode}m`;
13
- const closeSequence = empty ? "" : `\x1b[${closeCode}m`;
13
+ const openSequence = empty ? "" : csi(openCode, "m");
14
+ const closeSequence = empty ? "" : csi(closeCode, "m");
14
15
  const reopenCode = reset && !empty ? `${closeCode};${openCode}` : openCode;
15
16
  const rxClose = new RegExp(`(?<start>\\x1b\\[(?:\\d+;)*)${closeCode}(?<end>(?:;\\d+)*m)`, "g");
16
17
  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,2 +1,3 @@
1
- export const makeReset = (enabled = true) => enabled ? "\x1b[m" : "";
1
+ import { csi } from "../utils.js";
2
+ export const makeReset = (enabled = true) => enabled ? csi("m") : "";
2
3
  //# sourceMappingURL=reset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/sgr/reset.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/sgr/reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAE7B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC"}
@@ -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"}
@@ -1,4 +1,5 @@
1
1
  import { rxSGR } from "../patterns.js";
2
+ import { csi } from "../utils.js";
2
3
  import { State } from "./state.js";
3
4
  export function simplify(text) {
4
5
  // `.split` doesn't modify `lastIndex`, so no clone is necessary here.
@@ -15,7 +16,7 @@ export function simplify(text) {
15
16
  }
16
17
  const newCodes = state.update(codes);
17
18
  if (newCodes.length)
18
- result += `\x1b[${newCodes.join(";")}m`;
19
+ result += csi(newCodes.join(";"), "m");
19
20
  result += chunk;
20
21
  }
21
22
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"simplify.js","sourceRoot":"","sources":["../../../src/simplify/simplify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAClC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,QAAQ,CAAC,IAAY;IACpC,sEAAsE;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAI,IAAI,KAAK,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":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAClC,OAAO,EAAC,GAAG,EAAC,MAAQ,UAAU,CAAC;AAC/B,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,QAAQ,CAAC,IAAY;IACpC,sEAAsE;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAI,IAAI,KAAK,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,GAAG,CAAC,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/esm/slice.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { rxCSI, rxSGR } from "./patterns.js";
2
2
  import { simplify } from "./simplify/index.js";
3
3
  import { visibleLength } from "./strip.js";
4
- function scanCSI(text, fromStringIndex, visibleCount) {
4
+ export function scanCSI(text, fromStringIndex, visibleCount) {
5
5
  // We intentionally mutate `lastIndex` here, so we need a clone.
6
6
  const rx = new RegExp(rxCSI);
7
7
  let length = 0;
@@ -20,7 +20,7 @@ function scanCSI(text, fromStringIndex, visibleCount) {
20
20
  }
21
21
  return { index, length };
22
22
  }
23
- function skippedSequences(text, start, end) {
23
+ export function skippedSequences(text, start, end) {
24
24
  const sequences = text.slice(start, end).match(new RegExp(rxSGR));
25
25
  return sequences ? simplify(sequences.join("")) : "";
26
26
  }
@@ -46,13 +46,12 @@ function skippedSequences(text, start, end) {
46
46
  export function slice(text, start, end) {
47
47
  let textVisibleLength;
48
48
  const getVisibleLength = () => textVisibleLength ??= visibleLength(text);
49
- if (start < 0 || end < 0) {
50
- textVisibleLength = getVisibleLength();
51
- if (start < 0)
52
- start = Math.max(0, textVisibleLength + start);
53
- if (end < 0)
54
- end = Math.max(0, textVisibleLength + end);
55
- }
49
+ if (end === undefined)
50
+ end = getVisibleLength();
51
+ if (start < 0)
52
+ start = Math.max(0, getVisibleLength() + start);
53
+ if (end < 0)
54
+ end = Math.max(0, getVisibleLength() + end);
56
55
  if (start > end)
57
56
  return "";
58
57
  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":"AAAA,OAAO,EAAC,KAAK,EAAE,KAAK,EAAC,MAAO,YAAY,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAW,YAAY,CAAC;AACzC,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAEtC,MAAM,UAAU,OAAO,CACtB,IAAwB,EACxB,eAAwB,EACxB,YAAwB;IAExB,gEAAgE;IAChE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAE7B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,KAAK,GAAI,eAAe,CAAC;IAE7B,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,GAAG,YAAY,EAAE,CAAC;QACrD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE,CAAC;YAC5B,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC;YACrB,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,KAAK,EAAE,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC5B,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACzB,SAAS;YACV,CAAC;QACF,CAAC;QAED,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;IACV,CAAC;IAED,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,KAAa,EAAE,GAAY;IACzE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,OAAO,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,KAAK,CAAC,IAAY,EAAE,KAAa,EAAE,GAAY;IAC9D,IAAI,iBAAqC,CAAC;IAC1C,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,iBAAiB,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC;IAEzE,IAAI,GAAG,KAAK,SAAS;QACpB,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAE1B,IAAI,KAAK,GAAG,CAAC;QACZ,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC,CAAC;IACjD,IAAI,GAAG,GAAG,CAAC;QACV,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC,CAAC;IAE7C,IAAI,KAAK,GAAG,GAAG;QACd,OAAO,EAAE,CAAC;IAEX,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IAEb,MAAM,EAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAE5E,MAAM,QAAQ,GACb,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,cAAc,GAAG,GAAG;QAC/C,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,GAAG,cAAc,CAAC,CAAC,KAAK;QACvD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAEhB,mGAAmG;IACnG,MAAM,gBAAgB,GAAI,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IAChE,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE3D,OAAO,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAChF,CAAC"}
@@ -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"}