@peteanderson/ansi 0.3.3 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/dist/ansi.d.ts +28 -37
  2. package/dist/ansi.d.ts.map +1 -0
  3. package/dist/ansi.js +29 -52
  4. package/dist/ansi.js.map +1 -0
  5. package/dist/caret.d.ts +5 -3
  6. package/dist/caret.d.ts.map +1 -0
  7. package/dist/caret.js +6 -8
  8. package/dist/caret.js.map +1 -0
  9. package/dist/erase.d.ts +5 -1
  10. package/dist/erase.d.ts.map +1 -0
  11. package/dist/erase.js +4 -2
  12. package/dist/erase.js.map +1 -0
  13. package/dist/features/build.d.ts +7 -11
  14. package/dist/features/build.d.ts.map +1 -0
  15. package/dist/features/build.js +12 -25
  16. package/dist/features/build.js.map +1 -0
  17. package/dist/features/detect.d.ts +4 -4
  18. package/dist/features/detect.d.ts.map +1 -0
  19. package/dist/features/detect.js +5 -6
  20. package/dist/features/detect.js.map +1 -0
  21. package/dist/features/features.d.ts +4 -4
  22. package/dist/features/features.d.ts.map +1 -0
  23. package/dist/features/features.js +17 -28
  24. package/dist/features/features.js.map +1 -0
  25. package/dist/features/index.d.ts +2 -2
  26. package/dist/features/index.d.ts.map +1 -0
  27. package/dist/features/index.js +17 -1
  28. package/dist/features/index.js.map +1 -0
  29. package/dist/features/types.d.ts +10 -0
  30. package/dist/features/types.d.ts.map +1 -0
  31. package/dist/features/types.js +3 -0
  32. package/dist/features/types.js.map +1 -0
  33. package/dist/index.d.ts +3 -81
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +23 -1
  36. package/dist/index.js.map +1 -0
  37. package/dist/pad.d.ts +3 -4
  38. package/dist/pad.d.ts.map +1 -0
  39. package/dist/pad.js +8 -6
  40. package/dist/pad.js.map +1 -0
  41. package/dist/patterns.d.ts +4 -3
  42. package/dist/patterns.d.ts.map +1 -0
  43. package/dist/patterns.js +6 -4
  44. package/dist/patterns.js.map +1 -0
  45. package/dist/scroll.d.ts +5 -3
  46. package/dist/scroll.d.ts.map +1 -0
  47. package/dist/scroll.js +6 -6
  48. package/dist/scroll.js.map +1 -0
  49. package/dist/sgr/color/color.d.ts +5 -9
  50. package/dist/sgr/color/color.d.ts.map +1 -0
  51. package/dist/sgr/color/color.js +22 -29
  52. package/dist/sgr/color/color.js.map +1 -0
  53. package/dist/sgr/color/index.d.ts +2 -2
  54. package/dist/sgr/color/index.d.ts.map +1 -0
  55. package/dist/sgr/color/index.js +17 -1
  56. package/dist/sgr/color/index.js.map +1 -0
  57. package/dist/sgr/color/types.d.ts +30 -0
  58. package/dist/sgr/color/types.d.ts.map +1 -0
  59. package/dist/sgr/color/types.js +3 -0
  60. package/dist/sgr/color/types.js.map +1 -0
  61. package/dist/sgr/color/utils.d.ts +7 -27
  62. package/dist/sgr/color/utils.d.ts.map +1 -0
  63. package/dist/sgr/color/utils.js +16 -23
  64. package/dist/sgr/color/utils.js.map +1 -0
  65. package/dist/sgr/index.d.ts +4 -9
  66. package/dist/sgr/index.d.ts.map +1 -0
  67. package/dist/sgr/index.js +18 -4
  68. package/dist/sgr/index.js.map +1 -0
  69. package/dist/sgr/reset.d.ts +2 -1
  70. package/dist/sgr/reset.d.ts.map +1 -0
  71. package/dist/sgr/reset.js +4 -1
  72. package/dist/sgr/reset.js.map +1 -0
  73. package/dist/sgr/sgr.d.ts +4 -3
  74. package/dist/sgr/sgr.d.ts.map +1 -0
  75. package/dist/sgr/sgr.js +14 -27
  76. package/dist/sgr/sgr.js.map +1 -0
  77. package/dist/sgr/style.d.ts +3 -1
  78. package/dist/sgr/style.d.ts.map +1 -0
  79. package/dist/sgr/style.js +5 -3
  80. package/dist/sgr/style.js.map +1 -0
  81. package/dist/sgr/utils.d.ts +3 -2
  82. package/dist/sgr/utils.d.ts.map +1 -0
  83. package/dist/sgr/utils.js +3 -3
  84. package/dist/sgr/utils.js.map +1 -0
  85. package/dist/simplify/atom.d.ts +4 -3
  86. package/dist/simplify/atom.d.ts.map +1 -0
  87. package/dist/simplify/atom.js +9 -8
  88. package/dist/simplify/atom.js.map +1 -0
  89. package/dist/simplify/index.d.ts +2 -2
  90. package/dist/simplify/index.d.ts.map +1 -0
  91. package/dist/simplify/index.js +17 -1
  92. package/dist/simplify/index.js.map +1 -0
  93. package/dist/simplify/lookup.d.ts +3 -5
  94. package/dist/simplify/lookup.d.ts.map +1 -0
  95. package/dist/simplify/lookup.js +9 -13
  96. package/dist/simplify/lookup.js.map +1 -0
  97. package/dist/simplify/simplify.d.ts +2 -1
  98. package/dist/simplify/simplify.d.ts.map +1 -0
  99. package/dist/simplify/simplify.js +7 -7
  100. package/dist/simplify/simplify.js.map +1 -0
  101. package/dist/simplify/state.d.ts +3 -8
  102. package/dist/simplify/state.d.ts.map +1 -0
  103. package/dist/simplify/state.js +9 -13
  104. package/dist/simplify/state.js.map +1 -0
  105. package/dist/simplify/types.d.ts +9 -0
  106. package/dist/simplify/types.d.ts.map +1 -0
  107. package/dist/simplify/types.js +3 -0
  108. package/dist/simplify/types.js.map +1 -0
  109. package/dist/simplify/utils.d.ts +3 -2
  110. package/dist/simplify/utils.d.ts.map +1 -0
  111. package/dist/simplify/utils.js +4 -3
  112. package/dist/simplify/utils.js.map +1 -0
  113. package/dist/slice.d.ts +21 -1
  114. package/dist/slice.d.ts.map +1 -0
  115. package/dist/slice.js +10 -21
  116. package/dist/slice.js.map +1 -0
  117. package/dist/strip.d.ts +7 -15
  118. package/dist/strip.d.ts.map +1 -0
  119. package/dist/strip.js +13 -17
  120. package/dist/strip.js.map +1 -0
  121. package/dist/terminal.d.ts +5 -1
  122. package/dist/terminal.d.ts.map +1 -0
  123. package/dist/terminal.js +4 -2
  124. package/dist/terminal.js.map +1 -0
  125. package/package.json +8 -6
  126. package/src/ansi.ts +71 -0
  127. package/src/{caret.js → caret.ts} +9 -15
  128. package/src/{erase.js → erase.ts} +7 -10
  129. package/src/features/build.ts +53 -0
  130. package/src/features/detect.ts +36 -0
  131. package/src/features/{features.js → features.ts} +9 -18
  132. package/src/features/index.ts +1 -0
  133. package/src/index.ts +2 -0
  134. package/src/{pad.js → pad.ts} +4 -10
  135. package/src/{patterns.js → patterns.ts} +3 -5
  136. package/src/scroll.ts +13 -0
  137. package/src/sgr/color/{color.js → color.ts} +26 -35
  138. package/src/sgr/color/index.ts +1 -0
  139. package/src/sgr/color/{types.d.ts → types.ts} +6 -2
  140. package/src/sgr/color/{utils.js → utils.ts} +17 -30
  141. package/src/sgr/index.ts +3 -0
  142. package/src/sgr/reset.ts +1 -0
  143. package/src/sgr/sgr.ts +65 -0
  144. package/src/sgr/{style.js → style.ts} +3 -5
  145. package/src/sgr/{utils.js → utils.ts} +3 -6
  146. package/src/simplify/{atom.js → atom.ts} +5 -11
  147. package/src/simplify/index.ts +1 -0
  148. package/src/simplify/{lookup.js → lookup.ts} +5 -14
  149. package/src/simplify/{simplify.js → simplify.ts} +4 -10
  150. package/src/simplify/state.ts +63 -0
  151. package/src/simplify/{types.d.ts → types.ts} +5 -5
  152. package/src/simplify/{utils.js → utils.ts} +4 -10
  153. package/src/{slice.js → slice.ts} +12 -25
  154. package/src/strip.ts +10 -0
  155. package/src/{terminal.js → terminal.ts} +4 -7
  156. package/src/ansi.js +0 -70
  157. package/src/features/build.js +0 -68
  158. package/src/features/detect.js +0 -40
  159. package/src/features/index.js +0 -1
  160. package/src/index.js +0 -1
  161. package/src/scroll.js +0 -18
  162. package/src/sgr/color/index.js +0 -1
  163. package/src/sgr/index.js +0 -5
  164. package/src/sgr/reset.js +0 -3
  165. package/src/sgr/sgr.js +0 -77
  166. package/src/simplify/index.js +0 -1
  167. package/src/simplify/state.js +0 -73
  168. package/src/strip.js +0 -23
  169. /package/src/features/{types.d.ts → types.ts} +0 -0
