@peteanderson/ansi 3.7.1 → 3.8.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 (233) hide show
  1. package/README.md +40 -0
  2. package/dist/cjs/ansi.d.ts +7 -3
  3. package/dist/cjs/ansi.d.ts.map +1 -1
  4. package/dist/cjs/ansi.js +6 -1
  5. package/dist/cjs/ansi.js.map +1 -1
  6. package/dist/cjs/code.d.ts +10 -0
  7. package/dist/cjs/code.d.ts.map +1 -0
  8. package/dist/cjs/code.js +9 -0
  9. package/dist/cjs/code.js.map +1 -0
  10. package/dist/cjs/cursor.js +30 -30
  11. package/dist/cjs/cursor.js.map +1 -1
  12. package/dist/cjs/index.d.ts +12 -7
  13. package/dist/cjs/index.d.ts.map +1 -1
  14. package/dist/cjs/ins-del.js +16 -16
  15. package/dist/cjs/ins-del.js.map +1 -1
  16. package/dist/cjs/package.json +25 -0
  17. package/dist/cjs/scroll.js +9 -9
  18. package/dist/cjs/scroll.js.map +1 -1
  19. package/dist/cjs/sgr/chain/attach.d.ts +5 -0
  20. package/dist/cjs/sgr/chain/attach.d.ts.map +1 -0
  21. package/dist/cjs/sgr/chain/attach.js +10 -0
  22. package/dist/cjs/sgr/chain/attach.js.map +1 -0
  23. package/dist/cjs/sgr/chain/build.d.ts +8 -0
  24. package/dist/cjs/sgr/chain/build.d.ts.map +1 -0
  25. package/dist/cjs/sgr/chain/build.js +15 -0
  26. package/dist/cjs/sgr/chain/build.js.map +1 -0
  27. package/dist/cjs/sgr/chain/chain.d.ts +13 -0
  28. package/dist/cjs/sgr/chain/chain.d.ts.map +1 -0
  29. package/dist/cjs/sgr/chain/chain.js +36 -0
  30. package/dist/cjs/sgr/chain/chain.js.map +1 -0
  31. package/dist/cjs/sgr/chain/index.d.ts +5 -0
  32. package/dist/cjs/sgr/chain/index.d.ts.map +1 -0
  33. package/dist/cjs/sgr/chain/index.js +20 -0
  34. package/dist/cjs/sgr/chain/index.js.map +1 -0
  35. package/dist/cjs/sgr/chain/keys.d.ts +5 -0
  36. package/dist/cjs/sgr/chain/keys.d.ts.map +1 -0
  37. package/dist/cjs/sgr/chain/keys.js +8 -0
  38. package/dist/cjs/sgr/chain/keys.js.map +1 -0
  39. package/dist/cjs/sgr/color/channel.d.ts +29 -3
  40. package/dist/cjs/sgr/color/channel.d.ts.map +1 -1
  41. package/dist/cjs/sgr/color/channel.js +8 -8
  42. package/dist/cjs/sgr/color/channel.js.map +1 -1
  43. package/dist/cjs/sgr/color/color.d.ts +9 -3
  44. package/dist/cjs/sgr/color/color.d.ts.map +1 -1
  45. package/dist/cjs/sgr/color/color.js +6 -10
  46. package/dist/cjs/sgr/color/color.js.map +1 -1
  47. package/dist/cjs/sgr/color/context.d.ts +12 -8
  48. package/dist/cjs/sgr/color/context.d.ts.map +1 -1
  49. package/dist/cjs/sgr/color/context.js +28 -18
  50. package/dist/cjs/sgr/color/context.js.map +1 -1
  51. package/dist/cjs/sgr/color/rgb.d.ts +7 -4
  52. package/dist/cjs/sgr/color/rgb.d.ts.map +1 -1
  53. package/dist/cjs/sgr/color/rgb.js +12 -12
  54. package/dist/cjs/sgr/color/rgb.js.map +1 -1
  55. package/dist/cjs/sgr/combine.d.ts +1 -1
  56. package/dist/cjs/sgr/combine.d.ts.map +1 -1
  57. package/dist/cjs/sgr/context.d.ts +16 -0
  58. package/dist/cjs/sgr/context.d.ts.map +1 -0
  59. package/dist/cjs/sgr/context.js +43 -0
  60. package/dist/cjs/sgr/context.js.map +1 -0
  61. package/dist/cjs/sgr/format.d.ts +19 -0
  62. package/dist/cjs/sgr/format.d.ts.map +1 -0
  63. package/dist/cjs/sgr/format.js +35 -0
  64. package/dist/cjs/sgr/format.js.map +1 -0
  65. package/dist/cjs/sgr/index.d.ts +3 -1
  66. package/dist/cjs/sgr/index.d.ts.map +1 -1
  67. package/dist/cjs/sgr/index.js +3 -0
  68. package/dist/cjs/sgr/index.js.map +1 -1
  69. package/dist/cjs/sgr/reset.js +2 -2
  70. package/dist/cjs/sgr/reset.js.map +1 -1
  71. package/dist/cjs/sgr/sgr.d.ts +10 -2
  72. package/dist/cjs/sgr/sgr.d.ts.map +1 -1
  73. package/dist/cjs/sgr/sgr.js +7 -32
  74. package/dist/cjs/sgr/sgr.js.map +1 -1
  75. package/dist/cjs/sgr/style.d.ts +9 -2
  76. package/dist/cjs/sgr/style.d.ts.map +1 -1
  77. package/dist/cjs/sgr/style.js +13 -12
  78. package/dist/cjs/sgr/style.js.map +1 -1
  79. package/dist/cjs/simplify/simplify.d.ts.map +1 -1
  80. package/dist/cjs/simplify/simplify.js +4 -7
  81. package/dist/cjs/simplify/simplify.js.map +1 -1
  82. package/dist/cjs/slice.js +3 -3
  83. package/dist/cjs/slice.js.map +1 -1
  84. package/dist/cjs/strip.js +3 -3
  85. package/dist/cjs/strip.js.map +1 -1
  86. package/dist/cjs/terminal.js +13 -13
  87. package/dist/cjs/terminal.js.map +1 -1
  88. package/dist/cjs/types.d.ts +2 -1
  89. package/dist/cjs/types.d.ts.map +1 -1
  90. package/dist/cjs/utils.d.ts +3 -1
  91. package/dist/cjs/utils.d.ts.map +1 -1
  92. package/dist/cjs/utils.js +9 -6
  93. package/dist/cjs/utils.js.map +1 -1
  94. package/dist/esm/ansi.d.ts +7 -3
  95. package/dist/esm/ansi.d.ts.map +1 -1
  96. package/dist/esm/ansi.js +3 -2
  97. package/dist/esm/ansi.js.map +1 -1
  98. package/dist/esm/code.d.ts +10 -0
  99. package/dist/esm/code.d.ts.map +1 -0
  100. package/dist/esm/code.js +6 -0
  101. package/dist/esm/code.js.map +1 -0
  102. package/dist/esm/cursor.js +5 -5
  103. package/dist/esm/cursor.js.map +1 -1
  104. package/dist/esm/index.d.ts +1 -1
  105. package/dist/esm/index.d.ts.map +1 -1
  106. package/dist/esm/ins-del.js +1 -1
  107. package/dist/esm/ins-del.js.map +1 -1
  108. package/dist/esm/package.json +25 -1
  109. package/dist/esm/scroll.js +3 -3
  110. package/dist/esm/scroll.js.map +1 -1
  111. package/dist/esm/sgr/chain/attach.d.ts +5 -0
  112. package/dist/esm/sgr/chain/attach.d.ts.map +1 -0
  113. package/dist/esm/sgr/chain/attach.js +6 -0
  114. package/dist/esm/sgr/chain/attach.js.map +1 -0
  115. package/dist/esm/sgr/chain/build.d.ts +8 -0
  116. package/dist/esm/sgr/chain/build.d.ts.map +1 -0
  117. package/dist/esm/sgr/chain/build.js +12 -0
  118. package/dist/esm/sgr/chain/build.js.map +1 -0
  119. package/dist/esm/sgr/chain/chain.d.ts +13 -0
  120. package/dist/esm/sgr/chain/chain.d.ts.map +1 -0
  121. package/dist/esm/sgr/chain/chain.js +33 -0
  122. package/dist/esm/sgr/chain/chain.js.map +1 -0
  123. package/dist/esm/sgr/chain/index.d.ts +5 -0
  124. package/dist/esm/sgr/chain/index.d.ts.map +1 -0
  125. package/dist/esm/sgr/chain/index.js +4 -0
  126. package/dist/esm/sgr/chain/index.js.map +1 -0
  127. package/dist/esm/sgr/chain/keys.d.ts +5 -0
  128. package/dist/esm/sgr/chain/keys.d.ts.map +1 -0
  129. package/dist/esm/sgr/chain/keys.js +5 -0
  130. package/dist/esm/sgr/chain/keys.js.map +1 -0
  131. package/dist/esm/sgr/color/channel.d.ts +29 -3
  132. package/dist/esm/sgr/color/channel.d.ts.map +1 -1
  133. package/dist/esm/sgr/color/channel.js +9 -9
  134. package/dist/esm/sgr/color/channel.js.map +1 -1
  135. package/dist/esm/sgr/color/color.d.ts +9 -3
  136. package/dist/esm/sgr/color/color.d.ts.map +1 -1
  137. package/dist/esm/sgr/color/color.js +4 -10
  138. package/dist/esm/sgr/color/color.js.map +1 -1
  139. package/dist/esm/sgr/color/context.d.ts +12 -8
  140. package/dist/esm/sgr/color/context.d.ts.map +1 -1
  141. package/dist/esm/sgr/color/context.js +27 -17
  142. package/dist/esm/sgr/color/context.js.map +1 -1
  143. package/dist/esm/sgr/color/rgb.d.ts +7 -4
  144. package/dist/esm/sgr/color/rgb.d.ts.map +1 -1
  145. package/dist/esm/sgr/color/rgb.js +12 -12
  146. package/dist/esm/sgr/color/rgb.js.map +1 -1
  147. package/dist/esm/sgr/combine.d.ts +1 -1
  148. package/dist/esm/sgr/combine.d.ts.map +1 -1
  149. package/dist/esm/sgr/context.d.ts +16 -0
  150. package/dist/esm/sgr/context.d.ts.map +1 -0
  151. package/dist/esm/sgr/context.js +39 -0
  152. package/dist/esm/sgr/context.js.map +1 -0
  153. package/dist/esm/sgr/format.d.ts +19 -0
  154. package/dist/esm/sgr/format.d.ts.map +1 -0
  155. package/dist/esm/sgr/format.js +32 -0
  156. package/dist/esm/sgr/format.js.map +1 -0
  157. package/dist/esm/sgr/index.d.ts +3 -1
  158. package/dist/esm/sgr/index.d.ts.map +1 -1
  159. package/dist/esm/sgr/index.js +1 -0
  160. package/dist/esm/sgr/index.js.map +1 -1
  161. package/dist/esm/sgr/reset.js +1 -1
  162. package/dist/esm/sgr/reset.js.map +1 -1
  163. package/dist/esm/sgr/sgr.d.ts +10 -2
  164. package/dist/esm/sgr/sgr.d.ts.map +1 -1
  165. package/dist/esm/sgr/sgr.js +7 -32
  166. package/dist/esm/sgr/sgr.js.map +1 -1
  167. package/dist/esm/sgr/style.d.ts +9 -2
  168. package/dist/esm/sgr/style.d.ts.map +1 -1
  169. package/dist/esm/sgr/style.js +12 -12
  170. package/dist/esm/sgr/style.js.map +1 -1
  171. package/dist/esm/simplify/simplify.d.ts.map +1 -1
  172. package/dist/esm/simplify/simplify.js +3 -6
  173. package/dist/esm/simplify/simplify.js.map +1 -1
  174. package/dist/esm/slice.js +1 -1
  175. package/dist/esm/slice.js.map +1 -1
  176. package/dist/esm/strip.js +1 -1
  177. package/dist/esm/strip.js.map +1 -1
  178. package/dist/esm/terminal.js +1 -1
  179. package/dist/esm/terminal.js.map +1 -1
  180. package/dist/esm/types.d.ts +2 -1
  181. package/dist/esm/types.d.ts.map +1 -1
  182. package/dist/esm/utils.d.ts +3 -1
  183. package/dist/esm/utils.d.ts.map +1 -1
  184. package/dist/esm/utils.js +7 -5
  185. package/dist/esm/utils.js.map +1 -1
  186. package/package.json +13 -5
  187. package/src/ansi.ts +3 -2
  188. package/src/code.ts +9 -0
  189. package/src/cursor.ts +5 -5
  190. package/src/index.ts +1 -1
  191. package/src/ins-del.ts +1 -1
  192. package/src/require.ts +3 -3
  193. package/src/scroll.ts +3 -3
  194. package/src/sgr/chain/attach.ts +13 -0
  195. package/src/sgr/chain/build.ts +25 -0
  196. package/src/sgr/chain/chain.ts +60 -0
  197. package/src/sgr/chain/index.ts +5 -0
  198. package/src/sgr/chain/keys.ts +8 -0
  199. package/src/sgr/color/channel.ts +47 -19
  200. package/src/sgr/color/color.ts +14 -19
  201. package/src/sgr/color/context.ts +37 -31
  202. package/src/sgr/color/rgb.ts +21 -20
  203. package/src/sgr/combine.ts +1 -1
  204. package/src/sgr/context.ts +68 -0
  205. package/src/sgr/format.ts +72 -0
  206. package/src/sgr/index.ts +4 -2
  207. package/src/sgr/reset.ts +1 -1
  208. package/src/sgr/sgr.ts +21 -49
  209. package/src/sgr/style.ts +31 -21
  210. package/src/simplify/simplify.ts +3 -6
  211. package/src/slice.ts +1 -1
  212. package/src/strip.ts +1 -1
  213. package/src/terminal.ts +1 -1
  214. package/src/types.ts +2 -1
  215. package/src/utils.ts +12 -7
  216. package/dist/cjs/sgr/format-builder.d.ts +0 -3
  217. package/dist/cjs/sgr/format-builder.d.ts.map +0 -1
  218. package/dist/cjs/sgr/format-builder.js +0 -34
  219. package/dist/cjs/sgr/format-builder.js.map +0 -1
  220. package/dist/cjs/sgr/types.d.ts +0 -61
  221. package/dist/cjs/sgr/types.d.ts.map +0 -1
  222. package/dist/cjs/sgr/types.js +0 -3
  223. package/dist/cjs/sgr/types.js.map +0 -1
  224. package/dist/esm/sgr/format-builder.d.ts +0 -3
  225. package/dist/esm/sgr/format-builder.d.ts.map +0 -1
  226. package/dist/esm/sgr/format-builder.js +0 -30
  227. package/dist/esm/sgr/format-builder.js.map +0 -1
  228. package/dist/esm/sgr/types.d.ts +0 -61
  229. package/dist/esm/sgr/types.d.ts.map +0 -1
  230. package/dist/esm/sgr/types.js +0 -2
  231. package/dist/esm/sgr/types.js.map +0 -1
  232. package/src/sgr/format-builder.ts +0 -52
  233. package/src/sgr/types.ts +0 -93
package/README.md CHANGED
@@ -142,6 +142,46 @@ const dim = format => format.combine(ansi.style.dim);
142
142
  console.log(dim(ansi.fg.red("dim red text")));
143
143
  ```
144
144
 
145
+ #### Arbitrary Chaining with `.chain()`
146
+
147
+ The fluent interface is usually more convenient than `.combine()`, but it has one limitation: once
148
+ an attribute has been set, it cannot be overridden via `.and`. For example,
149
+ `ansi.fg.red.and.fg.blue("text")` will error both at compile time and at runtime, because the `fg`
150
+ property isn't available in the chain, since it was already used.
151
+
152
+ This can be inconvenient when you want to override default styles. Take this example:
153
+
154
+ ```ts
155
+ import ansi from "@peteanderson/ansi";
156
+
157
+ function formatText(text: string, format?: (defaultStyle: Format) => Format): string {
158
+ let style = ansi.fg.green;
159
+ if (format)
160
+ style = format(style);
161
+ return style(text);
162
+ }
163
+
164
+ formatText("Some error message", style => style.and.fg.red);
165
+ // ❌ TypeError: Cannot read properties of undefined (reading 'red')
166
+ ```
167
+
168
+ This will throw an error at runtime since `fg` won't be available in the chain. However, with
169
+ `chain()`, you can create a new formatter that allows overriding styles that have already been used:
170
+
171
+ ```ts
172
+ import ansi from "./src";
173
+
174
+ function formatText(text: string, format?: (defaultStyle: Format) => Format): string {
175
+ let style = ansi.fg.green;
176
+ if (format)
177
+ style = format(ansi.chain(style));
178
+ return style(text);
179
+ }
180
+
181
+ formatText("Some error message", style => style.and.fg.red);
182
+ // ✅ "Some error message" in red
183
+ ```
184
+
145
185
  ### `reset`
146
186
 
147
187
  The SGR reset sequence. Empty string if color is disabled.
@@ -1,12 +1,15 @@
1
1
  import { padEnd, padStart } from "./pad";
2
+ import { chain } from "./sgr";
3
+ import { simplify } from "./simplify";
4
+ import { slice } from "./slice";
2
5
  import { splitAt } from "./split-at";
3
- import { strip, visibleLength } from "./strip";
6
+ import { sanitize, strip, visibleLength } from "./strip";
4
7
  import type { Args } from "./features";
5
8
  import type { Ansi } from "./types";
6
9
  export declare function makeAnsi(...args: Args): Ansi;
7
10
  export declare const ansi: Ansi;
8
11
  export declare const disabled: Ansi;
9
- export declare const fg: import("./sgr/types").Channel<"bg" | import("./sgr/types").StyleKey>, bg: import("./sgr/types").Channel<"fg" | import("./sgr/types").StyleKey>, style: import("./sgr/types").Style<import("./sgr/types").ChainKey>, reset: string, cursor: {
12
+ export declare const fg: import("./sgr/color/channel").Channel<"italic" | "underline" | "inverse" | "hidden" | "strikethrough" | "bg" | "frame" | "overline" | "bold" | "dim" | "doubleUnderline" | "encircle">, bg: import("./sgr/color/channel").Channel<"italic" | "underline" | "inverse" | "hidden" | "strikethrough" | "fg" | "frame" | "overline" | "bold" | "dim" | "doubleUnderline" | "encircle">, style: import("./sgr/style").Style, reset: string, cursor: {
10
13
  up: (count?: number | undefined) => string;
11
14
  down: (count?: number | undefined) => string;
12
15
  forward: (count?: number | undefined) => string;
@@ -70,7 +73,7 @@ export declare const fg: import("./sgr/types").Channel<"bg" | import("./sgr/type
70
73
  end: string;
71
74
  };
72
75
  };
73
- export { padEnd, padStart, splitAt, strip, visibleLength };
76
+ export { padEnd, padStart, chain, strip, visibleLength, sanitize, slice, simplify, splitAt };
74
77
  declare const _default: typeof makeAnsi & import("./sgr").SGR & {
75
78
  cursor: import("./cursor").Cursor;
76
79
  delete: import("./ins-del").Delete;
@@ -80,6 +83,7 @@ declare const _default: typeof makeAnsi & import("./sgr").SGR & {
80
83
  terminal: import("./terminal").Terminal;
81
84
  padEnd: import("./pad").PadEnd;
82
85
  padStart: import("./pad").PadStart;
86
+ chain: import("./sgr").AddChain;
83
87
  strip: import("./strip").Strip;
84
88
  visibleLength: import("./strip").VisibleLength;
85
89
  sanitize: import("./strip").Sanitize;
@@ -1 +1 @@
1
- {"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAuB,OAAO,CAAC;AAKxD,OAAO,EAAC,OAAO,EAAC,MAAgC,YAAY,CAAC;AAC7D,OAAO,EAAW,KAAK,EAAE,aAAa,EAAC,MAAS,SAAS,CAAC;AAG1D,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAElC,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CA0B5C;AAED,eAAO,MAAM,IAAI,MAAiB,CAAC;AACnC,eAAO,MAAM,QAAQ,MAAkB,CAAC;AAExC,eAAO,MAAO,EAAE,wEAAE,EAAE,wEAAE,KAAK,+DAAE,KAAK,UAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,KAAK;;;;;;;;;;;;;GAAE,MAAM;;;;GAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;CAAQ,CAAC;AAE5E,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAC,CAAA;;;;;;;;;;;;;;;;;;;;AAExD,wBAIE"}
1
+ {"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAuB,OAAO,CAAC;AAExD,OAAO,EAAC,KAAK,EAAU,MAAyB,OAAO,CAAC;AACxD,OAAO,EAAC,QAAQ,EAAC,MAA+B,YAAY,CAAC;AAC7D,OAAO,EAAC,KAAK,EAAC,MAAkC,SAAS,CAAC;AAC1D,OAAO,EAAC,OAAO,EAAC,MAAgC,YAAY,CAAC;AAC7D,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAC,MAAS,SAAS,CAAC;AAG1D,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAElC,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CA2B5C;AAED,eAAO,MAAM,IAAI,MAAiB,CAAC;AACnC,eAAO,MAAM,QAAQ,MAAkB,CAAC;AAExC,eAAO,MAAO,EAAE,0LAAE,EAAE,0LAAE,KAAK,+BAAE,KAAK,UAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,KAAK;;;;;;;;;;;;;GAAE,MAAM;;;;GAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;CAAQ,CAAC;AAE5E,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAC,CAAC;;;;;;;;;;;;;;;;;;;;;AAE3F,wBAIE"}
package/dist/cjs/ansi.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.visibleLength = exports.strip = exports.splitAt = exports.padStart = exports.padEnd = exports.terminal = exports.scroll = exports.erase = exports.cursor = exports.reset = exports.style = exports.bg = exports.fg = exports.disabled = exports.ansi = void 0;
3
+ exports.splitAt = exports.simplify = exports.slice = exports.sanitize = exports.visibleLength = exports.strip = exports.chain = exports.padStart = exports.padEnd = exports.terminal = exports.scroll = exports.erase = exports.cursor = exports.reset = exports.style = exports.bg = exports.fg = exports.disabled = exports.ansi = void 0;
4
4
  exports.makeAnsi = makeAnsi;
5
5
  const cursor_1 = require("./cursor");
6
6
  const ins_del_1 = require("./ins-del");
@@ -10,11 +10,15 @@ Object.defineProperty(exports, "padEnd", { enumerable: true, get: function () {
10
10
  Object.defineProperty(exports, "padStart", { enumerable: true, get: function () { return pad_1.padStart; } });
11
11
  const scroll_1 = require("./scroll");
12
12
  const sgr_1 = require("./sgr");
13
+ Object.defineProperty(exports, "chain", { enumerable: true, get: function () { return sgr_1.chain; } });
13
14
  const simplify_1 = require("./simplify");
15
+ Object.defineProperty(exports, "simplify", { enumerable: true, get: function () { return simplify_1.simplify; } });
14
16
  const slice_1 = require("./slice");
17
+ Object.defineProperty(exports, "slice", { enumerable: true, get: function () { return slice_1.slice; } });
15
18
  const split_at_1 = require("./split-at");
16
19
  Object.defineProperty(exports, "splitAt", { enumerable: true, get: function () { return split_at_1.splitAt; } });
17
20
  const strip_1 = require("./strip");
21
+ Object.defineProperty(exports, "sanitize", { enumerable: true, get: function () { return strip_1.sanitize; } });
18
22
  Object.defineProperty(exports, "strip", { enumerable: true, get: function () { return strip_1.strip; } });
19
23
  Object.defineProperty(exports, "visibleLength", { enumerable: true, get: function () { return strip_1.visibleLength; } });
20
24
  const terminal_1 = require("./terminal");
@@ -30,6 +34,7 @@ function makeAnsi(...args) {
30
34
  terminal: (0, terminal_1.makeTerminal)(features.terminal),
31
35
  padEnd: pad_1.padEnd,
32
36
  padStart: pad_1.padStart,
37
+ chain: sgr_1.chain,
33
38
  strip: strip_1.strip,
34
39
  visibleLength: strip_1.visibleLength,
35
40
  sanitize: strip_1.sanitize,
@@ -1 +1 @@
1
- {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":";;;AAeA,4BA0BC;AAzCD,qCAA2D;AAC3D,uCAA4D;AAC5D,yCAA6D;AAC7D,+BAAwD;AA6ChD,uFA7CA,YAAM,OA6CA;AAAE,yFA7CA,cAAQ,OA6CA;AA5CxB,qCAA2D;AAC3D,+BAAwD;AACxD,yCAA6D;AAC7D,mCAA0D;AAC1D,yCAA6D;AAwCnC,wFAxClB,kBAAO,OAwCkB;AAvCjC,mCAA0D;AAuCvB,sFAvCjB,aAAK,OAuCiB;AAAE,8FAvCjB,qBAAa,OAuCiB;AAtCvD,yCAA6D;AAK7D,SAAgB,QAAQ,CAAC,GAAG,IAAU;IACrC,MAAM,QAAQ,GAAG,IAAA,sBAAW,EAAC,GAAG,IAAI,CAAC,CAAC;IAEtC,OAAO;QACN,GAAG,IAAA,aAAO,EAAC,QAAQ,CAAC;QAEpB,MAAM,EAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,MAAM,CAAC;QACpC,MAAM,EAAG,IAAA,oBAAU,EAAC,QAAQ,CAAC,KAAK,CAAC;QACnC,KAAK,EAAI,IAAA,mBAAS,EAAC,QAAQ,CAAC,KAAK,CAAC;QAClC,MAAM,EAAG,IAAA,oBAAU,EAAC,QAAQ,CAAC,KAAK,CAAC;QACnC,MAAM,EAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,MAAM,CAAC;QAEpC,QAAQ,EAAE,IAAA,uBAAY,EAAC,QAAQ,CAAC,QAAQ,CAAC;QAEzC,MAAM,EAAN,YAAM;QACN,QAAQ,EAAR,cAAQ;QAER,KAAK,EAAL,aAAK;QACL,aAAa,EAAb,qBAAa;QACb,QAAQ,EAAR,gBAAQ;QACR,KAAK,EAAL,aAAK;QACL,QAAQ,EAAR,mBAAQ;QACR,OAAO,EAAP,kBAAO;QAEP,QAAQ;KACR,CAAC;AACH,CAAC;AAEY,QAAA,IAAI,GAAO,QAAQ,EAAE,CAAC;AACtB,QAAA,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAE1B,UAAE,GAAuD,YAAI,KAAzD,UAAE,GAAmD,YAAI,KAArD,aAAK,GAA4C,YAAI,QAA9C,aAAK,GAAqC,YAAI,QAAvC,cAAM,GAA6B,YAAI,SAA/B,aAAK,GAAsB,YAAI,QAAxB,cAAM,GAAc,YAAI,SAAhB,gBAAQ,GAAI,YAAI,UAAC;AAI5E,kBAAe,MAAM,CAAC,MAAM,CAC3B,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,EACxE,YAAI,EACJ,EAAC,QAAQ,EAAR,gBAAQ,EAAC,CACV,CAAC"}
1
+ {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/ansi.ts"],"names":[],"mappings":";;;AAeA,4BA2BC;AA1CD,qCAA2D;AAC3D,uCAA4D;AAC5D,yCAA6D;AAC7D,+BAAwD;AA8ChD,uFA9CA,YAAM,OA8CA;AAAE,yFA9CA,cAAQ,OA8CA;AA7CxB,qCAA2D;AAC3D,+BAAwD;AA4C9B,sFA5ClB,WAAK,OA4CkB;AA3C/B,yCAA6D;AA2CW,yFA3ChE,mBAAQ,OA2CgE;AA1ChF,mCAA0D;AA0CO,sFA1CzD,aAAK,OA0CyD;AAzCtE,yCAA6D;AAyCqB,wFAzC1E,kBAAO,OAyC0E;AAxCzF,mCAA0D;AAwCH,yFAxC/C,gBAAQ,OAwC+C;AAA9B,sFAxCf,aAAK,OAwCe;AAAE,8FAxCf,qBAAa,OAwCe;AAvCrD,yCAA6D;AAK7D,SAAgB,QAAQ,CAAC,GAAG,IAAU;IACrC,MAAM,QAAQ,GAAG,IAAA,sBAAW,EAAC,GAAG,IAAI,CAAC,CAAC;IAEtC,OAAO;QACN,GAAG,IAAA,aAAO,EAAC,QAAQ,CAAC;QAEpB,MAAM,EAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,MAAM,CAAC;QACpC,MAAM,EAAG,IAAA,oBAAU,EAAC,QAAQ,CAAC,KAAK,CAAC;QACnC,KAAK,EAAI,IAAA,mBAAS,EAAC,QAAQ,CAAC,KAAK,CAAC;QAClC,MAAM,EAAG,IAAA,oBAAU,EAAC,QAAQ,CAAC,KAAK,CAAC;QACnC,MAAM,EAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,MAAM,CAAC;QAEpC,QAAQ,EAAE,IAAA,uBAAY,EAAC,QAAQ,CAAC,QAAQ,CAAC;QAEzC,MAAM,EAAN,YAAM;QACN,QAAQ,EAAR,cAAQ;QAER,KAAK,EAAL,WAAK;QACL,KAAK,EAAL,aAAK;QACL,aAAa,EAAb,qBAAa;QACb,QAAQ,EAAR,gBAAQ;QACR,KAAK,EAAL,aAAK;QACL,QAAQ,EAAR,mBAAQ;QACR,OAAO,EAAP,kBAAO;QAEP,QAAQ;KACR,CAAC;AACH,CAAC;AAEY,QAAA,IAAI,GAAO,QAAQ,EAAE,CAAC;AACtB,QAAA,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAE1B,UAAE,GAAuD,YAAI,KAAzD,UAAE,GAAmD,YAAI,KAArD,aAAK,GAA4C,YAAI,QAA9C,aAAK,GAAqC,YAAI,QAAvC,cAAM,GAA6B,YAAI,SAA/B,aAAK,GAAsB,YAAI,QAAxB,cAAM,GAAc,YAAI,SAAhB,gBAAQ,GAAI,YAAI,UAAC;AAI5E,kBAAe,MAAM,CAAC,MAAM,CAC3B,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,EACxE,YAAI,EACJ,EAAC,QAAQ,EAAR,gBAAQ,EAAC,CACV,CAAC"}
@@ -0,0 +1,10 @@
1
+ export type Code = number | "" | ReadonlyArray<number | "">;
2
+ export type Codes = {
3
+ open: Code;
4
+ close: Code;
5
+ };
6
+ export declare namespace Code {
7
+ const disabled: Code;
8
+ const isDisabled: (code: Code) => boolean;
9
+ }
10
+ //# sourceMappingURL=code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/code.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAI,MAAM,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAC7D,MAAM,MAAM,KAAK,GAAG;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAC,CAAC;AAE9C,yBAAiB,IAAI,CAAC;IACd,MAAM,QAAQ,EAAE,IAAwB,CAAC;IAEzC,MAAM,UAAU,GAAI,MAAM,IAAI,KAAG,OACiB,CAAC;CAC1D"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Code = void 0;
4
+ var Code;
5
+ (function (Code) {
6
+ Code.disabled = Object.freeze([]);
7
+ Code.isDisabled = (code) => code === Code.disabled || Array.isArray(code) && !code.length;
8
+ })(Code || (exports.Code = Code = {}));
9
+ //# sourceMappingURL=code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/code.ts"],"names":[],"mappings":";;;AAGA,IAAiB,IAAI,CAKpB;AALD,WAAiB,IAAI;IACP,aAAQ,GAAS,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEnC,eAAU,GAAG,CAAC,IAAU,EAAW,EAAE,CACjD,IAAI,KAAK,KAAA,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3D,CAAC,EALgB,IAAI,oBAAJ,IAAI,QAKpB"}
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeCursor = void 0;
4
- const utils_1 = require("./utils");
4
+ const _utils_1 = require("#utils");
5
5
  const cursor = {
6
- up: (0, utils_1.count)("A", "B"),
7
- down: (0, utils_1.count)("B", "A"),
8
- forward: (0, utils_1.count)("C", "D"),
9
- backward: (0, utils_1.count)("D", "C"),
10
- nextLine: (0, utils_1.count)("E", "F"),
11
- prevLine: (0, utils_1.count)("F", "E"),
12
- x: (x) => (0, utils_1.csi)(x < 2 ? undefined : x, "G"),
6
+ up: (0, _utils_1.count)("A", "B"),
7
+ down: (0, _utils_1.count)("B", "A"),
8
+ forward: (0, _utils_1.count)("C", "D"),
9
+ backward: (0, _utils_1.count)("D", "C"),
10
+ nextLine: (0, _utils_1.count)("E", "F"),
11
+ prevLine: (0, _utils_1.count)("F", "E"),
12
+ x: (x) => (0, _utils_1.csi)(x < 2 ? "" : x, "G"),
13
13
  // These are the old VT100 codes, but they're widely supported by old and new terminals. The
14
14
  // newer VT220 codes are standardized by ECMA and ISO, and are also widely supported, but might
15
15
  // not work in some older terminals. The VT220 codes are:
@@ -20,41 +20,41 @@ const cursor = {
20
20
  // ```