@@ -0,0 +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,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AAAjE,QAAA,SAAS,aAAwD"}
package/dist/sgr/sgr.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export type Code = number | number[];
2
- export type SGR = {
2
+ export interface SGR {
3
3
  (text: string): string;
4
4
  open: string;
5
5
  close: string;
@@ -8,7 +8,8 @@ export type SGR = {
8
8
  close: Code;
9
9
  };
10
10
  combine: (...styles: SGR[]) => SGR;
11
- };
12
- export function makeSGR(enabled?: boolean): typeof sgr;
11
+ }
13
12
  declare function sgr(open: Code, close: Code, reset?: boolean): SGR;
13
+ export declare const makeSGR: (enabled?: boolean) => typeof sgr;
14
14
  export {};
15
+ //# sourceMappingURL=sgr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sgr.d.ts","sourceRoot":"","sources":["../../src/sgr/sgr.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAErC,MAAM,WAAW,GAAG;IACnB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,EAAM,MAAM,CAAC;IACjB,KAAK,EAAK,MAAM,CAAC;IACjB,KAAK,EAAK;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAC,CAAC;IACpC,OAAO,EAAG,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;CACpC;AAqBD,iBAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,UAAQ,GAAG,GAAG,CAwBxD;AAWD,eAAO,MAAM,OAAO,GAAI,iBAAc,KAAG,OAAO,GAA+B,CAAC"}
package/dist/sgr/sgr.js CHANGED
@@ -1,30 +1,21 @@
1
1
  "use strict";