21
21
  save: "\x1b7",
22
22
  restore: "\x1b8",
23
- hide: (0, utils_1.csi)("?25l"),
24
- show: (0, utils_1.csi)("?25h"),
23
+ hide: (0, _utils_1.csi)("?25l"),
24
+ show: (0, _utils_1.csi)("?25h"),
25
25
  position: {
26
- get: (0, utils_1.csi)("6n"),
27
- set: (x, y) => (0, utils_1.csi)(x < 2 ? // Omit x if we can use the default.
28
- y < 2 ? undefined : y : // Omit y too if we can use both defaults.
26
+ get: (0, _utils_1.csi)("6n"),
27
+ set: (x, y) => (0, _utils_1.csi)(x < 2 ? // Omit x if we can use the default.
28
+ y < 2 ? "" : y : // Omit y too if we can use both defaults.
29
29
  y < 2 ?
30
- `;${x}` :
31
- `${y};${x}`, "H"),
30
+ ["", x] :
31
+ [y, x], "H"),
32
32
  },
33
33
  shape: {
34
- steadyBlock: (0, utils_1.csi)("2 q"),
35
- steadyBar: (0, utils_1.csi)("6 q"),
36
- steadyUnderline: (0, utils_1.csi)("4 q"),
37
- blinkingBlock: (0, utils_1.csi)("1 q"),
38
- blinkingBar: (0, utils_1.csi)("5 q"),
39
- blinkingUnderline: (0, utils_1.csi)("3 q"),
40
- default: (0, utils_1.csi)("0 q"),
34
+ steadyBlock: (0, _utils_1.csi)("2 q"),
35
+ steadyBar: (0, _utils_1.csi)("6 q"),
36
+ steadyUnderline: (0, _utils_1.csi)("4 q"),
37
+ blinkingBlock: (0, _utils_1.csi)("1 q"),
38
+ blinkingBar: (0, _utils_1.csi)("5 q"),
39
+ blinkingUnderline: (0, _utils_1.csi)("3 q"),
40
+ default: (0, _utils_1.csi)("0 q"),
41
41
  },
42
42
  };
43
43
  const disabled = {
44
- up: utils_1.noop,
45
- down: utils_1.noop,
46
- forward: utils_1.noop,
47
- backward: utils_1.noop,
48
- nextLine: utils_1.noop,
49
- prevLine: utils_1.noop,
50
- x: utils_1.noop,
44
+ up: _utils_1.noop,
45
+ down: _utils_1.noop,
46
+ forward: _utils_1.noop,
47
+ backward: _utils_1.noop,
48
+ nextLine: _utils_1.noop,
49
+ prevLine: _utils_1.noop,
50
+ x: _utils_1.noop,
51
51
  save: "",
52
52
  restore: "",
53
53
  hide: "",
54
54
  show: "",
55
55
  position: {
56
56
  get: "",
57
- set: utils_1.noop,
57
+ set: _utils_1.noop,
58
58
  },
59
59
  shape: {
60
60
  steadyBlock: "",
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/cursor.ts"],"names":[],"mappings":";;;AAAA,mCAAiD;AAEjD,MAAM,MAAM,GAAG;IACd,EAAE,EAAS,IAAA,aAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IACzB,IAAI,EAAO,IAAA,aAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IACzB,OAAO,EAAI,IAAA,aAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IACzB,QAAQ,EAAG,IAAA,aAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IACzB,QAAQ,EAAG,IAAA,aAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IACzB,QAAQ,EAAG,IAAA,aAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IAEzB,CAAC,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,IAAA,WAAG,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IAEjD,4FAA4F;IAC5F,+FAA+F;IAC/F,yDAAyD;IACzD,EAAE;IACF,MAAM;IACN,sBAAsB;IACtB,sBAAsB;IACtB,MAAM;IACN,IAAI,EAAM,OAAO;IACjB,OAAO,EAAG,OAAO;IAEjB,IAAI,EAAG,IAAA,WAAG,EAAC,MAAM,CAAC;IAClB,IAAI,EAAG,IAAA,WAAG,EAAC,MAAM,CAAC;IAElB,QAAQ,EAAE;QACT,GAAG,EAAE,IAAA,WAAG,EAAC,IAAI,CAAC;QACd,GAAG,EAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,IAAA,WAAG,EAC1C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oCAAoC;YAC3C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C;YACnE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACN,IAAI,CAAC,EAAE,CAAC,CAAC;gBACV,GAAG,CAAC,IAAI,CAAC,EAAE,EACX,GAAG,CACH;KACD;IAED,KAAK,EAAE;QACN,WAAW,EAAS,IAAA,WAAG,EAAC,KAAK,CAAC;QAC9B,SAAS,EAAW,IAAA,WAAG,EAAC,KAAK,CAAC;QAC9B,eAAe,EAAK,IAAA,WAAG,EAAC,KAAK,CAAC;QAC9B,aAAa,EAAO,IAAA,WAAG,EAAC,KAAK,CAAC;QAC9B,WAAW,EAAS,IAAA,WAAG,EAAC,KAAK,CAAC;QAC9B,iBAAiB,EAAG,IAAA,WAAG,EAAC,KAAK,CAAC;QAC9B,OAAO,EAAa,IAAA,WAAG,EAAC,KAAK,CAAC;KAC9B;CACD,CAAC;AAIF,MAAM,QAAQ,GAAW;IACxB,EAAE,EAAS,YAAI;IACf,IAAI,EAAO,YAAI;IACf,OAAO,EAAI,YAAI;IACf,QAAQ,EAAG,YAAI;IACf,QAAQ,EAAG,YAAI;IACf,QAAQ,EAAG,YAAI;IAEf,CAAC,EAAE,YAAI;IAEP,IAAI,EAAM,EAAE;IACZ,OAAO,EAAG,EAAE;IAEZ,IAAI,EAAG,EAAE;IACT,IAAI,EAAG,EAAE;IAET,QAAQ,EAAE;QACT,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,YAAI;KACT;IAED,KAAK,EAAE;QACN,WAAW,EAAS,EAAE;QACtB,SAAS,EAAW,EAAE;QACtB,eAAe,EAAK,EAAE;QACtB,aAAa,EAAO,EAAE;QACtB,WAAW,EAAS,EAAE;QACtB,iBAAiB,EAAG,EAAE;QACtB,OAAO,EAAa,EAAE;KACtB;CACD,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAArE,QAAA,UAAU,cAA2D"}
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/cursor.ts"],"names":[],"mappings":";;;AAAA,mCAAgD;AAEhD,MAAM,MAAM,GAAG;IACd,EAAE,EAAS,IAAA,cAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IACzB,IAAI,EAAO,IAAA,cAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IACzB,OAAO,EAAI,IAAA,cAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IACzB,QAAQ,EAAG,IAAA,cAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IACzB,QAAQ,EAAG,IAAA,cAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IACzB,QAAQ,EAAG,IAAA,cAAI,EAAC,GAAG,EAAE,GAAG,CAAC;IAEzB,CAAC,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,IAAA,YAAG,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IAE1C,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,YAAG,EAAC,MAAM,CAAC;IAClB,IAAI,EAAG,IAAA,YAAG,EAAC,MAAM,CAAC;IAElB,QAAQ,EAAE;QACT,GAAG,EAAE,IAAA,YAAG,EAAC,IAAI,CAAC;QACd,GAAG,EAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,IAAA,YAAG,EAC1C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oCAAoC;YAC3C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C;YAC5D,CAAC,GAAG,CAAC,CAAC,CAAC;gBACN,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBACV,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,GAAG,CACH;KACD;IAED,KAAK,EAAE;QACN,WAAW,EAAS,IAAA,YAAG,EAAC,KAAK,CAAC;QAC9B,SAAS,EAAW,IAAA,YAAG,EAAC,KAAK,CAAC;QAC9B,eAAe,EAAK,IAAA,YAAG,EAAC,KAAK,CAAC;QAC9B,aAAa,EAAO,IAAA,YAAG,EAAC,KAAK,CAAC;QAC9B,WAAW,EAAS,IAAA,YAAG,EAAC,KAAK,CAAC;QAC9B,iBAAiB,EAAG,IAAA,YAAG,EAAC,KAAK,CAAC;QAC9B,OAAO,EAAa,IAAA,YAAG,EAAC,KAAK,CAAC;KAC9B;CACD,CAAC;AAIF,MAAM,QAAQ,GAAW;IACxB,EAAE,EAAS,aAAI;IACf,IAAI,EAAO,aAAI;IACf,OAAO,EAAI,aAAI;IACf,QAAQ,EAAG,aAAI;IACf,QAAQ,EAAG,aAAI;IACf,QAAQ,EAAG,aAAI;IAEf,CAAC,EAAE,aAAI;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,aAAI;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,9 +1,9 @@
1
1
  import * as $ansi from "./ansi";
2
2
  declare namespace ansi {
3
3
  type Ansi = import("./types").Ansi;
4
- type ChainKey = import("./sgr/types").ChainKey;
5
- type Format = import("./sgr/types").Format;
6
- type FormatBase = import("./sgr/types").FormatBase;
4
+ type ChainKey = import("./sgr").ChainKey;
5
+ type Format = import("./sgr").Format;
6
+ type FormatBase = import("./sgr").FormatBase;
7
7
  }
8
8
  declare const ansi: typeof $ansi.makeAnsi & import("./sgr").SGR & {
9
9
  cursor: import("./cursor").Cursor;
@@ -14,6 +14,7 @@ declare const ansi: typeof $ansi.makeAnsi & import("./sgr").SGR & {
14
14
  terminal: import("./terminal").Terminal;
15
15
  padEnd: import("./pad").PadEnd;
16
16
  padStart: import("./pad").PadStart;
17
+ chain: import("./sgr").AddChain;
17
18
  strip: import("./strip").Strip;
18
19
  visibleLength: import("./strip").VisibleLength;
19
20
  sanitize: import("./strip").Sanitize;
@@ -27,9 +28,9 @@ declare const ansi: typeof $ansi.makeAnsi & import("./sgr").SGR & {
27
28
  makeAnsi(...args: import("./features").Args): import("./types").Ansi;
28
29
  ansi: import("./types").Ansi;
29
30
  disabled: import("./types").Ansi;
30
- fg: import("./sgr/types").Channel<"bg" | import("./sgr/types").StyleKey>;
31
- bg: import("./sgr/types").Channel<"fg" | import("./sgr/types").StyleKey>;
32
- style: import("./sgr/types").Style<import("./sgr/types").ChainKey>;
31
+ fg: import("./sgr/color/channel").Channel<"italic" | "underline" | "inverse" | "hidden" | "strikethrough" | "bg" | "frame" | "overline" | "bold" | "dim" | "doubleUnderline" | "encircle">;
32
+ bg: import("./sgr/color/channel").Channel<"italic" | "underline" | "inverse" | "hidden" | "strikethrough" | "fg" | "frame" | "overline" | "bold" | "dim" | "doubleUnderline" | "encircle">;
33
+ style: import("./sgr/style").Style;
33
34
  reset: string;
34
35
  cursor: {
35
36
  up: (count?: number | undefined) => string;
@@ -100,9 +101,13 @@ declare const ansi: typeof $ansi.makeAnsi & import("./sgr").SGR & {
100
101
  };
101
102
  padEnd: (text: string, targetLength: number, fillString?: string) => string;
102
103
  padStart: (text: string, targetLength: number, fillString?: string) => string;
103
- splitAt: typeof $ansi.splitAt;
104
+ chain: typeof $ansi.chain;
104
105
  strip: (text: string) => string;
105
106
  visibleLength: (text: string) => number;
107
+ sanitize: (text: string) => string;
108
+ slice: typeof $ansi.slice;
109
+ simplify: typeof $ansi.simplify;
110
+ splitAt: typeof $ansi.splitAt;
106
111
  };
107
112
  export = ansi;
108
113
  //# sourceMappingURL=index.d.ts.map
@@ -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,GAAS,OAAO,SAAS,EAAE,IAAI,CAAC;IAChD,KAAY,QAAQ,GAAK,OAAO,aAAa,EAAE,QAAQ,CAAC;IACxD,KAAY,MAAM,GAAO,OAAO,aAAa,EAAE,MAAM,CAAC;IACtD,KAAY,UAAU,GAAG,OAAO,aAAa,EAAE,UAAU,CAAC;CAC1D;AAID,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAkC,CAAC;AAE7C,SAAS,IAAI,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/require.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAEhC,OAAO,WAAW,IAAI,CAAC;IACtB,KAAY,IAAI,GAAS,OAAO,SAAS,EAAE,IAAI,CAAC;IAChD,KAAY,QAAQ,GAAK,OAAO,OAAO,EAAE,QAAQ,CAAC;IAClD,KAAY,MAAM,GAAO,OAAO,OAAO,EAAE,MAAM,CAAC;IAChD,KAAY,UAAU,GAAG,OAAO,OAAO,EAAE,UAAU,CAAC;CACpD;AAID,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAkC,CAAC;AAE7C,SAAS,IAAI,CAAC"}
@@ -1,31 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeDelete = exports.makeInsert = exports.makeErase = void 0;
4
- const utils_1 = require("./utils");
4
+ const _utils_1 = require("#utils");
5
5
  const erase = {
6
- char: (0, utils_1.count)("X"),
6
+ char: (0, _utils_1.count)("X"),
7
7
  line: {
8
- toStart: (0, utils_1.csi)("1K"),
9
- toEnd: (0, utils_1.csi)("0K"),
10
- full: (0, utils_1.csi)("2K"),
8
+ toStart: (0, _utils_1.csi)("1K"),
9
+ toEnd: (0, _utils_1.csi)("0K"),
10
+ full: (0, _utils_1.csi)("2K"),
11
11
  },
12
12
  screen: {
13
- toStart: (0, utils_1.csi)("1J"),
14
- toEnd: (0, utils_1.csi)("0J"),
15
- full: (0, utils_1.csi)("2J"),
16
- scrollback: (0, utils_1.csi)("3J"),
13
+ toStart: (0, _utils_1.csi)("1J"),
14
+ toEnd: (0, _utils_1.csi)("0J"),
15
+ full: (0, _utils_1.csi)("2J"),
16
+ scrollback: (0, _utils_1.csi)("3J"),
17
17
  },
18
18
  };
19
19
  const insert = {
20
- char: (0, utils_1.count)("@", "P"),
21
- line: (0, utils_1.count)("L", "M"),
20
+ char: (0, _utils_1.count)("@", "P"),
21
+ line: (0, _utils_1.count)("L", "M"),
22
22
  };
23
23
  const del = {
24
- char: (0, utils_1.count)("P", "@"),
25
- line: (0, utils_1.count)("M", "L"),
24
+ char: (0, _utils_1.count)("P", "@"),
25
+ line: (0, _utils_1.count)("M", "L"),
26
26
  };
27
27
  const disabledErase = {
28
- char: utils_1.noop,
28
+ char: _utils_1.noop,
29
29
  line: {
30
30
  toStart: "",
31
31
  toEnd: "",
@@ -39,8 +39,8 @@ const disabledErase = {
39
39
  },
40
40
  };
41
41
  const disabledInsert = {
42
- char: utils_1.noop,
43
- line: utils_1.noop,
42
+ char: _utils_1.noop,
43
+ line: _utils_1.noop,
44
44
  };
45
45
  const disabledDelete = disabledInsert;
46
46
  const makeErase = (enabled = true) => enabled ? erase : disabledErase;
@@ -1 +1 @@
1
- {"version":3,"file":"ins-del.js","sourceRoot":"","sources":["../../src/ins-del.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AAEzC,MAAM,KAAK,GAAG;IACb,IAAI,EAAE,IAAA,aAAK,EAAC,GAAG,CAAC;IAEhB,IAAI,EAAE;QACL,OAAO,EAAG,IAAA,WAAG,EAAC,IAAI,CAAC;QACnB,KAAK,EAAK,IAAA,WAAG,EAAC,IAAI,CAAC;QACnB,IAAI,EAAM,IAAA,WAAG,EAAC,IAAI,CAAC;KACnB;IACD,MAAM,EAAE;QACP,OAAO,EAAM,IAAA,WAAG,EAAC,IAAI,CAAC;QACtB,KAAK,EAAQ,IAAA,WAAG,EAAC,IAAI,CAAC;QACtB,IAAI,EAAS,IAAA,WAAG,EAAC,IAAI,CAAC;QACtB,UAAU,EAAG,IAAA,WAAG,EAAC,IAAI,CAAC;KACtB;CACD,CAAC;AAEF,MAAM,MAAM,GAAG;IACd,IAAI,EAAE,IAAA,aAAK,EAAC,GAAG,EAAE,GAAG,CAAC;IACrB,IAAI,EAAE,IAAA,aAAK,EAAC,GAAG,EAAE,GAAG,CAAC;CACrB,CAAC;AAEF,MAAM,GAAG,GAAG;IACX,IAAI,EAAE,IAAA,aAAK,EAAC,GAAG,EAAE,GAAG,CAAC;IACrB,IAAI,EAAE,IAAA,aAAK,EAAC,GAAG,EAAE,GAAG,CAAC;CACrB,CAAC;AAMF,MAAM,aAAa,GAAU;IAC5B,IAAI,EAAE,YAAI;IAEV,IAAI,EAAE;QACL,OAAO,EAAG,EAAE;QACZ,KAAK,EAAK,EAAE;QACZ,IAAI,EAAM,EAAE;KACZ;IACD,MAAM,EAAE;QACP,OAAO,EAAM,EAAE;QACf,KAAK,EAAQ,EAAE;QACf,IAAI,EAAS,EAAE;QACf,UAAU,EAAG,EAAE;KACf;CACD,CAAC;AAEF,MAAM,cAAc,GAAW;IAC9B,IAAI,EAAE,YAAI;IACV,IAAI,EAAE,YAAI;CACV,CAAC;AAEF,MAAM,cAAc,GAAW,cAAc,CAAC;AAEvC,MAAM,SAAS,GAAI,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAE,CAAC,CAAC,aAAa,CAAC;AAA1E,QAAA,SAAS,aAAiE;AAChF,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;AAA3E,QAAA,UAAU,cAAiE;AACjF,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAI,CAAC,CAAC,cAAc,CAAC;AAA3E,QAAA,UAAU,cAAiE"}
1
+ {"version":3,"file":"ins-del.js","sourceRoot":"","sources":["../../src/ins-del.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAExC,MAAM,KAAK,GAAG;IACb,IAAI,EAAE,IAAA,cAAK,EAAC,GAAG,CAAC;IAEhB,IAAI,EAAE;QACL,OAAO,EAAG,IAAA,YAAG,EAAC,IAAI,CAAC;QACnB,KAAK,EAAK,IAAA,YAAG,EAAC,IAAI,CAAC;QACnB,IAAI,EAAM,IAAA,YAAG,EAAC,IAAI,CAAC;KACnB;IACD,MAAM,EAAE;QACP,OAAO,EAAM,IAAA,YAAG,EAAC,IAAI,CAAC;QACtB,KAAK,EAAQ,IAAA,YAAG,EAAC,IAAI,CAAC;QACtB,IAAI,EAAS,IAAA,YAAG,EAAC,IAAI,CAAC;QACtB,UAAU,EAAG,IAAA,YAAG,EAAC,IAAI,CAAC;KACtB;CACD,CAAC;AAEF,MAAM,MAAM,GAAG;IACd,IAAI,EAAE,IAAA,cAAK,EAAC,GAAG,EAAE,GAAG,CAAC;IACrB,IAAI,EAAE,IAAA,cAAK,EAAC,GAAG,EAAE,GAAG,CAAC;CACrB,CAAC;AAEF,MAAM,GAAG,GAAG;IACX,IAAI,EAAE,IAAA,cAAK,EAAC,GAAG,EAAE,GAAG,CAAC;IACrB,IAAI,EAAE,IAAA,cAAK,EAAC,GAAG,EAAE,GAAG,CAAC;CACrB,CAAC;AAMF,MAAM,aAAa,GAAU;IAC5B,IAAI,EAAE,aAAI;IAEV,IAAI,EAAE;QACL,OAAO,EAAG,EAAE;QACZ,KAAK,EAAK,EAAE;QACZ,IAAI,EAAM,EAAE;KACZ;IACD,MAAM,EAAE;QACP,OAAO,EAAM,EAAE;QACf,KAAK,EAAQ,EAAE;QACf,IAAI,EAAS,EAAE;QACf,UAAU,EAAG,EAAE;KACf;CACD,CAAC;AAEF,MAAM,cAAc,GAAW;IAC9B,IAAI,EAAE,aAAI;IACV,IAAI,EAAE,aAAI;CACV,CAAC;AAEF,MAAM,cAAc,GAAW,cAAc,CAAC;AAEvC,MAAM,SAAS,GAAI,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAE,CAAC,CAAC,aAAa,CAAC;AAA1E,QAAA,SAAS,aAAiE;AAChF,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;AAA3E,QAAA,UAAU,cAAiE;AACjF,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAI,CAAC,CAAC,cAAc,CAAC;AAA3E,QAAA,UAAU,cAAiE"}
@@ -0,0 +1,25 @@
1
+ {
2
+ "type": "commonjs",
3
+ "imports": {
4
+ "#code": {
5
+ "types": "./code.d.ts",
6
+ "default": "./code.js"
7
+ },
8
+ "#features": {
9
+ "types": "./features/index.d.ts",
10
+ "default": "./features/index.js"
11
+ },
12
+ "#patterns": {
13
+ "types": "./patterns.d.ts",
14
+ "default": "./patterns.js"
15
+ },
16
+ "#typed-object": {
17
+ "types": "./typed-object.d.ts",
18
+ "default": "./typed-object.js"
19
+ },
20
+ "#utils": {
21
+ "types": "./utils.d.ts",
22
+ "default": "./utils.js"
23
+ }
24
+ }
25
+ }
@@ -1,20 +1,20 @@
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
+ const _utils_1 = require("#utils");
5
5
  const scroll = {
6
- up: (0, utils_1.count)("S", "T"),
7
- down: (0, utils_1.count)("T", "S"),
8
- setRegion: (top, bottom) => (0, utils_1.csi)(!top || top < 2 ? // Omit top if we can use the default.
9
- bottom :
6
+ up: (0, _utils_1.count)("S", "T"),
7
+ down: (0, _utils_1.count)("T", "S"),
8
+ setRegion: (top, bottom) => (0, _utils_1.csi)(!top || top < 2 ? // Omit top if we can use the default.
9
+ bottom ?? "" :
10
10
  !bottom ?
11
11
  top :
12
- `${top};${bottom}`, "r"),
12
+ [top, bottom], "r"),
13
13
  };
14
14
  const disabled = {
15
- up: utils_1.noop,
16
- down: utils_1.noop,
17
- setRegion: utils_1.noop,
15
+ up: _utils_1.noop,
16
+ down: _utils_1.noop,
17
+ setRegion: _utils_1.noop,
18
18
  };
19
19
  const makeScroll = (enabled = true) => enabled ? scroll : disabled;
20
20
  exports.makeScroll = makeScroll;
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AAEzC,MAAM,MAAM,GAAG;IACd,EAAE,EAAU,IAAA,aAAK,EAAmB,GAAG,EAAE,GAAG,CAAC;IAC7C,IAAI,EAAQ,IAAA,aAAK,EAAmB,GAAG,EAAE,GAAG,CAAC;IAC7C,SAAS,EAAG,CAAC,GAAY,EAAE,MAAe,EAAE,EAAE,CAC7C,IAAA,WAAG,EACF,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAsC;QACvD,MAAM,CAAC,CAAC;QACT,CAAC,MAAM,CAAC,CAAC;YACR,GAAG,CAAC,CAAC;YACN,GAAG,GAAG,IAAI,MAAM,EAAE,EAClB,GAAG,CACH;CACF,CAAC;AAIF,MAAM,QAAQ,GAAW;IACxB,EAAE,EAAU,YAAI;IAChB,IAAI,EAAQ,YAAI;IAChB,SAAS,EAAG,YAAI;CAChB,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAArE,QAAA,UAAU,cAA2D"}
1
+ {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAExC,MAAM,MAAM,GAAG;IACd,EAAE,EAAU,IAAA,cAAK,EAAmB,GAAG,EAAE,GAAG,CAAC;IAC7C,IAAI,EAAQ,IAAA,cAAK,EAAmB,GAAG,EAAE,GAAG,CAAC;IAC7C,SAAS,EAAG,CAAC,GAAY,EAAE,MAAe,EAAE,EAAE,CAC7C,IAAA,YAAG,EACF,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAsC;QACvD,MAAM,IAAI,EAAE,CAAC,CAAC;QACf,CAAC,MAAM,CAAC,CAAC;YACR,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,EAAE,MAAM,CAAC,EACb,GAAG,CACH;CACF,CAAC;AAIF,MAAM,QAAQ,GAAW;IACxB,EAAE,EAAU,aAAI;IAChB,IAAI,EAAQ,aAAI;IAChB,SAAS,EAAG,aAAI;CAChB,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAArE,QAAA,UAAU,cAA2D"}
@@ -0,0 +1,5 @@
1
+ import type { FormatContext } from "../context";
2
+ import type { Format, FormatBase } from "../format";
3
+ import type { ChainKey } from "./keys";
4
+ export declare const attachChain: <Keys extends ChainKey>(context: FormatContext<Keys>, baseFormat: FormatBase) => Format<Keys>;
5
+ //# sourceMappingURL=attach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../../../src/sgr/chain/attach.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAW,YAAY,CAAC;AACnD,OAAO,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAgB,QAAQ,CAAC;AAE/C,eAAO,MAAM,WAAW,GAAI,IAAI,SAAS,QAAQ,EAChD,SAAa,aAAa,CAAC,IAAI,CAAC,EAChC,YAAa,UAAU,KACrB,MAAM,CAAC,IAAI,CAEsD,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.attachChain = void 0;
4
+ const lazy_1 = require("../lazy");
5
+ const build_1 = require("./build");
6
+ const attachChain = (context, baseFormat) => !context.keys.size
7
+ ? baseFormat
8
+ : lazy_1.lazy.add(baseFormat, "and", () => (0, build_1.makeChain)(context, baseFormat));
9
+ exports.attachChain = attachChain;
10
+ //# sourceMappingURL=attach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.js","sourceRoot":"","sources":["../../../../src/sgr/chain/attach.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAClC,mCAAkC;AAM3B,MAAM,WAAW,GAAG,CAC1B,OAAgC,EAChC,UAAuB,EACR,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;IACpC,CAAC,CAAC,UAA0B;IAC5B,CAAC,CAAC,WAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAA,iBAAS,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AALxD,QAAA,WAAW,eAK6C"}
@@ -0,0 +1,8 @@
1
+ import type { Color } from "../color";
2
+ import type { FormatContext } from "../context";
3
+ import type { FormatBase } from "../format";
4
+ import type { Style } from "../style";
5
+ import type { ChainKey } from "./keys";
6
+ export type Chain<Keys extends ChainKey> = Color<Keys> & Style<Keys>;
7
+ export declare function makeChain<Keys extends ChainKey>(context: FormatContext<Keys>, baseFormat: FormatBase): Chain<Keys>;
8
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../src/sgr/chain/build.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAc,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAS,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAC,KAAK,EAAC,MAAc,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAW,QAAQ,CAAC;AAE1C,MAAM,MAAM,KAAK,CAAC,IAAI,SAAS,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AAErE,wBAAgB,SAAS,CAAC,IAAI,SAAS,QAAQ,EAC9C,OAAO,EAAM,aAAa,CAAC,IAAI,CAAC,EAChC,UAAU,EAAG,UAAU,GACrB,KAAK,CAAC,IAAI,CAAC,CASb"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeChain = makeChain;
4
+ const color_1 = require("../color");
5
+ const combine_1 = require("../combine");
6
+ const style_1 = require("../style");
7
+ function makeChain(context, baseFormat) {
8
+ const parentCodes = context.parentCodes ? {
9
+ open: (0, combine_1.combineCodes)(context.parentCodes.open, baseFormat.codes.open),
10
+ close: (0, combine_1.combineCodes)(baseFormat.codes.close, context.parentCodes.close),
11
+ } : baseFormat.codes;
12
+ const chainedContext = { ...context, parentCodes };
13
+ return { ...(0, color_1.makeColor)(chainedContext), ...(0, style_1.makeStyle)(chainedContext) };
14
+ }
15
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../src/sgr/chain/build.ts"],"names":[],"mappings":";;AAYA,8BAYC;AAxBD,oCAAsC;AACtC,wCAAwC;AACxC,oCAAsC;AAUtC,SAAgB,SAAS,CACxB,OAAgC,EAChC,UAAuB;IAEvB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzC,IAAI,EAAI,IAAA,sBAAY,EAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;QACrE,KAAK,EAAG,IAAA,sBAAY,EAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;KACvE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;IAErB,MAAM,cAAc,GAAwB,EAAC,GAAG,OAAO,EAAE,WAAW,EAAC,CAAC;IAEtE,OAAO,EAAC,GAAG,IAAA,iBAAS,EAAC,cAAc,CAAC,EAAE,GAAG,IAAA,iBAAS,EAAC,cAAc,CAAC,EAAC,CAAC;AACrE,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Features } from "#features";
2
+ import type { Format, FormatBase } from "../format";
3
+ import type { ChainKey } from "./keys";
4
+ type ChainArgs<Keys extends ChainKey> = [
5
+ keys: ReadonlySet<Keys>,
6
+ baseFormat: FormatBase,
7
+ features?: Features
8
+ ];
9
+ export declare function chain(baseFormat: FormatBase, features?: Features): Format<ChainKey>;
10
+ export declare function chain<Keys extends ChainKey = ChainKey>(...args: ChainArgs<Keys>): Format<Keys>;
11
+ export type AddChain = typeof chain;
12
+ export {};
13
+ //# sourceMappingURL=chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../../../src/sgr/chain/chain.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAgB,WAAW,CAAC;AAClD,OAAO,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAgB,QAAQ,CAAC;AAsB/C,KAAK,SAAS,CAAC,IAAI,SAAS,QAAQ,IAAI;IACvC,IAAI,EAAS,WAAW,CAAC,IAAI,CAAC;IAC9B,UAAU,EAAG,UAAU;IACvB,QAAQ,CAAC,EAAI,QAAQ;CACrB,CAAC;AAaF,wBAAgB,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrF,wBAAgB,KAAK,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAYhG,MAAM,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.chain = chain;
4
+ const props_1 = require("@peteanderson/props");
5
+ const context_1 = require("../context");
6
+ const attach_1 = require("./attach");
7
+ const keys_1 = require("./keys");
8
+ function cloneFormatBase(baseFormat) {
9
+ const clone = (text) => baseFormat(text);
10
+ const descriptors = (0, props_1.ownProperties)(baseFormat);
11
+ delete descriptors.and;
12
+ return (0, props_1.define)(clone, descriptors);
13
+ }
14
+ function keysMatch(a, b) {
15
+ if (a.size !== b.size)
16
+ return false;
17
+ for (const key of a)
18
+ if (!b.has(key))
19
+ return false;
20
+ return true;
21
+ }
22
+ const resolveArgs = (args) => args.length === 1 ?
23
+ [keys_1.allKeys, args[0], undefined] :
24
+ args.length === 2 ?
25
+ typeof args[0] === "function"
26
+ ? [keys_1.allKeys, ...args]
27
+ : args :
28
+ args;
29
+ function chain(...args) {
30
+ const [keys, baseFormat, features] = resolveArgs(args);
31
+ let context = (0, context_1.getContext)(baseFormat, features);
32
+ if (!keysMatch(context.keys, keys))
33
+ context = { ...context, keys };
34
+ return (0, attach_1.attachChain)(context, cloneFormatBase(baseFormat));
35
+ }
36
+ //# sourceMappingURL=chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../../src/sgr/chain/chain.ts"],"names":[],"mappings":";;AAiDA,sBAQC;AAzDD,+CAA0D;AAC1D,wCAAiD;AACjD,qCAA+C;AAC/C,iCAA6C;AAM7C,SAAS,eAAe,CAAC,UAAsB;IAC9C,MAAM,KAAK,GAAS,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,IAAA,qBAAa,EAAC,UAAU,CAAC,CAAC;IAE9C,OAAO,WAAW,CAAC,GAAG,CAAC;IAEvB,OAAO,IAAA,cAAM,EAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,SAAS,CAAC,CAAwB,EAAE,CAAwB;IACpE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QACpB,OAAO,KAAK,CAAC;IAEd,KAAK,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YACd,OAAO,KAAK,CAAC;IAEf,OAAO,IAAI,CAAC;AACb,CAAC;AAUD,MAAM,WAAW,GAAG,CAAwB,IAA0B,EAAmB,EAAE,CAC1F,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAClB,CAAC,cAA4B,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU;YAC5B,CAAC,CAAC,CAAC,cAA4B,EAAE,GAAG,IAAoB,CAAC;YACzD,CAAC,CAAC,IAAuB,CAAC,CAAC;QAC7B,IAAuB,CAAC;AAKzB,SAAgB,KAAK,CAAwB,GAAG,IAA0B;IACzE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEvD,IAAI,OAAO,GAAG,IAAA,oBAAU,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;QACjC,OAAO,GAAG,EAAC,GAAG,OAAO,EAAE,IAAI,EAAC,CAAC;IAE9B,OAAO,IAAA,oBAAW,EAAC,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./attach";
2
+ export * from "./chain";
3
+ export * from "./keys";
4
+ export type { Chain } from "./build";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/sgr/chain/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AAEvB,YAAY,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
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("./attach"), exports);
18
+ __exportStar(require("./chain"), exports);
19
+ __exportStar(require("./keys"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sgr/chain/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB;AACxB,yCAAuB"}