2
- /**
3
- @typedef {number | number[]} Code
4
- @typedef {{
5
- (text: string): string;
6
- open : string;
7
- close : string;
8
- codes : {open: Code, close: Code};
9
- combine : (...styles: SGR[]) => SGR;
10
- }} SGR
11
- */
12
- /** @type {(code: Code, codes: Code[]) => Code} */
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeSGR = void 0;
13
4
  function combine(code, codes) {
14
5
  if (!codes.length)
15
6
  return code;
16
- const rtn = Array.isArray(code) ? [...code] : [code];
7
+ const set = new Set(Array.isArray(code) ? [...code] : [code]);
17
8
  for (const c of codes) {
18
- if (Array.isArray(c))
19
- rtn.push(...c);
9
+ if (Array.isArray(c)) {
10
+ for (const code of c)
11
+ set.add(code);
12
+ }
20
13
  else
21
- rtn.push(c);
14
+ set.add(c);
22
15
  }
23
- return rtn;
16
+ return Array.from(set);
24
17
  }
25
- /** @type {(code: Code) => string | number} */
26
- const codeSequence = code => Array.isArray(code) ? code.join(';') : code;
27
- /** @type {(open: Code, close: Code, reset?: boolean) => SGR} */
18
+ const codeSequence = (code) => Array.isArray(code) ? code.join(";") : code;
28
19
  function sgr(open, close, reset = false) {
29
20
  const openCode = codeSequence(open);
30
21
  const closeCode = codeSequence(close);
@@ -33,25 +24,21 @@ function sgr(open, close, reset = false) {
33
24
  const reopenCode = reset ? `${closeCode};${openCode}` : openCode;
34
25
  const rxClose = new RegExp(`(?<start>\\x1b\\[(?:\\d+;)*)${closeCode}(?<end>(?:;\\d+)*m)`, "g");
35
26
  const replace = `$<start>${reopenCode}$<end>`;
36
- /** @type {(text: string) => string} */
37
- const func = s => s ? openSequence + s.replace(rxClose, replace) + closeSequence : s;
27
+ const func = (s) => s ? openSequence + s.replace(rxClose, replace) + closeSequence : s;
38
28
  return Object.assign(func, {
39
29
  codes: { open, close },
40
30
  open: openSequence,
41
31
  close: closeSequence,
42
- /** @type {(...styles: SGR[]) => SGR} */
43
32
  combine: (...styles) => sgr(combine(open, styles.map(s => s.codes.open)), combine(close, styles.map(s => s.codes.close))),
44
33
  });
45
34
  }
46
- ;
47
- /** @type {SGR} */
48
- const disabledSGR = Object.assign(/** @type {(text: string) => string} */ /** @type {(text: string) => string} */ s => s, {
35
+ const disabledSGR = Object.assign((s) => s, {
49
36
  codes: { open: 0, close: 0 },
50
37
  open: "",
51
38
  close: "",
52
39
  combine: () => disabledSGR,
53
40
  });
54
- /** @type {typeof sgr} */
55
41
  const disabled = () => disabledSGR;
56
42
  const makeSGR = (enabled = true) => enabled ? sgr : disabled;
57
- module.exports = { makeSGR };
43
+ exports.makeSGR = makeSGR;
44
+ //# sourceMappingURL=sgr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sgr.js","sourceRoot":"","sources":["../../src/sgr/sgr.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export function makeStyle(enabled?: boolean): {
1
+ export declare function makeStyle(enabled?: boolean): {
2
2
  bold: import("./sgr").SGR;
3
3
  dim: import("./sgr").SGR;
4
4
  italic: import("./sgr").SGR;
@@ -11,3 +11,5 @@ export function makeStyle(enabled?: boolean): {
11
11
  encircle: import("./sgr").SGR;
12
12
  overline: import("./sgr").SGR;
13
13
  };
14
+ export type Style = ReturnType<typeof makeStyle>;
15
+ //# sourceMappingURL=style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../src/sgr/style.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,OAAO,UAAO;;;;;;;;;;;;EAgBvC;AAED,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC"}
package/dist/sgr/style.js CHANGED
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
- const { makeSGR } = require("./sgr");
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeStyle = makeStyle;
4
+ const sgr_1 = require("./sgr");
3
5
  function makeStyle(enabled = true) {
4
- const sgr = makeSGR(enabled);
6
+ const sgr = (0, sgr_1.makeSGR)(enabled);
5
7
  return {
6
8
  bold: sgr(1, 22, true),
7
9
  dim: sgr(2, 22, true),
@@ -16,4 +18,4 @@ function makeStyle(enabled = true) {
16
18
  overline: sgr(53, 55),
17
19
  };
18
20
  }
19
- module.exports = { makeStyle };
21
+ //# sourceMappingURL=style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../../src/sgr/style.ts"],"names":[],"mappings":";;AAEA,8BAgBC;AAlBD,+BAA8B;AAE9B,SAAgB,SAAS,CAAC,OAAO,GAAG,IAAI;IACvC,MAAM,GAAG,GAAG,IAAA,aAAO,EAAC,OAAO,CAAC,CAAC;IAE7B,OAAO;QACN,IAAI,EAAc,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;QAClC,GAAG,EAAe,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;QAClC,MAAM,EAAY,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5B,SAAS,EAAS,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5B,OAAO,EAAW,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,EAAY,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5B,aAAa,EAAK,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5B,eAAe,EAAG,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;QAC7B,KAAK,EAAa,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;QAC7B,QAAQ,EAAU,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;QAC7B,QAAQ,EAAU,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;KAC7B,CAAC;AACH,CAAC"}
@@ -1,2 +1,3 @@
1
- export type Code = number | number[];
2
- export function combine(code: Code, codes: Code[]): Code;
1
+ import type { Code } from "./sgr";
2
+ export declare function combine(code: Code, codes: Code[]): Code;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/sgr/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,OAAO,CAAC;AAEhC,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAcvD"}
package/dist/sgr/utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
- /** @typedef {number | number[]} Code */
3
- /** @type {(code: Code, codes: Code[]) => Code} */
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.combine = combine;
4
4
  function combine(code, codes) {
5
5
  if (!codes.length)
6
6
  return code;
@@ -13,4 +13,4 @@ function combine(code, codes) {
13
13
  }
14
14
  return rtn;
15
15
  }
16
- module.exports = { combine };
16
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/sgr/utils.ts"],"names":[],"mappings":";;AAEA,0BAcC;AAdD,SAAgB,OAAO,CAAC,IAAU,EAAE,KAAa;IAChD,IAAI,CAAC,KAAK,CAAC,MAAM;QAChB,OAAO,IAAI,CAAC;IAEb,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAErD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;;YAEf,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC"}
@@ -1,3 +1,4 @@
1
- export type BuildAtom = import("./types").BuildAtom;
2
- export function buildExtendedColorAtom(attribute: import("./types").Attribute, codes: number[], index: number, state: import("./types").AttributeMap): import("./types").Atom;
3
- export function buildIntensityAtom(attribute: import("./types").Attribute, codes: number[], index: number, state: import("./types").AttributeMap): import("./types").Atom;
1
+ import type { BuildAtom } from "./types";
2
+ export declare const buildExtendedColorAtom: BuildAtom;
3
+ export declare const buildIntensityAtom: BuildAtom;
4
+ //# sourceMappingURL=atom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atom.d.ts","sourceRoot":"","sources":["../../src/simplify/atom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAEvC,eAAO,MAAM,sBAAsB,EAAE,SAapC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,SAoBhC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- /** @typedef {import("./types").BuildAtom} BuildAtom */
3
- /** @type {BuildAtom} */
4
- function buildExtendedColorAtom(attribute, codes, index) {
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildIntensityAtom = exports.buildExtendedColorAtom = void 0;
4
+ const buildExtendedColorAtom = (attribute, codes, index) => {
5
5
  switch (codes[index + 1]) {
6
6
  case 2:
7
7
  if (index + 5 >= codes.length)
@@ -14,9 +14,9 @@ function buildExtendedColorAtom(attribute, codes, index) {
14
14
  default:
15
15
  return { attribute, code: codes.slice(index, index + 2), skip: 1 };
16
16
  }
17
- }
18
- /** @type {BuildAtom} */
19
- function buildIntensityAtom(attribute, codes, index, state) {
17
+ };
18
+ exports.buildExtendedColorAtom = buildExtendedColorAtom;
19
+ const buildIntensityAtom = (attribute, codes, index, state) => {
20
20
  const code = codes[index];
21
21
  if (code === 22)
22
22
  return { attribute, code: [code] };
@@ -33,5 +33,6 @@ function buildIntensityAtom(attribute, codes, index, state) {
33
33
  return { attribute, code: [code] };
34
34
  // Otherwise, we need to set both intensity codes.
35
35
  return { attribute, code: [1, 2] };
36
- }
37
- module.exports = { buildExtendedColorAtom, buildIntensityAtom };
36
+ };
37
+ exports.buildIntensityAtom = buildIntensityAtom;
38
+ //# sourceMappingURL=atom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atom.js","sourceRoot":"","sources":["../../src/simplify/atom.ts"],"names":[],"mappings":";;;AAEO,MAAM,sBAAsB,GAAc,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAC5E,QAAQ,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC;YACL,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM;gBAC5B,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,EAAC,CAAC;YAC9E,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAC,CAAC;QAClE,KAAK,CAAC;YACL,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM;gBAC5B,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,EAAC,CAAC;YAC9E,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAC,CAAC;QAClE;YACC,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAC,CAAC;IACnE,CAAC;AACF,CAAC,CAAC;AAbW,QAAA,sBAAsB,0BAajC;AAEK,MAAM,kBAAkB,GAAc,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAC/E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,IAAI,KAAK,EAAE;QACd,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAC,CAAC;IAElC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACvC;IACC,uFAAuF;IACvF,CAAC,OAAO;QACR,+EAA+E;QAC/E,qFAAqF;QACrF,mFAAmF;QACnF,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE;QACjB,sFAAsF;QACtF,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI;QAE3C,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAC,CAAC;IAElC,kDAAkD;IAClD,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC;AAClC,CAAC,CAAC;AApBW,QAAA,kBAAkB,sBAoB7B"}
@@ -1,2 +1,2 @@
1
- declare const _exports: typeof import("./simplify");
2
- export = _exports;
1
+ export * from "./simplify";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/simplify/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -1,2 +1,18 @@
1
1
  "use strict";
2
- module.exports = require("./simplify");
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./simplify"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/simplify/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B"}
@@ -1,5 +1,3 @@
1
- export type Atom = import("./types").Atom;
2
- export type Attribute = import("./types").Attribute;
3
- export type AttributeMap = import("./types").AttributeMap;
4
- export type BuildAtom = import("./types").BuildAtom;
5
- export function lookUpAtom(codes: number[], index: number, state: AttributeMap): Atom;
1
+ import type { Atom, AttributeMap } from "./types";
2
+ export declare function lookUpAtom(codes: number[], index: number, state: AttributeMap): Atom;
3
+ //# sourceMappingURL=lookup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../src/simplify/lookup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,IAAI,EAAa,YAAY,EAAY,MAAM,SAAS,CAAC;AA6DtE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAapF"}
@@ -1,21 +1,18 @@
1
1
  "use strict";
2
- const { buildExtendedColorAtom, buildIntensityAtom } = require("./atom");
3
- /** @typedef {import("./types").Atom} Atom */
4
- /** @typedef {import("./types").Attribute} Attribute */
5
- /** @typedef {import("./types").AttributeMap} AttributeMap */
6
- /** @typedef {import("./types").BuildAtom} BuildAtom */
7
- /** @type {Record<number, [attribute: Attribute, buildAtom?: BuildAtom]>} */
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.lookUpAtom = lookUpAtom;
4
+ const atom_1 = require("./atom");
8
5
  const codeMap = {
9
6
  0: ["reset"],
10
- 1: ["intensity", buildIntensityAtom],
11
- 2: ["intensity", buildIntensityAtom],
7
+ 1: ["intensity", atom_1.buildIntensityAtom],
8
+ 2: ["intensity", atom_1.buildIntensityAtom],
12
9
  3: ["italic"],
13
10
  4: ["underline"],
14
11
  7: ["inverse"],
15
12
  8: ["hidden"],
16
13
  9: ["strikethrough"],
17
14
  21: ["underline"],
18
- 22: ["intensity", buildIntensityAtom],
15
+ 22: ["intensity", atom_1.buildIntensityAtom],
19
16
  23: ["italic"],
20
17
  24: ["underline"],
21
18
  27: ["inverse"],
@@ -29,7 +26,7 @@ const codeMap = {
29
26
  35: ["fg"],
30
27
  36: ["fg"],
31
28
  37: ["fg"],
32
- 38: ["fg", buildExtendedColorAtom],
29
+ 38: ["fg", atom_1.buildExtendedColorAtom],
33
30
  39: ["fg"],
34
31
  40: ["bg"],
35
32
  41: ["bg"],
@@ -39,7 +36,7 @@ const codeMap = {
39
36
  45: ["bg"],
40
37
  46: ["bg"],
41
38
  47: ["bg"],
42
- 48: ["bg", buildExtendedColorAtom],
39
+ 48: ["bg", atom_1.buildExtendedColorAtom],
43
40
  49: ["bg"],
44
41
  51: ["frame"],
45
42
  52: ["frame"],
@@ -63,7 +60,6 @@ const codeMap = {
63
60
  106: ["bg"],
64
61
  107: ["bg"],
65
62
  };
66
- /** @type {(codes: number[], index: number, state: AttributeMap) => Atom} */
67
63
  function lookUpAtom(codes, index, state) {
68
64
  const code = codes[index];
69
65
  const entry = codeMap[code];
@@ -74,4 +70,4 @@ function lookUpAtom(codes, index, state) {
74
70
  return buildAtom(attribute, codes, index, state);
75
71
  return { attribute, code: [code] };
76
72
  }
77
- module.exports = { lookUpAtom };
73
+ //# sourceMappingURL=lookup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/simplify/lookup.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
- export function simplify(text: string): string;
1
+ export declare function simplify(text: string): string;
2
+ //# sourceMappingURL=simplify.d.ts.map
@@ -0,0 +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,CAuB7C"}
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
- const { rxSGR } = require("../patterns");
3
- const { State } = require("./state");
4
- /** @type {(text: string) => string} */
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.simplify = simplify;
4
+ const patterns_1 = require("../patterns");
5
+ const state_1 = require("./state");
5
6
  function simplify(text) {
6
7
  // `.split` doesn't modify `lastIndex`, so no clone is necessary here.
7
- const parts = text.split(rxSGR);
8
- const state = new State();
8
+ const parts = text.split(patterns_1.rxSGR);
9
+ const state = new state_1.State();
9
10
  let result = parts[0];
10
11
  for (let i = 1; i < parts.length;) {
11
12
  let codes = parts[i++].split(";").map(Number);
12
13
  let chunk = parts[i++];
13
14
  while (!chunk && i < parts.length) {
14
- // Merge consecutive SGR sequences.
15
15
  codes.push(...parts[i++].split(";").map(Number));
16
16
  chunk = parts[i++];
17
17
  }
@@ -22,4 +22,4 @@ function simplify(text) {
22
22
  }
23
23
  return result;
24
24
  }
25
- module.exports = { simplify };
25
+ //# sourceMappingURL=simplify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simplify.js","sourceRoot":"","sources":["../../src/simplify/simplify.ts"],"names":[],"mappings":";;AAGA,4BAuBC;AA1BD,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,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAEvB,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACjD,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;QAED,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,MAAM;YACf,MAAM,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -1,10 +1,5 @@
1
- export type Attribute = import("./types").Attribute;
2
- export type AttributeMap = import("./types").AttributeMap;
3
- /** @type {AttributeMap} */
4
- export class State extends Map<any, any> {
5
- constructor();
6
- constructor(entries?: readonly (readonly [any, any])[] | null | undefined);
7
- constructor();
8
- constructor(iterable?: Iterable<readonly [any, any]> | null | undefined);
1
+ import type { Attribute, AttributeMap } from "./types";
2
+ export declare class State extends Map<Attribute, number[]> implements AttributeMap {
9
3
  update(codes: number[]): number[];
10
4
  }
5
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/simplify/state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,SAAS,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAerD,qBAAa,KAAM,SAAQ,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,CAAE,YAAW,YAAY;IAC1E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CA2CjC"}
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
- const { lookUpAtom } = require("./lookup");
3
- const { arraysEqual, transitionIntensity } = require("./utils");
4
- /** @typedef {import("./types").Attribute} Attribute */
5
- /** @typedef {import("./types").AttributeMap} AttributeMap */
6
- /** @type {Map<Attribute, number[]>} */
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.State = void 0;
4
+ const lookup_1 = require("./lookup");
5
+ const utils_1 = require("./utils");
7
6
  const defaultCodes = new Map([
8
7
  ["intensity", [22]],
9
8
  ["italic", [23]],
@@ -16,16 +15,12 @@ const defaultCodes = new Map([
16
15
  ["frame", [54]],
17
16
  ["overline", [55]],
18
17
  ]);
19
- /** @type {AttributeMap} */
20
18
  class State extends Map {
21
- /** @type {(codes: number[]) => number[]} */
22
19
  update(codes) {
23
- /** @type {AttributeMap} */
24
20
  let snapshot = new Map(this);
25
- /** @type {Set<Attribute>} */
26
21
  const attributes = new Set();
27
22
  for (let i = 0; i < codes.length; i++) {
28
- const { attribute, code, skip } = lookUpAtom(codes, i, this);
23
+ const { attribute, code, skip } = (0, lookup_1.lookUpAtom)(codes, i, this);
29
24
  if (attribute === "reset") {
30
25
  attributes.clear();
31
26
  this.clear();
@@ -44,14 +39,15 @@ class State extends Map {
44
39
  if (attribute === "reset")
45
40
  return [0];
46
41
  const code = this.get(attribute);
47
- if (arraysEqual(code, snapshot.get(attribute)))
42
+ if ((0, utils_1.arraysEqual)(code, snapshot.get(attribute)))
48
43
  return [];
49
44
  if (attribute === "intensity") {
50
45
  const previous = snapshot.get(attribute);
51
- return transitionIntensity(previous, code);
46
+ return (0, utils_1.transitionIntensity)(previous, code);
52
47
  }
53
48
  return code;
54
49
  });
55
50
  }
56
51
  }
57
- module.exports = { State };
52
+ exports.State = State;
53
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/simplify/state.ts"],"names":[],"mappings":";;;AAAA,qCAA0D;AAC1D,mCAAyD;AAIzD,MAAM,YAAY,GAA6B,IAAI,GAAG,CAAC;IACtD,CAAC,WAAW,EAAM,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC,QAAQ,EAAS,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC,WAAW,EAAM,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC,SAAS,EAAQ,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC,QAAQ,EAAS,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC,IAAI,EAAa,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC,IAAI,EAAa,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC,OAAO,EAAU,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC,UAAU,EAAO,CAAC,EAAE,CAAC,CAAC;CACvB,CAAC,CAAC;AAEH,MAAa,KAAM,SAAQ,GAAwB;IAClD,MAAM,CAAC,KAAe;QACrB,IAAI,QAAQ,GAAiB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QAE3C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAa,CAAC;QAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAC,GAAG,IAAA,mBAAU,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAE3D,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;gBAC3B,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACxB,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,YAAY;oBAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAE7B,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;gBACzB,SAAS;YACV,CAAC;YAED,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAE1B,IAAI,IAAI;gBACP,CAAC,IAAI,IAAI,CAAC;QACZ,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACjD,IAAI,SAAS,KAAK,OAAO;gBACxB,OAAO,CAAC,CAAC,CAAC,CAAC;YAEZ,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;YAElC,IAAI,IAAA,mBAAW,EAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC7C,OAAO,EAAE,CAAC;YAEX,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACzC,OAAO,IAAA,2BAAmB,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC5C,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AA5CD,sBA4CC"}
@@ -0,0 +1,9 @@
1
+ export type Attribute = "intensity" | "italic" | "underline" | "inverse" | "hidden" | "strikethrough" | "fg" | "bg" | "frame" | "overline" | "reset" | number;
2
+ export type AttributeMap = Map<Attribute, number[]>;
3
+ export interface Atom {
4
+ attribute: Attribute;
5
+ code: number[];
6
+ skip?: number;
7
+ }
8
+ export type BuildAtom = (attribute: Attribute, codes: number[], index: number, state: AttributeMap) => Atom;
9
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/simplify/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAClB,WAAW,GACX,QAAQ,GACR,WAAW,GACX,SAAS,GACT,QAAQ,GACR,eAAe,GACf,IAAI,GACJ,IAAI,GACJ,OAAO,GACP,UAAU,GACV,OAAO,GACP,MAAM,CAAC;AAEV,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AAEpD,MAAM,WAAW,IAAI;IACpB,SAAS,EAAG,SAAS,CAAC;IACtB,IAAI,EAAQ,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAO,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,SAAS,GAAG,CACvB,SAAS,EAAG,SAAS,EACrB,KAAK,EAAO,MAAM,EAAE,EACpB,KAAK,EAAO,MAAM,EAClB,KAAK,EAAO,YAAY,KACpB,IAAI,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/simplify/types.ts"],"names":[],"mappings":""}
@@ -1,2 +1,3 @@
1
- export function arraysEqual<T>(a: T[] | undefined, b: T[] | undefined): boolean;
2
- export function transitionIntensity(previous: number[] | undefined, current: number[]): number[];
1
+ export declare function arraysEqual<T>(a: T[] | undefined, b: T[] | undefined): boolean;
2
+ export declare function transitionIntensity(previous: number[] | undefined, current: number[]): number[];
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/simplify/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,GAAG,OAAO,CAa9E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAmB/F"}
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
- /** @type {<T>(a: T[] | undefined, b: T[] | undefined) => boolean} */
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.arraysEqual = arraysEqual;
4
+ exports.transitionIntensity = transitionIntensity;
3
5
  function arraysEqual(a, b) {
4
6
  if (a === b)
5
7
  return true;
@@ -11,7 +13,6 @@ function arraysEqual(a, b) {
11
13
  }
12
14
  return true;
13
15
  }
14
- /** @type {(previous: number[] | undefined, current: number[]) => number[]} */
15
16
  function transitionIntensity(previous, current) {
16
17
  if (!previous || previous[0] === 22 || current[0] === 22)
17
18
  return current;
@@ -28,4 +29,4 @@ function transitionIntensity(previous, current) {
28
29
  result.push(2);
29
30
  return result;
30
31
  }
31
- module.exports = { arraysEqual, transitionIntensity };
32
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/simplify/utils.ts"],"names":[],"mappings":";;AAAA,kCAaC;AAED,kDAmBC;AAlCD,SAAgB,WAAW,CAAI,CAAkB,EAAE,CAAkB;IACpE,IAAI,CAAC,KAAK,CAAC;QACV,OAAO,IAAI,CAAC;IAEb,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QACpC,OAAO,KAAK,CAAC;IAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAgB,mBAAmB,CAAC,QAA8B,EAAE,OAAiB;IACpF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE;QACvD,OAAO,OAAO,CAAC;IAEhB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,MAAM,GAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,MAAM,GAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,OAAO,IAAI,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,MAAM;QAC3C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,IAAI,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChB,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhB,OAAO,MAAM,CAAC;AACf,CAAC"}
package/dist/slice.d.ts CHANGED
@@ -1 +1,21 @@
1
- export function slice(text: string, start: number, end: number): string;
1
+ /**
2
+ * Return a slice of the given text, counting only visible characters (i.e. ignoring ANSI escape
3
+ * codes). The returned slice will include any ANSI escape codes from within the slice. In addition,
4
+ * SGR codes (m) from before and after the slice will be combined, simplified, and included so that
5
+ * the terminal state before and after the slice will be the same as if the whole string were
6
+ * printed. If you compose two or more slices together, there may be redundant SGR sequences at the
7
+ * boundaries, but the result will be correct. You can use `simplify` to remove the redundancies.
8
+ *
9
+ * Note the following caveats:
10
+ *
11
+ * * Any non-SGR ANSI codes prior to or after the slice will be ignored.
12
+ * * Control characters (such as newlines and backspaces) both outside and inside the slice are
13
+ * counted as visible characters.
14
+ *
15
+ * These caveats mean that text may not appear on screen to be the same number of characters as the
16
+ * length of the slice, and that the terminal state may not be exactly the same at the start and end
17
+ * of the slice as it would be if the whole string were printed. This function is intended mostly
18
+ * for text that contains SGR codes, but no other ANSI codes or control characters.
19
+ */
20
+ export declare function slice(text: string, start: number, end: number): string;
21
+ //# sourceMappingURL=slice.d.ts.map
@@ -0,0 +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"}
package/dist/slice.js CHANGED
@@ -1,19 +1,12 @@
1
1
  "use strict";
2
- const { rxCSI, rxSGR } = require("./patterns");
3
- const { simplify } = require("./simplify");
4
- const { visibleLength } = require("./strip");
5
- /**
6
- @type {
7
- (
8
- text : string,
9
- fromStringIndex : number,
10
- visibleCount : number,
11
- ) => {index: number, length: number}
12
- }
13
- */
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.slice = slice;
4
+ const patterns_1 = require("./patterns");
5
+ const simplify_1 = require("./simplify");
6
+ const strip_1 = require("./strip");
14
7
  function scanCSI(text, fromStringIndex, visibleCount) {
15
8
  // We intentionally mutate `lastIndex` here, so we need a clone.
16
- const rx = new RegExp(rxCSI);
9
+ const rx = new RegExp(patterns_1.rxCSI);
17
10
  let length = 0;
18
11
  let index = fromStringIndex;
19
12
  while (index < text.length && length < visibleCount) {
@@ -30,10 +23,9 @@ function scanCSI(text, fromStringIndex, visibleCount) {
30
23
  }
31
24
  return { index, length };
32
25
  }
33
- /** @type {(text: string, start: number, end?: number) => string} */
34
26
  function skippedSequences(text, start, end) {
35
- const sequences = text.slice(start, end).match(new RegExp(rxSGR));
36
- return sequences ? simplify(sequences.join("")) : "";
27
+ const sequences = text.slice(start, end).match(new RegExp(patterns_1.rxSGR));
28
+ return sequences ? (0, simplify_1.simplify)(sequences.join("")) : "";
37
29
  }
38
30
  /**
39
31
  * Return a slice of the given text, counting only visible characters (i.e. ignoring ANSI escape
@@ -53,13 +45,10 @@ function skippedSequences(text, start, end) {
53
45
  * length of the slice, and that the terminal state may not be exactly the same at the start and end
54
46
  * of the slice as it would be if the whole string were printed. This function is intended mostly
55
47
  * for text that contains SGR codes, but no other ANSI codes or control characters.
56
- *
57
- * @type {(text: string, start: number, end: number) => string}
58
48
  */
59
49
  function slice(text, start, end) {
60
- /** @type {number | undefined} */
61
50
  let textVisibleLength;
62
- const getVisibleLength = () => textVisibleLength ??= visibleLength(text);
51
+ const getVisibleLength = () => textVisibleLength ?? (textVisibleLength = (0, strip_1.visibleLength)(text));
63
52
  if (start < 0 || end < 0) {
64
53
  textVisibleLength = getVisibleLength();
65
54
  if (start < 0)
@@ -80,4 +69,4 @@ function slice(text, start, end) {
80
69
  const trailingSequences = skippedSequences(text, endIndex);
81
70
  return leadingSequences + text.slice(startIndex, endIndex) + trailingSequences;
82
71
  }
83
- module.exports = { slice };
72
+ //# sourceMappingURL=slice.js.map